Wpadka Signal Desktop, czyli jak mogę mieć dostęp do Twoich wiadomości

dodał 24 października 2018 o 18:20 w kategorii Prywatność, Wpadki  z tagami:
Wpadka Signal Desktop, czyli jak mogę mieć dostęp do Twoich wiadomości

Signal, uważany dotychczas za jeden z najbardziej bezpiecznych komunikatorów, zanotował wpadkę. Dosyć poważną, która sprawia, że niepowołane osoby mogą uzyskać dostęp do naszych wiadomości.

Po wpadkach WhatsAppa, gdzie można było tworzyć fałszywe wiadomości, czy desktopowej wersji Telegrama, która okazała się podatna na wykorzystanie znaków unicode, co pozwalało wyposażyć przejętą maszynę w koparkę kryptowalut, przyszedł czas na Signala, w którym odkryto dosyć poważną lukę bezpieczeństwa zagrażającą poufności i prywatności przesyłanych przez nas wiadomości. Podatność polega na lokalnym udostępnianiu klucza do rozszyfrowania bazy wiadomości, więc każdy, kto go zdobędzie, może uzyskać nieograniczony dostęp do naszych rozmów.

Na czym polega problem?

Podczas instalacji aplikacji Signal Desktop tworzona jest szyfrowana baza danych SQLite o nazwie db.sqlite. Plik ten jest wykorzystywany do przechowywania naszych wiadomości. Jednocześnie podczas instalacji tworzony jest indywidualny klucz do otwarcia/odszyfrowania bazy bez dodatkowej interakcji ze strony użytkownika.

Po otwarciu pliku bazy w notatniku naszym oczom ukazują się zaszyfrowane wiadomości:

Widok zaszyfrowanej bazy w notatniku, źródło: bleepingcomputer.com

Aby odszyfrować bazę, jest nam potrzebny wspomniany wcześniej klucz, a ten – jak się okazuje – jest przechowany w ogólnodostępnym pliku na dysku i jakby tego było mało, jest zapisany w postaci plain text. Klucz ten jest wykorzystywany za każdym razem, gdy uruchamiamy Signal Desktop.

Dla platformy Windows – plik z kluczem znajduje się w lokalizacji:

%AppData%\Signal\config.json

Dla platformy Mac – plik z kluczem znajduje się w lokalizacji:

~/Library/Application Support/Signal/config.json

Po otwarciu pliku config.json dostajemy gotowy klucz do wykorzystania i odszyfrowania bazy naszych wiadomości:

Klucz do odszyfrowania bazy, źródło: bleepingcomputer.com

Wyciągnięte wnioski

Szyfrowanie bazy jest świetne, dopóki nie zmanipulujesz klucza – powiedział Nathaniel Suchy dla BleepingComputer.

Analitycy z serwisu BleepingComputer postanowili zainstalować aplikację i przetestować podatność. Pierwszym krokiem było spreparowanie kilku wiadomości, aby można było je podejrzeć z poziomu bazy. Następnie otworzyli plik config.json, by pobrać klucz do odszyfrowania bazy (wykonali więc kroki opisane w pierwszej części artykułu).

W kolejnym etapie testu otworzyli bazę wiadomości za pomocą narzędzia SQLite Database Browser. Zapisane wiadomości znajdowały się w lokalizacji:

%AppData%\Roaming\Signal\sql\db.sqlite

Po otwarciu bazy ukazało się okno, w którym należało wprowadzić pobrany wcześniej klucz:

Okno logowania do bazy wiadomości, źródło: bleepingcomputer.com

Po wprowadzeniu klucza baza została odszyfrowana i analitycy otrzymali pełny dostęp do zawartości:

Odszyfrowana baza wiadomości, źródło: bleepingcomputer.com

Podsumowanie

Szyfrowanie bazy w celu zabezpieczenia wiadomości przesyłanych przez użytkowników jest oczywiście dobrym pomysłem, ale tylko do momentu, gdy klucz do jej odszyfrowania nie jest ogólnodostępny. Według Nathaniela Suchy’ego problem można w bardzo prosty sposób rozwiązać:

Aby ograniczyć wykorzystanie podatności, wystarczy wymóc na użytkownikach ustawienie hasła do aplikacji, a następnie użyć go do odszyfrowania klucza.

W innym przypadku takie rozwiązanie pozostawia bazę naszych wiadomości, które przechodzą przez Signal Desktop, dostępną dla potencjalnych atakujących, co stanowi spore zagrożenie dla poufności i prywatności naszych rozmów. Do czasu usunięcia problemu odradzamy korzystanie z desktopowej wersji Signala. Podatność została już zgłoszona do producenta aplikacji przez BleepingComputer.