Ano, taky si myslím. SSL (TLS) je dostupné a ověření je snadné.
Teď je největší slabina na DNS (hlavně u registrátorů). Přijde mi padlé na hlavu, že SSL certifikát je závislý na DNS, a DNS je spravováno u registrátora, který často posílá reset hesla k účtu mailem (tj. nešifrovaně, resp. oportunisticky šifrovaně).
SSL certfikáty se měly naopak, podle mě, ubírat cestou ověřování totožnosti držitele (osoby či firmy) a měly by zaručovat nejen šifrované spojení, ale i to, s kým "mluvíte".
SSL původně docela efektivně řešilo MITM útoky. Dnes hackerovi stačí získat na chvíli přístup k DNS, nechat si vystavit certifikát a DNS vrátit zpět. Majitel kompromitované domény si ani nemusí všimnout, že někdo další má certifikát k jeho doméně a může provádět MITM útoky.
Takže opět jsme na začátku: bezpečně bude fungovat jen ten, kdo se tomu opravdu věnuje, kdo má zabezpečené DNS, kdo technologiím rozumí. Všudypřítomné TLS nic moc nezlepšilo, jen žere terawatthodiny ročně na šifrování čtení bulváru, na komunikaci v domácí síti apod.
Myšlenka CT je, že jsou dva typy hráčů - auditor a monitor. Provozovatel domén by si měl kontrolovat certifikáty vydané na své domény. Což lze dělat dvěma způsoby - stahovat CT log a porovnávat, nebo použít postgresql interface z crt.sh - https://groups.google.com/forum/#!topic/crtsh/oEDOzwr2Fuc
To druhé je asi jednodušší, ale téměř nikdo neví, že to existuje.
Jenomže, pokud jde o MiTM, potřebuješ na obranu dvě věci - šifrovaný kanál a ověření, že komunikuješ s tím pravým.
Na šifrování stačí, když si před otevřením socketu vygeneruju klíč a pomocí Diffie-Hellmana provedu jejich výměnu mezi stroji. Do spojení pak nikdo z vnějšku nevidí*.
Na ověření komunikace stačí DNSSec - strom důvěry jenom nejde od CA, ale od DNS rootu přes správce TLD, registrátora,... A funguje to i se self-signed certifikátem, který jenom podepíše ten, od koho mám doménu.
Kde k tomu vlastně potřebuju CA? Maximálně si jako nadstandard můžu do DNS přidat prohlášení, že autorita XY potvrzuje svým podpisem, že si doménu zaregistroval a provozuje Pepa Vokurka. Když to někdo chce, ať si to zaplatí, v principu je to ale jde i bez té CA. A jejím vyhozením si snižuju latence, nemusím totiž nikde lovit po všech čertech certifikáty a ověřovat CT + revokace.
Další věc je zabezpečení DNS u registrátora, ale to neřeší ani DNSSec, ani DANE, ani SSL. To přece musí vždycky řešit ten registrátor. Například přihlášením do admin rozhraní výhradně pomocí klíče, který si musím aktivovat/aktualizovat zabezpečeným kanálem atd.
Pokud totiž registrátor dovolí ovládnutí DNS, může si útočník libovolně měnit cokoliv - posílat si maily na jinou IP adresu a shodit do plaintextu, odstavit službu nesmyslnou IP adresou, zablokovat přístup oprávněnýho uživatele,... a HTTPS nebo podobná blbina mu v tom vůbec nezabrání.
* pokud není prolomený algoritmus nebo chyba v implementaci
Kdyby třeba root neměl https, dal by se tenhle tvůj komentář zkrz MITM nahradit za něco užitečného. DV certifikát jako vedlejší efekt zaručuje, že v prohlížeči máš to (a právě jen to), co ti poslal server. A protože já mám root na https a ty máš root na https, tak věz, že tenhle komentář i se všemi sprostými slovy mezi řádky - protože tohle ti říkám téměř pod každou diskusí s https už možná rok - jsem napsal já a ne MITM.
Az take dobre to nie je je a pise sa to aj v clanku. Aktualne DV zarucuje, ze s obsahom moze manipulovat iba ten, kto moze hybat s DNS alebo dokaze neselektivne nahradit komunikaciu serveru na dobu vydavania certifikatu. Teda lokalny ISP to nebude, ale niekto s pristupom k BGP alebo niekto z backbone to uz byt moze.
Nastastie mame CT a pri pouziti s Chrome uz toto nejde spravit uplne nepozorovatelne.