Usecrypt – najbezpieczniejszy komunikator na smarfony

Na przestrzeni ostatnich lat przyzwyczajono społeczeństwo, że dzięki informacji duże korporacje są w stanie profilować życie w Internecie, udostępniając za darmo swoje usługi. Na szczęście świadomych użytkowników powoli, ale systematycznie przybywa. Już nie tak chętnie, jak kiedyś oddajemy prywatne dane w obce ręce. Pomagają w tym komunikatory, przez które możemy nie tylko rozmawiać, ale i przesyłać w takiej samej zaszyfrowanej formie informacje. Jednym z takich komunikatorów jest UseCrypt Messenger. To owoc polskich inżynierów z warszawskiej firmy UseCrypt S.A.

UseCrypt Messenger sięga do historii

Jeśli chodzi o bezpieczeństwo współczesnego komunikatora UseCrypt Messenger, to producent zwraca uwagę na fakt, że na serwerze nie są przechowywane żadne dane i metadane, ani tym bardziej żadne adresy IP użytkowników. Tak naprawdę to serwery UseCrypt-u nie uczestniczą w procesie kryptograficznym. Jedynie co wymieniają to cząstkowe informacje o parametrach szyfrowania, które pochodzą z obu urządzeń lub grupy urządzeń (jeśli uczestniczymy w grupowej konwersacji). W związku z tym dostawca usługi nie jest w stanie rozszyfrować danych, jakie przepływają przez serwer.

Podczas zakładania konta, gdzie podajemy numer telefon, widzimy potencjalnych znajomych z listy kontaktów telefonu, którzy już mają zainstalowany komunikator. Te dane na urządzeniu są przechowywane otwartym tekstem, lecz podczas odpytywania serwera komunikatora, są one zamieniane do skrótu kryptograficznego i w takiej zaszyfrowanej formie są wysyłane, aby możliwe było połączenie się z drugą osobą. Tak więc w przypadku fizycznego przejęcia urządzenia, danych z komunikatora nie da się odzyskać. Ponadto ów skrót nie jest przechowywany na stałe na serwerze w przeciwieństwa np. do komunikatora Viber (który zbiera kopie numerów telefonów i kontaktów). Podobnie z WhatsApp-em, który wymienia wszystkie dane, kontakty oraz historię wiadomości z Facebookiem do celów marketingowych. Jak czytamy w zapisach licencyjnych: WhatsApp zbiera i udostępnia całą masę danych o użytkowniku i dzieli się z nimi, i to nie tylko z Facebookiem, ale także z firmami współpracującymi z Facebookiem. Tak naprawdę, jeśli prywatność jest najważniejszym aspektem komunikatora, to korzystanie z WhatsApp-a to bardzo zły pomysł. Jeśli nieposzanowanie prywatności jest dla użytkownika do zaakceptowania, to nikogo nie będziemy zniechęcać. Szyfrowanie end-to-end zastosowane w WhatsApp jest bezpieczne, natomiast to, co robi aplikacja z pozostałymi danymi, które są zapisane w telefonie, to całkiem inna historia.

Technicznie o UseCrypt

Schemat nawiązywania połączenia i negocjacji kluczy dla protokołu ZRTP na dwóch różnych urządzeniach.

Schemat nawiązywania połączenia i negocjacji kluczy dla protokołu ZRTP na dwóch różnych urządzeniach.

W komunikatorze UseCrypt Messenger zastosowano kilka rodzajów szyfrowania, które zabezpieczają wiadomości tekstowe i rozmowy głosowe. Algorytmem, który szyfruje wiadomości tekstowe jest TextSecure. Z kolei algorytm ZRTP odnosi się do całego protokołu odpowiedzialnego za realizację połączenia głosowego. W obu przypadkach protokoły te są dodatkowo wspierane przez AES-256.

Analizując powyższy schemat, to podczas nawiązywania połączenia z drugim człowiekiem, który używa UseCrypt Messenger, smartfon najpierw ustanawia zwykłe, nieszyfrowane połączenie. Następnie generuje klucz na podstawie protokołu ZRTP (Zimmermann & Real-time Transport Protocol). Po wynegocjowaniu kluczy na obu urządzeniach cała transmisja jest szyfrowana.

