As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Problemas conhecidos da biblioteca PKCS #11 para AWS CloudHSM
Os problemas a seguir afetam a biblioteca PKCS #11 para AWS CloudHSM.
Tópicos
Problema: o encapsulamentoo de chave AES na versão 3.0.0 da biblioteca PKCS #11 não valida IVs antes do uso
Se você especificar um IV com menos de 8 bytes de comprimento, ele será preenchido por bytes imprevisíveis antes de usar.
nota
Isso impacta C_WrapKey somente com o mecanismo CKM_AES_KEY_WRAP.
Impacto: se fornecer um IV com menos de 8 bytes na versão 3.0.0 da biblioteca do PKCS #11, você poderá não conseguir desencapsular a chave.
Soluções alternativas:
é altamente recomendável que você atualize para a versão 3.0.1 ou posterior da biblioteca do PKCS #11, o que aplica corretamente o comprimento do IV durante o encapsulamento de chaves do AES. Modifique o código de encapsulamento para transmitir um IV NULO ou especifique o padrão IV de
0xA6A6A6A6A6A6A6A6. Para obter mais informações, consulte IVs personalizados com Non-Compliant comprimento para AES Key Wrap.Se você encapsulou qualquer chave com a versão 3.0.0 da biblioteca do PKCS #11 usando um IV menor que 8 bytes, entre em contato conosco para obter suporte
.
Status da resolução: esse problema foi resolvido na versão 3.0.1 da biblioteca do PKCS #11. Para encapsular chaves usando o encapsulamento de chaves do AES, especifique um IV que seja NULO ou de 8 bytes de comprimento.
Problema: o PKCS #11 SDK 2.0.4 e versões anteriores sempre usavam o IV padrão de 0xA6A6A6A6A6A6A6A6 para empacotar e desempacotar chaves AES
User-provided Os IVs foram ignorados silenciosamente.
nota
Isso impacta C_WrapKey somente com o mecanismo CKM_AES_KEY_WRAP.
Impacto:
se você usou o PKCS#11 SDK 2.0.4 ou uma versão anterior e um IV fornecido pelo usuário, as chaves serão encapsuladas com o IV padrão de
0xA6A6A6A6A6A6A6A6.Se você usou o PKCS#11 SDK 3.0.0 ou posterior e um IV fornecido pelo usuário, as chaves serão encapsuladas com o IV fornecido pelo usuário.
Soluções alternativas:
para desencapsular chaves encapsuladas com o PKCS#11 SDK 2.0.4 ou anterior, use o padrão IV de
0xA6A6A6A6A6A6A6A6.Para desencapsular chaves encapsuladas com o PKCS#11 SDK 3.0.0 ou posterior, use o IV fornecido pelo usuário.
Status da resolução: é altamente recomendável que você modifique o código de encapsulamento e desencapsulamento para transmitir um IV NULO, ou especifique o padrão IV de
0xA6A6A6A6A6A6A6A6.
Problema: o atributo CKA_DERIVE não era suportado e não foi tratado
-
Status da resolução: implementamos correções para aceitar
CKA_DERIVEcaso ele seja definido comoFALSE. O atributoCKA_DERIVEdefinido comoTRUEnão será comportado enquanto não começarmos a acrescentar a função de derivação de chaves no AWS CloudHSM. Você deve atualizar seu cliente e SDK(s) para a versão 1.1.1 ou superior para se beneficiar da correção.
Problema: o atributo CKA_SENSITIVE não era suportado e não foi tratado
-
Status da resolução: implementamos correções para aceitar e tratar adequadamente o atributo
CKA_SENSITIVE. Você deve atualizar seu cliente e SDK(s) para a versão 1.1.1 ou superior para se beneficiar da correção.
Problema: o hash e a assinatura em várias partes não são compatíveis.
-
Impacto:
C_DigestUpdateeC_DigestFinalnão estão implementados.C_SignFinaltambém não é implementado e apresentará falha comCKR_ARGUMENTS_BADpara um buffer nãoNULL. -
Solução alternativa: faça o hash dos dados em seu aplicativo e use-os AWS CloudHSM somente para assinar o hash.
-
Status da resolução: vamos corrigir o cliente e os SDKs para implementar corretamente o hash em várias partes. As atualizações serão anunciadas no fórum do AWS CloudHSM e na página de histórico de versões.
Problema: C_ GenerateKeyPair não manipula CKA_MODULUS_BITS ou CKA_PUBLIC_EXPONENT no modelo privado de maneira compatível com os padrões
CKA_PUBLIC_EXPONENT-
Impacto:
C_GenerateKeyPairdeve retornarCKA_TEMPLATE_INCONSISTENTquando o modelo privado contémCKA_MODULUS_BITSouCKA_PUBLIC_EXPONENT. Em vez disso, ele gera uma chave privada para a qual todos os campos de uso são definidos comoFALSE. A chave não pode ser usada. -
Solução alternativa: recomendamos que o seu aplicativo verifique os valores dos campos de uso, além do código de erros.
-
Status da resolução: estamos implementando correções para retornar a mensagem de erro adequada quando um modelo de chave privada incorreto é usado. A biblioteca PKCS#11 atualizada será anunciada na página de histórico de versões.
Problema: os buffers para as operações da API C_Encrypt e C_Decrypt não podem exceder 16 KB ao usar o mecanismo CKM_AES_GCM
C_Encrypt e C_Decrypt não podem exceder 16 KB ao usar o mecanismo CKM_AES_GCMAWS CloudHSM não oferece suporte à AES-GCM criptografia de várias partes.
-
Impacto: não é possível usar o mecanismo
CKM_AES_GCMpara criptografar dados maiores que 16 KB. -
Solução alternativa: use um mecanismo alternativo como o
CKM_AES_CBC,CKM_AES_CBC_PADou divida os dados em partes e criptografe cada parte usandoAES_GCMindividualmente. Se você estiver usandoAES_GCM, deverá gerenciar a divisão de seus dados e a criptografia subsequente. AWS CloudHSM não executa AES-GCM criptografia em várias partes para você. Observe que o FIPS requer que o vetor de inicialização (IV) paraAES-GCMseja gerado no HSM. Portanto, o IV para cada parte de seus dados AES-GCM criptografados será diferente. -
Status da resolução: vamos corrigir o SDK para falhar explicitamente se o buffer de dados for muito grande. Retornaremos
CKR_MECHANISM_INVALIDpara as operações de APIC_EncryptUpdateeC_DecryptUpdate. Estamos avaliando alternativas para oferecer suporte a buffers maiores sem depender da criptografia em várias partes. As atualizações serão anunciadas no AWS CloudHSM fórum e na página do histórico de versões.
Problema: a derivação de chave Elliptic-curve Diffie-Hellman (ECDH) é executada parcialmente dentro do HSM
Sua chave privada EC permanece no HSM em todos os momentos, mas o processo de derivação de chaves é realizado em várias etapas. Consequentemente, os resultados intermediários de cada etapa estão disponíveis no cliente.
-
Impacto: no Client SDK 3, a chave derivada por meio do mecanismo
CKM_ECDH1_DERIVEfica disponível primeiro no cliente e, em seguida, é importada para o HSM. Um identificador de chave é retornado à aplicação. -
Solução alternativa: se você estiver implementando o SSL/TLS Offload in AWS CloudHSM, essa limitação pode não ser um problema. Se a aplicação precisar da sua chave para permanecer continuamente em um limite FIPS, é recomendável o uso de um protocolo alternativo que não dependa da derivação de chaves ECDH.
-
Status da resolução: agora o SDK 5.16 é compatível com ECDH com derivação de chave, que é executada inteiramente dentro do HSM.
Problema: há falha na verificação de assinaturas de secp256k1 nas plataformas do EL6, como o CentOS6 e o RHEL6
Isso ocorre porque a biblioteca PKCS #11 do CloudHSM evita uma chamada de rede durante a inicialização da operação de verificação usando o OpenSSL para verificar dados da curva do EC. Como Secp256k1 não tem suporte do pacote OpenSSL padrão nas plataformas do EL6, haverá falha na inicialização.
-
Impacto: haverá falha na verificação de assinatura do secp256k1 nas plataformas do EL6. Haverá falha na chamada para verificar com um erro
CKR_HOST_MEMORY. -
Solução alternativa: recomendamos usar o Amazon Linux 1 ou qualquer plataforma do EL7 se o seu aplicativo PKCS #11 precisa verificar assinaturas do secp256k1. Como alternativa, atualize para uma versão do pacote OpenSSL que ofereça suporte à curva secp256k1.
-
Status da resolução: estamos implementando correções para voltar para o HSM se a validação da curva local não estiver disponível. A biblioteca PKCS#11 atualizada será anunciada na página de histórico de versões.
Problema: a sequência incorreta de chamadas de função fornece resultados indefinidos em vez de falhar
-
Impacto: se você chamar uma sequência incorreta de funções, o resultado final será incorreto, mesmo que as chamadas de função individuais retornem com sucesso. Por exemplo, os dados descriptografados podem não corresponder ao texto simples original ou as assinaturas podem falhar na verificação. Esse problema afeta as operações de parte única e de várias partes.
As tabelas a seguir mostram as sequências de chamadas de função corretas para operações PKCS #11.
Sequências corretas para operações de peça única:
Operation Sequência correta Encrypt C_EncryptInit→C_EncryptDecrypt C_DecryptInit→C_DecryptSign C_SignInit→C_SignVerificar C_VerifyInit→C_VerifyEncontre objetos C_FindObjectsInit→C_FindObjects→C_FindObjectsFinalSequências corretas para operações com várias partes:
Operation Sequência correta Encrypt C_EncryptInit→C_EncryptUpdate(um ou mais) →C_EncryptFinalDecrypt C_DecryptInit→C_DecryptUpdate(um ou mais) →C_DecryptFinalSign C_SignInit→C_SignUpdate(um ou mais) →C_SignFinalVerificar C_VerifyInit→C_VerifyUpdate(um ou mais) →C_VerifyFinal Solução alternativa: Seu aplicativo deve, em conformidade com a especificação PKCS #11, usar a sequência correta de chamadas de função para operações de peça única e de várias partes, conforme mostrado nas tabelas acima. Seu aplicativo não deve depender da biblioteca PKCS #11 do CloudHSM para retornar um erro nessa circunstância.
Problema: a sessão somente leitura não é compatível com o SDK 5
-
Problema: o SDK 5 não é compatível com a abertura de Read-Only sessões com
C_OpenSession. -
Impacto: se você tentar chamar
C_OpenSessionsem fornecerCKF_RW_SESSION, a chamada falhará com o erroCKR_FUNCTION_FAILED. -
Solução alternativa: ao abrir uma sessão, você deve passar os
CKF_SERIAL_SESSION | CKF_RW_SESSIONsinalizadores para a chamada da funçãoC_OpenSession.
Problema: o arquivo de cabeçalho cryptoki.h é Windows-only
-
Problema: com as versões 5.0.0 a 5.4.0 do SDK do AWS CloudHSM Cliente 5 no Linux, o arquivo de cabeçalho só
/opt/cloudhsm/include/pkcs11/cryptoki.hé compatível com sistemas operacionais Windows. -
Impacto: você pode encontrar problemas ao tentar incluir esse arquivo de cabeçalho em seu aplicativo em sistemas Linux-based operacionais.
-
Status da resolução: atualize para o AWS CloudHSM Client SDK 5 versão 5.4.1 ou superior, que inclui uma Linux-compatible versão desse arquivo de cabeçalho.