问题标签 [amazon-cloudhsm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

bash - 你怎么通过yes | 命令进入非 bash shell 的 EOF 内联 shell

我正在编写一个自动化脚本来下载 aws cloud-hsm 客户端和 pcks,以便为保管库企业部署执行 aws-cloudhsm-client init-container。

目标是自动化 HSM 集成的配置和设置,以供保管库参考。

这是一份详细说明如何操作的指南。

https://github.com/jacobmammoliti/aws-vault-cloudhsm

我的问题是 cloud-hsm 客户端提供的 cloud-hsm cli 在执行更改密码命令时没有自动是功能。为了自动执行此操作,我将它放在 EOF 块中以执行内联脚本,以使用启动脚本中的 cloud-hsm cli 对其进行配置。

问题是我试图用来yes |回答提示,但我认为 EOF 内联脚本方法不支持它,我试图找到另一种解决方法,因为 cloud-hsm cli 不支持它,这有点愚蠢的。

这是我从 Kubernetes 集群内的 ubuntu:18.04 shell 运行的测试 bash 脚本,用于测试自动化。HSM 位于专用网络上,因此我使用 pod 位于 HSM 网络内。

问题:

yes |由于 cloud-hsm 是其自己的 cli,因此无法解决此问题,我该如何解决?

0 投票
1 回答
483 浏览

java - com.cavium.provider.CaviumProvider 错误,我需要帮助才能从我的 Java 软件连接到我的 aws hsm

我想在我的 Java 软件中java -classpath "/opt/cloudhsm/java/*" org.junit.runner.JUnitCore TestBasicFunctionality使用与来自 aws loginUsingJavaProperties() 的 github 中相同的功能连接到我的 HSM(我已经在我的 aws linux 接口上配置了证书,并且我设法使用命令连接到它) ,为此,我在 awsClient jce 中恢复了导入到我的 pom 中以使用 com.cavium 的 cloudhsm-3.3.2.jar。

https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/master/src/main/java/com/amazonaws/cloudhsm/examples/LoginRunner.java

但是,经过几次测试后,我出现了这个错误,当没有关于 cavium 的类似错误时,我有些迷失,或者如果有人可以指导我,我可能没有找对地方。

谢谢 !

0 投票
0 回答
411 浏览

java - 使用带有 netty-tcnative 的非默认 openssl 引擎

问题 1)如何让 netty-tcnative 使用非默认的 openssl 引擎?就我而言,我正在尝试 cloudhsm 引擎。有没有人以类似的方式加载这个引擎或任何其他引擎的经验。我在下面记录了我遇到的问题。

问题2) netty-tcnative在日志中初始化时报告的openssl版本是否应该与本机openssl安装版本匹配?我希望它不会在我的情况下。也许这是相关的,我不确定。

更多细节 我有一个可以访问 AWS cloudHSM 的 docker 容器。我可以在命令行中使用 openssl 在容器中使用 openssl 和 cloudhsm。

一切都按我的预期工作。本机 openssl 版本为1.0.2k-fips

我需要一个使用 netty-tcnative 的 Java 应用程序来使用 openssl 访问 HSM。我不能使用 JCE 方法,因为它不适用于 JDK > JDK8。AWS 不支持 JDK11/JDK17。

我正在使用 netty-tcnative 的动态链接版本。

这很好用,我可以在使用默认引擎时看到 netty openssl 配置的详细信息。

2021-09-02 13:07:45.905 DEBUG 7 --- [main] io.netty.handler.ssl.OpenSsl:使用引擎初始化 netty-tcnative:'default' 2021-09-02 13:07:45.906 DEBUG 7 --- [
main] io.netty.handler.ssl.OpenSsl:netty-tcnative 使用本机库:OpenSSL 1.0.1e-fips 2013 年 2 月 11 日

但是要使用 HSM,我需要使用 cloudhsm 引擎。这就是麻烦开始的地方。当我尝试使用以下系统属性-Dio.netty.handler.ssl.openssl.engine=cloudhsm启用 cloudhsm 引擎时,我遇到了问题。cloudhsm 引擎根本不加载。

2021-09-02 17:19:49.433 DEBUG 7 --- [main] inutil.internal.NativeLibraryLoader :成功加载库 /tmp/libnetty_tcnative_linux_x86_64569349996051888224.so 2021-09-02 17:19:49.434 DEBUG 7 --- [ main] io.netty.handler.ssl.OpenSsl:使用引擎初始化 netty-tcnative:'cloudhsm' 从库中读取非 fips 摘要方法时出错。缓存软件摘要时出错。动态引擎:cloudhsm 加载失败 2021-09-02 17:19:49.437 调试 7 --- [
main] io.netty.handler.ssl.OpenSsl:初始化 netty-tcnative 失败;OpenSslEngine 将不可用。有关更多信息,请参阅 https://netty.io/wiki/forked-tomcat-native.html