Protokół ZRTP umożliwia wykrycie ataku MITM przez wyświetlanie krótkich haseł literowych. Rozmówcy powinni te hasła porównać ustnie — zapytać siebie nawzajem, co widzą na ekranie. Protokół ZRTP nie potrzebuje odwoływania się do żadnych serwerów, jednak komunikator z uwagi na charakter wymiany informacji pomiędzy odbiorcami, wykorzystuje serwer pośredniczący, który nie przechowuje żadnych danych. W związku z tym cała operacja jest bardzo bezpieczna dla obu stron komunikacji.

Więcej o protokole ZRTP, który bazuje na algorytmie Diffiego-Hellmana napisali w języku polskim prof. ndzw dr inż. Wojciech Nowakowski z Instytutu Maszyn Matematycznych oraz prof. ndzw dr. hab. Inż. Tomasz Adamski z Instytutu Systemów Elektronicznych, Wydziału Elektroniki i Technik Informacyjnych na Politechnice Warszawskiej. Lektura zawiera także ciekawe informacje o (nie)bezpieczeństwie korzystania ze Skype i innych komunikatorów.

Negocjowanie wymiany kluczy opisali w bardzo zrozumiały sposób polscy naukowcy, więc ich zacytujemy:

Połączenie ZRTP składa się z trzech faz:

W fazie pierwszej, zostaje zestawione nieszyfrowane połączenie pomiędzy rozmówcami i programy używane do rozmowy sprawdzają, czy druga strona obsługuje szyfrowanie połączeń.

Jeśli tak (to w fazie drugiej) rozpoczynane jest szyfrowane połączenie – po zakończeniu fazy drugiej, obaj rozmówcy słyszą się nawzajem, są w połączeniu szyfrowanym, ale nie mogą być pewni, czy nie są ofiarami ataku MITM.

W fazie trzeciej, na ekranach obu z nich pojawia się ten sam czteroznakowy kod. Jeśli rozmawiając potwierdzą, że obaj widzą ten sam kod – mogą być pewni, że nikt ich nie podsłuchuje.

Jak już wspomniano, na potrzeby każdej rozmowy generowany jest inny, losowy klucz. Zaraz po zakończeniu rozmowy jest kasowany z pamięci. Zauważmy więc, że jeśli nawet ktoś nagra całą rozmowę w postaci zaszyfrowanej i np. ukradnie laptopa z którego ta rozmowa była przeprowadzona, nadal nie będzie w stanie jej odzyskać.

Protokół ZRTP jest otwarty i zaraz po jego publikacji pojawiło się kilka programów, które go wykorzystują. Obecnie obsługiwany jest na każdej liczącej się platformie, zarówno komórkowej, jak i desktopowej. Protokół ZRTP definiuje wyłącznie sposób szyfrowania i z tego powodu może być stosowany razem z praktycznie każdym istniejącym protokołem komunikacji.

A więc rozmawiając z drugą osobą, po 60 minutach zostaniemy automatycznie rozłączeni. To nie jest wada techniczna, a zaprogramowana architektura bezpieczeństwa. Generowany za każdym razem nowy klucz powstaje z wykorzystaniem protokołu ZRTP, a jego autorem jest ten sam człowiek, który stoi za protokołem PGP, do dzisiaj powszechnie stosowanym na całym świecie. To znacząco minimalizuje ryzyko złamania klucza i podsłuchania rozmówców. W rzeczywistości przejęcie takiego klucza i jego obliczenie zajęłoby miliony lat. Przełamanie zabezpieczeń w ciągu jednej godziny jest właściwie niemożliwe, a nawet gdyby się to udało, to po godzinie taki klucz będzie już bezużyteczny. Obie strony komunikacji podczas połączenia głosowego powinny widzieć dwa takie same wyrazy. Wyrazy te za każdym razem są inne.

Wykorzystany protokół ZRTP (Zimmermann Real-Time Protocol) pozwala na negocjację klucza kryptograficznego dopiero w momencie zestawienia połączenia pomiędzy klientami usługi. Rozwiązania konkurencyjne korzystają z klucza ustalonego przed wykonaniem połączenia, co pozwala na wprowadzenie tylnych furtek do oprogramowania, umożliwiających odtworzenie prowadzonej komunikacji. W UseCrypt Messenger dla uzyskania pewności rozmówcy po nawiązaniu połączenia mogą zapytać się nawzajem o widoczne na telefonie wyrazy i mieć pewność, że uczestniczą w ramach tej samej rozmowy (i że nie są podsłuchiwani w ramach ataku MITM). Dla pełnego bezpieczeństwa należałoby rozpocząć rozmowę od porównania tych znaków. Jeżeli są takie same, to połączenie jest bezpieczne — nikt nie przechwytuje komunikacji pomiędzy punktami.

