Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/07/2019, à 17:04

nicoleburdal

Problèmes de décryptage avec openSSL

Bonjour

Je fais un test avec openSSL.
Un collègue m'a transmis une clé AES dans le fichier TD_cleAES.enc encrypté avec ma clé RSA publique.
Je le décrypte avec ma clé privée pour obtenir la cle AES:

$ openssl rsautl -decrypt -inkey cle.priv -in TD_cleAES.enc -out cleAES 

Il m'a aussi transmis sa clé AES en clair juste pour le test: cle_AES_32.key
Les deux clés AES sont strictement identiques:

$ cat cle_AES_32.key 
DCXxXyNaPG1eej3SwjInaGgABKkX4Rr2INnM2LX+B2M=
$ cat cleAES 
DCXxXyNaPG1eej3SwjInaGgABKkX4Rr2INnM2LX+B2M=
$ cmp -b --verbose cle_AES_32.key cleAES
$

Et pourtant l'une me permet de décrypter son fichier crypté AES et pas l'autre!

$ openssl aes-256-cbc -d -in TD_Message_AES32.enc -out clair.txt -k cleAES
bad decrypt
139762672632256:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:536:
$ openssl aes-256-cbc -d -in TD_Message_AES32.enc -out clair.txt -k cle_AES_32.key 
$

HELP!!!! Cela fait des heures que je coince sur ce problème!
Merci d'avance
Nicole


Modération : merci d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 11/07/2019, à 17:18)

Hors ligne

#2 Le 13/07/2019, à 10:30

DonutMan75

Re : Problèmes de décryptage avec openSSL

Hello,
c'est curieux en effet...
Que donnent les commandes :

$ od -a clef_AES_32.key
$ od -a cleAES

Ou bien peut-être qu'en jouant sur la façon de lire la clef ??

openssl help aes-256-cbc a écrit :

-k val              Passphrase
-kfile infile       Read passphrase from file
-K val              Raw key, in hex

Par exemple :

$ openssl aes-256-cbc -d -in TD_Message_AES32.enc -out clair.txt -k "DCXxXyNaPG1eej3SwjInaGgABKkX4Rr2INnM2LX+B2M="
$ openssl aes-256-cbc -d -in TD_Message_AES32.enc -out clair.txt -kfile ./clef_AES_32.key
$ openssl aes-256-cbc -d -in TD_Message_AES32.enc -out clair.txt -kfile ./clef_AES

Peut-être qu'avec -k clefAES il essaie de déchiffre avec la clef = "clefAES" ? i.e. la chaîne de caractères, pas le fichier ? par exemple, si le fichier en question n'existe pas ?? (faute de frappe etc...)

Bon courage pour la suite !

Donut

Dernière modification par DonutMan75 (Le 13/07/2019, à 10:35)

Hors ligne

#3 Le 13/07/2019, à 14:23

nam1962

Re : Problèmes de décryptage avec openSSL

C'est un fil Dracula ?

Décrypter, c'est bien : sortir d'une jolie tombe ?


[ Modéré ]

Hors ligne

#4 Le 13/07/2019, à 15:26

LeoMajor

Re : Problèmes de décryptage avec openSSL

bonjour,

openssl enc  correspond à du symétrique, et n'a pas de concept identitaire (pas de signature, pas de clef privée, pas de clef publique, pas de notion expéditeur/destinataire/recipient/ ...)

openssl rsautl  correspond à de l'asysmétrique mais sans structure X509 v3 autorité de certification.
openssl smime (1ière version) cms (versions supérieures smime) correspondent à de l'asymétrique, certificats ou clefs privée/publique  mais avec autorité de certification. Fait référence à PKI.

openssl enc

-kfile est l'ancienne syntaxe.
-pass file:/tmp/file_pass    -k mot_de_passe/passphrase
openssl rand -base64 512 > /tmp/file_pass
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass file:/tmp/file_pass  -k mot_de_passe  -base64

en gros, tu as plusieurs syntaxes avec -pass
"secret" est le mot de passe/passphrase

openssl enc -d -bf-cbc -in /tmp/chiffre -out /tmp/dechiffre -pass pass:secret
echo "secret" | openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass stdin
echo "secret" | openssl enc -d -bf-cbc -in /tmp/chiffre -out /tmp/dechiffre -pass stdin
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass file:/tmp/file_pass  -k secret -base64
openssl enc -d -bf-cbc -in /tmp/chiffre -out /tmp/dechiffre -pass file:/tmp/file_pass -k secret -base64

pour consulter la doc

 man openssl enc

appuyez sur "q" puis "return/enter"  (pour accéder au 2ième menu)

la clef de chiffrement (salt, key, iv)

 openssl enc -e -bf-cbc  -out /tmp/chiffre -pass file:/tmp/file_pass  -k secret  -base64 -p <<<"bonjour"
salt=2B8BFB9D42D00CE7
key=94380B1164F0D03BC3B257FC78FEBC43
iv =16FEE3D19F12FDB1

si tu veux récupérer les mêmes caractéristiques (déconseillé) pour chiffrer autre chose

:~$ openssl enc -e -bf-cbc -out /tmp/autre-chiffre -S 2B8BFB9D42D00CE7 -K 94380B1164F0D03BC3B257FC78FEBC43 -iv 16FEE3D19F12FDB1 -k secret -base64 -p <<<"aurevoir"
salt=2B8BFB9D42D00CE7
key=94380B1164F0D03BC3B257FC78FEBC43
iv =16FEE3D19F12FDB1

:~$ cat /tmp/autre-chiffre 
U2FsdGVkX18ri/udQtAM54WClV9UCXFNMv5hNCj1hiw=
:~$ cat /tmp/chiffre 
U2FsdGVkX18ri/udQtAM5/TCm0CqlujiA47NQR+EzKU=

Hors ligne

#5 Le 17/07/2019, à 18:01

nicoleburdal

Re : Problèmes de décryptage avec openSSL

Bonjour
Merci à tous pour vos réponses. Elles m'ont aidée à comprendre.
L'explication est dans le man de openssl:

-k password, -kfile filename
    Both option are used to specify a password or a file containing the password which is used for key derivation. However they are deprecated. You should use the -pass option instead. The equivalents are -pass pass:password and -pass: file:filename respectively.

-K key
    This option allows you to set the key used for encryption or decryption. This is the key directly used by the cipher algorithm. If no key is given OpenSSL will derive it from a password. This process is described in PKCS5#5 (RFC-2898).

l'option -k est utilisée pour transmettre un mot de passe à partir duquel la clé sera construite explicitement et -K pour transmettre précisément la clé!

- Comme pour le chiffrement, l'option -k a été utilisée, il fallait que j'utilise exactement le même nom de fichier car c'est le password à partir duquel la clé est dérivée!

Merci encore à tous
N. B.

Hors ligne