密鑰常用於保護特定的資料,因此,資料的安全依賴於密鑰的安全。您可以通過密鑰版本化和定期輪轉來加強密鑰使用的安全性,實現資料保護的安全性原則和最佳實務。
實現安全目標
您可以通過周期性輪轉密鑰,達成以下安全目標:
- 減少每個祕密金鑰加密的資料量
一個密鑰的安全性與被它加密的資料量呈反相關。資料量通常是指同一個祕密金鑰加密的資料總位元組數或總訊息數。例如,NIST將GCM模式下一個密鑰的安全生命週期定義為基於其加密的總訊息數。通過定期輪轉密鑰而改變加密金鑰的方式,可以使得每個密鑰具有更高的安全閾值和更小的密碼分析攻擊面。
- 提前具備響應安全事件的能力
在系統設計的早期,引入密鑰輪轉的功能並將其作為日常營運手段。這樣可以使系統在特定安全事件發生時具備實際執行能力,符合軟體工程中Fail Early、Fail Often的原則。如果第一次執行(突發性)密鑰輪轉是在響應具體事件的情形下,並且發生在運行中的系統上,則發生故障的機率會被無限放大。
- 對資料形成邏輯上的隔離
輪轉加密金鑰使得輪轉前後產生的密文資料形成事實上的隔離效果。特定密鑰的安全事件可以被快速定義影響範圍,從而採取進一步措施。
- 減小破解密鑰的時間視窗
如果在定期輪轉加密金鑰的基礎上,將舊的加密金鑰產生的密文資料用新的加密金鑰輪轉加密,則輪轉周期即為一個密鑰的破解時間視窗。這意味著惡意者只有在兩次輪轉事件之間完成破解,才能拿到資料。這對於保護資料不受密碼分析(Cryptanalysis)攻擊具有很強的實踐意義。
滿足合規規範
密鑰的周期性輪轉功能可以方便企業符合各種合規規範。與密鑰輪轉相關的合規規範包含(但不限於):
- 支付卡行業資料安全標準(PCI DSS)。
- 中國國家密碼管理局發布的密碼行業相關標準,例如:GM/T 0051-2016。
- 美國國家標準技術委員會(NIST)發布的密碼使用相關標準,例如:NIST Publication 800-38D。