Mecanismos compatíveis com a biblioteca PKCS #11 incluída no Client SDK 5 do AWS CloudHSM - AWS CloudHSM

Mecanismos compatíveis com a biblioteca PKCS #11 incluída no Client SDK 5 do AWS CloudHSM

A biblioteca PKCS #11 é compatível com a versão 2.40 da especificação PKCS #11. Para invocar um recurso de criptografia usando o PKCS#11, chame uma função com um determinado mecanismo. A tabela a seguir resume as combinações de funções e mecanismos suportados pelo Client SDK 5 do AWS CloudHSM.

A biblioteca de software do para PKCS #11 oferece suporte aos seguintes algoritmos:

  • Criptografia e descriptografia: AES-CBC, AES-CTR, AES-ECB, AES-GCM, DES3-CBC, DES3-ECB, RSA-OAEP e RSA-PKCS

  • Assinar e verificar: RSA, HMAC e ECDSA; com e sem hash

  • Hash/Digest: SHA1, SHA224, SHA256, SHA384 e SHA512

  • Encapsulamento de chave: AES Key Wrap1, AES-GCM, RSA-AES e RSA-OAEP

Gere funções de chave e par de chaves

A biblioteca de software AWS CloudHSM para a biblioteca PKCS #11 permite usar os seguintes mecanismos para funções gerar chave e par de chaves.

  • CKM_RSA_PKCS_KEY_PAIR_GEN

  • CKM_RSA_X9_31_KEY_PAIR_GEN: esse mecanismo é funcionalmente idêntico ao mecanismo CKM_RSA_PKCS_KEY_PAIR_GEN, mas oferece maiores garantias para geração de p e de q.

  • CKM_EC_KEY_PAIR_GEN

  • CKM_GENERIC_SECRET_KEY_GEN

  • CKM_AES_KEY_GEN

  • CKM_DES3_KEY_GEN: próxima mudança listada na nota de rodapé 5.

Funções de assinatura e verificação

A biblioteca de software AWS CloudHSM da biblioteca PKCS #11 permite usar os seguintes mecanismos para funções de assinatura e verificação. 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.

Com o Client SDK 5, o hashing RSA e ECDSA é feito localmente; portanto, não há limite de dados. Com o HMAC, há um limite de dados. Consulte a nota de rodapé 2 para obter mais informações.

RSA

  • CKM_RSA_X_509

  • CKM_RSA_PKCS: somente operações de uma única parte.

  • CKM_RSA_PKCS_PSS: somente operações de uma única parte.

  • CKM_SHA1_RSA_PKCS

  • CKM_SHA224_RSA_PKCS

  • CKM_SHA256_RSA_PKCS

  • CKM_SHA384_RSA_PKCS

  • CKM_SHA512_RSA_PKCS

  • CKM_SHA512_RSA_PKCS

  • CKM_SHA1_RSA_PKCS_PSS

  • CKM_SHA224_RSA_PKCS_PSS

  • CKM_SHA256_RSA_PKCS_PSS

  • CKM_SHA384_RSA_PKCS_PSS

  • CKM_SHA512_RSA_PKCS_PSS

ECDSA

  • CKM_ECDSA: somente operações de uma única parte.

  • CKM_ECDSA_SHA1

  • CKM_ECDSA_SHA224

  • CKM_ECDSA_SHA256

  • CKM_ECDSA_SHA384

  • CKM_ECDSA_SHA512

HMAC

  • CKM_SHA_1_HMAC2

  • CKM_SHA224_HMAC2

  • CKM_SHA256_HMAC2

  • CKM_SHA384_HMAC2

  • CKM_SHA512_HMAC2

CMAC

  • CKM_AES_CMAC

Assine, recupere e verifique as funções de recuperação

O Client SDK 5 não oferece suporte às funções Sign Recover (recuperação de assinatura) e Verify Recover (verificar recuperação).

Funções de resumo

A biblioteca de software AWS CloudHSM da biblioteca PKCS #11 permite usar os seguintes mecanismos para a função Digest. 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.

  • CKM_SHA_1

  • CKM_SHA224

  • CKM_SHA256

  • CKM_SHA384

  • CKM_SHA512

Funções de criptografia e descriptografia

A biblioteca AWS CloudHSM de software da biblioteca PKCS #11 permite que você use os seguintes mecanismos para as funções Encrypt (criptografar) e Decrypt (descriptografar).

  • CKM_RSA_X_509

  • CKM_RSA_PKCS: somente operações de uma única parte. Próxima mudança listada na nota de rodapé 5.

  • CKM_RSA_PKCS_OAEP: somente operações de uma única parte.

  • CKM_AES_ECB

  • CKM_AES_CTR

  • CKM_AES_CBC

  • CKM_AES_CBC_PAD

  • CKM_DES3_CBC: próxima mudança listada na nota de rodapé 5.

  • CKM_DES3_ECB: próxima mudança listada na nota de rodapé 5.

  • CKM_DES3_CBC_PAD: próxima mudança listada na nota de rodapé 5.

  • CKM_AES_GCM 1, 2

  • CKM_CLOUDHSM_AES_GCM3

