enc(1) Routines de chiffrement symétrique

SYNOPSIS

openssl enc -nom_algorithme [-in nom_fichier] [-out nom_fichier] [-pass param] [-e] [-d] [-a|-base64] [-A] [-k mot_de_passe] [-kfile nom_fichier] [-K clef] [-iv VI] [-S sel] [-salt] [-nosalt] [-z] [-md][-p] [-P] [-bufsize nombre] [-nopad] [-debug] [-none] [-engine id]

DESCRIPTION

Les commandes de chiffrement symétrique permettent de chiffrer ou de déchiffrer des données en utilisant divers algorithmes par blocs ou par flux avec des clefs basées sur des mots de passe ou fournies explicitement. L'encodage ou le décodage en base64 peut également être effectué, soit par lui-même, soit en supplément du chiffrement et du déchiffrement.

OPTIONS

-in nom_fichier
Le fichier d'entrée. Par défaut c'est l'entrée standard.
-out nom_fichier
Le fichier de sortie. Par défaut c'est la sortie standard.
-pass param
Le fichier des mots de passe d'entrée. Pour plus de renseignements sur le format de param, consultez la section PARAMÈTRES DE PHRASE SECRÈTE d'openssl(1).
-salt
Utiliser du sel dans les routines de dérivation de clef. C'est la valeur par défaut.
-nosalt
Ne pas utiliser de sel dans les routines de dérivation de clef. Cette option ne devrait pas être utilisé à part pour faire des test ou pour assurer la compatibilité avec des versions précédentes d'OpenSSL et SSLeay.
-e
Chiffrer les données en entrée : c'est effectué par défaut.
-d
Déchiffrer les données en entrée.
-a
Traitement en base64 des données. Cela signifie que lors d'un chiffrement, les données sont encodées en base64 après le chiffrement et lors d'un déchiffrement, les données sont décodées en base64 avant le déchiffrement.
-base64
Identique à -a.
-A
Avec l'option -a, le traitement en base64 est effectué sur une ligne.
-k mot_de_passe
Le mot de passe à partir duquel la clef sera dérivée. C'est pour assurer la compatibilité avec d'anciennes versions d'OpenSSL, mais c'est remplacé par le paramètre -pass.
-kfile nom_fichier
Lire le mot de passe pour la dérivation de la clef à partir de la première ligne de nom_fichier. C'est pour assurer la compatibilité avec d'anciennes versions d'OpenSSL, mais c'est remplacé par le paramètre -pass.
-nosalt
Ne pas utiliser de sel.
-salt
Utiliser du sel (généré aléatoirement ou fourni avec l'option -S) lors du chiffrement (par défaut).
-S sel
Le grain de sel à utiliser. Sous forme de chaîne de caractères hexadécimaux.
-K clef
La clef à utiliser : sous forme de chaîne de caractères composée uniquement de caractères hexadécimaux. Si seule la clef est indiquée, le vecteur d'initialisation (« VI ») doit en plus être indiqué avec l'option -iv. Si une clef et un mot de passe sont indiqués, la clef donnée avec l'option -K est prise et le VI est généré à partir du mot de passe. Cela n'a probablement pas de sens d'indiquer à la fois la clef et le mot de passe.
-iv VI
Le VI à utiliser : sous forme de chaîne de caractères composée uniquement de caractères hexadécimaux. Si seule la clef est indiquée avec l'option -K, le VI doit être défini explicitement. Si un mot de passe est indiqué, le VI est généré à partir de ce mot de passe.
-p
Afficher la clef et le VI utilisés.
-P
Afficher la clef et le VI utilisés puis sortir immédiatement : aucun chiffrement ou déchiffrement n'est effectué.
-bufsize nombre
Définir la taille du tampon d'entrée et sortie.
-nopad
Désactiver le remplissage (« padding ») de blocs standard.
-debug
Déboguer les BIO utilisés pour l'entrée et la sortie.
-z
Compresser ou décompresser le texte en clair avec zlib avant le chiffrement ou après le déchiffrement. Cette option n'existe que si OpenSSL a été compilé avec les options zlib ou zlib-dynamic.
-none
Utiliser le chiffrement NULL (pas de chiffrement ou de déchiffrement de l'entrée).

NOTES

Le programme peut être appelé soit comme openssl nom_algorithme soit comme openssl enc -nom_algorithme, mais la première forme ne fonctionne pas avec les chiffrements fournis par un moteur, parce que cette forme est traitée avant de lire le fichier de configuration et de charger les moteurs (« ENGINE »).

Les moteurs qui fournissent de nouveaux algorithmes de chiffrement complets (comme le moteur ccgost qui fournit l'algorithme gost89) devraient être configurés dans le fichier de configuration. Les moteurs indiqués en ligne de commande avec les options -engine ne peuvent être utilisés que pour des implémentations d'algorithmes assistées par le matériel, pris en charge par le noyau d'OpenSSL ou un autre moteur, indiqués dans le fichier de configuration.

Quand la commande enc affiche les algorithmes disponibles, les algorithmes fournis par les moteurs indiqués dans le fichier de configuration sont aussi affichés.

Un mot de passe sera demandé, si besoin est, pour obtenir la clef et le VI.

L'option -salt devrait toujours être utilisée si la clef est dérivée d'un mot de passe sauf si vous souhaitez être compatible avec les versions précédentes d'OpenSSL et de SSLeay.

Sans l'option -salt, il est possible d'effectuer des attaques efficaces sur les mots de passe à partir de dictionnaires et d'attaquer des flux de données chiffrées. Cela vient du fait que sans le grain de sel, le même mot de passe génère toujours la même clef de chiffrement. Si un grain de sel est utilisé, les huit premiers octets des données encodées sont réservés pour le sel : ils sont générés aléatoirement lors du chiffrement d'un fichier et lus lors du déchiffrement.

Certains algorithmes n'ont pas de clef de taille importante et d'autres ont des implications sur la sécurité en cas de mauvaise utilisation. Un débutant est avisé d'utiliser des encodages en bloc forts en mode CBC comme bf ou des3.

Tous les algorithmes en mode bloc utilisent la méthode de remplissage PKCS#5, le « standard block padding » : cela permet d'effectuer une vérification rudimentaire de l'intégrité ou du mot de passe. Toutefois, comme la probabilité que des données quelconques passent le test est meilleure que 1 sur 256, ce n'est pas un très bon test.

Si le remplissage est désactivé, les données en entrées doivent avoir une taille multiple de la taille de bloc de l'algorithme.

Tous les algorithmes RC2 ont la même longueur de clef et longueur de clef effective.

Les algorithmes Blowfish et RC5 utilisent une clef de 128 bits.

ALGORITHMES PRIS EN CHARGE

Remarquez que certains de ces algorithmes peuvent être désactivés au moment de la compilation et que certains ne sont disponibles que si le moteur approprié est configuré dans le fichier de configuration. La sortie de la commande enc exécutée avec des fonctions non prises en charge (par exemple openssl enc -help) contient une liste d'algorithmes, pris en charge par votre version d'OpenSSL, y compris ceux fournis par les moteurs configurés.

Le programme enc ne permet pas les modes de chiffrement authentifié comme CCM ou GCM. L’utilitaire ne garde ni ne récupère l’étiquette d’authentification.

 base64             Base 64
 bf-cbc             Blowfish en mode CBC
 bf                 Alias pour bf-cbc
 bf-cfb             Blowfish en mode CFB
 bf-ecb             Blowfish en mode ECB
 bf-ofb             Blowfish en mode OFB
 cast-cbc           CAST en mode CBC
 cast               Alias pour cast-cbc
 cast5-cbc          CAST5 en mode CBC
 cast5-cfb          CAST5 en mode CFB
 cast5-ecb          CAST5 en mode ECB
 cast5-ofb          CAST5 en mode OFB
 des-cbc            DES en mode CBC
 des                Alias pour des-cbc
 des-cfb            DES en mode CBC
 des-ofb            DES en mode OFB
 des-ecb            DES en mode ECB
 des-ede-cbc        Triple DES EDE à 2 clefs en mode CBC
 des-ede            Triple DES EDE à 2 clefs en mode ECB
 des-ede-cfb        Triple DES EDE à 2 clefs en mode CFB
 des-ede-ofb        Triple DES EDE à 2 clefs en mode OFB
 des-ede3-cbc       Triple DES EDE à 3 clefs en mode CBC
 des-ede3           Triple DES EDE à 3 clefs en mode ECB
 des3               Alias pour des-ede3-cbc
 des-ede3-cfb       Triple DES EDE à 3 clefs en mode CFB
 des-ede3-ofb       Triple DES EDE à 3 clefs en mode OFB
 desx               Algorithm DESX
 gost89             GOST 28147-89 in CFB mode (fourni par moteur ccgost)
 gost89-cnt        `GOST 28147-89 in CNT mode (fourni par moteur ccgost)
 idea-cbc           Algorithm IDEA en mode CBC
 idea               Alias pour idea-cbc
 idea-cfb           IDEA en mode CFB
 idea-ecb           IDEA en mode ECB
 idea-ofb           IDEA en mode OFB
 rc2-cbc            RC2 128 bits en mode CBC
 rc2                Alias pour rc2-cbc
 rc2-cfb            RC2 128 bits en mode CFB
 rc2-ecb            RC2 128 bits en mode ECB
 rc2-ofb            RC2 128 bits en mode OFB
 rc2-64-cbc         RC2 64 bits en mode CBC
 rc2-40-cbc         RC2 40 bits en mode CBC
 rc4                RC4 128 bits
 rc4-64             RC4 64 bits
 rc4-40             RC4 40 bits
 rc5-cbc            Algorithme RC5 en mode CBC
 rc5                Alias pour rc5-cbc
 rc5-cfb            Algorithme RC5 en mode CFB
 rc5-ecb            Algorithme RC5 en mode ECB
 rc5-ofb            RC5 cipher in OFB mode
 aes-[128|192|256]-cbc  AES 128/192/256 bits en mode CBC
 aes-[128|192|256]      Alias pour aes-[128|192|256]-cbc
 aes-[128|192|256]-cfb  AES 128/192/256 bits en mode CFB 128 bits
 aes-[128|192|256]-cfb1 AES 128/192/256 bits en mode CFB 1 bit
 aes-[128|192|256]-cfb8 AES 128/192/256 bits en mode CFB 8 bits
 aes-[128|192|256]-ecb  AES 128/192/256 bits en mode ECB
 aes-[128|192|256]-ofb  AES 128/192/256 bits en mode OFB

EXEMPLES

Encoder simplement en base64 un fichier binaire :

 openssl base64 -in fichier.bin -out fichier.b64

Décoder le même fichier :

 openssl base64 -d -in fichier.b64 -out fichier.bin

Chiffrer un fichier en utilisant le triple DES en mode CBC et en demandant le mot de passe sur le terminal :

 openssl des3 -salt -in fichier.txt -out fichier.des3

Déchiffrer un fichier avec le mot de passe fourni :

 openssl des3 -d -salt -in fichier.des3 -out fichier.txt -k motdepasse

Chiffrer un fichier, puis l'encoder en base64 (pour pouvoir l'envoyer par mail par exemple), en utilisant l'algorithme Blowfish en mode CBC :

 openssl bf -a -salt -in fichier.txt -out fichier.bf

Décoder un fichier en base64, puis le déchiffrer :

 openssl bf -d -salt -a -in fichier.bf -out fichier.txt

Déchiffrer des données en utilisant une clef RC4 de 40 bits fournie :

 openssl rc4-40 -in fichier.rc4 -out fichier.txt -K 0102030405

BOGUES

L'option -A ne fonctionne pas correctement avec les très gros fichiers.

Il devrait y avoir une option permettant d'inclure un compteur d'itérations.

Le programme enc gère seulement un nombre fixe d'algorithmes avec certains paramètres. Ainsi, par exemple, pour utiliser RC2 avec une clef de 76 bits ou RC4 avec 84 bits, vous ne pourrez pas utiliser ce programme.

TRADUCTION

Cette page de manuel a été traduite par arne en 2002 et est maintenue par la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.