|
VPN w Linuxieoriginal version by: Nikos Drakos, CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and othersSpis rzeczy
Protokół IP SecurityWprowadzenie do IPSecProtokół IPsec dostarcza mechanizmy pofuności oraz autentykacji w warstwie IP. Systemy implementujące ten protokół mają możliwość wyboru wymaganego bezpiecznego protokołu, określenia algorytmów, które mają być używane dla serwisów oraz kluczy kryptograficznych wymaganych do dostarczenia żądanych usług. IPsec może być użyty do ochrony jednej lub więcej ścieżki pomiędzy parą hostów, parą ,,bezpiecznych bram''1 lub pomiędzy bezpieczną bramą i hostem.Zbiór usług bezpieczeństwa, które IPsec może dostarczać zawiera kontrole dostępu, bezpołączeniową integralność, uwierzytelnienie źródła danych, odrzucanie powtórzonych pakietów (forma częściowej integralności kolejności), poufność (szyfrowanie) oraz ograniczoną poufność strumienia ruchu. Ponieważ te usługi dostarczane są w warstwie IP, IPsec może być wykorzystany do zabezpieczenia dowolnego protokołu warstwy wyższej, bez jakichkolwiek zmian w nim, przykładowo TCP, UDP, BGP, HTTP itd. DOI (Domain Of Interpretation) dodatkowo wspiera negocjację kompresji pakietów IP. Możliwość ta została stworzona poprzez obserwację, że gdy szyfrowanie jest wykorzystywane z IPsec, skutacznie uniemożliwia efektywną kompresję w niższych warstwach.
Jak działa IPsecIPsec używa dwóch protokołów do zapewnienia bezpieczeństwa ruchu:
Te protokoły mogą być stosowane razem lub razem, dostarczając wymaganego zbioru usług bezpieczeństwa dla protokołów IPv4 oraz IPv6. Każdy z tych protkołów obsługuje dwa tryby pracy:
IPsec pozwala użytkownikowi lub administratorowi systemu do kontroli szczegółowości oferowanych usług bezpieczeństwa. Przykładowo możemy stworzyć pojedynczy szyfrowany tunel do przenoszenia całego ruchu pomiędzy dwoma bramami albo oddzielny szyfrowany tunel może być stworzony dla każdego połączenia TCP pomiędzy dowolną parą hostów komunikujących się poprzez te bramy. Ponieważ usuługi bezpieczeństwa oferowane przez IPsec, używają współdzielonych kluczy kryptograficznych, protkół ten zależy od odzielnego zbioru mechanizmów, których zadaniem jest dostarczenie i wymiana kluczy. Możliwe są dwa schematy wymiany kluczy: automatyczny i manualny. Do automatycznej dystrybucji kluczy mogą być stosowane różne mechanizmy: IKE (Internet Key Exchange) oparty na kryptosystemie klucza publicznego, Kerberos oparty na KDC, SKIP (Simple Key management for Internet Protocols), ISAKMP (Internet Security Association and Key Management Protocol) i inne. Najczęściej używanym protokołem wymiany kluczy jest IKE.
Ograniczenia IPsecIPsec został zaprojektowany to zabezpieczania połączeń pomiędzy hostami. Ponieważ IPsec działa w warstwie IP, posiada pewne ograniczenia:
IPsec i VPNProtokół IPsec bardzo dobrze nadaje się do tworzenia Wirtualnych Sieci Prywatnych (VPN 2). IPsec tworzy bezpieczny kanał poprzez niezaufną sieć. Sieci połączone poprzez ten tunel tworzą VPN. Mamy wiele możliwości instalacji IPsec:
Tryby pracy IPsecIPsec dostarcza dwa podstawowe mechanizmy bezpieczeństwa: autoryzację oraz szyfrowanie. Szyfrowania dostarcza ,,podprotokół'' ESP 3 natomiast autoryzacji może dostarczać ESP lub AH 4. Typowymi rozwiązaniami są:
Standard dopuszcza inne warianty, ale nie są one szeroko stosowane:
Elementy kryptografii w IPsecIPsec łączy w sobie różne techniki kryptograficzne. Wszystkie one są dobrze znane i przeanalizowane. Pierwszą zasadą przy tworzeniu IPsec jest niedodawanie nowych słabo zrozumiałych technik kryptograficznych.
SzyfrowanieSzyfrowanie w protokole ESP odbywa się poprzez zastosowanie jednego z symetrycznych algorytmów. Obecnie dokumenty RFC mówią, że algorytm DES 5 musi być implementowany w IPsec, 3DES (Triple DES) powinien a wiele innych może (w tym Rijndeal zwycięzca konkursu AES 6).
HMACAutentyfikacja jest w IPsec wykonywana za pomocą funkcj HMAC (Hashed Message Authentication Code). Nie jest to prosta funkcja haszująca ale bardziej złożona operacja, kóra używa jakiegoś algorytmu haszującego (MD5 lub SHA) oraz klucza. Zwykła funkcja skrótu mówi nam, że dane nie zostały zmienione podczas transmisji bądź były zmienione i dla nich został wygenerowany nowy skrót. Gdy używamy HMAC mamy pewność, że wysyłający zna ponadto klucz. Atakujący zatem nie może wygenerować nowych danych i zregenerować skrót ponieważ nie zna klucza. Długość skrótu HMAC wynosi 96 bitów (pierwotny skrót jest obcinany do tej wielkości).
Diffie-HellmanAlgorytm uzgadniania klucza Diffiego-Hellmana pozwala dwóm stronom ustalić klucz w taki sposób, że nawet ten kto podsłuchuje całą konwersację nie może ustalić jaki to klucz. Protokół bazuje na problemie dyskretnego logarytmu i z tego powodu jest uważany za bezpieczny. Matematycy pracują nad tym problemem od wielu lat i nie udało im się przybliżyć do rozwiązania aczkolwiek również nie udowodniono, że rozwiązanie efektywne nie istnieje.
RSAAlgorytm RSA (Rivest, Shamir and Adleman) jest bardzo szeroko używanym kryptosystemem klucza publicznego. Bazuje on na trudności obliczeniowej faktoryzacji dużych liczb. W IPsec jest używany jako jedna z technik do uwierzytelniania bram (hostów) dla prowadzenia dalszej negocjacji klucza.
Zarządzenie kluczemProtokół zarządzania (wymiany) klucza pełni w IPsec kluczową rolę. Jego zadaniem jest negocjacja odpowiednich parametrów połączenia, czasy życia, algorytmu który będzie w dalszej części używany. Cała negocjacja odbywa się poprzez wymiane pakietów UDP na porcie 500 pomiędzy bramkami.Najczęściej używanym protokołem służącym do tego jest IKE 7. W dalszej części punktu skupie się na nim opisując zarządzanie kluczem. Protokół ten został zdefiniowany w dokumencie RFC 2409 ,,The Internet Key Exchange (IKE)''. IKE jest rezultatem długiego i złożonego procesu w którym kilka protokołów zostało zaproponowanych i przeanalizowanych. Łagodnie upraszczając, możem powiedzieć, że IKE łączy następujące protokoły:
Negocjacja IKEPrzed zestawieniem bezpiecznego kanału oraz przy wymianie kluczy odbywa sie negocjacja. Protokół IKE wyróżnia dwie fazy negocjacji:
Protokół IKE jest bardzo elastyczny. Pozwala m.in. na negocjacje takich parametrów jak:
Linux i IPsecFreeS/WAN
Założenia projektuFreeS/WAN jest implementacją protokołu IPsec dostępną dla jądra Linux. Nie jest ona dystrybuowana wraz z główną linią jądra ze względu na ograniczenia na silną kryptografię w Stanach Zjednoczonych oraz wielu innych krajach. Projekt FreeS/WAN jest obecnie najpełniejszą i najbardziej zaawansowaną implementacją IPsec na platformę z jądrem Linux.Głównym celem jaki przyświeca twórcą FreeS/WAN jest uczynienie Internetu bezpieczniejszym. Dzięki temu, że program jest rozprowadzany na zasadach licencji GNU 9 General Public License może być dowolnie używany i rozprowadzany wraz z kodem źródłowym. FreeS/WAN działa na wszystkich platformach na jakie dostępny jest Linux. Zwiększenie bezpieczeństwa internetu ma być osiągnięte przede wszystkim przez rozszerzenie FreeS/WAN o możliwość tzw. oportunistycznego szyfrowania (ang. opportunistic encryption). Jest to bardzo ciekawa cecha, która pozwala zabezpieczyć komunikację między dowolnymi dwoma hostami w Internecie, bez wcześniejszego dzielenia klucza (ang. pre-shared secret) ani wcześniejszej wymiany kluczy publicznych. Uwierzytelnienie hosta odbywa się na podstawie informacji zawartych w bezpiecznym DNS (ang. Secure DNS). Niestety Secure DNS nie jest powszechnie używany obecnie być może dlatego, że ,,agencjom bezpieczeństwa'' zależy na możliwości monitorowania sieci.
Budowa FreeS/WANFreeS/WAN składa się z kilku części:
Instalacja FreeS/WANAby zainstalować FreeS/WAN musimy posiadać źródła jądra i skompilować je z nałożonymi łatami rozszerzającymi możliwości o IPsec. Obecnie wspierane są wszystkie serie stabilne czyli 2.0.x, 2.2.x oraz 2.4.x. IPsec możemy wkompilować statycznie w jądro bądź jako ładowalne moduły. Po skompilowaniu nowego jądra instalujemy je następnie kompilujemy dodatkowe narzędzia w ,,przestrzeni użytkownika'':
Możliwości FreeS/WANMożliwości jakie zostały zaimplementowane we FreeS/WAN do wersji 1.9:
Inne implementacje IPsecIstnieją inne implementacje IPsec dla jądra Linuksa, które są dystrybuowane bez ograniczeń:
Literatura
About this document ...VPN w LinuxieThis document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
The command line arguments were:
The translation was initiated by on 2003-12-21 Footnotes
2003-12-21 |