

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.

# Comment utiliser des clés fiables pour encapsuler des clés de données AWS CloudHSM
Comment utiliser des clés fiables pour encapsuler des clés de données

Pour utiliser une clé sécurisée pour encapsuler une clé de données AWS CloudHSM, vous devez suivre trois étapes de base :

1. 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.

1. Pour la clé fiable avec laquelle vous prévoyez d'encapsuler la clé de données, définissez son attribut `CKA_TRUSTED` sur true.

1. 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 \$111](pkcs11-library.md), [JCE](java-library.md) ou [CloudHSM CLI](cloudhsm_cli.md). Consultez les exemples suivants pour plus de détails.

------
#### [ PKCS \$111 ]

Pour générer une clé avec PKCS \$111, vous devez définir l'attribut `CKA_WRAP_WITH_TRUSTED` de la clé sur true. Comme indiqué dans l'exemple suivant, procédez en incluant cet attribut dans le `CK_ATTRIBUTE template` de la clé puis en lui attribuant la valeur true :

```
CK_BYTE_PTR label = "test_key";
CK_ATTRIBUTE template[] = {
        {CKA_WRAP_WITH_TRUSTED, &true_val,         sizeof(CK_BBOOL)},
        {CKA_LABEL,             label,             strlen(label)},
        ...
};
```

Pour plus d'informations, veuillez consulter [nos exemples publics illustrant la génération de clés avec PKCS \$111](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate).

------
#### [ JCE ]

Pour générer une clé avec JCE, vous devez définir l'attribut `WRAP_WITH_TRUSTED` de la clé sur true. Comme indiqué dans l'exemple suivant, procédez en incluant cet attribut dans le `KeyAttributesMap` de la clé puis en lui attribuant la valeur true :

```
final String label = "test_key";
final KeyAttributesMap keySpec = new KeyAttributesMap();
keySpec.put(KeyAttribute.WRAP_WITH_TRUSTED, true);
keySpec.put(KeyAttribute.LABEL, label);
...
```

Pour plus d'informations, veuillez consulter [nos exemples publics illustrant la génération de clés avec JCE](https://docs.aws.amazon.com/cloudhsm/latest/userguide/java-samples.html#java-samples-code_5).

------
#### [ CloudHSM CLI ]

Pour générer une clé avec la CLI CloudHSM, vous devez définir l'attribut `wrap-with-trusted` de la clé sur true. Pour ce faire, incluez `wrap-with-trusted=true` dans l'argument approprié pour la commande de génération de clés :
+ Pour les clés symétriques, ajoutez `wrap-with-trusted` à l'argument `attributes`.
+ Pour les clés publiques, ajoutez `wrap-with-trusted` à l'argument `public-attributes`.
+ Pour les clés privées, ajoutez `wrap-with-trusted` à l'argument `private-attributes`.

Pour de plus amples informations sur la génération de paires de clés, veuillez consulter [La generate-asymmetric-pair catégorie dans la CLI CloudHSM](cloudhsm_cli-key-generate-asymmetric-pair.md).

Pour plus d'informations sur la génération de clés symétriques, veuillez consulter [La catégorie generate-symetric dans la CLI CloudHSM](cloudhsm_cli-key-generate-symmetric.md).

------

### 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 :

1. Utilisez la commande [Connectez-vous à un HSM à l'aide de la CLI CloudHSM](cloudhsm_cli-login.md) pour vous connecter en tant qu'utilisateur de chiffrement (CU).

1. Utilisez la commande [Définissez les attributs des clés à l'aide de la CLI CloudHSM](cloudhsm_cli-key-set-attribute.md) 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 [Marquer une clé comme fiable à l'aide de la CLI CloudHSM](manage-keys-cloudhsm-cli-trusted.md).
+ Si vous utilisez la CMU pour définir l'attribut `CKA_TRUSTED` d'une clé, veuillez consulter [Comment marquer une clé comme fiable à l'aide de l'utilitaire AWS CloudHSM de gestion](cloudhsm_using_trusted_keys_control_key_wrap.md).

## É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.
+ [AWS CloudHSM Exemples de PKCS \$111](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/wrapping)
+ [AWS CloudHSM Exemples JCE](https://github.com/aws-samples/aws-cloudhsm-jce-examples/tree/sdk5/src/main/java/com/amazonaws/cloudhsm/examples)