密钥封装

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

密钥封装是使用一个密钥加密另一个密钥的过程,加密后便可以安全存储或通过不受信任的渠道进行传输。密钥封装可能基于对称加密或非对称加密(根据具体情况而定)。

在 Cloud Key Management Service 中,密钥封装用于安全导入用户提供的加密密钥。导入密钥需要一个导入作业,并且每个导入作业都有一个导入方法,用于指定要使用的密钥封装协议。

Cloud KMS 要求已导入密钥材料采用特定格式。 在封装密钥材料以进行导入之前,您可能需要将其转换为 Cloud KMS 要求的格式。格式化密钥以进行导入包含所需格式的详细信息,并说明如何根据需要将密钥转换为所需的格式。

密钥材料格式正确后,Google Cloud CLI 可以先自动封装密钥材料,然后再将其安全传输到 Cloud KMS。如需了解详情,请参阅导入密钥。 您也可以使用适当的加密协议手动封装您的密钥。在 Linux 上使用 OpenSSL 封装密钥举例说明了如何执行此操作。

导入方法

Cloud KMS 提供了以下导入方法:

导入方法 导入作业密钥类型 密钥封装算法
RSA_OAEP_3072_SHA1_AES_256 3072 位 RSA 带有 SHA-1 和 AES-KWP 的 RSAES-OAEP
RSA_OAEP_4096_SHA1_AES_256 4096 位 RSA 带有 SHA-1 和 AES-KWP 的 RSAES-OAEP
RSA_OAEP_3072_SHA256_AES_256(预览 3072 位 RSA 带有 SHA-256 + AES-KWP 的 RSAES-OAEP
RSA_OAEP_4096_SHA256_AES_256(预览 4096 位 RSA 带有 SHA-256 + AES-KWP 的 RSAES-OAEP
RSA_OAEP_3072_SHA256(预览 3072 位 RSA 带有 SHA-256 的 RSAES-OAEP
RSA_OAEP_4096_SHA256(预览 4096 位 RSA 带有 SHA-256 的 RSAES-OAEP

密钥封装算法

Cloud KMS 提供的导入方法对应于以下密钥封装算法:

带有 SHA-1/SHA-256 + AES-KWP 的 RSAES-OAEP

此密钥封装算法是一种混合加密方案,它由非对称密钥封装操作和对称密钥封装操作组成:

  1. 导入作业中的公钥用于加密一次性 AES-256 密钥。系统会使用 RSAES-OAEP 和 MGF-1 以及导入方法指定的摘要算法执行加密。一次性 AES-256 密钥在执行封装时生成。
  2. 可使用第 1 步中的一次性 AES-256 密钥并通过使用填充算法封装 AES 密钥来加密目标密钥材料。

用于导入的封装密钥材料是一个单字节数组,由第 1 步的结果和第 2 步的结果组成。换句话说,第 1 步和第 2 步的结果合并在一起便构成了封装密钥材料。

此算法与 PKCS #11 密钥封装算法 CKM_RSA_AES_KEY_WRAP 相同。如果要从 HSM 导入密钥,并且您的 HSM 支持此算法,您便可以直接使用该算法。此外,也可以分别使用 PKCS #11 机制 CKM_RSA_PKCS_OAEPCKM_AES_KEY_WRAP_PAD 执行上述的第 1 步和第 2 步。

如果来源 HSM 或其他密钥提供商(若未使用 HSM)不支持 RSA AES 密钥封装机制,则您必须使用导入作业的公钥手动封装密钥材料。如需了解如何使用 OpenSSL 执行此操作的示例,请参阅在 Linux 上使用 OpenSSL 封装密钥

带有 SHA-256 的 RSAES-OAEP

这是一个非对称密钥封装操作,使用 RSAES-OAEP 的导入作业中的公钥,使用 MGF-1 和 SHA-256 摘要算法直接加密目标密钥材料。它基于 PKCS #11 RSA OAEP 机制 CKM_RSA_PKCS_OAEP。请注意,相对于 RSA 模数大小,要封装的密钥材料大小存在限制,如 CKM_RSA_PKCS_OAEP 中所述。