Master 1 année

Download Report

Transcript Master 1 année

Master 1 ère année
Sécurité des usages TIC
TP n°3
Tiers de confiance
Certificats : chaîne et création
1 – Regardez le certificat protégeant l’accès au site sécurisé https://webmail.unilim.fr/.
a. donnez la chaîne de confiance du site ;
b. quelle est la CA, « Certificate Authority », de ce certificat ?
2 – PKI et consultation de certificats
Dans le cadre du TP, nous utiliserons une PKI légère, basée sur l’utilisation d’OpenSSL et configurée
pour une utilisation dans le cadre du module Sécurité des Usages TIC.
Elle servira à établir la confiance entre les différentes personnes participant à cette UE.
a. Allez sur le site http://ishtar.libpfb.so/
b. Récupérez le « Root Certificate » et affichez son contenu (bouton « Voir ») :
Qu’est-ce que Firefox vous propose ? Qu’est-ce que cela veut dire ?
Quels sont les « purposes », usages, possible de ce certificat ?
Acceptez le certificat de l’AC avec « Confirmer cette AC pour identifier des sites Web ».
Si vous allez sur https://ishtar.libpfb.so/ le certificat devrait être de confiance puisqu’à présent vous
faites confiance à l’AC qui l’a émis.
◦
Resp. UE : P-F. Bonnefoi, http://libpfb.so/, « TP n 3 » version du 21 février 2014, rédigé avec ConTEXt – Don’t Panic !
1/6
c. Cherchez dans les certificats de l’AC pour l’utilisateur « bonnefoi » :
affichez le certificat du « User’s Name », Pierre-Francois Bonnefoi, (icone « loupe ») ;
affichez le certificat associé à « ishtar.libpfb.so » ;
comparez les « Certificate purposes » de ces deux certificats, quels sont leurs usages possibles ?
Le S/MIME correspond au SecureMIME, c-à-d une extension du format MIME permettant de
signer et chiffrer un courrier électronique.
d. téléchargez le certificat associé à « Pierre-Francois Bonnefoi », il devrait se sauvegarder sous le
nom « Pierre-Francois Bonnefoi ([email protected]).cer » :
affichez le contenu du certificat avec la commande suivante :
$ openssl x509 -inform DER -in "Pierre-Francois Bonnefoi ([email protected]).cer"
-text -noout
Le certificat est fourni dans un format binaire appelé DER, « Distinguished Encoding Rules »
utilisant le codage de données ASN.1.
convertissez le certificat sous sa forme PEM, « (Privacy Enhanced Mail », basé sur un encodage
base64 :
$ openssl x509 -inform DER -in "Pierre-Francois Bonnefoi ([email protected]).cer"
-out pfb.pem
Le certificat sera sauvegardé sous le nom « pfb.pem ».
3–
Création de certificat personnel
Pour créer votre certificat personnel vous allez utiliser la partie « Certificate Authority », c-à-d la
partie de la PKI qui enregistre et délivre des certificats.
L’accès est protégé par :
l’établissement d’une connexion sécurisé par SSL/TLS ;
l’authentification du serveur par un certificat émis par l’AC de la PKI ;
un accès protégé par « login/mdp » aux ressources du serveur Apache2 ;
Attention
Dans le cadre de ce TP, vous jouerez à la fois :
le rôle de consultation de la PKI : récupération des certificats émis, consultation de la liste
de révocation et récupération du certificat racine ;
Ce rôle est accessible à tous.
le rôle de contrôle de la PKI : enregistrement des entités, délivrance des certificats signés
par l’AC ;
Ce rôle est protégé et accessible uniquement au personnel autorisé de la PKI.
In real life, ces rôles sont disjoints et confiés à des structures différentes !
Pour accéder au contrôle de l’AC, allez sur « http://ishtar.libpfb.so/ca/ » et acceptez le
certificat du site, si ce n’est déjà fait :
Les identifiants d’accès à la partie sécurisée du site sont login :student, mdp :studentt0t0.
◦
Resp. UE : P-F. Bonnefoi, http://libpfb.so/, « TP n 3 » version du 21 février 2014, rédigé avec ConTEXt – Don’t Panic !
2/6
a. Demandez votre propre certificat personnel :
Ensuite, téléchargez le (il possède une extension « p12 » car il contient votre certificat et la clé
privée associée, au format PKCS12).
Questions :
I. Pourquoi pouvez vous vous faire confiance mutuellement ?
II.Qu’est ce que la « liste de révocation » et comment l’utiliser ?
III.Pourquoi ne pouvez vous pas « voler » le certificat d’une autre personne ?
b. Envoyer du courrier signé/chiffré dans le logiciel de messagerie Thunderbird :
i. Configurerez Thunderbird pour consulter votre messagerie :
IMAP : imap.unilim.fr, port 993
SMTP : smtp.unilim.fr, port 25
Vous activerez l’accès par SSL et utiliserez vos login/mdp d’accès à votre compte de l’Université.
ii. Intégrez votre certificat et celui de « Pierre-François Bonnefoi » ;
Attention
L’adresse mail de votre certificat doit absolument être la même que celle du compte de
messagerie configuré dans Thunderbird, pour pouvoir utiliser ce certificat.
iii.Envoyez un courrier à [email protected] qui sera signé grâce à votre propre certificat personnel et vérifiez sa réception.
Évitez de saturer ma boîte au lettre !
◦
Resp. UE : P-F. Bonnefoi, http://libpfb.so/, « TP n 3 » version du 21 février 2014, rédigé avec ConTEXt – Don’t Panic !
3/6
Manipulation d’une AC
4–
Création de l’Autorité de certification
a. en « ligne de commande » :
? créez un répertoire « MY_CA » ;
? allez dans ce répertoire ;
? créez un fichier index.txt et serial.txt, ainsi qu’un sous-répertoire « newcerts » :
$ touch index.txt
$ echo 01 > serial.txt
$ mkdir newcerts
? Créez le fichier « root-ca.cnf » avec le contenu suivant :
1
2
3
4
5
6
7
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
28
29
30
32
33
[ req ]
default_bits = 1024
default_keyfile = ca.key
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
string_mask = nombstr
req_extensions = v3_req
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = FR
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = FRANCE
localityName = Locality Name (eg, city)
localityName_default = Limoges
0.organizationName = Organization Name (eg, company)
0.organizationName_default = Master 1
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = Service de Certification
commonName = Common Name (eg, Mon Autorite de Certification)
commonName_default = Mon AC du Master 1
commonName_max = 64
emailAddress = Email Address (eg, celle du responsable)
emailAddress_max = 40
[ v3_ca ]
basicConstraints = critical,CA:true
subjectKeyIdentifier = hash
[ v3_req ]
nsCertType = email,server
? créez la bi-clé de l’Autorité de Certification :
openssl genrsa -des3 -out ca.key 2048
Mémorisez bien le mot de passe d’accès à la clé privée de l’AC.
? Réalisez l’« auto-signature » du certificat de l’AC :
openssl req -new -x509 -days 7300 -config root-ca.cnf -key ca.key -out ca.crt
Vous rentrerez différentes informations aux questions posées (le choix par défaut est suffisant).
◦
Resp. UE : P-F. Bonnefoi, http://libpfb.so/, « TP n 3 » version du 21 février 2014, rédigé avec ConTEXt – Don’t Panic !
4/6
5–
Création d’un certificat utilisateur
a. Toujours dans le répertoire « MY_CA » :
? Créez le fichier « user-cert.cnf » avec le contenu suivant :
1
2
3
4
5
6
8
9
10
11
12
14
15
16
[ req ]
default_bits = 1024
default_keyfile = user.key
distinguished_name = req_distinguished_name
string_mask = nombstr
req_extensions = v3_req
[ req_distinguished_name ]
commonName = Common Name (eg, Jean DUPONT)
commonName_max = 64
emailAddress = Email Address (eg, [email protected])
emailAddress_max = 40
[ v3_req ]
nsCertType = client, email
basicConstraints = critical,CA:false
? Créez votre bi-clé et la « demande de certificat » :
$ openssl genrsa -out user.key 2048
$ openssl req -new -config user-cert.cnf -key user.key -out user.csr
? Créez le fichier « ca-sign.cnf » avec le contenu suivant :
1
2
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20
21
22
24
25
26
27
28
29
[ ca ]
default_ca = default_CA
[ default_CA ]
dir = .
certs = $dir
new_certs_dir = $dir/newcerts
database = index.txt
serial = serial.txt
RANDFILE = seed.rnd
certificate = ca.crt
private_key = ca.key
default_days = 3650
default_crl_days = 30
default_md = md5
preserve = yes
x509_extensions = user_cert
policy = policy_anything
[ policy_anything ]
commonName = supplied
emailAddress = supplied
[ user_cert ]
subjectAltName = email:copy
basicConstraints = critical,CA:false
authorityKeyIdentifier = keyid:always
subjectKeyIdentifier
= hash
extendedKeyUsage = clientAuth,emailProtection
? Faites signer par l’AC, le certificat de l’utilisateur :
$ openssl ca -config ca-sign.cnf -out user.crt -batch -infiles user.csr
? Vérifiez le contenu de ce certificat :
$ openssl x509 -in user.crt -text -noout
◦
Resp. UE : P-F. Bonnefoi, http://libpfb.so/, « TP n 3 » version du 21 février 2014, rédigé avec ConTEXt – Don’t Panic !
5/6
6–
Utilisez le certificat pour faire de l’authentification pour un serveur Web :
a. lancez openssl en « émulation » de serveur web avec connexion sécurisée SSL utilisant le certificat et la clé privée créés précédemment :
openssl s_server -cert user.crt -key user.key -www
b. connectez vous sur ce serveur depuis votre navigateur Web à l’aide de l’url :
https://localhost:4433/
? Qu’est-ce que vous indique le navigateur ?
? Comment corriger le(s) problème(s) ?
7–
8–
Allez consulter l’offre de la société Certinomis :
a. Quelle est leur offre en matière de certificat, de services ?
b. Qui emploie ces offres et comment cette société peut-elle se développer ?
Utilisation de DSA
Étude de DSA.
a. Qu’est-ce que veut dire DSA ?
b. Étudiez les sous-commandes « gendsa », « dsaparam » et « dsa » de la commande openssl :
? que permettent-elles ?
? dans quel ordre les utilise-t-on ?
c. Créez votre bi-clé.
d. La sous-commande gendsa possède une liste d’arguments « -des|-des3|-idea » :
? à quoi servent-ils ?
? quelle sécurité, le choix d’un de ses arguments fournit-il ?
e. Consultez la documentation de la sous-commande « dgst ».
? comment, à l’aide de vos éléments créés précédemment, pouvez vous réaliser une signature
DSA ?
? comparez avec les possibilités offertes par RSA.
◦
Resp. UE : P-F. Bonnefoi, http://libpfb.so/, « TP n 3 » version du 21 février 2014, rédigé avec ConTEXt – Don’t Panic !
6/6