Passwords
關於 GnuPG 私鑰磁碟儲存的安全性
密鑰材料的 GnuPG 磁碟儲存使用 AES-128 加密,加密密鑰通過給定密碼的迭代和加鹽 SHA-1 雜湊生成。
SHA-1 散列函式的這種用法是否安全?如果是,即使在遙遠的將來,它是否仍然安全?
是的,*當涉及到 SHA-1 時,*它可能是安全的。
正如您提到的,S2K 函式只是將 8 字節鹽和編碼密碼重複輸入到正在進行的雜湊函式中,直到處理了一定數量的字節(此函式的工作因素)。然後它產生一個小於散列輸出大小的鍵。
現在這個輸出是一個 AES 密鑰,我們可以假設這個密鑰不能被檢索,也不能被儲存。由於您控制了鹽和密鑰,因此不可能使用 SHA-1 的衝突弱點:即使 S2K 輸出中的衝突也是無用的。同樣,對 S2K 的原像攻擊也是無用的,因為 S2K 雜湊的輸出根本不可用。
唯一可能的問題是 SHA-1 被證明具有如此短的周期,以至於多個輸入可以產生相同的 S2K 輸出。在這種情況下,可能更容易找到匹配的輸入,因為多個輸入值會匹配。但是有鹽、相對較短的密碼、SHA-1 的高循環大小等,這使得這種可能性極小;這真的是在抓稻草。
綜上所述,S2K 遠非完美。SHA-1 很容易安裝到硬體中(如果目前 CPU 中還沒有),S2K 不使用記憶體來使 GPU 或其他專用硬體上的雜湊密碼變得困難。
最大的弱點是並且仍然是密碼。我寧願花時間確保使用者非常努力地使用強密碼。因為如果密碼遠小於 50 位,那麼世界上所有的密碼學都將無關緊要。
基本上,對密碼的字典/暴力攻擊總是更有效。花時間避免這些。