Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Sécurité de la messagerie : SPF, DKIM et DMARC pour les débutants

1 février 2024 à 17:45

I. Présentation

Dans cet article, nous allons évoquer trois notions indispensables lorsque l'on s'intéresse à la sécurité et la délivrabilité des e-mails : SPF, DKIM et DMARC. En 2024, la sécurité des emails est plus importante que jamais, alors il est temps de protéger votre domaine si ce n'est pas encore fait !

Partons d'un constat simple : d'une part, de nombreuses entreprises ont besoin de pouvoir émettre des centaines ou des milliers d'e-mails, notamment dans le cadre d'e-mailing. D'autre part, les e-mails sont un vecteur d'attaque très populaire chez les cybercriminels, notamment par l'intermédiaire du phishing et du spoofing. En tant qu'administrateurs système, nous devons faire en sorte de bien configurer le domaine de messagerie de notre entreprise pour protéger les utilisateurs, mais aussi pour s'assurer que les e-mails légitimes arrivent à destination. C'est là que les normes SPF, DKIM et DMARC entrent en jeu !

Dans cet article, nous allons expliquer les grands principes de SPF, DKIM et DMARC, leur fonctionnement, et comment ils peuvent être utilisés ensemble pour assurer une sécurité optimale des e-mails. Nous allons évoquer également quelques outils qui vous seront utiles.

II. Importance de la sécurité des e-mails

L'utilisation d'un service de messagerie ne se limite pas à envoyer et à recevoir des e-mails, ni même à utiliser des versions sécurisées des protocoles SMTP et IMAP. Il est obligatoire d'aller plus loin, et c'est ce que nous allons voir aujourd'hui en explorant SPF, DKIM et DMARC.

En sécurisant votre domaine de messagerie, vous allez pouvoir protéger votre organisation, vos utilisateurs, mais aussi les autres utilisateurs (destinataires des e-mails) de plusieurs menaces :

  1. Prévention contre l'usurpation d'identité
  2. Protection contre la distribution de malwares
  3. Amélioration de la délivrabilité des e-mails
  4. Protection contre la distribution de spams
  5. Maintien de la réputation de votre organisation et de votre domaine

Par exemple, si une personne malintentionnée usurpe votre identité et exploite votre domaine de messagerie pour envoyer des spams, cela peut nuire à la réputation de votre organisation, mais aussi à votre réputation en ligne : votre domaine risque d'être blacklisté et vos e-mails, même ceux qui sont légitimes, termineront dans les spams. Il est donc primordial de bien protéger son domaine de messagerie.

III. Comprendre SPF

A. Qu'est-ce que SPF ?

Le SPF pour Sender Policy Framework, est une norme dont l'objectif est d'authentifier le serveur de messagerie émetteur d'un courrier électronique. Autrement dit, le serveur de messagerie utilisé pour envoyer l'e-mail est-il autorisé à envoyer des e-mails pour le domaine de question ? Question intéressante à laquelle le SPF permettra de répondre. De ce fait, il joue un rôle clé pour prévenir l'usurpation d'adresse e-mail, qui est souvent utilisée par les cybercriminels dans le cadre de campagnes de phishing.

La façon dont fonctionne le SPF est assez simple en théorie. À chaque fois qu'un e-mail est envoyé, le serveur de messagerie de réception va récupérer le nom de domaine de l'expéditeur à partir de l'en-tête de l'e-mail.

Il va ensuite émettre une requête DNS pour récupérer le contenu de l'enregistrement SPF (enregistrement DNS de type TXT) pour le domaine en question. Ceci va lui permettre d'obtenir la liste des serveurs de messagerie légitimes et autorisés à émettre des mails pour ce domaine : il va pouvoir comparer cette liste avec l'adresse IP du serveur de messagerie à l'origine de l'e-mail entrant afin de déterminer s'il est autorisé ou non.