Derivar funções de chave

A biblioteca de software AWS CloudHSM da biblioteca PKCS #11 permite usar os seguintes mecanismos para a função Derive (derivar).

  • CKM_SP800_108_COUNTER_KDF

Funções de agrupamento e desagrupamento

A biblioteca AWS CloudHSM de software da biblioteca PKCS #11 permite que você use os seguintes mecanismos para as funções de agrupamento e desagrupamento.

Para obter opções adicionais de empacotamento de chaves AES, consulte Empacotamento de chaves AES.

  • CKM_RSA_PKCS: somente operações de uma única parte. Uma nova mudança futura listada na nota de rodapé 5.

  • CKM_RSA_PKCS_OAEP4

  • CKM_AES_GCM1, 3

  • CKM_CLOUDHSM_AES_GCM3

  • CKM_RSA_AES_KEY_WRAP

  • CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD3

  • CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD3

  • CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD3

Tamanho máximo de dados para cada mecanismo

A tabela a seguir lista o tamanho máximo de dados definido para cada mecanismo:

Tamanho máximo do conjunto de dados
Mecanismo Tamanho máximo de dados em bytes
CKM_SHA_1_HMAC 16288
CKM_SHA224_HMAC 16256
CKM_SHA256_HMAC 16288
CKM_SHA384_HMAC 16224
CKM_SHA512_HMAC 16224
CKM_AES_CBC 16272
CKM_AES_GCM 16224
CKM_CLOUDHSM_AES_GCM 16224
CKM_DES3_CBC 16280

Anotações do mecanismo

  • [1] Ao executar a criptografia AES-GCM, o HSM não aceitará dados do vetor de inicialização (IV) do aplicativo. Você deve usar um IV gerado por ele. O IV de 12 bytes fornecido pelo HSM é gravado na referência da memória apontada pelo elemento pIV da estrutura de parâmetros CK_GCM_PARAMS que você fornece. Para que não haja confusão para o usuário, o SDK do PKCS #11 na versão 1.1.1 e posterior, garante que o pIV aponte para um buffer zerado quando a criptografia AES-GCM é inicializada.

  • [2] Ao trabalhar com dados usando qualquer um dos mecanismos a seguir, se o buffer de dados exceder o tamanho máximo de dados, a operação resultará em um erro. Para esses mecanismos, todo o processamento de dados deve ocorrer dentro do HSM. Para obter informações sobre conjuntos de tamanho máximo de dados para cada mecanismo, consulte Tamanho máximo de dados para cada mecanismo.

  • [3] Mecanismo definido pelo fornecedor. Para usar os mecanismos definidos pelo fornecedor do CloudHSM, os aplicativos PKCS #11 devem incluir /opt/cloudhsm/include/pkcs11t.h durante a compilação.

    CKM_CLOUDHSM_AES_GCM: Este mecanismo proprietário é uma alternativa programaticamente mais segura para o padrão CKM_AES_GCM. Ele antecede o IV gerado pelo HSM para o texto cifrado em vez de escrevê-lo de volta na estrutura CK_GCM_PARAMS fornecida durante a inicialização da cifra. Você pode usar esse mecanismo com as funções C_Encrypt, C_WrapKey, C_Decrypt, e C_UnwrapKey. Ao usar esse mecanismo, a variável pIV no struct CK_GCM_PARAMS deve ser definida como NULL. Ao usar este mecanismo com C_Decrypt e C_UnwrapKey, espera-se que o IV seja precedido pelo texto cifrado que está sendo desencapsulado.

    CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD: Agrupamento de chaves AES com preenchimento PKCS #5.

    CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD: Agrupamento de chaves AES com preenchimento de zeros.

  • [4] Os seguintes CK_MECHANISM_TYPE e CK_RSA_PKCS_MGF_TYPE são compatíveis como CK_RSA_PKCS_OAEP_PARAMS para CKM_RSA_PKCS_OAEP:

    • CKM_SHA_1 usando CKG_MGF1_SHA1

    • CKM_SHA224 usando CKG_MGF1_SHA224

    • CKM_SHA256 usando CKG_MGF1_SHA256

    • CKM_SHA384 usando CKM_MGF1_SHA384

    • CKM_SHA512 usando CKM_MGF1_SHA512

  • [5] 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.