所有 HSM 实例的已知问题 - AWS CloudHSM

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

所有 HSM 实例的已知问题

以下问题会影响所有 AWS CloudHSM 用户,无论他们使用的是 key_mgmt_util 命令行工具、PKCS #11 SDK、JCE SDK 还是 OpenSSL SDK。

问题:AES 密钥包装使用 PKCS #5 填充,而不是提供与标准兼容的使用零填充的密钥包装

此外,不支持不使用填充和使用零填充的密钥包装。

  • 影响:如果您在其中使用此算法进行 AWS CloudHSM封装和解包,则不会产生任何影响。但是,使用封装的密钥 AWS CloudHSM 不能在要求符合无填充规范的其他 HSM 或软件中解包。这是因为,在执行与标准兼容的解开包装操作期,您的密钥数据后面可能会添加 8 字节的填充数据。外部封装的密钥无法正确解封到实例中。 AWS CloudHSM

  • 变通办法:要在外部对某个密钥解开包装,而该密钥是在 AWS CloudHSM 实例上使用 AES 密钥包装和 PKCS #5 填充进行包装的,则您必须先去除额外的填充,然后才能尝试使用该密钥。您可以通过以下方式执行此操作:在文件编辑器中修剪额外的字节,或者只将密钥字节复制到您代码中的新缓冲区。

  • 解决状态:对于 3.1.0 客户端和软件版本, AWS CloudHSM 为 AES 密钥包装提供符合标准的选项。有关更多信息,请参阅 AES 密钥包装

问题:客户端进程守护程序要求其配置文件中至少有一个有效的 IP 地址才能成功连接到集群

  • 影响:如果您删除了集群中的所有 HSM,然后添加了获得新 IP 地址的另一个 HSM,客户端守护程序将继续在您的 HSM 的原始 IP 地址搜索它们。

  • 解决办法:如果您运行间歇性工作负载,我们建议您使用CreateHsm函数中的IpAddress参数将 elastic network interface (ENI) 设置为其原始值。请注意,ENI 是特定于可用区 (AZ) 的。替代方法是删除 /opt/cloudhsm/daemon/1/cluster.info 文件,然后将客户端配置重置为新 HSM 的 IP 地址。您可以使用 client -a <IP address> 命令。有关更多信息,请参阅安装和配置 AWS CloudHSM 客户端 (Linux)安装和配置 AWS CloudHSM 客户端 (Windows)

问题: AWS CloudHSM 使用客户端 SDK 3 可以进行哈希处理和签名的数据上限为 16 KB

  • 解决状态:大小小于 16KB 的数据继续发送至 HSM 进行哈希处理。我们添加了在软件中对于大小介于 16KB 和 64KB 之间的数据本地进行哈希处理的功能。如果数据缓冲区大于 64KB,客户端 SDK 5 将明显失败。您必须将您的客户端和 SDK 更新到高于 5.0.0 或更高版本才能从此修复中受益。

问题:无法将导入的密钥指定为不可导出

  • 解决状态:此问题已修复。您无需执行任何操作,即可从修复获益。

问题:wrapKey 的默认机制和 key_mgmt_util 中的 unWrapKey命令已被删除

  • 解决方案:使用 WrapKey 或 unWrapKey 命令时,必须使用-m选项来指定机制。有关更多信息,请参阅 WrapKeyunWrapKey文章中的示例。

问题:如果您在集群中有一个 HSM,HSM 失效转移将无法正常工作

  • 影响: 如果集群中的单个 HSM 实例失去连接,客户端将不会与其重新连接,即使 HSM 实例稍后恢复。

  • 解决方法:我们建议任意生产集群中至少有两个 HSM 实例。如果您使用此配置,将不会受此问题影响。对于单个 HSM 集群,退回客户端守护程序以恢复连接。

  • 解决状态: 此问题已经在 AWS CloudHSM 客户端 1.1.2 发布版中解决。您必须升级到此客户端,才能从修复中获益。

问题:如果在短时间内超过集群中 HSM 的密钥容量,客户端会输入未处理的错误状态

  • 影响: 当客户端遇到未处理的错误状态时会冻结,必须重新启动。

  • Workaround: (解决方法) 测试您的吞吐量,以确保您未以客户端无法处理的速率创建会话密钥。您可以通过将 HSM 添加到集群降低您的速率,或减慢会话密钥创建过程。

  • 解决状态: 此问题已经在 AWS CloudHSM 客户端 1.1.2 发布版中解决。您必须升级到此客户端,才能从修复中获益。

问题:大小大于 800 字节的 HMAC 密钥的摘要操作不受支持

  • 影响: 大于 800 字节的 HMAC 密钥可以在 HSM 上生成或导入。但是,如果通过 JCE 或 key_mgmt_util 在摘要操作中使用这个较大的密钥,操作将失败。请注意,如果您使用的是 PKCS11,HMAC 密钥的大小限制为 64 个字节。

  • 解决方法: 如果要使用 HSM 上摘要操作的 HMAC 密钥,请确保大小小于 800 字节。

  • 解决状态:此时为无。

问题:与客户端软件开发工具包 3 一起分发的 client_info 工具会删除由可选输出参数指定的路径的内容

  • 影响:指定输出路径下的所有现有文件和子目录可能会永远丢失。

  • 变通办法:使用该 client_info 工具时请勿使用可选参数 -output path

  • 解决状态:此问题已在客户端软件开发工具包 3.3.2 发布版中解决。您必须升级到此客户端,才能从修复中获益。

问题:在容器化环境中使用 --cluster-id 参数运行 SDK 5 配置工具时收到错误

在配置工具中使用 --cluster-id 参数时,您会收到以下错误:

No credentials in the property bag

此错误由 Instance Metadata Service 版本 2 (IMDSv2, Instance Metadata Service Version 2) 的更新引起。有关更多信息,请参阅 IMDSv2 文档。

  • 影响:此问题将影响在容器化环境中在 SDK 版本 5.5.0 及更高版本上运行配置工具以及利用 EC2 实例元数据提供凭证的用户。

  • 变通办法:将 PUT 响应跃点限制设置为至少两个。有关执行此操作的指导,请参阅配置实例元数据选项

问题:您收到错误 “无法从提供的 pfx 文件创建证书/密钥。错误: NotPkcs8 英寸

  • 影响:使用证书和私钥重新配置 SSL 的 SDK 5.11.0 用户如果私钥不是 PKCS8 格式,则其私钥将失败。

  • 解决方法:您可以使用 openssl 命令将自定义 SSL 私钥转换为 PKCS8 格式:openssl pkcs8 -topk8 -inform PEM -outform PEM -in ssl_private_key -out ssl_private_key_pkcs8

  • 解决状态:此问题已在客户端 SDK 5.12.0 版本中得到解决。您必须升级到此客户端版本或更高版本才能从此修复中受益。