Académique Documents
Professionnel Documents
Culture Documents
Une phrase de passe est demandée deux fois pour générer une clé symétrique protégeant l'accès à la
clé.
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:
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)
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.
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.
→ 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"
------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--
$ 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"
------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