本主题介绍如何验证import到 Cloud KMS 或 Cloud HSM 中的非对称密钥版本。
如需详细了解导入的工作原理(包括局限和限制),请参阅密钥导入。
验证导入的密钥的限制
在 Cloud KMS 外部加密的数据
要测试导入的密钥,最好的方法是将导入密钥之前加密的数据进行解密,或使用导入的密钥加密数据并在导入之前使用该密钥进行解密。
在 Cloud KMS 或 Cloud HSM 中,只有当您导入非对称密钥时才可以这样做。这是因为当使用 Cloud KMS 或 Cloud HSM 对称密钥加密数据时,有关加密密钥版本的额外元数据会与加密数据一起进行保存和加密。在 Cloud KMS 外部加密的数据中不存在此元数据。
验证证明
您可以验证关于 Cloud HSM 密钥的证明。这些证明声明该密钥是 HSM 密钥、HSM 模块由 Google 拥有,以及密钥的其他详细信息。这些证明不适用于软件密钥。
准备工作
- 将非对称密钥导入 Cloud KMS 或 Cloud HSM。如果您想验证密钥的证明,必须使用 Cloud HSM。
- 如有可能,请使用导入的密钥所在的本地系统完成本主题中的任务,以便本地系统已安装并配置 Google Cloud CLI。
- 使用本地密钥加密文件,或将使用该密钥加密的文件复制到本地系统中。
验证密钥材料是否相同
将非对称密钥导入到 Cloud KMS 或 Cloud HSM 后,密钥材料与本地密钥完全相同。如需确认这一点,您可以使用导入的密钥将导入之前使用该密钥加密的数据进行解密。
如需使用 Cloud KMS 或 Cloud HSM 密钥对文件进行解密,请执行以下操作:
gcloud kms decrypt \ --location=location \ --keyring=key-ring-name \ --key=key-name \ --ciphertext-file=filepath-and-file-to-decrypt \ --plaintext-file=decrypted-filepath-and-file.dec
如果 --plaintext-file
标志所指向的文件包含正确的解密数据,则外部密钥和导入的密钥的密钥材料是相同的。
如需了解详情,请参阅加密和解密数据。
验证对 Cloud HSM 密钥的证明
将密钥导入到 HSM 后,您可以查看证明,确认 HSM 归 Google 所有。验证 Cloud HSM 对称密钥和非对称密钥的过程有所不同。
证明不适用于 Cloud KMS 中的软件密钥。
Cloud HSM 对称密钥
您可以使用扩展的密钥校验和值 (EKCV) 密钥特性来验证导入的 Cloud HSM 密钥的密钥材料。此值系按照 RFC 5869 规范的第 2 节计算得出。该值的派生方式如下:使用基于 SHA-256 的 HMAC-based Extract-and-Expand Key Derivation Function (HKDF) 函数并以 32 个零字节作为盐值,然后使用固定字符串密钥校验值作为信息对其进行扩展。可以通过对密钥进行证明来检索此值。
Cloud HSM 非对称密钥
针对非对称密钥发出导入请求时,请在请求中包含封装的私钥。私钥包含供 Cloud KMS 派生公钥的足够信息。导入密钥后,您可以检索公钥并验证它与您本地存储的公钥是否匹配。如需详细了解如何检查公钥特性,请参阅验证公钥。
您可以使用 EKCV 验证法来验证非对称密钥。在这种情况下,其值是 DER 编码的公钥的 SHA-256 摘要。您可以通过查看密钥的证明来检索此值。如需详细了解如何检查 EKCV 密钥属性,请参阅验证密钥属性。
如需详细了解如何证明导入的密钥,请参阅对密钥进行证明