Cryptographie - LIPN - Université Paris 13

Transcription

Cryptographie - LIPN - Université Paris 13
IUT de Villetaneuse, Université Paris 13, Sorbonne Paris Cité
Licence Pro R&T ASUR
Cryptographie
TP 3
Étienne André
Version du sujet : 10 mars 2014
Ce TP s’effectuera individuellement, avec un PC sous Linux. Vous rédigerez un compte-rendu
qui sera envoyé à l’enseignant avant la fin de la séance. Ce compte-rendu prendra la forme d’un
document texte brut (.txt), mis en forme (.odt) ou PDF.
Adresse électronique : Etienne.Andre at univ-paris13.fr
Le compte-rendu contiendra toutes les commandes nécessaires à ce TP et, le cas échéant, les
réponses aux questions.
Plusieurs exercices sont à faire en binôme. Néanmoins, chacun rédigera et enverra son propre
compte-rendu.
Exercice 1: Préliminaire
Question 1 : Placer dans /tmp/grosfichier.zip une archive comprenant tous les fichiers du
répertoire /usr/bin.
Ce fichier sera utile dans plusieurs exercices par la suite.
Exercice 2: Connexion SSH avec mot de passe
Question 1 : À l’aide de la commande adduser, ajouter sur votre machine un utilisateur ayant
comme login le prénom de votre voisin (en minuscule sans espaces ni accents) et comme mot de
passe toto. Laisser vide les autres champs demandés.
Question 2 : Pour tester le nouvel utilisateur, ouvrir une session dans un terminal sous l’identité
créée. Quel est maintenant votre répertoire de connexion ? Ensuite, fermer la session et confirmer
à votre voisin que son compte a bien été créé.
Question 3 : À l’aide de la commande hostname, afficher le nom symbolique de votre machine.
Question 4 : Attribuer votre nom de famille en majuscules comme nom symbolique de votre
machine. En utilisant un éditeur de texte (par exemple : nano), modifier le fichier /etc/hosts
afin d’effectuer cette modification. Fermer et réouvrir le terminal pour rendre les modifications
effectives.
Cryptographie
1/5
2013–2014 — Sorbonne Paris Cité
Question 5 : À l’aide de la commande ifconfig, relever l’adresse IP de l’interface réseau eth0
de votre machine. Communiquer votre adresse IP à votre voisin.
Question 6 : Utiliser la commande ssh pour vous connecter à la machine de votre voisin sous
l’identité créée précédemment. Une fois connecté à la machine de votre voisin, exécuter la commande who. Expliquer le résultat obtenu.
Exercice 3: Connexion SSH sans mot de passe
Question 1 : Générer une clé SSH sur votre machine. On utilisera RSA et une clé de 4096 bits.
Question 2 : Où se trouvent les clés générées ? Combien y en a-t-il ?
Question 3 : Placer votre clé sur la machine de votre voisin. De quelle clé s’agit-il ? Quelle commande permet cela ? Quel identifiant et mot de passe faut-il alors entrer ? Où se trouve désormais
la clé ?
Question 4 : Tester la connexion sans clé.
Question 5 : Que faut-il faire pour que la commande sshvoisin vous connecte directement à
votre voisin sans mot de passe ?
Exercice 4: Création de clés avec RSA
Remarque : cet exercice vise à comprendre l’utilisation des clés publiques et privées,
mais ne correspond pas à un usage « normal » des outils de cryptographie. Des techniques
beaucoup plus simples existent !
Question 1 : Quels sont les algorithmes à clé publique supportés par l’implémentation openssl
de votre machine ?
Question 2 : Avec openssl, générer une clé privée RSA. Quelle est la taille de la clé ?
Question 3 : À partir de votre clé privée, générer une clé publique RSA.
Question 4 : Créer un fichier secret.txt contenant une ou deux phrases.
Question 5 : Chiffrer ce fichier avec votre clé première clé vers secret.chiffre.
Question 6 : Recréer un couple de clé privée / clé publique, cette fois en 4096 bits ; rechiffrer
votre fichier secret. Attention : ne pas effacer les anciens fichiers (clés, fichier chiffré).
Question 7 : Comparer la taille des clés privées. Comparer la taille des clés publiques. Comparer
la taille des fichiers chiffrés.
Cryptographie
2/5
2013–2014 — Sorbonne Paris Cité
Question 8 : Comparer le temps de chiffrement avec chacune des deux clés.
Question 9 : Déchiffrer secret.chiffre. Le résultat est-il bien ce que l’on attend ?
Question 10 : Créer un fichier secret-long.txt contenant quelques paragraphes (par exemple
l’équivalent d’une page Web).
Question 11 : Chiffrer ce fichier avec votre clé première clé. Que constate-t-on ?
Exercice 5: Chiffrement et signature avec RSA
Remarque : cet exercice vise à comprendre l’utilisation des clés publiques et privées,
mais ne correspond pas à un usage « normal » des outils de cryptographie. Des techniques
beaucoup plus simples existent !
On travaillera dans tout cet exercice avec les clés RSA 4096 générées à l’exercice précédent.
Question 1 : Créer un fichier votreprenom.txt contenant une ou deux phrases.
Question 2 : Envoyer votre clé publique à votre voisin par SSH.
Question 3 : Chiffrer votre fichier votreprenom.txt vers votreprenom.chiffre et l’envoyer à
votre voisin tout en assurant la confidentialité de l’échange. (On suppose que l’échange n’est pas
sécurisé !) Avec quelle clé faut-il chiffrer ?
Question 4 : Déchiffrer le fichier leprenomdevotrevoisin.chiffre. Avec quelle clé faut-il déchiffrer ?
Question 5 : Envoyer à votre voisin le fichier grosfichier.zip
Question 6 : Garantir à votre voisin l’intégrité et l’authenticité de votre fichier. (On s’autorisera
l’usage de md5sum.)
Question 7 : Vérifier que le fichier reçu de votre voisin est correct, et provient bien de votre
voisin.
Question 8 : Quelle est la faille de sécurité dans tout cet exercice ? Pourquoi est-elle partiellement
compensée ?
Exercice 6: Chiffrement symétrique avec AES
Question 1 : Quels sont les algorithmes à clé privée supportés par l’implémentation openssl de
votre machine ?
Cryptographie
3/5
2013–2014 — Sorbonne Paris Cité
Question 2 : Quelle est la fonction de hachage utilisée par défaut dans votre implémentation de
AES ? Est-elle satisfaisante ?
Question 3 : En utilisant openssl, chiffrer secret-long.txt vers secret-long.aes256, de sorte
qu’il soit protégé par un mot de passe.
Question 4 : En utilisant openssl, déchiffrer secret-long.aes. Tout s’est-il bien passé ?
Question 5 : En utilisant openssl, chiffrer secret-long.txt vers secret-long.sym, de sorte
que le fichier chiffré soit protégé par une clé, et que celle-ci soit affichée à l’écran.
Question 6 : Envoyer secret-long.sym à votre voisin (sans sécurisation). Quelles informations
faut-il lui transmettre pour qu’il puisse déchiffrer secret-long.sym ? Envoyer ces informations
de façon sécurisée ; décrire comment.
Question 7 : Après avoir reçu les informations de votre voisin, faire le nécessaire pour déchiffrer
secret-long.sym. Bien expliquer les différentes étapes.
Question 8 : Nous allons désormais utiliser GnuPG, qui est plus adapté au chiffrement symétrique. Chiffrer secret-long.txt (vers secret-long.txt.gpg), de sorte que ce fichier soit chiffré
par AES 256 et protégé par un mot de passe.
Question 9 : Déchiffrer secret-long.txt.gpg. Tout s’est-il bien passé ?
Question 10 : Comparer la taille de secret-long.txt et secret-long.txt.gpg. Expliquer.
Exercice 7: Comparaison de performances
Question 1 : Calculer l’empreinte MD5 du fichier /tmp/grosfichier.zip. Mesurer le temps
nécessaire à cette commande.
Question 2 : Faire de même avec l’implémentation AES 256 bits de openssl.
Question 3 : Faire de même avec l’implémentation AES 256 bits de GPG.
Question 4 : Qu’est-ce que la commande crypt sous Unix ? Ce chiffrement est-il fiable ?
Exercice 8: Installation de TAILS
Question 1 : Télécharger le système TAILS depuis le site officiel (https://tails.boum.org/).
Question 2 : Vérifier l’image téléchargée. Donner les commandes et expliquer chacune d’elles. À
qui faites-vous confiance ici ?
Cryptographie
4/5
2013–2014 — Sorbonne Paris Cité
Question 3 : Installer TAILS sur une clé USB. Donner les commandes successives.
Question 4 : Lancer TAILS. Quel est le navigateur Internet par défaut ? Que garantit-il ? Quelles
autres garanties TAILS vous fournit-il ?
Cryptographie
5/5
2013–2014 — Sorbonne Paris Cité