Do szyfrowania komunikacji dodatkowo jest wykorzystywany algorytm szyfrujący AES, dla którego w odróżnieniu od stosowanych w standardowej komunikacji telefonicznej szyfrów A5/2 i A5/3, nie zostały wykazane praktyczne ataki. Można to porównać na przykładzie bezpieczeństwa polskich sieci GSM. Operatorzy Play, T-Mobile, Orange, Plus:

Raport powstał w oparciu o dane przesyłane w okresie grudzień 2011 — sierpień 2016 przez użytkowników do serwisu gsmmap.org. Autorzy badania zaznaczają, że zawarte w dokumencie informacje niekoniecznie muszą być nad wyraz dokładne.

Raport wskazuje na słabość algorytmów A5/0, A5/1 i A5/3. Prawie we wszystkich rozpatrywanych przypadkach można rozszyfrować komunikację i podsłuchać rozmówców. UseCrypt stosuje dodatkowe zabezpieczenie w postaci własnego szyfrowanego kanału algorytmem AES o długości klucza 256 bitów.

A co z jakością połączeń? Czy kompresja danych i ich szyfrowanie wpływa na pogorszenie głosu słyszanego w telefonie?

CBR powoduje, że każda sekunda rozmowy jest kodowana na stałą ilość danych. W VBR ilość danych jest różna w zależności od treści rozmowy (chwile ciszy, zmiany tonacji, itp.).

Plusy to mniejsza ilość danych i lepsza jakość. Minusy — można zbudować słownik najpopularniejszych słów i ich odpowiedników w postaci ilości danych na słowo. Stąd można deszyfrować większość komunikacji nie posiadając klucza. W UseCrypt atak ten nie ma miejsca, gdyż każdy dźwięk jest kodowany stałą ilością danych – wyjaśnia Kamil Kaczyński, specjalista kryptolog.

Na potrzeby realizacji połączenia głosowego wykonywane jest kodowanie dźwięku z wykorzystaniem programowego Vocoder-a. Dane są poddawane procesowi szyfrowania i po stronie odbiorcy odtwarzane 1:1. Nie ma zatem mowy o przekłamaniu choćby pojedynczego dźwięku. Sam algorytm kompresji zapewnia dźwięk o jakości HD-Voice z częstotliwością próbkowania 16 kHz. Komunikacja głosowa wymaga od użytkownika posiadania łącza internetowego o prędkości minimum 28,8 Kb/s (wysyłanie i pobieranie). Oznacza to, iż połączenie może być w takiej samej jakości realizowane zarówno w sieci 3G, 4G, jak i 2G z wykorzystaniem transmisji EDGE. Transmisja GPRS może skutkować utratą części pakietów i nie jest zalecana dla połączeń głosowych.

W odróżnieniu od rozwiązań konkurencyjnych wykorzystujących kodeki o zmiennej przepływności (VBR) w UseCrypt Messenger wykorzystano kodek o stałej przepływności (CBR).

Podyktowane jest to zwiększeniem poziomu bezpieczeństwa całej usługi. Kodeki o zmiennej przepływności są podatne na ataki typu side-channel. Umożliwiają one odzyskanie większości komunikacji bez potrzeby dokonywania odszyfrowania. Kodek CBR jest całkowicie odporny na ten rodzaj ataków.

CBR w przeciwieństwie do VBR w np. w Telegram, nie pozwala na „odtworzenie zawartości rozmowy z 50-90% dokładnością w kilkunastu językach”. Tak twierdzi pięciu naukowców z Uniwersytetu Johna Hopkinsa z Katedry Nauk Komputerowych w Baltimore (USA). W swojej pracy naukowej tłumaczą, że:

Our results show that an eavesdropper who has access to neither recordings of the speaker’s voice nor even a single utterance of the target phrase, can identify instances of the phrase with average accuracy of 50%. In some cases, accuracy can exceed 90%.

UseCrypt Messenger projektowany z myślą o najwyższym bezpieczeństwie nie idzie na kompromisy. Celowo wykorzystany algorytm CBR daje odporność na ataki side-channel.

Anonimowość rozmówców

Komunikator może być zarejestrowany na dowolny numer telefonu, także numer wirtualnego operatora. Nie jest wymagane, by na stałe łączyć komunikator z kartą SIM, ale początkowa instalacja aplikacji musi odbyć się poprzez przesłanie kodu SMS lub kodu z weryfikacji głosowej. Konieczność ponownej rejestracji występuje tylko po zmianie urządzenia lub przeinstalowaniu aplikacji. Komunikator może być wykorzystywany bez aktywnej karty SIM (wymagane jest wtedy połączenie z Internetem).

