Techlab

Witamy w serwisie

Innowacyjne Rozwiązania Elektroniczne

Jak działa szyfrowanie  

Spis treści:

Jak może być szyfrowany głos w sieci mobilnej

Szyfrowanie głosu jest to, rzecz jasna, takie przekształcenie głosu, które czyni go niezrozumiałym dla postronnych, z drugiej zaś strony pozwala na zrozumiałe odtworzenie, pod warunkiem posiadania tzw. klucza szyfrującego. Co to znaczy „być niezrozumiałym” zademonstrujemy nieco później, tymczasem przyjrzyjmy się konsekwencjom konieczności „zrozumiałego odtworzenia”. Otóż w technice cyfrowej głos reprezentowany jest przez strumień danych, przyjmijmy, że jest to ciąg bitów. Jeżeli w strumieniu tym dokonamy nieznacznych modyfikacji, np. co setny bit zmienimy na przeciwny, wówczas jakkolwiek po przekształceniu tego na sygnał akustyczny mogą być odczuwalne pewne zakłócenia, ale treść przekazu z całą pewnością będzie zrozumiała. Oznacza to, iż w kanałach telekomunikacyjnych przeznaczonych do transmisji głosu często dopuszcza się występowanie błędów na pewnym poziomie. Realizując na strumieniu głosowym operację szyfrowania należy zadbać o to, aby – jeżeli to możliwe – nie zwiększać wrażliwości takiego strumienia na błędy. Okazuje się, iż przy odpowiednio sprytnemu podejściu udaje się nie tylko głos zaszyfrować, ale również w pewien sposób uodpornić na wprowadzane, głównie w torze radiowym, zakłócenia.

Z drugiej strony w wielu sytuacjach występuje konieczność przekazywania danych na drugą stronę bezstratnie (wiernie). Nie ma jednak techniki, absolutnie pewnej, która nie potrzebowałaby tak zwanych retransmisji, czyli powtórnego wysłania pewnej części danych, które zostały dostarczone w sposób nieprawidłowy (zagubione lub przekłamane). Nie sposób jednak wyobrazić sobie takich retransmisji przy połączeniu fonicznym. Powodowałoby to bowiem czkawkę, jąkania oraz narastające opóźnienia, skoro w czasie, gdy coś mówimy retransmitowane jest coś co zostało powiedziane poprzednio, to obecna wypowiedź zostanie nadana później.

W praktyce w kanałach telekomunikacyjnych występuje różna stopa błędów. Ta podana w przykładzie jest skrajnie duża, ale możliwa. Z kolei kanały danych realizowane są z wykorzystaniem skomplikowanych mechanizmów wykorzystujących retransmisję. Czy zatem realizacja szyfrowania głosu jest niemożliwa? Oczywiście jest możliwa, ale trzeba to robić z głową.

Dlaczego CSD

Podczas typowego połączenia GSM strumień danych reprezentujący nasz głos poddawany jest wielokrotnym przekształceniom w różnych punktach sieci telekomunikacyjnej. Typowo wygląda to następująco:

  • Pobierany z mikrofonu telefonu głos poddawany jest ok. 5 krotnej kompresji (licząc, iż strumień wejściowy ma 64kbps, zaś wyjściowy dla stosowanych algorytmów GSM FR 13 kbps lub GSM EFR 12,2 kbps).

  • W tej postaci głos przekazywany jest do sieci telekomunikacyjnej, gdzie w ogólności jest dekompresowany (t.j. Sprowadzany znowu do postaci głosu) i transmitowany z powrotem jako 64 kbps strumień danych. Dzięki takiemu zabiegowi, możliwe są połączenia aparatów komórkowych ze zwykłymi aparatami stacjonarnymi, czyli takimi, które o żadnej kompresji nie mają pojęcia.
  • Jeżeli jednak połączenie realizowane jest pomiędzy dwoma telefonami GSM, to rozkompresowany głos jest powtórnie kompresowany i przekazywany do aparatu docelowego, gdzie jeszcze raz jest rozkompresowywany, a następnie podawany na głośnik.

