本主题介绍了如何验证 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 派生而来 提取和展开密钥派生函数 (HKDF),其中以 32 个零字节作为盐和 使用固定字符串 Key Check Value 作为信息对其进行扩展。要检索此内容,请执行以下操作: 值,您可以证明密钥。
Cloud HSM 非对称密钥
针对非对称密钥发出导入请求时,请在请求中包含封装的私钥。私钥包含供 Cloud KMS 派生公钥的足够信息。导入密钥后,您可以检索公钥并验证它与您本地存储的公钥是否匹配。如需详细了解如何检查公钥特性,请参阅验证公钥。
您可以使用 EKCV 验证法来验证非对称密钥。在这种情况下,其值是 DER 编码的公钥的 SHA-256 摘要。您可以通过查看密钥的证明来检索此值。如需详细了解 检查 EKCV 密钥属性,请参见 验证密钥属性。
如需详细了解如何证明导入的密钥,请参阅对密钥进行证明