NOM
enc − 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.