Tp certif

521 views
450 views

Published on

TP Certificat ssl

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
521
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tp certif

  1. 1. USTL - Licence et Master Informatique 2006-2007 Principes et Algorithmes de Cryptographie TP : RSA et certificats avec openSSL1 Pr´sentation de openSSL e1.1 Protocole SSL Le protocole SSL (Secure Socket Layer) a ´t´ d´velopp´ par la soci´t´ Netscape Communications ee e e eeCorporation pour permettre aux applications client/serveur de communiquer de fa¸on s´curis´e. TLS c e e(Transport Layer Security) est une ´volution de SSL r´alis´e par l’IETF. e e e La version 3 de SSL est utilis´e par les navigateurs tels Netscape et Microsoft Internet Explorer depuis eleur version 4. SSL est un protocole qui s’intercale entre TCP/IP et les applications qui s’appuient sur TCP. Unesession SSL se d´roule en deux temps e 1. une phase de poign´e de mains (handshake) durant laquelle le client et le serveur s’identifient, e conviennent du syst`me de chiffrement et d’une cl´ qu’ils utiliseront par la suite. e e 2. la phase de communication proprement dite durant laquelle les donn´es ´chang´es sont compress´es, e e e e chiffr´es et sign´es. e e L’identification durant la poign´e de mains est assur´e ` l’aide de certificats X509. e e a1.2 openSSL openSSL est une boˆ ` outils cryptographiques impl´mentant les protocoles SSL et TLS qui offre ıte a e 1. une biblioth`que de programmation en C permettant de r´aliser des applications client/serveur e e s´curis´es s’appuyant sur SSL/TLS. e e 2. une commande en ligne (openssl) permettant – la cr´ation de cl´s RSA, DSA (signature) e e – la cr´ation de certificats X509 e – le calcul d’empreintes (MD5, SHA, RIPEMD160, ...) – le chiffrement et d´chiffrement (DES, IDEA, RC2, RC4, Blowfish, ...) e – la r´alisation de tests de clients et serveurs SSL/TLS e – la signature et le chiffrement de courriers (S/MIME) Pour connaˆ toutes les fonctionnalit´s de openSSL : man openssl. ıtre e La syntaxe g´n´rale de la commande openssl est e e$ o p e n s s l <commande> <o p t i o n s > (le $ est le prompt du shell) Dans le texte qui suit, les commandes invoquant openssl supposent que cette commande est dansvotre PATH.2 Chiffrement sym´trique avec openSSL e Voir le TP num´ro 2 ici. e3 RSA avec openSSL3.1 G´n´ration d’une paire de cl´s e e e On peut g´n´rer une paire de cl´s RSA avec la commande genrsa de openSSL. e e e$ o p e n s s l g e n r s a −out <f i c h i e r > < t a i l l e > 1
  2. 2. o` fichier est un nom de fichier de sauvegarde de la cl´, et taille et la taille souhait´e (exprim´e en bits) u e e edu modulus de la cl´. e Par exemple, pour g´n´rer une paire de cl´s de 1024 bits, stock´e dans le fichier maCle.pem, on tape e e e ela commande$ o p e n s s l g e n r s a −out maCle . pem 1024 Le fichier obtenu est un fichier au format PEM (Privacy Enhanced Mail, format en base 64), dontvoici un exemple$ c a t maCle . pem−−−−−BEGIN RSA PRIVATE KEY −−−−−MIICXAIBAAKBgQCveVjLltevTC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXxO7AfKWpA5g0wFZgZNERIfFYaCnvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvPd8LgBypJHbr6f5MXWqntvzp0Qvg6ddeNpUIrqkkh4uDfHFDWqyrkQUCvKwIDAQABAoGANchUrfnq28DWy0fE0R+cscvC292Z8jN8vrIBWxEk8iSlKU0om6v+a0g8wlP63 gC6V66uxjY7xxdf7SD+/UykVl4PGFymhLtywSdGlgec3tLgBtV3ytJFilAVDBijLzQwUegCO4zt1JWYc6vvaVdNyQSaGIIeYGsNDWEYlOtDSlkCQQDVRn9JS15G8p+H4Z0PbU9ZQg2L1u9/SD/kELVe3Kx1fdHulxH0v8V2AgPdXA29Nhi+TxUtC+V8CMc2KXmAvFsHAkEA0qBDmjHMDPwcGaqbQ2lymYQIGlZ5TLQFA98Dey2uE+CB6pmS/ e /Zilu1IaasuE3vBzXfB /JU7DUkV++JQ7TtvQJBAL2s5dUch2sXqlOhjhpDP/eE7CE69WLAsbm2Nmd4YJRZYtQLXPfLeeSapC9BCCMHsnfGQ3H9i4mFEQ6VUi7w1Q8CQAQapVaS09QI8Y86eM4GdvowzWud9b0d4N8jcFDtIfA3NrDYjzmte8KraMsgEUuCET9FuHPSL/9uRagE/dq44s0CQCMQU4PMqkMtwzCFsV8ZqLmkDPn1binIAwRLYFcsQRDtgTi6rycz3Pk1hCVzBfyMd8zwqpwKmR5FoOXuJEv+mVg=−−−−−END RSA PRIVATE KEY −−−−−3.2 Visualisation des cl´s RSA e La commande rsa permet de visualiser le contenu d’un fichier au format PEM contenant une pairede cl´s RSA. e$ o p e n s s l r s a −i n <f i c h i e r > −t e x t −nooutL’option -text demande l’affichage d´cod´ de la paire de cl´s. L’option -noout supprime la sortie nor- e e emalement produite par la commande rsa. Par exemple$ o p e n s s l r s a −i n maCle . pem −t e x t −nooutP r i v a t e −Key : ( 1 0 2 4 b i t )modulus : 0 0 : a f : 7 9 : 5 8 : cb : 9 6 : d7 : a f : 4 c : 2 e : 6 4 : 4 8 : 0 8 : 9 3 : 6 2 : 3 1 : c c : 5 6 : e0 : 1 1 : f 3 : 4 0 : c7 : 3 0 : b5 : 8 2 : a7 : 7 0 : 4 e : 5 5 : 9 e : 3 d : 7 9 : 7 c : 2 b : 6 9 : 7 c : 4 e : e c : 0 7 : ca : 5 a : 9 0 : 3 9 : 8 3 : 4c :05:66:06:4 d :11:12:1 f :15:86:82:9 e : f6 :90:0 d : 0 0 : 3 e : f 4 : 1 4 : 4 8 : 7 e : c4 : 9 2 : a f : 7 a : 1 2 : c3 : 4 3 : 3 2 : e5 : 2 0 : f a : 7 a : 0 d : 7 9 : b f : 4 5 : 6 6 : 2 6 : 6 b : c f : 7 7 : c2 : e0 : 0 7 : 2 a : 4 9 : 1 d : ba : f a : 7 f : 9 3 : 1 7 : 5 a : a9 : ed : b f : 3 a : 7 4 : 4 2 : f 8 : 3 a : 7 5 : d7 : 8 d : a5 : 4 2 : 2 b : aa : 4 9 : 2 1 : e2 : e0 : d f : 1 c : 5 0 : d6 : ab : 2 a : e4 : 4 1 : 4 0 : a f : 2 bp u b l i c E x p o n e n t : 65537 ( 0 x10001 )privateExponent : 3 5 : c8 : 5 4 : ad : f 9 : ea : db : c0 : d6 : cb : 4 7 : c4 : d1 : 1 f : 9 c : b1 : cb : c2 : db : dd : 9 9 : f 2 : 3 3 : 7 c : be : b2 : 0 1 : 5 b : 1 1 : 2 4 : f 2 : 2 4 : a5 : 2 9 : 4 d : 2 8 : 9 b : ab : f e : 6 b : 4 8 : 3 c : c2 : 5 3 : f a : de : 0 0 : ba : 5 7 : ae : ae : c6 : 3 6 : 3 b : c7 : 1 7 : 5 f : ed : 2 0 : f e : f d : 4 c : a4 : 5 6 : 5 e : 0 f : 1 8 : 5 c : a6 : 8 4 : bb : 7 2 : c1 : 2 7 : 4 6 : 9 6 : 0 7 : 9 c : de : d2 : e0 : 0 6 : d5 : 7 7 : ca : d2 : 4 5 : 8 a : 5 0 : 1 5 : 0 c : 1 8 : a3 : 2 f : 3 4 : 3 0 : 5 1 : e8 : 0 2 : 3 b : 8 c : ed : d4 : 9 5 : 9 8 : 7 3 : ab : e f : 6 9 : 5 7 : 4 d : c9 : 0 4 : 9 a : 1 8 : 8 2 : 1 e : 6 0 : 6 b : 0 d : 2
  3. 3. 0d : 6 1 : 1 8 : 9 4 : eb : 4 3 : 4 a : 5 9prime1 : 0 0 : d5 : 4 6 : 7 f : 4 9 : 4 b : 5 e : 4 6 : f 2 : 9 f : 8 7 : e1 : 9 d : 0 f : 6 d : 4 f : 5 9 : 4 2 : 0 d : 8 b : d6 : e f : 7 f : 4 8 : 3 f : e4 : 1 0 : b5 : 5 e : dc : ac : 7 5 : 7 d : d1 : e e : 9 7 : 1 1 : f 4 : b f : c5 : 7 6 : 0 2 : 0 3 : dd : 5 c : 0d : bd : 3 6 : 1 8 : be : 4 f : 1 5 : 2 d : 0 b : e5 : 7 c : 0 8 : c7 : 3 6 : 2 9 : 7 9 : 8 0 : bc : 5 b : 0 7prime2 : 0 0 : d2 : a0 : 4 3 : 9 a : 3 1 : c c : 0 c : f c : 1 c : 1 9 : aa : 9 b : 4 3 : 6 9 : 7 2 : 9 9 : 8 4 : 0 8 : 1 a : 5 6 : 7 9 : 4 c : b4 : 0 5 : 0 3 : d f : 0 3 : 7 b : 2 d : ae : 1 3 : e0 : 8 1 : ea : 9 9 : 9 2 : f d : e f : d9 : 8 a : 5 b : b5 : 2 1 : a6 : ac : b8 : 4 d : e f : 0 7 : 3 5 : d f : 0 7 : f 2 : 5 4 : e c : 3 5 : 2 4 : 5 7 : e f : 8 9 : 4 3 : b4 : ed : bdexponent1 : 0 0 : bd : ac : e5 : d5 : 1 c : 8 7 : 6 b : 1 7 : aa : 5 3 : a1 : 8 e : 1 a : 4 3 : 3 f : f 7 : 8 4 : e c : 2 1 : 3 a : f 5 : 6 2 : c0 : b1 : b9 : b6 : 3 6 : 6 7 : 7 8 : 6 0 : 9 4 : 5 9 : 6 2 : d4 : 0 b : 5 c : f 7 : cb : 7 9 : e4 : 9 a : a4 : 2 f : 4 1 : 0 8 : 2 3 : 0 7 : b2 : 7 7 : c6 : 4 3 : 7 1 : f d : 8 b : 8 9 : 8 5 : 1 1 : 0 e : 9 5 : 5 2 : 2 e : f 0 : d5 : 0 fexponent2 : 0 4 : 1 a : a5 : 5 6 : 9 2 : d3 : d4 : 0 8 : f 1 : 8 f : 3 a : 7 8 : c e : 0 6 : 7 6 : f a : 3 0 : cd : 6 b : 9 d : f 5 : bd : 1 d : e0 : d f : 2 3 : 7 0 : 5 0 : ed : 2 1 : f 0 : 3 7 : 3 6 : b0 : d8 : 8 f : 3 9 : ad : 7 b : c2 : ab : 6 8 : cb : 2 0 : 1 1 : 4b : 8 2 : 1 1 : 3 f : 4 5 : b8 : 7 3 : d2 : 2 f : f f : 6 e : 4 5 : a8 : 0 4 : f d : da : b8 : e2 : cdcoefficient : 2 3 : 1 0 : 5 3 : 8 3 : c c : aa : 4 3 : 2 d : c3 : 3 0 : 8 5 : b1 : 5 f : 1 9 : a8 : b9 : a4 : 0 c : f 9 : f 5 : 6 e : 2 9 : c8 : 0 3 : 0 4 : 4 b : 6 0 : 5 7 : 2 c : 4 1 : 1 0 : ed : 8 1 : 3 8 : ba : a f : 2 7 : 3 3 : dc : f 9 : 3 5 : 8 4 : 2 5 : 7 3 : 0 5 : f c : 8 c : 7 7 : c c : f 0 : aa : 9 c : 0 a : 9 9 : 1 e : 4 5 : a0 : e5 : e e : 2 4 : 4b : f e : 9 9 : 5 8 Les diff´rents ´l´ments de la cl´ sont affich´s en hexad´cimal (hormis l’exposant public). On peut distin- e ee e e eguer le modulus, l’exposant public (qui par d´faut est toujours 655371 ), l’exposant priv´, les nombres pre- e emiers facteurs du modulus, plus trois autres nombres qui servent ` optimiser l’algorithme de d´chiffrement. a eExercice 1 : Donnez une explication du choix de la valeur 65537 pour exposant public par d´faut. e3.3 Chiffrement d’un fichier de cl´s RSA e Il n’est pas prudent de laisser une paire de cl´ en clair (surtout la partie priv´e). Avec la commande e ersa, il est possible de chiffrer une paire de cl´s2 . Pour cela trois options sont possibles qui pr´cisent e el’algorithme de chiffrement sym´trique ` utiliser : -des, -des3 et -idea. e a$ o p e n s s l r s a −i n maCle . pem −d e s 3 −out maCle . pemw r i t i n g RSA keyEnter PEM p a s s p h r a s e :V e r i f y i n g − Enter PEM p a s s p h r a s e :Une phrase de passe est demand´e deux fois pour g´n´rer une cl´ sym´trique prot´geant l’acc`s ` la cl´. e e e e e e e a eExercice 2 : Avec la commande cat observez le contenu du fichier maCle.pem. Utilisez ` nouveau ala commande rsa pour visualiser le contenu de la cl´. e 1 openssl n’autorise que deux exposants publics : 65537 (valeur par d´faut) ou 3 obtenu avec ’option -3 e 2 Il est possible de chiffrer le fichier lors de sa g´n´ration. Il suffit de mettre l’une des trois options -des, -des3, -idea e edans la ligne de commande genrsa. 3
  4. 4. 3.4 Exportation de la partie publique La partie publique d’une paire de cl´s RSA est publique, et ` ce titre peut ˆtre communiqu´e ` e a e e an’importe qui. Le fichier maCle.pem contient la partie priv´e de la cl´, et ne peut donc pas ˆtre communiqu´ e e e etel quel (mˆme s’il est chiffr´). Avec l’option -pubout on peut exporter la partie publique d’une cl´. e e e$ o p e n s s l r s a −i n maCle . pem −pubout −out maClePublique . pemExercice 3 :Q 1 . Notez le contenu du fichier maClePublique.pem. Remarquez les marqueurs de d´but et de fin. eQ 2 . Avec la commande rsa visualisez la cl´ publique. Attention vous devez pr´ciser l’option -pubin, e epuisque seule la partie publique figure dans le fichier maClePublique.pem.3.5 Chiffrement/d´chiffrement de donn´es avec RSA e e On peut chiffrer des donn´es avec une cl´ RSA. Pour cela on utilise la commande rsautl e e$ o p e n s s l r s a u t l −e n c r y p t −i n < f i c h i e r e n t r e e > −i n k e y <c l e > −out < f i c h i e r s o r t i e >o` u – fichier entree est le fichier des donn´es ` chiffrer. Attention, le fichier des donn´es ` chiffrer ne doit e a e a pas avoir une taille excessive (ne doit pas d´passer 116 octets pour une cl´ de 1024 bits). e e – cle est le fichier contenant la cl´ RSA. Si ce fichier ne contient que la parte publique de la cl´, il e e faut rajouter l’option -pubin. – fichier sortie est le fichier de donn´es chiffr´. e e Pour d´chiffrer on remplace l’option -encrypt par -decrypt. Le fichier contenant la cl´ doit obliga- e etoirement contenir la partie priv´e. eExercice 4 : Chiffrez le fichier de votre choix avec le syst`me sym´trique de votre choix. Chiffrez la e ecl´ ou le mot de passe utilis´(e) avec la cl´ publique de votre destinataire (demandez-lui sa cl´ publique e e e esi vous ne l’avez pas). Envoyez-lui le mot de passe chiffr´ ainsi que le fichier chiffr´. e eExercice 5 : Il s’agit de d´chiffrer le fichier cryptogram13. Pour cela vous devez r´cup´rer les fichiers e e esuivants (attention la plupart de ces fichiers sont des fichiers binaires) – le fichier cryptogram13 (fichier binaire) a ´t´ obtenu en chiffrant un texte avec openssl et la ee commande enc. Le syst`me de chiffrement sym´trique utilis´ est BlowFish en mode CBC ; e e e – la cl´ BlowFish a ´t´ d´riv´e ` partir d’un mot de passe dont voici la version chiffr´e ; e ee e e a e – la cl´ priv´e RSA qui a servi ` chiffrer le mot de passe ; e e a – le mot de passe prot´geant la cl´ RSA, cod´ en base 64, est VVNUTC1GSUwtUEFD . e e e3.6 Signature de fichiers Il n’est possible de signer que de petits documents. Pour signer un gros document on calcule d’abordune empreinte de ce document. La commande dgst permet de le faire.$ o p e n s s l d g s t <hachage> −out <empreinte > < f i c h i e r e n t r e e >o` hachage est une fonction de hachage. Avec openssl, plusieurs fonctions de hachage sont propos´es u edont – MD5 (option -md5), qui calcule des empreintes de 128 bits, – SHA1 (option -sha1), qui calcule des empreintes de 160 bits, – RIPEMD160 (option -ripemd160), qui calcule des empreintes de 160 bits. Signer un document revient ` signer son empreinte. Pour cela, on utilise l’option -sign de la commande arsautl$ o p e n s s l r s a u t l −s i g n −i n <empreinte > −i n k e y <c l e > −out <s i g n a t u r e > et pour v´rifier la signature e 4
  5. 5. $ o p e n s s l r s a u t l −v e r i f y −i n <s i g n a t u r e > −pubin −i n k e y <c l e >−out <empreinte >il reste ensuite ` v´rifier que l’empreinte ainsi produite est la mˆme que celle que l’on peut calculer. a e eL’option -pubin indique que la cl´ utilis´e pour la v´rification est la partie publique de la cl´ utilis´e e e e e epour la signature.Exercice 6 : Signez le fichier de votre choix, pui v´rifiez la signature. eExercice 7 : Des deux fichiers suivants, lequel a bien ´t´ sign´ avec la partie priv´e de cette cle ? ee e e – fichier 1, signature 1 – fichier 2, signature 24 Certificats Vous allez maintenant ´laborer un certificat pour votre cl´ publique. Puis, vous verrez comment utiliser e eles cl´s certifi´es pour signer et/ou chiffrer des courriers ´lectoniques. e e e4.1 G´n´ration de la paire de cl´s e e eExercice 8 : G´n´rez votre paire de cl´s RSA d’une taille de 1024 bits, prot´g´e par un mot de passe e e e e e(cf g´n´ration d’une paire de cl´s). Dans la suite, on suppose nomm´ maCle.pem le fichier contenant votre e e e epaire de cl´s RSA. Ce fichier est prot´g´ par le mot de passe fourni lors de la g´n´ration. e e e e eExercice 9 : Cr´ez un fichier ne contenant que la partie publique de votre cl´ RSA (cf Exportation e ede la cl´ publique). Dans la suite, on suppose ce fichier nomm´ maClePublique.pem. e e4.2 Cr´ation d’une requˆte de certificats e e Maintenant que vous disposez d’une cl´ RSA, vous allez ´tablir une requˆte pour obtenir un certificat. e e e Outre la cl´ publique du sujet, un certificat contient un certain nombre d’informations concernant el’identit´ de son propri´taire : e e – Pays (C), ´ – Etat ou province (ST) – Ville ou localit´ (L) e – Organisation (O) – Unit´ (OU) e – Nom (CN) – Email Toutes ces informations et d’autres encore sont demand´es lors de la cr´ation de la requˆte. Un fichier e e ede configuration (req.cnf) peut-ˆtre d´fini qui propose les informations ` apporter dans le certificat avec e e ades valeurs par d´faut. e On ´tablit une requˆte avec la commande req de openssl. e e$ o p e n s s l r e q −c o n f i g r e q . c n f −new −key maCle . pem −out maRequete . pem Le fichier produit maRequete.pem est aussi au format PEM.$ c a t maRequete . pem−−−−−BEGIN CERTIFICATE REQUEST −−−−−MIIB/zCCAWgCAQAwgb4xCzAJBgNVBAYTAkZSMRIwEAYDVQQIEwlOb3JkICg1OSkxGjAYBgNVBAcTEVZpbGxlbmV1dmUgZCdBc2NxMR4wHAYDVQQKExVVbml2ZXJzaXRlIGRlIExpbGxlIDExGTAXBgNVBAsTEExpY2VuY2UgUHJvIERBMkkxGjAYBgNVBAMTEUVyaWMgV2Vncnp5bm93c2tpMSgwJgYJKoZIhvcNAQkBFhlFcmljLldlZ3J6eW5vd3NraUBsaWZsLmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCveVjLltevTC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXxO7AfKWpA5g0wFZgZNERIfFYaCnvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvPd8LgBypJHbr6f5MXWqntvzp0Qvg6ddeNpUIrqkkh4uDfHFDWqyrkQUCvKwIDAQABoAAwDQYJKoZIhvcNAQEEBQAD 5
  6. 6. gYEAHOwGNN6A8d4EhjfXCRvC2fhIjt7i6jxfkHKBkHpm2yNBBDHQwiv+O/Y0MeNhI r a+y8KUMjeImsSiH4731sfgA6ycm+6JoDV7n6z8tzN5QMGsw7V3ErduskayKP4Tj a+BMImEcDwlr+KuRO704rGeiAG7pvtDGcDcj2Mex68ki94=−−−−−END CERTIFICATE REQUEST −−−−− On peut consulter les informations contenues dans la requˆte avec la commande e$ o p e n s s l r e q −c o n f i g r e q . c n f −i n maRequete . pem −t e x t −nooutC e r t i f i c a t e Request : Data : V e r s i o n : 0 ( 0 x0 ) S u b j e c t : C=FR, ST=Nord ( 5 9 ) , L=V i l l e n e u v e d ’ Ascq , O=U n i v e r s i t e de L i l l e 1 , OU=L i S u b j e c t P u b l i c Key I n f o : P u b l i c Key Algorithm : r s a E n c r y p t i o n RSA P u b l i c Key : ( 1 0 2 4 b i t ) Modulus ( 1 0 2 4 b i t ) : 0 0 : a f : 7 9 : 5 8 : cb : 9 6 : d7 : a f : 4 c : 2 e : 6 4 : 4 8 : 0 8 : 9 3 : 6 2 : 3 1 : c c : 5 6 : e0 : 1 1 : f 3 : 4 0 : c7 : 3 0 : b5 : 8 2 : a7 : 7 0 : 4 e : 5 5 : 9 e : 3 d : 7 9 : 7 c : 2 b : 6 9 : 7 c : 4 e : e c : 0 7 : ca : 5 a : 9 0 : 3 9 : 8 3 : 4c :05:66:06:4 d :11:12:1 f :15:86:82:9 e : f6 :90:0 d : 0 0 : 3 e : f 4 : 1 4 : 4 8 : 7 e : c4 : 9 2 : a f : 7 a : 1 2 : c3 : 4 3 : 3 2 : e5 : 2 0 : f a : 7 a : 0 d : 7 9 : b f : 4 5 : 6 6 : 2 6 : 6 b : c f : 7 7 : c2 : e0 : 0 7 : 2 a : 4 9 : 1 d : ba : f a : 7 f : 9 3 : 1 7 : 5 a : a9 : ed : b f : 3 a : 7 4 : 4 2 : f 8 : 3 a : 7 5 : d7 : 8 d : a5 : 4 2 : 2 b : aa : 4 9 : 2 1 : e2 : e0 : d f : 1 c : 5 0 : d6 : ab : 2 a : e4 : 4 1 : 4 0 : a f : 2 b Exponent : 65537 ( 0 x10001 ) Attributes : a0 : 0 0 S i g n a t u r e Algorithm : md5WithRSAEncryption 1 c : e c : 0 6 : 3 4 : de : 8 0 : f 1 : de : 0 4 : 8 6 : 3 7 : d7 : 0 9 : 1 b : c2 : d9 : f 8 : 4 8 : 8 e : de : e2 : ea : 3 c : 5 f : 9 0 : 7 2 : 8 1 : 9 0 : 7 a : 6 6 : db : 2 3 : 4 1 : 0 4 : 3 1 : d0 : c2 : 2 b : f e : 3 b : f 6 : 3 4 : 3 1 : e3 : 6 1 : 2 2 : b6 : be : cb : c2 : 9 4 : 3 2 : 3 7 : 8 8 : 9 a : c4 : a2 : 1 f : 8 e : f 7 : d6 : c7 : e0 : 0 3 : ac : 9 c : 9 b : e e : 8 9 : a0 : 3 5 : 7 b : 9 f : ac : f c : b7 : 3 3 : 7 9 : 4 0 : c1 : ac : c3 : b5 : 7 7 : 1 2 : b7 : 6 e : b2 : 4 6 : b2 : 2 8 : f e : 1 3 : 8 d : a f : 8 1 : 3 0 : 8 9 : 8 4 : 7 0 : 3 c : 2 5 : a f : e2 : ae : 4 4 : e e : f 4 : e2 : b1 : 9 e : 8 8 : 0 1 : bb : a6 : f b : 4 3 : 1 9 : c0 : dc : 8 f : 6 3 : 1 e : c7 : a f : 2 4 : 8b : deExercice 10 : Explliquez les diff´rents ´l´ments contenus dans cette requˆte. La cl´ priv´e du sujet e ee e e ey figure–t–elle ?4.3 Demande de signature de certificat Une fois que vous avez ´tabli une requete de certificat, il vous reste ` contacter une autorit´ de certi- e a efication qui vous d´livrera un certificat sign´, apr`s avoir proc´d´ (normalement) ` quelques v´rifications e e e e e a evous concernant.L’autorit´ de certification P`re Ubu Vous jouerez dans ce TP le rˆle de l’autorit´ de certification. e e o ePour cela il vous faut un certificat d’autorit´ de certification, ainsi qu’une paire de cl´s. Afin de ne pas e emultiplier les autorit´s, vous utilisereztous la tr`s notable autorit´ P`re Ubu dont vous trouverez ici le e e e ecertificat et la paire de cl´s RSA. e Un certificat produit par openssl est un fichier au format PEM.$ c a t u n C e r t i f . pem−−−−−BEGIN CERTIFICATE−−−−− ....−−−−−END CERTIFICATE−−−−− 6
  7. 7. Pour visualiser le contenu d’un certificat$ o p e n s s l x509 −i n u n C e r t i f . pem −t e x t −nooutExercice 11 : Apr`s avoir r´cup´r´ le certificat de l’autorit´, ainsi que sa paire de cl´s RSA, cherchez e e ee e equelle est la date d’expiration du certificat et la taille de la cl´. eCr´ation d’un certificat Pour cr´er et signer un certificat ` partir d’une requˆte maRequete.pem, e e a el’autorit´ invoque la commande x509 e$ o p e n s s l x509 −days 10 −C A s e r i a l PereUbu . s r l −CA P e r e U b u C e r t i f . pem −CAkey PereUbuCle . pem −i n maRequete . pem −r e q −out monCertif . pem dans laquelle PereUbu.srl est un fichier contenant le num´ro de s´rie du prochain certificat ` signer e e a(ce fichier est un fichier texte contenant une ligne donnant un nombre cod´ avec un nombre pair de chiffres ehexad´cimaux), et l’option -days d´termine la dur´e de validit´ du certificat (ici 10 jours). e e e eExercice 12 : Cr´´z un certificat pour votre cl´ publique. (Lors de la signature du certificat, la ee ecommande x509 invite l’autorit´ certifiante ` donner son mot de passe. Le mot de passe de P`re Ubu e a ene devrait pas vous ˆtre inconnu, puisqu’il s’agit DU mot du P`re Ubu (celui prononc´ au tout d´but e e e ed’Ubu Roi). N´anmoins, le voici cod´ en base 64 bWVyZHJlCg== S’il le faut, utilisez la commande openssl e ebase64 -d pour le d´coder.) e Puis contrˆlez le contenu du certificat obtenu avec les options appropri´es de la commande x509. o eV´rification de certificats On peut v´rifier la validit´ d’un certificat avec la commande verify. Pour e e ev´rifier la validit´ d’un certificat, il est n´cessaire de disposer du certificat de l’autorit´ qui l’a ´mis. e e e e e$ o p e n s s l v e r i f y −C A f i l e P e r e U b u C e r t i f . pem monCertif . pem4.4 Signature et chiffrement de courriers ´lectroniques e Lorsque vous disposez d’une paire de cl´s publique/priv´e, et d’un certificat qui les accompagne, et e equi atteste de votre adresse ´lectronique, il vous est possible, entre autres choses, de signer vos mails, et ede recevoir des mails chiffr´s de la part de vos correspondants qui disposent de votre certificat. e4.4.1 Avec opensslSignature de courriers Vous disposez d’un certificat monCertif.pem, d’une cl´ priv´e maCle.pem e eet vous voulez envoyer un courrier sign´ dont le contenu est dans le fichier blabla.txt ` l’adresse e ahaha@palotin.pl. En supposant que tous les fichiers se trouvent dans le r´pertoire courant, il suffit ed’invoquer la commande$ o p e n s s l smime −s i g n −i n b l a b l a . t x t −t e x t −s i g n e r monCertif . pem −i n k e y maCle . pem −from moi@palotin . p l −t o haha@palotin . p l −s u b j e c t ” c o u r r i e r s i g n e ” Il est bien videmment possible de rediriger la sortie de la comande pr´c´dente vers un fichier (avec e el’option -out par exemple), ou vers la commande mail.V´rification de courriers sign´s Pour v´rifier un courrier sign´, il faut disposer du certificat que e e e el’´metteur a utilis´ pour signer, ainsi que celui de l’autorit´ ayant ´mis ce certificat. On invoque la e e e ecommande$ o p e n s s l smime − v e r i f y −i n c o u r r i e r . s i g n e −s i g n e r s o n C e r t i f . pem −C A f i l e P e r e U b u C e r t i f . pem 7
  8. 8. Chiffrement de courriers Pour envoyer un courrier chiffr´, par exemple avec du Triple-DES, ` un e adestinataire dont on dispose d’un certificat sonCertif.pem, il suffit d’invoquer la commande$ o p e n s s l smime −e n c r y p t −i n b l a b l a . t x t −t e x t −from moi@palotin . p l −t o haha@palotin . p l −s u b j e c t ” c o u r r i e r c h i f f r ´ ” e −d e s 3 s o n C e r t i f . pem Il est bien videmment possible de rediriger la sortie de la comande pr´c´dente vers un fichier (avec e el’option -out par exemple), ou vers la commande mail.D´chiffrement de courriers Pour d´chiffrer un courrier chiffr´ e e e$ o p e n s s l smime −d e c r y p t −i n c o u r r i e r . c h i f f r e −r e c i p s o n C e r t i f . pem −i n k e y maCle . pemo` maCle.pem est ma cl´ priv´e RSA, et sonCertif.pem est le certificat de l’´metteur. u e e eRemarque Lorsqu’on chiffre un courrier ´lectronique, il faut s’assurer que le destinataire est en mesure ede le d´chiffrer, autrement dit que le logiciel du destinataire est en mesure de le faire. e4.4.2 Avec Mozilla La premi`re chose ` faire pour pouvoir ´changer des courriers sign´s et/ou chiffr´s avec Mozilla e a e e eest d’importer votre certificat et votre cl´ priv´e que vous venez d’obtenir dans la base de donn´es de e e ecertificats g´r´es par votre navigateur. eeLa base de donn´es de certificats Vous pouvez consulter cette base de donn´es par le menu e eEdition/Preferences. Vous pouvez alors consulter – vos certificats (a priori aucun), – ceux des personnes dont vous en avez obtenu un, – ceux de serveurs WEB s´curis´s que vous avez eu l’occasion de rencontrer, e e – et enfin, ceux des autorit´s de certification que vous connaissez (il y en a plusieurs dizaines norma- e lement, mais cette liste ne contient pas le P`re Ubu) eImportation d’un certificat Pour importer votre certificat dans votre base de donn´es, il faut cr´er e ed’abord une enveloppe PKCS#12. Il s’agit d’une norme de fichier adopt´e pour ”ficeler” ensemble un ou eplusieurs certificats et cl´s. e Pour cr´er une enveloppe PKCS#12 contenant votre certificat, votre cl´ priv´e, et le certificat de e e el’autorit´ ayant sign´ le votre, il suffit d’invoquer la commande e e$ o p e n s s l pkcs12 −e x p o r t −i n monCertif . pem −i n k e y maCle . pem − c e r t f i l e P e r e U b u C e r t i f . pem −name ”EW” −caname ” Pere Ubu” −out monEnveloppe . p12 Un mot de passe prot´geant cette enveloppe vous est demand´. e e Une fois cette enveloppe r´alis´e, il reste ` importer tout cela dans la base de donn´es de certificats e e a ede votre navigateur. Pour cela passez par le menu s´curit´. Un mot de passe vous sera demand´ pour la e e ebase de donn´es, puis celui que vous avez utilis´ pour prot´ger l’enveloppe PKCS#12. e e e Cela r´alis´, vous devez voir maintenant votre certificat dans la liste des votres. Demandez ` le e e avisualiser, puis ` le v´rifier. Votre certificat n’est pas valide car ... a eAcceptation de l’autorit´ P`re Ubu e e ... l’autorit´ P`re Ubu n’est pas accept´e par votre navigateur. e e e Pour que P`re Ubu soit accept´ vous devez ´diter son certificat (depuis la liste des certificats d’autorit´s e e e esignataires) et cocher la case concernant l’acceptation de cette autorit´ pour les emails. e V´rifiez maintenant votre certificat. e V´rifiez aussi la signature du mail de mercredi dernier. e 8
  9. 9. Envoyer un courrier sign´ Pour envoyer un courrier sign´, il suffit de cocher la cas ad´quate qui e e eapparaˆ lorsqu’on coche la case s´curit´ (en bas ` gauche) de la fenˆtre de composition du mail. ıt e e a eEnvoyer un mail chiffr´ Pour envoyer un courrier chiffr´, il suffit de faire la mˆme chose. ATTEN- e e eTION, vous devez poss´der un certificat valide de votre destinataire. e 9

×