View a markdown version of this page

使用 JCE 提取密钥 AWS CloudHSM - AWS CloudHSM

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

使用 JCE 提取密钥 AWS CloudHSM

Java 加密扩展 (JCE) 使用的架构允许插入不同的加密实现。 AWS CloudHSM 运送了一家这样的 JCE 提供商,它将加密操作转移到 HSM。为了让大多数其他 JCE 提供程序使用存储在 AWS CloudHSM 中的密钥,他们必须将您在 HSM 中的密钥字节以明文形式提取到您的计算机内存中以供他们使用。HSM 通常只允许将密钥提取为包装对象,而不允许以明文形式提取。但是,为了支持提供商间集成用例, AWS CloudHSM 允许选择加入配置选项以启用明文提取密钥字节。

重要

AWS CloudHSM 无论何时指定 AWS CloudHSM 提供商或使用 AWS CloudHSM 密钥对象,JCE 都会将操作转移到任何时候。如果您希望在 HSM 内部进行操作,则无需以明文方式提取密钥。只有当您的应用程序由于第三方库或 JCE 提供程序的限制而无法使用安全机制(例如包装和解包密钥)时,才需要以明文提取密钥。

默认情况下, AWS CloudHSM JCE 提供商允许提取公钥以与外部 JCE 提供商一起使用。始终允许使用以下方法:

方法 格式 (getEncoded)
EcPublicKey getEncoded() X.509
getW() N/A
RSAPublicKey getEncoded() X.509
获得 PublicExponent () N/A
CloudHsmEdDSAPublicKey getEncoded() X.509
CloudHsmMldsaPublicKey getEncoded() X.509

默认情况下, AWS CloudHSM JCE 提供商不允许以明文形式提取私钥机密密钥的密钥字节。如果您的用例需要,则可以在以下条件下启用私有密钥或机密密钥的明文密钥字节提取功能:

  1. 私有密钥和机密密钥的 EXTRACTABLE 属性设置为 true

    • 默认情况下,私有密钥和机密密钥的 EXTRACTABLE 属性设置为 trueEXTRACTABLE 密钥是允许从 HSM 中导出的密钥。有关更多信息,请参阅《客户端软件开发工具包 5 支持的 Java 属性》。

  2. 私有密钥和机密密钥的 WRAP_WITH_TRUSTED 属性设置为 false

    • getEncodedgetPrivateExponentgetS 不能与无法以明文导出的私有密钥一起使用。WRAP_WITH_TRUSTED 不允许您的私有密钥以明文从 HSM 中导出。有关更多信息,请参阅使用可信密钥控制密钥解包