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 pour le SDK client 3
La AWS CloudHSM KeyStore
classe fournit un magasin de clés PKCS12 spécial qui permet d'accéder aux AWS CloudHSM clés via des applications telles que keytool et jarsigner. 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.
Note
Les certificats étant des informations publiques, il n'est AWS CloudHSM pas possible de stocker des certificats sur des HSM afin d'optimiser la capacité de stockage des clés cryptographiques.
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
, voir Classe KeyStore
Choisir le magasin de clés approprié
Le fournisseur d'extension cryptographique AWS CloudHSM Java (JCE) est fourni avec un magasin de clés par défaut en lecture seule qui transmet toutes les transactions au HSM. Ce magasin de clés par défaut est distinct du magasin spécialisé. AWS CloudHSM KeyStore Dans la plupart des cas, vous obtiendrez de meilleures performances d'exécution et débit en utilisant la valeur par défaut. Vous ne devez l'utiliser que AWS CloudHSM KeyStore pour les applications pour lesquelles vous avez besoin de support pour les certificats et les opérations basées sur des certificats, en plus du transfert des opérations clés vers le HSM.
Bien que les deux magasins de clés utilisent le fournisseur JCE pour leurs opérations, ce sont des entités indépendantes qui n'échangent pas d'informations entre elles.
Chargez le magasin de clés par défaut pour votre application Java comme suit :
KeyStore ks = KeyStore.getInstance("Cavium");
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
Un objet KeyStore CloudHSM est généralement utilisé par le biais d'une application tierce telle que
AWS CloudHSM KeyStore est conforme aux KeyStore spécifications de la classe
-
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 avec l'outil key_mgmt_util de CloudHSM.
-
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. KeyStoreKey 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 KeyStoreSetKeyEntry
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 3.
-
SetKeyEntry
avec l'objetKey
Affecte la clé donnée à l'alias donné et la stocke dans le HSM. Si l'objet
Key
n'est pas de typeCaviumKey
, la clé est importée dans le HSM en tant que clé de session extractible.Si l'objet
Key
est de typePrivateKey
, il doit être accompagné d'une chaîne de certificats correspondante.Si l'alias existe déjà, l'appel
SetKeyEntry
lance unKeyStoreException
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
).