我想知道 AWS CloudHSM 客户端端到端加密的工作原理,以及使用了哪些 HSM 证书。
简短描述
CloudHSM 客户端与 CloudHSM 集群内的 HSM 之间的端到端加密连接是通过两个嵌套的 TLS 连接建立的。有关更多信息,请参阅 CloudHSM client end-to-end encryption。
解决方法
按照以下说明设置与 HSM 的端到端加密通信。
**注意:**请务必使用指定的证书以避免 TLS 连接失败。
服务器 TLS 连接
建立从客户端到托管 HSM 硬件的服务器的 TLS 连接。这是服务器和客户端之间的双向 TLS 连接。
服务器发送自签名证书。您可以运行类似于以下内容的命令来查看此自签名证书的详细信息:
serial=B7FA7A40976CBE82
issuer= /C=US/ST=Virginia/L=Herndon/O=AWS/OU=AWS Cryptography/CN=CloudHSM/emailAddress=cloudhsm-team@amazon.com
subject= /C=US/ST=Virginia/L=Herndon/O=AWS/OU=AWS Cryptography/CN=CloudHSM/emailAddress=cloudhsm-team@amazon.com
$ openssl s_client -connect <HSM_IP>:2223 2> /dev/null | openssl x509 -subject -issuer -serial -noout
HSM 客户端验证此证书是否包含在 /opt/cloudhsm/etc/cert 目录下的 CA 信任路径中。cloudhsm-client 软件包中包含两个证书,如下所示:
$ cd /opt/cloudhsm/etc/certs
$ ls
21a10654.0 712ff948.0
$ openssl x509 -subject -issuer -serial -noout -in 21a10654.0
subject= /C=US/ST=Virginia/L=Herndon/O=AWS/OU=AWS Cryptography/CN=CloudHSM/emailAddress=cloudhsm-team@amazon.com
issuer= /C=US/ST=Virginia/L=Herndon/O=AWS/OU=AWS Cryptography/CN=CloudHSM/emailAddress=cloudhsm-team@amazon.com
serial=B7FA7A40976CBE82
$ openssl x509 -subject -issuer -serial -noout -in 712ff948.0
subject= /C=US/ST=Virginia/L=Herndon/O=AWS/OU=Cryptography/CN=CloudHSM/emailAddress=cloudhsm-team@amazon.com
issuer= /C=US/ST=Virginia/L=Herndon/O=AWS/OU=Cryptography/CN=CloudHSM/emailAddress=cloudhsm-team@amazon.com
serial=A7525B285D1C2BB5
HSM 客户端将客户端证书发送到 /opt/cloudhsm/etc/client.crt 目录。客户端证书必须是 CloudHSM 客户端包含的默认证书或 /opt/cloudhsm/etc/customerca.crt 目录下的 CloudHSM 客户端 CA 证书。
服务器验证这是默认证书还是 customerCA.crt颁发的证书。
HSM TLS 连接
在第一个 TLS 连接层内建立从客户端到 HSM 的第二个 TLS 连接。服务器发送集群初始化期间颁发的 CloudHSM 集群证书。使用以下命令下载证书:
aws cloudhsmv2 describe-clusters --query "Clusters[?ClusterId=='<Cluster_ID>'].Certificates.ClusterCertificate" --output text
客户端会验证这是 /opt/cloudhsm/etc/customerca.crt 目录中由 customerCA.crt 颁发的证书。然后,客户端验证与集群中 HSM 的连接。
**注意:**无法更改或续订服务器证书和 CloudHSM 集群证书。