Vous êtes sur la page 1sur 6

Université Abdelmalek Essaadi Module : SSI

Département Génie Informatique Année Universitaire 2021-2022


Filière Ingénieur LSI S5 Pr. A. GHADI

TP : RSA et certificats avec openSSL


1. RSA avec openSSL
→ Voir TP : RSA avec openSSL

1.1 Chiffrement d'un fichier de clés RSA :


Il n'est pas prudent de laisser une paire de clés en clair (surtout la partie privée). Avec la commande
rsa, il est possible de chiffrer une paire de clés 2 . Pour cela trois options sont possibles qui
précisent l'algorithme de chiffrement symétrique à utiliser : -des, -des3 et -idea :

$ openssl rsa −in rsa.pem -des3 - out rsa.pem


writing RSA key
Enter PEM passphrase :
Verifying -Enter PEM passphrase :

Une phrase de passe est demandée deux fois pour générer une clé symétrique protégeant l'accès à la
clé.

Avec la commande cat observez le contenu du nouveau fichier rsa.pem :


$ openssl rsa -in rsa.pem -text -noout

1.2 Exportation de la partie publique


La partie publique d'une paire de clés RSA est publique, et à ce titre peut être communiquée à
n'importe qui. Le fichier rsa.pem contient la partie privée de la clé, et ne peut donc pas être
communiqué tel quel (même s'il est chiffré). Avec l'option -pubout on peut exporter la partie
publique d'une clé.
$ openssl rsa -in rsa.pem -pubout -out ClePublique.pem
----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1LvW2wauy67d1uLiA6ARk177FPiofWL95gmpbgrAVFbPy3F0qqeCR6XVT957
+bvxnPSoo6XPbsBi1pA/6+kMyVMsyVJ58+q87pEVCxBkSI6xdqKOvP2lMxc2r2KT/LXBEaW+lz+UqDm2knE/0giKEOhYLx2/YDDWU84r/
NNOYpS+UH3L6Wnlr9FXpvITXZlGx/e8Esx08XqoZdfxLimWdxOAaownknQhQ+pw2sCemisoVadeOZtWwa8L8LSPEGbQ5HGH2Q7VUIhHO/
04NZjhd7ssndn2XwCExyvYaC+FWEMX9wZgIR9pBvzZDt3xpwLmNDxFFLOlO8AlDdtkRNy5QIDAQAB
-----END PUBLIC KEY-----

$ openssl rsa -in ClePublique.pem -pubin -text -noout


openssl rsa -in ClePublique.pem -pubin -text -noout
RSA Public-Key: (2048 bit)
Modulus:
00:d4:bb:d6:db:06:ae:cb:ae:dd:d6:e2:e2:03:a0:11:93:5e:fb:14:f8:a8:7d:62:fd:e6:09:a9:6e:0a: c0:54:56:cf:cb:71:74:aa:a7:82:47:a5:d5:4f:de:
7b:f9:bb:f1:9c:f4:a8:a3:a5:cf:6e:c0:62:d6:90:3f:eb:e9:0c:c9:53:2c:c9:52:79:f3:ea:bc:ee:91:15:0b:10:64:48:8e:b1:76:a2:8e:bc:fd:a5:33:17:
36:af:62:93:fc:b5:c1:11:a5:be:97:3f:94:a8:39:b6:92:71:3f:d2:08:8a:10:e8:58:2f:1d:bf:60:30: d6:53:ce:2b:fc:d3:4e:62:94:be:50:7d:cb:e9:69:
e5:af:d1:57:a6:f2:13:5d:99:46:c7:f9:1e:f0:4b:31:d3:c5:ea:a1:97:5f:c4:b8:a6:59:dc:4e:01:aa:30:9e:49:d0:85:0f:a9:c3:6b:02:7a:68:ac:a1:56:
9d:78:e6:6d:5b:06:bc:2f:c2:d2:3c:41:9b:43:91:c6:1f:64:3b:55:42:21:1c:ef:f4:e0:d6:63:85:de:ec:b2:77:67:d9:7c:02:13:1c:af:61:a0:be:15:61:
0c:5f:dc:19:80:84:7d:a4:1b:f3:64:3b:77:c6:9c:0b:98:d0:f1:14:52:ce:94:ef:00:94:37:6d:91:13: 72:e5
Exponent: 65537 (0x10001)
Attention vous devez préciser l'option -pubin, puisque seule la partie publique figure dans le fichier
ClePublique.pem.

1.3 Chiffrement/déchiffrement de données avec RSA


On peut chiffrer des données avec une clé RSA. Pour cela on utilise la commande rsautl :
$ openssl rsautl -encrypt -in f -inkey ClePublique.pem -pubin -out fc

➔ f est le fichier des données à chiffrer. Attention, le fichier des données à chiffrer ne doit pas
avoir une taille excessive (ne doit pas dépasser 116 octets pour une clé de 1024 bits).
➔ ClePublique.pem est le fichier contenant la clé RSA. Si ce fichier ne contient que la partie
publique de la clé, il faut rajouter l'option -pubin.
➔ fc est le fichier de données chiffré.

Pour déchiffrer on remplace l'option -encrypt par -decrypt. Le fichier contenant la clé doit
évidemment contenir la partie privée :
$ openssl rsautl -decrypt -in fc -inkey rsa.pem -out f2
Enter pass phrase for rsa.pem:

→ (comparer par la suite le contenu de f et f2)

1.4 Signature de fichiers


Il n'est possible de signer que de petits documents. Pour signer un gros document on calcule
d'abord une empreinte de ce document. La commande dgst permet de le faire :
$ openssl dgst <hachage> -out <empreinte> <fichier_entree>

où hachage est une fonction de hachage. Avec openssl, plusieurs fonctions de hachage sont
proposées dont
1. MD5 (option -md5), qui calcule des empreintes de 128 bits,
2. SHA1 (option -sha1), qui calcule des empreintes de 160 bits,
3. RIPEMD160 (option -ripemd160), qui calcule des empreintes de 160 bits.

Exemple :
$ openssl dgst -md5 -out f_md5 f
$ openssl dgst -sha1 -out f_sha1 f
$ openssl dgst -ripemd160 -out f_ripemd f

Signer un document revient à signer son empreinte. Pour cela, on utilise l'option -sign de la
commande rsautl :
$ openssl rsautl -sign -in f_md5 -inkey rsa.pem -out signature-md5 (il faut la clé privée aussi)

et pour vérifier la signature :


$ openssl rsautl -verify -in signature-md5 -pubin -inkey ClePublique.pem out f_md5-verif

L'option -pubin indique que la clé utilisée pour la vérification est la partie publique de la clé utilisée
pour la signature. (comparer le contenu des deux fichier f_md5 et f_md5-verif)

2. Certificats
Objectif :
• Élaborer un certificat pour la clé publique,
• Utiliser les clés certifiées pour signer et/ou chiffrer des courriers électroniques.

2.1 Génération de la paire de clés :


• Générez une paire de clés RSA d'une taille de 2048 bits, protégée par un mot de passe  :
rsa.pem : le fichier contenant la paire de clés RSA (Ce fichier est protégé par le mot de passe
fourni lors de la génération),
• Créez un fichier ne contenant que la partie publique de la clé RSA(Ce fichier nommé
ClePublique.pem).
2.2 Création d'une autorité de certification
→ Une autorité de certification (ca) permet de signer les demandes de certificats.
Une fois que vous avez établi une demande de certificat, il vous reste à contacter une autorité de
certification qui vous délivrera un certificat signé, après avoir procédé (normalement) à quelques
vérifications vous concernant.

Pour générer ses propres certificats, sans passer par une autorité de certification externe :
$openssl req -new -x509 -key rsa.pem -out ca.crt -days 365
Enter pass phrase for rsa.pem:
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:MA
State or Province Name (full name) [Some-State]:TANGER-ASILA
Locality Name (eg, city) []:TANGER
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CERTIF-LSI
Organizational Unit Name (eg, section) []:LSI
Common Name (e.g. server FQDN or YOUR name) []:certif-lsi.fstt.ac.ma
Email Address []:certif.lsi@fstt.ac.ma

• On indique pour le paramètre "-out" le nom de l'autorité de certification à générer puis la durée de
validité en jour avec le paramètre "-days"
• Cette autorité de certification permettra de signer les futures demandes de certificats auto-signés.
• Cette génération est à faire une seule fois.
• Le Common Name à indiquer ne doit correspondre à aucun nom de domaine ayant besoin d'un
certificat.
• Cette autorité de certification peut-être mis à disposition du public afin d'être intégré dans les
différents navigateurs comme étant une autorité de certification reconnue.

→ Les certificats électroniques respectent des standards spécifiant leur contenu de façon rigoureuse. Les
deux formats les plus utilisés aujourd'hui sont : X.509 et OpenPGP.

2.3 Création d'une demande de certificat


Une demande de certificat peut être utilisée sur un site comme http://www.cacert.org/ afin d'obtenir
un certificat reconnu par une autorité de certification ou afin d'être signé par le certificat ca.crt
généré ci-dessus.
$ openssl req -new -key rsa.pem -out lsi.csr
Enter pass phrase for rsa.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:MA
State or Province Name (full name) [Some-State]:Tanger
Locality Name (eg, city) []:Tanger
Organization Name (eg, company) [Internet Widgits Pty Ltd]:lsi
Organizational Unit Name (eg, section) []:lsi
Common Name (e.g. server FQDN or YOUR name) []:lsi.fstt.ac.ma
Email Address []:contact@lsi.ac.ma
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: xxx
An optional company name []:
• La demande "lsi.csr" peut ensuite être transmise à l'autorité de certification qui fournira par
la suite le certificat résultant.
• Le Common Name à indiquer doit correspondre au nom de domaine pour lequel vous
souhaitez un certificat.

2.4 Génération du certificat final


$openssl x509 -req -in lsi.csr -out lsi.pem -CA ca.crt -CAkey rsa.pem -CAcreateserial -
CAserial ca-lsi.srl -days 90
Signature ok
subject=C = MA, ST = Tanger, L = Tanger, O = lsi, OU = lsi, CN = lsi.fstt.ac.ma,
emailAddress = contact@lsi.ac.ma
Getting CA Private Key
Enter pass phrase for rsa.pem:

→ L'option -CAcreateserial est à utiliser seulement la première fois. Ceci va générer un identifiant
(ca-lsi.srl). Lors des prochaines certification (pour renouvellement ou pour d'autres domaines)
l'identifiant, contenu dans le fichier ca.srl, sera incrémenté à l'aide de l'option -CAserial ca-lsi.srl
$ openssl smime -sign -in test.txt -text -signer lsi.pem -inkey rsa.pem -from test1@fstt.ac.ma -to
test2@fstt.ac.ma -subject "test certif"
Enter pass phrase for rsa.pem:
To: test2@fstt.ac.ma
From: test1@fstt.ac.ma
Subject: test certif
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha-256"; boundary="----
B67B2F00F7E224EA58893739701D6E35"

This is an S/MIME signed message

------B67B2F00F7E224EA58893739701D6E35
Content-Type: text/plain

Fst LSI

------B67B2F00F7E224EA58893739701D6E35
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"

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
fjSMU3CdkGn7PqUxhOQ==
------B67B2F00F7E224EA58893739701D6E35--

2.5 Signature et chiffrement de courriers électroniques :


Lorsque vous disposez d'une paire de clés publique/privée, et d'un certificat qui les accompagne, et
qui atteste de votre adresse électronique, il vous est possible, entre autres choses, de signer vos
mails, et de recevoir des mails chiffrés de la part de vos correspondants qui disposent de votre
certificat.

2.5.1 Signature de courriers


Vous disposez d'un certificat lsi.pem, d'une clé privée rsa.pem et vous voulez envoyer un courrier
signé dont le contenu est dans le fichier test.txt à l'adresse test2@fstt.ac.ma. En supposant que tous
les fichiers se trouvent dans le répertoire courant, il suffit d'invoquer la commande :

$ openssl smime -sign -in test.txt -text -signer lsi.pem -inkey rsa.pem -from test1@fstt.ac.ma -
to test2@fstt.ac.ma -subject "test certif"
ghadi@debian:~$ openssl smime -sign -in test.txt -text -signer lsi.pem -inkey rsa.pem -from
test1@fstt.ac.ma -to test2@fstt.ac.ma -subject "test certif"
Enter pass phrase for rsa.pem:
To: test2@fstt.ac.ma
From: test1@fstt.ac.ma
Subject: test certif
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha-256"; boundary="----
FCE6E53D92BDB893AAA8946BA5216D19"

This is an S/MIME signed message

------FCE6E53D92BDB893AAA8946BA5216D19
Content-Type: text/plain

Fst LSI

------FCE6E53D92BDB893AAA8946BA5216D19
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"

MIIGtwYJKoZIhvcNAQcCoIIGqDCCBqQCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGgggOxMIIDrTCCApUCFDq9PCgyW
8429hsKLCvcwrZlENnYMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYDVQQGEwJNQTEVMBMGA1UECAwMVEFOR0VSLUFTSUxBMQ
8wDQYDVQQHDAZUQU5HRVIxEzARBgNVBAoMCkNFUlRJRi1MU0kxDDAKBgNVBAsMA0xTSTEeMBwGA1UEAwwVY2VydGlmLWx
zaS5mc3R0LmFjLm1hMSQwIgYJKoZIhvcNAQkBFhVjZXJ0aWYubHNpQGZzdHQuYWMubWEwHhcNMjExMjE1MjEwMzAxWhcNMjIwMz
E1MjEwMzAxWjCBhjELMAkGA1UEBhMCTUExDzANBgNVBAgMBlRhbmdlcjEPMA0GA1UEBwwGVGFuZ2VyMQwwCgYDVQQKDANs
c2kxDDAKBgNVBAsMA2xzaTEXMBUGA1UEAwwObHNpLmZzdHQuYWMubWExIDAeBgkqhkiG9w0BCQEWEWNvbnRhY3RAbHNpLm
FjLm1hMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1LvW2wauy67d1uLiA6ARk177FPiofWL95gmpbgrAVFbPy3F0qqeCR6
XVT957+bvxnPSoo6XPbsBi1pA/6+kMyVMsyVJ58+q87pEVCxBkSI6xdqKOvP2lMxc2r2KT/LXBEaW+lz+UqDm2knE/0giKEOhYLx2/
YDDWU84rNNOYpS+UH3L6Wnlr9FXpvITXZlGxke8Esx08XqoZdfxLimWdxOAaownknQhQ+pw2sCemisoVadeOZtWwa8L8LSPEGbQ5HGH2
Q7VUIhHO04NZjhd7ssndn2XwCExyvYaC+FWEMX9wZgIR9pBvzZDt3xpwLmNDxFFLOlO8AlDdtkRNy5QIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQARQKD6L3cKnK6gs4w58/9CBvk15F3lcOWEQT7lWbWbdda7JvF3VdbNGqjnCdENOZGYYQNJuUmcZZKm0bio7hwR+EaU
S3QOIbDfvug8skMTp5dWWLOmxnneOKabRhIkM+xXmaKokujJW4f5wdT+wDBAMl0TV9koYOeAyPK6fgUD8JS8bkcpW6aIF35E2cTLkxfkH
ApTf2rZS6ewds+ZHR+cSr6bA+Z4tgYsZEY6AV9AwdoE+84IwWEGdDbls4GunEut+Uk71719wdYWFUydtzVOaezurBl7JA1CWCj7Aifd3ryN1
QkzetFdKQ2F+HKyNEjULVtXNq0qkCCiVuMYICyjCCAsYCAQEwgbcwgZ4xCzAJBgNVBAYTAk1BMRUwEwYDVQQIDAxUQU5HRVItQV
NJTEExDzANBgNVBAcMBlRBTkdFUjETMBEGA1UECgwKQ0VSVElGLUxTSTEMMAoGA1UECwwDTFNJMR4wHAYDVQQDDBVjZXJ
0aWYtbHNpLmZzdHQuYWMubWExJDAiBgkqhkiG9w0BCQEWFWNlcnRpZi5sc2lAZnN0dC5hYy5tYQIUOr08KDJbzjb2GwosK9zCtmUQ
2dgwDQYJYIZIAWUDBAIBBQCggeQwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjExMjIyMjAzNTAz
WjAvBgkqhkiG9w0BCQQxIgQgDZR9UMprb7SAF4a1m7LeHY0GtFWMYM5w1uxYeIjXZwweQYJKoZIhvcNAQkPMWwwajALBglghkgBZQ
MEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUA
wBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwDQYJKoZIhvcNAQEBBQAEggEAq1Sn3efRw4YLOjs3nmxxbihef39GOOxmDGHWKeXH55et
OWq99Ryz05J2Kcc2nMFFCVl0siPcJTDBsUcXt8t1s0ep8aephIURtznE6hYVUF1+2dHtqvIC3gYlZ1L68HzjWAS2nNyB5iztONZMOAFbzzRItQ
N6U1IeS86oFZmyGqsibVlU3U5uenQIbYbZpJm1axmqydS97bfH9rKZOt1qRwTfZ7S0XJTFMjikJUn+vV5dTbt+j3Be2vH2DuMsJEyg1cELXbm+
9K4kdOIAm/yU5qpzi2sfc03DAId/bqtszrt++xgrAwKaCWi+CGF8Lr8Ir0UUNck+/ojaT8e7tQ==
------FCE6E53D92BDB893AAA8946BA5216D19--
2.5.2 Chiffrement de courriers
Pour envoyer un courrier chiffré, par exemple avec du Triple-DES, à un destinataire dont on dispose
d'un certificat lsi.pem, il suffit d'invoquer la commande :

$ openssl smime -encrypt -in test.txt -text -from test1@fstt.ac.ma -to test2@fstt.ac.ma -subject "test
certif" -des3 lsi.pem
To: test2@fstt.ac.ma
From: test1@fstt.ac.ma
Subject: test certif
MIME-Version: 1.0
Content-Disposition: attachment; filename="smime.p7m"
Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
Content-Transfer-Encoding: base64

MIICQwYJKoZIhvcNAQcDoIICNDCCAjACAQAxggHUMIIB0AIBADCBtzCBnjELMAkGA1UEBhMCTUExFTATBgNVBAgMDFRBTkdFUi1
BU0lMQTEPMA0GA1UEBwwGVEFOR0VSMRMwEQYDVQQKDApDRVJUSUYtTFNJMQwwCgYDVQQLDANMU0kxHjAcBgNVBAMMF
WNlcnRpZi1sc2kuZnN0dC5hYy5tYTEkMCIGCSqGSIb3DQEJARYVY2VydGlmLmxzaUBmc3R0LmFjLm1hAhQ6vTwoMlvONvYbCiwr3MK2Z
RDZ2DANBgkqhkiG9w0BAQEFAASCAQCgNQoylqpcJmW0BLsf5Lk77bxLpqxstgg+l9fmJK2gP1X5zWYHUsPkiYkEcP70DFfJQ7Gj7R18yMvr
Hu00sWP7fxnBeHaM909Ghk4qjMI1wCVAtayUqodUdntLq2VcezvbODN90NQR50U35d5nyk26Sq1yci7Lyz7nCQTrPrerQN99SnnpdVpEEYBZY
KKcIyU7QjCKjbPZ7WOzTCpP0xKd2KqCvSyhZ+OcW8beXMe5g03xQCTtQFR8YUvzbFl6kRyda39WQe+b5EPYULCHkuiLDAVKMRcIeQo1Itb
RSCDzw2V6L98QabbjYJOAu0FayAdPRiKBkByOQEdtMFMGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIbRUKFzqojniAMGxSLLS6dqS7dkH
quQfscgevq0bR/9IIeTJIQZFkl0nhAhJUmh/kjr2FzPVO17RVg==

Il est bien évidemment possible de rediriger la sortie de la commande précédente vers un fichier
avec l'option -out par exemple :
$ openssl smime -encrypt -out test-c.text -in test.txt -text -from test1@fstt.ac.ma -to test2@fstt.ac.ma -
subject "test certif" -des3 lsi.pem

2.5.3 Déchiffrement de courriers


Pour déchiffrer un courrier chiffré :
$ openssl smime -decrypt -in test-c.text -recip lsi.pem -inkey rsa.pem
Enter pass phrase for rsa.pem:
Content-Type: text/plain

Fst LSI (Contenu du fichier test.txt)

→ où rsa.pem est ma clé privée RSA, et lsi.pem est le certificat de l'émetteur.

Vous aimerez peut-être aussi