Preverite sami

Ne zaupajte nikomur. Preverite.

Solo2 je spletna aplikacija. To pomeni, da vaš brskalnik že ima vsa orodja, ki jih potrebujete za revizijo našega dela. Pritisnite F12, odprite DevTools in sami preverite vsako trditev iz našega Manifesta. Tukaj vam povemo točno, kako.

Preverite v 2 minutah

V brskalniku pritisnite F12. Brez nameščanja česar koli. Brez znanja programiranja.

Trditev Kako preveriti Zavihek
Ni piškotkov nobene vrste Application → Cookies → prazno. Solo2 ne namesti nobenega piškotka. Vaša seja se ohranja v localStorage, ne v piškotkih. Brez _ga Application
V aplikaciji ni storitev tretjih oseb Network → filtriraj po domeni → le zahtevki na solo2.net Network
Analitika le na predstavitveni strani, ne v aplikaciji Network → v /* Network
Vaša zgodovina živi v vašem brskalniku Application → IndexedDB → solo2-vault-{userId} Application
Seznam kontaktov je le lokalen Application → IndexedDB → store pares Application
Brez zunanjih CDN-jev Network → vsi JS/CSS se naložijo z iste domene. Ni cdn.jsdelivr.net Network
Seje največ 24 ur Application → localStorage → solo2_session Application
Vidite lahko, katero vrsto povezave uporabljate V vmesniku klepeta: indikator P2P (zelen) proti Mirror/TURN (oranžen) viden v vsakem trenutku UI
Umami je brez piškotkov Application → Cookies → ne pojavi se noben piškotek od stats.menzuri.com Application
Vaš glavni ključ se generira naključno Application → ob registraciji Solo2 generira 24 unikatnih besed. Ne izhajajo iz vašega gesla — so neodvisen ključ z 256 biti realne entropije Application

Če znate uporabljati DevTools

Preverjanja, ki zahtevajo tehnično znanje. Če razumete HTTP, WebRTC in osnovno kriptografijo, lahko potrdite te trditve.

Trditev Kako preveriti
Sporočila šifrirana E2E Network → zahtevki na /cmd
WebRTC signali šifrirani E2E Network → signalna sporočila potujejo kot šifrirani binarni bloki. Niso berljivi JSON z offer
Glavni ključ neodvisen od gesla Network → prijava prejme wrapped_master_key
Enotno oblazinjenje (padding) v mirror Network → paketi WebSocket/DataChannel imajo fiksno velikost, ko se uporablja relay. Preverite velikosti v zavihku Network
Geslo zaščiteno (ne potuje v čistopisu) Network → prijava pošlje hash, ne čistega besedila. Ne morete preveriti, kateri algoritem uporablja strežnik (Argon2id), lahko pa vidite, da vaše prvotno geslo nikoli ne zapusti brskalnika
Zahteve za povezovanje potečejo v 3 dneh Ustvarite zahtevo, nanjo ne odgovorite, po 3 dneh preverite, da je izginila. Zahteva potrpežljivost in dva računa
Push obvestila šifrirana Network → push zahtevki do Service Workerja prispejo šifrirani (standard Web Push). Šifrirana vsebina je vidna v zavihku Network
Neposredna povezava P2P proti relay chrome://webrtc-internals/

Tega ne morete preveriti

Bili bi hinavski, če bi rekli, da je vse preverljivo. Te trditve zahtevajo, da nam zaupate — ali počakate, da objavimo kodo.

Trditev Zakaj ni preverljivo
Double Ratchet z rotacijo ključev Kriptografske operacije potekajo znotraj binarija WASM. Uporabnik vidi, da se naloži, ne more pa prebrati, kateri algoritem izvaja
Glavni ključ generiran z realno entropijo (256 bitov) Generiranje uporablja crypto.getRandomValues v brskalniku. Vidite, da se generira 24 besed, ne morete pa iz F12 preveriti kakovosti entropije ali varnosti CSPRNG-ja
X25519 + Ed25519 + ChaCha20-Poly1305 Ista težava: kriptografski sklad je znotraj WASM. Krivulj in algoritmov ni mogoče potrditi iz brskalnika
Strežnik je "popolnoma slep" Lahko preverite, da odjemalec ne pošilja berljivih podatkov. Kaj strežnik počne z metapodatki povezave (IP-ji, časovni žigi), zahteva zaupanje ali revizijo strežnika
Strežnik ne hrani razmerij po povezovanju Zahteva dostop do kode in baze podatkov strežnika
IP-ji se ne beležijo Ne morete preveriti, kaj strežnik beleži v svojih logih
Ključi rotirajo z vsakim sporočilom Dogaja se znotraj WASM. Vidite, da se sporočila pošiljajo, ne morete pa opazovati rotacije ključev
Izbrisani podatki resnično izginejo Izbrišete lahko iz lokalnega IndexedDB, ne morete pa preveriti, da strežnik ne zadrži kopij (čeprav Manifest pravi, da jih nikoli ni imel)

Zakaj je WASM prava pregrada

Kriptografska plast Solo2 je prevedena v WebAssembly — binarno obliko, ki jo brskalnik izvaja, vendar je ne morete brati kot besedilo. To pomeni, da iz F12 ne morete preveriti, kateri algoritem uporabljamo.

Minificiran JavaScript (ki ga uporabljamo za vmesnik) je sicer povratno prevedljiv: brskalnik ga lahko preoblikuje in struktura kode je berljiva. Je praktična ovira, ne pa prava pregrada. Vendar je WASM, preveden iz Zig-a, temeljne drugačen

Pravimo, da je Double Ratchet z X25519. Lahko nam verjamete na besedo ali pa počakate, da objavimo izvorno kodo kriptografske plasti, da jo bo lahko kdor koli revidiral. Delamo na tem.

Kaj počnemo, da bi nam lahko bolj zaupali

1

Objava SHA-256 hashev datotek .wasm

Objavili bomo kriptografski hash vsake datoteke WASM v produkciji. Tako bo kateri koli revizor lahko potrdil, da binarij, ki se izvaja v vašem brskalniku, natanko ustreza tistemu, ki smo ga mi prevedli.

2

Odprtje kripto plasti kot odprte kode

Objava izvorne kode kriptografske plasti (Zig) kot javno skladišče. Isti model kot Signal: odprt kriptografski protokol, zaprta ostala koda. Kdor koli bo lahko prevedel izvorno kodo in primerjal hash dobljene datoteke .wasm s tisto, ki je v produkciji.

3

Varnost ni odvisna od nejasnosti

Naš varnostni model je zasnovan tako, da deluje, tudi če je izvorna koda javna. Če bi bila varnost odvisna od tega, da nihče ne more brati kode, to ne bi bila varnost — temveč upanje.

4

5 dokumentiranih plasti varnosti

Geslo (dostop do strežnika), 24 besed (dejanski glavni ključ), skrivnost naprave (zaščita shrambe) in rotacija Double Ratchet. Vsaka plast je neodvisna in preverljiva v našem Manifestu preglednosti.

Solo2 — Vaš pogovor je le vaš.