Máme tu na dnešek jednu takovou malinkou filosofickou záležitost. Řekněme, že provozujete HTTPS web server (něco jako SharePoint, Exchange OutlookAnywhere, nebo OWA, nebo ActiveSync apod.). Jede to přes HTTPS, takže váš web server má svůj TLS certifikát. Komunikace je tedy šifrovaná.
Přihlašujete se heslem. Klidně se přihlašujte pomocí Basic autentizace. Stejně to nejde odposledchnout, protože je to šifrováno TLS (nebo SSL).
Tak proč byste se měli ověřovat pomocí klientského certifikátu? Tedy krom toho, že klíče jsou náhodné a je to samo o sobě bezpečnější, než použití slabého hesla?
Protože je to bezpečnější principiálně
Jaký je v tom tedy rozdíl? Jestli se přihlašujete loginem a heslem, nebo uživatelským certifikátem (client authentication SSL certificate)?
Nejprve se podívejme, jak probíhá komunikace, když používáte heslo:
- nejprve se ustaví TCP spojení přes IPv4 (nebo možná IPv6) na port TCP 443
- uvnitř tohoto TCP transportu se začne domlouvat TLS/SSL šifrování. Server vám pošle svůj certifikát a dohodnete si šifrovací algoritmy a klíče
- uvnitř této TLS sešny se začnou přenášet HTTP pakety a web server vás požádá o zaslání přihlašovacích údajů (401 not authorized)
- a vy mu je zašlete a dále komunikujete s web serverem a stahujete si stránky atd.
Co je na tom špatně? Ještě než vás to vůbec ověří, hovoříte TCP, TLS i HTTP a to ještě navíc přímo s tím web serverem. Speciálně HTTP komunikace je poměrně složitá, objemná protokolově a nejvíce náchylná na různé exploity a útoky. Anonymní útočník tedy může zasílat různé pokusy o útoky rovnou do web serveru a ještě třeba zkoušet různá hesla a loginy.
Když naopak budete používat TLS uživatelský certifikát (a server ho bude vyžadovat), nedostanete se bez ověření dále, než na třetí paket úvodní TLS sešny. Tzn. anonymní útočník končí v již v bodě 2. Aniž byste měli certifikát, HTTP web server ani neuvidíte. A navíc nemůžete zkoušet hesla.
A navíc ten certifikát máte třeba jenom ve firemním notebooku, nebo v čipové kartě a tak vás to neláká připojovat se ze zavirovaného domácího počítače ani z nějaké pekelné kavárny.
Tak proto je to bezpečnější :-)