Si l'adresse IP est autorisée, l'e-mail est considéré comme authentique et est accepté. Si ce n'est pas le cas, le serveur de réception peut rejeter l'e-mail ou le marquer comme suspect. Autrement dit, SPF est une façon pour les propriétaires de domaines de dire aux serveurs de messagerie : "Seules ces adresses IP sont autorisées à envoyer des e-mails pour mon domaine".

Pour finir, sachez que pour récupérer le domaine de l'expéditeur, le processus de vérification du SPF ne va pas s'appuyer sur le champ "From" (visible par l'utilisateur) mais sur le champ "Return-Path" (ou "Mail From"). C'est une précision importante, car une manipulation de ces champs permet de contourner le SPF (et DKIM qui utilise le même champ) : c'est pour cette raison que nous allons utiliser DMARC en complément.

Remarque : le Return-Path, pour chemin de retour, est un champ présent dans l'en-tête des e-mails qui sert à indiquer à quelle adresse envoyer les notifications lorsqu'un e-mail n'a pas pu être délivré.

Schéma SPF

B. Comment mettre en place SPF ?

Pour mettre en place une politique SPF, vous devez créer un enregistrement de type "TXT" dans la zone DNS publique de votre domaine.

Avant de créer cet enregistrement DNS, vous devez identifier les serveurs de messagerie autorisés. Il s'agit là de dresser la liste des adresses IP des serveurs qui sont autorisés à envoyer des e-mails pour votre domaine, c'est-à-dire les serveurs légitimes. Cela peut inclure votre propre serveur de messagerie, ainsi que ceux de tout service d'e-mail tiers que vous utilisez, comme un service de marketing ou un service d'e-mailing (pour une newsletter, par exemple).

Ensuite, il va falloir créer votre enregistrement SPF de type TXT afin de le publier dans la zone DNS de votre domaine.

Voici la syntaxe de la valeur d'un enregistrement SPF :

# Adresse IPv4
v=spf1 ip4:<adresse IPv4> -all
# Adresse IPv6
v=spf1 ip6:<adresse IPv6> -all

Si nous souhaitons autoriser le serveur de messagerie avec l'adresse IP "1.2.3.4", nous allons créer un enregistrement avec cette valeur :

v=spf1 ip4:1.2.3.4 -all

Si vous envoyez vos e-mails à partir d'un service de messagerie en ligne, par exemple Google Workspace, Microsoft 365, etc.... La syntaxe sera différente. En effet, il conviendra d'utiliser la directive "include" pour inclure les enregistrements SPF d'un autre domaine dans celui de notre domaine.

Pour Google Workspace, cela donne l'enregistrement suivant :

v=spf1 include:_spf.google.com -all

Sachez que vous pouvez cumuler plusieurs directives "ip4" et/ou "ip6" et/ou "include" dans un même enregistrement SPF (qui lui doit être unique pour un domaine). Par exemple, ce sera utile si vous envoyez des e-mails à la fois via Microsoft 365 mais aussi un service d'e-mailing tels que Brevo ou MailChimp : il faudra autoriser les deux services via votre SPF.

Remarque : la limite d'un enregistrement SPF est de 10 requêtes DNS. Cette limite inclut les lookups causés par l'utilisation des mécanismes "a", "mx", "ptr", "include", "exists" et "redirect" dans l'enregistrement SPF. Vous pouvez lire cet article pour approfondir le sujet.

Par exemple :

v=spf1 ip4:1.2.3.4 include:_spf.google.com -all

Dans le fichier de zone DNS, nous aurons une ligne complète sous cette forme :

it-connect.tech 600 IN TXT "v=spf1 ip4:1.2.3.4 include:_spf.google.com -all"

Il est important de préciser que le SPF est limité en nombre de caractères (255).

Pour finir, j'attire votre attention sur le caractère qui précède l'instruction "all" dans l'enregistrement SPF : le tilde (~) ou le trait d’union (-), qui correspondent respectivement au soft-fail et au hard-fail.

  • Avec "-all", nous sommes plus stricts et nous rejetons tous les e-mails en provenance de serveurs non autorisés dans le SPF : c'est le plus efficace contre l'usurpation d'identité.
  • Avec "~all", l'e-mail en provenance d'un serveur non autorisé sera marqué comme suspect, mais pas nécessairement rejeté : ceci peut s'avérer utile en phase de test (si vous n'êtes pas familier avec les enregistrements SPF) ou dans certains environnements "complexes" où l'on utilise de nombreux services tiers pour émettre des e-mails.
  • Autant que possible, utilisez "-all".

