Broken-by-Design/posts/smtp-killer-app/index.md

544 lines
31 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "SMTP : la « killer app » de DNSSEC"
slug: smtp-killer-app-dnssec
author: "Florian Maury"
date: 2018-05-01
type: posts
lang: fr
categories:
- internet
tags:
- security
- smtp
- dns
- dnssec
---
Huit ans après le déploiement de DNSSEC par la racine du DNS, cette technologie
peine encore à trouver son public et à prouver son utilité. Cet article démontre
que la sécurité des échanges de courriers électroniques avec SMTP contre des
attaquants actifs ne peut être atteinte en labsence de DNSSEC, compte tenu des
standards et implémentations actuels.
<!--more-->
DNSSEC assure lintégrité cryptographique des enregistrements DNS. Sa faible
adoption peut sexpliquer par une complexité à limplémentation et lors de sa
maintenance, et par le fait que cette technologie est inutile, la plupart du
temps. En effet, le DNS est principalement utilisé pour la résolution de noms de
domaine en adresses IP, en vue daccéder à un service tiers. Si ce service est
authentifié et protégé en confidentialité et en intégrité, comme cest le cas
avec TLS, alors lattaque active est contrée au moment de létablissement de
cette communication sécurisée. À linverse, protéger en intégrité le DNS alors
que le service contacté nest pas lui-même authentifié semble au mieux inutile :
lattaquant actif pourra généralement attaquer le service directement.
SMTP, le protocole déchange de courriers électroniques se trouve, hélas, dans
le second cas de figure, bien que la plupart des implémentations prennent en
charge TLS. En effet, pour des raisons historiques et de déploiements
progressifs transparents, les serveurs de courriers électroniques ne vérifient
pas ou mal les certificats X.509 fournis dans le cadre de SMTP sur TLS. Ainsi,
les communications entre serveurs de courriers électroniques ne bénéficient
généralement que dune protection contre les écoutes passives ; un attaquant
actif pourra effectuer une interception aisément, sans même avoir à fournir un
certificat frauduleux usurpant lidentité de la victime.
Les attaques actives ne se limitent cependant pas au protocole SMTP, mais
sétendent à son écosystème. En effet, les serveurs de courriers emploient de
nombreuses techniques pour éviter lusurpation didentité de lexpéditeur dun
courrier électronique, dont des politiques de sécurité publiées dans le DNS.
Cet article expose limpossibilité de sécuriser les échanges SMTP en labsence
dintégrité cryptographique des enregistrements DNS, que ce soit pour récupérer
les politiques de sécurité évoquées ci-dessus, ou pour effectuer une
vérification de certificats efficace.
# 1. État des lieux
Cette section dresse un état des lieux du déploiement des technologies utilisées
dans lécosystème SMTP et qui peuvent être sécurisées grâce à DNSSEC. Des
mesures actives ont été effectuées par lauteur de cet article en vue de
présenter au lecteur une image dénombrée. Loutil de mesures, la méthodologie,
ainsi que les résultats bruts peuvent être consultés en ligne [^collect].
## 1.1. TLS pour SMTP
Dans le précédent numéro de MISC, Arthur Provost et Olivier Levillain
présentaient les résultats de mesures actives sur les serveurs SMTP afin
dévaluer la qualité des déploiements de TLS. Leur étude permet dobtenir une
estimation intéressante de la sensibilisation des administrateurs de serveurs de
courriers électroniques aux bonnes pratiques de sécurité. Elle ne permet,
cependant, pas dévaluer la quantité de courriers électroniques ainsi protégés,
car elle comptabilise les serveurs et non les messages envoyés entre ces
serveurs. Or, le trafic des courriers électroniques est extrêmement concentré
sur quelques plateformes dhébergement mutualisé [^ObsANSSI].
Cette concentration implique que la sécurisation de quelques acteurs permet de
protéger un grand pourcentage des communications. Ainsi, plusieurs initiatives
nationales et internationales ont été lancées, afin dencourager ladoption de
TLS pour sécuriser les échanges entre les grands fournisseurs de service de
transport de courriers électroniques, au nombre desquelles celle de Google, de
lANSSI ou encore du BSI, lagence nationale de sécurité des systèmes
dinformation allemande.
À ce titre, Google publie des statistiques publiques sur lutilisation de TLS
entre ses serveurs SMTP et les serveurs SMTP des organismes avec lesquels ils
échangent ["SaferEmail]. Il y est notamment possible dobserver le pourcentage
de courriers envoyés sur un canal chiffré, par domaine expéditeur/destinataire.
LANSSI a également rédigé une charte [^Charte], en collaboration avec plusieurs
fournisseurs de service français, afin dériger des engagements de sécurité
minimaux devant être mis en œuvre par les signataires (Orange, SFR/Numéricable,
Bouygues Télécom, Free et La Poste).
Finalement, le BSI a publié un document [^BSI] fournissant des recommandations
de sécurité pour les fournisseurs de service de courriers électroniques allemand
sétant autosaisis de la problématique. Il est intéressant de noter que le BSI
encourage lemploi de DNSSEC dans son document.
## 1.2. DNSSEC
Lauteur de cet article décrivait dans ces mêmes colonnes, en 2012, trois
mécanismes employant DNSSEC afin de venir au secours de la validation des
certificats X.509 : {{< abbr DANE "DNS-based Authentication of Named Entities"
>}} [^RFC6698], {{< abbr CAA "Certification Authority Authorization" >}}
[^RFC6844] et un mécanisme non standard dépinglage des certificats par
lentremise de DNSSEC. Six ans plus tard, force est de constater que ces
mécanismes sont peu implémentés [^EtudeCAA] [^EtudeDANE]. Et pour cause : DNSSEC
peine à se généraliser, avec un taux dadoption autour de 12,5% des noms de
domaine se terminant en « .fr. », dont la majorité sont signés automatiquement
par les bureaux denregistrement dans le cadre de la création de nouveaux noms
de domaine [^ObsANSSI].
Du côté des autorités de certification, la prise en charge de DNSSEC nest pas
obligatoire, même pour les autorités de certification émettant des certificats
où seul le contrôle temporaire dun nom de domaine est validé (certificats dits
« DV », pour « Domain Validation »). En fait, la seule mention de DNSSEC dans
les prérequis minimaux édictés par le CA/B Forum une entité réunissant les
autorités de certification et les principaux navigateurs web a trait au
comportement à adopter dans le cas dun échec de vérification dune signature
DNSSEC dans le cadre de CAA [^CABForumBR].
Certaines autorités de certification, comme Lets Encrypt, implémentent
cependant la validation DNSSEC de leur propre chef pour lémission de
certificats DV ; un fait à porter à leur crédit.
## 1.3. SPF
{{< abbr SPF "Sender Policy Framework" >}} [^RFC7208] est une politique de
sécurité permettant à un émetteur de courriers électroniques de spécifier la
liste des serveurs/adresses IP autorisés à envoyer des courriers provenant de
son nom de domaine. Cette politique est publiée sous la forme dun
enregistrement DNS de type TXT à lapex (cest-à-dire « tout en haut ») de la
zone DNS correspondant au domaine DNS expéditeur à protéger. Par exemple, pour
lexpéditeur john@example.com, lenregistrement SPF suivant sera consulté :
```
example.com. 86400 IN TXT “v=spf1 ip4:192.0.2.1 -all”
```
Cette donnée est directement consommée par un validateur SPF et aucun autre
mécanisme de sécurité nintervient ultérieurement pour la protéger, comme cest
le cas avec TLS pour les courriers électroniques. Les enregistrements SPF
mériteraient donc dêtre protégés en intégrité grâce à DNSSEC. La RFC7208
noblige cependant pas la signature ou la validation cryptographique de cet
enregistrement DNS, permettant ainsi à un attaquant actif de modifier cet
enregistrement à la volée et autoriser des adresses IP sous son contrôle à
émettre des courriers.
Le déploiement de SPF pour les domaines délégués depuis le nom de domaine de
premier niveau (en anglais, {{< abbr TLD "Top-Level Domain" >}}) « .fr » est
denviron 37%. Cependant, seuls 7,4% des zones étudiées contiennent des
enregistrements SPF signés avec DNSSEC.
## 1.4. DKIM
{{< abbr DKIM "DomainKeys Identified Mail" >}} Signatures [^RFC6376] est une
politique de sécurité permettant à un émetteur de courriers électroniques de
signer cryptographiquement certains en-têtes et tout ou partie du contenu des
courriers provenant de son domaine. Cette technologie vise ainsi à prévenir
lusurpation didentité de lexpéditeur et permet la détection en cas
daltération des courriers pendant leur transit.
La signature DKIM est placée dans les en-têtes dun courrier électronique. En
voici un exemple :
```
DKIM-Signature: d=example.net; s=chaine_arbitraire; …
```
La clé publique utilisée pour effectuer la vérification de cette signature est
publiée dans le DNS, dans un enregistrement TXT. Cet enregistrement est publié
dans un nom de domaine composé du domaine spécifié dans la métadonnée `d=` de la
signature, préfixée de la chaîne constante `_domainkey`, elle-même préfixée dun
sélecteur (une chaîne de caractères arbitraire, spécifiée dans la métadonnée
`s=` de la signature). Ainsi pour la signature donnée en exemple ci-dessus,
lenregistrement DNS suivant est récupéré :
```
chaine_arbitraire._domainkey.example.net. 86400 IN TXT “v=DKIM1; k=rsa; p=base64clef”
```
Bien que la RFC6376 ne requière pas lauthentification cryptographique de la clé
publique servant à vérifier la signature des courriers électroniques, DNSSEC
permet de « certifier » cette clé, la protégeant ainsi dattaquants actifs.
Le déploiement de DKIM ne peut être mesuré avec précision, les sélecteurs étant
imprédictibles par loutil de mesure. Il est cependant possible dinférer
labsence denregistrements relatifs à DKIM grâce à la RFC8020 [^RFC8020].
Celle-ci dicte que le DNS est une base de données arborescente, et donc quun
domaine ne peut exister que si tous les domaines parents existent aussi. Ainsi,
il est possible de déterminer un pourcentage de domaines nutilisant pas DKIM,
en comptant les domaines pour lesquels le sous-domaine _domainkey nexiste pas.
Les autres domaines utilisent peut-être DKIM ou sont des faux positifs.
Pour les domaines délégués depuis le TLD « .fr », 81% des domaines nemploient
pas DKIM. Seul 1% des domaines étudiés sont susceptibles dutiliser DKIM et sont
signés avec DNSSEC. Ces 1% constituent la borne haute du nombre de noms de
domaine utilisant DKIM avec une protection contre les attaquants actifs.
## 1.5. DMARC
{{< abbr DMARC "Domain-based Message Authentication, Reporting and Conformance"
>}} [^RFC7489] est une politique de sécurité publiée dans le DNS, permettant de
spécifier des actions à prendre en cas de violation des politiques SPF et DKIM.
Cette politique est publiée dans un enregistrement TXT localisé dans le
sous-domaine `_dmarc` du domaine de lexpéditeur dun courrier, dont voici un
exemple :
```
_dmarc.example.net. 86400 IN TXT “v=DMARC1; p=none; pct=100; ruf=mailto:dmarc-feedback@example.com"
```
Des exemples dactions à prendre en cas de violation de SPF et DKIM incluent de
défausser les courriers jugés frauduleux, de les mettre en quarantaine, et
éventuellement de rapporter cet échec auprès dun serveur. De manière cruciale,
ces rapports peuvent contenir des extraits de courriers électroniques. Pour un
domaine nétant pas protégé par DNSSEC, un attaquant est donc en mesure de
modifier les enregistrements DKIM, de façon à faire passer un courrier
électronique pour frauduleux, puis de retourner un faux enregistrement DMARC
permettant lexfiltration dinformations du courrier.
Le déploiement de DMARC est très faible, avec seulement 1,4% des noms de domaine
délégués depuis le TLD « .fr » limplémentant. Seuls les enregistrements de 1,5
domaine pour mille sont, en outre, protégés par DNSSEC. Finalement, comme noté
dans la section 1.2, seuls 12,5% des domaines étudiés sont signés avec DNSSEC et
sont donc à labri de toute attaque active impliquant DMARC en vue dexfiltrer
le contenu des courriers électroniques.
# 2. Modélisation dun attaquant actif
Dans cette section, nous allons exposer une liste non exhaustive des
possibilités dun attaquant actif à lencontre de SMTP sur TLS, en vue de casser
la confidentialité des métadonnées ou des échanges en général.
## 2.1. Négociation TLS
Certains protocoles, comme IMAP ou POP disposent dun mode dusage de TLS dit «
implicite ». Cela signifie que la version sécurisée de ces protocoles dispose
dun numéro de port TCP spécifique (IMAPS/993, POPS/995), et que lorsquun
serveur est contacté sur ce port, TLS doit être employé dès les premiers
segments échangés sur une nouvelle connexion TCP. La version TLS implicite de
SMTP, appelée SMTPS et employant le port 465, a hélas été supprimée des
registres de lIANA, et le port 465 a été réalloué pour dautres usages. SMTPS
nexiste donc plus.
Certains protocoles disposant de TLS implicite existent également dans une
version dite « explicite ». Dans ce cas, la connexion TCP est effectuée sur les
ports « en clair » (IMAP/143, POP/110). Cest alors à la couche applicative
(IMAP, POP), dexprimer dans son dialecte quune amélioration de la sécurité de
la communication est désirée. Cela sexprime généralement par laffichage dune
option `STARTTLS` par le serveur, et que le client est libre de solliciter en
envoyant le message `STARTTLS`. Lorsque le client sollicite lusage de TLS
proposé par le serveur, les échanges en clair sont interrompus et la même
connexion TCP est subitement employée pour échanger des messages TLS en vue de
négocier des clés, puis de transférer du trafic chiffré. Lextrait de session
SMTP ci-dessous illustre une négociation de `STARTTLS`. Les lignes préfixées par
`S:` sont envoyées par le serveur, et celles par `C:` par le client.
```
S: 220 smtp.gmail.com ESMTP 186sm7907497wmm.32 - gsmtp
C: EHLO x-cli.eu
S: 250-smtp.gmail.com at your service, [2001:41d0:51:1::716]
S: 250-SIZE 35882577
S: 250-8BITMIME
S: 250-STARTTLS
S: 250-ENHANCEDSTATUSCODES
S: 250-PIPELINING
S: 250-CHUNKING
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 Ready to start TLS
```
Lavantage de lemploi de TLS de façon implicite est que si la connexion TCP/TLS
est ouverte avec succès, il ny a aucun doute sur le fait que les messages
transférés sont protégés. Avec TLS en mode explicite, la même assurance ne peut
être fournie. Certains clients codés « un peu rapidement » poursuivent, en
effet, lenvoi du courrier en clair, sans noter les erreurs renvoyées par les
serveurs ne souhaitant pas recevoir en labsence de TLS.
En outre, lindication que le serveur prend en charge TLS et la sollicitation de
chiffrement du client sont échangées en clair. Un attaquant actif est donc en
mesure de corrompre le trafic afin de dissimuler/supprimer loption/la
sollicitation, afin que la négociation TLS ne soit pas effectuée. Cette attaque
porte le nom de *STARTTLS Stripping*. Ce risque nest pas théorique ; dans un
excellent papier de Google, luniversité du Michigan et luniversité de
lIllinois [^RainSnowMITM], des chercheurs ont effectué une étude des connexions
SMTP vers les serveurs de Gmail. Ils ont ainsi découvert quune grande quantité
des connexions SMTP avec TLS explicite à destination de Gmail était altérée par
des attaquants actifs. Dans certains pays, comme la Tunisie, jusquà 96% des
connexions sont affectées par un attaquant, tandis que 9% des connexions sont
affectées en France, et plus particulièrement à lîle de la Réunion.
Le mode opératoire de lattaquant est de remplacer à la volée dans la connexion
TCP loption du serveur ou la sollicitation du client par une chaîne de même
longueur que `STARTTLS`, non reconnue par lautre partie, comme `XXXXXXXX`. En
conséquence, le client ne verra pas loption `STARTTLS`, mais une option
`XXXXXXXX` quil ne sait pas utiliser, ou le serveur recevra une commande
`XXXXXXXX` du client, à laquelle il répondra avec un message derreur indiquant
quil sagit dune commande invalide.
Finalement, la validation des certificats TLS dans le cadre de SMTP est très en
retard par rapport à celle de HTTPS. Par exemple, dans létude [^RainSnowMITM],
environ 66% des certificats présentés par les serveurs SMTP sont invalides
(mauvais sujet, principalement, mais aussi certificats périmés ou autosignés).
Le chiffrement est dit « opportuniste » lorsque les serveurs SMTP acceptent
aveuglément tout certificat présenté. Cest le cas de la plupart des
déploiements de SMTP sur lInternet. De plus, au moment où ces lignes sont
écrites, aucune implémentation de SMTP sur TLS connue de lauteur nest
compatible avec Certificate Transparency. Comparativement, pour le web, tout
certificat émis à partir davril 2018 et nétant pas dans Certificate
Transparency est jugé invalide par le navigateur Chrome.
---
Certificate Transparency est une technologie et un écosystème qui permettent au titulaire dun nom de domaine de lister les certificats émis pour son nom de domaine, et dainsi vérifier quils ont tous été émis avec son accord. Certificate Transparency a été présenté dans MISC Hors-Série n°13, article « Souriez ! Les autorités de certification sont filmées ! ».
---
## 2.2. Remplacement des enregistrements MX
Lorsquun serveur SMTP cherche à envoyer un courrier électronique à un tiers inconnu, la recherche du serveur SMTP à contacter seffectue grâce au DNS. Pour cela, une recherche denregistrement de type MX (pour Mail eXchanger, ou relais de courriers, en français) est initiée. Ces enregistrements contiennent les noms des serveurs SMTP à contacter, noms qui doivent ensuite être résolus en adresse IP. Voici un exemple denregistrements MX :
```
example.com. 86400 IN MX 5 mail1.example.com.
example.com. 86400 IN MX 10 smtp.example.net.
```
Dans le même papier [^RainSnowMITM], les chercheurs ont également évalué la
propension des attaquants à remplacer les enregistrements MX légitimes par des
enregistrements MX contenant des noms de domaine sous son contrôle. Ce faisant,
le serveur expéditeur enverra le courrier directement aux serveurs de
lattaquant, qui pourra prendre connaissance du contenu. Lattaquant peut,
ensuite, éventuellement faire suivre le courrier aux vrais serveurs
destinataires afin de rendre « transparente » lattaque, en labsence dune
politique SPF sur le domaine expéditeur. En présence de SPF, lattaquant peut
émuler un problème serveur, à la suite de la réception du contenu du courrier,
par exemple, en renvoyant une erreur temporaire, indiquant un espace de stockage
insuffisant (erreur 452). Le serveur expéditeur original réessaiera alors de
transmettre ultérieurement le courrier, cette fois-ci au serveur destinataire
légitime, qui saura valider la légitimité de lexpéditeur avec SPF.
Les auteurs de [^RainSnowMITM] ont interrogés les serveurs DNS récursifs et les
relais DNS (forwarders) souffrant dun défaut de contrôle daccès (serveurs
appelés résolveurs DNS ouverts) afin de collecter des réponses DNS depuis de
nombreux points dobservation de lInternet. Le résultat de ces mesures actives
a révélé que 2% des serveurs DNS interrogés renvoyaient une réponse frauduleuse
pouvant mener au détournement de courriers électroniques.
Il convient de noter que cette attaque ne saurait être prévenue même si
lexpéditeur exigeait lutilisation de TLS avec des certificats X.509 valides
(sujet, dates, usage, etc.) de la part du destinataire. En effet, lhébergement
mutualisé de plusieurs domaines sur un seul serveur SMTP de réception nemploie
pas lextension TLS appelée {{< abbr "SNI" "Server Name Indication" >}}. À la
place, cest le nom du serveur SMTP fourni dans lenregistrement MX qui est
généralement recherché à lintérieur du certificat présenté par le serveur SMTP
destinataire. Or, si lenregistrement MX nest pas signé avec DNSSEC, celui-ci
peut être modifié à la volée par un attaquant pour y mettre tout nom sous son
contrôle et pour lequel il est en mesure dobtenir un certificat valide et
légitime.
---
SNI permet de spécifier lors de linitialisation de la connexion TLS, un nom de domaine spécifique parmi plusieurs domaines cohébergés sur la même machine ; cest ainsi que lon peut avoir plusieurs hôtes virtuels (*Virtual Host*) sur une même adresse IP servant du HTTPS.
---
Lemploi de SNI aurait permis à un expéditeur de préciser pendant la négociation
TLS quil envoyait un courrier électronique à destination dune adresse en
`@example.com`. Le serveur de destination aurait alors pu fournir un certificat
valide pour `example.com`.
Plusieurs explications existent pour justifier ce choix qui semble sous-optimal.
En premier lieu, les serveurs SMTP réutilisent les connexions TCP/TLS ouvertes
entre deux hôtes, afin de créer un pipeline. Cette réutilisation vise à éviter,
lorsque cest possible, le coûteux établissement dune connexion TCP/TLS pour
lenvoi dun unique courrier. Il ne semblerait donc pas correct de réutiliser
une connexion établie et authentifiée pour `example.com` pour lenvoi dun
courrier au nom de domaine cohébergé `example.net`. À la place, deux connexions
indépendantes vers la même adresse IP devraient être employées ; un coût que
tous les opérateurs ne souhaitent pas payer.
Ensuite, utiliser SNI présente le défaut de divulguer une partie des métadonnées
(le nom du domaine du destinataire parmi les N domaines cohébergés) à un
attaquant passif écoutant le réseau.
# 3. La contre-mesure : DNSSEC et DANE
Comme vu dans les précédentes sections de cet article, DNSSEC fournit une aide
contre les attaquants actifs. Notamment, les signatures cryptographiques des
enregistrements DNS permettent dassurer lintégrité et lauthentification de la
source des données des technologies SPF, DKIM et DMARC. En outre, une
vérification effective des informations contenues dans les certificats TLS
pourrait être effectuée puisque DNSSEC confirme lauthenticité des noms présents
dans les enregistrements MX.
Un aspect « chiffrement opportuniste » demeure néanmoins, lors du signalement de
la prise en charge de TLS par le client et le serveur, avec `STARTTLS`, comme
expliqué dans la section 2.1 de cet article. Il est, bien sûr, possible de
refuser de communiquer avec toute personne noffrant pas TLS. Lattaquant qui
corrompt la négociation de TLS ne pratique alors quun déni de service, puisque
les deux parties refuseront de communiquer en labsence de canal chiffré. Ce
choix peut être raisonnable pour certains types dinfrastructures,
dinterconnexions ou dorganismes. Sur lInternet, et en particulier dans un
réseau comme SMTP où toute partie peut écrire à un autre, une telle
intransigeance nest cependant pas réaliste. En conséquence, il est nécessaire
de disposer dun mécanisme de signalement de la prise en charge de TLS qui soit
lui-même résistant aux attaquants actifs, largement déployable, et ce de manière
incrémentale.
DNS remplit le cahier des charges, avec son rôle dannuaire protégé en intégrité
par DNSSEC. Il est ainsi possible de publier un enregistrement DNS indiquant que
le serveur SMTP contacté prend en charge TLS ; cet enregistrement pourra alors
être récupéré par un client SMTP, au moment où il demande les enregistrements
MX.
La technologie DANE [^RFC6698] permet deffectuer ce signalement de la prise en
charge de TLS par la simple présence dun enregistrement DNS de type TLSA. Il
convient de noter que la spécification requiert que lenregistrement TLSA soit
signé et vérifiable par DNSSEC, ce qui apporte la protection contre lattaquant
actif.
Cet enregistrement est situé dans un sous-domaine des noms de domaine contenus
dans les enregistrements MX. Plus précisément, le nom du MX est préfixé de la
chaîne `_25._tcp.`. Ainsi, le serveur `smtp.gmail.com` pourrait disposer dun
enregistrement TLSA comme celui-ci :
```
_25._tcp.smtp.gmail.com. IN TLSA 3 1 1 Base64DuCertificatOuDeLaClefPublique
```
Lobjectif de DANE dépasse celui du simple signalement de prise en charge de
TLS, et permet notamment dépingler le certificat ou la clé publique qui doivent
être présentés par le serveur contacté. Pour cela, des outils comme [^GenTLSA]
permettent de générer lenregistrement TLSA à partir dun certificat. Il suffit
alors de le publier dans la zone DNS appropriée et de signer cette dernière avec
DNSSEC.
Côté serveurs SMTP expéditeurs, la configuration pour la prise en compte de DANE
est un peu moins aisée, puisquil faut valider les réponses DNSSEC dune part,
et configurer le serveur pour demander les enregistrements DANE dautre part. La
validation DNSSEC en elle-même devrait être effectuée par un résolveur validant
local (Unbound ou Knot-Resolver sont de bons choix). Ensuite, avec Postfix,
ladministrateur doit indiquer dans son fichier de configuration `main.cf` les
lignes suivantes :
```
smtp_tls_security_level = dane
smtp_dns_support_level = dnssec
```
Ces lignes indiquent à Postfix de se comporter comme suit : en présence dun
enregistrement TLSA validé, le serveur contacté doit prendre en charge TLS ; si
un attaquant actif corrompt léchange et que loption `STARTTLS` nest pas
négociée, Postfix ne transmet pas le courrier électronique. En cas derreur de
validation de lenregistrement TLSA, ou dabsence de réponse du serveur, le même
comportement conservatoire doit être adopté. Dans les cas où la réponse DNS
nest pas signée, ou si elle ne contient pas denregistrement TLSA, alors le
chiffrement opportuniste est employé avec le serveur contacté. En conséquence,
le mode dane de Postfix permet un déploiement progressif, offrant une sécurité
contre les attaquants actifs si DANE est employé, et conservant le chiffrement
opportuniste dans le cas contraire.
# 4. Conclusion
Dans cet article, nous avons étudié différentes menaces pouvant affecter les
échanges de courriers électroniques, en présence dun attaquant actif. La figure
1 rappelle ces dernières de manière synthétique.
![Synthèse des menaces étudiées dans cet article](./schema_smtp.jpg "Fig. 1 : Synthèse des menaces étudiées dans cet article pouvant affecter les échanges de courriers électroniques. Les flux en rouge sont créés ou modifiés par lattaquant.")
Nous avons également observé leffet positif que DNSSEC peut avoir pour
améliorer la sécurité des échanges de courriers électroniques. Hélas, son faible
taux de déploiement à ce jour, signifie que la plupart des courriers
électroniques peuvent être et sont la proie dattaques actives plus ou moins
ciblées (comme le cas tunisien, évoqué en section 2.1 nous la montré).
Les utilisateurs souhaitant échanger de manière confidentielle sont encouragés à
chiffrer le contenu de leurs courriers électroniques, en complément de la
protection offerte, de manière opportuniste ou non, par TLS. Il existe pour cela
plusieurs options, dont des moyens intégrés (comme S/MIME ou, dans une moindre
mesure, OpenPGP), ou non (comme ceux listés dans le catalogue des produits
certifiés par lANSSI). Dans le cas du chiffrement opportuniste, les métadonnées
de ces échanges ne sont, cependant, protégées que contre les écoutes passives
lors de leur transit sur le réseau. Les administrateurs de serveurs de courriers
électroniques souhaitant offrir une sécurité adéquate à leurs utilisateurs
contre les attaques actives devraient donc signer leurs zones DNS avec DNSSEC,
publier des enregistrements TLSA, et configurer leurs serveurs pour utiliser
DANE lorsquil est disponible.
Pour finir, publier des enregistrements SPF, DKIM et DMARC signés participe à
lutter contre les usurpations didentité. Il convient cependant dexiger des
signatures DNSSEC sur les enregistrements DMARC ou de désactiver lenvoi de
rapports dans son validateur DMARC, lorsque la configuration logicielle le
permet, afin déviter les exfiltrations de métadonnées sur les courriers
électroniques.
# 5. Remerciements
Je tiens à remercier mes relecteurs, Baloo (@baloose), Olivier Levillain et
Christophe Malinge, pour leurs remarques constructives qui ont significativement
contribué à lamélioration de cet article.
Merci également à Claudio Fiandrino pour son code TikZ pour topologies réseaux,
publié en [^CCBy].
# 6. Références
[^collect]: Outil de mesures DNS développé pour cet article : https://github.com/X-Cli/collectDNSSECEmailStats
[^ObsANSSI]: Observatoire de la résilience de lInternet français : https://www.ssi.gouv.fr/observatoire
[^SaferEmail]: Site de Google pour la consultation de statistiques de SMTP sur TLS : https://transparencyreport.google.com/safer-email/overview
[^Charte]: Charte de lANSSI pour lamélioration de la sécurité des échanges de courriers électroniques : https://www.ssi.gouv.fr/particulier/precautions-elementaires/charte-pour-la-securite-des-courriers-electroniques/
[^BSI]: Document équivalent au lien précédent, rédigé par lhomologue de lANSSI en Allemagne : http://www.project-consult.de/files/BSI_TR03108-1_Sichere_EMail.pdf
[^RFC6698]: The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol : TLSA https://tools.ietf.org/html/rfc6698
[^RFC6844]: DNS Certification Authority Authorization (CAA) Resource Record : https://tools.ietf.org/html/rfc6844
[^EtudeCAA]: CAA Study : https://caastudy.github.io/
[^EtudeDANE]: Measuring DANE TLSA Deployment : https://www.isi.edu/~liangzhu/presentation/dns-oarc/dane_tlsa_survey.pdf
[^CABForumBR]: Baseline Requirements Documents : https://cabforum.org/baseline-requirements-documents/
[^RFC7208]: Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1 : https://tools.ietf.org/html/rfc7208
[^RFC6376]: DomainKeys Identified Mail (DKIM) Signatures : https://tools.ietf.org/html/rfc6376
[^RFC8020]: NXDOMAIN : There Really Is Nothing Underneath : https://tools.ietf.org/html/rfc8020
[^RFC7489]: Domain-based Message Authentication, Reporting, and Conformance (DMARC) : https://tools.ietf.org/html/rfc7489
[^RainSnowMITM]: Neither Snow Nor Rain Nor MITM… An Empirical Analysis of Email Delivery Security : https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/43962.pdf
[^CCBy]: Attribution 2.5 Generic : https://creativecommons.org/licenses/by/2.5/
[^GenTLSA]: https://www.huque.com/bin/gen_tlsa
Publié par les [Editions Diamond](https://connect.ed-diamond.com/MISC/misc-097/smtp-la-killer-app-de-dnssec) sous licence [CC-BY-NC-ND](https://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr).