Gestion du chiffrement et des certificats dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Chiffrement et déchiffrement d'un fichier

Lorsque vous chiffrez un fichier, le fichier d'origine n'est ni supprimé, ni modifié. Le fichier de sortie est chiffré.

Pour trouver des solutions aux erreurs courantes relatives à la commande encrypt, reportez-vous à la section après les exemples.


Remarque -  En cas de chiffrement et de déchiffrement de fichiers, essayez d'utiliser des algorithmes approuvés par FIPS avec des longueurs de clé approuvées aussi souvent que possible. Reportez-vous à la liste de la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 . Exécutez la commande encrypt -l pour afficher les algorithmes disponibles et leurs longueurs de clé.
  1. Créez une clé symétrique de la longueur appropriée.

    Vous pouvez indiquer une phrase de passe à partir de laquelle une clé sera générée ou vous pouvez fournir une clé.

    • Si vous fournissez une phrase de passe, vous devez stocker ou mémoriser la phrase de passe. Si vous la stockez en ligne, le fichier de la phrase de passe ne doit être lisible que par vous.

    • Si vous fournissez une clé, elle doit avoir la taille correcte pour le mécanisme. Vous pouvez utiliser la commande pktool. Pour plus d'informations sur cette procédure et des exemples, reportez-vous à la section Génération d'une clé symétrique à l'aide de la commande pktool.

  2. Chiffrez un fichier.

    Fournissez une clé et utilisez un algorithme de clé symétrique avec la commande encrypt.

    % encrypt -a algorithm [-v] \
    [-k keyfile | -K key-label [-T token]] [-i input-file] [-o output-file]
    –a algorithm

    Algorithme à utiliser pour chiffrer le fichier. Saisissez l'algorithme lorsqu'il s'affiche dans la sortie de la commande encrypt -l. Dans la mesure du possible, sélectionnez un algorithme approuvé par FIPS dans la liste de la section FIPS 140 Algorithms in the Cryptographic Framework du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .

    –k keyfile

    Fichier contenant une clé de longueur spécifiée par algorithme. La longueur de la clé pour chaque algorithme est répertoriée, en bits, dans la sortie de la commande encrypt -l.

    –K key-label

    Etiquette d'une clé dans le keystore PKCS #11.

    –T token

    Nom du jeton. Par défaut, le jeton est Sun Software PKCS#11 softtoken. Il est utilisé uniquement lorsque l'option –Kkey-label est utilisée.

    –i input-file

    Fichier d'entrée que vous voulez chiffrer. Ce fichier n'est pas modifié par la commande.

    –o output-file

    Fichier de sortie correspondant à la forme chiffrée du fichier d'entrée.

Exemple 3-8  Création d'une clé AES pour le chiffrement de vos fichiers

Dans l'exemple suivant, un utilisateur crée et stocke une clé AES dans keystore PKCS #11 existant pour l'utilisation lors du chiffrement et du déchiffrement. L'utilisateur peut vérifier que la clé existe et l'utiliser, mais il ne peut pas l'afficher.

% pktool genkey label=MyAESkeynumber1 keytype=aes keylen=256
Enter PIN for Sun Software PKCS#11 softtoken  :Type password

% pktool list objtype=key
Enter PIN for Sun Software PKCS#11 softtoken  :Type password
No.      Key Type      Key Len.      Key Label
----------------------------------------------------
Symmetric keys:
1        AES           256           MyAESkeynumber1

Pour utiliser la clé pour chiffrer un fichier, l'utilisateur le récupère la clé par son étiquette.

% encrypt -a aes -K MyAESkeynumber1 -i encryptthisfile -o encryptedthisfile

Pour déchiffrer le encryptedthisfile, l'utilisateur récupère la clé par son étiquette.

% decrypt -a aes -K MyAESkeynumber1 -i encryptedthisfile -o sameasencryptthisfile
Exemple 3-9  Chiffrement et déchiffrement avec AES et une phrase de passe

Dans l'exemple suivant, un fichier est chiffré avec l'algorithme AES. La clé est générée à partir de la phrase de passe. Si la phrase de passe est stockée dans un fichier, celui-ci doit être lisible uniquement par l'utilisateur.

% encrypt -a aes -i ticket.to.ride -o ~/enc/e.ticket.to.ride
Enter passphrase:    Type passphrase
Re-enter passphrase: Type passphrase again

Le fichier d'entrée, ticket.to.ride, existe toujours sous sa forme d'origine.

Pour déchiffrer le fichier de sortie, l'utilisateur utilise la même phrase de passe et le même mécanisme de chiffrement que ceux utilisés pour le chiffrement du fichier.

% decrypt -a aes -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride
Enter passphrase: Type passphrase
Exemple 3-10  Chiffrement et déchiffrement avec AES et un fichier de clés

Dans l'exemple suivant, un fichier est chiffré avec l'algorithme AES. Les mécanismes AES utilisent une clé de 128 bits, ou 16 octets.

% encrypt -a aes -k ~/keyf/05.07.aes16 \
-i ticket.to.ride -o ~/enc/e.ticket.to.ride 

Le fichier d'entrée, ticket.to.ride, existe toujours sous sa forme d'origine.

Pour déchiffrer le fichier de sortie, l'utilisateur utilise la même clé et le même mécanisme de chiffrement que ceux utilisés pour le chiffrement.

% decrypt -a aes -k ~/keyf/05.07.aes16  \
-i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride

Dépannage

Les messages suivants indiquent que la clé que vous avez fournie à la commande encrypt n'est pas autorisée par l'algorithme que vous utilisez.

  • encrypt: unable to create key for crypto operation: CKR_ATTRIBUTE_VALUE_INVALID

  • encrypt: failed to initialize crypto operation: CKR_KEY_SIZE_RANGE

Si vous transmettez une clé ne répondant pas aux exigences de l'algorithme, vous devez fournir une meilleure clé à l'aide de l'une des méthodes suivantes :

  • Utiliser une phrase de passe. La structure fournit ensuite une clé qui remplit les conditions requises.

  • Transmettre une taille de clé acceptée par l'algorithme. Par exemple, l'algorithme DES requiert une clé de 64 bits. L'algorithme 3DES requiert une clé de 192 bits.