Attributs de clé Java pris en charge - 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.

Attributs de clé Java pris en charge

Cette rubrique fournit des informations sur les attributs clés Java pris en charge pour le SDK client 5. Cette rubrique décrit comment utiliser une extension propriétaire pour le fournisseur JCE afin de définir les attributs de clé. Utilisez cette extension pour définir les attributs de clés pris en charge et leurs valeurs au cours des opérations suivantes :

  • Génération de clés

  • Importation de clés

Pour des exemples d'utilisation des attributs de clé, consultez Exemples de code pour la bibliothèque de AWS CloudHSM logiciels pour Java.

Présentation des attributs

Les attributs de clé permettent de spécifier les actions autorisées sur les objets de type clé, y compris les clés publiques, privées ou secrètes. Vous définissez les attributs de clés et leurs valeurs lors des opérations de création d'objets de type clé.

Toutefois, l'extension JCE (Java Cryptography Extension) ne spécifie pas comment définir les valeurs des attributs de clé. Dès lors, la plupart des actions étaient autorisées par défaut. En revanche, la norme PKCS #11 définit un ensemble complet d'attributs avec des valeurs par défaut plus restrictives. À partir du fournisseur JCE 3.1, AWS CloudHSM fournit une extension propriétaire qui vous permet de définir des valeurs plus restrictives pour les attributs couramment utilisés.

Attributs pris en charge

Vous pouvez définir des valeurs pour les attributs répertoriés dans le tableau ci-dessous. Il est conseillé de spécifier uniquement des valeurs pour les attributs que vous souhaitez restreindre. Si vous ne spécifiez aucune valeur, AWS CloudHSM utilise la valeur par défaut spécifiée dans le tableau ci-dessous. Une cellule vide dans la colonne Default Value (Valeur par défaut) signale qu'aucune valeur par défaut n'est assignée à l'attribut.

Attribut Valeur par défaut Remarques
Clé symétrique Clé publique dans la paire de clés Clé privée dans la paire de clés
DECRYPT TRUE TRUE True indique que vous pouvez utiliser la clé pour déchiffrer n'importe quelle mémoire tampon. Vous définissez généralement cette valeur sur FALSE pour une clé dont l'attribut WRAP est défini sur true.
DERIVE Permet d'utiliser une clé pour dériver d'autres clés.
ENCRYPT TRUE TRUE True indique que vous pouvez utiliser la clé pour chiffrer n'importe quelle mémoire tampon.
EXTRACTABLE TRUE TRUE True indique que vous pouvez exporter cette clé hors du HSM.
ID Valeur définie par l'utilisateur utilisée pour identifier la clé.
KEY_TYPE Utilisé pour identifier le type de clé (AES, DESede, secret générique, EC ou RSA).
LABEL Chaîne définie par l'utilisateur qui vous permet d'identifier facilement les clés de votre HSM. Conformément aux meilleures pratiques, utilisez une étiquette unique pour chaque clé afin de pouvoir la retrouver plus facilement par la suite.
LOCAL Indique une clé générée par le HSM.
OBJECT_CLASS Utilisé pour identifier la classe d'objet d'une clé (SecretKey PublicKey ou PrivateKey).
PRIVATE TRUE TRUE TRUE True indique qu'un utilisateur ne peut pas accéder à la clé tant qu'il n'est pas authentifié. Pour plus de clarté, les utilisateurs ne peuvent accéder à aucune clé AWS CloudHSM tant qu'ils ne sont pas authentifiés, même si cet attribut est défini sur FALSE.
SIGN TRUE TRUE True indique que vous pouvez utiliser la clé pour signer le résumé d'un message. Cette valeur est généralement définie sur FALSE pour les clés publiques et les clés privées que vous avez archivées.
SIZE Attribut qui définit la taille d'une clé. Pour plus de détails sur les tailles de clé prises en charge, reportez-vous à la section Mécanismes pris en charge pour le SDK client 5.
TOKEN FALSE FALSE FALSE

Clé permanente répliquée sur tous les HSM du cluster et incluse dans les sauvegardes. TOKEN = FALSE implique une clé éphémère qui est automatiquement effacée lorsque la connexion au HSM est interrompue.

UNWRAP TRUE TRUE True indique que vous pouvez utiliser la clé pour décencapsuler (importer) une autre clé.
VERIFY TRUE TRUE True indique que vous pouvez utiliser la clé pour valider une signature. Cette valeur est généralement définie sur FALSE pour les clés privées.
WRAP TRUE TRUE True indique que vous pouvez utiliser la clé pour encapsuler une autre clé. Vous définissez généralement ce paramètre sur FALSE pour les clés privées.
WRAP_WITH_TRUSTED FALSE FALSE True indique qu'une clé ne peut être encapsulée et désencapsulée qu'avec des clés pour lesquelles l'attribut TRUSTED est défini sur true. Une fois que l’attribut WRAP_WITH_TRUSTED est défini sur true, cet attribut est en lecture seule et ne peut pas être défini sur false. Pour en savoir plus sur l’encapsulage de confiance, consultez la section Utilisation de clés de confiance pour contrôler le désencapsulage des clés.
Note

Vous bénéficiez d'une prise en charge plus large des attributs dans la bibliothèque PKCS #11. Pour plus d'informations, consultez Attributs PKCS #11 pris en charge.

Définition des attributs pour une clé

KeyAttributesMap est un objet de type Java Map que vous pouvez utiliser pour définir des valeurs d'attribut pour les objets de type clé. Les méthodes de KeyAttributesMap fonctionne d'une manière similaire à celles utilisées pour la manipulation de Java Map.

Pour définir des valeurs personnalisées pour les attributs, deux options s'offrent à vous :

  • Utiliser les méthodes répertoriées dans le tableau suivant

  • Utiliser les modèles de générateur illustrés plus loin dans ce document

Les objets de mappage d'attribut prennent en charge les méthodes suivantes pour définir les attributs :

Opération Valeur renvoyée Méthode KeyAttributesMap
Obtenir la valeur d'un attribut pour une clé existante Objet (contenant la valeur) ou null

get(keyAttribute)

Renseigner la valeur d'un attribut de clé Valeur précédente associée à l'attribut de clé, ou null en l'absence de mappage pour un attribut de clé

put(keyAttribute, value)

Renseigner des valeurs pour plusieurs attributs de clés N/A

Tout mettre () keyAttributesMap

Supprimer une paire clé-valeur du mappage d'attributs

Valeur précédente associée à l'attribut de clé, ou null en l'absence de mappage pour un attribut de clé

remove(keyAttribute)

Note

Tous les attributs que vous ne spécifiez pas explicitement utilisent les valeurs par défaut répertoriées dans le tableau précédent, dans Attributs pris en charge.

Définition des attributs pour une paire de clés

Utilisez la classe Java KeyPairAttributesMap pour gérer les attributs d'une paire de clés. KeyPairAttributesMap encapsule deux objets KeyAttributesMap : un pour une clé publique et un pour une clé privée.

Pour définir des attributs individuels de la clé publique et la clé privée séparément, vous pouvez utiliser la méthode put() sur l'objet mappé KeyAttributes correspondant à cette clé. Choisissez la méthode getPublic() pour récupérer le mappage d'attributs de la clé publique, et utilisez getPrivate() pour récupérer le mappage d'attributs de la clé privée. Renseignez la valeur de plusieurs attributs de clés pour les paires de clés publiques et privées en utilisant putAll() avec le mappage d'attributs d'une paire de clés comme argument.