« SMIME et Certificats x509 » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
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