Seminární práce do předmětu: Bezpečnost informačních systémů
téma:
IPsec
Vypracoval: Libor Stránský
Co je to IPsec? Jedná se o skupinu protokolů zabezpečujících komunikaci na úrovni protokolu IP (jak už z názvu logicky vyplívá IPsecure – bezpečný IP). Jednotlivě jsou podrobně popsány v RFC 2401 až 2412. Vrstva IP nemá zabezpečovací mechanizmy jako vrstvy vyšší (např. HTTPS, SFTP a SSL), proto byla vyvinuta skupina těchto protokolů. Původně však byla jen pro protokol IPv6 a tedy byla naplánována pro použítí v budoucnu. Potřeby doby si ale vyžádaly, aby byl IPsec požit i pro verzi 4. O řešení podobného problému, tedy bezpečnosti kolem protokolu IP se pokoušela i firma Cisco a jeji Cisco Encryption Technology(CET). Dnes už ale podporuje oba standardy. IPsec tedy pracuje kolem vrstvy IP tedy na úrovni operačního systému a nezatěžuje ničím vrstvu aplikační (jak uživatele tak i programy), Sám má ale i své nevýhody. Je to především jeho složitost a tím hlavně jeho náchylnost k chybám. Původně byl vyvinut v IETF kde jsou specifikovány v dokumentech RFC hodně rozsáhlé problémy a IPsec patří k nim. V praxi se pak používá jen malé množství funkcí a možností protokolu IPsec. Problém může tedy nastat při jeho nastavování. Protokol IPsec nabízí zebezpčení IPdatagramů autentizací a šifrováním. Pro oba způsoby je zde implementováno více protokolů. Patří k nim především: ● AH ● ESP ● ISAKMP ● IKE
Authentication Header Zabezpečuje IPdatagramy, jejich integritu, provádí autentizaci odesílatelů IP datagramů a dokáže zamezit opakování částí řetezců (tzv. antireply attack). AH sice provádí autentizaci ale nešifruje.
Tabulka 1: autentication header
Další hlavička
Délka záhlaví
Reserved
Security Paremetr Index (SPI) Pořadové číslo paketu protokolu AH Kontrolní součet z přenesených dat Hlavička AH se vkládá k IPdatagramu a vyplňují se postupně její položky. Další hlavička informuje o hlavičce vrstvy nad ní, tedy té, kterou obaluje. Reserved je rezervováno a nevyplňuje se (do této věty se tedy další údaje už neukládájí). Princip hodnot druhé věty bude vysvětlen v části věnující se protokolu ISAKMP. Pořadové číslo paketu protokolu AH zajišťuje, aby neoprávněná osoba nemohla paket zkopírovat a poslat příjemci ještě jednou (např. když ví jak se šifruje desetinné místo tak ho zopakuje a příjemce dostane rázem jinou částku:). Pokud příjemce obdrží paket se stejným pořadovým číslem automaticky ho zahodí. Kontrolní součet z přenesených dat má proměnnou velikost. Je prováděn tak, že odesílatel upraví hlavičku datagramu a nechá v ní jen ty hodnoty, které zůstanou nezměněny i po příchodu k příjemci. Nechají se například hodnoty cílová adresa, směrování ale vynulují se hodnoty jako maximální počet skoků nebo hodnota TTL. Ze zbylých hodnot se pak provede kontrolní součet. Ten se vypočítá a pomocí nejčastěji jednosměrné hešovací funkce jako je MD5 nebo SHA1 uloží se na příslušné místo do hlavičky. Příjemce si po přijetí datagramu vynuluje příslušné hodnoty v hlavičce, pomocí SPI získá klíč a šifrovací algoritmus a provede stejný výpočet. Pokud se data neshodují datagram zahodí.
Encapsulating Security Payload Tento protokol na rozdíl od AH provádí šifrování. Některé šifrovací algoritmy vyžadují tzv. blokové šifrování (nebo šifrování pomocí blokové šifry), proto musí být data zarována (doplněna) na násobek bloku(určité předem dané hodnoty). ESP umí nejen šifrovat přenášené datagramy, ale i autentizovat odesílatele a ochranu proti opakování stejně jako AH. Hlavička ESP v sobě obsahuje všechny hlavičky a data vrstev vyšších. Nazývá se proto endtoend hlavička (je za i před daty). Tabulka 2:Encapsulating Security Payload
Security Paremetr Index (SPI) Pořadové číslo paketu protokolu ESP Data Data
Data Výplň
Výplň
Výplň
Výplň
Délka výplně
Další hlavička
Kontrolní součet z přenášených dat
Parametr SPI bude, stejně jako u AH vysvětlen až následně. Pořadové číslo paketu protokolu ESP se v hlavičce uvádí ze stejného důvodu jako u AH (jako ochrana proti opakování datagramů). První dva řádky (SPI a pořadové číslo) tvoří tzv. ESP záhlaví. Výplň se do ESP doplňuje jen pokud datagram nemá předem definovanou velikost a šifrovací algoritmus vyžaduje doplnění na určitou shodnou velikost pro všechny bloky. Za výplní je uvedena její délka. Další hlavička většinou identifukuje první hlavičku v zašifrované části (bývají tam např. protokoly vyšší vrstvy TCP, UDP apod.). Výplň, délka výplně a další hlavička jsou označovány jako ESP zápatí. ESP může rovněž obsahovat kontrolní součet, který se ukládá až za ESP zápatí (ten pracuje na stejném principu jako u AH). ESP je především šifrovací protokol a na případné autentizaci nebo kontrole integrity se musí strany dohodnout předem.
IPsec se provádí vždy jen na celý datagram, až potom se datagram může podle potřeby fragmentovat na menší části. U příjemce je naopak datagram nejprve sestaven a pak teprve dešifrován. V ESP je povinně zahrnuta podpora pro kryptografický algoritmus jako je DES. Příjemce si pomocí SPI vyhledá odpovídající bezpečnostní asociaci(pokud neexistuje, datagram se zahodí). Následně kotroluje pořadové číslo, opakujeli se je datagram zahozen, pak je provedena autentizace, autentizační data jsou vypočtena a porovnána s přijatou hodnotou, neshodujíli se tyto hodnoty je datagram opět zahozen. Až pokud jsou splněny všechny tyto podmínky pak teprve je datagram dešifrován. Bezpečnostní asociace (SA) Jednoduše řečeno je bezpečnostní asociace virtuální spojení mezi dvěma partnery. Ta je pro komunikaci mezi partnery jedinečná, tzn. že se vytváří pro každé dva partnery jiná a určují se její pravidla. Udávájí se v ní například jakých bude použito bezpečnostích protokolů (jestli AH nebo ESP, pokud ale chci použít oba, musí se sestavit nová bezpečností asociace), jaké budou použity šifrovací algoritmy(platí zde to stejné co pro protokoly) a definují se jaké se použijí klíče pro komunikaci apod. Musí se navazovat pro každé spojení tedy pro jednu komunikaci potřebujemem jak SA pro vysílání tak i pro přijímání. Security Paremetr Index (SPI) Pokud se mi už podařilo takovou bezpečnostní asociaci vytvořit a chci pomocí ní odesílat data, musím oznámit druhé straně (příjemci) jakou asociaci chci použít(můžu mít s jedním partnerem jich vytvořeno i více) a právě k tomu slouží SPI. Je to vlastně parametr (číslo), který se zapisuje do hlavičky datagramu a udává přesně jaké parametry používám pro odesílání dat. Takovéto kombinace hodnot číslo SPI – bezpečnostní protokol – šifrovací algoritmus se udržují v databázi bezpečnostních asociací.
ISAKMP (Internet Association and Key Management Protokol) Bezpečnostní asociace lze konfigurovat manuálně, ale to přináší velké nevýhody. K hlavním z nich patří, že nelze udržovat SA pro velkou DB klientů, kteří se stále mění, a kterým je potřeba pravidelně měnit parametry jako klíče a šifrovací algoritmy. Ke správě SA slouží právě ISAKMP, tento neobsluhuje jen SA ale dokáže spravovat i protokoly TLS nebo OSFP. Zprostředkovává dohodu mezi dvěma partnery (jaké protokoly a jaké šifrovací algoritmy se použijí). Postupuje se asi jednoduše následovně: 1. jeden partner pošle návrh možných parametrů 2. druhý si z nich vybere a potvrdí svoji volbu prvnímu 3. oba si vymění klíče Zpráva, kterou ISAKMP posílá pro vytvoření SA nemá pevný tvar (parametry jsou volitelné). ISAKMP sám udržuje a spravuje databázi SA. IKE (Internet Key Exchange) ISAKMP sám ale neumí vlastní výměnu klíčů, o to se stará další protokol – IKE. Jeho základem je tzv. DiffieHellmanův algoritmus. Ten pracuje následovně: 1. každý s účastníků si vygeneruje náhodné číslo – to se stane jeho tajným číslo 2. z něj pak pomocí algoritmu dopočítají druhou hodnotu, která je pak veřejným klíčem 3. veřejné klíče si strany vymění 4. když strany zkombinují svoje tajné číslo a parterův veřejný klíč dostanou oba stejný výsledek, toto číslo se ale nedá nijak zjistit z obou veřejných klíčů 5. z totoho nově vytvořené čísla pak vytvoří klíč pro šifrovaný algoritmus
Použitá literatura a další zdroje informující o problému: 1. VELKÝ PRŮVODCE PROTOKOLY TCP/IP – BEZPEČNOST, Dostálek Libor 2. IPV6, Satrapa Pavel 3. Dokumenty RFC RFC 2401 – Základní architektura bezpečnostních prvků RFC 2011 – Přehled dokumentů a definic pro IPsec RFC 2402 – Hlavička AH RFC 2406 – Hlavička ESP RFC 2104, 2403, 2404, 2405 – Kryptografické algoritmy RFC 2407, 2408 – ISAKMP RFC 2409 – IKE 4. Google