
Kort sagt Àr MTA-STS ett sÀtt att ytterligare skydda e-post frÄn avlyssning (dvs. man-in-the-middle-attacker aka MitM) under överföring mellan e-postservrar. Det delvis löser de Àrvda arkitekturproblem som finns med e-postprotokoll och beskrivs i den relativt nya standarden RFC 8461. Mail.ru Àr den första stora e-posttjÀnsten i Ryssland som implementerar denna standard. Mer detaljerad information finns under texten.
Vilket problem löser MTA-STS?
Historiskt sett har e-postprotokollen (SMTP, POP3, IMAP) överfört information i klartext, vilket gör det möjligt att avlyssna den, exempelvis via en sÀkerhetslucka i kommunikationskanalen.
SÄ hÀr ser mekanismen för att leverera ett meddelande frÄn en anvÀndare till en annan ut:

Historiskt sett har MitM-attacker varit möjliga vid alla punkter dÀr e-post passerar.
Standard RFC 8314 krÀver obligatorisk anvÀndning av TLS mellan anvÀndarens e-postprogram (MUA) och e-postservern. Om din server och de anvÀnda e-postapplikationerna följer RFC 8314 har du (i stor utstrÀckning) eliminerat möjligheten för man-in-the-middle-attacker mellan anvÀndaren och e-postservrarna.
Att följa allmÀnt vedertagna metoder (standardiserade RFC 8314) eliminerar attacker nÀra anvÀndaren:

