gpt4 book ai didi

java - Google Cloud HSM 作为加密提供商

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:37 32 4
gpt4 key购买 nike

AWS 似乎允许我们将 AWS Cloud HSM 作为提供商,请参阅 herehere

Security.addProvider(new com.cavium.provider.CaviumProvider())

但是,在 GKE 的示例中,我们似乎只有充气城堡作为提供者。请参阅here

Security.addProvider(new BouncyCastleProvider());

也许我错过了一些基本的东西。

想要执行如下 JCA API 的 initsign

https://docs.oracle.com/javase/10/docs/api/java/security/Signature.html#initSign(java.security.PrivateKey)

最佳答案

我不确定确切的问题是什么,但看起来您想要编写使用来自 HSM 的私钥对数据进行签名的代码,并使其在 AWS 和 Google Cloud 上运行。执行此操作的步骤是:

  1. 加载提供程序
  2. 打开 keystore
  3. 检索私钥
  4. 使用私钥初始化签名对象(并使用要签名的数据更新它)
  5. 签名

第 1 步可以通过编程方式完成(通过 Security.addProvider,如您在问题中所写)或在 java.security 文件中静态完成。如果您希望代码与其运行的云平台无关,则可能需要考虑静态执行此操作(尽管也可以以编程方式执行此操作并保持平台无关)。

其余步骤只需要相当标准的 JCE 代码。下面是一个例子:

KeyStore keyStore = KeyStore.getInstance("type", "provider name");
PrivateKey privKey = (PrivateKey) keyStore.getKey("alias", null);
Signature sig = Signature.getInstance("transformation", "provider name");
sig.initSign(privKey);
sig.update(dataToSign);
byte[] signature = sig.sign();

您可能想从(安全的)配置文件中读取提供程序名称和 keystore 类型,因此这些不是硬编码的。完成该工作后,您将需要查看访问 keystore 检索关键对象的频率,并可能考虑缓存它们,因为 keystore 检索可能成本高昂,具体取决于所使用的 HSM 和提供程序库。这有点超出了这个问题的范围,或者至少超出了我对这个问题的解释,所以我就到此为止。希望有帮助。

关于java - Google Cloud HSM 作为加密提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394842/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com