#1 Le 11/07/2019, à 16: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, à 16:18)
Hors ligne
#2 Le 13/07/2019, à 09: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 ??
-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, à 09:35)
Hors ligne
#3 Le 13/07/2019, à 13: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, à 14: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, à 17: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