Jak na zabezpečení komunikace přes IPsec

IP security (IPsec) je protokol pro zabezpečení komunikace mezi počítači na sítích TCP/IP. Vznikl jako povinná součást IPv6 a později se začal uplatňovat i ve starším protokolu IPv4.

IPsec nahrazuje či doplňuje různé starší protokoly pro navázání šifrované komunikace a tvorbu šifrovaných tunelů. Jeho asi největší konkurenční výhodou je standardizace pod křídly IETF a povinná implementace v IPv6.

Jak název napovídá, zabezpečení probíhá na síťové úrovni, IPsec tedy slouží jako doplněk protokolu IP, který podobné bezpečnostní vlastnosti jinak nemá. Zabezpečení zajišťuje operační systém, aplikace se nemusejí o nic starat (na rozdíl třeba od TLS/SSL). IPsec nabízí zajištění autenticity, integrity a utajení IP paketů.

Autenticitou se myslí, že víte, od koho jste paket dostali (není podvržený). Integrita znamená, že nebyl po cestě změněn. A utajení v tomto případě znamená, že kdo ho odchytí, nedozví se z něj nesenou informaci.

Ochrana dat

Povinnou součástí IPsec je protokol ESP, který nabízí všechny tři uvedené bezpečnostní vlastnosti, přičemž utajení se někdy vynechává, pokud není potřeba.

Bez utajení funguje také autentizační hlavička (AH), kterou už teď ani není povinnost implementovat a celkově je spíše na ústupu. Budeme se tedy zabývat spíše protokolem ESP, a to ještě ve variantě se šifrováním. AH se použije v případě, že je potřeba chránit integritu včetně informací v IP hlavičce.

Ať už se použije jakýkoli protokol, je potřeba zajistit, aby prošel firewallem.

Transportní varianta

IPsec se používá dvěma způsoby. Prvním z nich je transportní varianta, kdy ESP část paketu obsahuje zašifrovanou transportní hlavičku a aplikační data a to vše je chráněno kontrolní hodnotou proti změně. IP hlavička je nechráněná.

Podobně funguje protokol AH, jen nedochází k šifrování a kontrolní hodnota chrání i část IP hlavičky.

Transportní varianta se používá mezi jednotlivými koncovými zařízeními a nevyžaduje žádnou speciální podporu na routerech po cestě. Hlavní výhodou je, že jsou data chráněna po celé cestě od zdroje k cíli.

Tunelová varianta

Tunelová varianta se používá, když je potřeba propojit celé sítě. Data pak probíhají šifrovaná jen mezi bránami daných sítí. Technicky to vypadá tak, že se celý IP paket zašifruje, zabalí do ESP a přidá se nová IP hlavička. V této veřejné hlavičce uvidíte jen adresy bran propojených sítí. Tunelová varianta IPsec se tedy chová jako klasická VPN.

Tento způsob se používá i na speciální případ, kdy se k síti připojuje samostatný počítač. IPsec potom chrání spojení mezi tím jedním počítačem a síti. Obvyklé použití je zaměstnanecká VPN pro mobilní přístup do sítě.

Klepněte pro větší obrázek
Možnosti zabezpečené komunikace s centrálou a koncovými stanicemi.

Mezi výhody tunelového přístupu patří skrytí IP hlavičky a také to, že konfigurace probíhá pouze na koncových bodech tunelu. Ostatní zařízení nemusí být pro toto použití nijak nakonfigurovaná.

Bezpečnostní vztahy

Aby toto vše fungovalo, musí být komunikující strany nějak domluvené. Navazují spolu dvojici jednosměrných vztahů (Security Associations), které popisují parametry zabezpečené komunikace. Bez nich by zabezpečená komunikace nemohla probíhat, obsahují totiž šifrovací klíče. Bezpečnostní vztahy se neustále udržují a klíče se z důvodu bezpečnosti obnovují.

Politika a autentizace

IPsec musí být na obou stranách nakonfigurovaný tak, aby spolu strany navázaly spojení, autentizovaly se navzájem, a vytvořily výše zmíněné bezpečnostní vztahy.

Konfigurace obsahuje detailní informace o tom, jak má bezpečné spojení vypadat. Součástí jsou i autentizační údaje. Jako identifikátor lze použít DNS názvy, IP adresy, e-mailové adresy a další.