Wydaje się, iż ilość operacji kompresji i dekompresji na tej drodze jest zbyt duża. Musimy jednak pamiętać, iż w telekomunikacji obowiązuje (i słusznie) zasada kompatybilności wstecz. Nowe rozwiązania nie mogą nakazywać reorganizacji całej sieci. Sieć komórkowa została dostosowana do realiów „sieci stacjonarnej”.

Z punktu widzenia naszego zastosowania jedna rzecz jest kluczowa. Mianowicie, jeżeli weźmiemy strumień danych (nieważne czy reprezentujący skompresowany głos, czy nie), dokonamy na nim operacji dekompresji, a następnie powtórnej kompresji, to w ogólności nie otrzymamy strumienia wejściowego, a co najwyżej strumień podobny w ok. 20%, czyli z każdych 100 bitów zgadzać się będzie ok. 20. To bardzo mało, ale odłóżmy na razie na bok, dlaczego tak jest, oznacza to jednak, iż operacje kompresji i dekompresji modyfikują sygnał mowy, co z naszego punktu widzenia oznacza wprowadzanie błędów. Jeżeli teraz przypomnimy sobie o czym była mowa w rozdziale poprzednim okaże się, iż do wyboru mamy dwie drogi:

  • Albo wykorzystać te 20%, które transmitowane jest bez strat

  • Albo znaleźć taki tryb połączenia, w którym nie jest transmitowany głos lecz dane, ale udaje się uniknąć retransmisji.

I jedno i drugie jest możliwe, przy czym pierwsze podejście posiada zasadnicze wady. Po pierwsze ograniczenie przepustowości do 20% oznacza konieczność kompresji głosu na poziomie 2400 bps i jakkolwiek techniki takie są znane (LPC, MELP, MELPE), to jednak prowadzą one do tego, że co najwyżej mówić można o zrozumiałości, trudno jednak o wystarczająco wierne odwzorowanie. W rezultacie techniki te zaadoptowane zostały do warunków panujących w czołgu, ale raczej nie w biurze. Z drugiej zaś strony sam algorytm odzyskania owych 20% bitów silnie zależy od stosowanych w sieci mechanizmów kompresji, a mogą być one różne. Drugie podejście wymaga wyeliminowania retrasmisji, w celu zniwelowania narastających opóźnień w torze fonicznym.

Spośród dostępnych w sieci GSM technik wyłącznie tryb CSD (ang. Circuit Switched Data), dokładniej tryb transparentny CSD do tego się nadaje. Mówiąc w skrócie w trybie tym dane przekazywane są na drugą stroną „możliwie wiernie”, co oznacza, iż po drodze nie są traktowane jako głos, nie są kompresowane, ale zdarzyć się może, i to się zdarza, iż występują w nich przekłamania. Zadaniem systemu kryptograficznego jest takie zabezpieczenie tych danych, aby pojedyncze błędy naprawić lub w skrajnie beznadziejnym przypadku część danych odrzucić, zastępując je np. ciszą, nie wymagając retransmisji.

