AWS CloudHSM 使用汇总

近期发布了多篇和CloudHSM加密相关的文章,汇总在这里,集合了CloudHSM基础使用知识,从SDK选择、SDK适配、实现密钥管理、加密、解密、PKCS相应算法和封装等,并提供使用JCE Provider SDK的Java示例代码。

:更新于2026年4月

一、CloudHSM 初始化 及 Java JCE Provider SDK使用

1、CloudHSM集群创建和基础的密钥生成、加密、解密、Wrap/Unwrap机制(基于JCE Provider)

CloudHSM开机上手及IoT场景加密算法设计最佳实践:https://blog.bitipcman.com/post/cloudhsm-java-sdk-getting-started-and-best-practices/

Java示例代码:https://github.com/aobao32/cloudhsm-101

2、ECC签名和证书签发

JCE Provider 实现 ECC 签名和证书签发:https://blog.bitipcman.com/post/cloudhsm-ecdsa-java-sample/

Java示例代码:https://github.com/aobao32/cloudhsm-openssl-dynamic-engine/blob/main/java-ecc-demo/java-ecdsa.md

3、PKCS7实现(基于JCE Provider)

使用CloudHSM完成PKCS#7分离签名(Detached Signature):https://blog.bitipcman.com/post/cloudhsm-pkcs7-signature/)

Java示例代码:https://github.com/aobao32/cloudhsm-pkcs7-demo

4、PKCS12实现(基于JCE Provider)

CloudHSM实现不导出私钥明文场景下的PKCS#12密钥封装:https://blog.bitipcman.com/post/cloudhsm-pkcs12-wrapping/

Java示例代码:https://github.com/aobao32/cloudhsm-pkcs12-demo

5、3DES-CBC-Padding替代3DES MAC

在CloudHSM上用3DES-CBC替代3DES-MAC:https://blog.bitipcman.com/post/cloudhsm-3des-cbc/

Java示例代码:https://github.com/aobao32/cloudhsm-3des-cbc/tree/main/src/main/java/com/example/cloudhsm/des

6、实现 None-With-RSASSA-PSS 签名(PKCS#1)

CloudHSM 使用 JCE Provider SDK 5 实现 None-With-RSASSA-PSS 签名:https://blog.bitipcman.com/post/cloudhsm-none-with-rsassa-pss/

Java示例代码:https://github.com/aobao32/cloudhsm-none-with-rsassa-pss#

二、使用 PKCS#11 库(libcloudhsm_pkcs11.so)

1、Java不引用JCE Provider库而是基于 SunPKCS11 库实现 PKCS11 实现

CloudHSM Java PKCS#11 - ECC 密钥生成与自签名 CA 证书签发:https://blog.bitipcman.com/post/cloudhsm-java-pkcs11/

Java示例代码:https://github.com/aobao32/cloudhsm-java-pkcs11

2、使用 OpenSC 的 pkcs11-tool 命令行工具实现加密和解密

使用OpenSC的PKCS11-tool命令行工具对CloudHSM进行操作:https://blog.bitipcman.com/post/cloudhsm-pkcs11-cli-tool/

三、使用使用OpenSSL Dynamic Engine

1、使用 OpenSSL Dynamic Engine 命令行工具实现ECC签名和证书签发

使用OpenSSL Dynamic Engine调用CloudHSM加密机内的密钥完成签名和证书签发:https://blog.bitipcman.com/post/cloudhsm-openssl-dynamic-engine/

四、密码学基础

1、使用带密码保护的rsa密钥进行加密和解密(在CloudHSM外实现)

阅读本文:https://blog.bitipcman.com/post/java-jce-password-protected-key/


最后修改于 2026-04-29