【问题标题】:Importing public Key to Google KMS将公钥导入 Google KMS
【发布时间】:2022-01-25 11:05:44
【问题描述】:

用例: 客户端将创建公钥/私钥并向我提供公钥。我想用公钥加密(RSA)消息并将消息发送给客户端。客户端将使用私钥解密消息

密钥生成: 客户端使用 openssl 生成了公钥/私钥。下面给出的命令。

openssl genrsa -des3 -out private.pem 2048
openssl rsa -in private.pem -outform PEM -pubout -out public.pem 

挑战:我想把公钥保存在某个地方。既然我们已经在使用 Google KMS,有没有办法只维护 Google KMS 中的公钥? 我已经通过https://cloud.google.com/kms/docs/importing-a-key#create_importjob 但是 以下命令失败,gcloud.kms.keys.versions.import) INVALID_ARGUMENT: Wrapped key is too short.

使用的导入命令:

gcloud kms keys versions import \
   --import-job {job_name} \
   --location {location} \
   --keyring {keyring}  \
   --key {key_name} \
   --algorithm "rsa-decrypt-oaep-2048-sha256"\
   --rsa-aes-wrapped-key-file public.pem

我也无法通过执行以下命令将公钥转换为 PCKS#8 DER 格式。获取 /crypto/pem/pem_lib.c:745:Expecting: ANY PRIVATE KEY

openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER \
    -in /path/to/publicKey.pem \
    -out /path/to/publicKey_formtted.pem

【问题讨论】:

  • 如果您的目标是将公钥存储在托管存储位置,请考虑使用 Google Cloud Secret Manager。 KMS 是存储公钥的错误服务。注意:要将 PEM 格式的 RSA 公钥转换为 DER:openssl pkey -pubin -in publicKey.pem -outform der -out publicKey.der 但是,通常最好将公钥保存在 PEM 中格式,除非需要二进制格式。另一个项目,在大多数情况下您不需要保护公钥,它们被称为 public 是有原因的。它是必须保护的私钥。

标签: google-cloud-platform rsa public-key google-cloud-kms


【解决方案1】:

Cloud KMS 旨在保护私钥或密钥。在大多数加密协议中,公钥不是机密的,因此您可以将其存储为系统的元数据,然后在应用程序中本地进行加密。

感谢您使用 GCP 和 Cloud KMS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 2013-08-06
    • 1970-01-01
    • 2022-10-22
    • 2016-08-16
    • 1970-01-01
    • 2011-01-29
    • 2023-01-17
    相关资源
    最近更新 更多