One-Time-Password

TOTP 相對於 HOTP 有什麼優勢?

  • February 26, 2017

基於 HMAC 的一次性密碼 (HOTP) 於 2005 年 12 月作為資訊性 IETF RFC 4226 發布。2011 年 5 月,基於時間的一次性密碼算法 (TOTP) 正式成為 RFC 6238。它引入了哪些優勢?

優勢之一純粹是在安全方面的人性化方面。來自 RFC 6238 的摘要:

HOTP 算法指定基於事件的 OTP 算法,其中移動因子是事件計數器。目前的工作將移動因子基於時間值。OTP 算法的基於時間的變體提供了短暫的 OTP 值,這是增強安全性所需要的

(強調我的。)

TOTP 密碼是短暫的,它們僅適用於給定的人類時間。HOTP 密碼的壽命可能更長,它們適用於未知的人類時間。

對“增強的安全性”的引用是指(至少)兩個領域:受損密鑰的價值和攻擊密鑰的能力。

首先,如果目前的 HOTP 密碼被洩露,它可能會在“很長時間”內有效。確保在人類時間內頻繁使用 HOTP 並不是 HOTP 設計的一部分,因此目前的 HOTP 密碼的有效期是未知的,我們必須假設最壞的情況,即它將是一個“長“ 時間。這允許攻擊者在閒暇時使用已洩露的密碼。但是如果目前的 TOTP 被破壞,它將不會在很長時間內有用,因為在一個 TOTP 時間增量中,它將失效。當然,理論上攻擊者可以在極短的時間內獲取和使用密碼,但它確實阻止了實際的人類方面。例如,查看您目前的 Paypal 密鑰(每 30 秒旋轉一次,IIRC)的人不能回家嘗試稍後使用它,他們此刻將不得不沖向一台電腦。洩露密鑰的人可能直到密鑰過期後才意識到這一點。等等。

其次,如果您正在攻擊一個密鑰,那麼您的工作可能會因為目標移動而在每次 TOTP 增量時失效或回退。也許攻擊者發現了一種針對 OTP 方案的攻擊,該方案允許他們僅在他們擁有最後 10 個密碼中的某個數量時才能預測下一個密碼,但這樣做需要大約 2 小時的計算時間。如果 OTP 每分鐘都在變化,那麼他們的攻擊幾乎毫無用處。暴力攻擊也被抑制,因為下一個密碼每次都選擇相同的分佈;有可能暴力耗盡密碼空間而找不到密碼。TOTP 並沒有消除這些類型的攻擊,但希望它限制了哪些攻擊能夠有效。

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