Stworzyłem SECRET prywatny komunikator bez numeru telefonu i imienia

Po wielu miesiącach pracy uruchomiłem publicznie SECRET prywatny komunikator na Androida. Zamiast numeru telefonu użytkownik otrzymuje własny SECRET ID. Aplikacja obsługuje szyfrowane wiadomości, zdjęcia i wiadomości głosowe. Publiczna wersja Preview jest już dostępna na secretapp.pl.
z- 123
- #
- #
- #
- #
- #
- #
Projekt jest polski, backend i aplikację rozwijam sam. Jeśli ktoś ma pytania techniczne dotyczące działania, prywatności albo architektury, chętnie odpowiem tutaj.
W SECRET użytkownik dostaje własny SECRET ID, nie podaje numeru telefonu ani prawdziwego imienia. Wiadomości dla użytkownika offline mogą być tymczasowo przechowywane na serwerze jako zaszyfrowane
Open source ułatwia audyt, ale samo w sobie nie gwarantuje bezpieczeństwa. O bezpieczeństwie decydują też m.in. zastosowana kryptografia, zarządzanie kluczami, architektura, sposób przechowywania danych, implementacja i niezależne audyty.
SECRET jest świadomie projektem proprietary. Docelowo chcę potwierdzać jego bezpieczeństwo audytami i dokumentacją
Session ma przewagę tam, gdzie komuś zależy przede wszystkim na decentralizacji i otwartym kodzie. SECRET świadomie idzie inną drogą: własna infrastruktura, pełna kontrola nad backendem, protokołem, dopuszczonymi wersjami aplikacji i sposobem dostarczania wiadomości.
Dzięki temu mogę np. szybko wycofać wadliwą wersję klienta, kontrolować kompatybilność całej sieci, rozwijać własne mechanizmy aktywacji i bezpieczeństwa oraz utrzymywać prostszy model działania dla użytkownika.
Ceną
Oficjalna strona SECRET to https://secretapp.pl i obecna wersja Preview jest darmowa. SECRET nie prosi o kryptowaluty, portfele, seed phrase ani żadne „wpłaty aktywacyjne”.
Gdyby kiedykolwiek pojawiła się strona podszywająca się pod SECRET i prosząca o krypto albo dane portfela, należałoby traktować to jako próbę oszustwa.
Zaufanie trzeba budować technicznie i transparentnie, dlatego
Powód zamknięcia kodu jest przede wszystkim produktowy i biznesowy: SECRET jest projektem proprietary i nie chcę ułatwiać kopiowania całej implementacji, logiki klienta i rozwiązań, nad którymi pracuję. Bezpieczeństwo nie ma jednak polegać na tym, że kod jest tajny.
Klucze prywatne są tworzone i przechowywane na urządzeniu,
Przykład: w Session Account ID jest trwałą kryptograficzną tożsamością — można go odzyskać na nowym urządzeniu za pomocą recovery password. W obecnym modelu SECRET identyfikator jest związany z instalacją/aktywacją urządzenia. Po czystej instalacji i nowej aktywacji powstaje nowy SECRET ID, więc nie budujemy jednej odzyskiwalnej tożsamości użytkownika na kolejne
To utrudnia długoterminowe łączenie kolejnych instalacji z jednym stałym identyfikatorem i daje użytkownikowi większą pseudonimowość. Oczywiście ceną za to jest wygoda — stare kontakty nie poznają automatycznie nowego ID i trzeba je przekazać ponownie.
Nie podajesz numeru telefonu ani imienia, a po czystej instalacji i nowej aktywacji możesz dostać nowe SECRET ID. Nie ciągniesz więc za sobą jednego stałego identyfikatora urządzenia.
I nie, nie każdy komunikator działa bez numeru telefonu. WhatsApp czy Signal nadal opierają rejestrację
SECRET ID nie jest cookie ani tokenem sesyjnym. To identyfikator, którym użytkownik posługuje się do kontaktu z drugą osobą. Firebase też tego za mnie nie rozwiązuje, bo FCM służy głównie
Zamknięty kod jest świadomą decyzją. Rozumiem argument za open source, szczególnie przy komunikatorze, ale SECRET ma być produktem proprietary. W przyszłości chcę nadrabiać to audytami, dokumentacją techniczną i konkretnymi informacjami o bezpieczeństwie.
Strona też pewnie nie jest idealna, to pierwsza publiczna wersja i będzie
Klucze prywatne użytkowników nie siedzą u mnie na serwerze i nie mam jednego "klucza do wszystkiego". Są tworzone po stronie urządzenia. Ale infrastruktura, domeny, wdrożenia i administracja siecią są obecnie po mojej stronie, więc gdybym jutro faktycznie wpadł pod autobus, byłby
AI jest dla mnie narzędziem, tak samo jak IDE, debugger, dokumentacja czy gotowe biblioteki. Samo niczego nie wypuściło na produkcję, nie skonfigurowało serwera i nie siedzi z dwoma telefonami testując
Kod jest zamknięty z powodów produktowych i ochrony własnej implementacji. Bezpieczeństwo ma się opierać na kryptografii, zarządzaniu kluczami, architekturze, testach i docelowo niezależnych audytach.
Zresztą komunikatory mają różne modele. Signal jest open source, WhatsApp i iMessage są w dużej mierze proprietary, a Telegram ma otwarte aplikacje klienckie, ale
Wersja przez przeglądarkę jest możliwa, ale nie chcę jej robić na szybko, jeśli miałaby pogorszyć sposób przechowywania kluczy albo E2EE.
Tylko jedna rzecz na początek. Nie stoję za tym projektem anonimowo. Na stronie jest kontakt do mnie i informacja o wydawcy, a dane wydawcy są też powiązane z aplikacją. Gdybyś dokładniej przeczytał stronę i politykę prywatności, sporo z rzeczy, o które pytasz, jest tam już opisanych.
APK faktycznie pobiera się obecnie bezpośrednio z secretapp.pl. To świadoma decyzja na
Stare GG faktycznie miało jedną rzecz podobną do SECRET: dostawałeś numer GG i podawałeś go komuś, żeby mógł Cię dodać. I na tym podobieństwo w zasadzie się kończy.
GG było scentralizowanym komunikatorem z numerem konta i hasłem. Powstało w czasach, kiedy szyfrowanie end-to-end nie było standardem
SECRET ma własne założenia, własną infrastrukturę i własny kierunek rozwoju. Część rzeczy konkurencja robi dziś lepiej, część ja chcę rozwiązać inaczej. Dopóki projekt się rozwija, nie widzę powodu, żeby go porzucać tylko dlatego, że obok istnieje Signal, Session
Dla mnie sens SECRET jest w połączeniu kilku rzeczy w jednym prostym produkcie: nie podajesz numeru telefonu ani prawdziwego imienia, dostajesz własny SECRET ID, wiadomości są szyfrowane end-to-end, lokalne dane też są szyfrowane, treść rozmów nie pojawia się w powiadomieniach, a po nowej instalacji możesz zacząć z nową tożsamością zamiast ciągnąć jedną przez lata.
Do tego
SECRET jest jeszcze młody, więc zanim będę finalizował znak i jego rejestrację, dokładnie to sprawdzę. Jeśli będzie trzeba, zmienię kształt albo układ tak, żeby marka była bardziej charakterystyczna i nie kojarzyła się z inną firmą. Lepiej poprawić to teraz niż za rok
Ale sam pomysł z przyciskiem „utwórz nową tożsamość” jest sensowny. Da się to zrobić bez reinstalacji, tylko reset musi poprawnie usunąć stare klucze, kontakty i lokalne dane, żeby nie zostało pół starej tożsamości.
Przełączanie kilku tożsamości to już większa funkcja. Na razie wolę najpierw domknąć podstawy i bezpieczeństwo, zamiast dokładać wszystko naraz.
Całej aplikacji nie otwieram, ale część techniczna będzie publiczna, m.in. dokumentacja architektury i bezpieczeństwa, a z czasem również wybrane elementy jako open source. Chcę, żeby zaufanie nie opierało się tylko na moim słowie.
Dlatego nie próbuję ich przebić reklamą. Chcę najpierw zrobić coś, co faktycznie działa dobrze i ma kilka własnych zalet, a potem liczyć na to, że ludzie zaczną polecać to dalej.
Jak zbierze się pierwsze kilka tysięcy realnych użytkowników, wtedy będzie już łatwiej ruszyć
https://github.com/secretapp-pl/secret-security
Są tam m.in. informacje o użytej kryptografii, ochronie danych lokalnych, retencji na serwerze, metadanych, modelu zagrożeń, ograniczeniach, SHA-256 oficjalnego APK, fingerprintach certyfikatu podpisującego, sposobie weryfikacji APK oraz publiczne test vectors. Jest też FAQ zbierające większość pytań, które pojawiły się tutaj.
Kod
https://github.com/secretapp-pl/secret-security
Jest tam FAQ, model zagrożeń, informacje o metadanych, retencji, podpisie i weryfikacji APK.
https://github.com/secretapp-pl/secret-security
Jest tam FAQ, model zagrożeń, informacje o metadanych, retencji, podpisie i weryfikacji APK.
https://github.com/secretapp-pl/secret-security
Jest tam FAQ, model zagrożeń, informacje o metadanych, retencji, podpisie i weryfikacji APK.
https://github.com/secretapp-pl/secret-security
Jest tam FAQ, model zagrożeń, informacje o metadanych, retencji, podpisie i weryfikacji APK.
https://github.com/secretapp-pl/secret-security
Jest tam FAQ, model zagrożeń, informacje o metadanych, retencji, podpisie i weryfikacji APK.
E2EE już działa i obecny zestaw mechanizmów kryptograficznych opiera się na współczesnych, sprawdzonych standardach, ale nie będę twierdził, że system jest „nie do złamania” albo że osiągnął już poziom dojrzałości Signala.
Takie rzeczy wymagają czasu, wielu testów i ostrożnego wdrażania. Projekt rozwijam praktycznie sam, bez zespołu programistów, więc
Dla skali: Signal Technology Foundation w 2024 r. miała ok. 29,4 mln USD przychodów i 38 mln USD wydatków. Projekt startował też z 50 mln USD finansowania od
Jeśli dodam reset tożsamości, będzie to kontrolowane usunięcie konkretnych danych należących do aplikacji i odpowiednich aliasów z Android Keystore, a potem wygenerowanie nowej tożsamości. Bez wykonywania poleceń shella i bez operowania na ścieżkach składanych z danych użytkownika.
Sama funkcja nie jest jeszcze wdrożona, więc nie będę udawał, że
Zamknięty kod to u mnie decyzja dotycząca własności projektu i modelu biznesowego, a nie mechanizm bezpieczeństwa.
Masz też rację, że sama dokumentacja nie dowodzi poprawności implementacji. Dlatego docelowo chcę
Różnica jest taka, że SECRET nie wymaga numeru telefonu, prawdziwego imienia ani dostępu do książki kontaktów. Nie buduję też profilu użytkownika na podstawie tych danych.
Serwer może natomiast widzieć np. adres IP podczas połączenia, czas połączenia, SECRET ID
Z Signalem jeszcze nie ma sensu stawiać SECRET na równi. Signal ma za sobą lata rozwoju, Double Ratchet, audyty i duży zespół, a SECRET nadal jest Public Preview i rozwijam go praktycznie sam.
Jeśli masz ochotę,
Pełny audyt bezpieczeństwa to niestety nie jest koszt kilkuset złotych. W 2026 r. zwykły pentest aplikacji mobilnej to często około 2,5-12 tys. EUR, source code review kilka tysięcy EUR, a pełny
To nie znaczy, że bezpieczeństwo ma się opierać na tajności kodu. Dlatego publikuję dokumentację techniczną, model zagrożeń, kryptografię, ograniczenia, test vectors, podpisy wydań itd. Docelowo kod krytycznych elementów chcę też oddać do niezależnego audytu pod NDA.
Otwarcie całej aplikacji i backendu jest po prostu decyzją biznesową, której na
źródło: Photo 1
Pobierz