Authentication
基於 HMAC 的質詢-響應認證
質詢響應 HMAC 身份驗證是否安全?
IE
- 客戶端發送 id
- 伺服器發送挑戰(32 字節值)
- Client用自己的key計算challenge值的hmac_sha256並發送reply
- 伺服器驗證回复
這與對稱質詢-響應身份驗證一樣安全。一些備註:
- 在認證協議中,唯一的保證是被認證方參與了協議。很可能有一個中間人。
- 如果所有客戶端都必須以這種方式進行身份驗證而不考慮 ID,則步驟 1(發送客戶端 ID)可以合併為 3。
- 在第 2 步,伺服器的挑戰應該是唯一且不可預測的。使其可靠並不像看起來那麼容易。
- 在第 4 步,伺服器必須能夠從隨機密鑰數據庫或主密鑰和密鑰派生函式中獲取或重新生成客戶端的密鑰。
最大的問題是
- 所述數據庫或主密鑰可能會洩漏給伺服器,並且 poof 保證了所有安全性。一種很好的緩解措施是在伺服器中使用安全令牌(HSM、智能卡..),經過程式,它只能檢查對挑戰的響應。
- 從避免伺服器洩漏的角度來看,最終的解決方案是當那裡有註意秘密時。挑戰/響應用簽名替換 HMAC就可以做到這一點。
- 身份驗證是一回事,保護接下來的內容更好。這就是我們有身份驗證和密鑰協商協議的原因。好人抵制中間人。
- 客戶端的密鑰(對稱或非對稱)可能在客戶端受到損害。對客戶端中的靜態密鑰進行加密的密碼(和正確的基於密碼的密鑰派生)可能會有所幫助,但不如直接使用密碼作為身份驗證方式方便。這就是我們有SRP 和 ISO/IEC 11770-4的原因。