Produkt firmy Usecrypt S.A. pozwala na animizację adresu sieciowego użytkowników usługi. Aplikacja wykorzystuje węzły pośredniczące, które rozdzielają ruch pomiędzy użytkownikami końcowymi. Ukrywany jest adres IP — każda ze stron komunikacji posiada jedynie adres IP serwera pośredniczącego. To bardzo ważne w kontekście komunikatorów, które mogą łączyć się z serwerami na terytorium Stanów Zjednoczonych. Stwarza to szereg zagrożeń dla przetwarzanych metadanych połączeń, które mogą zostać ujawnione. UseCrypt Messenger posiada bazę serwerową zlokalizowaną w Europie, która nie podlega jurysdykcji USA. Dodatkowo na żądanie klienta dla największych instytucji możliwe jest wdrożenie serwera w infrastrukturze klienta. Pozwoli to osiągnąć pełną kontrolę nad przepływanymi informacji. Ani jeden bit danych nie będzie wysyłany poza serwery komunikatora wdrożonego w firmie.

Kilka zrzutów ekranu z aplikacji. Komunikator domyślnie blokuje wykonywanie zrzutów ekranu, co zabezpiecza przed szkodliwym oprogramowaniem. Funkcję tę można wyłączyć.

Kilka zrzutów ekranu z aplikacji. Komunikator domyślnie blokuje wykonywanie zrzutów ekranu, co zabezpiecza przed szkodliwym oprogramowaniem. Funkcję tę można wyłączyć.

A co z fizyczną utratą urządzenia? W momencie zdalnego usunięcia komunikatora z urządzenia, np. z Google Play, klucz szyfrujący jest niszczony, aby nie dało się odszyfrować lokalnej kopii bazy danych wiadomości. Dodatkowo komunikator dysponuje funkcją „Panic-Code”, dzięki której można wymusić natychmiastowe usuwanie historii wiadomości i wyrejestrowanie numeru z usługi. Każdorazowy dostęp do aplikacji można zabezpieczyć kodem lub ustawić, by co 5 sekund każda wiadomość z czatu była automatycznie kasowana. Niemniej wiadomości przesłane przez komunikator są tak dobrze zabezpieczone jak telefon. Oznacza to, że zarówno telefon, jak i komunikator powinny być chronione hasłem dostępu (lub wzorem blokującym). W przeciwnym wypadku każda osoba postronna będzie miała dostęp do historii rozmów i wszystkich danych zapisanych w telefonie. Jednakże w przypadku komunikatora UseCrypt Messenger używany jest drugi niezależny mechanizm, który sprawia, że trzeba przełamać zabezpieczenia zarówno telefonu, jak i aplikacji. Zastosowanie tych zabezpieczeń powoduje, że po przejęciu telefonu nie będzie możliwe dostanie się do historii rozmów. To bardzo ważne, ponieważ właśnie w taki sposób wpadł współpracownik Donalda Trumpa, który korzystał z komunikatorów WhatsApp i Signal na BlackBerry.

Warto jeszcze wspomnieć o funkcji sprawdzania telefon, czy ten jest podatny na ataki. Przede wszystkim komunikator domyślnie nie pozwala robić szkodliwemu oprogramowaniu zrzutu ekranu, sprawdza, czy dostępne są jailbreak dla iOS oraz root dla Androida. UseCrypt dzięki domyślnym zabezpieczeniom systemów mobilnych (w tym kontekście mowa o piaskownicy) nie zezwala na dostęp do mikrofonu, kamery i głośnika innym aplikacjom podczas korzystania z komunikatora.

Dla kogo jest UseCrypt Messenger?

Przede wszystkim nie dla osób, które nie mogą zaakceptować miesięcznej opłaty w wysokości 65 złotych. Użytkownicy, którzy nie godzą się na stałą kwotę, powinni nadal korzystać z komunikatorów, które znajdują się pod jurysdykcją obcych państw lub skorzystać z komunikatora wykorzystującego sieć Tor do ukrywania i szyfrowania wiadomości. Jeżeli chodzi o UseCrypt Messenger, to zastosowane wobec użytkowników prawo obowiązuje to samo, co i w Polsce.

Autor: Adrian Ścibor, AVLab