Modul 5 · 5.4
Šifrirana dostava: TLS, MTA-STS i DANE
Modul 5: Reputacija i veliki pružatelji usluga · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete objasniti kako mail serveri međusobno šifriraju promet, zašto to standardno nije obavezno, i što MTA-STS, TLS-RPT i DANE u tome mijenjaju. Moći ćete pronaći i pročitati odgovarajuće zapise.
Ključni pojmovi: STARTTLS između servera, oportunistička enkripcija, downgrade napad, MTA-STS (RFC 8461), zapis _mta-sts, datoteka pravila (policy), način rada testing/enforce/none, TLS-RPT (RFC 8460), zapis _smtp._tls, DANE za SMTP (RFC 7672), TLSA zapis, DNSSEC
Dvije vrste veza
U lekciji 1.4 bila je riječ o vezi između Vašeg programa za e-poštu i mail servera Vašeg pružatelja usluge: priključak 587 sa STARTTLS, ili 465 s izravnim TLS-om, uz prijavu. Tu Vi sami imate kontrolu. Vaš program zna koji server očekuje, provjerava certifikat i odbija se povezati ako nešto ne štima.
Ova lekcija govori o sljedećem koraku: vezi između pošiljateljskog servera i primateljskog servera, na priključku 25. Ta veza funkcionira drugačije.
Oportunistički: šifriranje kad je moguće
Kada server dostavlja poštu, povezuje se s MX zapisom primatelja. Nakon EHLO provjerava nudi li primateljski server STARTTLS. Ako da, prebacuje se na šifriranu vezu. Ako ne, poštu jednostavno dostavlja nešifrirano.
To se zove oportunistička enkripcija: šifrira se kad je moguće, inače ne. I obično pošiljateljski server ne provjerava certifikat strogo. Istekli ili samostalno izrađeni certifikat tada nije razlog za prekid.
Zašto je tako? Zato što e-pošta uvijek mora nastaviti raditi, čak i sa starim serverima. Pošiljatelj ne može znati treba li primatelj imati TLS. To omogućuje dvije vrste napada:
- Downgrade. Netko tko može mijenjati promet usput, uklanja riječ
STARTTLSiz odgovora primatelja. Pošiljatelj misli da nema šifriranja i dostavlja nešifrirano. Napadač čita poruku. - Lažni MX. Netko tko može krivotvoriti DNS odgovore, prijavljuje vlastiti server kao MX. Budući da se certifikat ne provjerava, pošiljatelj to ne primjećuje.
Danas gotovo svi veliki mail serveri šifriraju promet, a Gmail od pošiljatelja zahtijeva korištenje TLS-a (lekcija 5.3). No "obično šifrirano" nije isto što i "uvijek i s pravim serverom". Za to postoje dva rješenja: MTA-STS i DANE. Oba postavlja primatelj: time dajete do znanja da pošta prema Vašoj domeni uvijek mora biti šifrirana, prema serveru s valjanim certifikatom.
MTA-STS: pravila putem web stranice
MTA-STS (Mail Transfer Agent Strict Transport Security, RFC 8461) radi s dva dijela.
TXT zapis koji kaže da pravila postoje:
_mta-sts.example.com. 3600 IN TXT "v=STSv1; id=20261108T120000;"I datoteka pravila na fiksnom mjestu, putem https s valjanim certifikatom:
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| Redak | Značenje |
|---|---|
mode: enforce | Dostavljajte samo putem TLS-a s valjanim certifikatom kod jednog od navedenih MX servera. Ako to ne uspije, pošta se ne dostavlja (ostaje u redu čekanja) |
mode: testing | Dostavljajte kao i inače, ali prijavljujte probleme putem TLS-RPT-a |
mode: none | Nema (više) pravila |
mx: | Nazivi MX servera koji moraju nositi certifikat; *. na početku je dopušten |
max_age: | Koliko dugo (u sekundama) pošiljatelj smije pamtiti pravila |
id= u TXT zapisu | Broj verzije. Kada izmijenite pravila, promijenite i id, kako bi pošiljatelji ponovno preuzeli datoteku |
Pametan dio: pošiljatelj pamti pravila za trajanje od max_age. Napadač koji kasnije ukloni riječ STARTTLS ili podmetne lažni MX, tada se otkrije: pravila kažu da je šifriranje obavezno i koji su serveri valjani. Kod same prve veze (prije nego što su pravila poznata) MTA-STS ne štiti; to je poznata slaba točka.
Stvaran primjer je gmail.com: TXT zapis _mta-sts.gmail.com postoji, a datoteka pravila na https://mta-sts.gmail.com/.well-known/mta-sts.txt ima postavljen mode: enforce.
TLS-RPT: izvještaji o neuspjelom šifriranju
Kad je MTA-STS postavljen na enforce, pošta može ostati zaglavljena ako nešto nije u redu s Vašim certifikatom. To želite znati. Za to postoji TLS-RPT (RFC 8460):
_smtp._tls.example.com. 3600 IN TXT "v=TLSRPTv1; rua=mailto:tlsrapport@example.com"Pošiljatelji koji podržavaju TLS-RPT (među ostalima Google i Microsoft), tada svakodnevno šalju izvještaj u JSON formatu: koliko je veza uspjelo, a koje nisu, s razlogom (primjerice istekli certifikat ili naziv koji se ne nalazi u pravilima). Kao i kod DMARC izvještaja (lekcija 4.5), možete ih dati obraditi nekoj usluzi za izvještaje.
Redoslijed uvođenja: prvo TLS-RPT, zatim MTA-STS na testing, nekoliko tjedana čitanja izvještaja, i tek nakon toga enforce. To podsjeća na DMARC pristup postupnog pooštravanja: prvo promatranje, zatim strogoća.
DANE: certifikat u DNS-u, zaštićen s DNSSEC-om
DANE (DNS-based Authentication of Named Entities) pristupa tome drugačije. U DNS postavljate TLSA zapis za svaki MX server, s otiskom (fingerprint) certifikata ili ključa:
_25._tcp.mx1.example.com. 3600 IN TLSA 3 1 1 0d5a5c8f3d8aab82bba32bf8d711fa2433e4fe5fa4828b0443364d3ab5cdc1d5_25._tcp znači: za SMTP na priključku 25. Tri broja govore kako vrijednost treba čitati. Za mail servere najčešće se koristi 3 1 1: "ovo je SHA-256 otisak javnog ključa upravo ovog servera". Javlja se i 2 1 1: tada se radi o otisku međucertifikata.
Pošiljatelj koji podržava DANE vidi TLSA zapis, zahtijeva šifriranje i provjerava odgovara li certifikat servera. Ako ne odgovara, ne dostavlja poštu.
Zašto je DANE siguran protiv krivotvorenih DNS odgovora? Zato što funkcionira samo s DNSSEC protokolom (DNS tečaj, lekcija 8.1). Bez valjanog DNSSEC lanca TLSA zapisi se zanemaruju. To je ujedno i prag ulaska: i Vaša domena (za MX) i zona mail servera moraju biti potpisane.
DANE nema slabu točku "prve veze" kao MTA-STS, i u Europi je prilično raširen, osobito u Nizozemskoj i Njemačkoj. internet.nl ga testira. Microsoft podržava DANE za dolaznu poštu u Exchange Online. I MX serveri internet.nl imaju TLSA zapise.
Zamka: ako zamijenite certifikat mail servera koji koristi DANE novim ključem, TLSA zapis mora pratiti tu promjenu, i to unaprijed: prvo dodajte novi zapis, pričekajte dok ne istekne TTL, tek onda počnite koristiti novi ključ. U suprotnom će pošiljatelji koji koriste DANE odbiti Vašu poštu. Kod 3 1 1 to je važno samo kad se ključ mijenja, ne kod svakog produljenja s istim ključem.
MTA-STS ili DANE?
| MTA-STS | DANE | |
|---|---|---|
| Zahtijeva DNSSEC | Ne | Da |
| Gdje se nalazi | TXT zapis plus datoteka pravila na web stranici | TLSA zapis po MX serveru |
| Štiti prvu vezu | Ne | Da |
| Održavanje | Održavanje web stranice i certifikata za mta-sts. | Ažuriranje TLSA zapisa kod novog ključa |
Možete ih koristiti usporedno. RFC 8461 kaže da pošiljatelj koji podržava DANE daje prednost DANE-u ako postoje valjani TLSA zapisi.
Tko ovo postavlja?
Ovo postavljate za dolaznu poštu na Vašoj domeni. Ako Vaša pošta radi kod nekog hosting pružatelja ili davatelja usluge e-pošte, to ovisi o toj strani:
- DANE je moguć samo ako pružatelj usluge objavljuje TLSA zapise za svoje mail servere i Vaša domena ima DNSSEC. Kod WebOké možete primjerice uključiti DANE na istom mjestu kao i DNSSEC (pogledajte članak s internet.nl ispod); kod drugih pružatelja to funkcionira slično ili je standardno uređeno.
- MTA-STS ponekad možete sami postaviti, ali tada
mta-sts.example.commora biti web stranica s valjanim certifikatom i morate znati nazive MX servera Vašeg pružatelja usluge. - TLS-RPT uvijek možete sami postaviti: to je samo TXT zapis s adresom za izvještaje.
Za Vašu odlaznu poštu ne morate ništa raditi: server Vašeg pružatelja usluge određuje poštuje li MTA-STS i DANE primatelja.
Sažetak
- Između mail servera TLS je standardno oportunistički: šifrirano kad je moguće, bez strogе provjere certifikata. To omogućuje downgrade napad i lažni MX.
- MTA-STS: TXT
_mta-stsplus datoteka pravila nahttps://mta-sts.<domena>/.well-known/mta-sts.txt; način radatestingilienforce. - TLS-RPT: TXT
_smtp._tlss adresom za izvještaje, za svakodnevne izvještaje o neuspjelom šifriranju. - DANE: TLSA zapis na
_25._tcp.<mx-server>, radi samo s DNSSEC-om i štiti i prvu vezu. - Uvodite postupno kao kod DMARC-a: prvo izvještaji (TLS-RPT,
testing), zatim strogost.
Kviz
Zadatak
Zadatak Z5.4: Pronalaženje MTA-STS, TLS-RPT i DANE zapisa. Pronađite za gmail.com MTA-STS zapis i TLS-RPT zapis, otvorite datoteku pravila i popunite način rada (enforce, testing ili none). Zatim pronađite kod jednog MX servera domene internet.nl TLSA zapis na _25._tcp.<mx-server> i upišite prva tri broja jednog od zapisa. Dodatno (opcionalno): ista pitanja za Vašu vlastitu domenu (tamo odgovor smije biti "nema"). Program sve podatke dohvaća uživo i uspoređuje.
Za dodatno čitanje
Koraci u ovim člancima vrijede za sučelja WebOké; kod drugih pružatelja usluga funkcionira slično.
- Internet.nl kontrolni popis: ostvarite 100% s Vašom web stranicom i e-poštom
- Što je DNSSEC?
- Besplatni DNS tečaj 8.1: DNSSEC jednostavnim riječima
- internet.nl, testirajte svoju e-poštu (neovisni test STARTTLS-a, DANE-a i drugog): https://internet.nl/
- RFC 8461 (MTA-STS), RFC 8460 (TLS-RPT), RFC 7672 (DANE za SMTP)
