O autorze
Rok 2020 jest nie tylko rokiem koronawirusa, ale także protestów: pomijając obowiązkowe nagłówki o COVID-19, wstrząsające wiadomości dotyczą dziś nie wojen, a właśnie protestów. Choć może się wydawać, że porządny protest wymaga płonących radiowozów i potłuczonych witryn sklepowych, porządnie zorganizowane przejawy obywatelskiego sprzeciwu opierają się nie na przemocy, a na logistyce i komunikacji. Wiedzą o tym w Hongkongu. Autorzy aplikacji Bridgefy też sprawiali wrażenie świadomych tego faktu. Ponieśli jednak druzgocącą klęskę. Potrzebne jest jednak parę słów wprowadzenia.
O komunikację jest dziś łatwiej niż kiedykolwiek, ale w większości jest ona zależna od infrastruktury: działa tylko wtedy, gdy nie zablokował jej operator i jest prywatna tylko w zakresie dopuszczanym przez oprogramowanie. Nawet jeżeli aplikacja jest “szyfrowana”, to smartfon z nią może mieć dziurawy system lub korzystać z tzw. “chmurowo wspomaganej klawiatury”. Dlatego aby zadbać o prywatność, musimy nie tylko zatroszczyć się o szyfrowanie end-to-end, bezpieczny system i brak podsłuchu ze strony innych aplikacji. Należy mieć także na uwadze to, że sieć komórkowa nie należy do nas i jest podatna na podsłuch i inne formy inwigilacji.
Decentralizacja kluczem do sukcesu
Rozwiązaniem tej ostatniej kwestii jest użycie zdecentralizowanego komunikatora. Dla porównania: szyfrująca na końcówkach (a nie w chmurze) aplikacja Signal przesyła wiadomości w sposób bezpieczny… ale przestanie działać, gdy władze zablokują sieć telefoniczną. Aby odpięte od sieci telefony dalej mogły wymieniać się wiadomościami między sobą, konieczne jest stworzenie sieci kratowej (mesh network, topologia siatki) opartej o siatkę niepełną. Każdy węzeł takiej sieci autonomicznie zabiega o utrzymanie kontaktu z jak największą liczbą innych węzłów. W takiej sieci, osiągnięcie masy krytycznej pozwala wyznaczyć graf umożliwiający dostarczenie wiadomości do każdego uczestnika bez konieczności stosowania centralnego serwera.
Takie rozwiązanie to krok dalej niż Signal. Zastosowano je, z użyciem Bluetooth, w aplikacji Bridgefy. Tworzy ona sieć kontaktów w grupie (“chmarze”) korzystając z zasięgu Bluetooth. Nadaje się dzięki temu na komunikator dla dużych zgromadzeń, jak protesty na Białorusi, w Hongkongu i w ramach działalności BLM. Wyłączenie internetu jej niestraszne, a podsłuchy są niewykonalne dzięki zastosowaniu OTR.
Though Bridgefy has known of the vulnerabilities since April, they are only now announcing them. They attribute the delay to their fruitless internal efforts to remediate these defects, and their ultimate conclusion that their system needs to be rebuilt from the ground up.
16/
— Cory Doctorow #BLM (@doctorow) August 24, 2020
Błędy implementacji i architektury
A przynajmniej tak twierdzili twórcy. Innego zdania, i to już w kwietniu, był zespół badaczy analizujących działanie aplikacji. W tym tygodniu opublikowano dokument z wnioskami, sformułowanymi po kilku miesiącach testów programu i dyskusji z autorami. Bridgefy okazuje się nie być bezpieczne. Ponadto, wskutek reklamowania się jako dedykowana “aplikacja do protestów”, naraża użytkowników (np. politycznych dysydentów) na ryzyko deanonimizacji.
Okazuje się na przykład, że aplikacja szyfruje dane, ale nie metadane. Możliwe staje się odtworzenie na tej podstawie sieci kontaktów danej osoby. Dzięki temu ułatwione jest określenie jej tożsamości. Choć brzmi to jak błąd w implementacji, sprawa tak naprawdę ma się znacznie gorzej: to błędy w samej architekturze aplikacji. Po prostu źle ją wymyślono. Obiecując zarazem zbyt wiele.
Wstępne rozgłaszanie klucza przebiega w sposób naiwny, jak w PGP: użytkownik nadaje publicznie (broadcast) klucz publiczny związany ze swoją tożsamością. W PGP to wystarczy, ale w przypadku Bridgefy zapominanie, że identyfikacja to nie uwierzytelnienie jest drogim błędem. Bezpieczna jest więc komunikacja, ale nie wymiana klucza. Bridgefy okazuje się być zatem podatny na wszystkie niebezpieczeństwa przed którymi reklamuje ochronę: deanonimizację, kreślenie grafów kontaktów, kradzież tożsamości, odczyt wiadomości, podmianę ich treści oraz zablokowanie sieci.
No part of the Bridgefy app is encrypted now. The protocol we were using was ok but wasn’t safe enough, so we removed it.
In the following weeks we’ll be releasing a new version that will be encrypted with top security protocols.
The app still works.
Please stay safe!
— Bridgefy (@bridgefy) June 4, 2020
Nie bierz komunikatorów od obcych
Publiczne rozgłaszanie klucza nie jest groźne dla tego klucza. Bezpieczeństwo szyfru nie ucierpi na tym, że publiczna część klucza wymienionego między dwoma użytkownikami zostanie rozgłoszona w sieci. Zapewne dlatego twórcy uznali, że sprawa jest załatwiona. Problem polega na tym, że w jednej sieci może być więcej osób, które powiedzą “jestem Kamil, a to jest mój klucz”. Prowadzi to do zatrucia komunikacji: wiadomości od prawdziwego Kamila są bezpieczne. Wiadomości od złowrogiego Kamila też – są wszak zaszyfrowane. Problem w tym, że to nie ten sam Kamil…
Twórcy aplikacji zostali poinformowani o jej słabościach już wcześniej. Od tego czasu rozpoczęli stopniowe wycofywanie się ze swoich dotychczasowych deklaracji dotyczących bezpieczeństwa Bridgefy. Obecne jednak zdecydowali się… poddać grę i zbudować program na nowo, od zera, w oparciu o Signal. Klęska rozwiązania jest przy okazji pożywką dla teorii spiskowych.
Zgłoś naruszenie/Błąd
Oryginalne źródło ZOBACZ
Dodaj kanał RSS
Musisz być zalogowanym aby zaproponować nowy kanal RSS