Bezpieczeństwo SECRET
SECRET jest rozwijany według zasady, że bezpieczeństwo nie może zależeć wyłącznie od ukrycia kodu aplikacji. Kod klienta może zostać poddany analizie, dlatego właściwe zabezpieczenia opierają się na kryptografii, kluczach urządzenia i weryfikacji serwerowej.
Tożsamość instalacji
Każda czysta instalacja generuje własną kryptograficzną tożsamość i SECRET ID. Zwykła aktualizacja aplikacji zachowuje istniejącą tożsamość. Odinstalowanie i ponowna instalacja tworzą nową.
Klucze prywatne
Klucz prywatny tożsamości jest generowany na urządzeniu z wykorzystaniem Android Keystore i nie powinien opuszczać urządzenia. Serwer pracuje na kluczach publicznych i dowodach podpisu.
Szyfrowanie wiadomości
Treść komunikacji jest szyfrowana end-to-end. Warstwa serwerowa pełni rolę relaya i kolejki offline. Serwer nie jest projektowany do odszyfrowywania treści rozmów.
Prekeys i zestawianie sesji
Klient publikuje podpisane prekeys umożliwiające inicjowanie szyfrowanej komunikacji. Serwer weryfikuje powiązanie kluczy z tożsamością.
Kolejka offline
Zaszyfrowana wiadomość niedostarczona do odbiorcy może pozostać w kolejce maksymalnie 7 dni. Po dostarczeniu jest usuwana z kolejki.
Uwierzytelnianie serwerowe
Rejestracja i ponowne uwierzytelnienie wymagają kryptograficznego dowodu posiadania klucza prywatnego urządzenia. Samo skopiowanie APK nie daje dostępu do istniejącej tożsamości użytkownika.
PIN i lokalne dane
PIN ogranicza dostęp do aplikacji, a dane lokalne są przechowywane w zaszyfrowanym magazynie. Po serii błędnych prób aplikacja stosuje czasową blokadę wprowadzania PIN-u.
Minimalizacja metadanych
Projekt nie wymaga numeru telefonu ani książki adresowej. Serwer nadal musi przetwarzać pewne dane routingu i stanu połączenia, dlatego SECRET nie obiecuje „zera metadanych”. Celem jest ograniczanie ich do minimum potrzebnego do działania.
Ograniczenia
E2EE nie chroni treści już odszyfrowanej na przejętym urządzeniu. Root, malware, przejęta sesja systemowa lub dostęp fizyczny do odblokowanego telefonu mogą osłabić ochronę niezależnie od protokołu komunikacyjnego.
Public Preview
Projekt jest nadal rozwijany. Przed finalnym wydaniem planowane są dalsze audyty, wzmacnianie infrastruktury i rozwój nowoczesnego mechanizmu ratchet oraz transparentności kluczy.