Moodul 5 · 5.4
Krüpteeritud edastus: TLS, MTA-STS ja DANE
Moodul 5: Maine ja suured teenusepakkujad · Lugemisaeg: 10 minutit
Õpieesmärk: pärast seda tundi oskad sa selgitada, kuidas meiliserverid omavahel krüpteerivad, miks see vaikimisi ei ole jõustatav, ja mida MTA-STS, TLS-RPT ja DANE selle juures muudavad. Oskad kirjeid üles otsida ja lugeda.
Põhimõisted: STARTTLS serverite vahel, oportunistlik krüpteerimine, allaastme rünne (downgrade), MTA-STS (RFC 8461), _mta-sts-kirje, reeglite fail, režiim testing/enforce/none, TLS-RPT (RFC 8460), _smtp._tls-kirje, DANE SMTP jaoks (RFC 7672), TLSA-kirje, DNSSEC
Kaks tüüpi ühendusi
Tund 1.4 rääkis ühendusest sinu meiliprogrammi ja su teenusepakkuja meiliserveri vahel: port 587 koos STARTTLS-iga või 465 koos otsese TLS-iga, koos sisselogimisega. Seal on kontroll sinu enda käes. Sinu programm teab, millist serverit ta ootab, kontrollib sertifikaati ja keeldub ühendumast, kui midagi ei klapi.
See tund räägib järgmisest sammust: ühendusest saatva serveri ja vastuvõtva serveri vahel, pordil 25. See toimib teisiti.
Oportunistlik: krüpteeri, kui saab
Kui server edastab kirja, loob ta ühenduse vastuvõtja MX-serveriga. Pärast EHLO-d vaatab ta, kas vastuvõttev server pakub STARTTLS-i. Kui jah, lülitub ta krüpteeritud ühendusele. Kui ei, edastab ta kirja lihtsalt krüpteerimata.
Seda nimetatakse oportunistlikuks krüpteerimiseks: krüpteeri, kui saab, muidu mitte. Ja enamasti ei kontrolli saatev server sertifikaati rangelt. Aegunud või ise loodud sertifikaat ei ole siis põhjus peatuda.
Miks nii? Sest e-post peab alati töötama, ka vanade serveritega. Saatja ei saa teada, kas vastuvõtjal peaks olema TLS. See teeb võimalikuks kaks rünnet:
- Allaaste (downgrade). Keegi, kes saab liiklust teel muuta, eemaldab sõna
STARTTLSvastuvõtja vastusest. Saatja arvab, et krüpteerimist pole, ja edastab krüpteerimata. Ründaja loeb kaasa. - Vale MX. Keegi, kes suudab DNS-vastuseid võltsida, annab MX-ina üles oma serveri. Kuna sertifikaati ei kontrollita, ei märka saatja midagi.
Tänapäeval krüpteerivad peaaegu kõik suured meiliserverid, ja Gmail nõuab saatjatelt TLS-i kasutamist (tund 5.3). Kuid „enamasti krüpteeritud" on midagi muud kui „alati ja õige serveriga". Selle jaoks on kaks lahendust: MTA-STS ja DANE. Mõlemad seadistab vastuvõtja: nendega annad teada, et kirjad sinu domeenile peavad alati olema krüpteeritud, kehtiva sertifikaadiga serveri kaudu.
MTA-STS: reeglid veebilehe kaudu
MTA-STS (Mail Transfer Agent Strict Transport Security, RFC 8461) töötab kahe osaga.
TXT-kirje, mis ütleb, et reeglid on olemas:
_mta-sts.example.com. 3600 IN TXT "v=STSv1; id=20261108T120000;"Ja reeglite fail kindlas kohas, https kaudu kehtiva sertifikaadiga:
https://mta-sts.example.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mx1.example.com
mx: mx2.example.com
max_age: 604800| Rida | Tähendus |
|---|---|
mode: enforce | Edasta ainult TLS kaudu kehtiva sertifikaadiga ühel nimetatud MX-serveritest. Kui see ei õnnestu, ei edastata (jääb järjekorda) |
mode: testing | Edasta nagu tavaliselt, aga teata probleemidest TLS-RPT kaudu |
mode: none | Reegleid (enam) pole |
mx: | Nende MX-serverite nimed, mis peavad sertifikaati kandma; *. alguses on lubatud |
max_age: | Kui kaua (sekundites) tohib saatja reegleid meeles pidada |
id= TXT-kirjes | Versiooninumber. Kui muudad reegleid, muuda ka id-d, et saatjad tooks faili uuesti |
Nutikas osa: saatja peab reegleid meeles max_age aja jooksul. Ründaja, kes hiljem eemaldab STARTTLS-sõna või annab vale MX-i, jääb siis vahele: reeglid ütlevad, et krüpteerimine on kohustuslik ja millised serverid on kehtivad. Kõige esimese ühenduse ajal (enne reeglite teadasaamist) MTA-STS ei kaitse; see on tuntud nõrk koht.
Tõeline näide on gmail.com: TXT-kirje _mta-sts.gmail.com on olemas ja reeglite fail aadressil https://mta-sts.gmail.com/.well-known/mta-sts.txt on seatud mode: enforce peale.
TLS-RPT: aruanded ebaõnnestunud krüpteerimisest
MTA-STS-iga režiimil enforce võib kiri kinni jääda, kui su sertifikaadiga on midagi valesti. Seda soovid teada. Selleks on TLS-RPT (RFC 8460):
_smtp._tls.example.com. 3600 IN TXT "v=TLSRPTv1; rua=mailto:tlsrapport@example.com"Saatjad, kes toetavad TLS-RPT-d (muuhulgas Google ja Microsoft), saadavad siis iga päev aruande JSON-vormingus: mitu ühendust õnnestus ja millised ebaõnnestusid, koos põhjusega (näiteks aegunud sertifikaat või nimi, mida reeglites pole). Nagu DMARC-aruannete puhul (tund 4.5), saad lasta neid töödelda aruandeteenusel.
Järjekord kasutuselevõtmisel: esmalt TLS-RPT, siis MTA-STS režiimil testing, mõni nädal aruandeid lugeda, ja alles seejärel enforce. See sarnaneb DMARC-i nõuandejoonega: esmalt vaata, siis karmista.
DANE: sertifikaat DNS-is, DNSSEC-iga kaitstud
DANE (DNS-based Authentication of Named Entities) lahendab asja teisiti. Paned DNS-i iga MX-serveri juurde TLSA-kirje, koos sertifikaadi või võtme sõrmejäljega:
_25._tcp.mx1.example.com. 3600 IN TLSA 3 1 1 0d5a5c8f3d8aab82bba32bf8d711fa2433e4fe5fa4828b0443364d3ab5cdc1d5_25._tcp tähendab: SMTP jaoks pordil 25. Kolm numbrit ütlevad, kuidas väärtust lugeda. Meiliserverite jaoks on kõige levinum 3 1 1: „see on täpselt selle serveri avaliku võtme SHA-256-sõrmejälg". Esineb ka 2 1 1: siis on seal vaheserdi sõrmejälg.
Saatja, kes toetab DANE-t, näeb TLSA-kirjet, nõuab krüpteerimist ja kontrollib, kas serveri sertifikaat sobib. Kui ei sobi, ei edasta ta.
Miks on DANE turvaline võltsitud DNS-vastuste vastu? Sest see töötab ainult DNSSEC-iga (DNS-kursuse tund 8.1). Ilma kehtiva DNSSEC-ahelata eiratakse TLSA-kirjeid. See ongi lävend: nii sinu domeen (MX-i jaoks) kui meiliserveri tsoon peavad olema allkirjastatud.
DANE-l pole MTA-STS-i taolist „esimese korra" nõrkust, ja see on laialdaselt kasutusel. internet.nl testib seda. Microsoft toetab DANE-t sissetuleva kirja jaoks teenuses Exchange Online. Ka internet.nl MX-serveritel on TLSA-kirjed.
Lõks: kui vahetad DANE-ga meiliserveri sertifikaadi uue võtme vastu, peab TLSA-kirje kaasa muutuma, ja seda eelnevalt: esmalt lisa uus kirje, oota kuni TTL on lõppenud, alles siis võta uus võti kasutusele. Muidu keelduvad DANE-saatjad su kirja vastu võtmast. 3 1 1 puhul puudutab see ainult siis, kui võti muutub, mitte iga pikendamisel sama võtmega.
MTA-STS või DANE?
| MTA-STS | DANE | |
|---|---|---|
| Vajab DNSSEC-i | Ei | Jah |
| Kus see asub | TXT-kirje ja reeglite fail veebilehel | TLSA-kirje iga MX-serveri kohta |
| Kaitseb esimest ühendust | Ei | Jah |
| Hooldus | Veebileht ja sertifikaat mta-sts. jaoks ülal hoida | TLSA uuendamine uue võtme korral |
Võid neid kasutada koos. RFC 8461 ütleb, et saatja, kes toetab DANE-t, eelistab DANE-t, kui kehtivad TLSA-kirjed on olemas.
Kes selle korraldab?
Selle seadistad vastuvõtva kirja jaoks oma domeenil. Kui su e-post töötab majutusfirma või meiliteenuse juures, sõltub see sellest osapoolest:
- DANE toimib ainult siis, kui teenusepakkuja avaldab TLSA-kirjed oma meiliserverite jaoks ja sinu domeenil on DNSSEC. WebOké juures saad DANE-t sisse lülitada näiteks samas kohas kui DNSSEC-i (vaata allpool internet.nl artiklit); teiste teenusepakkujate juures töötab see sarnaselt või on vaikimisi seadistatud.
- MTA-STS saad mõnikord ise seadistada, aga siis peab
mta-sts.example.comolema veebileht kehtiva sertifikaadiga ja pead teadma oma teenusepakkuja MX-nimesid. - TLS-RPT saad alati ise seadistada: see on lihtsalt TXT-kirje koos aruandeaadressiga.
Oma väljuva kirja jaoks ei pea sa midagi tegema: su teenusepakkuja server otsustab, kas ta austab vastuvõtjate MTA-STS-i ja DANE-t.
Kokkuvõte
- Meiliserverite vahel on TLS vaikimisi oportunistlik: krüpteeritud kui saab, ilma range sertifikaadikontrollita. See teeb võimalikuks allaastme ja vale MX-i.
- MTA-STS: TXT
_mta-stsja reeglite fail aadressilhttps://mta-sts.<domeen>/.well-known/mta-sts.txt; režiimtestingvõienforce. - TLS-RPT: TXT
_smtp._tlskoos aruandeaadressiga, igapäevaste aruannete jaoks ebaõnnestunud krüpteerimise kohta. - DANE: TLSA-kirje aadressil
_25._tcp.<mx-server>, töötab ainult DNSSEC-iga ja kaitseb ka esimest ühendust. - Võta kasutusele nagu DMARC: esmalt aruanded (TLS-RPT,
testing), siis karmista.
Test
Ülesanne
Ülesanne Z5.4: MTA-STS, TLS-RPT ja DANE otsimine. Otsi domeeni gmail.com juures üles MTA-STS-kirje ja TLS-RPT-kirje, ava reeglite fail ja täida ära režiim (enforce, testing või none). Seejärel otsi domeeni internet.nl ühe MX-serveri juures üles TLSA-kirje aadressil _25._tcp.<mx-server> ja täida ära ühe kirje kolm esimest numbrit. Valikuline: samad küsimused oma domeeni kohta (seal võib vastus olla „pole"). Programm küsib kõik otse järele ja võrdleb.
Rohkem lugemist
Nende artiklite sammud kehtivad WebOké paneelide jaoks; teiste teenusepakkujate juures töötab see sarnaselt.
- Internet.nl kontrollnimekiri: saavuta oma veebilehe ja e-postiga 100%
- DNSSEC on mis?
- Tasuta DNS-kursus 8.1: DNSSEC lihtsas keeles
- internet.nl, testi oma e-posti (sõltumatu test STARTTLS-i, DANE ja muu kohta): https://internet.nl/
- RFC 8461 (MTA-STS), RFC 8460 (TLS-RPT), RFC 7672 (DANE SMTP jaoks)
