Co serwer wie o tobie
Zacznijmy od podstaw. Serwer Solo2 wie o tobie dokładnie trzy rzeczy: twoją nazwę użytkownika, twój unikalny identyfikator i hash twojego hasła. Hash to nieodwracalna transformacja matematyczna — serwer może zweryfikować, że twoje hasło jest poprawne, nie wiedząc, jakie ono jest. Twoje prawdziwe hasło istnieje tylko w twojej głowie i na twoim urządzeniu.
I to wszystko. Serwer nie wie, z kim rozmawiasz. Nie wie, ile masz tuneli. Nie zna imion twoich kontaktów. Te informacje istnieją tylko w twoim sejfie, zaszyfrowane na twoim urządzeniu. Serwer nie mógłby ich otworzyć, nawet gdyby chciał.
Skrzynki pocztowe
Wyobraź sobie ścianę z numerowanymi skrzynkami pocztowymi, jak na starym urzędzie pocztowym. Gdy twoja aplikacja chce połączyć się z kimś, zostawia karteczkę w skrzynce z napisem 'Chcę porozmawiać z użytkownikiem X'. Nic więcej. Nie mówi, kim jesteś. Nie mówi, o czym chcesz rozmawiać. Tylko karteczka w skrzynce.
Okresowo wszystkie aplikacje połączone z Solo2 sprawdzają skrzynki, czy ktoś nie zostawił dla nich karteczki. To jak zatrzymanie się na poczcie i pytanie: 'Czy jest coś dla mnie?'. Jeśli twój kontakt znajdzie twoją karteczkę, prosi serwer o adres IP, który zostawiłeś. Serwer go podaje, a ta informacja jest natychmiast kasowana z pamięci. Nigdy nie jest zapisywana na żadnym dysku. Żyje w pamięci tymczasowej serwera przez milisekundy potrzebne do odpowiedzi.
Od tego momentu serwer znika
Gdy oba urządzenia znają swoje adresy, rozmawiają bezpośrednio ze sobą. Serwer już nie uczestniczy. Nie przekazuje wiadomości. Nie przechowuje ich. Nie wie, czy połączenie zostało nawiązane, czy nie. Nie wie, jak długo trwa. Nie wie, ile wiadomości zostało wymienionych ani jak duże są.
Do tego stopnia, że gdyby serwer wyłączył się w tym momencie, dwaj użytkownicy kontynuowaliby rozmowę dokładnie tak samo. Rozmowa nie zależy od serwera. Zależała od niego tylko po to, by dwa urządzenia mogły się znaleźć. Po połączeniu serwer jest nieistotny.
Rozmowa jest bezpieczna, zanim się zacznie
Gdy dwie osoby tworzą tunel w Solo2, ich urządzenia wymieniają się publicznymi kluczami kryptograficznymi. Od tego momentu każda wiadomość jest szyfrowana kluczem odbiorcy — i tylko odbiorca może ją odszyfrować. Dzieje się to przed rozpoczęciem jakiejkolwiek rozmowy. Klucze są gotowe od momentu utworzenia tunelu.
Dlatego, gdy dwa urządzenia łączą się bezpośrednio, komunikacja jest już chroniona. Nie muszą niczego negocjować. Nie muszą prosić serwera o pozwolenie. Klucze należą do nich, na ich urządzeniach, i nikt inny ich nie ma.
Co to oznacza w praktyce
Oznacza to, że na żadnym serwerze nie ma zapisu twoich rozmów. Nie ma metadanych do analizy. Nie ma historii do wydania na nakaz sądowy. Nie ma bazy danych do zhakowania. Serwer Solo2 nie może wydać tego, czego nie ma. A nie ma niczego, bo nigdy nie miał.
Następnym razem, gdy ktoś powie ci, że aplikacja 'szyfruje twoje wiadomości end-to-end', zapytaj, co dzieje się z całą resztą. Kto wie, z kim rozmawiasz. Kto wie, o której godzinie. Kto wie, jak często. Jeśli odpowiedź brzmi 'nasz serwer, ale nie używamy tego do niczego złego' — to obietnica. W Solo2 odpowiedź jest inna: nikt nie wie. Bo nie ma kogo zapytać.