Cryptocat wcale nie taki bezpieczny: poważne konsekwencje trywialnego błędu programistów
Autorowi tej notki pozostaje bić się w piersi. Nie raz osobom,którym nie chciało się konfigurować Tora, polecał przeglądarkowerozszerzenie Cryptocat jako sposób na bezpieczne rozmowy w Sieci.Teraz okazuje się, że wszystkie rozmowy przeprowadzone za pomocąCryptocata w czasie od 17 października 2011 roku do 15 czerwca 2013roku mogły być podsłuchiwane, a ich szyfrowanie – złamane. Poraz kolejny okazuje się, że kryptografia jest sprawą bardzo trudną iniestety dla większości jedynym sposobem jej nauki jest uczenie sięna błędach.Nie pierwszy to raz, kiedy eksperci od bezpieczeństwa IToskarżycielsko wskazują palcami w stronę tak popularnego przecieżCryptocata. Jesienią zeszłego roku, gdy o aplikacji zrobiło sięgłośno, Patrick Ball tak pisał: Cryptocat należy do kategoriiaplikacji polegających na tzw. bezpieczeństwie hosta. Najsłynniejszymprzedstawicielem tej grupy jest Hushmail – szyfrowana usługae-mail, korzystająca z tego samego podejścia. Niestety, narzędzia tesą podatne na dobrze znany atak (…) jeśli korzystasz z nich,twoje bezpieczeństwo w całości zależy od bezpieczeństwa hosta.Oznacza to, że w praktyce Cryptocat nie jest bardziej bezpieczny niżGmail. Ogólnie mówiąc, twoje bezpieczeństwo w systemie szyfrowaniabazującym na hoście nie jest wcale lepsze, niż niż brakjakiegokolwiek systemu szyfrowania.[img=01-opener]Twórcy Cryptocata przyjęlioskarżenie „na klatę”, przebudowując jego architekturętak, by działała wyłącznie jako lokalnaaplikacja przeglądarkowa. Zaznaczyli przy tym, że ich misją jestznalezienie najlepszej, najbardziej funkcjonalnej równowagimiędzy bezpieczeństwem i dostępnością. Brzmi dobrze, przynajmniej dla „zwykłego użytkownika”, który nie doktoryzował się z teorii kryptosystemów, prawda? A jednakodkrycie Steve'a Thomasa, obnażające fatalną lukę w tej aplikacji dowodzi, że w kwestii bezpieczeństwa i kryptografii pójście na kompromis nigdy nie jest dobrym rozwiązaniem – równie dobrze można w ogóle nie mieć żadnych zabezpieczeń.Działający lokalnie Cryptocat zapewniać ma użytkownikom bezpieczny czat, korzystający z komunikacjipoza nagraniem (off-the-record) do szyfrowania wiadomości. Wmetodzie tej, dla każdej sesji czatu generowane są nowe pary kluczy,dla zachowania Perfect Forward Secrecy (czyli uniemożliwienianapastnikowi odszyfrowania wszystkich czatów po przejęciu jednego zkluczy – każdą z sesji musiałby on łamać oddzielnie). A jednakokazuje się, że wszystkie wersje Cryptocata do numeru 2.0 są podatnena atak siłowy przeciwko szyfrowanej komunikacji. Błąd tkwił wfunkcji konwertującej ciągi w tablice liczb całkowitych. Funkcja,która na wejściu oczekiwała na tablicę z 15-bitowymi liczbamicałkowitymi, otrzymywała ciąg cyfr 0-9, opisanych wartością koduASCII danej cyfry. Jak pisze Thomas, autorzy najwyraźniej nierozumieli różnicy między bajtem, a pojedynczym znakiem dziesiętnym wliczbie, ich 15-bitowe liczbycałkowite były w rzeczywistości wartościami od 0 do 9. A że najmniejznaczące trzy bity były zerowane, to w rezultacie uzyskiwanoprzestrzeń kluczy o wiele rzędów wielkości mniejszą, niż można byoczekiwać. Powstałe w ten sposób z zastosowaniem krzywycheliptycznych klucze prywatne były śmiesznie małe,łatwe do siłowego złamania.Każdy popełnia błędy, ale niekażdy potrafi się do tych błędów przyznać. Według odkrywcy luki,twórcy Cryptocata początkowo próbowali ukryć swoją niekompetencję,twierdząc że poprawkę do wersji 2.0.42 wprowadzono ze względu naproblemy ze wsteczną kompatybilnością. Wcześniej też robili co mogli,by zignorować zgłoszenia Thomasa, przez długi czas nie obdarowując goobiecanymi dla odkrywców błędów koszulkami, naklejkami,pieniędzmi i wpisem na Ścianie Niekwestionowanej Wielkości. OdwetThomasa był dość bezwzględny – wydane przez niego narzędzieDecryptocat pozwala w ciągu kilku minut złamać klucze użyte doszyfrowania wiadomości. Przedstawił on też całą listę błędówprojektowych, które wkradły się do Cryptocata, sugerując, żebytrzymać się od tej aplikacji na odległość.Ostatecznie deweloperzyCryptocata przyznalisię do wpadki, uznając zasługi Thomasa, przepraszając go iwprowadzając na listę zasłużonych, a przy tym wyjaśniając, że odkrytaprzez niego luka nie dotyczy czatów prywatnych, 1 na 1. Wątpliwościjednak pozostały. Na ile można zaufać narzędziom kryptograficznym,nie będąc samemu doświadczonym matematykiem, ręcznie sprawdzającymkod aplikacji? Pikanterii sprawie dodaje fakt, że jeszcze w styczniutego roku analitycy z firmy VeraCode opublikowali wyniki audytubezpieczeństwa Cryptocata, przyznając aplikacji najwyższą notę100/100.