對于任何密碼系統的安全性來說,密鑰管理都是至關重要的。
密鑰管理是安全的密碼算法的前置條件,如果沒有安全的過程來處理密鑰,那么使用密碼技術就沒有任何意義。
密鑰管理是什么?
密鑰管理是密碼機制和真實系統安全性之間的接口,因此必須根據特定應用或組織的需要進行定制。
但注意,不同的體系需要不同的解決方案,沒有一種絕對正確的管理密鑰的方法。
下文關注:
- 對稱密鑰
- 公鑰對中的私鑰(既解密私鑰或簽名密鑰)
密鑰管理的流程
密鑰管理指“ 密碼學密鑰的安全管理 ”,這是一個寬泛的定義,因為密鑰管理涉及范圍很廣(可能涉及很多信息安全問題,例如物理安全、訪問控制、網絡安全、安全策略、風險管理和災難恢復),流程包括:
- 技術控制
- 可能需要特殊的硬件設備來存儲密碼學密鑰;
- 可能需要特殊的密碼協議來建立密鑰;
- 過程控制
- 指策略、實踐和流程;
- 環境控制
- 根據實際環境進行調整;
- 人為元素
- 密鑰管理最終通常涉及人來做事;
密鑰管理的兩個基本需求
這個兩個密鑰管理的基本需求,適用于密鑰生存周期的各個階段:
- 密鑰的保密性;
- 在密鑰的整個生存周期中,秘密密鑰必須對所有各方保密,除非獲得授權知道它們;
- 如使用弱密碼生成機制,容易被攻擊者確定關于密鑰信息;
- 在傳輸時容易受到攻擊,因此,必須使用安全密鑰分發機制;
- 密鑰被存儲在設備上時,可能是他們最脆弱的時候;因此存儲機制必須足夠強大,以抵御能夠訪問其設備的攻擊者;
- 如果密鑰沒有被正確銷毀,那么它可能被恢復;
- 密鑰目的保證;
- 密鑰關聯的實體信息(在對稱密碼中,可能有多個實體;在公鑰密碼,每個密鑰通常只與一個實體關聯);
- 使用密鑰的算法;
- 密鑰使用限制;(例如,某個對稱密鑰只能用于創建和驗證MAC,或者某個簽名密鑰只能用于對某個交易額的事務進行數字簽名。)
- 數據完整性;
- 將上述信息鏈接到密鑰本身(作綁定),否則就不能依賴于它;
- 在某些應用中,我們需要一個更強的要求,即對目的的保證可以向第三方證明 (provable to a third party),這可能是數字簽名方案的驗證密鑰的情況。
密鑰的生存周期
密鑰管理范圍的另一種視角是通過考慮密鑰生存周期(Key Lifecycle),它標識了在整個生存期中密鑰相關的各種進程。如下圖:

密鑰的生存期
密鑰的預期生存期(Cryptoperiod) 指的是密鑰只能在指定的時間內使用,在此期間內,密鑰是被認為可用的(Live)。一旦超過這個生存周期,密鑰將被視為過期(Expire) ,不應該被使用。此時,它可能需要 存檔(Archieve) 或 銷毀(Destroy) 。
給密鑰設置有限的生存期的原因:
- 降低密鑰泄露的風險;
- 減少密鑰管理的失敗;(例如,強制每年更換密鑰,將確保那些離職人員還保留了密鑰,他們在下一年將無法使用)
- 降低未來受攻擊的風險;
- 強制實施管理周期;(比如,對提供按年付費對電子資源的訪問,那么一年的密鑰生存周期就允許可訪問密鑰的人可以打開付費資源)
- 靈活性;
- 限制秘鑰暴露;
密鑰生成
密鑰的生存周期,從密鑰的生成開始。
- 直接用隨機數生成的數字;
密鑰長度的選擇
密鑰的長度取決于效率和安全性這個兩個維度的考量。
密鑰派生
派生出密鑰的秘密值被稱為基密鑰(Base Key).
對稱密鑰的派生方法:
-
可以使用密鑰派生函數(HKDF)派生。
-
也可以基于口令派生密鑰。
-
從組元生成密鑰。
密鑰建立
管理對稱密鑰最常用的技術就是密鑰分級(Key Hierarchy);
分級部署密鑰有兩個明顯的優勢:
- 安全分發和存儲;
- 方便可擴展的密鑰變更;
三級密鑰結構案例:
- 主密鑰(Master Encrypting Key,MEK)
一般使用硬件安全模塊(HSM)來存儲主密鑰; - 密鑰加密密鑰(Key Encrypting Key,KEK)
- 應用加密密鑰(Application Encryption Key,AEK)
- 數據加密密鑰(Data Encryption Key,DEK)
密鑰包裝:
密鑰分級中,一個密鑰的傳輸,必須在另一個密鑰的保護下。
涉及密鑰派送;
建立密碼學密鑰的方法:
- 密鑰分級
- 可伸縮的密鑰分級結構
- 單交易唯一密鑰
密鑰存儲
密鑰需要得到保護,那么密鑰存儲在哪里呢?
最好的方法是不要再任何地方存儲密碼學密鑰,而是在需要的時候動態生成它們。
存儲方式:
- 存儲在軟件中
- 存儲在硬件中
- 硬件安全模塊,提供防篡改功能,有人視圖提取密鑰,就會觸發防篡改電路。
- HSM, 會有一個或多個密鑰始終駐留在HSM中,這個密鑰稱為 本地主密鑰(Local Master Key,LMK)
- 其它類型的硬件
密鑰備份/密鑰存檔/密鑰恢復
todo
密鑰使用
什么是密鑰分離?
密鑰變更
密鑰變更的情況:
- 有計劃的密鑰變更
- 無計劃的密鑰變更
變更原理:
- 生成變建立一個新的密鑰
- 撤銷舊密鑰
密鑰激活:
密鑰激活是指授權使用密鑰的過程。
授權是基于密鑰的身份信息進行實體身份認證。

密鑰銷毀
當密鑰不在用于任何目的是,必須以安全的方式銷毀它。
遇到一下情況時,需要銷毀密鑰:
- 當密鑰過期時(密鑰的生存期的自然結束)
- 當密鑰被撤銷時
- 在密鑰存檔的必要期限結束時。
采用的技術:
數據擦除,或數據清理機制。
密鑰管理的實際流程實例
todo
總結
密碼學原語很少因其設計的弱點而受到損害,反而常常是由于密鑰管理不善而受到損害。因此,從實踐的角度來看,密鑰管理是最重要的一個環節。
密鑰管理這個是密碼學中與用戶關系最大的方面,因為它是最有可能需要在單個應用環境中進行決策和流程設計的部分。
密鑰管理由策略、流程控制組合,最終必須落到實踐。
浙公網安備 33010602011771號