« SMIME et Certificats x509 » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
| Ligne 13 : | Ligne 13 : | ||
On publie la clé publique. | On publie la clé publique. | ||
=== La clé privée === | |||
On a un fichier "pem" qui ressemble à :<syntaxhighlight lang="pem"> | |||
-----BEGIN PRIVATE KEY----- | |||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxrRCujF5V1/TK | |||
jAcZkkoyQTWEgqMC1cZ1+RNLg7mEG7nkCMbo+6e2viwxc53r0Lji4BdCxu1BINeb | |||
BAjGjvjssp7npldvgZ443IdS2mz7o+mArLvPIixS93kQUX2SGdu1M8YeoiHQIbSj | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
............. PLEIN D'AUTRES LIGNES ............................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
................................................................ | |||
J3YzhJwVwH6fZPvF+2tm6lBh7vXcOlv+SuRWPkrcyBk5C7hCdKJFQNNer0+RxGjo | |||
5MmTahxEXuS7CxLrcUgQrAW0E0cnxby4rUcF3P8CgYEAhqI+OVDbzNATfbQ+k+Ny | |||
LVpUnu7aI2CPQQtSW9d7QULa8mB2hW1+pOvrW6a1KOEPtKK259g8ncNhmWIMCtO7 | |||
Z4KCimgiAhdPdgQCKDIh4x8KeIO+GseBiPIuxSBl9yba3Lmi4nqCD8b5iZIKLd+M | |||
aPQ1NYXpsjeKia/Dop8h62Y= | |||
-----END PRIVATE KEY----- | |||
</syntaxhighlight>Pour comprendre ce qu'il y a dedans:<syntaxhighlight lang="bash"> | |||
openssl rsa -in privatekey.pem -text -noout | |||
</syntaxhighlight>Qui nous donne les détails. | |||
=== Clé publique === | |||
Elle est plus courte que la privée :<syntaxhighlight lang="pem"> | |||
-----BEGIN CERTIFICATE----- | |||
MIIC4zCCAcugAwIBAgIUL/ptus3TsD6mJUTmtQCwBbANsgYwDQYJKoZIhvcNAQEL | |||
BQAwADAgFw0yNTA4MDUwNzE0NTJaGA8yMjk5MDUyMTA3MTQ1MlowADCCASIwDQYJ | |||
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALGtEK6MXlXX9MqMBxmSSjJBNYSCowLV | |||
xnX5E0uDuYQbueQIxuj7p7a+LDFznevQuOLgF0LG7UEg15sECMaO+OyynuemV2+B | |||
................................................................ | |||
................. ICI AUSSI DES LIGNES ......................... | |||
................................................................ | |||
JVO84whlr3qYTbiC2tXlid3yK5h6MV3WDwcPO0VVuTEj9YhLJBQxlBcCAwEAAaNT | |||
MFEwHQYDVR0OBBYEFJBptvNDglo7LCtD6Apl0vq63YK/MB8GA1UdIwQYMBaAFJBp | |||
tvNDglo7LCtD6Apl0vq63YK/MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL | |||
A/8l7V8Jtq+h6+G+Dyr4afVPZ7x5w8agRv5KvHaWUOVU2JUKJQrVgmTI0XlXWZ2d | |||
GbNVxSqegOnQRAIbd6e2fjcl4s8D09K5xwmBizW6EVFmbUeaUTHYs+c4MiZAb/T6 | |||
S6ECj7ukn/z9jtM6uTnbc+9yr6XWooABQxHknvxZACdbd4S7qdniNd/iPTzovt0Y | |||
j20LS6GSQzj41jqYxyT2N1syCP4ZHQI= | |||
-----END CERTIFICATE----- | |||
</syntaxhighlight> | |||
== Chiffrage == | == Chiffrage == | ||
Version du 5 août 2025 à 11:30
Le protocole X.509 permet de générer des fichiers chiffrés dont la taille est supérieure aux limites des algorithmes asymétrique type RSA.
En pratique on génère une paire de clés en RSA, on choisit une clé symétrique au hasard (RK) on la chiffre avec RSA. Ensuite on chiffre le gros fichier avec AES et la clé RK. smime.permet de "packager" la clé RZ chiffrée et le fichier chiffré.
Le destinataire possédant l'autre clé de la paire RSA déchiffre la clé RZ et s'en sert pour déchiffrer le gros fichier.
Openssl sait faite tout ça en une commande.
Création des "bi clés"
openssl req -x509 -nodes -days 100000 -newkey rsa:2048 -keyout privatekey.pem -out publickey.pem -subj '/'
On crée une paire de clé dont la date d'expiration sera dans 100000 jours (273 ans c'est un exemple)
On publie la clé publique.
La clé privée
On a un fichier "pem" qui ressemble à :
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxrRCujF5V1/TK
jAcZkkoyQTWEgqMC1cZ1+RNLg7mEG7nkCMbo+6e2viwxc53r0Lji4BdCxu1BINeb
BAjGjvjssp7npldvgZ443IdS2mz7o+mArLvPIixS93kQUX2SGdu1M8YeoiHQIbSj
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
............. PLEIN D'AUTRES LIGNES ............................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
J3YzhJwVwH6fZPvF+2tm6lBh7vXcOlv+SuRWPkrcyBk5C7hCdKJFQNNer0+RxGjo
5MmTahxEXuS7CxLrcUgQrAW0E0cnxby4rUcF3P8CgYEAhqI+OVDbzNATfbQ+k+Ny
LVpUnu7aI2CPQQtSW9d7QULa8mB2hW1+pOvrW6a1KOEPtKK259g8ncNhmWIMCtO7
Z4KCimgiAhdPdgQCKDIh4x8KeIO+GseBiPIuxSBl9yba3Lmi4nqCD8b5iZIKLd+M
aPQ1NYXpsjeKia/Dop8h62Y=
-----END PRIVATE KEY-----
Pour comprendre ce qu'il y a dedans:
openssl rsa -in privatekey.pem -text -noout
Qui nous donne les détails.
Clé publique
Elle est plus courte que la privée :
-----BEGIN CERTIFICATE-----
MIIC4zCCAcugAwIBAgIUL/ptus3TsD6mJUTmtQCwBbANsgYwDQYJKoZIhvcNAQEL
BQAwADAgFw0yNTA4MDUwNzE0NTJaGA8yMjk5MDUyMTA3MTQ1MlowADCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALGtEK6MXlXX9MqMBxmSSjJBNYSCowLV
xnX5E0uDuYQbueQIxuj7p7a+LDFznevQuOLgF0LG7UEg15sECMaO+OyynuemV2+B
................................................................
................. ICI AUSSI DES LIGNES .........................
................................................................
JVO84whlr3qYTbiC2tXlid3yK5h6MV3WDwcPO0VVuTEj9YhLJBQxlBcCAwEAAaNT
MFEwHQYDVR0OBBYEFJBptvNDglo7LCtD6Apl0vq63YK/MB8GA1UdIwQYMBaAFJBp
tvNDglo7LCtD6Apl0vq63YK/MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
A/8l7V8Jtq+h6+G+Dyr4afVPZ7x5w8agRv5KvHaWUOVU2JUKJQrVgmTI0XlXWZ2d
GbNVxSqegOnQRAIbd6e2fjcl4s8D09K5xwmBizW6EVFmbUeaUTHYs+c4MiZAb/T6
S6ECj7ukn/z9jtM6uTnbc+9yr6XWooABQxHknvxZACdbd4S7qdniNd/iPTzovt0Y
j20LS6GSQzj41jqYxyT2N1syCP4ZHQI=
-----END CERTIFICATE-----
Chiffrage
C'est donc le partenaire auquel on a envoyé la clé publique qui va chiffrer le fichier qu'il désire nous envoyer.
openssl smime -encrypt -aes256 -in largefile.txt -binary -outform DEM -out largefile.txt.cry publickey.pem
Déchiffrage
Notre partenaire va nous envoyer le fichier. On le déchiffre par:
openssl smime -decrypt -in largefile.txt.cry -binary -inform DEM -inkey privatekey.pem -out mylargefile.txt
Pour info, pour m'envoyer un message ma clé publique est ici : Utilisateur:Jpinon