Zweryfikuj to w 2 minuty
Naciśnij F12 w swojej przeglądarce. Bez instalowania czegokolwiek. Bez umiejętności programowania.
| Twierdzenie | Jak to zweryfikować | Zakładka |
|---|---|---|
| Żadnych plików cookie jakiegokolwiek rodzaju | Application → Cookies → puste. Solo2 nie instaluje żadnych plików cookie. Twoja sesja jest utrzymywana w localStorage, nie w plikach cookie. Bez _ga |
Application |
| Brak usług stron trzecich w aplikacji | Network → filtruj według domeny → tylko żądania do solo2.net |
Network |
| Analityka tylko na landing page, nie w aplikacji | Network → na /* |
Network |
| Twoja historia żyje w Twojej przeglądarce | Application → IndexedDB → solo2-vault-{userId} |
Application |
| Lista kontaktów tylko lokalnie | Application → IndexedDB → store pares |
Application |
| Bez zewnętrznych CDN | Network → wszystkie JS/CSS ładują się z tej samej domeny. Żadnych cdn.jsdelivr.net |
Network |
| Sesje maksymalnie 24 godziny | Application → localStorage → solo2_session |
Application |
| Możesz zobaczyć, jakiego typu połączenia używasz | W interfejsie czatu: wskaźnik P2P (zielony) vs Mirror/TURN (pomarańczowy) widoczny cały czas | UI |
| Umami jest bez plików cookie | Application → Cookies → nie pojawiają się żadne pliki cookie od stats.menzuri.com |
Application |
| Twój klucz główny jest generowany losowo | Application → podczas rejestracji Solo2 generuje 24 unikalne słowa. Nie są one wyprowadzone z twojego hasła — to niezależny klucz z 256 bitami rzeczywistej entropii | Application |
Jeśli znasz DevTools
Weryfikacje wymagające wiedzy technicznej. Jeśli rozumiesz HTTP, WebRTC i podstawową kryptografię, możesz potwierdzić te twierdzenia.
| Twierdzenie | Jak to zweryfikować |
|---|---|
| Wiadomości szyfrowane E2E | Network → żądania do /cmd |
| Sygnały WebRTC szyfrowane E2E | Network → wiadomości sygnałowe podróżują jako zaszyfrowane binarne bloby. Nie są to czytelne JSON z offer |
| Klucz główny niezależny od hasła | Network → przy logowaniu serwer zwraca zaszyfrowany wrapped_master_key |
| Jednolity padding na serwerze lustrzanym | Network → pakiety WebSocket/DataChannel mają stały rozmiar przy użyciu relay. Sprawdź rozmiary w zakładce Network |
| Hasło chronione (nie podróżuje w czystym tekście) | Network → logowanie wysyła hash, nie czysty tekst. Nie możesz zweryfikować, jakiego algorytmu używa serwer (Argon2id), ale możesz sprawdzić, że Twoje oryginalne hasło nigdy nie opuszcza przeglądarki |
| Prośby o połączenie wygasają po 3 dniach | Utwórz prośbę, nie odpowiadaj na nią, po 3 dniach sprawdź, że zniknęła. Wymaga cierpliwości i dwóch kont |
| Powiadomienia push szyfrowane | Network → żądania push do Service Worker przychodzą zaszyfrowane (standard Web Push). Zaszyfrowana zawartość jest widoczna w zakładce Network |
| Bezpośrednie połączenie P2P vs. relay | chrome://webrtc-internals/ |
Tego nie możesz zweryfikować
Bylibyśmy hipokrytami, gdybyśmy twierdzili, że wszystko jest weryfikowalne. Te twierdzenia wymagają, abyś nam zaufał — lub poczekał, aż opublikujemy kod źródłowy.
| Twierdzenie | Dlaczego nie jest to weryfikowalne |
|---|---|
| Double Ratchet z rotacją kluczy | Operacje kryptograficzne zachodzą wewnątrz pliku binarnego WASM. Użytkownik widzi, że się ładuje, ale nie może odczytać, jaki algorytm wykonuje |
| Klucz główny jest generowany z rzeczywistą entropią (256 bitów) | Generowanie używa crypto.getRandomValues w przeglądarce. Możesz zobaczyć, że generowane jest 24 słowa, ale nie możesz zweryfikować z poziomu F12 jakości entropii ani bezpieczeństwa CSPRNG |
| X25519 + Ed25519 + ChaCha20-Poly1305 | Ten sam problem: stos kryptograficzny jest wewnątrz WASM. Z przeglądarki nie można potwierdzić krzywych ani algorytmów |
| Serwer jest „całkowicie ślepy” | Możesz zweryfikować, że klient nie wysyła czytelnych danych. Co serwer robi z metadanymi połączenia (IP, znaczniki czasu), wymaga zaufania lub audytu serwera |
| Serwer nie przechowuje relacji po połączeniu | Wymaga dostępu do kodu źródłowego i bazy danych serwera |
| Adresy IP nie są rejestrowane | Nie możesz zweryfikować, co serwer rejestruje w swoich logach |
| Klucze rotują z każdą wiadomością | Zachodzi wewnątrz WASM. Widzisz, że wiadomości są wysyłane, ale nie możesz obserwować rotacji kluczy |
| Usunięte dane naprawdę znikają | Możesz usunąć z lokalnej IndexedDB, ale nie możesz zweryfikować, że serwer nie przechowuje kopii (chociaż Manifest mówi, że nigdy ich nie miał) |
Dlaczego WASM jest prawdziwą barierą
Warstwa kryptograficzna Solo2 jest skompilowana do WebAssembly — formatu binarnego, który Twoja przeglądarka uruchamia, ale którego nie możesz czytać jako tekst. Oznacza to, że z F12 nie możesz zweryfikować, jakiego algorytmu używamy.
Zminifikowany JavaScript (którego używamy do interfejsu) jest odwracalny: przeglądarka może go przeformatować, a struktura kodu jest czytelna. To praktyczna przeszkoda, nie prawdziwa bariera. Ale WASM skompilowany z Zig jest fundamentalnie inny
Mówimy, że to Double Ratchet z X25519. Możesz wierzyć nam na słowo lub możesz poczekać, aż opublikujemy kod źródłowy warstwy kryptograficznej, aby każdy mógł go audytować. Pracujemy nad tym.
Co robimy, abyś mógł nam bardziej zaufać
Opublikowanie hashy SHA-256 plików .wasm
Opublikujemy kryptograficzny hash każdego pliku WASM w produkcji. Dzięki temu każdy audytor będzie mógł zweryfikować, że plik binarny uruchamiany w Twojej przeglądarce dokładnie odpowiada temu, który skompilowaliśmy.
Otworzyć warstwę kryptograficzną jako open source
Opublikować kod źródłowy warstwy kryptograficznej (Zig) jako publiczne repozytorium. Ten sam model co Signal: otwarty protokół kryptograficzny, reszta kodu zamknięta. Każdy będzie mógł skompilować kod źródłowy i porównać hash wynikowego .wasm z tym w produkcji.
Bezpieczeństwo nie zależy od ukrycia
Nasz model bezpieczeństwa jest zaprojektowany tak, aby działał nawet jeśli kod źródłowy jest publiczny. Gdyby bezpieczeństwo zależało od tego, że nikt nie może czytać kodu, nie byłoby to bezpieczeństwo — byłaby to nadzieja.
5 udokumentowanych warstw zabezpieczeń
Hasło (dostęp do serwera), 24 słowa (prawdziwy klucz główny), sekret urządzenia (ochrona sejfu) i rotacja Double Ratchet. Każda warstwa jest niezależna i weryfikowalna w naszym Manifeście Przejrzystości.