Uwierzytelnianie w sieci - 802.1x

Transkrypt

Uwierzytelnianie w sieci - 802.1x
Bosch Security Systems | Systemy wizyjne
Uwierzytelnianie w sieci - 802.1x
Zabezpieczenie krawędzi sieci - dokument techniczny
14 września 2015 r.
Zabezpieczenie krawędzi sieci
Urządzenia zabezpieczające znajdują się przede wszystkim na fizycznej krawędzi sieci. Zwłaszcza urządzenia
wykrywające, takie jak kamery, instalowane są w miejscach publicznie dostępnych. Ponieważ te urządzenia są
podłączone do sieci, zwiększa się ryzyko niepożądanego dostępu: różne osoby mogą podejmować próby
odłączenia urządzenia zabezpieczającego i podłączenia własnego sprzętu w celu uzyskania dostępu do sieci lub
dołączenia urządzenia przekazującego, aby spróbować tak zwanego ataku man-in-the-middle. Istnieje kilka
sposobów ograniczania takich prób:
•
Upewnić się, że urządzenie spełnia wymagania dotyczące wytrzymałości fizycznej i zarządzania
okablowaniem: urządzenia firmy Bosch posiadające klasę ochrony IP66 lub IP67 mają punkt podłączenia
do sieci umieszczony wewnątrz swojej obudowy. Oznacza to, że muszą one być fizycznie rozmontowane,
aby uzyskać dostęp do punktu podłączenia do sieci. Można je dodatkowo zabezpieczyć przy użyciu
wkrętów odpornych na manipulowanie.
•
Uwierzytelnić urządzenie w sieci przed zezwoleniem mu na dostęp do zasobów sieciowych: istnieje kilka
sposobów zapewnienia, by tylko uwierzytelnione urządzenia miały dostęp do sieci. Sprzęt firmy Bosch
obsługuje uwierzytelnianie w oparciu o login i hasło użytkownika (protokół 802.1x). Oprócz 802.1x możliwe
jest zastosowanie protokołu EAP-TLS, który zabezpiecza cały proces uwierzytelniania.
Strona uwierzytelniająca
Serwer uwierzytelniania
EAP przez RADIUS
EAP przez EAPOL
Suplikant
System zarządzania obrazem
Pamięć
Rysunek 1 - Dane w protokole EAP (Extensible Authentication Protocol) są najpierw zamykane w ramkach EAPOL pomiędzy
suplikantem a stroną uwierzytelniającą, a następnie ponownie zamykane pomiędzy stroną uwierzytelniającą a serwerem
uwierzytelniania przy użyciu protokołów RADIUS lub Diameter.
2 | Bosch Security Systems | Systemy wizyjne
IEEE 802.1X
IEEE 802.1x [1] jest standardem opublikowanym przez Institute of Electrical and Electronics Engineers Standards
Association (Stowarzyszenie Normalizacyjne Instytutu Inżynierów Elektryków i Elektroników). Organizacja ta
w ramach IEEE rozwija światowe standardy w wielu gałęziach przemysłu, w tym w energetyce, biomedycynie
i ochronie zdrowia, informatyce, telekomunikacji, transporcie, nanotechnologii, bezpieczeństwie informacji i wielu
innych. Ten konkretny standard jest częścią grupy protokołów sieciowych IEEE 802.1 i zapewnia mechanizm
uwierzytelniania, aby zapobiec uzyskaniu dostępu do zasobów sieciowych przez nieautoryzowane urządzenia.
Protokół ten obejmuje trzy rodzaje elementów:
•
Element, który chce uzyskać dostęp do zasobów sieciowych jest nazywany suplikantem, na przykład
kamera monitoringu.
•
Element, który sprawdza, czy suplikant może uzyskać dostęp do zasobów sieciowych jest nazywany stroną
uwierzytelniającą. Najczęściej jest to przełącznik z możliwością zarządzania, router lub bezprzewodowy
punkt dostępowy.
•
Element, który faktycznie kieruje procesem uwierzytelniania nazywany jest serwerem uwierzytelniania.
Serwer uwierzytelniania zawiera informacje, które są wykorzystywane do określenia, czy suplikant może
czy nie może uzyskać dostępu do zasobów sieciowych. Zazwyczaj jest to serwer, który obsługuje protokół
RADIUS, protokół sieciowy zapewniający scentralizowane uwierzytelnianie, autoryzację i rozliczanie.
Protokół RADIUS należy do standardów organizacji IETF (Internet Engineering Task Force).
Extensible Authentication Protocol
Protokół Extensible Authentication Protocol [2] stanowi system uwierzytelniania, który współpracuje z wieloma
metodami uwierzytelniania. Protokół EAP nie wymaga numeru IP i zazwyczaj działa bezpośrednio na warstwach
łączy danych jako protokół Point-to-Point (PPP) lub IEEE 802. EAP zapewnia własną obsługę zduplikowanych
eliminacji i retransmisji, ale jest uzależniony od gwarancji poleceń z niższych warstw.
Typowa procedura uwierzytelniania EAP przy użyciu protokołu RADIUS [3] składa się z czterech etapów:
1. Inicjalizacja:
Po wykryciu przez stronę uwierzytelniającą, że urządzenie jest podłączone do jego portu, port ten jest
ustawiany w stanie „niedozwolonym“ i będzie zezwalał tylko na ruch 802.1X Pozostały ruch, taki jak UDP
lub TCP jest niedozwolony i będzie odrzucany.
2. Rozpoczęcie:
Strona uwierzytelniająca prosi o podanie tożsamości suplikanta. Po otrzymaniu tej informacji strona
uwierzytelniająca przesyła ją do serwera uwierzytelniania za pomocą protokołu RADIUS.
3. Negocjacja:
Serwer uwierzytelniania weryfikuje tożsamość suplikanta i wysyła pytanie z powrotem do suplikanta
poprzez stronę uwierzytelniającą. To pytanie zawiera także metodę uwierzytelniania, która może być oparta
o nazwę użytkownika i hasło.
4. Uwierzytelnienie:
3 | Bosch Security Systems | Systemy wizyjne
Serwer uwierzytelniania i suplikant uzgadniają metodę uwierzytelniania i suplikant odpowiada zgodnie
z odpowiednią metodą poprzez dostarczenie skonfigurowanych poświadczeń. Jeśli autoryzacja się
powiedzie, strona uwierzytelniająca zezwala suplikantowi na dostęp do określonych zasobów sieciowych.
Strona uwierzytelniająca
Serwer uwierzytelniania
Suplikant
Nowe połączenie
EAP-żądanie tożsamości
EAP-podanie tożsamości
RADIUS żądanie dostępu
EAP-podanie tożsamości
EAP-żądanie
EAP odpowiedź
RADIUS żądanie dostępu
RADIUS udzielenie dostępu
EAP sukces
Rysunek 2 - Schemat przebiegu uwierzytelniania 802.1X
Sam standard 802.1x nie zapewnia bezpiecznej komunikacji pomiędzy suplikantem a serwerem uwierzytelniania.
W związku z tym nazwa użytkownika i hasło mogą zostać przechwycone w sieci. Aby zapewnić bezpieczną
komunikację, standard 802.1x może użyć protokołu EAP-TLS.
Extensible Authentication Protocol - Transport Layer Security
Protokół Extensible Authentication Protocol (EAP), zapewnia obsługę wielu metod uwierzytelniania. Protokół
Transport Layer Security (TLS) obejmuje wzajemne uwierzytelnianie, negocjowanie ochrony integralności
szyfrowania danych oraz wymiany kluczy między dwoma punktami końcowymi. EAP-TLS [4] obsługuje wzajemne
uwierzytelnianie na podstawie certyfikatów i generowanie klucza. Innymi słowy, protokół EAP-TLS zamyka w sobie
proces, w którym zarówno serwer jak i klient przesyłają sobie nawzajem certyfikaty.
Certyfikaty
Certyfikaty cyfrowe służą do weryfikacji, czy klucz publiczny należy do określonego użytkownika lub urządzenia,
innymi słowy do sprawdzenia, czy użytkownik lub urządzenie rzeczywiście mówi prawdę o swojej tożsamości.
Certyfikaty te są generowane przez urząd certyfikacji (CA) w oparciu o szczegółowe dane dotyczące użytkownika
lub urządzenia. Urząd certyfikacji musi być podmiotem zaufanym w ramach całej infrastruktury i zapewniać, że
certyfikaty wykorzystywane w infrastrukturze mogą być zweryfikowane. Urzędowi certyfikacji, którego
zabezpieczenia zostały złamane, nie można już ufać i dlatego nie może on weryfikować tożsamości użytkownika lub
urządzenia.
4 | Bosch Security Systems | Systemy wizyjne
Zarządzanie certyfikatami, asercją, rozszerzaniem i unieważnianiem jest zazwyczaj obsługiwane w ramach
infrastruktury klucza publicznego (Public Key Infrastructure, PKI) [5].
Certyfikat klienta EAP-TLS
Certyfikat klienta EAP-TLS wiąże tożsamość klienta z kluczem publicznym. Ten klucz publiczny (jako część
certyfikatu) jest wysyłany do serwera i używany do szyfrowania komunikacji między klientem a serwerem.
Wymóg dotyczący certyfikatu po stronie klienta daje protokołowi EAP-TLS siłę uwierzytelniania. Po przyjęciu tego
wymogu, hasło przejęte przez intruza nie wystarczy, aby włamać się do systemu używającego protokołu EAP-TLS,
ponieważ musi on jeszcze posiadać certyfikat klienta. Najwyższy dostępny poziom bezpieczeństwa jest zachowany
wtedy, gdy „klucze prywatne“ z certyfikatu klienta są umieszczone w kartach chipowych lub w modułach TPM
w urządzeniach, takich jak kamery bezpieczeństwa firmy Bosch. Dzieje się tak dlatego, że nie ma sposobu, aby
ukraść klucz prywatny odpowiadający certyfikatowi po stronie klienta z karty inteligentnej lub TPM bez kradzieży
samej karty - lub kamery bezpieczeństwa. W tym ostatnim przypadku nie można jej wykorzystać w inny sposób, jak
tylko przez podłączenie urządzenia do sieci, dla której jest dedykowane.
Zaufany certyfikat EAP-TLS
Gdy klientowi zostaje przedstawiony certyfikat serwera, próbuje on dopasować urząd certyfikacji serwera (który jest
częścią certyfikatu) do swojej listy zaufanych urzędów certyfikacji. Jeśli wydający urząd certyfikacji jest zaufany,
klient sprawdza, czy certyfikat jest autentyczny i nie został naruszony. Na koniec klient akceptuje certyfikat jako
dowód tożsamości serwera.
5 | Bosch Security Systems | Systemy wizyjne
Certyfikaty w kamerach Bosch
Wszystkie kamery firmy Bosch (z oprogramowaniem sprzętowym w wersji FW 6.10 lub nowszym) używają
magazynu certyfikatów, który można znaleźć w sekcji Service konfiguracji kamery. Zarówno certyfikaty EAP-TLS
klienta jak i zaufane certyfikaty EAP-TLS muszą być dodawane do magazynu za pomocą przycisku Add w sekcji
File list. Po zakończeniu przesyłania certyfikaty można wybierać z listy Usage list. Aby aktywować wykorzystanie
certyfikatów, kamera musi zostać uruchomiona ponownie, co odbywa się automatycznie po naciśnięciu przycisku
Set, a protokół 802.1x należy aktywować w pozycji menu Network->Advanced po wprowadzeniu poświadczeń.
Rysunek 3 - przykład: Certyfikaty EAP/TLS przechowywane w kamerze Bosch (FW6.11)
Zabezpieczenie w sejfie
Certyfikaty są przechowywane w układzie scalonym, podobnym do układu używanego w przypadku kart
inteligentnych, tzw. „Trusted Platform Module“ (TPM). Układ ten pełni funkcję sejfu dla danych krytycznych, chroniąc
certyfikaty, klucze, licencje, itp. przed nieupoważnionym dostępem, nawet jeśli kamera została rozbita.
Certyfikaty są akceptowane w formacie *.pem. Mogą one być przesyłane w jednym połączonym pliku lub
z podziałem na certyfikaty i klucze i przesyłane jako oddzielne pliki.
6 | Bosch Security Systems | Systemy wizyjne
Dodatek
Niniejszy dodatek zawiera opis sposobu, w jaki klucze publiczne i prywatne są używane do szyfrowania komunikacji
sieciowej.
Szyfrowanie kluczem publicznym
Rozmiary kluczy publicznych wahają się od 512 bitów do 2048 bitów. Ze względu na duże rozmiary, klucze
publiczne są bardzo powolne i zwykle nie nadają się do szyfrowania danych masowych. Niemniej jednak klucze
publiczne są szeroko stosowane do uwierzytelniania użytkowników i urządzeń.
Do przykładów należą: certyfikaty cyfrowe, RSA
Jim
Hello
Jane!
szyfrowanie
klucz
publiczny
Jane
Jane
klucz
prywatny
Jane
odszyfrowanie
Hello
Jane!
Funkcje mieszające są wykorzystywane do świadczenia usług integralności. Algorytm mieszający musi być
jednokierunkowy; z wartości skrótu nie da się odtworzyć oryginalnych danych. Funkcja mieszająca musi być
również odporna na kolizje. Kolizja występuje wtedy, gdy dwie różne wartości wejściowe dają taką samą wartość
wyjściową. Przede wszystkim, nie powinno być możliwe przewidzenie różnej wartości wejściowej, która da taką
samą wartość wyjściową.
Najbezpieczniejszą funkcją mieszającą, która jest powszechnie stosowana w chwili obecnej, jest SHA-1. Algorytm
SHA-1 jest lepszy od MD5, chociaż MD5 jest nadal powszechnie obsługiwany. Dzięki coraz większej dostępnej
mocy obliczeniowej przewagę zyskuje SHA-256 ze względu na zapewnienie większego bezpieczeństwa. Kamery
Bosch pozwalają na wybór jednej z tych trzech funkcji, na przykład dla uwierzytelniania wideo. Funkcje te generują
wartości wyjściowe o stałej długości, co jest przydatne podczas pracy z pakietami IP, ponieważ koszty ogólne
przesyłania wartości skrótów są przewidywalne.
Uwierzytelnienie źródła odbywa się metodą HMAC (Hashed Method Authentication Code).
1. Nadawca dołącza do danych tajny klucz współdzielony
2. Nadawca stosuje do danych funkcję mieszającą
3. Odbiorca musi dołączyć tę samą wartość klucza do danych przed zastosowaniem funkcji mieszającej
Sam klucz nie jest nigdy przesyłany wraz z danymi.
7 | Bosch Security Systems | Systemy wizyjne
Protokół uzgadniania kluczy Diffiego-Hellmana
Algorytm Diffie Hellman (DH) jest metodą, w której obie strony mogą uzgodnić tajny klucz, który jest znany tylko im.
Siła tej techniki polega na tym, że umożliwia ona uczestnikom ustalenie tajnej wartości przy użyciu
niezabezpieczonych środków komunikacji, bez wymieniania się samą wartością. Tajna wartość jest również
niemożliwa do odtworzenia, jeśli zostanie w jakiś sposób przechwycona.
Grupy DH składają się z 5 grup bardzo dużych liczb pierwszych (i generatora), stosowanych jako moduł dla
algorytmu DH. Sprzęt Juniper obsługuje grupy 1, 2 i 5:
•
Grupa 1 używa 768-bitowej liczby
Wspólna liczba,
aplikacja
negocjowana: 2
pierwszej
•
Grupa 2 używa 1024-bitowej liczby
pierwszej
•
Grupa 5 używa 1535-bitowej liczby
Liczba losowa,
klucz prywatny; 4
Liczba losowa, klucz
prywatny: 5
pierwszej
Im większa jest liczba pierwsza, tym silniejszy
jest klucz i tym intensywniejsze są obliczenia.
Klucz publiczny: 2*4 = 16
Klucz publiczny: 2*5 = 32
Inny klucz publiczny: 32
Inny klucz publiczny: 16
Używając tej samej grupy DH, każde urządzenie
tworzy unikatową parę kluczy
publiczny/prywatny. Klawisze te są powiązane
matematycznie przy użyciu algorytmu DH.
•
Wartości klucza publicznego są
wymieniane przez sieć
•
32*4 = 1.048.576
16*5 = 1.048.576
Następnie każdy z uczestników
podstawia wartość swojego lokalnego klucza prywatnego i otrzymanego klucza publicznego do algorytmu
DH, aby obliczyć wspólny klucz sesji
•
Sam klucz sesji nie jest nigdy przekazywany przez sieć
Aby dać ogólne pojęcie, poniżej przedstawiono 768-bitową, czyli 232-cyfrową liczbę używaną przez grupę 1, jeśli
jest liczbą pierwszą:
3246872364872864762746854468744382736878321218721387468765837246823762876834724368763874
2187412864757134913874912834712983476378321538479385413287498375813274974382174893749812
74897348571981374981379487918374193847193547198749187341
8 | Bosch Security Systems | Systemy wizyjne
Bibliografia
1 802.1x, IEEE standard for port-based Network Access Control http://www.ieee802.org/1/pages/802.1x-2004.html
2 RFC 3748, Extensible Authentication Protocol (EAP),
https://tools.ietf.org/html/rfc3748
3 RFC 3580, IEEE 802.1X Remote Authentication Dial In User Service (RADIUS) Usage Guidelines
https://tools.ietf.org/html/rfc3580
4 RFC 5216, The EAP-TLS Authentication Protocol, http://www.ietf.org/rfc/rfc5216.txt
5 RFC 3280, Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
https://www.ietf.org/rfc/rfc3280.txt
Bosch Sicherheitssysteme GmbH
Robert-Bosch-Ring 5
85630 Grasbrunn
Niemcy
www.boschsecurity.com
© Bosch Sicherheitssysteme GmbH, 2015