Bezpieczeństwo bezprzewodowej warstwy transportowej
Zadaniem protokołu WTLS jest zabezpieczenie komunikacji urządzenia mobilnego
(klienta) z bramką WAP. WTLS oparty jest na przemysłowym standardzie
TLS, który z kolei jest wynikiem udoskonalenia protokołu SSL. WTLS jest
bardziej efektywny od TLS, wiąże się bowiem z wymianą mniejszej liczby komunikatów;
TLS jest natomiast wykorzystywany na odcinku między bramką WAP
a serwerem źródłowym. Zlokalizowana na styku obu wspomnianych odcinków
bramka WAP (jak na rysunku u dołu ⇓), dokonująca translacji między protokołami TLS
i WTLS, jest w tym łańcuchu najbardziej wrażliwym ogniwem i wymaga szczególnie
starannego zabezpieczenia przed atakami z zewnątrz.
WTLS oferuje następujące możliwości:
- ochronę integralności danych, czyli zabezpieczenie przed ich zmodyfikowaniem, poprzez uwierzytelnianie komunikatów przesyłanych między klientem a bramką,
- ochronę prywatności poprzez szyfrowanie czyniące przesyłane treści nieczytelnymi dla nieuprawnionych podmiotów,
- uwierzytelnianie komunikujących się encji na podstawie certyfikatów,
- zapobieganie paraliżowaniu usług poprzez odrzucanie komunikatów powtarzanych lub niezweryfikowanych.
Sesje i połączenia WTLS
Dwiema najważniejszymi koncepcjami WTLS są bezpieczna sesja i bezpieczne
połączenie:
- Bezpieczne połączenie to połączenie typu peer-to-peer między warstwami
transportowymi (w kategoriach modelu odniesienia OSI) zapewniające
odpowiedni typ usługi. Ma charakter tymczasowy i zawsze istnieje w ramach
konkretnej sesji.
- Bezpieczna sesja to wynik skojarzenia klienta z bramką WAP. Ustanowienie sesji wiąże się ze zdefiniowaniem zestawu parametrów używanych przez połączenia nawiązywane w ramach tej sesji. Koncepcja sesji pozwala zaoszczędzić czasochłonnego negocjowania parametrów dla każdego połączenia z osobna.
W danej chwili między klientem a bramką może istnieć wiele bezpiecznych
połączeń. Teoretycznie możliwe jest jednoczesne istnienie wielu sesji, choć w praktyce
raczej z możliwości tej się nie korzysta.
Każda sesja może w danej chwili znajdować się w różnych stanach. Gdy zostanie
ustanowiona, znajduje się w stanie ustalonym dla odczytu i zapisu (czyli odbierania
i wysyłania danych); ponadto w czasie tworzenia sesji przez podprotokół
powitalny (handshake) tworzony jest stan przejściowy (pending state), który
po zakończeniu działania tego protokołu staje się stanem ustalonym.
Stan bezpiecznej sesji WTLS określony jest przez następujące parametry:
- identyfikator sesji - dowolny ciąg bajtów wybrany przez bramkę do identyfikowania stanu sesji,
- wersję używanego protokołu WTLS,
- certyfikat partnera - nieobowiązkowy,
- metodę kompresji - algorytm wykorzystywany do kompresowania danych przed ich szyfrowaniem,
- specyfikację szyfru - określenie algorytmu szyfrowania (opcjonalne, na przykład RCS lub DES), algorytmu haszowania wykorzystywanego do obliczenia kodu MIC (np. MDS lub SHA-1 ) oraz atrybutów kryptograficznych, m.in. hash_size,
- tajny kod główny - ciąg 20 bajtów współdzielony przez klienta i bramkę i nieznany nikomu innemu,
- sposób numerowania - metoda nadawania numerów sekwencyjnych przesyłanym PDU: jawna (explicit), domyślna (implicit) albo rezygnacja z numerowania (off),
- odświeżanie - określenie częstotliwości odświeżania niektórych parametrów kryptograficznych (klucza szyfrowania, sekretu głównego i wektora inicjacyjnego IV),
- znacznik wznawiania - określenie, czy w ramach sesji mogą być tworzone nowe połączenia.
Stan bezpiecznego połączenia określony jest przez środowisko operacyjne
podprotokołu rekordu i obejmuje wszystkie parametry operacji kryptograficznych
(szyfrowania, deszyfracji oraz obliczania i weryfikowania kodów MIC), a ponadto
następujące elementy:
- klasyfikację nadawcy - wskazanie, czy encja wysyłająca PDU jest klientem, czy bramką,
- algorytm szyfrowania - dane związane z szyfrowaniem, między innymi rozmiar klucza dla danego algorytmu, efektywnie wykorzystywany rozmiar klucza, typ szyfru (blokowy albo strumieniowy) i rozmiar bloku (dla szyfru blokowego),
- algorytm MIC - rozmiar klucza wykorzystywanego do obliczania kodu MIC oraz rozmiar samego kodu MIC,
- algorytm kompresji - wszelkie informacje związane z algorytmem kompresowania rekordów,
- tajny kod główny - ciąg 20 bajtów współdzielony między klienta i bramkę,
- losowy parametr kliencki - 16-bitowa wartość losowa dostarczana przez klienta,
- losowy parametr bramki - 16-bitowa wartość losowa dostarczana przez bramkę WAP,
- sposób numerowania - metoda nadawania numerów sekwencyjnych przesyłanym PDU: jawna (explicit), domyślna (implicit) albo rezygnacja z numerowania (off),
- odświeżanie - określenie częstotliwości odświeżania niektórych parametrów kryptograficznych (klucza szyfrowania, sekretu głównego i wektora inicjacyjnego IV). Jeżeli oznaczymy ten parametr przez r, to odświeżanie odbywa się co n=2r rekordów, czyli wtedy, gdy numer sekwencyjny osiągnie wartość O, n, 2n, 3n itd.
Architektura protokołu WTLS
WTLS nie ma struktury monolitycznej, lecz podzielony jest na dwie warstwy,
jak pokazano to na rysunku. Rezydujący w warstwie niższej podprotokół
rekordu (WTLS Record Protocol) zapewnia podstawowe usługi na użytek podprotokołów
rezydujących w warstwie wyższej. Jednym z tych podprotokołów jest
WTP, trzy pozostałe - podprotokół powitalny (Handshake
Protocol), podprotokół zmiany szyfru (Change Cip her Spec Protocol) i podprotokół
alarmowy (Alert Protocol) są integralną częścią WTLS.
Podprotokół powitalny WLS | Podprotokół zmany szyfru WTLS | Podprotokół alarmowy WTLS | WTP |
---|---|---|---|
Podprotokół rekord u WTLS | |||
WDP lub UDP/IP |
Rysunek. Stos protokołów WTLS
Źródła i Literatura:
William Stallings - "Kryptografia i bezpieczeństwo sieci komputerowych - Koncepcje i metody bezpiecznej komunikacji", Wydanie V, Wydawnictwo Helion 2012, ISBN: 978-83-246-2987-9.
Polish language edition published by HELION S.A. Copyright© 2012.
Copyright© 2012 Wydawnictwo HELION S.A
WWW: http:pl/helion.pl (księgarnia internetowa, katalog książek)
Copyright© 2012 Wydawnictwo HELION S.A
WWW: http:pl/helion.pl (księgarnia internetowa, katalog książek)