Sdílet prostřednictvím


Rozšířená ochrana pro ověřování – přehled

Rozšířená ochrana pro ověřování pomáhá chránit před útoky MITM (man-in-the-middle), ve kterých útočník zachytí přihlašovací údaje klienta a předá je na server.

Představte si scénář se třemi účastníky: klient, server a útočník. Server má adresu URL https://server, zatímco útočník má adresu URL https://attacker. Útočník chytá klienta do přístupu k útočníkovi, jako by se jednalo o server. Útočník pak odešle požadavek na server. Pokud se útočník pokouší získat přístup k zabezpečenému prostředku, server odpoví útočníkovi hlavičkou WWW-Authenticate. Útočník nemá ověřovací údaje, takže odešle hlavičku WWW-Authenticate klientovi. Klient odešle autorizační hlavičku útočníkovi a útočník odešle hlavičku na server a získá přístup k zabezpečeným prostředkům pomocí přihlašovacích údajů klienta.

V současné době se klientská aplikace ověřuje na serveru pomocí protokolu Kerberos, Digest nebo NTLM pomocí protokolu HTTPS, vytvoří se nejprve kanál TLS (Transport Level Security) a ověřování se provede pomocí tohoto kanálu. Neexistuje však žádná vazba mezi klíčem relace vygenerovaným protokolem SSL (Secure Sockets Layer) a klíčem relace vygenerovaným během ověřování. V předchozím scénáři tedy platí, že pokud komunikace probíhá přes protokol TLS (například kanál HTTPS), vytvoří se dva kanály SSL: jeden mezi klientem a útočníkem a druhý mezi útočníkem a dalším mezi útočníkem a serverem. Přihlašovací údaje klienta se odesílají z klienta na server nejprve přes kanál SSL mezi klientem a útočníkem a pak přes kanál mezi útočníkem a serverem. Jakmile se přihlašovací údaje klienta dostanou k serveru, server ověří přihlašovací údaje, aniž by zjistil, že kanál, přes který byly tyto přihlašovací údaje odeslány, pochází od útočníka, a ne klienta.

Řešením je použití vnějšího kanálu zabezpečeného protokolem TLS a vnitřního kanálu ověřeného klientem a předání tokenu CBT (Channel Binding Token) serveru. CBT je vlastnost vnějšího kanálu zabezpečeného protokolem TLS a slouží k navázání vnějšího kanálu na konverzaci přes vnitřní kanál ověřený klientem.

V předchozím scénáři se CBT kanálu TLS klienta a útočníka sloučí s autorizačními informacemi odesílanými na server. Server s podporou CBT porovnává CBT obsažené v ověřovacích informacích klienta, které odpovídají kanálu klienta-útočník, cbT připojenému k kanálu serveru útočníka. CBT je specifický pro cíl kanálu, takže CBT klienta-útočník neodpovídá CBT útočníka a serveru CBT. Díky tomu může server detekovat útok MITM a odmítnout žádost o ověření.

Na straně klienta není vyžadováno žádné nastavení konfigurace. Jakmile se klient aktualizuje tak, aby předával CBT serveru, vždy to udělá. Pokud byl server také aktualizován, můžete ho nakonfigurovat tak, aby používal CBT nebo ho ignoroval. Pokud se neaktualizoval, ignoruje ho.

Server může mít následující úrovně ochrany:

  • Nezaokrouhlovat. Neprovádí se žádné ověření vazby kanálu. Toto je chování všech serverů, které nebyly aktualizovány.

  • Neúplná. Všichni klienti, kteří byli aktualizováni, musí poskytovat informace o vazbě kanálu k serveru. Klienti, kteří nebyli aktualizováni, to nemusí dělat. Jedná se o zprostředkující možnost, která umožňuje kompatibilitu aplikací.

  • Úplná. Všichni klienti musí poskytovat informace o vazbě kanálu. Server odmítne žádosti o ověření od klientů, kteří to neudělají.

Další informace najdete v ukázce Win7 CBT/Extended Protection.

Viz také