本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义 IV 不符合 AWS CloudHSM 中的 AES 密钥包装长度要求
本故障排除主题可帮助您确定应用程序是否会生成无法恢复的包装好的密钥。如果您受到此问题的影响,请使用此主题来解决该问题。
确定您的代码是否生成无法恢复的包装好的密钥
仅当您满足以下所有条件时,您才会受到影响:
状况 | 我怎样才能知道? |
---|---|
您的应用程序使用 PKCS #11 库 |
PKCS #11 库作为 |
您的应用程序专门使用 PKCS #11 库的 3.0.0 版 |
如果您收到了 AWS CloudHSM 团队的电子邮件,那么您可能使用的是 PKCS #11 库的 3.0.0 版。 要检查应用程序实例上的软件版本,请使用以下命令:
|
您可以使用 AES 密钥包装来包装密钥 |
AES 密钥包装是指使用 AES 密钥包装其他密钥。相应的机制名称是 |
您在调用 AES 密钥包装时指定自定义 IV,并且此 IV 的长度小于 8 |
AES 密钥包装通常使用如下
只有在下列情况下,本问题才适用于您:
|
如果您不符合上述所有条件,则可立即停止阅读。您可以正确解开包装好的密钥,此问题不会影响您。否则,请参阅当您的代码生成了不可恢复的包装好的密钥时必须采取的操作。
当您的代码生成了不可恢复的包装好的密钥时必须采取的操作
您应该采取以下三个步骤:
-
立即将您的 PKCS #11 库升级到更新的版本
-
更新您的软件以使用符合标准的 IV
我们强烈建议您遵循我们的代码示例,只需指定 NULL IV 即可,这能使 HSM 使用符合标准的默认 IV。或者,您可以明确指定 IV 为
0xA6A6A6A6A6A6A6A6
,相应的 IV 长度为8
。我们不建议使用任何其他 IV 进行 AES 密钥包装,并且将在未来版本的 PKCS #11 库中明确禁用 AES 密钥包装的自定义 IV。正确指定 IV 的代码示例可在 GitHub 的 aes_wrapping.c
中找到。 -
标识并恢复现有的包装好的密钥
您应标识出使用 PKCS #11 库的 3.0.0 版包装的所有密钥,然后联系客户服务寻求帮助 (https://aws.amazon.com/support
),以恢复这些密钥。
重要
此问题仅影响使用 PKCS #11 库 3.0.0 版包装的密钥。您可以使用 PKCS #11 库的早期版本(2.0.4 及更低版本的软件包)或后续版本(3.0.1 及更高版本的软件包)来包装密钥。