La sécurisation des mails

via chiffrement et authentification

Introduction :

Le chiffrement consiste à brouiller l'intermédiaire d'un message entre l'expéditeur et le destinataire en appliquant un algorithme particulier. Bien entendu, le destinataire doit connaitre la méthode de chiffrement/déchiffrement utilisée pour le traduire.

Sélection_2001

Cette technique n'existe pas d'aujourd'hui. L'empire Romain, appliquait une méthode simple de chiffrement symétrique qui consistait à faire déplacer les lettres de l'alphabet d'un rang n. (si n = 4 A -> E et donc B -> F). Bon, c'est vrai aujourd'hui un enfant au CP pourrait facilement déchiffrer le message si on lui explique comment ça fonctionne. Mais à l'époque, le taux d'analphabétisme était important et donc rendait cette technique redoutable.   Depuis, les techniques de chiffrements n'ont pas cessés de se perfectionner. Comme par exemple la machine Egnima utilisée par les Nazis pendant la seconde guerre mondiale pour brouiller leurs transmissions. (Pour en savoir plus, voir le film "The Imitation Game", le film avec Cumberbatch sortis récemment...) De nos jours, nos appareils pourraient théoriquement décrypter en 2 secondes un message de 500 pages provenant de la machine allemande citée plus haut. De ce fait il faut utiliser des solutions beaucoup plus efficaces pour empêcher l'accès aux messages transmis numériquement.   Mais pourquoi faudrait il faire ça de nos jours ? C'est très simple, par exemple, la NSA et les gouvernements et autres qui se permettent de violer certaines conventions internationales pour nous observer tel un big brother. Les protocoles utilisés aujourd'hui pour le chiffrement symétrique sont : le A5/1, le E0 ou encore le RC4 (moins utilisé).

Le chiffrement asymétrique :

À l'opposé du chiffrement symétrique consistant à utiliser la même technique pour chiffrer et déchiffrer, le chiffrement asymétrique utilise 2 "clés" de chiffrement. Une qui est publique et une qui est privée. Pour simplifier son explication, je vais prendre un exemple. : En tant de guerre, Philippe doit envoyer son rapport à Bernadette. Mais il n'a pas confiance à l'intermédiaire, qui pourrait être un traitre. Mais comment peut il être sûr que ce dernier ait lu le message et qu'il en a transmit le contenu à l'ennemi ? Il se rappelle qu'il a en sa possession une boite ouverte ne pouvant pas être déverrouillé uniquement, si on utilise un certain code. Ce dernier, seule Bernadette connait le code. Philippe va donc mettre le rapport dans le boite. Il fermera cette dernière et en vérifiant que le système de code fonctionne bien avant de la passer à l'intermédiaire pour qu'il l'envoie à Bernadette. Ce dernier ne pourra pas ouvrir la boite et donc lire le contenu du message... Pour les mails c'est le même fonctionnement. :

 

Sélection_001

"A" fabrique 2 clés. Une, publique (la noire) qu'il donne à "B" et une privée (la bleue) qu'il garde pour lui sans en parler à qui que ce soit.

Sélection_002

"B" va écrire un message qu'il va ensuite chiffrer en utilisant la clé publique de A et envoie le texte crypté."A" pourra ensuite déchiffrer le message grâce à cette clé.

C'est généralement l'algorithme RSA (acronyme des noms des 3 inventeurs de ce dernier)  

PGP et OpenPGP :
 
Pretty Good Privacy (pour Très bonne intimité) est un programme informatique de chiffrement et déchiffrement de données qui assurre une intimité via chiffrement et une authentification pour des communications de données. Il est utilisé pour chiffrer des mails, des textes, des fichiers et des dossier ainsi que des partitions de disques durs. Comme d'autres programmes de ce genre, il suit le standard OpenPGP pour chiffrer les données. OpenPGP est une normalisation d'Internet et est en cours de développement. Sa spécification actuelle est la RFC 4880. Cest un format de chiffrement pour l'échange sécurisé de données. Elle provient du logiciel PGP.

GNU Privacy Guard :

Souvent abrégé en GNUPG, voir en GPG est un logiciel de chiffrement à clé publique utilisant le format de chiffrement OpenPGP et qui est distribué sous licence GPL. À la base, il fonctionne en lignes de commandes mais, il existe aussi un plugin du nom d'Enigmail (référence à Enigma ?) pour navigateurs (Firefox, Chrome...) et client lourds de messagerie (thunderbird, KDEmail..) lui donnant une interface graphique. Le plugin Mailvelope permet d'effectuer le même travail que GNUPG, c'est a dire exploiter le format openPGP directement dans un client web mail comme par exemple gmail.com.  

Installation :
Même s'il est nativement installé sous plusieurs distributions Linux, il vaut mieux en être sûr.  


Gnupg_logo.svg

Debian et dérivés :

