TP 5 - Université Nice Sophia Antipolis

Download Report

Transcript TP 5 - Université Nice Sophia Antipolis

Université Nice - Sophia Antipolis
UEO Introduction à la cryptographie
L3 Informatique
2014–2015
TP no 5
Certificats – Infrastructures de Gestion de Clefs 1
On sait déjà utiliser O PEN SSL pour faire du chiffrement à clef secrète et à clef publique, des fonctions
de hachage et des signatures. Aujourd’hui, nous allons explorer le maniement des certificats à l’aide
des commandes ca, req, x509 ou celles de la famille pkcs, issues de la liste suivante de commandes
standard :
Standard commands
asn1parse
ca
dgst
dh
ec
ecparam
gendh
gendsa
passwd
pkcs12
rand
req
s_server
s_time
spkac
verify
ciphers
dhparam
enc
genrsa
pkcs7
rsa
sess_id
version
crl
dsa
engine
nseq
pkcs8
rsautl
smime
x509
crl2pkcs7
dsaparam
errstr
ocsp
prime
s_client
speed
On rappelle le pointeur sur le site officiel d’O PEN SSL :
http://www.openssl.org
Certificats
Exercice 1) Histoire de s’échauffer, je vous propose de faire le quizz disponible sur le portail Sécurité
informatique de l’A NSSI (Agence Nationale pour la Sécurité des Systèmes d’Information) :
http://www.securite-informatique.gouv.fr
Cliquez à gauche sur le lien Autoformation, révisez le module Certificats électroniques puis allez faire le
test Serez-vous assez prudent ? situé à la fin.
A l’avenir, n’hésitez pas à revenir consulter ce site pour vous documenter et en apprendre toujours davantange sur la cryptographie appliquée à la sécurité informatique.
Exercice 2) Ouvrez votre navigateur habituel et cherchez où se cachent les informations relatives aux
Autorités de certification-racine dont les clefs publiques sont dans votre navigateur (ou dans votre OS)
du fait qu’elles ont été codées en dur.
Exercice 3) O PEN SSL
1. Création d’un fichier de caractères aléatoires
Créez un répertoire demoCA et un sous-répertoire private. Sachant que le fichier /dev/urandom
est un réservoir d’entropie, créez à l’aide de la commande U NIX dd un fichier aléatoire .rand d’au
moins 16 ko et avec 16 blocs distincts.
1 Les
exercices no 3 et no 4 de ce TP sont empruntés au livre Théorie des codes, Dunod, 2007
1
2. Mise en place d’une autorité de certification (CA)
Créez dans demoCA les sous-répertoires certs, crl et newcerts. Entrez un numéro de série
quelconque dans le fichier demoCA/serial et créez un fichier vide demoCA/index.txt.
Redéfinissez a minima les droits d’accès à tous ces répertoires et fichiers.
(a) Avec la commande genrsa d’O PEN SSL, créez une clef privée de 4096 bits en utilisant un
fichier aléatoire.
Cette clef sera stockée dans le fichier demoCA/private/cakey.pem et cryptée sur le
disque par A ES -256.
(b) Avec la commande req d’O PEN SSL, créez un nouveau certificat racine auto-signé, à l’aide
de la clef précédente, dont se déduit la clef publique. Ce certificat devra être au format X-509,
stocké dans le fichier demoCA/cacert.pem et valable 365 jours.
(c) Utilisez la commande standard x509 d’O PEN SSL pour visualiser en clair les informations
du certificat créé.
3. Certificat utilisateur
(a) Créez une clef privée R SA de 1024 bits.
(b) Avec la commande req d’O PEN SSL, faites une requête de certificat auprès du CA en utilisant la clef privée de l’utilisateur précédemment créée. Cette requête demande à ce que le
certificat à venir soit valable 2 mois.
(c) Avec la commande ca d’O PEN SSL, demandez au CA de répondre à votre requête. Cette
requête devra créer un fichier-certificat newcert.pem et spécifier la politique de sécurité
(par défaut, policy_anything). Visualisez ce certificat x509.
(d) Utilisez la commande verify pour vérifier la validité du certificat créé.
Infrastructures de gestion de clefs
Exercice 4) OpenSSH sous L INUX ou M AC -OSX
La commande ssh sous L INUX lance un programme pour se connecter à une machine distante, en suivant
le protocole S SH. Dans le répertoire .ssh à la racine du répertoire-utilisateur, ce programme maintient
un fichier known-hosts des serveurs sur lesquels l’utilisateur s’est connecté. La première connexion
est considérée comme sûre et les suivantes sont authentifiées par la clef publique stockée dans le fichier .ssh/known_hosts.
1. Comment rendre cette authentification du serveur sûre ?
2. Plusieurs méthodes d’authentification du client sont alors possibles (clef publique, mot de passe,
dialogue au clavier). Comment générer une paire de clefs publique/privée de type D SA sur 1024 bits
avec l’utilitaire ssh-keygen ?
3. Ajoutez la clef publique ainsi générée au fichier authorized_keys dans le répertoire .ssh
d’un compte tiers. Connectez-vous sur ce compte en utilisant ssh -v. Que constatez-vous ?
4. Désactivez en le sauvegardant différemment le fichier known_hosts. Se connecter sur une autre
machine. A quel message doit-on s’attendre ?
5. Modifiez le fichier known_hosts en changeant une clef publique. A quel message doit-on s’attendre ?
2