非对称密钥轮替

本主题介绍了非对称密钥的密钥轮替。如果您想要了解对称密钥轮替,请参阅密钥轮替轮替密钥主题。

Cloud Key Management Service 支持自动轮替非对称密钥。下面介绍了有关手动轮替非对称密钥的原因和重要注意事项。

关于非对称密钥

非对称密钥支持数字签名和加密。非对称密钥由私钥和公钥对组成。签名通过私钥生成,且可以使用公钥验证。同样,使用公钥加密的数据只能通过私钥解密。私钥无法很容易地从公钥中派生,因此公钥可以广泛分发并用于签名验证或加密。只有私钥持有者才能访问私钥。

轮替注意事项

对称密钥轮替和非对称密钥轮替产生的影响不同。

对称密钥轮替

对称密钥的自动或手动轮替的过程包括下列步骤:

  1. 创建新密钥版本。
  2. 将新密钥版本更新为主要密钥版本。
  3. 开始使用新密钥版本。可以在调用 CryptoKey.encrypt 方法时使用此新密钥版本。在后续调用 CryptoKey.decrypt 方法时,即使新密钥版本不再是主密钥版本,Cloud KMS 也知道应使用哪个密钥版本进行解密。

对称密钥用于加密或解密时,用户需要指定密钥,而非密钥版本。用户无需修改使用的对称密钥,在轮替对称密钥时 Cloud KMS 会代表用户处理使用的加密和解密。

由于用户在轮替对称密钥时无需修改使用的密钥,因此 Cloud KMS 支持自动轮替对称密钥。

非对称密钥轮替

用于签名的非对称密钥轮替和用于加密的非对称密钥轮替产生的影响不同。在这两种情况下,使用轮替产生的影响都非常大,以致于 Cloud KMS 不支持自动轮替非对称密钥。使用轮替产生的影响非常大的原因是因为,您需要执行其他步骤才能开始使用轮替的非对称密钥,如以下几个部分所述。

用于签名的非对称密钥轮替

轮替用于签名的非对称密钥的过程包括下列步骤:

  1. 创建新密钥版本。

  2. 分发新密钥版本的公钥部分。您可以使用 CryptoKeyVersions.getPublicKey 方法检索公钥。

  3. 将新密钥版本的公钥部分加入用于签名验证的应用中。

  4. 开始使用新密钥版本。您可以在调用 CryptoKeyVersions.asymmetricSign 方法时使用新密钥版本来创建签名。包含 CryptoKeyVersions.getPublicKey 所返回公钥的应用可以验证签名。

用于加密的非对称密钥轮替

轮替用于加密的非对称密钥的过程包括下列步骤:

  1. 创建新密钥版本。

  2. 分发新密钥版本的公钥部分。您可以使用 CryptoKeyVersions.getPublicKey 方法检索公钥。

  3. 将新密钥版本的公钥部分加入用于加密的应用中。

  4. 将新密钥版本的私钥部分加入用于解密的应用中。您可以使用 CryptoKeyVersions.asymmetricDecrypt 方法进行解密。

  5. 通过调用 CryptoKeyVersions.getPublicKeyCryptoKeyVersions.asymmetricDecrypt 开始使用新的密钥版本进行加密和解密。