Vous êtes sur la page 1sur 4

INPT A.U.

2020/2021
Cycle Ingénieur

TP N°1
Objectif :
Le but de ce TP est :
 Tester la stéganographie comme moyen de sécurité
 La mise en œuvre de quelques algorithmes de chiffrement symétriques et asymétriques à
travers l’utilisation de la boite à outil cryptographique OpenSSL sous Windows.

Logiciels utilisés : StegHide, MP3Stego, OpenSSL, Free Hex (éditeur hexadecimal).

Partie 1 : Stéganographie

Exercice1 : Cacher un fichier texte dans une image

Installation de l’outil steghide

Décompresser le fichier steghide-0.5.1-win32 .zip dans le dossier "c:\Steghide".


Dans cet exercice nous allons cacher un fichier nommé "inpt.txt", contenant la phrase « Salut tout le
monde », dans l'image "test.jpg" que vous avez placé préalablement dans le même répertoire de travail.
Cacher un fichier dans une image

1) Ouvrez l'invite de commandes cmd puis changer d’emplacement pour aller dans le bon répertoire :
cd "c:\Steghide"

2) Saisissez les commandes suivantes pour cacher le fichier texte "ensak.txt" dans une image quelconque
"test.jpg" : c:\Steghide> steghide embed -cf test.jpg -ef inpt.txt

Extraire un fichier caché dans une image

1. Maintenant on va récupérer le fichier caché dans la photo "test.jpg" comme suit:

c:\Steghide> steghide extract -sf "test.jpg"

On peut aussi rajouter des options pour extraire, en mode bavard "-v" et écrire directement le mot de passe
"-p".

2. Cacher un texte dans une image puis envoyez cette image à votre binôme par email.

Exercice 2 : cacher un fichier texte dans un fichier audio

Pr. Chougdali Khalid


1. Décompresser le fichier MP3stego.zip dans le dossier "c:\MP3stego". Dans ce répertoire, copiez le
fichier audio fichier1.wav qui va servir à cacher le texte.
2. Saisissez les commandes suivantes pour cacher le fichier "ensak.txt" dans le fichier audio :
c:\MP3stego> encode -E inpt.txt -P password fichier1.wav fichierstego.mp3
3. Pour récupérer le fichier caché, tapez les commandes : decode -X -P password fichierstego.mp3

Partie 2: Cryptographie

OpenSSL est une boite à outils cryptographiques qui offre :

a) une commande en ligne (openssl) permettant :


– le chiffrement et déchiffrement (DES, AES, RC2, RC4, Blowfish, . . . ) ;
– la création de clefs RSA, DSA (signature) ;
– le calcul d’empreintes (MD5, SHA1, RIPEMD160, . . . ) ;
– la signature et le chiffrement de courriers (S/MIME).

b) une bibliothèque de programmation en C permettant de réaliser des applications client/serveur


sécurisées s’appuyant sur SSL/TLS.

Installation d’OpenSSL sous windows

Installer le fichier Win32OpenSSL_Light-1_0_1.exe. Lancez une console DOS avec la commande


cmd.exe puis changer de répertoire pour se placer dans C:\OpenSSL-Win32\bin

Pour connaître toutes les fonctionnalités de openSSL taper: « openssl / ? »


La syntaxe générale de la commande openssl est : openssl <commande> <options>

A-Cryptographie symétrique
Chiffrement symétrique avec openSSL
C’est la commande « enc » qui permet de chiffrer/déchiffrer avec openssl. ($openssl enc <options>)

Voici les commandes pour chiffrer/déchiffrer.

$ openssl enc -e $mode -in $fichier1 -out $fichier2


$ openssl enc -d $mode -in $fichier2 -out $fichier3

L'option -e signifie l'opération de chiffrement, tandis que -d est pour le déchiffrement.


La variable $mode peut prendre différentes valeurs comme par exemple -des, -des-ecb, -aes-
256-cbc... Vous pouvez trouver d'autres modes dans le help en tapant openssl enc / ?.
La variable $fichier1 est le nom du fichier que l'on souhaite chiffrer, $fichier2 est le nom du
fichier qui contient le chiffré et $fichier3 est le nom du fichier qui contient le déchiffré. Pensez
à ce que $fichier1 et $fichier3, soient bien différents, sinon vous ne pourrez pas comparer les
deux fichiers!

