table of contents
ENC(1) | OpenSSL | ENC(1) |
NOM¶
enc - Routines de chiffrement symétriques
SYNOPSIS¶
openssl enc -ciphername [-in nomfichier] [-out nomfichier] [-pass arg] [-e] [-d] [-a] [-A] [-k motdepasse] [-kfile nomfichier] [-S salt] [-K clé] [-iv IV] [-p] [-P] [-bufsize nombre] [-debug]
DESCRIPTION¶
Les commandes de chiffrement symétrique permettent d'encoder ou de décoder des données en utilisant divers chiffrements par blocs ou par flux avec des clés basées sur des mots de passe ou fournies explicitement. L'encodage base64 peut également être effectué, soit par lui-même, soit en supplément à l'encodage ou au décodage.
OPTIONS¶
- -in nomfichier
- Le fichier d'entrée, l'entrée standard par défaut.
- -out nomfichier
- Le fichier de sortie, la sortie standard par défaut.
- -pass arg
- le fichier des mots de passe d'entrée. Pour plus d'information sur
le format de arg référez-vous à la section
ARGUMENTS DE MOT DE PASSE d'openssl(1).
- -salt
- utilise un "salt" (littéralement rajouter du sel) dans
les routines de dérivation de clé. Cette option devra
TOUJOURS être utilisée, sauf si la
compatibilité avec d'anciennes versions d'OpenSSL ou SSLeay est
requise. Cette option est présente dans OpenSSL depuis la version
0.9.5.
- -nosalt
- ne pas utiliser de "salt" dans les routines de dérivation
de clé. Ceci est la valeur par défaut pour assurer la
compatibilité avec d'anciennes versions d'OpenSSL et SSLeay.
- -e
- encodage des données d'entrée : ceci est la valeur
par défaut.
- -d
- décodage des données d'entrée.
- -a
- traitement base64 des données. Ceci signifie que lors d'un
encodage, les données sont encodées base64 après le
traitement et lors d'un décodage, les données sont
décodées base64 avant le traitement.
- -A
- avec l'option -a, le traitement base64 est effectué sur une
ligne.
- -k motdepasse
- le mot de passe à partir duquel la clé sera
dérivée. Ceci est pour assurer la compatibilité avec
d'anciens versions d'OpenSSL et SSLeay, mais remplacé par
l'argument -pass.
- -kfile nomfichier
- lit le mot de passe pour la dérivation de la clé à
partir de la première ligne de nomfichier. Ceci est pour
assurer la compatibilité avec d'anciens versions d'OpenSSL, mais
remplacé par l'argument -pass.
- -S salt
- Le "salt" à utiliser. Sous forme de chaîne de
caractères composée de caractères hexadécimaux
uniquement.
- -K clé
- La clé à utiliser : sous forme de chaîne de
caractères composée de caractères hexadécimaux
uniquement. Si uniquement la clé est spécifiée, le IV
doit être spécifié en plus en utilisant l'option
-iv. Si une clé et un mot de passe sont
spécifiés, la clé donnée avec l'option
-K est prise et le IV est généré à
partir du mot de passe. Cela manque probablement de sens que de
spécifier et la clé et le mot de passe.
- -iv IV
- Le IV à utiliser : sous forme de chaîne de
caractères composée de caractères hexadécimaux
uniquement. Si uniquement la clé est spécifiée avec
l'option -K,
le IV doit être défini explicitement. Si un mot de passe est spécifié, le IV est généré à partir de ce mot de passe.
- -p
- affiche la clé et le IV utilisés.
- -P
- affiche la clé et le IV utilisés puis sort
immédiatement : aucun encodage ni décodage n'est
fait.
- -bufsize nombre
- affecte la taille du tampon d'entrée/sortie.
- -debug
- débogue le BIOs utilisé pour l'entrée/sortie.
NOTES¶
Le programme peut être appelé soit comme openssl nomcodage soit comme openssl enc -nomcodage.
Un mot de passe sera demandé si besoin est pour dériver la clé et le IV.
L'option -salt devrait TOUJOURS être utilisée si la clé est dérivée d'un mot de passe sauf si vous souhaitez la compatibilité 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 répertoires à partir de dictionnaires et d'attaquer des flux de données encodés. Ceci vient du fait que sans le salt, le même mot de passe génère toujours la même clé d'encodage. Si le salt est utilisé, les huit premiers octets des données encodées sont réservés pour le salt : ils sont générés aléatoirement lors de l'encodage d'un fichier et lus lors du décodage.
Certains encodages n'ont pas de clé 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 encodages en bloc utilisent la méthode PKCS#5, le "standard block padding": Ceci permet une vérification de l'intégrité ou du mot de passe rudimentaires. Toutefois, comme la probabilité que de données quelconques passent le test est meilleure que 1 sur 256, ce n'est pas un très bon test.
Tous les encodages RC2 ont la même longueur pour la clé et la clé effective.
Les algorithmes Blowfish et RC5 utilisent une clé à 128 bits.
ENCODAGES SUPPORTÉES¶
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 CFB des-ofb DES en mode OFB des-ecb DES en mode ECB
des-ede-cbc Triple DES EDE à deux clés en mode CBC des-ede Alias pour des-ede des-ede-cfb Triple DES EDE à deux clés en mode CFB des-ede-ofb Triple DES EDE à deux clés en mode OFB
des-ede3-cbc Triple DES EDE à trois clés en mode CBC des-ede3 Alias pour des-ede3-cbc des3 Alias pour des-ede3-cbc des-ede3-cfb Triple DES EDE à trois clés en mode CFB des-ede3-ofb Triple DES EDE à trois clés en mode OFB
desx Algorithme DESX.
idea-cbc Algorithme IDEA en mode CBC idea Comme idea-cbc idea-cfb IDEA en mode CFB idea-ecb IDEA en mode ECB idea-ofb IDEA en mode OFB
rc2-cbc RC2 128 bit en mode CBC rc2 Alias pour rc2-cbc rc2-cfb RC2 128 bit en mode CBC rc2-ecb RC2 128 bit en mode CBC rc2-ofb RC2128 bit en mode CBC rc2-64-cbc RC2 64 bit en mode CBC rc2-40-cbc RC2 40 bit en mode CBC
rc4 RC4 128 bit rc4-64 RC4 64 bit rc4-40 RC4 40 bit
rc5-cbc Encodage RC5 en mode CBC rc5 Alias pour rc5-cbc rc5-cfb Encodage RC5 en mode CBC rc5-ecb Encodage RC5 en mode CBC rc5-ofb Encodage RC5 en mode CBC
EXEMPLES¶
Encodage base64 simple d'un fichier binaire :
openssl base64 -in fichier.bin -out fichier.b64Décodage du même fichier
openssl base64 -d -in fichier.b64 -out fichier.binEncodage d'un fichier en utilisant DES triple en mode CBC avec saisie du mot de passe à l'invite de commande :
openssl des3 -salt -in fichier.txt -out fichier.des3Décodage d'un fichier avec mot de passe fourni :
openssl des3 -d -salt -in fichier.des3 -out fichier.txt -k mymotdepasseEncodage d'un fichier puis encodage base64 (ainsi il pourra par exemple être envoyé par mél) utilisant Blowfish en mode CBC :
openssl bf -a -salt -in fichier.txt -out fichier.bfDécodage base64 puis Blowfish :
openssl bf -d -salt -a -in fichier.bf -out fichier.txtDécodage de données utilisant une clé RC4 fournie :
openssl rc4-40 -in fichier.rc4 -out fichier.txt -K 0102030405
BOGUES¶
L'option -A, lors d'une utilisation avec des fichiers importants ne fonctionne pas proprement.
Il devrait y avoir une option permettant d'inclure un compteur d'itérations.
Tout comme la bibliothèque EVP, le programme enc supporte seulement un nombre fixe d'algorithmes avec certains paramètres. Ainsi, par exemple, pour utiliser RC2 avec une clé de 76 bits ou RC4 avec 84 bits, vous ne pourrez pas utiliser ce programme.
0.9.6c | 3rd Berkeley Distribution |