K autentizaci se používá buď jednoduché heslo (PSK, pre-shared key), nebo certifikát. Certifikát se ověřuje podle podpisu důvěryhodné entity, například firemní certifikační autority. Proces autentizace se řídí protokolem IKE, který slouží k výměně klíčů a udržování vztahů mezi koncovými body. Protokol IKE používá UDP port 500, který je potřeba mít povolený na firewallu společně s ESP/AH.

Součástí politiky jsou pravidla, která určují, jaká komunikace bude zabezpečena a jaká zůstane nezabezpečena. Používají se zdrojové a cílové prefixy, případně i porty transportních protokolů.

Integrace s DNS

Kvůli protokolu IPsec byl zaveden nový typ záznamu v DNS jménem IPSECKEY, který se přiřazuje IP adrese podobně jako třeba reverzní záznamy. Klíče v DNS se mají kombinovat s kryptografickou ochranou samotné DNS zóny pomocí DNSSEC.

Klíče slouží k tomu, aby mohly navazovat zabezpečenou komunikaci dva stroje, aniž by se mezi nimi přenášela nějaká informace. Ta informace už se nachází v DNS, stačí si ji jen vyzvednout.

IPsec a NAT Traversal

IPsec je protokol přidružený k protokolu IP na síťové vrstvě. Dnes se běžně setkáte se sítěmi za IP maškarádou (či zjednodušeně NATem), IPsec byl navržen pro IPv6 bez NATu. A protože NAT funguje správně jen s velmi omezenou sadou protokolů (konkrétně TCP a UDP), celkem spolehlivě rozbije i IPsec.

Klepněte pro větší obrázek
Konstrukce a interpretace AH paketů.

Proto se už nějakou dobu používá trik, kdy se použije ESP zabalené do UDP datagramu, aby se o něj postaral klasický UDP NAT. V případě použití NAT traversal, se přechází IKE na UDP port 4500, který se použije i pro ESP. Vyhnete se tak problémům s routery, které se snaží pomoct IPsec provozu a dělají to špatně.

Pak už nic nebrání tomu používat IPsec jako VPN pro práci doma i na cestách. Se zapnutým NAT-T funguje přinejmenším stejně dobře jako jiné VPN.

L2TP over IPsec

Na systémech Microsoft Windows je jednou z nejoblíbenějších vestavěných VPN L2TP over IPsec. Funguje přesně tak, jak naznačuje její název. IPsec slouží jako spodní, zabezpečující, vrstva. L2TP pak tvoří samotnou VPN.

Oproti klasické VPN na protokolu PPTP má řešení s IPsec významné bezpečnostní výhody. Už jenom to, že se posílá každý paket zabezpečený, by vás mohlo zaujmout. Tato technologie funguje bez problémů i na výrobcích Applu a lze zprovoznit na Linuxu. Nové verze linuxových distribucí budou mít L2TP/IPsec už připravenou v uživatelsky přívětivé podobě jako teď mají PPTP, OpenVPN a další.

Implementace

IPsec je implementován ve všech trochu lepších routerech. Hledat můžete mezi značkami, jako je Juniper a Cisco, ale třeba i Mikrotik, který zaujme nižší cenou. Takové ty routery „do domácností a malých firem“ jím obvykle nedisponují.

Všechny dnes běžné operační systémy, jako Windows, Mac OS X, Linux a BSD, IPsec umí. Microsoft Windows ho mají integrovaný do firewallu. Pro Linux a BSD existuje dokonce několik konkurenčních nástrojů, které se starají o autentizaci a výměnu klíčů. Na Linuxu i dalších se o vlastní IPsec provoz stará jádro.

IPsec je užitečná a uznávaná technologie pro tvorbu různých druhů VPN. Její konfigurace není s dobrými nástroji o nic těžší než konfigurace kterékoli jiné VPN. Pokud jste se s ním ještě nespřátelili, doporučuji začít propojením dvou sítí s různými prefixy pomocí tunelové varianty. Sítě můžou být na privátních adresách, pokud mají routery veřejnou adresu.

Přestože je IPsec zavedený a používaný, věřím, že má šanci se dostat ještě dál. Konkrétně, ale to už se dopouštím spekulace, by mohl začít nahrazovat šifrování na vyšší vrstvě, pokud k němu operační systémy dodají nějaké šikovné rozhraní, ze kterého si aplikace ověří zabezpečení svých paketů.

Autor je nezávislý konzultant, lektor a publicista v oblasti počítačových sítí, komunikace a bezpečnosti.

Diskuze (3) Další článek: Kvíz: Poznáte mobilní displej?

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,