對稱加密是最常用的數據加密保護方式。KMS提供了簡單易用的接口,方便您在云上輕松實現數據加解密功能。
如果您不指定具體的密鑰規格(KeySpec),KMS默認創建對稱密鑰。阿里云支持主流的對稱密鑰算法并且提供足夠的安全強度,保證數據加密的安全性。
對稱密鑰的類型
算法 | 密鑰長度 | 密鑰規格 | 數據加密模式 | 保護級別 |
---|---|---|---|---|
AES | 256比特 | Aliyun_AES_256 | GCM |
|
SM4 說明 | 128比特 | Aliyun_SM4 | GCM | HSM |
加解密特性
調用Encrypt、ReEncrypt、GenerateDataKey或GenerateDataKeyWithoutPlaintext接口加密時,您只需指定用戶主密鑰的標識符(或別名),KMS使用指定的用戶主密鑰完成加密后,返回密文數據。調用Decrypt接口進行解密時,您只需要傳入密文數據,而不需要再次指定主密鑰的標識符。
使用額外認證數據
KMS的對稱密鑰使用了分組密碼算法的GCM模式,支持您傳入額外的認證數據(Additional Authenticated Data,簡稱AAD),為需要加密的數據提供額外的完整性保護。KMS對額外認證數據的傳入進行了封裝,幫助您更方便的自定義認證數據,詳情請參見EncryptionContext說明。
信封加密
KMS通過GenerateDataKey和GenerateDataKeyWithoutPlaintext接口,一次性產生兩級密鑰結構,支持更快速的實現信封加密。詳情請參見使用KMS信封加密在本地加密和解密數據。
輪轉對稱加密密鑰
KMS生成的對稱主密鑰支持多個密鑰版本,同時支持用戶主密鑰基于密鑰版本進行自動輪轉,您可以自定義密鑰輪轉的策略。
在CMK包含多個版本時,KMS的加密動作(例如:Encrypt、GenerateDataKey和GenerateDataKeyWithoutPlaintext)使用指定用戶主密鑰的最新密鑰版本對數據進行加密。解密時,您不需要傳入用戶主密鑰標識符和版本標識符,KMS會自動發現傳入密文數據使用的用戶主密鑰以及對應的加密密鑰版本,使用相應版本的密鑰材料對數據進行解密。
密鑰的自動輪轉通過產生新的密鑰版本來實現。輪轉后,調用KMS接口產生的密文數據自動使用最新版本,而輪轉之前產生的密文數據仍然可以使用舊的密鑰版本解密。詳情請參見自動輪轉密鑰。
使用自帶密鑰
為了滿足更高的安全合規要求,KMS支持您使用自帶密鑰(BYOK)進行云上數據的加密保護。對于自帶密鑰的情形,我們推薦您使用托管密碼機對密鑰進行保護,將您的密鑰導入到保護級別為HSM的用戶主密鑰中。導入到托管密碼機中的密鑰只能被銷毀,其明文無法被導出。詳情請參見導入密鑰材料。