Sécuriser ses envois de courriers
Le courrier électronique, tel qu’il est spécifié dans les RFC 5321 et RFC 5322, ne fournit aucune authentification de l’expéditeur du mail. Un émetteur de courrier peut toujours prétendre être qui il veut, vous ne pouvez pas empêcher cela. Les attaques basées sur l’envoi d’emails sont de plus en plus nombreuses et de plus en plus ciblées. Pour exemple le phishing désigne une attaque qui consiste à obtenir des données confidentielles. En se faisait passer pour une personne qu’elle n’est pas ( organisme d’état, banque, site marchand, etc.), l’attaquant pourra réaliser des virements, envoyer massivement du spam, etc.
Découvrez comment sécuriser vos envois de courriers électroniques avec le SFP, le DKIM et le DMARC dans cet article.
Définition
Le SPF vise à diminuer cette facilité d’usurpation d’identité en permettant à un propriétaire de nom de domaine de déclarer quelle(s) adresse(s) IP sont autorisées à envoyer du courrier pour ce domaine.
La Sender Policy Framework, ou SPF, est une norme autoritative permettant de faire le lien entre un nom de domaine et une adresse email. Elle consiste à définir le ou les expéditeur(s) autorisé(s) à envoyer des emails avec un domaine donné. Elle permet ainsi aux clients de messagerie (Gmail, Outlook, etc.) de vérifier que l’email entrant d’un domaine vient d’un hôte autorisé par l’administrateur de ce domaine.
Le DomainKeys Identified Mail, ou DKIM, est un protocole d’authentification permettant de faire le lien entre un nom de domaine et un message. Le protocole permet de signer votre email avec votre nom de domaine. L’objectif du protocole DKIM n’est pas uniquement de prouver que le nom de domaine n’a pas été usurpé, mais aussi de vérifier que le message n’a pas été altéré durant sa transmission.
Le Domain-based Message Authentication, Reporting and Conformance, ou DMARC, est un protocole complémentaire à SPF et DKIM qui permet aux détenteurs de domaines d’indiquer aux FAI (Fournisseurs d’Accès à Internet) et clients de messagerie quelles actions doivent être entreprises lorsqu’un message signé de leur domaine n’est pas formellement identifié par une norme SPF ou DKIM. DMARC ne permet pas de savoir si un message est frauduleux ou ne l’est pas. DMARC nécessite que le message soit conforme aux normes SPF et DKIM.
SPF
Le SPF dépend donc du DNS. Son principe est d’ajouter à la zone DNS (à votre nom de domaine) un enregistrement de type TXT, qui contient la liste des adresses IP qui peuvent envoyer du courrier pour la zone DNS.
Si votre serveur de messagerie envoie et reçoit les mails, un enregistrement comme « v=spf1 mx -all » signifiera que seuls les serveurs qui reçoivent les courriers pourront en émettre et le reste sera exclu.
Il est à noter que SPF n’authentifie que le domaine et non la personne qui émet un mail.
Étudions un cas pratique d’enregistrement SPF. Supposons que vous hébergez un domaine : domain.com. Votre enregistrement SPF est le suivant :
domain.com. IN TXT « v=spf1 mx ip4:1.1.1.1/32 ip4:2.2.2.2 include:otherdomain.com -all »mx : vous autorisez les serveurs répertoriés comme MX à envoyer des e-mails pour le domaine domain.com
ip4:1.1.1.1 ip4:2.2.2.2 : adresses IP au format CIDR qui livrent ou relaient le courrier pour ce domaine
include:otherdomain.com : le domaine otherdomain.com peut livrer ou relayer du courrier pour le domaine domain.com
-all : tout mail ne respectant pas la règle sera rejeté (Fail).
Bon à savoir : il existe d’autres options pour le spf.
Sur Linux, l’installation se fait grâce au paquet postfix-policyd-spf-python.
DKIM
Le DKIM est donc un mécanisme permettant d’authentifier le domaine dans l’adresse électronique. Il permet au registraire de certifier que le domaine du mail que vous recevez lui appartient bien et que vous pouvez répondre à ce mail tout en ayant confiance à ce domaine.
Pour cela DKIM va utiliser une signature cryptographique. Vous allez donc générer une paire de clefs privée/publique.
La clef privée sera installée sur votre serveur d’envoi de mail et la clef publique dans une entrée TXT de votre DNS.
Il s’agit, pour résumer d’ajouter une signature à tous vos mails sortants contenant une « clé=valeur » qui ira interroger la validité de la clef publique dans votre serveur DNS.
DKIM vous dira si le message a bien été approuvé par domain.com. Cependant, il ne vous dira pas si la personne « personne@domain.com » est digne de confiance.
Sur Linux l’installation se fait grâce à 2 paquets : opendkim et opendkim-tools.
Vous pouvez ajouter autant d’entrées DKIM que vous voulez. Comment est-ce possible et dans quel cas ?
L’exemple le plus parlant est lorsque vous passez par des services de gestion de liste de diffusion ( Mailjet, Sendinblue, Sendgrid, etc.) qui envoient des courriers au nom de votre domaine.
Vous configurez votre solution d’emailing qui vous donnera sa clef publique et ensuite vous l’intégrez dans votre DNS par une entrée TXT. Cela peut se présenter sous la forme suivante :
mailjet._domainkey 5M TXT v=DKIM1; k=rsa; p=BiQKBgQDeMVIzrCa3T14JsNY0IRv5/2V1/A4GNADCBiQKBgQC1xcV2kyKgJ3sPO/Xylqm9dGu8TF9wbifO6KMw9L70MIGfMA0ls6546bV/48rehjqsopuytGP+hqEr24GiT
DMARC
Ce mécanisme permet d’indiquer dans le DNS la politique à appliquer en ce qui concerne l’authentification du courrier. Le but est simple, il permet de valider les 2 protocoles précédents en publiant un enregistrement qui indique si le courrier doit être identifié ou pas. Il définit la politique à appliquer en cas d’échec de SPF et DKIM. Cela requiert une correspondance entre les noms de domaine SPF et DKIM et l’en-tête « From ».
Le DMARC de Google par exemple est le suivant :
« v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com »
v=DMARC1 indique la version de la balise DMARC
p=none indique que Google accepte les messages non authentifiés. Il peut prendre la valeur reject (rejet du message) ou bien quarantine (le mail est marqué comme étant du spam).
sp : cette balise sert à indiquer une règle requise pour tous les sous-domaines où le message échoue à l’authentification DMARC (elle peut prendre les valeurs none, quarantine ou reject).
rua : cette balise permet aux opérateurs de messagerie de savoir où vous souhaitez recevoir vos rapports.
Allons plus loin…
Le courrier est un sujet sensible et sécuriser leurs envois est devenu une priorité. Les méthodes décrites ci-dessus permettent de protéger votre identité et le contenu de vos messages. Mais il reste que le cheminement de votre courrier puisse transiter via des intermédiaires qui peuvent modifier les en-têtes et invalider vos mails.
Pour toute question relative aux mails et à leur sécurité, vous pouvez contacter l’un de nos conseillers pour plus d’informations.