Utilisation de la classe AWS CloudHSM KeyStore Java - AWS CloudHSM

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de la classe AWS CloudHSM KeyStore Java

La AWS CloudHSM KeyStore classe fournit un magasin de clés PKCS12 à usage spécial. Ce magasin de clés peut stocker des certificats avec vos données clés et les mettre en corrélation avec les données clés stockées sur AWS CloudHSM. La AWS CloudHSM KeyStore classe implémente l'interface du fournisseur de KeyStore services (SPI) de l'extension de cryptographie Java (JCE). Pour plus d'informations sur l'utilisationKeyStore, consultez la section Classe KeyStore.

Note

Les certificats étant des informations publiques, il n'est AWS CloudHSM pas possible de stocker des certificats sur des HSM afin de maximiser la capacité de stockage des clés cryptographiques.

Choisir le magasin de clés approprié

Le fournisseur d'extension cryptographique AWS CloudHSM Java (JCE) propose un AWS CloudHSM à usage spécifique. KeyStore La AWS CloudHSM KeyStore classe prend en charge le transfert des opérations clés vers le HSM, le stockage local des certificats et les opérations basées sur les certificats.

Chargez le CloudHSM spécialisé comme suit : KeyStore

KeyStore ks = KeyStore.getInstance("CloudHSM")

Initialisation AWS CloudHSM KeyStore

Connectez-vous de AWS CloudHSM KeyStore la même manière que vous vous connectez au fournisseur JCE. Vous pouvez utiliser des variables d'environnement ou le fichier de propriétés du système, et vous devez vous connecter avant de commencer à utiliser CloudHSM KeyStore. Pour obtenir un exemple de connexion à un HSM à l'aide du fournisseur JCE, veuillez consulter Connexion à un HSM.

Si vous le souhaitez, vous pouvez spécifier un mot de passe pour chiffrer le fichier PKCS12 local qui contient les données du magasin de clés. Lorsque vous créez le AWS CloudHSM Keystore, vous définissez le mot de passe et vous le fournissez lorsque vous utilisez les méthodes load, set et get.

Instanciez un nouvel objet KeyStore CloudHSM comme suit :

ks.load(null, null);

Écrivez les données du keystore dans un fichier à l'aide de la méthode store. À partir de ce moment, vous pouvez charger le keystore existant en utilisant la méthode load avec le fichier source et le mot de passe comme suit :

ks.load(inputStream, password);

En utilisant AWS CloudHSM KeyStore

AWS CloudHSM KeyStore est conforme aux KeyStore spécifications de la classe JCE et fournit les fonctions suivantes.

  • load

    Charge le magasin de clés à partir du flux d'entrée donné. Si un mot de passe a été défini lors de l'enregistrement du magasin de clés, ce même mot de passe doit être fourni pour que le chargement réussisse. Définissez les deux paramètres sur null pour initialiser un nouveau magasin de clés vide.

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

    Renvoie une énumération des noms d'alias de toutes les entrées de l'instance de magasin de clés donnée. Les résultats incluent les objets stockés localement dans le fichier PKCS12 et les objets résidant sur le HSM.

    Exemple de code :

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

    Renvoie true si le magasin de clés a accès à au moins un objet avec l'alias spécifié. Le magasin de clés vérifie les objets stockés localement dans le fichier PKCS12 et les objets résidant sur le HSM.

  • deleteEntry

    Supprime une entrée de certificat du fichier PKCS12 local. La suppression de données clés stockées dans un HSM n'est pas prise en charge à l'aide du AWS CloudHSM KeyStore. Vous pouvez supprimer des clés en utilisant la méthode destroy de l'interface Destroyable.

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

    Renvoie le certificat associé à un alias le cas échéant. Si l'alias n'existe pas ou fait référence à un objet qui n'est pas un certificat, la fonction renvoie NULL.

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

    Renvoie le nom (alias) de la première entrée de magasin de clés dont les données correspondent au certificat donné.

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

    Renvoie la chaîne de certificats associée à l'alias donné. Si l'alias n'existe pas ou fait référence à un objet qui n'est pas un certificat, la fonction renvoie NULL.

  • getCreationDate

    Renvoie la date de création de l'entrée identifiée par l'alias donné. Si aucune date de création n'est disponible, la fonction renvoie la date à laquelle le certificat est devenu valide.

  • getKey

    GetKey est transmis au HSM et renvoie un objet clé correspondant à l'étiquette donnée. Comme il interroge getKey directement le HSM, il peut être utilisé pour n'importe quelle clé du HSM, qu'elle ait été générée ou non par le. KeyStore

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

    Vérifie si l'entrée avec l'alias donné représente une entrée de certificat.

  • isKeyEntry

    Vérifie si l'entrée avec l'alias donné représente une entrée de clé. L'action recherche l'alias dans le fichier PKCS12 et le HSM.

  • setCertificateEntry

    Affecte le certificat donné à l'alias donné. Si l'alias donné est déjà utilisé pour identifier une clé ou un certificat, une KeyStoreException est levée. Vous pouvez utiliser le code JCE pour obtenir l'objet clé, puis utiliser la KeyStore SetKeyEntry méthode pour associer le certificat à la clé.

  • setKeyEntry avec la clé byte[]

    Cette API n'est actuellement pas prise en charge par le SDK client 5.

  • setKeyEntry avec l'objet Key

    Affecte la clé donnée à l'alias donné et la stocke dans le HSM. Si la clé n'existe pas déjà dans le HSM, elle sera importée dans le HSM en tant que clé de session extractible.

    Si l'objet Key est de type PrivateKey, il doit être accompagné d'une chaîne de certificats correspondante.

    Si l'alias existe déjà, l'appel SetKeyEntry lance un KeyStoreException et empêche la clé d'être écrasée. Si la clé doit être écrasée, utilisez KMU ou JCE à cet effet.

  • engineSize

    Renvoie le nombre d'entrées dans le keystore.

  • store

    Stocke le magasin de clés dans le flux de sortie donné sous la forme d'un fichier PKCS12 et le sécurise avec le mot de passe donné. En outre, il persiste toutes les clés chargées (qui sont définies en utilisant des appels setKey).