Rozhodl jsem se popsat IPSec. Důvodů jsem měl několik a to především absence nějakého komplexního informačního zdroje, který jsem sám hledal.
IPSec můžeme považovat za jakýsi framework, neboli sadu protokolů pro bezpečnou komunikaci v prostředí internetu. Pokud to zjednodušíme, je to typ VPN a rozhodně to není žádný protokol. Pracuje na 3(síťové) vrstvě OSI/ISO modelu a je složen z 5 základních kamenů:
- První částí je IPSec protokol. Máme na výběr AH(Authentication Header) nebo ESP (Encapsulating Security Payload)
- Druhou částí jsou algoritmy pro šifrování, zajišťující důvěrnost dat . DES ani 3DES již nejsou doporučovány, takže volíme AES a zde se rozlišuje délka klíče.
- Třetí je integrita - nezměnitelnost dat. Zde je k dispozici MD5 - slabé nebo SHA s různou délkou secret key.
- Dále je tu autentifikace, což zde představuje způsob vzájemného ověření dvou koncových bodů, která se snaží vytvořit spojení. Máme na výběr PSK(Pre-Share key) nebo RSA - digitální certifikát.
- Poslední částí je způsob generování klíčů(o jejich výměnu se stará IKE). Zde si můžeme vybrat různá skupiny Diffie-Hellman.
AH vs ESP
IPSec stojí na těchto dvou protokolech, které představují základní a první volbu, kterou je třeba při výběru IPSec učinit. Rozdíl je podstatný
AH - je IP protokol 51. Poskytuje integritu a autentifikaci - chybí zde možnost šifrování. Poskytuje mnohem slabší zabezpečení než ESP. Integrita a autentifikace zprostředkována pomocí jednocestné hashovací funkce. Z odesílaného paketu je spočítán hash, který je kombinován s klíčem - tím je dosaženo i autentifikace. K původnímu paketu je tento hash přiložen. Na druhé straně je proveden stejný postup a oba hashe se porovnají. Hash originálního paketu je vytvořen z datové části a IP hlavičky. Část(TTL), která se po cestě mění je vynechána. Hash musí sedět na jeden bit. Na obrázku níže vidíme AH paket v Transport mode a poté při Tunnel mode, o kterých bude více později.
AH paket - Transport mode
AH paket - Tunnel mode
AH hlavička obsahuje následující pole:
- Next Header - Identifikuje další hlavičku, ve které je id IP protokolu - pro TPC=6
- Length - zde je délka AH hlavičky
- Security Parametres Index (SPI) - Je používáno v kombinaci s cílovou adresou a vybraným IPSec protokolem pro indetifikaci SA(Security Association - viz. dále), které se použije.
- Sequence number - pro využití anti-replay - vysvětleno níže u ESP.
- Authentication Data - Obsahuje ICV (Integrity Check Value) - pro ověření integrity paketu.
ESP - je IP protokol 50. Na rozdíl od AH poskytuje možnost šifrování, ale není to podmínkou. Minimálním požadavkem je nastavit šifrování nebo autentifikaci - jeden musí být vybrán. Vždy záleží na implementaci daného výrobce, které šifrovací algoritmy jsou podporovány, ale většinou to bývají: DES,3DES a AES s různou bitovou délkou klíče. ESP dle vybraného módu šifruje celý paket včetně IP hlavičky, případně pouze data při Transport mode. Šifrování je prvním krokem a poté se provede hashovací funkce, která opět poskytuje integritu a autenticitu. ESP umožňuje nastavení Anti-replay protection, což je ochrana proti vložení jiných paketů do streamu dat. Pakety se při odesílání číslují a vždy se zvýší počítadlo. Příjemce ověřuje, jestli přišel paket se správným pořadovým číslem a také, jestli již daný paket nedorazil. U AH je tato funkce také podporována.
ESP Paket - Ttransport mode.
ESP paket - Tunnel mode.
ESP Hlavička obsahuje:
- SPI - stejné jako u AH
- Sequence number - stejné jako u AH
ESP Trailer obsahuje:
- Padding - složí pro zarovnání paketu
- Padding Length - zde je dálka Padding. Pro příjemce informace, kolik toho má zahodit.
- Next Header - Identifikuje hlavičku části Data.
ESP Autentifikace obsahuje:
- Authentication Data - stejné jako u AH
Tunnel vs Transport mode
Rozdíly jsou již trochu patrné z obrázků paketů výše. U Transport mode je bezpečnost pouze na 4 vrstvě OSI/ISO modelu - IP hlavička je nešifrovaná a ponechána původní. Tunnel mode šifruje i původní IP hlavičkou a přidává novou. Tedy je celý původní paket chráněn.