Pr. Chougdali Khalid


Pour chiffrer le fichier « toto » avec l’algorithme DES, et une clef générée par mot de passe, le
cryptogramme est enregistré dans le fichier « toto.chiffre », on utilise la commande :
$ openssl enc -e -des -in toto -out toto.chiffre
Pour déchiffrer le même fichier, il suffit d’ajouter l’argument « -d »

Chiffrement avec mot de passe


Exercice 1 :
Créez un fichier texte et chiffrez le avec les algorithmes DES, AES et BlowFish, puis déchiffrez-le.

openssl enc –e −des −in inpt.txt −out inptcrypte.txt

openssl enc –e −aes −in inpt.txt −out inptcrypte2.txt

openssl enc –e −bf −in inpt.txt −out inptcrypte3.txt

Exercice2 :
Q 1. Quelle est la différence entre les deux modes de chiffrement CBC et ECB ? Chiffrer le même fichier
avec le mode CBC. Refaite la même opération avec le mode ECB.

Chiffrement avec clef explicite


Pour chiffrer le fichier « toto » avec une clé explicite, il faut utiliser les options -K et -iv
-K (K majuscule) suivi de la clé exprimée en hexadécimal ;
-iv (iv en minuscules) suivi du vecteur d'initialisation exprimé en hexadécimal.
L'exemple qui suit montre la commande pour chiffrer « toto » avec Blowfish en mode CBC avec
un vecteur d'initialisation de 64 bits exprimé par 16 chiffres hexa, et une clé de 128 bits exprimée
par 32 chiffres hexa.
$openssl enc -bf-cbc -in toto -out toto.chiffre -iv 0123456789ABCDEF -K
0123456789ABCDEF0123456789ABCDEF
Exercice 3 :
Q 1. Chiffrez un fichier avec l’algorithme DES en mode EBC, en utilisant une clef explicite (option -
K) de votre choix pour obtenir le fichier cryptogram1. Déchiffrez ensuite le cryptogramme obtenu.

Exercice 4 :
Q 1. Générer une clef aléatoire de 56 bits pour l’utiliser dans l’algorithme DES à l’aide de la commande
« openssl rand <option> ». Sauvegarder cette clef dans fichier nommé « clef_des ».
Q 2. Chiffrer un fichier « toto » avec l’algorithme DES et la clef aléatoire « clef_des ». Déchiffrer le
cryptogramme avec la même clef pour vérifier le bon fonctionnement de ce processus.

Chiffrement d’une image


Exercice 5 : chiffrer et déchiffrer une image BMP

1 Sélectionnez une image BMP ; Utilisez l’éditeur Hexadécimal Free Hex pour éditer le fichier BMP.
Ensuite, supprimez l’en-tête de l’image BMP (les 54 premiers octets). Sauvegardez le fichier sous le
nom test.dat.

Pr. Chougdali Khalid


2. Crypter le fichier test.dat avec l’algorithme DES-CBC et enregistrez-le avec le nom testcrypt.dat

3. Editer le fichier testcrypt.dat avec l’éditeur Hexadécimal puis insérer l’en-tête que vous avez supprimé
à l’étape 1 ; Sauvegarder le fichier résultant sous le nom imagecrypt.bmp ; Visualisez le résultat.

B-Cryptographie asymétrique

Le but de cette partie est la mise en pratique du chiffrement RSA.

1) Génération d'une paire de clés RSA


On peut générer une paire de clés RSA avec la commande genrsa de openSSL.
openssl genrsa -out <fichier> <taille>
où fichier est un nom de fichier de sauvegarde de la clé, et taille et la taille souhaitée
(exprimée en bits) de la clé.

Par exemple, pour générer une paire de clés de 1024 bits, stockée dans le fichier maCle.pem,
on tape la commande
openssl genrsa -out maCle.pem 1024

1) Affichez le contenu du fichier en tapant :


type maCle.pem

2) Visualisation des clés RSA


La commande rsa permet de visualiser le contenu d'un fichier au format PEM contenant une
paire de clés RSA.
openssl rsa -in <fichier> -text -noout
L'option -text demande l'affichage décodé de la paire de clés. L'option -noout supprime la
sortie normalement produite par la commande rsa.

Par exemple
openssl rsa -in maCle.pem -text -noout

Pr. Chougdali Khalid

Vous aimerez peut-être aussi