One-Time-Password

指示 hotp 計數的計數器

  • March 17, 2014

當我看到 Thomas Pornin [來源] 對它如何工作的解釋時,我試圖弄清楚 HOTP 是如何避免結束的:

預期的場景如下:客戶端有一個手持設備,它輸出連續的密碼,每個按鈕按下一個新密碼。客戶端可以在兩次登錄嘗試之間按下按鈕幾次。伺服器“打賭”客戶端在嘗試再次登錄之前不會按下按鈕超過 100 次:所以伺服器使用 $ w \leq100 $ . 如果您讓您 3 歲的侄子玩一整個下午的 HOTP 設備,很可能它會失去太多同步,並且無法再登錄。

假設使用者不必輸入 OTP 值或計數器編號(假設它類似於 yubikey),在給出結果之前讓設備向站點提供計數器編號的缺點是什麼OTP 檢查?

如果您假設一個設備可以直接與伺服器通信,那麼如果正確實現它就沒有真正的缺點:

  • 令牌表示計數器,這只是一個可預測的隨機數(無需保密)。
  • 然後它根據隨機數和密鑰給出 OTP。

為了避免重放攻擊,伺服器必須檢查自上次登錄以來計數器是否增加,但應該沒問題。

但是,如果伺服器和令牌之間的這種直接通信通道不是單向的,那麼您不需要 OTP,但您可以執行標準的質詢-響應身份驗證協議。唯一改變的是伺服器選擇挑戰而不是使用計數器。

順便說一句,為了避免中間人,進行相互身份驗證很有用,而不僅僅是一種方式。

引用自:https://crypto.stackexchange.com/questions/14976