OpenSSL et AES

De knowledge
Aller à la navigation Aller à la recherche

Pour des infos plus générales consulter cette page.

Création de la clé.

On va créer une clé "aléatoire" de n bits (ici 256 soit 32 octets)

openssl rand 32 > cle_secrete.pem

Attention cle_secrete.pem est un fichier binaire. Le transférer tel quel peut créer des problèmes. Dans un éditeur de texte :

>œGP­n
�4�«Ë%‘¤?¢?”9kʁeé¦ÝÜ È<

Si on le transfère pas mail, en FTP, en l'imprimant... le transfert va être difficile. On utilise, pour faire face ce problème, l'encodage en base64.

$ openssl base64 -in cle_secrete.pem
PpyBR1CtbgoXNBeryyWRpH+if5Q5a8qBZemm3dwAyDw=

La chaine de caractères est plus facile a transférer (on peut même l'imprimer et le retaper à la main). Pour en faire un fichier :

openssl base64 -in cle_secrete.pem -out cle.txt

On échange le fichier clé.txt avec son partenaire (et seulement avec lui). Chacun poura recréer la clé par la commande:

openssl base64 -d -in clé.txt -out cle_secrete.pem

On recrée le fichier binaire à partie de sa représentation en base64.

Chiffrer

On prends un texte "en clair"... n'importe lequel. Ici on va travailler avec ça

Tel était l’être auquel, depuis quelques instants, Gilliatt appartenait.

Ce monstre était l’habitant de cette grotte. Il était l’effrayant génie du lieu. Sorte de sombre démon de l’eau.

Toutes ces magnificences avaient pour centre l’horreur.

Le mois d’auparavant, le jour où pour la première fois Gilliatt avait pénétré dans la grotte, la noirceur ayant un contour, entrevue par lui dans les plissements de l’eau secrète, c’était cette pieuvre.

Elle était là chez elle.

Quand Gilliatt, entrant pour la seconde fois dans cette cave à la poursuite du crabe, avait aperçu la crevasse où il avait pensé que le crabe se réfugiait, la pieuvre était dans ce trou, au guet.

Se figure-t-on cette attente ?

Pas un oiseau n’oserait couver, pas un œuf n’oserait éclore, pas une fleur n’oserait s’ouvrir, pas un sein n’oserait allaiter, pas un cœur n’oserait aimer, pas un esprit n’oserait s’envoler, si l’on songeait aux sinistres patiences embusquées dans l’abîme.

On va l'appeler texte-en-clair.txt Pour chiffrer :

openssl aes-256-cbc -pbkdf2 -iter 100000 -in texte-en-clair.txt -out texte-chiffre.bin -pass file:cle_secrete.pem

Maintenant on peut envoyer le fichier texte-chiffre.bin sereinement sur un réseau public. Seul les possesseurs de cle_secrete.pem sont en mesure ce déchiffrer. Si on tente de lire le texte chiffré :

$ cat texte-chiffre.bin
Salted__1▒dK▒ ▒;H尬▒#▒P▒W;N▒u▒▒o▒▒R▒:▒vP9C▒|[▒-▒▒▒
▒r7j▒▒x▒+▒▒▒4▒) S▒▒^$p▒,+▒32▒▒▒▒6▒v▒)▒pW▒W▒=▒▒''i▒M ▒▒4▒▒.▒ތ▒▒▒▒h'&▒
                                                                    2▒▒▒a▒▒▒v▒ w
                                                                                UK▒I$▒▒W▒▒*▒▒.q▒a▒bR7
                                                                                                     ▒▒▒▒CGbu▒,$M▒▒r▒Z▒▒▒+▒$ɇ▒8[T▒@▒1X3▒▒▒▒3T o▒▒vW▒▒#▒▒G