Hmac

可以從以前的密鑰中推斷出未來的基於時間的密鑰嗎?

  • August 14, 2021

如果由 Google Authenticator 等身份驗證器應用生成的基於時間的密鑰被洩露,是否可以從洩露的密鑰中推斷出未來的密鑰?

如果通過“基於時間的密鑰”,您的意思是使用者輸入的六到八位一次性密碼,那麼不,破壞其中之一不會破壞未來的密碼。這是因為一次性密碼是從 HMAC 輸出生成的,其中共享密鑰作為密鑰,時間戳作為值。如果攻擊者可以從一組已知輸出中確定共享密鑰或其他輸出,那麼 HMAC 就不是安全的消息認證程式碼,我們目前認為它是。

此外,一次性密碼僅來自其中四個字節,因此即使發現具有給定散列函式的 HMAC 不安全,TOTP 結構的設計也是為了在選擇字節的方式上增加一些額外的攻擊抵抗力。但是,如上所述,我們沒有理由相信帶有 SHA-1、SHA-256 或 SHA-512(TOTP 中使用的結構)的 HMAC 在以這種方式使用時比暴力破解更容易受到攻擊.

如果“基於時間的密鑰”是指用於派生一次性密碼的共享密鑰(通常嵌入在掃描的二維碼中),那麼是的,這是一個完全妥協,因為這是整個共享密鑰,它是可以從中得出所有過去和未來的輸出。

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