java.lang.Exception: io.netty.internal.tcnative.SSL.initialize(Native Method)~[netty-tcnative-2.0.38.Final-linux-x86_64-fedora.jar这个平台没有实现这个功能:na] 在 io.netty.internal.tcnative.Library.initialize(Library.java:158) ~[netty-tcnative-2.0.38.Final-linux-x86_64-fedora.jar:na] 在 io.netty.handler .ssl.OpenSsl.initializeTcNative(OpenSsl.java:597) ~[netty-handler-4.1.63.Final.jar:4.1.63.Final] at io.netty.handler.ssl.OpenSsl.(OpenSsl.java:153 ) ~[netty-handler-4.1.63.Final.jar:4.1.63.Final] 在 io.netty.handler.ssl.ReferenceCountedOpenSslContext.(ReferenceCountedOpenSslContext.java:207) ~[netty-handler-4.1.63.Final .jar:4.1.63.Final] 在 io.netty.handler.ssl.OpenSslContext.(OpenSslContext.java:36) ~[netty-handler-4.1.63.Final.jar:4.1.63.Final] 在 io。 netty.handler.ssl.OpenSslClientContext.(OpenSslClientContext.java:191) ~[netty-handler-4.1.63.Final.jar:4.1.63.Final] at io.netty.handler.ssl.SslContext.newClientContextInternal(SslContext.java:830) ~[netty-handler-4.1 .63.Final.jar:4.1.63.Final] 在 io.netty.handler.ssl.SslContextBuilder.build(SslContextBuilder.java:614) ~[netty-handler-4.1.63.Final.jar:4.1.63. Final] at com.me.commands.NettyCommands.experiment(NettyCommands.java:44) ~[classes/:1.0-SNAPSHOT] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na: na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.util.ReflectionUtils。调用方法(ReflectionUtils.java:282)~[spring-core-5.3.6.jar:5.3.6] at org.springframework.shell.Shell.evaluate(Shell.java:169)~[spring-shell-core-2.0 .0.RELEASE.jar:2.0.0.RELEASE] 在 org.springframework.shell.Shell.run(Shell.java:134) ~[spring-shell-core-2.0.0.RELEASE.jar:2.0.0. RELEASE] 在 org.springframework.shell.jline.InteractiveShellApplicationRunner.run(InteractiveShellApplicationRunner.java:84) ~[spring-shell-core-2.0.0.RELEASE.jar:2.0.0.RELEASE] 在 org.springframework.boot。 SpringApplication.callRunner(SpringApplication.java:810) ~[spring-boot-2.4.5.jar:2.4.5] at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:800) ~[spring-boot-2.4 .5.jar:2.4.5] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:346) ~[spring-boot-2.4.5.jar:2.4.5] 在 org.springframework.boot.SpringApplication .运行(SpringApplication.java:1340)~[spring-boot-2.4.5.jar:2.4.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)~[spring-boot-2.4.5 .jar:2.4.5] at com.me.Application.main(Application.java:41) ~[classes/:1.0-SNAPSHOT] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~ [na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java :43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner .java:49) ~[ob-shell/:na] at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[ob-shell/:na] at org.springframework.boot.loader .Launcher.launch(Launcher.java:58) ~[ob-shell/:na] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[ob-shell/:na]

有任何想法吗?

0 投票
1 回答
105 浏览

amazon-web-services - Windows Server 上的 AWS CloudHSM 错误:证书请求处理器:未定义提供程序类型。0x80090017 (-2146893801 NTE_PROV_TYPE_NOT_DEF)

使用 AWS CloudHSM 服务在 Windows Server 上生成 CSR 时,我收到以下错误:

怎么了 ?

0 投票
0 回答
98 浏览

c# - 将 AWS CloudHSM 与 C# 应用程序集成

我正在努力寻找将AWS CloudHSM集成到我们现有的C#应用程序的可行性,并发现在理解所有流程方面有点困难。我看过 AWS CloudHSM 页面,其中的指南是可以理解的,但所有这些示例都是通过使用单独的实用程序来创建和管理 HSM、密钥、用户等。

我会试着把我到目前为止所看到的。要在 Windows 上支持 AWS CloudHSM,我需要执行以下任务。

  1. 安装 (.msi) 并配置 AWS CloudHSM 客户端以在 EC2 实例上配置和创建 HSM、用户、密钥等。

    一个。或者,我发现有一个名称为“AWSSDK.CloudHSM”“AWSSDK.CloudHSMV2”的 NuGet 包可用,它提供了有限的功能来创建和维护 HSM。包中的自述文件说:“使用 CloudHSM,您可以控制 HSM 执行的加密密钥和加密操作。” 但我没有找到使用包功能创建/导入 HSM 的方法。

套餐

  1. 如果我们想使用 CNG 和 KSP 提供商,请安装 Amazon Client SDK 3,或者安装最新的 SDK 5 以使用 PKCS #11 库。

    一个。我在 AWS 中看到了一个示例,它正在使用 C 代码。我只是想知道在 C# 中使用 CNG 和 KSP 提供程序时,我们如何从 CloudHSM 访问密钥以对数据进行签名。

问题

  1. 以上关于如何设置和使用 CloudHSM 的假设是否正确?
  2. 有人可以提供更多见解,即使是 JAVA 实施见解也会给我提示。
  3. 我错过了什么,我是否还需要设置其他东西? 
0 投票
0 回答
28 浏览

java - 如何使用 cloudhsm java 库

在 Amazon CloudHSM 命令行工具中,有一个命令findKey可以采用一堆不同的参数来按类型、类、标签等搜索键。Java 库中的等价物似乎是com.cavium.cfm2.Util.findKeys方法。该库中的类没有源代码、文档或 Javadoc,因此无法知道这些方法的参数实际表示什么。

我想弄清楚如何使用Java lib:

  1. 如何根据类型查找键?
  2. 如何返回所有键(Utils.findAllKeys(null)也许?)?

我到处寻找某种Javadoc。如果有人知道它是否存在于某处,那将是奖励。

0 投票
0 回答
11 浏览

cryptography - 函数“C_Decrypt”返回 Luna HSM 抛出的 0x5 (CKR_GENERAL_ERROR)

Luna HSM 抛出以下异常的原因可能是什么:

PS:它可以使用提供的密钥别名加载密钥。