Quand votre enregistrement SPF sera en place, vous devrez tester le bon fonctionnement de votre SPF (voir la section de cet article dédiée aux outils) et pensez à mettre à jour la configuration SPF de votre domaine quand vous effectuez un changement (par exemple, si votre serveur de messagerie change d'adresse IP) sur votre infrastructure de messagerie.

Remarque : si vous avez un domaine qui n'envoi jamais d'e-mail, vous pouvez mettre en place un enregistrement SPF avec la valeur "v=spf1 -all" pour indiquer qu'il n'y a aucun serveur autorisé à envoyer des e-mails pour ce domaine. C'est une politique très stricte.

IV. Comprendre DKIM

A. Qu'est-ce que DKIM ?

Le DKIM pour DomainKeys Identified Mail, est une méthode d'authentification du courrier électronique basée sur des signatures cryptographiques qui vise à lutter contre l'usurpation d'adresse e-mail et la modification des messages. Cette une mesure de protection intéressante contre le phishing et le spoofing puisque l'on va chercher à vérifier l'authenticité d'un e-mail.

DKIM s'appuie sur de la cryptographie à clé publique, ce qui signifie qu'il utilise une paire de clés, avec une clé privée et une clé publique (comme pour l'authentification SSH, par exemple). Il n'y a que la clé publique qui est divulguée par l'intermédiaire d'un enregistrement DNS de type TXT, dans le cadre de DKIM.

Lorsque DKIM est utilisé, une signature numérique est ajoutée à l'en-tête des e-mails que vous envoyez. Ainsi, lorsqu'un e-mail est envoyé, le serveur d'envoi signe l'e-mail en générant une empreinte unique de celui-ci grâce à une clé privée. Cette empreinte est ensuite insérée dans l'en-tête de l'e-mail sous forme de signature DKIM.

Le serveur de réception, lui, va vérifier cette signature. Pour cela, il va utiliser la clé publique du domaine de l'expéditeur, qu'il peut trouver dans les enregistrements DNS de ce domaine.

Grâce à cette vérification, DKIM va permettre de garantir que l'e-mail que vous recevez est bien celui qui a été envoyé, à partir d'un serveur autorisé, et qu'il n'a pas été falsifié ! S'il y a un échec lors de la vérification de la signature, il est possible que l'e-mail ait été altéré pendant sa transmission, donc le courrier électronique ne sera pas remis à son destinataire.

Schéma DKIM

B. Comment mettre en place DKIM ?

Pour mettre en place DKIM, vous devrez passer par plusieurs étapes, dont la création d'un enregistrement de type TXT dans la zone DNS publique de votre domaine, comme pour le SPF. Avant cela, il sera obligatoire de générer une paire de clés (publique/privée) puisque c'est indispensable au fonctionnement de DKIM.

Voici les étapes à effectuer :

  • Générer une paire de clés (ou utiliser celle fournie par votre fournisseur)
  • Configurer votre serveur de messagerie pour signer les e-mails
  • Configurer la zone DNS pour DKIM
  • Tester votre configuration DKIM (avec un outil en ligne adapté)

C. L'enregistrement DNS pour DKIM

L'enregistrement DNS pour DKIM correspond à un enregistrement TXT qui contient votre clé publique DKIM et qui a une structure bien particulière, car il intègre le nom d'un sélecteur.

Ce nom de sélecteur, qui peut contenir des minuscules, des majuscules et des chiffres (sans être sensible à la casse), sera utilisé par le serveur de messagerie pour rechercher l'enregistrement DKIM du domaine.

Ainsi, le nom de l'enregistrement DNS sera sous cette forme :

<nom du sélecteur>._domainkey.<domaine.fr>
# Par exemple avec Microsoft 365 :
selector1-itconnect-tech._domainkey.itconnecttech.onmicrosoft.com

Et, sa valeur devra faire référence à DKIM et contenir la clé publique :

v=DKIM1; k=rsa; p=<clé publique>

Comme avec l'enregistrement SPF, la valeur est limitée à 255 caractères. Dans cette valeur, "v=DKIM1" correspond à la version de DKIM utilisée, tandis que "k=rsa" précise le nom de l'algorithme utilisé pour calculer la signature numérique. Dans une zone DNS, sachez qu'il est possible d'utiliser plusieurs paires de clés, et chaque clé publique devra être déclarée dans le DNS avec un nom de sélecteur différent. Si l'on prend l'exemple de Microsoft 365, la configuration de DKIM implique la déclaration de deux sélecteurs dans la zone DNS.

Pour finir, sachez que la longueur de la clé DKIM peut être de 1024 bits ou 2048 bits. L'utilisation d'une clé de 2048 bits est recommandé, bien que ce ne soit pas la valeur par défaut, donc c'est à prendre en considération au moment de générer votre clé.

V. Comprendre DMARC

A. Qu'est-ce que DMARC ?

Le DMARC pour Domain-based Message Authentication, Reporting & Conformance est une spécification technique complémentaire au SPF et au DKIM. D'ailleurs, la traduction de cet acronyme nous donne déjà des informations intéressantes : Authentification, notification et conformité des messages basés sur un domaine.

En effet, DMARC est une façon pour les propriétaires de domaines de dire aux serveurs de messagerie : "Voici comment je signe mes emails (SPF et/ou DKIM), et voici ce que vous devriez faire (la politique DMARC) si vous recevez un email qui semble venir de mon domaine, mais qui ne correspond pas à ces signatures". Il se présente sous la forme d'un enregistrement DNS (de type TXT).

DMARC va être capable d'authentifier les e-mails grâce aux informations contenues dans les enregistrements SPF et DKIM. Pour passer l'authentification DMARC, les messages doivent être authentifiés par SPF et/ou DKIM.

DMARC va aussi permettre de définir une politique sur la conduite à tenir lorsqu'un e-mail échoue aux tests d'authentification. Dans ce cas, la politique DMARC peut être de laisser passer l'e-mail et de l'historiser, de le mettre en quarantaine (c'est-à-dire le mettre dans le dossier spam), ou de le rejeter complètement.

De plus, DMARC inclut aussi un système de reporting. Cela signifie que les serveurs de messagerie envoient des rapports au propriétaire du domaine pour lui dire combien d'e-mails ils ont reçus de son domaine, combien étaient correctement signés, combien n'ont pas passé les tests d'authentification et ce qu'ils ont fait des e-mails qui n'étaient pas correctement signés.

Ainsi, DMARC offre une protection contre la falsification d'emails et aide les propriétaires de domaines à surveiller l'utilisation de leurs domaines pour l'envoi d'emails.

Schéma DMARC

B. Comment mettre en place DMARC ?

À partir du moment où vous avez mis en place SPF et DKIM pour votre domaine, vous pouvez envisager le déploiement de DMARC.

Voici les étapes à suivre pour mettre en place DMARC :

  • Vérifier que les mécanismes d'authentification SPF et DKIM sont correctement configurés pour votre domaine
  • Créer votre enregistrement TXT dans la zone DNS publique de votre domaine
  • Tester votre configuration DMARC
  • Surveiller les rapports DMARC (utile pour identifier des problèmes de livraison d'e-mails ou des tentatives d'usurpation de votre domaine)

C. L'enregistrement DNS pour DMARC

Un enregistrement TXT pour décrire une politique DMARC doit contenir un ensemble de directives, qu'il est important de connaître et de comprendre.

L'enregistrement DMARC de type TXT doit s'appeler "_dmarc" dans votre zone DNS, soit pour le domaine "it-connect.tech" :

_dmarc.it-connect.tech

Voici un exemple de valeur pour cet enregistrement :

v=DMARC1 ; p=<politique>; rua=mailto:[email protected]; pct=100; adkim=s; aspf=s

Quelques explications s'imposent...

Tout d'abord, DMARC propose 3 politiques différentes (et il faut en choisir une seule) :

  1. p=none : ce mode ne procure aucune protection, mais peut s'avérer utile pour être en mode "audit" (surveillance) et savoir qui envoie des e-mails pour votre domaine, et surtout quels sont les e-mails potentiellement rejetés (à cause d'une adresse IP manquante dans le SPF, par exemple).
  2. p=quarantine : ce mode permet de tagguer les e-mails non authentifiés (échec) de manière à ce qu'ils soient considérés comme spams
  3. p=reject : mode le plus strict où les e-mails non authentifiés sont rejetés (ce qui peut entrainer des pertes d'e-mails)

Suite à la mise en place de SPF et de DKIM, je vous recommande de débuter avec la politique DMARC "p=none" pour mesurer l'impact de l'activation de ces mesures de protection. Sinon, en cas de mauvaise configuration, vous risquez de "perdre" de nombreux e-mails.

Ensuite, vous pourrez passer sur un mode plus strict et le mode "quarantine" vous offrira un bon compromis. Si vous souhaitez utiliser le mode "reject", il est recommandé d'implémenter ARC (Authenticated Received Chain) en complément, comme l'explique cet article.

Par ailleurs, voici ce qu'il faut savoir :

  • pct=100 : indique que cette règle s’applique à 100% des e-mails. Mais, on pourrait s'en passer car c'est la configuration par défaut.
  • aspf=s :
    • "s" signifie Strict. Cela signifie que l'adresse de l'expéditeur dans l'en-tête "From" de l'e-mail doit correspondre exactement au nom de domaine de l'expéditeur dans l'enregistrement SPF pour que l'alignement SPF soit respecté. Idéal pour lutter contre le phishing, le spam, etc.
    • "r" signifie Relaxed (mode par défaut). Cela signifie que l'alignement SPF est respecté tant que le domaine de l'expéditeur dans l'en-tête "From" de l'e-mail et l'adresse de l'expéditeur dans l'enregistrement SPF partagent le même domaine principal (ce qui permet d'autoriser les sous-domaines).
  • adkim=s : même principe que pour le paramètre précédent ("s" ou "r") mais pour l'alignement DKIM.
  • rua=mailto:[email protected] : spécifie l'adresse e-mail à laquelle envoyer les rapports sur l'activité DMARC (important !).

Enfin, sachez que l'enregistrement DMARC doit être unique dans la zone DNS de votre domaine.

Grâce à ces explications, vous devriez mieux comprendre la syntaxe d'un enregistrement DMARC.

VI. Les outils pour SPF, DKIM et DMARC

La mise en œuvre de SPF et DMARC est relativement facile, car "il suffit" de modifier la zone DNS publique de votre domaine. Pour DKIM, cela peut s'avérer plus complexe si vous utilisez un service de messagerie en ligne (Google Workspace, Microsoft 365, AWS, OVHcloud, etc...), car il faut effectuer la mise en place en respectant les consignes du fournisseur : à vérifier dans la documentation, au cas par cas.

Quoi qu'il en soit, il y a plusieurs outils en ligne qui vous seront utiles notamment pour vérifier votre configuration. C'est ce que nous allons voir dans cette partie. en complément des outils présentés, vous pouvez regarder le projet parsedmarc pour l'analyse des rapports DMARC.

A. Les outils MxToolbox

Le site MxToolbox est une boite à outils incontournable lorsque l'on cherche à effectuer des vérifications liées à la messagerie et au DNS sur un domaine.

Vous allez pouvoir effectuer la vérification de vos configurations SPF, DMARC et DKIM. Au-delà de vous indiquer l'information collectée à partir du DNS, l'outil va l'analyser et vérifier si sa syntaxe est conforme. Il vous suffit de sélectionner le test de votre choix, d'indiquer votre domaine et d'exécuter la vérification.

MxToolbox - Vérification SPF DMARC DKIM

B. Les outils Google Postmaster

Comme son nom l'indique, cet outil est proposé par Google et s'avère très utile pour contrôler le taux de spam de votre domaine. Accessible à partir d'un compte Google, vous pourrez ajouter un ou plusieurs domaines à cet outil (un processus de validation sert à prouver que vous êtes bien le propriétaire du domaine).

C'est d'autant plus important qu'à partir de février 2024, Google et Yahoo vont durcir le ton en ce qui concerne la gestion des e-mails entrants. Dans la documentation de Google, nous pouvons lire : "Maintenez les taux de spam signalés dans Postmaster Tools en dessous de 0,10 % et évitez d'atteindre un taux de spam de 0,30 % ou plus." - En fait, si votre taux de spams est trop élevé, vos e-mails (même légitimes) risquent d'être considérés comme courriers indésirables.

Le graphique ci-dessous montre le "Taux de spam signalé par les utilisateurs", sur les 120 derniers jours pour un domaine spécifique dont vous êtes le propriétaire.

D'autres métriques sont disponibles dans Google Postmaster Tools :

  • Réputation des adresses IP
  • Réputation des domaines
  • Boucle de rétroaction
  • Authentification (taux de réussite DKIM, SPF, DMARC)
  • Chiffrement (trafic chiffré)
  • Erreurs de distribution

C. L'outil Mail-Tester

Terminons par un outil nommé Mail-Tester qui permet de tester le niveau d'indésirabilité de vos e-mails. Pour cela, vous devez envoyer un e-mail sur une adresse temporaire et cliquer sur le bouton "Ensuite, vérifiez votre score". L'outil vous indiquera une note sur 10, ainsi qu'un ensemble de recommandations pour améliorer votre score, sans oublier les points positifs de votre configuration actuelle. Un outil plutôt ludique et à la portée de tout le monde.

VII. Conclusion

Au final, la mise en place de SPF, DKIM et DMARC est une démarche indispensable pour quiconque souhaite optimiser la délivrabilité de ses e-mails et renforcer la sécurité de son domaine de messagerie. Lorsqu'ils sont utilisés tous les trois ensemble, ils permettent de lutter efficacement contre le spam, le phishing et d'autres formes d'abus basés sur l'e-mail.

À ce sujet, il est important de préciser et rappeler que c'est bénéfique à l'organisation qui fait l'effort de protéger son domaine : ceci ne vous empêchera pas de recevoir des spams ou des e-mails malveillants. SPF, DKIM et DMARC c'est en fait une démarche collective, car plus il y a de domaines protégés, plus il devient difficile d'abuser des domaines de messagerie.

Par ailleurs, et c'est important, ils aident à protéger votre réputation en ligne (afin d'éviter que vous soyez blacklisté si votre domaine est usurpé par un tiers) et à garantir que vos messages atteignent leur destination.

Alors, n'attendez plus et commencez dès aujourd'hui à sécuriser votre service de messagerie avec SPF, DKIM et DMARC ! C'est un trio gagnant ! 😉

Pour Microsoft 365, veuillez consulter ce tutoriel :

Pour aller plus loin, intéressez-vous à BIMI et ARC (à condition d'implémenter DMARC) voire même à DNSSEC ! Ceci fera surement l'objet d'autres articles.

Stay connected.

The post Sécurité de la messagerie : SPF, DKIM et DMARC pour les débutants first appeared on IT-Connect.

❌
❌