SMIME et Certificats x509
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)
On publie la clé publique.
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