IVs personalizados com comprimento não compatível para o encapsulamento de chaves AES no AWS CloudHSM - AWS CloudHSM

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á.

IVs personalizados com comprimento não compatível para o encapsulamento de chaves AES no AWS CloudHSM

Este tópico de solução de problemas ajuda a determinar se seu aplicativo gera chaves agrupadas irrecuperáveis. Se você for afetado por esse problema, use este tópico para resolvê-lo.

Determine se seu código gera chaves agrupadas irrecuperáveis

Você será afetado somente se atender a todas as condições abaixo:

Condição Como posso saber?

Seu aplicativo usa a biblioteca PKCS #11

A biblioteca PKCS #11 está instalada como o arquivo libpkcs11.so na sua pasta /opt/cloudhsm/lib. Aplicativos escritos na linguagem C geralmente usam a biblioteca PKCS #11 diretamente, enquanto aplicativos escritos em Java podem estar usando a biblioteca indiretamente por meio de uma camada de abstração Java. Se você estiver usando o Windows, NÃO será afetado, pois a biblioteca PKCS #11 não está disponível atualmente para Windows.

Seu aplicativo usa especificamente a versão 3.0.0 da biblioteca PKCS #11

Se você recebeu um e-mail da equipe do AWS CloudHSM, provavelmente está usando a versão 3.0.0 da biblioteca PKCS #11.

Para verificar a versão do software nas instâncias do seu aplicativo, use este comando:

rpm -qa | grep ^cloudhsm

Você agrupa as chaves usando o agrupamento de chaves AES

Agrupamento de chave AES significa que você usa uma chave AES para agrupar alguma outra chave. O nome do mecanismo correspondente é CKM_AES_KEY_WRAP. Ele é usado com a função C_WrapKey. Outros mecanismos de agrupamento baseados em AES que usam initialization vectors (IVs, vetores de inicialização), como CKM_AES_GCM e CKM_CLOUDHSM_AES_GCM, não são afetados por esse problema. Saiba mais sobre funções e mecanismos.

Você especifica um IV personalizado ao chamar o agrupamento de chaves AES, e o comprimento desse IV é menor que 8

O agrupamento de chave AES geralmente é inicializado usando uma estrutura CK_MECHANISM da seguinte forma:

CK_MECHANISM mech = {CKM_AES_KEY_WRAP, IV_POINTER, IV_LENGTH};

Isso se aplicará somente se for definido como:

  • IV_POINTER não é NULL

  • IV_LENGTH é menor que 8 bytes

Se não atender a todas as condições acima, você pode parar de ler agora. Suas chaves agrupadas podem ser desagrupadas adequadamente e esse problema não afeta você. Caso contrário, consulte Ações que você deve realizar se seu código gerar chaves agrupadas irrecuperáveis.

Ações que você deve realizar se seu código gerar chaves agrupadas irrecuperáveis

Você deve seguir as três etapas a seguir:

  1. Atualize imediatamente sua biblioteca PKCS #11 para uma versão mais recente

  2. Atualize seu software para usar um IV compatível com os padrões

    É altamente recomendável que você siga nosso código de exemplo e simplesmente especifique um NULL IV, o que faz com que o HSM utilize o IV padrão compatível com os padrões. Como alternativa, é possível especificar explicitamente o IV como 0xA6A6A6A6A6A6A6A6 com um comprimento IV correspondente de 8. Não recomendamos o uso de nenhum outro IV para agrupamento de chaves AES e desabilitaremos explicitamente IVs personalizados para agrupamento de chaves AES em uma versão futura da biblioteca PKCS #11.

    O código de amostra para especificar corretamente o IV aparece em aes_wrapping.c no GitHub.

  3. Identifique e recupere chaves agrupadas existentes

    Você deve identificar todas as chaves agrupadas usando a versão 3.0.0 da biblioteca PKCS #11 e, em seguida, entrar em contato com o suporte (https://aws.amazon.com/support) para obter assistência na recuperação dessas chaves.

Importante

Esse problema afeta apenas as chaves agrupadas com a versão 3.0.0 da biblioteca PKCS #11. É possível agrupar chaves usando versões anteriores (2.0.4 e pacotes com numeração inferior) ou versões posteriores (3.0.1 e pacotes com numeração superior) da biblioteca PKCS #11.