Public-Key
保護密鑰庫
生成公私密鑰對時,您可以選擇使用密碼保護密鑰庫。
該密碼儲存在哪裡,它是儲存的散列版本,如果是這樣,使用哪種散列算法?
當我們開始談論 Maarten 在此評論中提到的密鑰儲存的共享訪問權限時,可以做很多花哨的事情。我會堅持一個非常簡單的設置。您有一個私鑰文件(例如,ssh 私鑰)。您不希望竊取您的筆記型電腦的攻擊者訪問該文件,因此該軟體要求您提供密碼以控制對該文件的訪問。
這些通常的工作方式是使用您的密碼生成對稱密鑰(例如,使用 bcrypt 或 PFKDF2)。然後使用這些密鑰來加密私鑰文件。這將使用經過身份驗證的加密操作模式來完成。這些模式產生密文和標籤,可用於確保密文沒有更改(注意:密文上的HMAC等 MAC也可以工作)。
現在,當您將來再次提供密碼來解密文件時,軟體會通過相同的函式執行該密碼以生成密鑰。如果提供相同的密碼,則會生成相同的密鑰。然後它可以嘗試解密文件。如果提供了錯誤的密鑰,或者密文已被更改,則由於使用的操作模式,解密將失敗。
因此,密文上的身份驗證標籤用於確定是否提供了錯誤的密碼或密文已被更改。