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.