Mit tud rólad a szerver
Kezdjük az alapoknál. A Solo2 szervere pontosan három dolgot tud rólad: a felhasználóneved, az egyedi azonosítód és a jelszavad hash-ét. A hash egy visszafordíthatatlan matematikai átalakítás — a szerver ellenőrizni tudja, hogy a jelszavad helyes-e anélkül, hogy tudná, mi az. A valódi jelszavad csak a fejedben és az eszközödön létezik.
És ennyi. A szerver nem tudja, kivel beszélsz. Nem tudja, hány alagutad van. Nem ismeri a kapcsolataid neveit. Ez az információ csak a trezorban létezik, titkosítva az eszközödön. A szerver nem tudná kinyitni, még ha akarná sem.
A postaládák
Képzelj el egy falat számozott postaládákkal, mint egy régi postahivatalban. Amikor az alkalmazásod kapcsolódni akar valakihez, hagy egy cetlit egy ládában, amelyen ez áll: 'Szeretnék beszélni X felhasználóval'. Semmi több. Nem mondja meg, ki vagy. Nem mondja meg, miről akarsz beszélni. Csak egy cetli egy ládában.
Időről időre minden Solo2-höz csatlakozott alkalmazás ellenőrzi a postaládákat, hogy valaki hagyott-e nekik cetlit. Olyan, mint bemenni a postára és megkérdezni: 'Van valami nekem?'. Ha a kapcsolatod megtalálja a cetlidet, elkéri a szervertől az IP-címet, amit hagytál. A szerver megadja, és az információ azonnal törlődik a memóriából. Soha nem íródik lemezre. A szerver átmeneti memóriájában él a válaszadáshoz szükséges ezredmásodpercekig.
Ettől a ponttól a szerver eltűnik
Amint mindkét eszköz ismeri a másik címét, közvetlenül egymással beszélnek. A szerver többé nem vesz részt. Nem továbbítja az üzeneteket. Nem tárolja őket. Nem tudja, hogy a kapcsolat létrejött-e vagy sem. Nem tudja, meddig tart. Nem tudja, hány üzenetet cserélnek vagy mekkorák azok.
Olyannyira, hogy ha a szerver abban a pillanatban leállna, a két felhasználó pontosan ugyanúgy folytatná a beszélgetést. A beszélgetés nem függ a szervertől. Csak arra függött tőle, hogy a két eszköz megtalálja egymást. Csatlakozás után a szerver lényegtelen.
A beszélgetés biztonságos, mielőtt még elkezdődne
Amikor két ember alagutat hoz létre a Solo2-ban, eszközeik nyilvános kriptográfiai kulcsokat cserélnek. Ettől a pillanattól minden üzenet a címzett kulcsával van titkosítva — és csak a címzett tudja visszafejteni. Ez bármilyen beszélgetés megkezdése előtt történik. A kulcsok az alagút létrehozásának pillanatától készek.
Ezért, amikor a két eszköz közvetlenül csatlakozik, a kommunikáció már védett. Nem kell semmit egyeztetniük. Nem kell engedélyt kérniük a szervertől. A kulcsok az övéik, az eszközeiken, és senki másnak nincsenek meg.
Mit jelent ez a gyakorlatban
Azt jelenti, hogy semmilyen szerveren nincs nyoma a beszélgetéseidnek. Nincs metaadat, amit elemezni lehetne. Nincs előzmény, amit bírósági végzésre átadni lehetne. Nincs adatbázis, amit feltörni lehetne. A Solo2 szervere nem adhatja át, amije nincs. És nincs semmije, mert soha nem is volt.
Legközelebb, amikor valaki azt mondja neked, hogy egy alkalmazás 'végponttól végpontig titkosítja az üzeneteidet', kérdezd meg, mi történik minden mással. Ki tudja, kivel beszélsz. Ki tudja, mikor. Ki tudja, milyen gyakran. Ha a válasz 'a szerverünk, de nem használjuk semmi rosszra' — az egy ígéret. A Solo2-ban a válasz más: senki sem tudja. Mert nincs kit megkérdezni.