Hash
這種身份驗證協議對竊聽和伺服器數據庫洩露是否安全?
考慮 Kaufman 等人的《網路安全:公共世界中的私人通信》一書中的以下協議。
愛麗絲知道密碼。Bob 是一個將對 Alice 進行身份驗證的伺服器,它儲存 Alice 密碼的雜湊值。Alice 在她的工作站上輸入她的密碼(比如 fiddlesticks)。發生以下交換:
該協議似乎對竊聽(交換隨機數和密碼雜湊的雜湊值)和伺服器數據庫洩露(僅儲存密碼的雜湊值)都是安全的。但是,我的教授說基於密碼的身份驗證只能對其中任何一個有彈性,但不能對兩者都有彈性。因此,有人能指出為什麼這個協議對兩者都不安全嗎?
因此,有人能指出為什麼這個協議對兩者都不安全嗎?
使用此協議,“密碼”實際上是值“雜湊(“fiddlesticks”)”。因此,如果您闖入伺服器數據庫(並學習 hash(“fiddlesticks”)),則可以直接創建一個修改後的工作站程序,該程序使用值 ‘hash(“fiddlesticks”) 進行身份驗證。
也就是說,當您的教授說“基於密碼的身份驗證只能對其中一個但不能同時對兩者都具有彈性”時,我不確定您的教授是否正確。例如, Opaque可以防止伺服器數據庫洩露(數據庫洩露將允許攻擊者測試對密碼的猜測,但這似乎不是您教授的意思),並且可以防止竊聽(假設 DLog 問題很難)。