Linux

CentOS 4.8

enc(1)


ENC

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.b64

Décodage du même fichier

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

Encodage 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.des3

Décodage d’un fichier avec mot de passe fourni :

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

Encodage 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.bf

Décodage base64 puis Blowfish :

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

Dé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.


enc(1)