W rezultacie połączenia szyfrowane realizowane są nieco odmiennie niż typowe połączenia głosowe. Wykorzystywany jest tzw. tryb CSD, który jest standardowy dla sieci GSM, ale rzadko używany. Realizując połączenia szyfrowane liczyć się musimy z mniejszą przepustowością bitową kanału, a zatem stosować należy bardziej efektywny algorytm kompresji głosu. W praktyce do uskania jest przepustowość na poziomie 7680 bps, co w porównaniu z 13 300 bps w trybie głosowym oddaje skalę problemu. Z drugiej strony kanał ten podobnie, jak wszystkie kanały radiowe jest narażony na zakłócenia. Xaos Gamma oferuje rozwiązanie gwarantujące bardzo dobrą jakość głosu (wokoder AMR) wraz z zaawansowanymi technikami zabezpieczenia transmitowanego strumienia fonicznego przed zakłóceniami. W rozwiązaniu wykorzystywane są oryginalne, opracowane przez projektantów TechLab 2000, metody kodowania, synchronizacji oraz korekcji powodujące iż:

  • Mogą być naprawiane błędy na poziomie 30% utraty danych (przekłamane są 3, a nawet 4 bajty na 10).

  • Szyfrowanie nie wpływa na propagację błędów, w szczególności przekłamania w torze radiowym mają taki sam wpływ jakby transmitowany był sygnał jawny.

  • Następuje specjalna klasyfikacja przekazywanych danych, dzięki czemu przy ekstremalnie trudnych warunkach uzyskujemy dobrą jakość dzwięku.

Ustalanie kluczy

Przy realizacji połączenia szyfrowanego w pierwszej kolejności ustalane są klucze szyfrujące. W aparacie Xaos Gamma zaimplementowano w tym celu algorytm Diffie-Hellmana oparty na krzywych eliptycznych. Jego najsilniejsza dostępna w menu wersja porównywana jest ze standardowym algorytmem operującym na grupach (multiplikatywnych liczb całkowitych modulo liczba pierwsza) rzędu 16kb. Klucze szyfrujące ustalane są osobno dla każdego połączenia i niszczone zaraz po jego przerwaniu. Są one nieprzewidywalne, niezależne i nie pochodzą od żadnego sekretu ukrytego w telefonie. Nawet dokładna znajomość wewnętrznej struktury sprzętu i oprogramowania nie pozwala na podsłuchanie i rozszyfrowanie prowadzonego połączenia. Jednocześnie zastosowanie prostych mechanizmów kontrolnych uniemożliwia niezauważony atak metodą „man in the middle”, która jest jedyną realną możliwością ataku na ten algorytm.

Wreszcie szyfrowanie

Wbrew pozorom w porównaniu z poprzednio omówionymi zagadnieniami operacja szyfrowania jest zarówno implementacyjnie, jak i obliczeniowo stosunkowo prosta do zrobienia. Rozmowa szyfrowana jest bardzo silnym symetrycznym algorytmem kryptograficznym AES-256, jednocześnie zachowane są możliwie najkrótsze opóźnienia w torze fonicznym (ok. 450ms), co sprawia, że nie jest praktycznie odczuwalna różnica pomiędzy połączeniem jawnym a szyfrowanym. Z drugiej strony przełamanie algorytmu szyfrującego tzw. atakiem brutalnym wymaga biliona złotych na zbudowanie specjalnej maszyny, która zanim znajdzie rozwiązanie przez co najmniej kilkaset miliardów lat będzie konsumowała prąd o rocznej wartości kilku bln złotych.

Co słychać w sieci GSM

Obiecaliśmy, że pozwolimy się podsłuchiwać. Postarajmy się jednak zrobić to w sposób świadomy, t.j. przyjmijmy, że osoba podsłuchująca zna wszystkie szczegóły implementacji szyfrowania, ramkowania, kodowania, korekcji, pakowania i wszelkich innych zabiegów jakie niezbędne są do prawidłowego odtworzenia sygnału. Nie zna jedynie klucza szyfrującego. W takim przypadku szyfrogram pochodzący od następującego nagrania jawnego

nagranie jawne WAV , OGG , MP3

wygląda następująco

nagranie zaszyfrowane WAV , OGG , MP3

Niezależny obserwator (dziennikarz) nazwał to co jest tutaj słyszalne pokwikiwaniem świni. W każdym razie warto zwrócić uwagę na fakt, iż nie można w żaden sposób stwierdzić kiedy jest coś mówione, kiedy zaś w torze fonicznym jest milczenie.

Wróć do Xaos Gamma

 

Xaos Gamma