Vous êtes sur la page 1sur 10

École de technologie supérieure Session: Hiver 2020

Département de génie logiciel et des TI Responsable : Prof Chamseddine Talhi


Chargés de cours:
• Marc-André Drapeau
• Stere Preda
Chargés de laboratoire :
• David Sylvestre
• Fayçal Hakkani
• David Lebrun
• Othmane Lagrini

GTI 619 - Sécurité des systèmes

LABORATOIRE 4 – CRYPTOGRAPHIE

Objectifs

L’objectif global visé par ce laboratoire est de vous familiariser avec les primitives cryptographiques en utilisant

openssl qui est notamment une bibliothèque sous forme d’implémentation libre des protocoles SSL/TLS.

Ce travail vous permettra de manipuler et de pratiquer les aspects suivants :

✓ Chiffrement symétrique (à clé secrète)

✓ Chiffrement asymétrique et chiffrement hybride

✓ Signature pour authentification

✓ Empreinte de hachage pour protection de l’intégrité

✓ Empreinte de hachage pour l’authentification (mots de passe)

✓ Génération et gestion des certificats X.509 (PKI)

✓ Réalisation de tunnels SSL/TLS entre clients et serveurs

✓ Analyse des communications SSL / TLS

GTI-619 Hiver 2020, Laboratoire #4 v. 1.5


Configuration du réseau
Si vous utilisez votre machine personnelle :

Installez virtualbox Version 6.0.12 r133076 sur votre machine : https://www.virtualbox.org/wiki/Downloads

A. Téléchargez le fichier “Lab4.ova”

B. Importez le fichier “Lab4.ova” sur Virtalbox, en allant sur le menu “file -> import appliance”.

C. Lors de l’importation, sélectionner l’option “ Include all network adapter MAC addresses ” pour

choix de la politique d’adresse MAC.

D. Démarrez les deux machines virtuelles.

Voici les informations importantes concernant les deux machines :

2
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
N.B :

• Tous les fichiers mentionnés ci-dessous se trouvent au niveau du serveur FTP


• Le mot de passe utilisé durant tout le processus de chiffrement et déchiffrement est comme
suit : tilogit

Chiffrement symétrique (10 points)


Pour chacune des questions suivantes :

• Donnez les commandes OpenSSL utilisées,


• Présentez les imprimés-écrans prouvant la réussite de la tâche demandée,
• À partir de la machine Kali, accéder au serveur FTP via le navigateur avec l’adresse : ftp://192.168.0.188

A. (2pts) Utilisez l’outil d’attaque medusa disponible sur la machine Kali afin de réaliser une attaque de type
Brute-Force permettant d’accéder au contenu du serveur FTP. Le nom d’utilisateur FTP est ftpuser et la liste
des mots de passe à récupérer depuis le bureau de la machine Kali au nom de Passlist.txt.

Dans cette partie, vous allez utiliser la commande openssl RSA qui est un utilitaire pour afficher et gérer les
clés privées et les clés publiques.

B. (2pts) Chiffrez le fichier techData avec l’algorithme aes-128-cbc en utilisant le paramètre pbkdf2.

C. (2pts) Déchiffrez le fichier RHSecret sachant qu’il a été chiffré par l’algorithme camellia-128-ecb en

utilisant le paramètre pbkdf2.

3
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
D. (4pts) Maintenant, vous allez vous positionner en tant qu’attaquant qui a pu intercepter le trafic provenant

d’Alice ainsi qu’il a pu récupérer la clé symétrique précédemment au cours de l’établissement de la connexion

entre Alice et Bob.

Retrouver le ficher BankDT sachant qu’Alice a chiffré ce dernier selon un processus cryptographique de

deux étapes et suivant la suite de chiffrement algorithmique représenté comme suit : {aes-128-cbc, aria-

256-cbc}. Lors du déchiffrage, utilisez le paramètre pbkdf2 au niveau de la commande openssl.

Chiffrement asymétrique et hybride (20 points)

Partie I (8 points)
Pour chacune des questions suivantes :
• Donnez les commandes OpenSSL utilisées,
• Présentez les imprimés-écrans prouvant la réussite de la tâche demandée

