Objectif : Echanger un document de manière sécurisée avec un ou plusieurs destinataires.
Prérequis
- accès au terminal de l'ordinateur, les opérations se faisant de ligne de commande
- OpenSSL installé sur cette machine
Principe de fonctionnement
Le fichier à sécuriser est crypté par cryptographie asymétrique ou cryptographie à clef publique :
- une clef publique générée par monsieur A qui la partage avec monsieur B qui cryptera son fichier avec
- une clef privée connue que de monsieur A, utilisée pour décrypter le message envoyé par monsieur B
Etape 1 : créer la paire de clés
On utlise des clés de chiffrement RSA 2048bits.
Création de la clef privée :
$ openssl genrsa -out privateKey.pem 2048
A partir de cette clef privée, création d'une clef publique :
$ openssl rsa -in privateKey.pem -pubout -out publicKey.pem
Contenu de cette clef publique :
$ cat publicKey.pem
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6fwD3fKepTVTGWeKofo
G0TyS7eSjLJu7S7AbLJnJRmLP+3cegbG9PYiDgK2Hhmv0MuXejt0GzOaTIRueHAh
EwOpTdrBJxpQYfd+JHzUxiGZz3JuS0Kxl5x6EtjUxv1MQVGHhSBXSaXSrKqxrce5
exZ7RWR9cj5BORP9iDefa3I82COsrYQ3Aw1cFMwVQsCiimRTyoXKsTGGsrzsi7dW
asicLeTVITWPfWDsJabtjXmGiVDxH3l8Nk6AM2Z178Bk24C25JtMZ4a0zOYSNF4B
EiZAJOHfmfZZiw21P/q/OEG1eSCNejY1FByHr+QWtorp5eGUpYOq4Rtp2HVa8O2+
QQIDAQAB
-----END PUBLIC KEY-----
Etape 2 : partage de la clef publique avec les correspondants
Envoi du fichier .pem ou envoi du contenu que le destinaire sauvegardera dans un fichier.
Etape 3 : chiffrement du fichier par le correspondant
Chiffrement à l'aide de la clef publique :
$ openssl pkeyutl -encrypt -pubin -inkey maClePublique.pem -in secret.txt -out secretCrypte.txt
Etape 4 : Décryptage du fichier
A l'aide de la clef privée :
$ openssl pkeyutl -decrypt -inkey maClePrivee.pem -in secretCrypte.txt -out secretDecrypte.txt