Mecanismos compatíveis com o provedor JCE para o Client SDK 5 do AWS CloudHSM - AWS CloudHSM

Mecanismos compatíveis com o provedor JCE para o Client SDK 5 do AWS CloudHSM

Este tópico fornece informações sobre os mecanismos de provedor JCE compatíveis com o Client SDK 5 do AWS CloudHSM. Para obter informações sobre as interfaces e classes de mecanismos da Java Cryptography Architecture (JCA) compatíveis com o AWS CloudHSM, consulte os tópicos a seguir.

Gere funções de chave e par de chaves

A biblioteca de software do AWS CloudHSM para Java permite que você use as seguintes operações para gerar funções de chave e par de chaves.

  • RSA

  • EC

  • AES

  • DESede (Triple DES)consulte a observação 1

  • GenericSecret

Funções de cifra

A biblioteca de software de AWS CloudHSM para Java suporta as seguintes combinações de algoritmo, modo e padding.

Algoritmo Modo Padding Observações
AES CBC

AES/CBC/NoPadding

AES/CBC/PKCS5Padding

Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE.

Implementa Cipher.UNWRAP_MODE for AES/CBC NoPadding

AES ECB

AES/ECB/PKCS5Padding

AES/ECB/NoPadding

Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE.

AES CTR

AES/CTR/NoPadding

Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE.

AES GCM

AES/GCM/NoPadding

Implementa Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE.

Ao executar a criptografia AES-GCM, o HSM ignora o vetor de inicialização (IV) na solicitação e usa um IV que ele mesmo gera. Quando a operação for concluída, você deverá chamar Cipher.getIV() para obter o IV.

AESWrap ECB

AESWrap/ECB/NoPadding

AESWrap/ECB/PKCS5Padding

AESWrap/ECB/ZeroPadding

Implementa Cipher.WRAP_MODE e Cipher.UNWRAP_MODE.

DESede (Triple DES) CBC

DESede/CBC/PKCS5Padding

DESede/CBC/NoPadding

Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. Consulte a nota 1 abaixo para ver uma mudança futura.

DESede (Triple DES) ECB

DESede/ECB/NoPadding

DESede/ECB/PKCS5Padding

Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. Consulte a nota 1 abaixo para ver uma mudança futura.

RSA ECB

RSA/ECB/PKCS1Padding consulte a observação 1

RSA/ECB/OAEPPadding

RSA/ECB/OAEPWithSHA-1ANDMGF1Padding

RSA/ECB/OAEPWithSHA-224ANDMGF1Padding

RSA/ECB/OAEPWithSHA-256ANDMGF1Padding

RSA/ECB/OAEPWithSHA-384ANDMGF1Padding

RSA/ECB/OAEPWithSHA-512ANDMGF1Padding

Implementa Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE.

RSA ECB

RSA/ECB/NoPadding

Implementa Cipher.ENCRYPT_MODE e Cipher.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

Implementa Cipher.WRAP_MODE e Cipher.UNWRAP_MODE.

Funções de assinatura e verificação

A biblioteca de software de AWS CloudHSM para Java suporta os tipos de assinatura e verificação de a seguir. Com o Client SDK 5 e algoritmos de assinatura com hashing, os dados são codificados localmente no software antes de serem enviados ao HSM para assinatura/verificação. Isso significa que não há limite no tamanho dos dados que podem ser criptografados pelo SDK.

Tipos de assinatura RSA

  • NONEwithRSA

  • RSASSA-PSS

  • SHA1withRSA

  • SHA1withRSA/PSS

  • SHA1withRSAandMGF1

  • SHA224withRSA

  • SHA224withRSAandMGF1

  • SHA224withRSA/PSS

  • SHA256withRSA

  • SHA256withRSAandMGF1

  • SHA256withRSA/PSS

  • SHA384withRSA

  • SHA384withRSAandMGF1

  • SHA384withRSA/PSS

  • SHA512withRSA

  • SHA512withRSAandMGF1

  • SHA512withRSA/PSS

Tipos de assinatura ECDSA

  • NONEwithECDSA

  • SHA1withECDSA

  • SHA224withECDSA

  • SHA256withECDSA

  • SHA384withECDSA

  • SHA512withECDSA