4
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
Alice a envoyé à Bob le fichier CryptoFile chiffré par la clé publique de Bob pub-B.pem et une signature
numérique sign-file.
A. (2pts) Générez une clé privée priv-C.pem et une autre publique pub-C.pem de longueur 2048 bits.

B. (2pts) Déchiffrer le fichier cryptoFile avec la clé privée priv-B.pem de Bob avec la commande openssl
pkeyutl [4], nommez le fichier générer par DataFile.

C. (4pts) Vérifiez l’intégrité du fichier DataFile sachant que ça signature numérique est sign-file et l’algorithme

de hachage utilisé est sha1 ainsi que la clé publique d’Alice est pub-A.pem.

Partie II (12 points)


Au cours d’une session de chiffrement hybride, Bob envoie à Alice les deux messages suivants :
• LabSecret : fichier chiffré grâce à l’algorithme aes-128-ecb,
• Cle.key : clé de session chiffrée

A. (4pts) Étant donné, la clé publique d’Alice pubA.pem et sa clé privée privA.pem, déchiffrez le fichier
LabSecret afin de générer le fichier d’origine LabData.

5
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
B. (8pts) Signez le message LabData par Alice et renvoyez-le à Bob de sorte que seul Bob puisse vérifier
qu’Alice a bien lu et signé le document en utilisant la paire de clés de Bob ? Quelles sont les propriétés
vérifiées par ce protocole ? Justifiez.

Empreintes numériques (15 points)


A. (7pts) Déchiffrer le fichier Securefile sachant que l’algorithme de chiffrage qui a été utilisé camellia-128-
ecb et en ajoutant à cela le paramètre pbkdf2 et la clé argon. Commenter le contenu du fichier.

B. (8pts) En se basant sur le contenu du fichier déchiffré dans la question précédente, trouver le mot de passe
qui convient au contenu de ce dernier. Pour cela, vous allez avoir besoin d’utiliser argon2 (outil pour hachage
de mot de passe) dans la machine Kali et le fichier ListPwd qui contient les mots de passe. Commenter les
résultats.

Chaine de certificats et authentification (30 points)

Pour s’authentifier, Alice envoie son TP signé accompagné de la chaine de certificats suivante : Alice.crt,
CA_ETS.crt, CA_UQ.crt et CA_ME.crt. Bob quant à lui, soumet son TP signé avec la chaine de certificats
suivante : Bob.crt, CA_UQ.crt, CA_ME.crt.

A. (20pts) Donnez la démarche (séquence de commandes) générant la chaine de certificats permettant


d’authentifier Alice.

6
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
B. (10pts) Sachant que l’enseignant du cours de sécurité ne détient que le certificat du ME (ministère de
l’Éducation), comment va-t-il procéder pour authentifier Bob et valider son TP ?

Authentification de sites web (25 points)


Afin de s’assurer qu'une clé publique envoyée par un serveur web, soit authentique, et pas une fausse clé publique
envoyée par un attaquant se trouvant sur le chemin, on se base sur une autorité de certification (CA) qui est une
entité de confiance qui possède une paire de clés publiques et dont la seule mission est de « signer » d'autres clés
publiques, c'est-à-dire de les « certifier ». Tous les navigateurs web du monde entier (Firefox, chrome, internet
explorer, Opera, etc.) possèdent en statique une liste de clés publiques de ces autorités de confiances. De cette
façon, les navigateurs peuvent vérifier qu'un site prétendant avoir été certifié par une autorité de certification le
soit effectivement.

Dans cette partie, nous allons apprendre comment générer nous-mêmes nos certificats du côté de l'administrateur
web. Depuis la machine Ubuntu vous allez créer une certification pour le site web :
http://www.forum-gti619.com afin que le trafic transitant entre le serveur web et le client soit chiffré. Pour cela,
vous avez besoin du TLS / SSL fonctionnel en utilisant une combinaison d'un certificat public et d'une clé privée.
La clé SSL est gardée secrète sur le serveur. Elle est utilisée pour déchiffrer le contenu envoyé par les clients. Le
certificat SSL est partagé publiquement avec toute personne demandant le contenu. Il peut être utilisé pour
authentifier un contenu signé par la clé SSL associée.
Remarque : Afin d’accéder au serveur Ubuntu utiliser le mot de passe trouver dans la partie d’empreinte numérique
voir (Empreinte numérique → question 2).