apt-get install gnupg2
Archlinux :
pacman -S gnupg pacman -S pinentry
Maintenant il faut faire un choix, celui qui consiste à choisir l'endroit de destination de la clé publique et privé. Il y a plusieurs solutions. Mais elles ont toutes un ou plusieurs inconvénients :
 
  • Sur son disque dur : C'est l'endroit par défaut. Généralement placé dans un /home/USER/.gnupg. Mais cette solution est exposée aux piratages. Même s' il y a un mot de passe sur le dossier de la clé qui limite l'accès.


  • Sur une clé USB : Endroit le plus protégé au monde, mais il y a des risques de pertes/de vols et de copie de fichiers lorsqu'on la passe à quelqu'un.


  • Sur une clé USB qui est cachée quelque part chez soit : Si la police débarque chez vous avec un mandat, vous serez dans l'obligation de la leur donner...


  • Sur une clé USB cachée chez un parent : Il faut qu'il soit digne de confiance. Le problème est qu'à chaque fois qu'il vous faudra la clé il faudra faire le déplacement et déranger la personne.


  • Sur une clé USB se trouvant dans un coffre-fort caché derrière un poster ou un tableau : Ça coute cher et il faut un mur adapté pour ça.


  • Dans un dossier chiffré sur un vps distant (il y'en a à 5€/mois ici https://www.ovh.com/fr/vps/ ;-) )


Si vous souhaitez transférer votre dossier vers un support amovible il suffit juste de taper :
export GNUPGHOME="/endroit/où/est/montée/la/clé"
Pour créer une clé il suffit de taper :
gpg - -full-gen-key
Et d'y suivre les instructions.

Sélection_004



Pour plus de détails sur l'utilisation de ce programme les documentations Archlinux et Ubuntu sont là pour ça ! ;-)

L'authentification des mails :

Imaginez qu'un jour, lorsque vous ouvrez votre boîte mail, vous tombez sur un courrier portant l'adresse 'françois.hollande@elysée.fr' sans réfléchir, vous l'ouvrez et boom, un virus ce déploie sur ordinateur en moins de deux secondes. Vous me direz "c'est impossible, seul l'Elysée peut envoyer un mail avec ce genre d'adresse et ils ne s'amuseraient pas à faire ce genre de canulars à deux balles". Et pourtant il y a une quinzaine d'années, cela aurait pu être le cas. En effet, le protocole SMTP (protocole de communication permettant de transférer des mails vers des serveurs de messagerie électronique.) ne possède pas de système d'authentification. Pour faire simple, n'importe qui peut se faire passer pour n'importe quoi. Puis dans les années 2005, suite à l'accroissement des mails (et des techniques de piratages liées) SPF et DKIM sont apparus pour y remédier.

SPF :

Le Sender Policy Framework vérifie le nom de domaine de l'expéditeur d'un mail en inscrivant dans le DNS, un fichier texte indiquant les adresses IP autorisées et/ou interdites, à envoyer des mail par rapport au domaine étudié. Pour faire simple, à la réception du mail, le serveur va effectuer une requête auprès du serveur DNS pour vérifier dans un fichier texte si le serveur mail de l'expéditeur est considéré comme serveur de confiance ou non et d'ensuite orienter le message vers la boite de réception, le spam ou la poubelle (dépend du service mail)

Sélection_005

Pendant l'identification, le receveur vérifira quelque chose de ce genre sur le serveur DNS

patate@nomdedomainealéatoire.bzh IN TXT "v=spf1 a mx ip4:193.251.94.28 -all"
Les petits inconvéniants de SPF :
  • Très peu utilisé, donc impossible de "tagger"(signer) quelque chose comme "spam" si rien n'est référencé dans le TXT provenant du DNS de l'émetteur

  • Non prise en charge des mails renvoyés (forward)

  • N'est pas protégé contre les serveurs à relais ouverts utilisants du SPF (cf : l'attaque par relais)


DKIM :

Le DomainKeys Identified Mail est un système ayant pour principe que l'expéditeur inscrive dans l'entête du mail une signature électronique chiffrée de façon que le serveur de réception soit en mesure de vérifier la source et l'intégrité du message. Au moment de la réception, le serveur vérifiera la signature (ou tag) via la clé publique de l'expéditeur. Cette dernière aura été publiée auparavant par le serveur de l'expéditeur dans une "zone DNS" dédiée. Si la signature du message coïncide, alors le contenu et l'origine sont considérés comme "Authentique", il vérifiera que c'est bien la clé privée de l'expéditeur qui a générée la signature du message. Le message pourra donc aller dans la boite de réception. Si ce n'est pas le cas, il sera supprimé ou envoyer chez les spams. Schema d'explications :

Sélection_008

Les problèmes de DKIM :

  • Très peut utilisé, donc très peu de mail signés...

  • Toutes modifications du message comme par exemple l'analyse d'un antivirus changera la signature et la rendra invalide, ce qui mettra le message dans la catégorie des "refusés"

  • Augmentation de la charge de traitement dûau fait que le serveur mail va devoir vérifier chaque signature de chaque message


La conclusion :

Le chiffrement des mail peut être très utile et très intéressant à certains moments et les systèmes de chiffrements asymétriques, sont pour le moment les plus fiables. Cependant, le fait que DKIM et SPF sont très peu utitilisés dans le monde prouve que ces techniques ne sont pas à porter du néophyte moyen. Même s'il existe des plugins pour navigateurs et clients lourds. L'exemple de GnuPG qui nécessite une certaine maitrise de Linux en ai la preuve. De plus, les expéditeurs de spams peuvent contourner facilement SPF (et DKIM si ce dernier n'est pas mis en place dans le serveur web...). Pour faire simple, si vous devez envoyer à votre patron un mail ayant pour contenu quelque chose de secret défense, les techniques de chiffrements et d'authentifications sont les bienvenues au contraire, si c'est juste pour envoyer un truc à votre grand-mère oubliez !

Petite vidéo qui résume la chose :