| V poslední době se mi donesly dva zajímavé odkazy týkající se bezpečnosti VPN řešení na platformě Microsoft - tedy konkrétně PPTP - jeden je v češtině a druhý je prakticky to stejné v angličtině, jen to obsahuje nějaké další zajímavé odkazy. Oba se tváří, jakou objevili novinku a jak je najednou PPTP a MS-CHAPv2 nebezpečné řešení. Ono bylo nebezpečné od jakživa, jenom se to všichni báli přiznat :-) A navíc ty články mixují pojmy PPTP a MS-CHAP, což opět není úplně správné ani přesné.
Tak se podívejme na jakési srovnání různých VPN řešení, jejich možností a bezpečnosti. Píšu tu VPN, ale já do toho počítám i vzdálenou plochu (remote desktop, terminal services), takže i tohle bude porovnáno - takže spíše vzdálený přístup (remote access) obecně, než přímo VPN.
Protokoly vzdáleného přístupu
Nejprve protokoly pro VPN a vzdálený přístup obecně. Rozdělil bych to nejprve obecně na tyto dva typy připojení:
- IP tunnel - připojení počítače, nebo celé sítě přes veřejnou IP síť. Váš počítač, nebo rovnou celá síť (pobočka) má vcelku plný přístup do firemní sítě. To se dá samozřejmě omezit různými firewally, ale je to složitější. Prostě se dá říci, že tunel povoluje kompletní přístup do firemní sítě. A to je mnohdy celkem zbytečné. Co ti lidi vlastně uvnitř potřebují dělat? Musí si stahovat soubory na stanici? Nestačí jim jenom Outlook připojený přes HTTPS? Nebo třeba vzdálená plocha na nějaký terminal server?
Když je ten počítač zavirován, viry mohou proudit bez omezení do vnitřní sítě a nemáte ochranu. Není vždycky optimální pouštět lidem VPN. Má to také někdy problémy s kvalitou linky, viz. můj dřívější článek.
- Remote Desktop - vzdálené terminálové připojení na terminal server, remote desktop server, nebo rovnou na stolní stanici uživatele. Mnoho lidí se bojí lidem dávat terminálové připojení, protože mají pocit, že tím hrozně otevřou síť různým útokům. Naopak! Komunikace může být komplet šifrovaná a ověřená stejně jako VPN. Navíc do vzdálené plochy zasíláte jen klikání a přijímáte zpět jen obrázky. Nemůžete si stáhnout soubor, nemohou tam proudit viry - leda by se tam nějak "naklikali". Soubory nikdy neopustí firemní síť. Nikdy se nebudou povalovat na domácích počítačích pochybné bezpečnostní kvality. Když se připojíte z nějakého počítače z kavárny (vřele nedoporučuju), jediné, co si může kavárník nahrát, je video vaší sešny.
Další rozdělení bude podle ověření identity uživatelů a/nebo počítačů - tedy klientů:
- Připojení s uživatelským ověřením - tedy IP tunel, jehož vytvoření vyžaduje ověření identity uživatele. Pokud ověřím identitu uživatele, mohu pak řídit, kteří uživatelé se do sítě dostat mohou a kteří naopak nesmí. Ověření uživatele může být buď loginem a heslem, nebo certifikátem (alternativně uloženým buď v počítači, nebo v čipové kartě).
- Připojení s ověřením počítače - tedy IP tunel, před jehož vytvořením se ověřuje pouze identita počítače. To znamená, že nevím, jestli se připojila Jitka, nebo Kamil, ale vím, že se připojil PC40. Ono je to mnohdy jedno, protože počítače (notebooky) patří jen jednomu uživateli a jmenují se podobně, něco jako Kamil-PC, ale principiálně to není stejné. Ověření jen certifikátem uloženým v počítači (no dobrá, někdy můžeme mít třeba pre-shared key, nebo účet PC v doméně, ale to není pro naše vzdálené přístupy zajímavé).
- Připojení s kombinací ověření uživatele i počítače - máte jistotu, že se připojí jen ta a ta skupina uživatelů a to navíc jen z počítačů, které vy sami autorizujete. Super. Žádné zavirované domácí stroje, žádné podivné tablety z Číny co vypadají jako ajfoun a odesílají všechno rovnou na generální sekretariát PRC.
Ještě je dobré si uvědomit, že i server by měl nějak prokázat svou identitu klientům. Tzn. že uživatelů mohou mít jistotu s kým hovoří. Tím se zabrání MITM (man in the middle) útoku. Tohle mají všechny přístupy (včetně RDP) kromě PPTP.
Takže máme IP tunel, ověření uživatele, ale ještě nám chybí třetí charakteristika. A to je následné šifrování tunelu. Šifrovací protokoly se vyskytují tři:
- IPSec - šifruje náhodnými šifrovacími klíči, které jsou odvozeny D-H (Diffie-Hellman) klíčovou výměnou. Podstatné je, že šifrování nezávisí na příhlašovacím hesle uživatele - není tedy závislé na kvalitě jeho hesla.
- SSL, nebo TLS - šifruje náhodnými šifrovacími klíči, které jsou odvozeny buď D-H, nebo jsou přeneseny pomocí RSA. Opět nezávisíme na kvalitě přihlašovacího hesla uživatele.
- MPPE - šifrování, jehož symetrické klíče vznikají na základě přihlašovacího údaje uživatele a jsou z něho přímo odvozeny - tzn. jeho kvalita je závislá na kvalitě hesla uživatele. Jediný, kdo tohle peklo používá je PPTP.
Jaké tedy máme možnosti vzdáleného přístupu
- PPTP - tunel, historicky nejstarší VPN protokol. K dispozici i klient pro MS-DOS. Používá TCP 1723 spojení a GRE IP protokol. Požaduje pouze ověření uživatele. Ověření uživatele buď heslem, nebo certifikátem. Šifrování MPPE.
- IPSec - tunel, k dispozici od Windows 2000. Ověření jen počítače, tedy jen certifikátem.
- L2TP - tunel, k dispozici od Windows NT 4.0 SP5 a Windows 2000. Založeno nad IPSec, ale přidává k tomu uživatelské ověření. Takže se ověřuje nejprve počítač pomocí svého certifikátu a teprve potom uživatel pomocí hesla, nebo dalšího uživatelského certifikátu.
- SSTP - tunel, k dispozici od Windows Vista a Windows 2008. Používá TCP 443 a normální SSL, nebo TLS tunel. Ověřuje uživatele opět pomocí hesla, nebo jeho certifikátu.
- DirectAccess - tunel, k dispozici od Windows 7 a Windows 2008 R2. Používá IPSec over IPv6, případně v kombinaci s dalším tunelem přes IPv4. Protože se jedná o IPSec, ověřuje vlastně jen identitu klientského počítače, pomocí jeho vlastního certifikátu. Avšak díky IPv4 tunelu, který tam v dnešní době mít budete, a díky možnosti ověřovat uživatelskou identitu i v případě IPSec od Windows 7 a Windows 2008 R2 se dá udělat (relativně složitě) i uživatelské ověření, ale to není cílem této VPNky. V podstatě bych to bral obecně jako lepší IPSec.
- RDP - obyčejná vzdálená plocha (remote desktop, terminal server). Používá TCP 3389 a SSL, nebo TLS šifrování. Uživatele ověřuje pomocí hesla, nebo certifikátu v čipové kartě (zde je podmínka karty, ostatním VPN stačí certifikát v počítači).
- RD Gateway (TS Gateway) - vzdálená plocha přes HTTPS gateway. Používá TCP 443 a normální SSL, nebo TLS šifrování. Uživatele ověřuje pomocí hesla, nebo certifikátu v čipové kartě, nebo certifikátu v počítači (to je trošku složitější kombinace, kterou tu nebudu do podrobna rozebírat).
Co je MS-CHAP?
MS-CHAP a jeho novější verze MS-CHAPv2 jsou protokoly pro ověření uživatele pomocí jeho hesla. Je to obdoba protokolu NTLM, respektive NTLMv2
Protokoly PPTP, L2TP, SSTP, RDP i RD Gateway mohou používat MS-CHAP, MS-CHAPv2, NTLM, nebo NTLMv2 k ověření uživatele.
Co si tedy vybrat?
Nejprve bych si vybral cokoliv jiného než PPTP. Tenhle protokol neověřuje identitu serveru (jen uživatele) a ještě navíc šifruje pomocí MPPE, které je přímo odvozeno z přihlašovacího údaje uživatele. Je úplně jedno, že se uživatele obvykle ověřuje pomocí MS-CHAP. Můžete si ho přece nastavit na ověření pomocí certifikátu. Takže i PPTP nemusí být citlivé kvůli MS-CHAP. PPTP je citlivé, protože je to celé špatně :-)
A za druhé bych si vybral vzdálenou plochu (RDP) přes RD Gateway (po staru TS Gateway). Protože VPNky moc otevírají přístup do sítě a mě se to prostě nelíbí.
|