Mail.ru:s e-postservrar har följt RFC 8314 redan innan standarden antogs, vilket innebÀr att det bara bekrÀftar redan etablerade metoder och vi behövde inte stÀlla in nÄgot ytterligare. Men om din e-postserver fortfarande tillÄter anvÀndning av osÀkra protokoll, se till att implementera rekommendationerna i denna standard, eftersom det troligtvis finns minst en del av dina anvÀndare som arbetar med e-post utan kryptering, Àven om du stödjer det.
E-postklienten arbetar alltid med en och samma e-postserver frÄn samma organisation. Det Àr möjligt att pÄtvinga alla anvÀndare att koppla upp sig pÄ ett sÀkert sÀtt, efter vilket det blir tekniskt omöjligt att ansluta osÀkert (detta krÀver just RFC 8314). Det kan ibland vara svÄrt, men Àr genomförbart. Med trafiken mellan e-postservrar Àr det Ànnu mer komplicerat. Servrarna tillhör olika organisationer och anvÀnds ofta i ett "installera och glömma"-lÀge, vilket gör en samtidig övergÄng till ett sÀkert protokoll omöjlig utan att bryta kontinuiteten. Utökningsbara STARTTLS har funnits i SMTP under en lÄng tid, vilket tillÄter servrar som stödjer kryptering att vÀxla till TLS. Men en angripare som har möjlighet att pÄverka trafiken kan "klippa" information om stöd för detta kommando och tvinga servrarna att kommunicera via ett vanligt textprotokoll (sÄ kallad nedgraderingsattack). Av samma anledning verifieras vanligtvis inte certifikat överensstÀmmelse för STARTTLS (ett otillförlitligt certifikat kan skydda mot passiva attacker, och det Àr inte sÀmre Àn att skicka ett meddelande i klartext). DÀrför skyddar STARTTLS endast mot passiv avlyssning.
MTA-STS delvis löser problemet med avlyssning av e-post mellan e-postservrar, nÀr en angripare har möjlighet att aktivt pÄverka trafiken. Om mottagarens domÀn publicerar en MTA-STS-policy och avsÀndarens server stödjer MTA-STS, kommer den att skicka e-post endast över en TLS-anslutning, endast till servrar som anges i policyn och endast med certifikatverifiering av servern.
Varför delvis? MTA-STS fungerar endast om bÄda parter har sÀkerstÀllt implementationen av denna standard och MTA-STS skyddar inte mot scenarier dÀr en angripare har möjlighet att fÄ ett giltigt domÀncertifikat frÄn en av de offentliga CA.
Hur fungerar MTA-STS
Mottagare
- Konfigurerar stöd för STARTTLS med ett giltigt certifikat pĂ„ e-postservern.Â
- Publicerar via HTTPS en MTA-STS-policy, för publiceringen anvÀnds en speciell domÀn mta-sts och en speciell well-known sökvÀg, till exempel
https://mta-sts.mail.ru/.well-known/mta-sts.txt. Policyn innehÄller en lista över e-postservrar (mx) som har rÀtt att ta emot e-post för denna domÀn. - Publicerar en speciell TXT-post _mta-sts i DNS med policyns version. NÀr policyn Àndras mÄste denna post uppdateras (det signalerar till avsÀndaren att den behöver begÀra policyn pÄ nytt). Till exempel,
_mta-sts.mail.ru. TXT "v=STSv1; id=20200303T120000;"
Afsender
AvsÀndaren begÀr DNS-posten _mta-sts, och om den finns görs en policyns begÀran via HTTPS (som kontrollerar certifikatet). Den mottagna policyn cachas (ifall en angripare blockerar Ätkomst till den eller manipulerar DNS-posten).
Vid e-postavsÀndning kontrolleras att:
- servern som e-posten levereras till finns i policyn;
- servern tar emot e-post med hjÀlp av TLS (STARTTLS) och har ett giltigt certifikat.
Fördelar med MTA-STS
MTA-STS anvÀnder teknologier som redan Àr implementerade i de flesta organisationer (SMTP+STARTTLS, HTTPS, DNS). Ingen speciell mjukvarustöd krÀvs pÄ mottagarens sida för att genomföra standarden.
Nackdelar med MTA-STS
Det Àr nödvÀndigt att övervaka giltigheten av certifikatet för webb- och e-postserver, namnens överensstÀmmelse och snabb uppdatering. Problem med certifikatet leder till att e-post inte kan levereras.
PÄ avsÀndarens sida krÀvs en MTA som stödjer MTA-STS-policyer, för nÀrvarande stöds MTA-STS inte "out-of-the-box" i MTA.
MTA-STS anvÀnder en lista över betrodda rot-CA.
MTA-STS skyddar inte mot attacker dÀr en angripare anvÀnder ett giltigt certifikat. I de flesta fall innebÀr MitM i nÀrheten av servern möjlighet att utfÀrda ett certifikat. En sÄdan attack kan upptÀckas tack vare Certificate Transparency. DÀrför mildrar MTA-STS överlag men eliminerar inte helt möjligheten till trafikavlyssning.
De tvÄ senaste punkterna gör MTA-STS mindre skyddad Àn den konkurrerande standarden DANE för SMTP (RFC 7672), men mer tekniskt pÄlitlig, det vill sÀga att risken för att ett meddelande inte levereras pÄ grund av tekniska problem orsakade av implementeringen av standarden Àr lÄg för MTA-STS.
Den konkurrerande standarden Àr DANE
DANE anvÀnder DNSSEC för att publicera information om certifikat och krÀver inget förtroende för externa certifikatutfÀrdare, vilket Àr betydligt sÀkrare. Men anvÀndning av DNSSEC leder avsevÀrt oftare till tekniska fel, om man ser pÄ statistiken frÄn flera Ärs anvÀndning (Àven om det finns en positiv trend i tillförlitligheten och det tekniska stödet för DNSSEC). För att implementera DANE i SMTP pÄ mottagarens sida Àr det obligatoriskt med DNSSEC för DNS-zonen, och för DANE Àr det viktigt att korrekt stödja NSEC/NSEC3, dÀr DNSSEC har systemproblem.
Om DNSSEC Àr felkonfigurerat kan det leda till avvisningar av e-post, om avsÀndarens sida stöder DANE, Àven om mottagarsidan inte vet nÄgot om det. DÀrför, trots att DANE Àr en Àldre och sÀkrare standard som redan stöds i viss serverprogramvara pÄ avsÀndarsidan, förblir dess genomslag litet, mÄnga organisationer Àr inte beredda att implementera det pÄ grund av behovet av att genomföra DNSSEC, vilket har fördröjt införandet av DANE under de Är som standarden har funnits.
DANE och MTA-STS stÄr inte i konflikt med varandra och kan anvÀndas tillsammans.
Vad med MTA-STS-stödet i Mail.ru?
Mail.ru har lÀnge publicerat MTA-STS-policies för alla stora domÀner. Just nu arbetar vi med att implementera klientdelen av standarden. Vid tidpunkten för denna artikels skrivande tillÀmpas policyn i ett icke-blockerande lÀge (om leveransen blockeras av policyn kommer meddelandet att levereras via en "reserv"-server utan att följa policyn), och sedan kommer vi att tvinga in en blockerande lÀge för en liten del av den utgÄende SMTP-trafiken, gradvis kommer 100% av trafiken att stödja tillÀmpningen av policyn.
Vilka fler stöder standarden?
För nÀrvarande publicerar ungefÀr 0.05% av aktiva domÀner MTA-STS-policyn, men de skyddar redan en stor mÀngd e-posttrafik, eftersom stora aktörer som Google, Comcast och delvis Verizon (AOL, Yahoo) stöder standarden. MÄnga andra e-posttjÀnster har meddelat att de kommer att implementera stödet för standarden inom en snar framtid.
Hur pÄverkar detta mig?
Inga, om din domÀn inte publicerar en MTA-STS-policy. Om du publicerar en policy blir e-postmeddelanden för anvÀndare pÄ din e-postserver bÀttre skyddade mot avlyssning.
Hur implementerar jag MTA-STS?
MTA-STS-stöd pÄ mottagarens sida
Det rÀcker med att publicera en policy via HTTPS och DNS-poster, konfigurera ett giltigt certifikat frÄn en av de betrodda CA:erna (Let's Encrypt kan anvÀndas) för STARTTLS i MTA (STARTTLS stöds i alla moderna MTA:er), ingen sÀrskild support frÄn MTA behövs.
I steg ser det ut sÄ hÀr:
- Konfigurera STARTTLS i den anvÀnda MTA:n (postfix, exim, sendmail, Microsoft Exchange, etc.).
- Se till att ett giltigt certifikat anvÀnds (utgivet av en betrodd CA, ogiltigt certifikat eller motsvarande objekt för certifikatet som stÀmmer överens med MX-posten för din domÀn).
- Konfigurera en TLS-RPT-post dÀr rapporter om policyernas tillÀmpning levereras (tjÀnster som stöder rapportutskick av TLS). Exempel pÄ post (för domÀnen example.com):
smtp._tls.example.com. 300 IN TXT "v=TLSRPTv1; rua=mailto:tlsrpt@example.com"Denna post instruerar avsÀndare att skicka statistiska rapporter om anvÀndning av TLS i SMTP till adressen
tlsrpt@exmple.com.HÄll koll pÄ rapporterna nÄgra dagar, se till att det inte finns nÄgra fel.
- Publicera MTA-STS-policyn via HTTPS. Policyn publiceras som en textfil med CRLF radavslutare pÄ angiven plats.
https://mta-sts.example.com/.well-known/mta-sts.txtExempel pÄ policy:
version: STSv1 mode: enforce mx: mxs.mail.ru mx: emx.mail.ru mx: mx2.corp.mail.ru max_age: 86400FÀltet version innehÄller policyversionen (just nu Àr det
STSv1), mode anger tillĂ€mpningslĂ€ge för policyn, testing â testlĂ€ge (policyn tillĂ€mpas inte), enforce â "standardlĂ€ge". Publicera först policyn med mode: testing, om det inte finns nĂ„gra problem med policyn i testlĂ€get, kan du efter ett tag vĂ€xla till mode: enforce.I mx anges en lista över alla e-postservrar som kan ta emot e-post för din domĂ€n (varje server mĂ„ste ha ett certifikat som motsvarar namnet som anges i mx). Max_age anger tiden för cachelagring av policyn (en gĂ„ng inlĂ€st kommer policyn att tillĂ€mpas Ă€ven om en angripare blockerar dess avlĂ€mning eller gör DNS-posterna ogiltiga under cachelagringstiden, signal om att policyn mĂ„ste begĂ€ras pĂ„ nytt kan ges genom att Ă€ndra mta-sts-posten i DNS).
- Publicera en TXT-post i DNS:Â
_mta-sts.example.com. TXT "v=STS1; id=someid;"I fÀltet id kan en godtycklig identifierare (t.ex. tidsstÀmpel) anvÀndas, och vid förÀndring av policyn mÄste den Àndras. Detta gör det möjligt för avsÀndarna att förstÄ att den cachade policyn mÄste begÀras pÄ nytt (om identifieraren skiljer sig frÄn den cachade).
Stöd för MTA-STS pÄ avsÀndarsidan
Det gÄr fortfarande dÄligt med det, eftersom standarden Àr ny.
- Exim â ingen inbyggd support, det finns ett tredjeparts skript Â
- Postfix â ingen inbyggd support, det finns ett tredjeparts skript som beskrivs i detalj pĂ„ Habr.
Som en slutkommentar om "mandatory TLS"
Nyligen har reglerare börjat fokusera pÄ sÀkerheten inom e-post (och det Àr bra). Till exempel Àr DMARC obligatoriskt för alla statliga institutioner i USA och blir allt oftare ett krav inom finanssektorn; i reglerade omrÄden nÄr standardens genomslag 90%. Vissa reglerare krÀver nu implementering av "mandatory TLS" med sÀrskilda domÀner, men mekanismen för att sÀkerstÀlla "mandatory TLS" definieras inte, och i praktiken implementeras denna instÀllning ofta pÄ ett sÀtt som minimalt skyddar mot verkliga attacker, som redan beaktas i mekanismer som DANE eller MTA-STS.
Om regleraren krÀver implementering av "mandatory TLS" med sÀrskilda domÀner, rekommenderar vi att övervÀga MTA-STS eller dess partiella analog som den mest lÀmpliga mekanismen. Det eliminerar behovet av att göra sÀkra instÀllningar för varje domÀn individuellt. Om du har problem med att implementera klientdelen av MTA-STS (tills protokollet fÄr bred support, kommer det förmodligen att uppstÄ), kan ett sÄdant tillvÀgagÄngssÀtt rekommenderas:
- Publicera MTA-STS policyn och/eller DANE-poster (DANE har mening att lÀgga till endast om DNSSEC redan Àr aktiverat för din domÀn, samt MTA-STS i alla fall). Detta skyddar trafiken mot din sida och eliminerar behovet av att be andra e-posttjÀnster att stÀlla in mandatory TLS för din domÀn, om e-posttjÀnsten redan stöder MTA-STS och/eller DANE.
- För stora e-posttjÀnster implementera en "analog" till MTA-STS genom separata transportinstÀllningar för varje domÀn, som faststÀller den MX som anvÀnds för e-postrelay och som kommer att krÀva obligatorisk verifiering av TLS-certifikatet. Om domÀner redan publicerar en MTA-STS-policy, kan detta troligtvis göras utan problem. Att enbart aktivera obligatorisk TLS för en domÀn utan att faststÀlla relÀet och verifiera certifikatet Àr ineffektivt ur sÀkerhetssynpunkt och tillför inget till de befintliga STARTTLS-mekanismerna.
KĂ€lla: habr.com
