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 clés fiables dans AWS CloudHSM
AWS CloudHSM prend en charge l'encapsulation fiable des clés pour protéger les clés de données contre les menaces internes. Cette rubrique décrit comment créer des clés fiables pour sécuriser les données.
Rubriques
Présentation des clés fiables
Une clé fiable est une clé qui est utilisée pour encapsuler d'autres clés et que les administrateurs et les responsables de chiffrement (CO) identifient spécifiquement comme étant fiable à l'aide de l'attribut CKA_TRUSTED
. En outre, les administrateurs et les responsables de chiffrement (CO) utilisent CKA_UNWRAP_TEMPLATE
et des attributs associés pour spécifier les actions que les clés de données peuvent effectuer une fois qu'elles ont été désencapsulées par une clé fiable. Les clés de données désencapsulées par la clé fiable doivent également contenir ces attributs pour que l'opération de désencapsulage réussisse, ce qui permet de garantir que les clés de données désencapsulées ne sont autorisées que pour l'usage que vous souhaitez.
Utilisez l'attribut CKA_WRAP_WITH_TRUSTED
pour identifier toutes les clés de données que vous souhaitez encapsuler avec des clés fiables. Cela vous permet de restreindre les clés de données afin que les applications ne puissent utiliser que des clés fiables pour les désencapsuler. Une fois que vous avez défini cet attribut sur les clés de données, il devient en lecture seule et vous ne pouvez pas le modifier. Lorsque ces attributs sont en place, les applications ne peuvent déballer vos clés de données qu'avec les clés auxquelles vous faites confiance, et les désencapsulages se traduisent toujours par des clés de données dotées d'attributs qui limitent la manière dont ces clés peuvent être utilisées.
Attributs de clés fiables
Les attributs suivants vous permettent de marquer une clé comme étant fiable, de spécifier qu'une clé de données ne peut être encapsulée et désencapsulée qu'avec une clé fiable, et de contrôler ce que peut faire une clé de données une fois qu'elle a été désencapsulée :
-
CKA_TRUSTED
: Appliquez cet attribut (en plus deCKA_UNWRAP_TEMPLATE
) à la clé qui encapsulera les clés de données pour indiquer qu'un administrateur ou un responsable de chiffrement (CO) a fait preuve de la diligence nécessaire et qu'il fait confiance à cette clé. Seul un administrateur ou un CO peut définirCKA_TRUSTED
. L'utilisateur de chiffrement (CU) possède la clé, mais seul un CO peut définir son attributCKA_TRUSTED
. -
CKA_WRAP_WITH_TRUSTED
: Appliquez cet attribut à une clé de données exportable pour indiquer que vous ne pouvez encapsuler cette clé qu'avec des clés marquées commeCKA_TRUSTED
. Une foisCKA_WRAP_WITH_TRUSTED
défini sur true, l'attribut passe en lecture seule et vous ne pouvez ni le modifier ni le supprimer. -
CKA_UNWRAP_TEMPLATE
: Appliquez cet attribut à la clé d'encapsulage (en plus deCKA_TRUSTED
) pour spécifier les noms et valeurs d'attribut que le service doit automatiquement appliquer aux clés de données qu'il désencapsule. Lorsqu'une application soumet une clé pour désencapsulage, elle peut fournir également son propre modèle de désencapsulage. Si vous spécifiez un modèle de désencapsulage et que l'application fournit son propre modèle de désencapsulage, le HSM utilise les deux modèles pour appliquer des noms et des valeurs d'attribut à la clé. Toutefois, si une valeur dans leCKA_UNWRAP_TEMPLATE
pour la clé d’encapsulage entre en conflit avec un attribut fourni par l'application lors de la demande de désencapsulage, cette dernière échoue.
Pour plus d'informations sur les attributs, veuillez consulter les rubriques suivantes :
Comment utiliser des clés fiables pour encapsuler des clés de données
Pour utiliser une clé fiable pour encapsuler une clé de données, vous devez suivre trois étapes de base :
Pour la clé de données que vous prévoyez d'encapsuler avec une clé fiable, définissez son attribut
CKA_WRAP_WITH_TRUSTED
sur true.Pour la clé fiable avec laquelle vous prévoyez d'encapsuler la clé de données, définissez son attribut
CKA_TRUSTED
sur true.Utilisez la clé fiable pour encapsuler la clé de données.
Étape 1 : définir le CKA_WRAP_WITH_TRUSTED
de la clé de données sur true
Pour la clé de données que vous souhaitez encapsuler, choisissez l'une des options suivantes pour définir l'attribut CKA_WRAP_WITH_TRUSTED
de la clé sur true. Cela restreint la clé de données afin que les applications ne puissent utiliser que des clés fiables pour l'encapsuler.
Option 1 : si vous générez une nouvelle clé, définissez CKA_WRAP_WITH_TRUSTED
sur true
Générez une clé à l'aide de PKCS #11, JCE ou CloudHSM CLI. Consultez les exemples suivants pour plus de détails.
Option 2 : Si vous utilisez une clé existante, utilisez la CLI CloudHSM pour la définir son CKA_WRAP_WITH_TRUSTED
sur true
Pour attribuer la valeur true à l'attribut CKA_WRAP_WITH_TRUSTED
d'une clé existante, procédez comme suit :
Utilisez la commande login pour vous connecter en tant qu'utilisateur de chiffrement (CU).
Utilisez la commande clé set-attribute pour définir l'attribut
wrap-with-trusted
de la clé sur true.aws-cloudhsm >
key set-attribute --filter attr.label=test_key --name wrap-with-trusted --value true
{ "error_code": 0, "data": { "message": "Attribute set successfully" } }
Étape 2 : définir le CKA_TRUSTED
de la clé fiable sur true
Pour qu'une clé soit une clé fiable, son attribut CKA_TRUSTED
doit être défini sur true. Pour ce faire, vous pouvez utiliser la CLI CloudHSM ou l'Utilitaire de gestion CloudHSM (CMU).
Si vous utilisez la CLI CloudHSM pour définir l'attribut
CKA_TRUSTED
d’une clé, veuillez consulter Comment marquer une clé comme fiable avec la CLI CloudHSM.Si vous utilisez la CMU pour définir l'attribut
CKA_TRUSTED
d'une clé, veuillez consulter Comment marquer une clé comme fiable auprès de l’utilitaire CMU.
Étape 3. Utilisez la clé fiable pour encapsuler la clé de données
Pour associer la clé de données référencée à l'étape 1 à la clé fiable que vous avez définie à l'étape 2, veuillez consulter les liens suivants pour obtenir des exemples de code. Chacun montre comment encapsuler les clés.
Comment désencapsuler une clé de données avec une clé fiable
Pour désencapsuler une clé de données, vous avez besoin qu'une clé fiable ait CKA_UNWRAP
défini sur true. Pour être une telle clé, elle doit également répondre aux critères suivants :
L'attribut
CKA_TRUSTED
de la clé doit être défini sur true.La clé doit utiliser des attributs
CKA_UNWRAP_TEMPLATE
et associés pour spécifier les actions que les clés de données peuvent effectuer une fois qu'elles sont désencapsulées. Si, par exemple, vous souhaitez qu'une clé désencapsulée ne soit pas exportable, vous définissezCKA_EXPORTABLE = FALSE
dans le cadre deCKA_UNWRAP_TEMPLATE
.
Note
CKA_UNWRAP_TEMPLATE
n'est disponible qu'avec PKCS #11.
Lorsqu'une application soumet une clé pour désencapsulage, elle peut fournir également son propre modèle de désencapsulage. Si vous spécifiez un modèle de désencapsulage et que l'application fournit son propre modèle de désencapsulage, le HSM utilise les deux modèles pour appliquer des noms et des valeurs d'attribut à la clé. Toutefois, si, au cours de la demande de désencapsulage, une valeur du CKA_UNWRAP_TEMPLATE
de la clé fiable entre en conflit avec un attribut fourni par l'application, la demande de désencapsulage échoue.
Pour voir un exemple de désencapsulage d'une clé de données avec une clé fiable, reportez-vous à cet exemple PKCS #11