crypto-TP-openssl - LIPN

Transcription

crypto-TP-openssl - LIPN
IUT de Villetaneuse, Université Paris 13, Sorbonne Paris Cité
LP ASUR FI-FC
20162017
Cryptographie
TP 1 : SSH et OpenSSL
Étienne André
Version du sujet : 23 novembre 2016
Ce TP s'eectuera individuellement, avec un PC sous Linux, image Mageia4. Vous rédigerez un
compte-rendu qui sera envoyé à l'enseignant avant la n de la séance. Ce compte-rendu prendra de
préférence la forme d'un document mis en forme avec LibreOce et exporté en PDF.
Nom du chier : crypto-TP-openssl-nom-prenom.pdf
Adresse électronique : Etienne.Andre(arobase)univ-paris13.fr
Objet du courriel : TP crypto openssl : <votrenom> 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 compterendu.
Exercice 0 : Préliminaire
Question 1 : Restaurer l'image Mageia4, même si elle est déjà présente (pour éviter les conits de
conguration). On privilégiera dans la mesure du possible une restauration multicast.
Question 2 : Placer dans /tmp/grosfichier.zip une archive comprenant tous les chiers du répertoire
/usr/bin.
Ce chier sera utile dans plusieurs exercices par la suite.
Exercice 1 : 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 conrmer à votre voisin
que son compte a bien été créé.
Question 3 : À l'aide de la commande hostname, acher le nom symbolique de votre machine.
M1106
1/4
20162017 IUT de Villetaneuse
Question 4 : Attribuer votre nom de famille en majuscules comme nom symbolique de votre machine.
En utilisant un éditeur de texte (par exemple : gedit), modier le chier /etc/hosts an d'eectuer
cette modication. Fermer et réouvrir le terminal pour rendre les modications eectives.
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 2 : Connexion SSH sans mot de passe
Question 1 : Avec la commande ssh-keygen, générer une clé SSH sur votre machine (pour l'identité
etudiant et non root). 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 ? À quoi ressemblent-elles ?
Question 3 : Avec la commande ssh-copy-id, placer votre clé sur la machine de votre voisin. De quelle
clé s'agit-il ? Quel identiant et mot de passe faut-il alors entrer ? Où se trouve désormais la clé ?
Question 4 : Tester la connexion sans mot de passe.
Question 5 : Créer un alias sshvoisin, qui vous connecte directement à votre voisin sans mot de
passe. Placer la dénition de cet alias dans le chier approprié sur votre compte, an que cet alias soit
permanent.
Exercice 3 : Création de clés avec RSA
Remarque : cet exercice vise à comprendre l'utilisation des clés publiques et privées en eectuant
des opérations étape par étape. Il existe des techniques plus simples d'un point de vue utilisateur.
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é ? À quoi ressemblet-elle ?
Question 3 : À partir de votre clé privée, générer une clé publique RSA.
M1106
2/4
20162017 IUT de Villetaneuse
Question 4 : Créer un chier secret.txt contenant une ou deux phrases.
Question 5 : An de garantir la condentialité, chirer ce chier. Quelle clé avez-vous utilisée ?
Question 6 : Recréer un couple de clé privée / clé publique, cette fois en 4096 bits ; rechirer votre
chier secret, cette fois vers secret.chiffre4096. Attention : ne pas eacer les anciens chiers (clés,
chier chiré).
Question 7 : Comparer la taille des clés privées. Comparer la taille des clés publiques. Comparer la
taille des chiers chirés.
Question 8 : À l'aide de la commande time, comparer le temps de chirement avec chacune des deux
clés.
Question 9 : Déchirer secret.chiffre. Quelle clé utilisez-vous ? Le résultat est-il bien ce que l'on
attend ?
Exercice 4 : Chirement et signature avec RSA
Remarque : cet exercice vise à comprendre l'utilisation des clés publiques et privées en eectuant
des opérations étape par étape. Il existe des techniques plus simples d'un point de vue utilisateur.
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 chier votreprenom.txt contenant quelques mots.
Question 2 : Envoyer votre clé publique à votre voisin par SSH.
Question 3 : Chirer votre chier votreprenom.txt vers votreprenom.chiffre et l'envoyer à votre
voisin tout en assurant la condentialité de l'échange. (On suppose que l'échange n'est pas sécurisé !)
Avec quelle clé faut-il chirer ?
Question 4 : Déchirer le chier leprenomdevotrevoisin.chiffre. Avec quelle clé faut-il déchirer ?
Question 5 : Envoyer à votre voisin le chier grosfichier.zip
Question 6 : Garantir à votre voisin l'intégrité et l'authenticité de votre chier. (On s'autorisera l'usage
de md5sum.)
Question 7 : Vérier que le chier reçu de votre voisin est correct, et provient bien de votre voisin.
M1106
3/4
20162017 IUT de Villetaneuse
Question 8 : Quelle est la faille de sécurité dans tout cet exercice ? Pourquoi est-elle partiellement
compensée ?
Exercice 5 : Chirement symétrique avec AES
Question 1 : Quels sont les algorithmes à clé privée supportés par l'implémentation openssl de votre
machine ?
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, chirer 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échirer secret-long.aes. Tout s'est-il bien passé ?
Question 5 : En utilisant openssl, chirer secret-long.txt vers secret-long.sym, de sorte que le
chier chiré soit protégé par une clé, et que celle-ci soit achée à l'écran.
Question 6 : Envoyer secret-long.sym à votre voisin (sans sécurisation). Quelles informations fautil lui transmettre pour qu'il puisse déchirer 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échirer
secret-long.sym. Bien expliquer les diérentes étapes.
Exercice 6 (complémentaire) : Comparaison de performances
Question 1 : Calculer l'empreinte MD5 du chier /tmp/grosfichier.zip. À l'aide de la commande
time, mesurer le temps nécessaire à cette commande.
Question 2 : Faire de même avec l'implémentation AES 256 bits de openssl.
M1106
4/4
20162017 IUT de Villetaneuse