Usando a classe AWS CloudHSM KeyStore Java - 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á.

Usando a classe AWS CloudHSM KeyStore Java

A AWS CloudHSM KeyStore classe fornece um armazenamento de chaves PKCS12 para fins especiais. Este repositório de chaves pode armazenar certificados junto com os seus dados de chave e correlacioná-los com os dados da chave armazenados no AWS CloudHSM. A AWS CloudHSM KeyStore classe implementa a KeyStore Service Provider Interface (SPI) da Java Cryptography Extension (JCE). Para obter mais informações sobre o usoKeyStore, consulte Classe KeyStore.

nota

Como os certificados são informações públicas e, para maximizar a capacidade de armazenamento de chaves criptográficas, AWS CloudHSM não oferece suporte ao armazenamento de certificados em HSMs.

Escolha do repositório de chaves apropriado

O provedor de AWS CloudHSM Java Cryptographic Extension (JCE) oferece um AWS CloudHSM para fins especiais. KeyStore A AWS CloudHSM KeyStore classe oferece suporte ao descarregamento de operações-chave para o HSM, ao armazenamento local de certificados e às operações baseadas em certificados.

Carregue o CloudHSM para fins especiais da seguinte forma: KeyStore

KeyStore ks = KeyStore.getInstance("CloudHSM")

Inicializando AWS CloudHSM KeyStore

Faça login AWS CloudHSM KeyStore da mesma forma que você faz login no provedor JCE. Você pode usar variáveis de ambiente ou o arquivo de propriedades do sistema e deve fazer login antes de começar a usar o CloudHSM KeyStore. Para obter um exemplo de login em um HSM usando o JCE, consulte Login em um HSM.

Se desejar, você pode especificar uma senha para criptografar o arquivo PKCS12 local que contém dados de repositório de chaves. Ao criar o AWS CloudHSM Keystore, você define a senha e a fornece ao usar os métodos load, set e get.

Instancie um novo objeto CloudHSM da seguinte forma: KeyStore

ks.load(null, null);

Grave dados de repositório de chaves em um arquivo usando o método store. A partir desse ponto, você pode carregar o repositório de chaves existente usando o método load com o arquivo de origem e a senha da seguinte forma:

ks.load(inputStream, password);

Usando AWS CloudHSM KeyStore

AWS CloudHSM KeyStore está em conformidade com a KeyStore especificação da classe JCE e fornece as seguintes funções.

  • load

    Carrega o repositório de chaves do fluxo de entrada fornecido. Se uma senha foi definida ao salvar o repositório de chaves, essa mesma senha deve ser fornecida para que o carregamento seja bem-sucedido. Defina ambos os parâmetros como null para inicializar um novo repositório de chaves vazio.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); ks.load(inputStream, password);
  • aliases

    Retorna uma enumeração dos nomes de alias de todas as entradas na instância de repositório de chaves dada. Os resultados incluem objetos armazenados localmente no arquivo PKCS12 e objetos residentes no HSM.

    Código de exemplo:

    KeyStore ks = KeyStore.getInstance("CloudHSM"); for(Enumeration<String> entry = ks.aliases(); entry.hasMoreElements();) { String label = entry.nextElement(); System.out.println(label); }
  • containsalias

    Retorna true se o repositório de chaves tiver acesso a pelo menos um objeto com o alias especificado. O repositório de chaves verifica objetos armazenados localmente no arquivo PKCS12 e objetos residentes no HSM.

  • deleteEntry

    Exclui uma entrada de certificado do arquivo PKCS12 local. A exclusão de dados-chave armazenados em um HSM não é suportada usando o. AWS CloudHSM KeyStore Você pode excluir chaves usando o método destroy da interface Destrutível.

    ((Destroyable) key).destroy();
  • getCertificate

    Retorna o certificado associado a um alias, se disponível. Se o alias não existir ou fizer referência a um objeto que não for um certificado, a função retornará NULL.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); Certificate cert = ks.getCertificate(alias);
  • getCertificateAlias

    Retorna o nome (alias) da primeira entrada de repositório de chaves cujos dados correspondem ao certificado fornecido.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); String alias = ks.getCertificateAlias(cert);
  • getCertificateChain

    Retorna a cadeia de certificados associada ao alias fornecido. Se o alias não existir ou fizer referência a um objeto que não for um certificado, a função retornará NULL.

  • getCreationDate

    Retorna a data de criação da entrada identificada pelo alias fornecido. Se uma data de criação não estiver disponível, a função retornará a data em que o certificado se tornou válido.

  • getKey

    GetKey é passado para o HSM e retorna um objeto chave correspondente ao rótulo fornecido. Ao consultar getKey diretamente o HSM, ela pode ser usada para qualquer chave no HSM, independentemente de ter sido gerada pelo. KeyStore

    Key key = ks.getKey(keyLabel, null);
  • isCertificateEntry

    Verifica se a entrada com o alias fornecido representa uma entrada de certificado.

  • isKeyEntry

    Verifica se a entrada com o alias fornecido representa uma entrada de chave. A ação procura o alias no arquivo PKCS12 e no HSM.

  • setCertificateEntry

    Atribui o certificado fornecido ao alias fornecido. Se o alias fornecido já estiver sendo usado para identificar uma chave ou certificado, um KeyStoreException é lançado. Você pode usar o código JCE para obter o objeto chave e, em seguida, usar o KeyStore SetKeyEntry método para associar o certificado à chave.

  • setKeyEntry com chave byte[]

    No momento, essa API não é compatível com o Client SDK 5.

  • setKeyEntry com objeto Key

    Atribui a chave fornecida ao alias fornecido e armazena-a dentro do HSM. Se a chave ainda não existir dentro do HSM, ela será importada para o HSM como uma chave de sessão extraível.

    Se o objeto Key for do tipo PrivateKey, ele deve ser acompanhado por uma cadeia de certificados correspondente.

    Se o alias já existir, a SetKeyEntry chamada lança um KeyStoreException e impede que a chave seja substituída. Se a chave precisar ser substituída, use KMU ou JCE para esse fim.

  • engineSize

    Retorna o número de entradas no repositório de chaves.

  • store

    Armazena o repositório de chaves no fluxo de saída fornecido como arquivo PKCS12 e protege-o com a senha fornecida. Além disso, mantém todas as chaves carregadas (que são definidas usando chamadas setKey).