You are on page 1of 9

USTL - Licence et Master Informatique

2006-2007

Principes et Algorithmes de Cryptographie

TP : RSA et certificats avec openSSL 1
1.1

Pr´sentation de openSSL e
Protocole SSL

Le protocole SSL (Secure Socket Layer) a ´t´ d´velopp´ par la soci´t´ Netscape Communications ee e e ee Corporation 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 e leur version 4. SSL est un protocole qui s’intercale entre TCP/IP et les applications qui s’appuient sur TCP. Une session 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 a

1.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 dans votre PATH.

2

Chiffrement sym´trique avec openSSL e
Voir le TP num´ro 2 ici. e

3
3.1

RSA avec openSSL
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

et taille et la taille souhait´e (exprim´e en bits) u e e e du modulus de la cl´. on tape e e e e la 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. Par exemple $ o p e n s s l r s a −i n maCle . pour g´n´rer une paire de cl´s de 1024 bits. e Par exemple.pem. e $ o p e n s s l r s a −i n <f i c h i e r > −t e x t −noout L’option -text demande l’affichage d´cod´ de la paire de cl´s. format en base 64). stock´e dans le fichier maCle. dont voici un exemple $ c a t maCle .o` fichier est un nom de fichier de sauvegarde de la cl´. pem −−−−−BEGIN RSA PRIVATE KEY −−−−− MIICXAIBAAKBgQCveVjLltevTC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXxO 7AfKWpA5g0wFZgZNERIfFYaCnvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvP d8LgBypJHbr6f5MXWqntvzp0Qvg6ddeNpUIrqkkh4uDfHFDWqyrkQUCvKwIDAQAB AoGANchUrfnq28DWy0fE0R+cscvC292Z8jN8vrIBWxEk8iSlKU0om6v+a0g8wlP6 3 gC6V66uxjY7xxdf7SD+/UykVl4PGFymhLtywSdGlgec3tLgBtV3ytJFilAVDBij LzQwUegCO4zt1JWYc6vvaVdNyQSaGIIeYGsNDWEYlOtDSlkCQQDVRn9JS15G8p+H 4Z0PbU9ZQg2L1u9/SD/kELVe3Kx1fdHulxH0v8V2AgPdXA29Nhi+TxUtC+V8CMc2 KXmAvFsHAkEA0qBDmjHMDPwcGaqbQ2lymYQIGlZ5TLQFA98Dey2uE+CB6pmS/ e /Z ilu1IaasuE3vBzXfB /JU7DUkV++JQ7TtvQJBAL2s5dUch2sXqlOhjhpDP/eE7CE6 9WLAsbm2Nmd4YJRZYtQLXPfLeeSapC9BCCMHsnfGQ3H9i4mFEQ6VUi7w1Q8CQAQa pVaS09QI8Y86eM4GdvowzWud9b0d4N8jcFDtIfA3NrDYjzmte8KraMsgEUuCET9F uHPSL/9uRagE/dq44s0CQCMQU4PMqkMtwzCFsV8ZqLmkDPn1binIAwRLYFcsQRDt gTi6rycz3Pk1hCVzBfyMd8zwqpwKmR5FoOXuJEv+mVg= −−−−−END RSA PRIVATE KEY −−−−− 3. pem −t e x t −noout P 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 b p 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 .2 Visualisation des cl´s RSA e La commande rsa permet de visualiser le contenu d’un fichier au format PEM contenant une paire de cl´s RSA. L’option -noout supprime la sortie nore e e malement produite par la commande rsa.

0d : 6 1 : 1 8 : 9 4 : eb : 4 3 : 4 a : 5 9 prime1 : 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 7 prime2 : 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 : bd exponent1 : 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 f exponent2 : 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 : cd coefficient : 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 distine ee e e e guer le modulus. e a $ o p e n s s l r s a −i n maCle .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). Il suffit de mettre l’une des trois options -des.pem. pem −d e s 3 −out maCle . 2 Il 1 openssl 3 . il est possible de chiffrer une paire de cl´s2 . les nombres pree e miers facteurs du modulus. e 3. -des3. Pour cela trois options sont possibles qui pr´cisent e e l’algorithme de chiffrement sym´trique ` utiliser : -des. e n’autorise que deux exposants publics : 65537 (valeur par d´faut) ou 3 obtenu avec ’option -3 e est possible de chiffrer le fichier lors de sa g´n´ration. plus trois autres nombres qui servent ` optimiser l’algorithme de d´chiffrement. a e Exercice 1 : Donnez une explication du choix de la valeur 65537 pour exposant public par d´faut. Avec la commande e e rsa. -idea e e dans la ligne de commande genrsa. l’exposant public (qui par d´faut est toujours 655371 ). e e e e e e e a e Exercice 2 : Avec la commande cat observez le contenu du fichier maCle. Utilisez ` nouveau a la commande rsa pour visualiser le contenu de la cl´. -des3 et -idea. pem w r i t i n g RSA key Enter 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´. l’exposant priv´.

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. Avec la commande rsa visualisez la cl´ publique. La commande dgst permet de le faire. et ` ce titre peut ˆtre communiqu´e ` e a e e a n’importe qui. Le fichier maCle. Pour signer un gros document on calcule d’abord une empreinte de ce document. e e a – le mot de passe prot´geant la cl´ RSA. e Q 2 .6 Signature de fichiers Il n’est possible de signer que de petits documents.pem contient la partie priv´e de la cl´. Pour cela. Signer un document revient ` signer son empreinte. – RIPEMD160 (option -ripemd160). pem −pubout −out maClePublique . Le syst`me de chiffrement sym´trique utilis´ est BlowFish en mode CBC . qui calcule des empreintes de 128 bits. e e Pour d´chiffrer on remplace l’option -encrypt par -decrypt.3. e e – cle est le fichier contenant la cl´ RSA.5 Chiffrement/d´chiffrement de donn´es avec RSA e e On peut chiffrer des donn´es avec une cl´ RSA. Notez le contenu du fichier maClePublique. e ee e e a e – la cl´ priv´e RSA qui a servi ` chiffrer le mot de passe . qui calcule des empreintes de 160 bits. 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). plusieurs fonctions de hachage sont propos´es u e dont – MD5 (option -md5). est VVNUTC1GSUwtUEFD .pem. – fichier sortie est le fichier de donn´es chiffr´. Attention vous devez pr´ciser l’option -pubin. e e puisque seule la partie publique figure dans le fichier maClePublique. il e e faut rajouter l’option -pubin. on utilise l’option -sign de la commande a rsautl $ o p e n s s l r s a u t l −s i g n et pour v´rifier la signature e −i n <empreinte > −i n k e y <c l e > −out <s i g n a t u r e > 4 . cod´ en base 64. e e e $ o p e n s s l r s a −i n maCle . qui calcule des empreintes de 160 bits. Remarquez les marqueurs de d´but et de fin. Envoyez-lui le mot de passe chiffr´ ainsi que le fichier chiffr´. Pour cela vous devez r´cup´rer les fichiers e e e suivants (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. Chiffrez la e e cl´ ou le mot de passe utilis´(e) avec la cl´ publique de votre destinataire (demandez-lui sa cl´ publique e e e e si vous ne l’avez pas). Avec openssl. – SHA1 (option -sha1). Attention. e e e – la cl´ BlowFish a ´t´ d´riv´e ` partir d’un mot de passe dont voici la version chiffr´e . Avec l’option -pubout on peut exporter la partie publique d’une cl´. Le fichier contenant la cl´ doit obligae e toirement contenir la partie priv´e. pem Exercice 3 : Q 1 . et ne peut donc pas ˆtre communiqu´ e e e e tel quel (mˆme s’il est chiffr´).pem. e e Exercice 5 : Il s’agit de d´chiffrer le fichier cryptogram13. 3. e e e 3. Si ce fichier ne contient que la parte publique de la cl´. e Exercice 4 : Chiffrez le fichier de votre choix avec le syst`me sym´trique de votre choix.4 Exportation de la partie publique La partie publique d’une paire de cl´s RSA est publique. $ 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.

e e 4. e e e Outre la cl´ publique du sujet. signature 1 – fichier 2. a e e L’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 e pour la signature. Dans la suite.cnf) peut-ˆtre d´fini qui propose les informations ` apporter dans le certificat avec e e a des valeurs par d´faut. e e e 4. pem −out maRequete . vous verrez comment utiliser e e les cl´s certifi´es pour signer et/ou chiffrer des courriers ´lectoniques. Un fichier e e e de configuration (req. e On ´tablit une requˆte avec la commande req de openssl. Ce fichier est prot´g´ par le mot de passe fourni lors de la g´n´ration.2 Cr´ation d’une requˆte de certificats e e Maintenant que vous disposez d’une cl´ RSA.pem est aussi au format PEM.pem. on suppose nomm´ maCle.pem le fichier contenant votre e e e e paire de cl´s RSA. c n f −new −key maCle . Exercice 6 : Signez le fichier de votre choix. on suppose ce fichier nomm´ maClePublique.$ o p e n s s l r s a u t l −v e r i f y −out <empreinte > −i n <s i g n a t u r e > −pubin −i n k e y <c l e > il reste ensuite ` v´rifier que l’empreinte ainsi produite est la mˆme que celle que l’on peut calculer. pem −−−−−BEGIN CERTIFICATE REQUEST −−−−− MIIB/zCCAWgCAQAwgb4xCzAJBgNVBAYTAkZSMRIwEAYDVQQIEwlOb3JkICg1OSkx GjAYBgNVBAcTEVZpbGxlbmV1dmUgZCdBc2NxMR4wHAYDVQQKExVVbml2ZXJzaXRl IGRlIExpbGxlIDExGTAXBgNVBAsTEExpY2VuY2UgUHJvIERBMkkxGjAYBgNVBAMT EUVyaWMgV2Vncnp5bm93c2tpMSgwJgYJKoZIhvcNAQkBFhlFcmljLldlZ3J6eW5v d3NraUBsaWZsLmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCveVjLltev TC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXxO7AfKWpA5g0wFZgZNERIfFYaC nvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvPd8LgBypJHbr6f5MXWqntvzp0 Qvg6ddeNpUIrqkkh4uDfHFDWqyrkQUCvKwIDAQABoAAwDQYJKoZIhvcNAQEEBQAD 5 . $ c a t maRequete . pui v´rifiez la signature. Puis. e e $ o p e n s s l r e q −c o n f i g r e q . prot´g´e par un mot de passe e e e e e (cf g´n´ration d’une paire de cl´s).1 G´n´ration de la paire de cl´s e e e Exercice 8 : G´n´rez votre paire de cl´s RSA d’une taille de 1024 bits. signature 2 4 Certificats Vous allez maintenant ´laborer un certificat pour votre cl´ publique. Dans la suite. e e e e e Exercice 9 : Cr´ez un fichier ne contenant que la partie publique de votre cl´ RSA (cf Exportation e e de la cl´ publique). un certificat contient un certain nombre d’informations concernant e l’identit´ de son propri´taire : e e – Pays (C). pem Le fichier produit maRequete. e Exercice 7 : Des deux fichiers suivants. vous allez ´tablir une requˆte pour obtenir un certificat. lequel a bien ´t´ sign´ avec la partie priv´e de cette cle ? ee e e – fichier 1. ´ – 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.

.. il vous reste ` contacter une autorit´ de certie a e fication qui vous d´livrera un certificat sign´. pem −t e x t −noout C 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. L’autorit´ de certification P`re Ubu Vous jouerez dans ce TP le rˆle de l’autorit´ de certification.gYEAHOwGNN6A8d4EhjfXCRvC2fhIjt7i6jxfkHKBkHpm2yNBBDHQwiv+O/Y0MeNh I r a+y8KUMjeImsSiH4731sfgA6ycm+6JoDV7n6z8tzN5QMGsw7V3ErduskayKP4T j 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 a t u n C e r t i f . O=U n i v e r s i t e de L i l l e 1 . apr`s avoir proc´d´ (normalement) ` quelques v´rifications e e e e e a e vous concernant.3 Demande de signature de certificat Une fois que vous avez ´tabli une requete de certificat. La cl´ priv´e du sujet e ee e e e y figure–t–elle ? 4. c n f −i n maRequete . e Un certificat produit par openssl est un fichier au format PEM. vous utilisereztous la tr`s notable autorit´ P`re Ubu dont vous trouverez ici le e e e e certificat et la paire de cl´s RSA. e e o e Pour cela il vous faut un certificat d’autorit´ de certification. 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 : de Exercice 10 : Explliquez les diff´rents ´l´ments contenus dans cette requˆte. pem −−−−−BEGIN CERTIFICATE−−−−− . ainsi qu’une paire de cl´s. ST=Nord ( 5 9 ) . L=V i l l e n e u v e d ’ Ascq . Afin de ne pas e e multiplier les autorit´s. −−−−−END CERTIFICATE−−−−− 6 .

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 . En supposant que tous les fichiers se trouvent dans le r´pertoire courant. pem \ −C A f i l e P e r e U b u C e r t i f .4. pem dans laquelle PereUbu.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 .pl. e Cr´ation d’un certificat Pour cr´er et signer un certificat ` partir d’une requˆte maRequete. pem monCertif . e e e e Exercice 12 : Cr´´z un certificat pour votre cl´ publique. il faut disposer du certificat que e e e e l’´metteur a utilis´ pour signer.1 Avec openssl Signature de courriers Vous disposez d’un certificat monCertif.) e Puis contrˆlez le contenu du certificat obtenu avec les options appropri´es de la commande x509. pem −i n k e y maCle .pem e e et vous voulez envoyer un courrier sign´ dont le contenu est dans le fichier blabla. et e e qui atteste de votre adresse ´lectronique. Le mot de passe de P`re Ubu e a e ne devrait pas vous ˆtre inconnu. N´anmoins. p l −t o haha@palotin . la ee e commande x509 invite l’autorit´ certifiante ` donner son mot de passe. (Lors de la signature du certificat. pem −r e q −out monCertif .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 e hexad´cimaux).txt ` l’adresse e a haha@palotin. Pour e e e v´rifier la validit´ d’un certificat.pem. o e V´rification de certificats On peut v´rifier la validit´ d’un certificat avec la commande verify. s i g n e \ −s i g n e r s o n C e r t i f . de signer vos mails. pem 4. ou vers la commande mail. et l’option -days d´termine la dur´e de validit´ du certificat (ici 10 jours). V´rification de courriers sign´s Pour v´rifier un courrier sign´. et d’un certificat qui les accompagne.4 Signature et chiffrement de courriers ´lectroniques e Lorsque vous disposez d’une paire de cl´s publique/priv´e. t x t −t e x t \ −s i g n e r monCertif . ainsi que celui de l’autorit´ ayant ´mis ce certificat. puisqu’il s’agit DU mot du P`re Ubu (celui prononc´ au tout d´but e e e e d’Ubu Roi). il suffit e d’invoquer la commande $ o p e n s s l smime −s i g n −i n b l a b l a . cherchez e e ee e e quelle est la date d’expiration du certificat et la taille de la cl´. pem 7 . 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 e l’option -out par exemple).pem. s r l −CA P e r e U b u C e r t i f . e e a e l’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 . pem −CAkey PereUbuCle . il vous est possible. pem\ −i n maRequete . On invoque la e e e e commande $ o p e n s s l smime − v e r i f y −i n c o u r r i e r . pem\ −from moi@palotin . il est n´cessaire de disposer du certificat de l’autorit´ qui l’a ´mis. et e de recevoir des mails chiffr´s de la part de vos correspondants qui disposent de votre certificat. entre autres choses. le voici cod´ en base 64 bWVyZHJlCg== S’il le faut. ainsi que sa paire de cl´s RSA. e 4. pem −t e x t −noout Exercice 11 : Apr`s avoir r´cup´r´ le certificat de l’autorit´. utilisez la commande openssl e e base64 -d pour le d´coder. d’une cl´ priv´e maCle.

Pour cela passez par le menu s´curit´. u e e e Remarque Lorsqu’on chiffre un courrier ´lectronique. pem \ −name ”EW” −caname ” Pere Ubu” −out monEnveloppe . e V´rifiez maintenant votre certificat. e Pour cr´er une enveloppe PKCS#12 contenant votre certificat. c h i f f r e −r e c i p s o n C e r t i f . Votre certificat n’est pas valide car . pem − c e r t f i l e P e r e U b u C e r t i f . ` un e a destinataire dont on dispose d’un certificat sonCertif.. t x t −t e x t \ −from moi@palotin ... pem \ −i n k e y maCle . puis ` le v´rifier. p l −t o haha@palotin . – ceux des personnes dont vous en avez obtenu un. – ceux de serveurs WEB s´curis´s que vous avez eu l’occasion de rencontrer. 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 . e e Une fois cette enveloppe r´alis´e. mais cette liste ne contient pas le P`re Ubu) e Importation d’un certificat Pour importer votre certificat dans votre base de donn´es.Chiffrement de courriers Pour envoyer un courrier chiffr´. 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 e signataires) et cocher la case concernant l’acceptation de cette autorit´ pour les emails. Vous pouvez alors consulter – vos certificats (a priori aucun). p12 Un mot de passe prot´geant cette enveloppe vous est demand´. e 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 e est d’importer votre certificat et votre cl´ priv´e que vous venez d’obtenir dans la base de donn´es de e e e certificats g´r´es par votre navigateur. e e e Cela r´alis´. Demandez ` le e e a visualiser. ceux des autorit´s de certification que vous connaissez (il y en a plusieurs dizaines normae lement. ou vers la commande mail. il reste ` importer tout cela dans la base de donn´es de certificats e e a e de votre navigateur. Il s’agit d’une norme de fichier adopt´e pour ”ficeler” ensemble un ou e plusieurs certificats et cl´s. puis celui que vous avez utilis´ pour prot´ger l’enveloppe PKCS#12. pem Il est bien videmment possible de rediriger la sortie de la comande pr´c´dente vers un fichier (avec e e l’option -out par exemple). 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 est le certificat de l’´metteur. Un mot de passe vous sera demand´ pour la e e e base de donn´es. e e – et enfin. il faut cr´er e e d’abord une enveloppe PKCS#12. autrement dit que le logiciel du destinataire est en mesure de le faire. votre cl´ priv´e. 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 . ee La base de donn´es de certificats Vous pouvez consulter cette base de donn´es par le menu e e Edition/Preferences.4. vous devez voir maintenant votre certificat dans la liste des votres.. et le certificat de e e e l’autorit´ ayant sign´ le votre. e 8 . a e Acceptation de l’autorit´ P`re Ubu e e . 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 . et sonCertif. il faut s’assurer que le destinataire est en mesure e de le d´chiffrer. par exemple avec du Triple-DES.pem. pem o` maCle.pem est ma cl´ priv´e RSA. e V´rifiez aussi la signature du mail de mercredi dernier. pem −i n k e y maCle . l’autorit´ P`re Ubu n’est pas accept´e par votre navigateur.

ATTENe e e TION. il suffit de faire la mˆme chose. il suffit de cocher la cas ad´quate qui e e e apparaˆ lorsqu’on coche la case s´curit´ (en bas ` gauche) de la fenˆtre de composition du mail. e 9 . vous devez poss´der un certificat valide de votre destinataire. ıt e e a e Envoyer un mail chiffr´ Pour envoyer un courrier chiffr´.Envoyer un courrier sign´ Pour envoyer un courrier sign´.