AWS CloudHSM Client SDK 5 的 JCE 提供程序支持的机制 - AWS CloudHSM

AWS CloudHSM Client SDK 5 的 JCE 提供程序支持的机制

本主题提供有关 AWS CloudHSM Client SDK 5 对 JCE 提供程序支持的机制的信息。有关 AWS CloudHSM 支持的 Java 加密体系结构 (JCA) 接口和引擎类的更多信息,请参阅以下主题。

生成密钥与密钥对功能

适用于 JaJave 的 AWS CloudHSM 软件库允许您通过以下操作生成密钥和密钥对函数。

  • RSA

  • EC

  • AES

  • DESede (Triple DES)请参阅备注1

  • GenericSecret

密码函数

适用于 Java 的 AWS CloudHSM 软件库支持以下算法、模式和填充组合。

算法 Mode Padding 备注
AES CBC

AES/CBC/NoPadding

AES/CBC/PKCS5Padding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

实施 Cipher.UNWRAP_MODE for AES/CBC NoPadding

AES ECB

AES/ECB/PKCS5Padding

AES/ECB/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

AES CTR

AES/CTR/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

AES GCM

AES/GCM/NoPadding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODECipher.ENCRYPT_MODECipher.DECRYPT_MODE

执行 AES-GCM 加密时,HSM 会忽略请求中的初始化向量 (IV) 并使用其生成的 IV。当该操作完成时,您必须调用 Cipher.getIV() 以获取 IV。

AESWrap ECB

AESWrap/ECB/NoPadding

AESWrap/ECB/PKCS5Padding

AESWrap/ECB/ZeroPadding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODE

DESede(三重 DES) CBC

DESede/CBC/PKCS5Padding

DESede/CBC/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE。有关即将发生的更改,请参阅下面的注释 1

DESede(三重 DES) ECB

DESede/ECB/NoPadding

DESede/ECB/PKCS5Padding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE。有关即将发生的更改,请参阅下面的注释 1

RSA ECB

RSA/ECB/PKCS1Padding 请参阅备注 1

RSA/ECB/OAEPPadding

RSA/ECB/OAEPWithSHA-1ANDMGF1Padding

RSA/ECB/OAEPWithSHA-224ANDMGF1Padding

RSA/ECB/OAEPWithSHA-256ANDMGF1Padding

RSA/ECB/OAEPWithSHA-384ANDMGF1Padding

RSA/ECB/OAEPWithSHA-512ANDMGF1Padding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODECipher.ENCRYPT_MODECipher.DECRYPT_MODE

RSA ECB

RSA/ECB/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

RSAAESWrap ECB

RSAAESWrap/ECB/OAEPPadding

RSAAESWrap/ECB/OAEPWithSHA-1ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-224ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-256ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-384ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-512ANDMGF1Padding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODE

签署并验证功能

适用于 Java 的 AWS CloudHSM 软件库支持以下类型的签名和验证。使用客户端软件开发工具包 5 和带哈希功能的签名算法,在数据发送至 HSM 进行签名/验证之前,会在软件中对数据进行本地哈希处理。这意味着可由 SDK 执行哈希处理的数据大小没有限制。

RSA 签名类型

  • NONEwithRSA

  • RSASSA-PSS

  • SHA1withRSA

  • SHA1withRSA/PSS

  • SHA1withRSAandMGF1

  • SHA224withRSA

  • SHA224withRSAandMGF1

  • SHA224withRSA/PSS

  • SHA256withRSA

  • SHA256withRSAandMGF1

  • SHA256withRSA/PSS

  • SHA384withRSA

  • SHA384withRSAandMGF1

  • SHA384withRSA/PSS

  • SHA512withRSA

  • SHA512withRSAandMGF1

  • SHA512withRSA/PSS

ECDSA 签名类型

  • NONEwithECDSA

  • SHA1withECDSA

  • SHA224withECDSA

  • SHA256withECDSA

  • SHA384withECDSA

  • SHA512withECDSA

