Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Email Authentication

Email Authentication

Email authentication stack with SPF, DKIM and DMARC. Conférence faite dans le cadre du Barcamp Benin, édition 2014

Alfred Arouna

November 22, 2014
Tweet

More Decks by Alfred Arouna

Other Decks in How-to & DIY

Transcript

  1. . . . EMAIL . Gestion de l'authentication avec SPF,

    DKIM et DMARC . Barcamp Bénin 2014 - ESGIS BENIN . 22 novembre 2014 . Hospice Alfred Arouna
  2. . . . SOMMAIRE 1 Le mail 2 Les problèmes

    3 Framework d'authentification SPF DKIM DMARC *Obsolètes 4 Solutions de mise en oeuvre 5 Pour allez plus loin 2
  3. . . . QU'EST-CE QUE LE MAIL ? Vous avez

    dit courrier électronique ? Le courrier électronique d'Internet repose sur deux piliers : ◦ RFC 5321 Simple Mail Transfer Protocol comme protocole d'échange des messages. ◦ RFC 5322 Internet Message Format qui spécifie le format des messages RFC 5321 gère l'enveloppe du mail pour son acheminement. RFC 5322 gère le contenu du mail qui peut être transporté par SMTP. Analogie de la poste ◦ La lettre avec son contenu suivant un format : courrier administrative ◦ L'enveloppe pour l'acheminement de la lettre à disposition. Email : nimportequoi@nimportequoi 4
  4. . . . LE MAIL, POUR PERSONNES DE BONNE FAMILLE

    ? Pas du tout sûr Impossible d'authentifier l'expéditeur. Facilité de forger des emails (expéditeur) Facilité d'usurper des emails (expéditeur) Facilité d'usurper une adresse IP Facilité de porter atteinte au contenu du mail. ... 7
  5. . . . SENDER POLICY FRAMEWORK (1/2) Sender Policy Framework

    (1/2) Sender Policy Framework ou SPF (RFC 7208) est un standard ouvert permettant de prévenir l'usurpation de l'expéditeur. La version actuel (SPFv1) protège la partie expéditeur de l'enveloppe du courrier qui est utilisé pour le transport. SPF permet au propriétaire d'un domaine de définir dans un enregistrement DNS, ses règles (politique) d'envoi de courrier ; par exemple quel serveur est autorisé à envoyé du courrier pour ce domaine. 9
  6. . . . SENDER POLICY FRAMEWORK (2/2) Sender Policy Framework

    (2/2) SPF combine deux composantes : 1. Publication dans la zone de la politique dans une ressource de type SPF et TXT. 2. Vérification de la politique par le serveur mail de réception. $ dig +short txt arouna.net "v=spf1 mx:arouna.net include:websitewelcome.com a -all" $ dig +short txt client.isoceltelecom.net "v=spf1 a mx -all" $ dig +short txt uac.bj "v=spf1 mx a:tempest.info.ucl.ac.be ~all" $ dig +short txt otitelecom.com "v=spf1 mx a:zimbraserver.otitelecom.com ip4:41.74.9.234/30 -all" $ dig +short txt isoceltelecom.com "v=spf1 mx a:mail.isoceltelecom.com ptr:mail.isocelmail.com mx:mail.isoceltelecom.com mx:mx20.isoceltelecom.com a:mail.isocelmail.com include:mail.isocelmail.com mx:mail.isocelmail.com -all" → → $ dig +short txt moov.bj "v=spf1 ip4:41.191.70.130 ~all" "v=spf1 ip4:41.191.70.131 ~all" 10
  7. . . . DOMAINKEYS IDENTIFIED MAIL(1/3) DomainKeys Identied Mail (1/3)

    Il est toujours possible ◦ De modifier le mail lors de son passage. ◦ D'usurper *l'adresse IP d'*un serveur de messagerie. DomainKeys Identified Mail (RFC 4871) déporte la signature de l'email du MUA au MTA. Derive du DomainKeys de Yahoo ! et du Cisco Identified Internet Mail. Permet à une organisation (au sens DNS du terme) d'assumer la responsabilité pour la transmission d'un message, d'une manière qui peut être vérifié par un destinataire. Fonctionne par signature cryptographique du corps du message et d'une partie de ses en-têtes. Transparent pour les utilisateurs. 11
  8. . . . DOMAINKEYS IDENTIFIED MAIL (2/3) DomainKeys Identied Mail

    (2/3) Valide l'émetteur et l'intégrité du message. End-to-end (échange directe entre serveurs) Source : 1. Publication dans la zone de la clé publique (se fait en une fois normalement) 2. Signature de certaines parties du mail avec la clé privée. 3. Envoi du mail avec l'entête DKIM-Signature # dig +short txt dkim2k._domainkey.client.isoceltelecom.net "v=DKIM1; k=rsa; s=email; " "p=MIIBIjANBgkqhkiG9w0BAQEFAA..." 12
  9. . . . DOMAINKEYS IDENTIFIED MAIL(3/3) DomainKeys Identied Mail (3/3)

    Réception : 1. Vérification de la signature du mail par le serveur de réception. Ne précise pas l'attitude à tenir en cas d'absence de signature DKIM ou de signature invalide ... Received: by smtp.client.isoceltelecom.net ... DKIM-Signature : v=1 ; a=rsa-sha256 ; c=simple/simple ; d=client.isoceltelecom.net ; s=dkim2k ; t=1413623933 ; bh=0SkFV1BD6HvC0yytwQcSR1fGSPzKmBP/0eVoYrbyqfo=; h=Subject :From :To :Date ; b=UQY+Lj6Qo6Evaz5/aQYJ0GIJ8IfxlRtfxCGxEsIfI9aQOpq09j0D5k76HXaGAN9NJ f6Y3SlnkDEnrrAzf/meJYgBHtgYu0U1AGRELckKLuKEfPsxy7lx3IG52eeYe5gFkmQ HNPedV8NeHGBqUsAF9RWlLp/enVolYLDkc1qy3QQe+XfdQ7eB8DjArvZR4PblSh98p rOy773EWx6xUh1sZnGgIMz3EmPgf0F8qXa0gXKEuGny07oo4JY/tsYzBeuT0gsDnzF bpi4zVgl/91i2DO41b85iv0J5htD6FEC87dQWMtWAKHlgN0w53PXb/6KQR3b3QG98q so8EgB/K5SrJw== Subject: Abuse from <ip> ... 13
  10. . . . DMARC (1/4) Domain-based Message Authentication, Reporting &

    Confor- mance Définition des méthodes d'authentification : SPF et/ou DKIM Conduite à tenir au cas où ces méthodes d'authentification échouent. Le R de DMARC permet au destinataire d'envoyer des rapports d'évaluation (de DMARC) avec succès ou non à l'émetteur. Non encore complètement standardisé. 15
  11. . . . DMARC (2/4) Domain-based Message Authentication, Reporting &

    Confor- mance Définition des méthodes d'authentification : SPF et/ou DKIM Conduite à tenir au cas où ces méthodes d'authentification échouent. Le R de DMARC permet au destinataire d'envoyer des rapports d'évaluation (de DMARC) avec succès ou non à l'émetteur. Non encore complètement standardisé. 16
  12. . . . DMARC (3/4) Figure : DMARC and the

    Email Authentication Process http://dmarc.org/overview.html 17
  13. . . . DMARC (4/4) dig +short txt _dmarc.client.isoceltelecom.net "v=DMARC1\

    ; p=reject\ ;sp=reject\ ;pct=100\ ;" "adkim=r\ ;aspf=r\ ;fo=1\ ;rua=mailto:[email protected]\ ; ruf=mailto:[email protected]" → → Exemple d'en-tête correcte : [...] Received: from smtp.client.isoceltelecom.net ([41.86.224.73]) by mx.google.com with ESMTP id ct6si2629715wib.67.2014.11.21.23.46.57 for <[email protected]> ; Fri, 21 Nov 2014 23 :46 :57 -0800 (PST) Received-SPF : pass (google.com : domain of [email protected] designates 41.86.224.73 as permitted sender) client-ip=41.86.224.73 ; → Authentication-Results : mx.google.com ; spf=pass (google.com : domain of [email protected] designates 41.86.224.73 as permitted sender) [email protected] ; → dkim=pass [email protected] ; dmarc=pass (p=REJECT dis=NONE) header.from=client.isoceltelecom.net DKIM-Signature : v=1 ; a=rsa-sha256 ; c=simple/simple ; d=client.isoceltelecom.net ; s=dkim2k ; t=1416642411 ; bh=wHdbINuSKJ3RxHtq0jQJstPvd4WgQPGerh2NzMUMRcM=; h=Date :From :To :Cc :Subject ; b=peJorCuvGMXAhx+QelMr09J61H7Lee2uQUi4wPyKqe54EJSe0VYdm2XC97GQ3eO8C 3Kz977EMwSC1YpfztYi1LJFUMy5v3lKkrzmd/K1/2cZFMwd3H1QW4Szw4xrE40atav GaFDHcMQmW6eBokqUkh3GsIX7NGhoZ2RTXl1K7ryiSsa+pMeUK5pptckJuv9jSKmd1 kTVJUgfDooKoe7qxZ94tyQG+51ove7x9/dLaLEKJ/FqRUNuCPZ55UZA89f5N0etPaX czpMgHLgcarHQ== Date: Sat, 22 Nov 2014 08 :46 :51 +0100 From: Hospice Alfred AROUNA <[email protected]> To: [email protected] [...] 18
  14. . . . *OBSOLÈTES Solutions considérées comme obsolètes Author Domain

    Signing Practices (RFC 5617) reclassifer comme « intérêt historique seulement » 1. Son rôle était pourtant intéressant : publier ses pratiques de signature DKIM au cas où le mail ne serait plus signer avec DKIM. Vouch by Reference (RFC 5518) basé sur une chaîne de confiance à partir d'une autorité comme pour les certificats X.509 du HTTPS. Forward-confirmed reverse DNS 2 qui n'est pour le moment essentiellement que de la vérification de PTR 1. http://datatracker.ietf.org/doc/status-change-adsp-rfc5617-to-historic/ 2. https://tools.ietf.org/html/draft-ietf-dnsop-reverse-mapping-considerations- 19
  15. . . . OUTILS DE MISE EN OEUVRE DNS :

    tout serveur DNS (Bind,etc). SMTP : tout serveur de messagerie (postfix, sendmail, etc). DKIM : OpenDKIM 3 DMARC : OpenDMARC 4 Enregistrement DNS classique : ◦ SPF ◦ PTR ◦ Clé publique DKIM ◦ Règle DMARC Le DNS est le maillon faible du système. D'où l'intérêt de le protéger (TSIG et DNSSEC) 3. http://www.opendkim.org/ 4. http://www.trusteddomain.org/opendmarc/ 21
  16. . . . LOGS AVEC POSTFIX (1/2) Exemple en envoi

    : 1 [...] 2 Nov 22 08 :46 :51 client postfix/smtpd[3156]: setting up TLS connection from localhost[127.0.0.1] → 3 Nov 22 08 :46 :51 client postfix/smtpd[3156]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits) → 4 Nov 22 08 :46 :51 client postfix/smtpd[3156]: 513CA2C1CAE : client=localhost[127.0.0.1], sasl_method=LOGIN, [email protected] → 5 Nov 22 08 :46 :51 client postfix/cleanup[3161]: 513CA2C1CAE : message-id=<[email protected]> → 6 Nov 22 08 :46 :51 client opendkim[1706]: 513CA2C1CAE : DKIM-Signature field added (s=dkim2k, d=client.isoceltelecom.net) → 7 Nov 22 08 :46 :51 client postfix/qmgr[2048]: 513CA2C1CAE : from=<[email protected]>, size=1327, nrcpt=2 (queue active) → 8 [...] 22
  17. . . . LOGS AVEC POSTFIX (2/2) En réception. 1

    [...] 2 Nov 22 09 :02 :09 client postfix/smtpd[5207]: Anonymous TLS connection established from mail-wg0-f44.google.com[74.125.82.44]: TLSv1 with cipher RC4-SHA (128/128 bits) → 3 Nov 22 09 :02 :11 client postgrey[1948]: action=pass, reason=client whitelist, client_name=mail-wg0-f44.google.com, client_address=74.125.82.44, [email protected], [email protected] → → 4 Nov 22 09 :02 :11 client policyd-spf[5214]: Pass ; identity=mailfrom ; client-ip=74.125.82.44 ; helo=mail-wg0-f44.google.com ; [email protected] ; [email protected] → → 5 Nov 22 09 :02 :18 client opendkim[1706]: 807062C1CAE : mail-wg0-f44.google.com [74.125.82.44] not internal → 6 Nov 22 09 :02 :19 client opendkim[1706]: 807062C1CAE : DKIM verification successful 7 Nov 22 09 :02 :19 client opendkim[1706]: 807062C1CAE : s=20120113 d=gmail.com SSL 8 Nov 22 09 :02 :19 client opendmarc[2713]: 807062C1CAE : gmail.com none 9 Nov 22 09 :02 :19 client postfix/qmgr[2048]: 807062C1CAE : from=<[email protected]>, size=3866, nrcpt=1 (queue active) → 10 Nov 22 09 :02 :19 client postfix/smtpd[5207]: disconnect from mail-wg0-f44.google.com[74.125.82.44] → 11 Nov 22 09 :02 :22 client postfix/qmgr[2048]: 2AB272C1F18 : from=<[email protected]>, size=4556, nrcpt=1 (queue active) → 12 Nov 22 09 :02 :22 client amavis[12213]: (12213-10) Passed CLEAN {RelayedOpenRelay}, [74.125.82.44]:45748 [41.222.192.28] <[email protected]> -> <[email protected]>, Message-ID : <[email protected]>, mail_id : dMxTy1ATXwH3, Hits : -0.8, size : 4099, queued_as : 2AB272C1F18, dkim_sd=20120113 :gmail.com, 2745 ms → → → → 13 [...] 23
  18. . . . RESSOURCES Syntaxe SPF 5 DKIM 6 DMARC

    7 Verifier la validité des enregistrements : https://dmarcian.com/spf-survey/ zytrax howto ◦ SPF 8 ◦ DKIM 9 ◦ DMARC 10 5. http://www.openspf.org/SPF_Record_Syntax 6. http://www.dkim.org/ 7. https://datatracker.ietf.org/doc/draft-kucherawy-dmarc-base/ 8. http://www.zytrax.com/books/dns/ch9/spf.html 9. http://www.zytrax.com/books/dns/ch9/dkim.html 10. http://www.zytrax.com/books/dns/ch9/dmarc.html 25