7
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
A.(3pts) Créer une clé privée forum.key et une demande de signature de certificat (CSR) forum.csr sur la
machine Ubuntu avec les paramètres de certification suivante :
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]: QUEBEC
Locality Name (eg, city) []: MONTREAL
Organization Name (eg, company) [Internet Widgits Pty Ltd]: ETS
Organizational Unit Name (eg, section) []: DSI
Common Name (e.g. server FQDN or YOUR name) []: www.forum-gti619.com

B. (8pts) Créez une autorité de certification sur la machine Kali.


C. (3pts) Sur la machine Kali, signez la demande de signature de certificat (CSR) forum.csr par CA qui vous
permettra de générer un certificat signé forum.crt pour le site web https///www.forum-gti619.com. Voulez allez
y avoir besoin d’importer la clé forum.key et forum.csr à la machine Kali.
D. (4pts) Ajouter le certificat SSL forum.crt signé par CA sur le serveur apache de la VM Ubuntu.
Afin de réaliser cette configuration de SSL au niveau du serveur apache dans Ubuntu, vous devez procéder par
les étapes suivantes :
1. Activer les éléments suivants :
- Modules SSL avec la commande a2enmod
- En-têtes du serveur apache avec la commande a2enmod
- L’hôte virtuel SSL avec la commande avec la commande a2ensite
2. Importer la clé SSL forum.pem sous le répertoire /etc/ssl/private et la certificat forum.crt sous le
répertoire etc/ssl/certs. Ensuite, afin de pointer vers le certificat et la clé SSL générés, il vous faut de
modifier les éléments suivants du fichier /etc/apache2/sites-available/default-ssl.conf:

✓ Numéro de port
✓ ServerName
✓ DocumentRoot
✓ SSLCertificateFile
✓ SSLCertificateKeyFile

3. Modifier le fichier /etc/apache2/sites-available/000-default.conf afin de rediriger d’une façon


permanente le trafic vers HTTPS.

8
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
E. (7pts) Redémarrer apache afin d’implémenter les modifications et ouvrez le navigateur Web, ensuite, ajouter
le certificat du CA (clé privée du CA) au navigateur, démontrez que la connexion est sécurisée, ainsi que ça
redirection HTTP vers HTTPS : https://www.forum-gti619.com .

Information
• Trois séances sont dédiées à ce laboratoire.

• Le rapport de laboratoire devra être remis avant le début du laboratoire 5

Référence
[1] OpenVPN - http://www.allitebooks.org/?s=openssl
[2] Configuration certificat SSL sur Ubuntu 18.04 - https://do.co/2OFFg0A
[3] Documentation argon2 - https://www.cryptolux.org/images/0/0d/Argon2.pdf
[4] OpenSSL pkeyutl - https://www.openssl.org/docs/man1.0.2/man1/pkeyutl.html
[5] OpenSSL rsa - https://www.openssl.org/docs/man1.0.2/man1/openssl-rsa.html
[6] OpenSSL rsautl - https://www.openssl.org/docs/man1.0.2/man1/rsautl.html

9
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5
Grille d’évaluation

Parties et Description Pondération

Chiffrement symétrique (10 points)


/2
Question A
/2
Question B
/2
Question C
/4
Question D

Chiffrement asymétrique et Hybride (20 points)

Partie I (8 points)
/2
Question A
/2
Question B
/4
Question C

Partie II (12 points)


/4
Question A
/8
Question B

Empreintes numériques (15 points)


/7
Question A
/8
Question B

Chaine de certificats et authentification (30 points)


/20
Question A
/10
Question B

Authentification de sites web (25 points)


/3
Question A
/8
Question B
/3
Question C
/4
Question D
/7
Question E

10
GTI-619 Hiver 2020, Laboratoire #4 v. 1.5

Vous aimerez peut-être aussi