摘要功能

适用于 Java 的 AWS CloudHSM 软件库支持以下消息摘要。通过客户端软件开发工具包 5,数据将在软件中进行本地哈希处理。这意味着可由 SDK 执行哈希处理的数据大小没有限制。

  • SHA-1

  • SHA-224

  • SHA-256

  • SHA-384

  • SHA-512

HMAC 散列消息认证码函数

适用于 Java 的 AWS CloudHSM 软件库支持以下 HMAC 算法。

  • HmacSHA1(以字节为单位的最大数据大小:16288)

  • HmacSHA224(以字节为单位的最大数据大小:16256)

  • HmacSHA256(以字节为单位的最大数据大小:16288)

  • HmacSHA384(以字节为单位的最大数据大小:16224)

  • HmacSHA512(以字节为单位的最大数据大小:16224)

基于密码的消息身份验证码 (CMAC) 函数

CMAC(基于密码的消息身份验证码)使用数据块密码和机密密钥创建消息身份验证码(MAC)。其与 HMAC 的不同之处在于,其对 MAC 使用数据块对称密钥方法,而不是哈希方法。

适用于 Java 的 AWS CloudHSM 软件库支持以下 CMAC 算法。

  • AESCMAC

密钥协议函数

Java 的 AWS CloudHSM 软件库支持带有密钥派生函数(KDF)的 ECDH。支持以下 KDF 类型:

  • ECDHwithX963SHA1KDF 支持 X9.63 KDF SHA1 算法2

  • ECDHwithX963SHA224KDF 支持 X9.63 KDF SHA224 算法2

  • ECDHwithX963SHA256KDF 支持 X9.63 KDF SHA256 算法2

  • ECDHwithX963SHA384KDF 支持 X9.63 KDF SHA384 算法2

  • ECDHwithX963SHA512KDF 支持 X9.63 KDF SHA512 算法2

使用密钥工厂将密钥转换为密钥规格

您可以使用密钥工厂将密钥转换为密钥规格。针对 JCE,AWS CloudHSM 有两类密钥工厂:

SecretKeyFactory:用于导入或派生对称密钥。使用 SecretKeyFactory,您可以传递支持的密钥或支持的 KeySpec 来导入或派生对称密钥 AWS CloudHSM。以下是 KeyFactory 支持的规格:

  • 对于 SecretKeyFactory 的 generateSecret 方法,支持以下 KeySpec 类:

    • KeyAttributesMap 可用于将带附加属性的密钥字节作为 CloudHSM 密钥导入。可以在此处找到一个示例。

    • SecretKeySpec 可用于将对称密钥规范作为 CloudHSM 密钥导入。

    • AesCmacKdfParameterSpec 可用于通过另一个 CloudHSM AES 密钥派生对称密钥。

注意

SecretKeyFactory 的 translateKey 方法采用任何实现 密钥 接口的密钥。

KeyFactory:用于导入非对称密钥。使用 KeyFactory,您可以传递支持的密钥或支持的 KeySpec,将非对称密钥导入到 AWS CloudHSM。更多信息,请参阅以下资源:

  • 对于 KeyFactory 的 generatePublic 方法,支持以下 KeySpec 类:

  • 适用于 RSA 和 EC KeyTypes 的 CloudHSM KeyAttributesMap,包括:

  • 对于 KeyFactory 的 generatePrivate 方法,支持以下 KeySpec 类:

  • 适用于 RSA 和 EC KeyTypes 的 CloudHSM KeyAttributesMap,包括:

对于 KeyFactory 的 translateKey 方法,其接受任何实现 密钥接口 的密钥。

机制注释

[1] 根据 NIST 指导,2023 年以后处于 FIPS 模式的集群不允许这样做。对于处于非 FIPS 模式的集群,2023 年之后仍然允许。有关详细信息,请参阅 FIPS 140 合规:2024 年机制弃用

[2] 密钥派生函数(KDF)在 RFC 8418 第 2.1 节中规定。