Chiffrement des emails
Sécuriser ses communications
Notions théoriques
Pourquoi et comment chiffrer un email ?
Les emails sont un moyen de communication essentiel, mais ils circulent souvent en clair sur Internet, ce qui signifie qu’ils peuvent être interceptés et lus par des tiers malveillants.
Le chiffrement des emails permet de garantir la confidentialité et l’authenticité des messages échangés.
1. Le problème des emails non chiffrés
- Lorsqu’un email est envoyé sans chiffrement, son contenu peut être intercepté par un attaquant à différents points :
- Sur le réseau local (Wi-Fi public, entreprise).
- Sur les serveurs de messagerie (stockage temporaire).
- Lors du transit entre les serveurs.
- Un attaquant peut ainsi lire, modifier ou usurper l’identité de l’expéditeur.
2. Le chiffrement des emails avec la cryptographie asymétrique
Le chiffrement des emails repose sur la cryptographie asymétrique, qui utilise une paire de clés :
- Une clé publique (peut être partagée avec tout le monde).
- Une clé privée (secrète, connue uniquement du propriétaire).
Fonctionnement du chiffrement des emails :
- Le destinataire possède une clé publique.
- L’expéditeur utilise cette clé publique pour chiffrer l’email.
- Seul le destinataire, qui poss ède la clé privée correspondante, peut déchiffrer et lire le message.
3. Les protocoles de chiffrement des emails
Plusieurs technologies permettent de chiffrer les emails :
PGP (Pretty Good Privacy) / GPG (GNU Privacy Guard)
- Utilise la cryptographie asymétrique pour chiffrer et signer les emails.
- Fonctionne avec des logiciels comme GnuPG et des extensions pour les clients mail.
S/MIME (Secure/Multipurpose Internet Mail Extensions)
- Intégré dans certains clients de messagerie comme Outlook et Apple Mail.
- Utilise des certificats X.509 délivrés par une autorité de certification.
4. Signature numérique des emails
En plus du chiffrement, il est possible de signer numériquement un email :
- L’expéditeur signe l’email avec sa clé privée.
- Le destinataire vérifie la signature avec la clé publique de l’expéditeur.
- Cela garantit que l’email n’a pas été modifié et qu’il provient bien de l’expéditeur.
Exemple pratique
Chiffrement et signature d’un email avec GPG
Il est possible de chiffrer et signer un email en utilisant GPG (GNU Privacy Guard), un logiciel libre compatible avec PGP.
1. Générer une paire de clés GPG
Créer une paire de clés pour chiffrer et signer les emails :
gpg --full-generate-key
- Choisir RSA et une taille de 4096 bits.
- Définir une date d’expiration (optionnel).
- Entrer un nom et une adresse email.
- Définir un mot de passe sécurisé.
2. Exporter la clé publique pour la partager
Un destinataire doit posséder la clé publique pour chiffrer un email :
gpg --export -a "nom_utilisateur" > cle_publique.asc
3. Importer la clé publique d’un contact
Pour chiffrer un email destiné à un contact, importer sa clé publique :
gpg --import cle_publique_contact.asc
4. Chiffrer un message
Créer un fichier contenant un message :
echo "Message confidentiel" > message.txt
Chiffrer ce fichier pour un destinataire spécifique :
gpg --encrypt --recipient "email_du_destinataire" message.txt
Un fichier message.txt.gpg est créé et ne peut être lu que par le destinataire.
5. Déchiffrer un message reçu
Le destinataire peut déchiffrer le message avec sa clé privée :
gpg --decrypt message.txt.gpg
6. Signer un email pour garantir son authenticité
Signer un fichier avant de l’envoyer :
gpg --clearsign message.txt
Cela génère un fichier signé message.txt.asc.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
L’objectif de ce TP est de mettre en pratique le chiffrement et la signature des emails en utilisant GPG (GNU Privacy Guard).
Ce TP est divisé en plusieurs étapes détaillées pour apprendre à :
- Générer une paire de clés GPG.
- Exporter et importer des clés publiques.
- Chiffrer un message avant de l’envoyer.
- Déchiffrer un message reçu.
- Signer un message pour garantir son authenticité.
- Vérifier la signature d’un message reçu.
Étape 1 : Générer une paire de clés GPG
Avant de chiffrer ou signer un email, il est nécessaire de disposer d’une paire de clés (une clé publique et une clé privée).
Instructions :
- Ouvrir un terminal.
- Lancer la commande suivante pour générer une paire de clés :
gpg --full-generate-key
-
Sélectionner les options suivantes :
- Type de clé : Choisir RSA et RSA.
- Taille de clé : Entrer 4096 (plus sécurisé).
- Durée de validité : Entrer une durée ou appuyer sur Entrée pour une clé sans expiration.
- Nom et email : Entrer un nom et une adresse email.
- Mot de passe : Définir un mot de passe fort pour protéger la clé privée.
-
Une fois la clé générée, noter l’ID de la clé affiché à la fin.
- La commande
gpg --full-generate-keypermet de créer une paire de clés. - L’option RSA 4096 bits est recommandée pour une meilleure sécurité.
- L’ID de la clé est affiché à la fin et peut être retrouvé avec :
gpg --list-keys
Étape 2 : Exporter et importer des clés publiques
Une clé publique doit être partagée avec les contacts pour qu’ils puissent chiffrer des messages à destination de son propriétaire.
Exporter sa clé publique
- Exécuter la commande suivante en remplaçant
"nom_utilisateur"par l’ID de la clé ou l’email utilisé lors de la création :
gpg --export -a "nom_utilisateur" > cle_publique.asc
- Vérifier que le fichier cle_publique.asc a bien été créé.
- Envoyer ce fichier à un contact ou le publier sur un serveur de clés publiques.