NOM¶
enc - Routines de chiffrement symétriques
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 IV] [
-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 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
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 (« IV ») 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
l'IV 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 IV
- L'IV à 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, l'IV doit être défini explicitement. Si un mot de
passe est indiqué, l'IV est généré à partir de ce
mot de passe.
- -p
- Afficher la clef et l'IV utilisés.
- -P
- Afficher la clef et l'IV 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/sortie.
- -nopad
- Désactiver le remplissage
(« padding ») de blocs standard.
- -debug
- Déboguer les BIO utilisés pour
l'entrée/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 dériver la clef et
l'IV.
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.
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.