Funções de resumo

A biblioteca de software de AWS CloudHSM para Java suporta os arquivos de resumo de mensagens a seguir. Com o Client SDK 5, os dados são codificados localmente no software. Isso significa que não há limite no tamanho dos dados que podem ser criptografados pelo SDK.

  • SHA-1

  • SHA-224

  • SHA-256

  • SHA-384

  • SHA-512

Funções de código de autenticação de mensagens por hash (HMAC)

A biblioteca de software de AWS CloudHSM para Java suporta os algoritmos HMAC a seguir.

  • HmacSHA1 (Tamanho máximo de dados em bytes: 16288)

  • HmacSHA224 (Tamanho máximo de dados em bytes: 16256)

  • HmacSHA256 (Tamanho máximo de dados em bytes: 16288)

  • HmacSHA384 (Tamanho máximo de dados em bytes: 16224)

  • HmacSHA512 (Tamanho máximo de dados em bytes: 16224)

Funções de código de autenticação de mensagens baseadas em cifras (CMAC)

Os CMACs (códigos de autenticação de mensagens baseados em cifras) criam códigos de autenticação de mensagens (MACs) usando uma cifra de bloqueio e uma chave secreta. Eles diferem dos HMACs porque usam um método de chave simétrica de bloco para os MACs em vez de um método de hashing.

A biblioteca de software de AWS CloudHSM para Java suporta os algoritmos HMAC a seguir.

  • AESCMAC

Funções-chave do contrato

A biblioteca de software do AWS CloudHSM para Java suporta ECDH com Key Derivation Functions (KDF). Há suporte para os seguintes tipos de KDF:

  • ECDHwithX963SHA1KDF suporta o algoritmo X9.63 KDF SHA12

  • ECDHwithX963SHA224KDF suporta o algoritmo X9.63 KDF SHA2242

  • ECDHwithX963SHA256KDF suporta o algoritmo X9.63 KDF SHA2562

  • ECDHwithX963SHA384KDF suporta o algoritmo X9.63 KDF SHA3842

  • ECDHwithX963SHA512KDF suporta o algoritmo X9.63 KDF SHA5122

Converta chaves em especificações de chave usando fábricas de chaves

Você pode usar fábricas de chaves para converter chaves em especificações principais. AWS CloudHSM tem dois tipos de fábricas principais para a JCE:

SecretKeyFactory: usado para importar ou derivar chaves simétricas. Usando SecretKeyFactory, você pode passar uma chave compatível ou um KeySpec compatível para importar ou derivar chaves simétricas em AWS CloudHSM. A seguir estão as especificações suportadas pelo KeyFactory:

  • Para o método SecretKeyFactory generateSecret, as seguintes classes KeySpec são suportadas:

    • KeyAttributesMap pode ser usado para importar bytes de chave com atributos adicionais como uma chave do CloudHSM. Um exemplo pode ser encontrado aqui

    • SecretKeySpec pode ser usado para importar uma especificação de chave simétrica como uma chave do CloudHSM.

    • AESCMackDFParameterSpec pode ser usado para derivar chaves simétricas usando outra chave AES do CloudHSM.

nota

O método translateKey do SecretKeyFactory usa qualquer chave que implemente a interface da chave.

KeyFactory: usado para importar chaves assimétricas. Usando KeyFactory, você pode passar uma chave ou KeySpec compatível para importar uma chave assimétrica para o AWS CloudHSM. Para obter mais informações, consulte os seguintes recursos:

  • Para o método SecretKeyFactory do generatePublic, as seguintes classes KeySpec são suportadas:

  • CloudHSM KeyAttributesMap para KeyTypes RSA e EC, incluindo:

  • Para o método SecretKeyFactory do generatePrivate, as seguintes classes KeySpec são suportadas:

  • CloudHSM KeyAttributesMap para KeyTypes RSA e EC, incluindo:

Para o método KeyFactory do translateKey, ele usa qualquer chave que implemente a interface de chave.

Anotações do mecanismo

[1] De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte Conformidade com o FIPS 140: suspensão do mecanismo de 2024.

[2] As funções de derivação de chaves (KDFs) são especificadas na RFC 8418, Seção 2.1.