Sécurisé l’envoi de Mail (DMARC/DKIM/SPF)

mercredi 7 octobre 2020

On peut sécuriser l’envoi de mail et surtout empêcher l’usurpation d’identité du mail FROM avec la spécification technique DMARC qui permet de réduire l’usage abusif des emails tels que spam / phishing.
DMARC standardise la façon dont les destinataires (au sens des MTA destinataires) réalisent l’authentification des e-mails en utilisant les mécanismes de Sender Policy Framework (SPF) et de DomainKeys Identified Mail (DKIM).

Donc avant de mettre en place cette spécification technique, il faut créer ces deux systèmes de validations de emails.

SPF:

SPF: permet d’autoriser via votre nom de domaine, l’envoi de mail depuis l’ip d’un serveur d’envoi de mail.
Il faudra donc ajouter un enregistrement SPF dans notre gestionnaire de DNS (ovh) qui définit les serveurs de messagerie autorisés à envoyer des messages pour votre domaine.

Petit exemple: on peut spécifier le serveur de mail google, ovh et mailchimp

v=spf1 include:mx.ovh.com include:_spf.google.com include:servers.mcsv.net -all

Chez ovh, on fait l’enregistrement TXT et SPF !
Car SPF est assez récent et pas pris par tout le monde.

Info Google:
https://support.google.com/a/answer/33786

Pour mailchimp c’est différent, il faut dans l’interface de mailchimp « vérifier » notre nom de domaine et du coup je suppose qu’il rajoute cet enregistrement dans le dns de mailchimp et comme l’adresse de rebond des mails de mailchimps passe par leur serveur, je pense que c’est bien le dns de mailchimp prit en compte par le SPF et non celui de notre nom de domaine.

DKIM

Permet de signer grâce a un système de clé privé/publique un message et du coup de s’assurer que le message n’a pas été intercepté / modifié.
On va donc enregistrer cette clé publique dans le nom de domaine.

Il faudra aussi lors d’envoi de mail en php envoyer les emails en utilisant la clé privée. (swiftMailer /PHPmailer)

Avec mailchimp, on avait le soucis suivant avec DMARC:

Avant d'utiliser DMARC, vous devez vous assurer que les domaines utilisés dans l'envelope (Return-Path ou Mail-From), le domaine d'expéditeur ("Header" From) et le domaine d=domain dans la signature DKIM sont les mêmes
Entrée DMARC trouvée pour le domaine _dmarc.xxxxx.net

Donc le domaine envoyer par mailchimp avec DKIM était

DKIM Domain: mailchimpapp.net
et il doit être xxxxx.net pour DMARC.

Avec mailchimp, j’ai authentifié le nom de domaine xxxxx.net pour que la clé DKIM utiliser pour crypter les messages envoyés sont liés à notre nom de domaine xxxxx.net et non celle de mailchimp.

Mailchimp authetification DKIM

Résultat:

DKIM mail tester

DMARC:

C’est une méthode d’authentification de messagerie standard.
DMARC permet aux administrateurs de messagerie d’empêcher les pirates informatiques d’usurper l’identité de leur organisation et de leur domaine. Le spoofing est un type d’attaque via laquelle l’adresse du champ « De » (FROM) d’un e-mail est falsifiée.
Un message de spoofing semble provenir de l’organisation ou du domaine usurpé.

DMARC vous permet également de demander des rapports aux serveurs de messagerie qui reçoivent des messages provenant de votre organisation ou de votre domaine.
Ces rapports contiennent des informations vous permettant d’identifier les éventuels problèmes d’authentification et les activités malveillantes liées aux messages envoyés depuis votre domaine.

Voici l’entrée DNS a mettre en place:

_dmarc TXT v=DMARC1;p=reject;rua=mailto:test@xxxxx.net;sp=reject;

Cette méthode d’authentifications est toujours utilisé avec les deux méthodes ou contrôles d’authentification SPF et DKIM !

Info Google:
https://support.google.com/a/answer/2466563?hl=fr

TEST:

Pour tester: https://www.mail-tester.com/
On utilise l’adresse email générer par le site pour envoyer et on sait vérifier si c’est ok.

En résumé:

SPF permet aux serveurs de vérifier que les messages semblant provenir d’un domaine particulier sont envoyés depuis des serveurs autorisés par le propriétaire du domaine.
DKIM ajoute une signature numérique à chaque message. Cela permet aux serveurs de réception de vérifier que les messages ne sont pas falsifiés et n’ont pas été modifiés pendant le transit.
DMARC authentifie les messages avec SPF et DKIM, et gère les messages entrants suspects.

Video explicative:

https://www.youtube.com/watch?v=_sCqM8MivCw
https://www.youtube.com/watch?v=UGodyaxN258

Tags: DKIM , DMARC , dns , Email , Google , mailchimp , ovh , SPAM , SPF