密鑰服務是KMS的核心組件,支持管理軟件密鑰、硬件密鑰、默認密鑰,提供密鑰的全生命周期管理和安全存儲能力,同時支持基于云原生接口的極簡數據加密和數字簽名。本文介紹KMS提供的密鑰管理類型及密碼運算API。
密鑰管理類型
KMS提供默認密鑰、軟件密鑰和硬件密鑰、外部密鑰四種密鑰管理類型,以滿足不同業務場景、安全與合規要求。具體內容如下表所示。
使用默認密鑰無需購買KMS實例,使用軟件密鑰、硬件密鑰、外部密鑰,需要購買KMS實例。關于實例功能間的區別,請參見產品選型。
密鑰管理類型 | 應用場景 | 功能描述 | 算法類型 | 密鑰規格 | 說明 |
默認密鑰 | 被云產品集成用于服務端加密。更多信息,請參見云產品集成KMS加密概述。 | 僅支持數據加密解密。 | AES | Aliyun_AES_256 | 默認密鑰包含:
|
軟件密鑰 |
| 支持數據加密解密和數字簽名。 | AES、RSA、ECC |
更多信息,請參見密鑰管理類型和密鑰規格。 | 由您在KMS創建和管理生命周期,密鑰材料由KMS生成。 說明 暫不支持您自主導入密鑰材料。 |
硬件密鑰 |
| 支持數據加密解密和數字簽名。 | AES、RSA、ECC、SM4 |
更多信息,請參見密鑰管理類型和密鑰規格。 | 由您在KMS創建和管理生命周期,密鑰材料可由KMS生成,也可以由您自主導入。 重要 使用硬件密鑰管理功能前,您需要購買加密服務提供的密碼機實例并完成密碼機集群的相關配置。具體操作,請參見配置KMS硬件密鑰管理實例的密碼機集群。密碼機實例可滿足GM/T 0028 第二級的合規性。 |
外部密鑰 |
| 支持數據加密解密。 | AES、SM4 | Aliyun_AES_256、Aliyun_SM4 | 密鑰由您在XKI管理服務中創建,然后導入到KMS中。在XKI中創建的密鑰由您自行管理生命周期。 |
密碼運算API
KMS提供了云原生的密碼運算API,與傳統密碼機或密碼軟件庫的API相比更簡單易用。同時,KMS提供了多種SDK以加速開發過程。關于應用程序如何集成主密鑰進行數據加密、解密等密碼方案,請參見SDK參考。
使用KMS提供的密鑰接口前,請關注以下信息:
AdvanceEncrypt、AdvanceDecrypt、AdvanceGenerateDataKey和GenerateDataKey:KMS密鑰應為對稱密鑰。
Encrypt和Decrypt:KMS密鑰可以為對稱密鑰,也可以為非對稱密鑰。
Sign、Verify和GetPublicKey:KMS密鑰應為非對稱密鑰。
API | 描述 |
用于將明文數據通過KMS密鑰加密為密文。 重要
| |
將使用KMS密鑰加密的密文解密為明文。 | |
用于生成數據密鑰,對數據按照KMS信封加密方式加密。 重要 您需要存儲密文(CiphertextBlob)和認證數據(Aad),然后使用AdvanceDecrypt解密。 | |
用于將明文數據通過KMS密鑰加密為密文。 重要 您需要存儲密鑰的全局唯一標識符(KeyId)、密文(CiphertextBlob)、加密算法(Algorithm)、初始向量(Iv)、填充模式(PaddingMode)和認證數據(Aad),然后使用Decrypt或AdvanceDecrypt解密。 | |
將使用KMS密鑰加密的密文解密為明文。 | |
用于生成數據密鑰,對數據按照KMS信封加密方式加密。 | |
使用非對稱密鑰進行簽名。 重要 您可以通過Verify接口驗證簽名,也可獲取公鑰(GetPublicKey)到本地自行驗證簽名。 | |
使用非對稱密鑰進行驗簽。 | |
獲取指定非對稱密鑰的公鑰。 |