OpenSSL - IUT de Nice
Transcription
OpenSSL - IUT de Nice
Applications de cryptographie 1 Introduction I. OpenSSL 1. Chiffres forts et faibles Openssl fournit une liste des chiffres (combinaison en terme de système pour l'authentification, l'intégrité et la confidentialité) qu'il considère comme fort ou faible à l'aide des commandes : openssl ciphers -v 'HIGH' openssl ciphers -v 'LOW' Analyzer les 2 ensembles et dites ce qui caractérise un chiffre faible pour openssl. 2. Codage et décodage : base64 On code une chaîne de caractères « Abacdef » que l'on veut coder en base64 que l'on stocke dans un fichier. echo " Abacdef " | openssl base64 > test.b64 puis redécoder openssl base64 -d < test.b64 Vous devez être capable d'expliquer ce qu'est le base64. 3. Résumé - hachage On veut calculer le md5 d'une chaîne de caractères echo " Abacdef " | openssl md5 Il est aussi possible d'utiliser la commande md5sum echo "Abacdef" | md5sum Combien de caractères diffèrent en sortie si vous changez un caractère en entrée? Vous devez être capable d'expliquer la différence entre le base64 et le md5? Peut-on remonter au message initial depuis le base64 et depuis le md5? On peut aussi, comme c'est fait pour vérifier les téléchargements, chercher le md5 d'un fichier. L'appliquer à /etc/passwd openssl md5 /etc/passwd On peut aussi utiliser sha openssl sha /etc/passwd Combien de bits utilise md5 et combien de bits utilise sha dans les cas précédents? (utilisez la commande wc pour compter le nombre de caractères puis trouvez le nombre de bits suivant le formatage des données – faire un man md5 ou man sha) 4. Chiffrement Nous allons crypter un fichier avec cast5 en CBC (Cypher Block Chaining) openssl cast5-cbc -in /etc/passwd -out passwd.cast5 Pourquoi utilise-t-on le mode CBC? On le décrypte dans le fichier passwd.restore openssl cast5-cbc -d -in passwd.cast5 -out passwd.restore Vérifions que le fichier est identique diff /etc/passwd passwd.restore Suivant ce principe il est possible de crypter tous les fichiers souhaités avec l'algorithme que l'on choisit. Est-ce que cast5 est un algo symétrique ou assymétrique? Regarder le contenu du fichier passwd.cast5 ( à l'aide de la commande more par exemple). Quel est le type du fichier? Quel est le problème lors de l'envoie par mail. Comment y remedier avec ce que l'on a vu précédemment? Crypter à nouveau le fichier /etc/passwd avec du des, toujours en mode cdc. Transformer la sortie avec un encodage base64 et faites de même pour me cast5. Comparer la taille des fichiers cryptés en cast5 et DES. On reviendra plus tard à SSL lors de la manipulation des certificats. II. SSH Plusieurs aspects sont à mettre en évidence : l’encryption proprement dite, l’initialisation du logiciel, la configuration du serveur. Il faut aussi tester l'authentification par clé et le tunnel crypté. Il est plus intéressant d'utiliser le client sur une machine et le serveur sur une autre : chaque étudiant d'un binôme peut faire l'exercice de manière Page 2 / 6 Applications de cryptographie croisée. Dans le cas d'un monôme, utiliser 2 machines virtuelles (modifier l'adresse MAC de la seconde machine – le premier caractère seulement). Par quelle commande vérifiez-vous si un serveur ssh tourne sur votre machine? On commence par démarrer le serveur sshd. (Il l’est probablement déjà) /etc/init.d/ssh start se connecter au serveur sur l'autre machine ssh rt@autre-machine « sniffer » la communication avec wireshark Vérifier ce qui passe sur le réseau et essayer de mettre en évidence les différentes étapes. Filtrer le trafic ssh seulement et essayer de comprendre ce que fait ssh en regardant le contenu de niveau ssh des trames sélectionnées par votre filtre Ensuite il va falloir changer le fonctionnement de sshd. Générer les clés personnelles pour l'utilisateur rt # ssh-keygen -t rsa -b 1024 Lire et comprendre les options de configuration de sshd du fichier /etc/ssh/sshd_config Autoriser les accès par clés, pour root aussi, autoriser la redirection X11 et le fonctionnement de sftp. Après avoir redémarrer le serveur sshd, (même commande que précédemment mais avec restart) tester une communication avec échange de clés publiques. Pour cela, copier la clé publique que vous avez générée plus haut dans le répertoire ~/.ssh/authorized_keys2 de la machine distante. Se reconnecter par ssh à la machine distante : qu'est-ce qui a changé ? On va maintenant tester la redirection de port. Faire un tunnel sécurisé vers le port http de kheops en ouvrant un port 3434 en local. Vérifier que la communication est cryptée et que l'on accède correctement au site. # ssh -L 3434:kheops.unice.fr:80 [email protected] III. GPG Créer une biclé GPG (couple clé publique/privée) en choisissant l'option par défaut de taille 1024 bits et en prenant un type par défaut (RSA/RSA) : gpg –-gen-key Lister votre trousseau de clef (il ne doit y avoir que la votre!): Travaux pratiques - TRC914 - DUT R&T - Info-Réseaux Page 3 / 6 gpg –-list-keys Quel est le type des fichiers contenant des clefs dans le répertoire ~/.gnupg? Pour pouvoir exporter votre clef (par exemple dans un dépôt public) utiliser la commande : gpg --armor --output pubkey.txt --export 'Your Name' Signer un fichier toto.fic que vous fabriquez vous-mêmes en mettant du contenu dedans. gpg –-sign toto.fic Quel fichier a été généré? Vérifier la signature du fichier. gpg –-verify toto.fic.gpg Quelle clef a été utilisée ?? Créer une signature détachée et vérifier la signature de la même façon. Quel est l'avantage ? Vous pouvez aussi crypter avec votre clef : gpg –-encrypt -r 'Votre Nom' toto.fic Decrypter. Vous pouvez aussi crypter le fichier pour votre un autre utilisateur dont vous avez la clef. Commencez par aller se faire des amis sur http://keyserver.pgp.com/ . Par exemple, cherchez John. Télécharger la clef de votre nouvel ami John (le premier de la liste par exemple) et importez la: gpg --import key.asc Lister votre trousseau. Crypter pour John Décrypter. Page 4 / 6 Applications de cryptographie Notation du TP Applications de cryptographie Noms du binôme : date : Introduction I. OpenSSL 1. Codes forts et faibles caractérisation code faible ❏ Réalisé ❏ Mal fait mais corrigé ❏ Faux/pas vu 2. Codage et décodage : base64 Test base64 : ❏ Réalisé ❏ Mal fait mais corrigé ❏ Faux/pas vu ❏ Mal fait mais corrigé ❏ Faux/pas vu ❏ Mal fait mais corrigé ❏ Faux/pas vu ❏ Mal fait mais corrigé ❏ Faux/pas vu ❏ Mal fait mais corrigé ❏ Faux/pas vu 3. Résumé - hachage Test md5 echo : ❏ Réalisé Test md5 echo : ❏ Réalisé 4. Chiffrement Chiffrement : ❏ Réalisé Déchiffrement : ❏ Réalisé II. SSH Démarrage et connexion en ssh : ❏ Réalisé ❏ Mal fait mais corrigé Génération des clés ssh : ❏ Réalisé ❏ Mal fait mais corrigé Analyse du fichier de configuration sshd_config : ❏ Réalisé ❏ Mal fait mais corrigé Mise en place des clés et connexion par clé : ❏ Réalisé ❏ Mal fait mais corrigé Réalisation de la redirection de port : ❏ Réalisé ❏ Mal fait mais corrigé Travaux pratiques - TRC914 - DUT R&T - Info-Réseaux ❏ Faux/pas vu ❏ Faux/pas vu ❏ Faux/pas vu ❏ Faux/pas vu ❏ Faux/pas vu Page 5 / 6 III. GPG Création du biclé GPG : ❏ Réalisé ❏ Mal fait mais corrigé Signature d'un fichier (direct) : ❏ Réalisé ❏ Mal fait mais corrigé signature d'un fichier (détaché) : ❏ Réalisé ❏ Mal fait mais corrigé Chiffrement GPG : ❏ Réalisé ❏ Mal fait mais corrigé ❏ Faux/pas vu ❏ Faux/pas vu ❏ Faux/pas vu ❏ Faux/pas vu Fichier TP_TRC8_Bases_crypto_v2.odt imprimé le 11 mars 2013 Page 6 / 6 Applications de cryptographie
Documents pareils
Certificats - IUT de Nice
défaut de taille 1024 bits et en prenant un type par défaut (RSA/RSA) :
gpg –-gen-key
Lister votre trousseau de clef (il ne doit y avoir que la votre!):
gpg –-list-keys
Pour pouvoir exporter votre ...