Modul 5 · 5.4
Slovenčina
Šifrované doručovanie: TLS, MTA-STS a DANE
Modul 5: Reputácia a veľkí poskytovatelia · Čas čítania: 10 minút
Cieľ lekcie: Po tejto lekcii dokážete vysvetliť, ako mailové servery medzi sebou šifrujú komunikáciu, prečo to štandardne nie je vynútiteľné, a čo na tom menia MTA-STS, TLS-RPT a DANE. Dokážete tiež vyhľadať a prečítať príslušné záznamy.
Kľúčové pojmy: STARTTLS medzi servermi, oportunistické šifrovanie, downgrade útok, MTA-STS (RFC 8461), záznam _mta-sts, súbor zásad, režim testing/enforce/none, TLS-RPT (RFC 8460), záznam _smtp._tls, DANE pre SMTP (RFC 7672), TLSA záznam, DNSSEC
Dva druhy spojení
V lekcii 1.4 išlo o spojenie medzi vaším mailovým programom a mailovým serverom vášho poskytovateľa: port 587 so STARTTLS alebo 465 s priamym TLS, s prihlásením. Tam máte kontrolu vy sami. Váš program vie, aký server očakáva, kontroluje certifikát a odmietne sa pripojiť, ak niečo nesedí.
Táto lekcia sa venuje ďalšiemu kroku: spojeniu medzi odosielajúcim serverom a prijímajúcim serverom, na porte 25. To prebieha inak.
Oportunistické: šifrovanie, keď sa dá
Keď server doručuje poštu, naviaže spojenie s MX serverom príjemcu. Po EHLO zistí, či prijímajúci server ponúka STARTTLS. Ak áno, prepne sa na šifrované spojenie. Ak nie, doručí poštu jednoducho nešifrovane.
Tomu sa hovorí oportunistické šifrovanie: šifruje sa, keď sa dá, inak nie. A odosielajúci server väčšinou prísne nekontroluje certifikát. Vypršaný alebo svojpomocne vytvorený certifikát tak nie je dôvodom na zastavenie.
Prečo je to tak? Pretože pošta musí fungovať vždy, aj so starými servermi. Odosielateľ nemôže vedieť, či príjemca má mať TLS. To umožňuje dva typy útokov:
- Downgrade. Niekto, kto dokáže upraviť prenášané dáta, odstráni slovo
STARTTLSz odpovede príjemcu. Odosielateľ si myslí, že šifrovanie nie je k dispozícii, a doručí poštu nešifrovane. Útočník si ju prečíta. - Falošný MX. Niekto, kto dokáže sfalšovať DNS odpovede, uvedie vlastný server ako MX. Keďže sa certifikát nekontroluje, odosielateľ si ničoho nevšimne.
V súčasnosti takmer všetky veľké mailové servery šifrujú a Gmail od odosielateľov vyžaduje používanie TLS (lekcia 5.3). Ale „väčšinou šifrované“ je niečo iné ako „vždy a so správnym serverom“. Na to existujú dve riešenia: MTA-STS a DANE. Oba nastavuje príjemca: tým dáte najavo, že pošta pre vašu doménu musí byť vždy šifrovaná, na serveri s platným certifikátom.
MTA-STS: zásady cez webovú stránku
MTA-STS (Mail Transfer Agent Strict Transport Security, RFC 8461) pracuje s dvoma časťami.
TXT záznam, ktorý hovorí, že zásady existujú:
_mta-sts.example.com. 3600 IN TXT "v=STSv1; id=20261108T120000;"A súbor so zásadami na pevnom mieste, cez https s platným certifikátom:
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| Riadok | Význam |
|---|---|
mode: enforce | Doručujte iba cez TLS s platným certifikátom na jednom z uvedených MX serverov. Ak sa to nepodarí, nedoručovať (zostane vo fronte) |
mode: testing | Doručovať ako obvykle, ale problémy hlásiť cez TLS-RPT |
mode: none | Žiadne zásady (už) nie sú nastavené |
mx: | Názvy MX serverov, ktoré musia mať daný certifikát; na začiatku môže byť *. |
max_age: | Ako dlho (v sekundách) si odosielateľ môže zásady zapamätať |
id= v TXT zázname | Číslo verzie. Keď zmeníte zásady, zmeňte aj id, aby si odosielatelia súbor znova stiahli |
Šikovné na tom je: odosielateľ si zásady zapamätá na čas max_age. Útočník, ktorý neskôr odstráni slovo STARTTLS alebo poskytne falošný MX, sa tak prezradí: zásady hovoria, že šifrovanie je povinné a ktoré servery sú platné. Pri úplne prvom spojení (predtým, než sú zásady známe) MTA-STS nechráni; to je známa slabina.
Skutočným príkladom je gmail.com: TXT záznam _mta-sts.gmail.com existuje a súbor so zásadami na https://mta-sts.gmail.com/.well-known/mta-sts.txt má mode: enforce.
TLS-RPT: správy o zlyhanom šifrovaní
Keď má MTA-STS nastavené enforce, pošta môže zostať zaseknutá, ak je niečo zlé s vaším certifikátom. Chcete o tom vedieť. Na to slúži TLS-RPT (RFC 8460):
_smtp._tls.example.com. 3600 IN TXT "v=TLSRPTv1; rua=mailto:tlsrapport@example.com"Odosielatelia, ktorí podporujú TLS-RPT (okrem iných Google a Microsoft), potom denne posielajú správu vo formáte JSON: koľko spojení sa podarilo a koľko zlyhalo, s dôvodom (napríklad vypršaný certifikát alebo názov, ktorý nie je v zásadách). Podobne ako pri DMARC správach (lekcia 4.5) si ich môžete nechať spracovať nejakou službou na spracovanie správ.
Poradie pri zavádzaní: najprv TLS-RPT, potom MTA-STS v režime testing, niekoľko týždňov čítať správy, a až potom enforce. Je to podobné ako odporúčaný postup pri DMARC: najprv sledovať, potom sprísniť.
DANE: certifikát v DNS, zabezpečený pomocou DNSSEC
DANE (DNS-based Authentication of Named Entities) to rieši inak. Do DNS vložíte TLSA záznam pre každý MX server, s odtlačkom certifikátu alebo kľúča:
_25._tcp.mx1.example.com. 3600 IN TLSA 3 1 1 0d5a5c8f3d8aab82bba32bf8d711fa2433e4fe5fa4828b0443364d3ab5cdc1d5_25._tcp znamená: pre SMTP na porte 25. Tri čísla hovoria, ako sa má hodnota čítať. Pre mailové servery sa najčastejšie používa 3 1 1: „toto je SHA-256 odtlačok verejného kľúča presne tohto servera“. Vyskytuje sa aj 2 1 1: vtedy obsahuje odtlačok medzičlánku certifikátov.
Odosielateľ, ktorý podporuje DANE, uvidí TLSA záznam, vyžaduje šifrovanie a skontroluje, či certifikát servera sedí. Ak nesedí, nedoručí.
Prečo je DANE bezpečný proti sfalšovaným DNS odpovediam? Pretože funguje iba s DNSSEC (lekcia 8.1 kurzu o DNS). Bez platného DNSSEC reťazca sa TLSA záznamy ignorujú. To je zároveň prekážkou: podpísaná musí byť vaša doména (kvôli MX) aj zóna mailového servera.
DANE nemá slabinu „prvého spojenia“ ako MTA-STS a je veľmi rozšírený v Holandsku a Nemecku. Testuje ho internet.nl. Microsoft podporuje DANE pre prichádzajúcu poštu v Exchange Online. Aj MX servery internet.nl majú TLSA záznamy.
Nástraha: ak vymeníte certifikát mailového servera s DANE za nový s novým kľúčom, musí sa zmeniť aj TLSA záznam, a to vopred: najprv pridať nový záznam, počkať, kým neuplynie TTL, a až potom začať používať nový kľúč. Inak odosielatelia využívajúci DANE vašu poštu odmietnu. Pri 3 1 1 je to dôležité iba vtedy, keď sa mení kľúč, nie pri každom predĺžení s rovnakým kľúčom.
MTA-STS alebo DANE?
| MTA-STS | DANE | |
|---|---|---|
| Potrebuje DNSSEC | Nie | Áno |
| Kde sa nachádza | TXT záznam plus súbor so zásadami na webovej stránke | TLSA záznam pre každý MX server |
| Chráni prvé spojenie | Nie | Áno |
| Údržba | Udržiavať webovú stránku a certifikát pre mta-sts. | Aktualizovať TLSA pri novom kľúči |
Môžete ich používať súčasne. RFC 8461 hovorí, že odosielateľ, ktorý podporuje DANE, uprednostní DANE pred MTA-STS, ak existujú platné TLSA záznamy.
Kto to rieši?
Toto nastavujete pre prichádzajúcu poštu vašej domény. Ak vaša pošta beží u hostingovej spoločnosti alebo mailovej služby, záleží to od nej:
- DANE je možný iba vtedy, ak poskytovateľ zverejňuje TLSA záznamy pre svoje mailové servery a vaša doména má DNSSEC. Pri WebOké môžete DANE zapnúť napríklad na rovnakom mieste ako DNSSEC (pozrite si nižšie uvedený článok internet.nl); u iných poskytovateľov to funguje podobne alebo je to vyriešené už štandardne.
- MTA-STS si niekedy môžete nastaviť sami, ale potom
mta-sts.example.commusí byť webová stránka s platným certifikátom a musíte poznať názvy MX serverov vášho poskytovateľa. - TLS-RPT si môžete nastaviť vždy sami: ide len o TXT záznam s adresou na zasielanie správ.
Pre vašu odchádzajúcu poštu nemusíte robiť nič: server vášho poskytovateľa určuje, či rešpektuje MTA-STS a DANE príjemcov.
Zhrnutie
- Medzi mailovými servermi je TLS štandardne oportunistické: šifruje sa, keď sa dá, bez prísnej kontroly certifikátu. To umožňuje downgrade útoky a falošný MX.
- MTA-STS: TXT
_mta-stsplus súbor so zásadami nahttps://mta-sts.<domena>/.well-known/mta-sts.txt; režimtestingaleboenforce. - TLS-RPT: TXT
_smtp._tlss adresou na zasielanie správ, pre denné správy o zlyhanom šifrovaní. - DANE: TLSA záznam na
_25._tcp.<mx-server>, funguje iba s DNSSEC a chráni aj prvé spojenie. - Zavádzajte to ako DMARC: najprv správy (TLS-RPT,
testing), potom sprísnenie.
Kvíz
Úloha
Úloha Z5.4: Vyhľadanie MTA-STS, TLS-RPT a DANE. Vyhľadajte pri gmail.com MTA-STS záznam a TLS-RPT záznam, otvorte súbor so zásadami a vyplňte režim (enforce, testing alebo none). Potom vyhľadajte pri MX serveri domény internet.nl TLSA záznam na _25._tcp.<mx-server> a vyplňte prvé tri čísla jedného zo záznamov. Voliteľne: rovnaké otázky pre vašu vlastnú doménu (tam môže byť odpoveďou aj „žiadne“). Program všetko overí naživo a porovná.
Čítajte ďalej
Kroky v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.
- Kontrolný zoznam Internet.nl
- Čo je DNSSEC?
- Bezplatný kurz DNS 8.1: DNSSEC v bežnej reči
- internet.nl, otestujte si svoj e-mail (nezávislý test STARTTLS, DANE a ďalších): https://internet.nl/
- RFC 8461 (MTA-STS), RFC 8460 (TLS-RPT), RFC 7672 (DANE pre SMTP)
