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é