Što server zna o tebi
Krenimo od osnova. Server Solo2 zna točno tri stvari o tebi: tvoje korisničko ime, tvoj jedinstveni identifikator i hash tvoje lozinke. Hash je nepovratna matematička transformacija — server može provjeriti da je tvoja lozinka ispravna bez da zna koja je. Tvoja prava lozinka postoji samo u tvojoj glavi i na tvom uređaju.
I to je sve. Server ne zna s kime razgovaraš. Ne zna koliko tunela imaš. Ne zna imena tvojih kontakata. Ta informacija postoji samo unutar tvog trezora, šifriranog na tvom uređaju. Server ga ne bi mogao otvoriti čak i da želi.
Poštanski sandučići
Zamisli zid s numeriranim poštanskim sandučićima, kao u staroj pošti. Kada se tvoja aplikacija želi povezati s nekim, ostavlja poruku u sandučiću koja kaže 'Želim razgovarati s korisnikom X'. Ništa više. Ne kaže tko si. Ne kaže o čemu želiš razgovarati. Samo poruka u sandučiću.
Povremeno, sve aplikacije povezane sa Solo2 provjeravaju sandučiće kako bi vidjele je li im netko ostavio poruku. To je kao svratiti u poštu i pitati: 'Ima li nešto za mene?'. Ako tvoj kontakt pronađe tvoju poruku, traži od servera IP adresu koju si ostavio. Server je pruža, i ta informacija se odmah briše iz memorije. Nikada se ne zapisuje na disk. Živi u privremenoj memoriji servera tijekom milisekundi potrebnih za odgovor.
Od tog trenutka, server nestaje
Kada oba uređaja znaju adresu drugog, razgovaraju izravno međusobno. Server više ne sudjeluje. Ne prosljeđuje poruke. Ne pohranjuje ih. Ne zna je li veza uspostavljena ili ne. Ne zna koliko traje. Ne zna koliko se poruka razmjenjuje niti koliko su velike.
Toliko da, kad bi se server ugasio u tom trenutku, dva korisnika bi nastavila razgovarati potpuno isto. Razgovor ne ovisi o serveru. Ovisio je o njemu samo kako bi se dva uređaja pronašla. Jednom povezani, server je irelevantan.
Razgovor je siguran prije nego što uopće počne
Kada dvije osobe kreiraju tunel u Solo2, njihovi uređaji razmjenjuju javne kriptografske ključeve. Od tog trenutka, svaka poruka je šifrirana ključem primatelja — i samo primatelj je može dešifrirati. To se događa prije nego što bilo kakav razgovor počne. Ključevi su spremni od trenutka kreiranja tunela.
Zato, kada se dva uređaja izravno povežu, komunikacija je već zaštićena. Ne trebaju ništa pregovarati. Ne trebaju tražiti dopuštenje od servera. Ključevi su njihovi, na njihovim uređajima, i nitko drugi ih nema.
Što to znači u praksi
Znači da ne postoji nikakav zapis tvojih razgovora na bilo kojem serveru. Nema metapodataka za analizu. Nema povijesti za predaju sudskim nalogom. Nema baze podataka za hakiranje. Server Solo2 ne može predati ono što nema. I nema ništa jer nikada nije ni imao.
Sljedeći put kada ti netko kaže da aplikacija 'šifrira tvoje poruke od kraja do kraja', pitaj što se događa sa svim ostalim. Tko zna s kime razgovaraš. Tko zna u koje vrijeme. Tko zna koliko često. Ako je odgovor 'naš server, ali ga ne koristimo za ništa loše' — to je obećanje. U Solo2, odgovor je drugačiji: nitko ne zna. Jer nema koga pitati.