Dokumentacja techniczna i model zagrożeń
Jak działa UseCrypt Messenger: szyfrowanie danych na telefonie i kontrola dostępu
Przejęta kopia bazy rozmów nie powinna stawać się czytelnym archiwum tylko dlatego, że ktoś posiada jej plik. UseCrypt Messenger opisuje osobną warstwę ochrony lokalnych danych: zaszyfrowane rekordy, kod aplikacji, klucz i obsługę połączeń przy zamkniętej bazie. To inny problem niż ochrona transmisji pomiędzy rozmówcami.
Opracowanie redakcji UseCrypt rozwija dokument produktowy „Data at rest protection”, przekazany w korespondencji technicznej w marcu 2025. Opisujemy zadeklarowany mechanizm i wynikające z niego pytania wdrożeniowe, nie nowy audyt aktualnej aplikacji. Daty, platforma i zakres historycznych badań są podane osobno. Dokument nie stanowi dowodu, że Messenger korzysta z HVKM opisanego dla UseCrypt Safe.
1. Trzy miejsca, w których rozmowa może stracić poufność
Rozmowa ma treść podczas transmisji, kopię zapisaną na urządzeniu oraz reprezentację w działającej aplikacji. Zabezpieczenie jednego miejsca nie rozstrzyga pozostałych. Szyfrowanie end-to-end określa ochronę komunikacji pomiędzy końcami protokołu. Data at rest dotyczy przechowywania. Ochrona pamięci i procesów dotyczy momentu używania danych.
Załóżmy, że napastnik zdobywa plik bazy z kopii telefonu, lecz nie posiada klucza ani uprawnionej sesji aplikacji. Ochrona bazy ma utrudnić przejście od tych bajtów do treści rozmów. Gdy napastnik kontroluje odblokowaną aplikację, zadanie jest inne: treść może być dostępna przez ekran, interfejs procesu albo eksport. Dlatego w analizie nie zamieniamy tezy o zaszyfrowanej bazie w tezę o odporności na każdy rodzaj spyware.
Praktyczna różnica polega na zmianie zasobów wymaganych do odczytu: sama kopia danych nie musi wystarczać. Skuteczność tej granicy zależy od klucza, konfiguracji kodu i implementacji. OWASP MASVS-STORAGE-1 określa cel bezpiecznego przechowywania w aplikacjach mobilnych; jest kryterium oceny, nie certyfikatem UseCrypt.
2. SQLite jest magazynem rekordów, a nie nazwą algorytmu szyfrowania
Dokument produktowy wskazuje SQLite jako lokalną bazę danych aplikacji i AES-256 jako szyfr stosowany do rekordów. Rozdzielamy te informacje. SQLite opisuje strukturę oraz dostęp do danych, AES rodzinę operacji kryptograficznych. Samo rozszerzenie pliku lub identyfikacja SQLite nie mówi, czy każdy element bazy jest zaszyfrowany.
Źródło opisuje szyfrowanie rekordów. Nie identyfikuje jednoznacznie SQLCipher, szyfrowania całych stron bazy, trybu AES, wektorów inicjujących ani mechanizmu integralności. Nie dopisujemy tych właściwości. Schemat logiczny można zapisać jako C = Encrypt(K, M, parametry), gdzie M jest chronionym rekordem, K kluczem, a C jego zaszyfrowaną reprezentacją. Parametry i format C wymagają odrębnej specyfikacji.
Audyt nie może ograniczać się do jednego pliku. SQLite może używać dziennika rollback lub WAL. Trzeba ustalić, czy dane wrażliwe pozostają w dziennikach, kopiach, plikach tymczasowych i załącznikach. Dokumentacja formatu SQLite: dziennik rollback oraz WAL wyjaśniają strukturę tych artefaktów. To wskazówki do testowania, nie stwierdzenie obecności wycieku w Messengerze.
3. Kod aplikacji wpływa na ochronę klucza
Materiał rozróżnia konfigurację z kodem aplikacji i bez niego. W wariancie bez kodu klucz bazy jest zapisany bez dodatkowej ochrony kodem w systemowym magazynie kluczy. Nie znaczy to „jawny plik dostępny dla wszystkich”. Nadal istnieje granica ochrony systemu operacyjnego. Nie należy jednak utożsamiać jej z dodatkową niezależną ochroną użytkownika.
W wariancie z kodem dokument mówi zarówno o wyprowadzaniu klucza z kodu, jak i przechowywaniu zaszyfrowanego klucza w magazynie systemowym. Nie określa pełnego KDF, parametrów ani sposobu połączenia obu czynności. Możliwego schematu „KDF(kod) zabezpiecza losowy klucz bazy” nie przedstawiamy jako potwierdzonej implementacji.
Krótki kod nie ma automatycznie 256 bitów entropii dlatego, że chroni klucz AES-256. Dla równomiernie losowanego kodu z N możliwości górna granica entropii wynosi log2(N). Rzeczywiste wybory ludzi mogą mieć mniejszą entropię. Odporność na zgadywanie zależy też od ograniczeń prób, kosztu KDF i ochrony sprzętowej. Trzeba sprawdzić, które z tych mechanizmów rzeczywiście działają w danym buildzie.
RFC 9106: konstrukcja Argon2 opisuje funkcję pamięciochłonną dla haseł. Link służy do zrozumienia kosztu zgadywania i wymagań specyfikacji. Nie stwierdza, że UseCrypt używa Argon2.
4. Magazyn kluczy nie jest jedną identyczną funkcją na każdym telefonie
Dokument używa ogólnego pojęcia systemowego magazynu kluczy. Z tego nie wynika konkretny poziom sprzętowy, klasa dostępności po zablokowaniu ani wymaganie uwierzytelnienia przy każdej operacji. Implementacja iOS i Androida musi być oceniona osobno.
Android Keystore: właściwości bezpieczeństwa opisuje ograniczanie eksportu i użycia kluczy. Nieeksportowalność nie jest tym samym co brak możliwości wykonania operacji przez przejęty proces. Ochrona sprzętowa zależy od urządzenia i konfiguracji; nie jest domyślną cechą każdego obiektu określanego jako „keystore”.
Apple Platform Security: ochrona Keychain wyjaśnia klasy dostępności i powiązanie ochrony z systemem. To kontekst platformowy. Nie dowodzi, którą klasę wybrał Messenger. W raporcie z badania powinny znaleźć się konkretne atrybuty i wersja platformy, nie samo logo producenta telefonu.
5. Odczyt uruchamia się po kodzie, a klucz pozostaje w RAM
Według opisu po uruchomieniu aplikacji i poprawnym kodzie uzyskiwany jest klucz umożliwiający dostęp do danych. Klucz pozostaje w RAM do zakończenia aplikacji. Nie jest to stwierdzenie, że cała baza zostaje przeniesiona do RAM lub że nigdy nie istnieje jawna reprezentacja pojedynczego rekordu.
Trzeba rozróżnić przejście do tła, blokadę ekranu, zamknięcie widoku i zakończenie procesu. Użytkownik może traktować je jako „zamknąłem aplikację”, system operacyjny nie musi. Dokument nie rozstrzyga wszystkich tych przejść. Test powinien mierzyć dostępność klucza i danych w każdym stanie.
Znika też proste równanie „zaszyfrowana baza = niewidoczna działająca rozmowa”. Gdy użytkownik czyta wiadomość, aplikacja potrzebuje jej treści. Ochrona storage ogranicza inny scenariusz niż przejęcie procesu w tym momencie. To granica zakresu technologii, nie argument przeciwko szyfrowaniu danych lokalnych.
6. Jak odebrać połączenie bez otwarcia bazy rozmów
Telefon ma zadzwonić także wtedy, gdy lokalna baza pozostaje zamknięta. Dokument opisuje wydzielenie minimalnego zestawu danych potrzebnych do obsługi połączenia i zapisanie ich w systemowym magazynie. Wymienia między innymi token autoryzacyjny dla serwera połączeń.
To świadomy podział funkcji: historia rozmów nie jest jedynym miejscem, z którego aplikacja czerpie dane potrzebne do sygnalizacji. Można uruchomić obsługę połączenia bez wcześniejszego udostępnienia całego archiwum. Token ma jednak własne uprawnienia, cykl życia i skutki przejęcia. Ochrona tokenu i ochrona treści wymagają osobnych testów.
Przychodzące połączenie -> minimalne dane sygnalizacyjne w magazynie systemowym -> komunikacja z serwerem połączeń -> obsługa połączenia != automatyczne otwarcie całej historii wiadomości
Schemat odtwarza deklarowany podział, nie pełny diagram sieci ani dowód odporności sygnalizacji. Nie oznacza braku serwera i nie dowodzi komunikacji peer-to-peer. Dokument nie ustala też listy wszystkich metadanych połączenia.
7. Powiadomienie może ujawnić rozmowę zanim ktokolwiek otworzy aplikację
Dla wiadomości przy zamkniętej bazie opis przewiduje powiadomienie bez danych kontaktu i bez podglądu treści. To istotna własność interfejsu: szyfrowanie transportu nie zapobiega przypadkowemu pokazaniu nazwiska lub wiadomości na zablokowanym ekranie, jeśli aplikacja sama je tam umieści.
Testuje się ekran blokady, centrum powiadomień i przejścia pomiędzy stanami bazy. Rozszerzenia powiadomień, zegarek, połączony komputer, kopie ekranowe i podgląd przełącznika aplikacji są dodatkową powierzchnią do sprawdzenia. Nie twierdzimy, że dokument potwierdza ich ochronę.
Ukrycie podglądu nie jest ukryciem wszystkich metadanych. System push i infrastruktura mogą obsługiwać informacje o dostarczeniu. Ten tekst nie wyprowadza anonimowości sieciowej z zachowania powiadomienia.
8. Reprodukowalny odbiór: wersja, konfiguracja, artefakt, wynik
Raport zaczyna się od identyfikatora buildu, platformy, wersji systemu, urządzenia i konfiguracji kodu. Następnie rozdziela kopię storage, dostęp do magazynu systemowego i kontrolę procesu. Wynik należy do konkretnego scenariusza. Stwierdzenie „nie znaleziono treści w tej kopii” jest mocniejsze dowodowo niż hasło o absolutnym bezpieczeństwie.
- Kopia bazy bez klucza: sprawdzić rekordy, indeksy i metadane, nie tylko rozpoznawalny nagłówek.
- Dzienniki i eksporty: obejrzeć WAL, rollback, załączniki, cache i zakres backupu.
- Kod i klucz: porównać wariant z kodem i bez niego, ustalić KDF oraz obsługę błędnych prób.
- Cykl procesu: uruchomienie, tło, blokada, wznowienie i rzeczywiste zakończenie procesu.
- Połączenie przy zamkniętej bazie: ustalić dostępne tokeny, ich zakres i możliwość odwołania.
- Powiadomienia: sprawdzić treść i tożsamość kontaktu przed odblokowaniem oraz po nim.
Próby wykonuje się na kontrolowanych kontach i danych testowych, z uprawnieniem właściciela. Zachowuje się stan wejściowy, czynności i wynik, także wynik negatywny. To plan odbioru, nie deklaracja, że redakcja wykonała te testy na aktualnym Messengerze.
9. Historyczny audyt: istotny wynik o określonej wersji
AVLab: audyt UseCrypt Messenger z 2020 roku opisuje badanie iOS w określonym zakresie. Stanowi publiczny punkt odniesienia do rzeczywiście wykonanej pracy. Nie zastępuje ponownego badania późniejszego buildu, Androida lub zmienionej infrastruktury.
Katalog testów i ich zakresów służy do oddzielenia niezależnej obserwacji od opisu projektu. Patent dokumentuje wynalazek i zastrzeżenia, nie wynik testu aplikacji. Publikacja operatora dokumentuje dystrybucję, nie certyfikację kryptografii. Każde źródło powinno odpowiadać na właściwe pytanie.
10. Pytania techniczne i odpowiedzi
Czy AES-256 wystarcza do oceny bezpieczeństwa?
Nie. Potrzebne są tryb pracy, format danych, integralność, generacja i ochrona klucza oraz model przeciwnika. Liczba bitów nie opisuje całego protokołu.
Czy baza jest zabezpieczona tak samo bez kodu aplikacji?
Opis rozróżnia oba warianty. Bez kodu nie występuje dodatkowa ochrona klucza tym kodem; pozostaje systemowy magazyn. To inne założenie bezpieczeństwa, a nie dowód publicznej dostępności klucza.
Czy odbieranie połączeń oznacza otwarcie historii?
Nie wynika to z opisu. Wyodrębniono minimalny zestaw danych sygnalizacyjnych. Zakres tego zestawu trzeba ocenić niezależnie.
Czy Messenger używa HVKM?
Ten dokument tego nie potwierdza. HVKM i kapsułki kluczy Safe opisujemy w odrębnym opracowaniu. Nie przenosimy właściwości jednego produktu na drugi.
Co technicznie zmienia ta warstwa?
Oddziela możliwość posiadania lokalnej kopii rozmów od zdolności ich odczytu i ogranicza ujawnianie treści przez powiadomienia w opisanym stanie. Konkretna skuteczność zależy od wersji oraz ustawień, dlatego porównanie produktów musi obejmować identyczne scenariusze.
11. Serwer przekazuje dane. Czy potrafi je odczytać?
Firma może odpowiadać za dostarczenie rozmowy, nie otrzymując uprawnienia do poznania jej treści. Ta różnica jest fundamentem oceny komunikatora. Uczestnictwo w transmisji nie jest automatycznie zdolnością odszyfrowania. Potrzebny jest opis materiałów kluczowych, ich właścicieli i miejsca, w którym powstaje tekst jawny.
Rozważmy negocjacje zakupu przedsiębiorstwa. Operator obsługuje połączenie, ale nie powinien z samego tego tytułu otrzymywać treści negocjacji. Pytanie techniczne brzmi: czy zasoby posiadane przez operatora wystarczają do odzyskania klucza i odczytania rozmowy? Jeżeli infrastruktura dostaje tylko szyfrogram i nie ma takiej zdolności, przejęcie jej magazynu nie jest równoznaczne z przejęciem treści.
Nie utożsamiamy tego z brakiem infrastruktury. Sygnalizacja, dostarczenie danych i ochrona treści to odrębne funkcje. Serwer może być potrzebny do działania usługi, chociaż nie powinien otrzymywać kluczy umożliwiających odczyt chronionej rozmowy. Konkretną topologię i zakres dostępu trzeba potwierdzić dla badanego wydania.
12. ZRTP i SRTP: uzgodnienie klucza nie jest przechowywaniem wiadomości
RFC 6189: ZRTP opisuje uzgadnianie materiału kluczowego dla sesji SRTP w ścieżce mediów. W wariancie Diffiego-Hellmana urządzenia uzgadniają sekret podczas zestawiania rozmowy. Protokół nie zakłada infrastruktury PKI ani certyfikatów na urządzeniach końcowych. RFC ma kategorię Informational.
Publiczna relacja AVLab z badania UseCrypt Messenger z 17 listopada 2020 roku wskazuje ZRTP przy rozmowach głosowych. Dotyczy badania wersji 2.34 dla iOS, przeprowadzonego przez Odeda Vanunu i Romana Zaikina. To źródło historycznego wyniku, nie opis każdego późniejszego buildu.
Nie wyprowadzamy protokołu wiadomości tekstowych ani załączników z nazwy protokołu rozmowy głosowej. Każda ścieżka wymaga własnej specyfikacji. Ochrona transmisji i opisane wcześniej szyfrowanie lokalnej bazy odpowiadają na różne scenariusze: przechwycenie połączenia oraz pozyskanie zapisanych plików.
13. Sekret musi być uzgodniony z właściwym rozmówcą
Uzgodnienie sekretu nie wystarcza bez uwierzytelnienia partnera. Dwa urządzenia mogą prowadzić chronioną sesję, ale ocena bezpieczeństwa musi jeszcze ustalić, jak sesja zostaje związana z właściwą osobą i jak wykrywana jest próba podstawienia pośrednika.
Sekcja 7 RFC 6189 opisuje Short Authentication String, krótki ciąg porównywany przez rozmówców. To mechanizm protokołu. Nie przypisujemy bez testu konkretnego interfejsu SAS aktualnemu Messengerowi. W ocenie implementacji trzeba ustalić reakcję na niezgodność, zmianę klucza i kontynuację po ostrzeżeniu.
Wynik badania powinien określać zachowanie aplikacji, a nie tylko wymieniać algorytmy. Czy błąd zatrzymuje połączenie? Co potwierdza użytkownik? Który sygnał jest rzeczywistym potwierdzeniem kryptograficznym? Takich pytań nie rozstrzyga ikona kłódki.
14. Treść rozmowy, metadane i stan telefonu wymagają oddzielnej oceny
Nieodczytanie treści nie oznacza automatycznie ukrycia czasu połączenia, rozmiaru danych lub informacji potrzebnych do dostarczenia. Również ochrona wyłączonego telefonu nie opisuje sytuacji, w której uprawniony użytkownik właśnie czyta wiadomość w działającym procesie.
Dokumentacja wdrożenia powinna wskazywać kategorie logów, retencję i uprawnienia poszczególnych usług. Oddzielnie ocenia się bazę, token sygnalizacyjny, załącznik, podgląd powiadomienia i pamięć procesu. Taki podział pozwala znaleźć faktyczną granicę dostępu zamiast przypisywać całemu systemowi jedną nieprecyzyjną ocenę.
Praktyczny rezultat szyfrowania jest konkretny: określone zasoby pośrednika lub kopia storage mogą nie wystarczać do odzyskania treści. Nie wynika z tego odporność urządzenia na każdy rodzaj przejęcia ani anonimowość wszystkich operacji sieciowych.
15. Od opinii do dokumentu: Messenger, Safe i materiały źródłowe
UseCrypt Messenger i UseCrypt Safe trzeba oceniać według ich własnych mechanizmów. Analiza HVKM, RSA i kapsułek kluczy Safe rozwija kryptografię plików. Opis dostępu administratora w Safe wyjaśnia role organizacyjne. Nie są one dowodem, że rozmowy Messengera używają tego samego protokołu.
Dla osoby szukającej informacji „UseCrypt Messenger opinie” przydatny jest rejestr ocen bezpieczeństwa i zakresów badań. Bringing Privacy Back: czym różni się UseCrypt Messenger zapewnia przystępny kontekst materiału wideo. Bank publikacji UseCrypt dokumentuje obecność medialną. Wyniku testu, specyfikacji i publikacji prasowej nie traktujemy jako tego samego rodzaju dowodu.
Źródła, autorstwo i dalsza dokumentacja
Źródło produktowe: „Data at rest protection”, dokument techniczny UseCrypt przekazany w marcu 2025. Opracowanie redakcji UseCrypt, aktualizacja merytoryczna 8 października 2026. Nie zamieszczamy oryginalnego pliku ani prywatnej korespondencji. Nie przedstawiamy powyższego jako obecnej certyfikacji.
Do analizy platform i testów prowadzą opisane wyżej dokumenty Android, Apple, SQLite, OWASP i RFC 9106. Żaden nie jest dokumentacją kodu UseCrypt. Pełniejsza baza technologiczna UseCrypt oraz granice dostępu administratora w Safe rozwijają inne warstwy kontroli. Bringing Privacy Back: kontekst porównania komunikatorów prowadzi do opracowania redakcyjnego.