Extração de chaves usando JCE - 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á.

Extração de chaves usando JCE

A Java Cryptography Extension (JCE) usa uma arquitetura que permite que diferentes implementações de criptografia sejam conectadas. AWS CloudHSM envia um desses fornecedores de JCE que transfere operações criptográficas para o HSM. Para que a maioria dos outros provedores de JCE trabalhem com chaves armazenadas no AWS CloudHSM, eles devem extrair os bytes da chave dos seus HSMs em texto não criptografado na memória da sua máquina para uso. Normalmente, os HSMs só permitem que as chaves sejam extraídas como objetos agrupados, não como texto não criptografado. No entanto, para oferecer suporte a casos de uso de integração entre provedores, AWS CloudHSM permite uma opção de configuração opcional para permitir a extração dos bytes da chave em branco.

Importante

A JCE transfere as operações para AWS CloudHSM sempre que o provedor do AWS CloudHSM é especificado ou um objeto chave é usado. AWS CloudHSM Você não precisa extrair as chaves de forma clara se você espera que sua operação ocorra dentro do HSM. A extração de chaves em texto não criptografado só é necessária quando seu aplicativo não pode usar mecanismos seguros, como empacotar e desempacotar uma chave devido a restrições de uma biblioteca terceirizada ou de um provedor de JCE.

O provedor AWS CloudHSM JCE permite a extração de chaves públicas para funcionar com provedores JCE externos por padrão. Os seguintes métodos são sempre permitidos:

Classe Método Format (getEncoded)
EcPublicKey getEncoded() X.509
getW() N/D
RSA PublicKey getEncoded() X.509
getPublicExponent() N/D
CloudHsmRsaPrivateCrtKey getPublicExponent() N/D

O provedor AWS CloudHSM JCE não permite a extração de bytes de chave em branco para as chaves privadas ou secretas por padrão. Se seu caso de uso exigir isso, você pode habilitar a extração de bytes de chave em branco para chaves privadas ou secretas nas seguintes condições:

  1. O EXTRACTABLE atributo para chaves privadas e secretas é definido como verdadeiro.

    • Por padrão, o EXTRACTABLE atributo para chaves privadas e secretas é definido como verdadeiro. Chaves EXTRACTABLE são chaves que podem ser exportadas para fora do HSM. Para obter mais informações, consulte Atributos Java compatíveis para o Client SDK 5.

  2. O WRAP_WITH_TRUSTED atributo para chaves privadas e secretas é definido como falso.

Permitindo que o provedor de AWS CloudHSM JCE extraia segredos de chave privada do AWS CloudHSM

Importante

Essa alteração de configuração permite a extração de todos os bytes de EXTRACTABLE chave em branco do seu cluster HSM. Para maior segurança, você deve considerar o uso de métodos de encapsulamento de chaves para extrair a chave do HSM com segurança. Isso evita a extração não intencional dos seus bytes de chave do HSM.

  1. Use os comandos a seguir para permitir que suas chaves privadas ou secretas sejam extraídas no JCE:

    Linux
    $ /opt/cloudhsm/bin/configure-jce --enable-clear-key-extraction-in-software
    Windows
    C:\Program Files\Amazon\CloudHSM\> .\configure-jce.exe --enable-clear-key-extraction-in-software
  2. Depois de ativar a extração da chave em branco, os métodos a seguir são habilitados para extrair chaves privadas na memória.

    Classe Método Format (getEncoded)
    Chave getEncoded() RAW
    CE PrivateKey getEncoded() PKCS#8
    getS() N/D
    RSA PrivateCrtKey getEncoded() X.509
    getPrivateExponent() N/D
    getPrimeP() N/D
    getPrimeQ() N/D
    getPrimeExponentP () N/D
    getPrimeExponentQ () N/D
    getCrtCoefficient() N/D

Se você quiser restaurar o comportamento padrão e não permitir que o JCE exporte as chaves em branco, execute o seguinte comando:

Linux
$ /opt/cloudhsm/bin/configure-jce --disable-clear-key-extraction-in-software
Windows
C:\Program Files\Amazon\CloudHSM\> .\configure-jce.exe --disable-clear-key-extraction-in-software