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
Tópicos
- Gere funções de chave e par de chaves
- Funções de assinatura e verificação
- Assine, recupere e verifique as funções de recuperação
- Funções de resumo
- Funções de criptografia e descriptografia
- Derivar funções de chave
- Funções de agrupamento e desagrupamento
- Tamanho máximo de dados para cada mecanismo
- Anotações do mecanismo
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 mecanismoCKM_RSA_PKCS_KEY_PAIR_GEN
, mas oferece maiores garantias para geração dep
e deq
. -
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
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_CLOUDHSM_AES_GCM
3
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.
Tamanho máximo de dados para cada mecanismo
A tabela a seguir lista o tamanho máximo de dados definido para cada mecanismo:
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ãoCKM_AES_GCM
. Ele antecede o IV gerado pelo HSM para o texto cifrado em vez de escrevê-lo de volta na estruturaCK_GCM_PARAMS
fornecida durante a inicialização da cifra. Você pode usar esse mecanismo com as funçõesC_Encrypt
,C_WrapKey
,C_Decrypt
, eC_UnwrapKey
. Ao usar esse mecanismo, a variável pIV no structCK_GCM_PARAMS
deve ser definida comoNULL
. Ao usar este mecanismo comC_Decrypt
eC_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
eCK_RSA_PKCS_MGF_TYPE
são compatíveis comoCK_RSA_PKCS_OAEP_PARAMS
paraCKM_RSA_PKCS_OAEP
:-
CKM_SHA_1
usandoCKG_MGF1_SHA1
-
CKM_SHA224
usandoCKG_MGF1_SHA224
-
CKM_SHA256
usandoCKG_MGF1_SHA256
-
CKM_SHA384
usandoCKM_MGF1_SHA384
-
CKM_SHA512
usandoCKM_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.