Verifica in 2 minuti
Premi F12 nel tuo browser. Non serve installare nulla. Nessuna conoscenza di programmazione richiesta.
| Affermazione | Come verificarlo | Scheda |
|---|---|---|
| Nessun cookie di alcun tipo | Application → Cookies → vuoto. Solo2 non installa alcun cookie. La tua sessione è mantenuta in localStorage, non nei cookie. Senza _ga |
Application |
| Nessun servizio di terze parti nell'app | Network → filtra per dominio → solo richieste a solo2.net |
Network |
| Analytics solo sul landing, non nell'app | Network → solo sul landing (radice), non su /app/* |
Network |
| La tua cronologia vive nel tuo browser | Application → IndexedDB → solo2-vault-{userId}. Tutti i tuoi messaggi e file sono lì. Il server non ha nulla. |
Application |
| Lista contatti solo locale | Application → IndexedDB → store pares. I tuoi contatti esistono solo nel tuo browser. |
Application |
| Nessun CDN esterno | Network → tutti i JS/CSS si caricano dallo stesso dominio. Nessun cdn.jsdelivr.net, nessun googleapis.com, nessun cloudflare.com. Tutto è nostro. |
Network |
| Sessioni di 24 ore massimo | Application → localStorage → solo2_session. Controlla il timestamp di scadenza. Non è mai superiore a 24h dalla creazione. |
Application |
| Puoi vedere che tipo di connessione stai usando | Nell'interfaccia della chat: indicatore P2P (verde) vs Mirror/TURN (arancione) visibile in ogni momento. | UI |
| Umami è senza cookie | Application → Cookies → nessun cookie di stats.menzuri.com appare. Umami conta le visite senza identificarti. |
Application |
| La tua chiave maestra viene generata casualmente | Application → al momento della registrazione, Solo2 genera 24 parole uniche. Non sono derivate dalla tua password — sono una chiave indipendente con 256 bit di entropia reale | Application |
Se sai usare i DevTools
Verifiche che richiedono conoscenze tecniche. Se comprendi HTTP, WebRTC e crittografia di base, puoi verificare tu stesso.
| Affermazione | Come verificarlo |
|---|---|
| Messaggi crittografati E2E | Network → le richieste a /cmd trasportano payload binari. Il corpo è un blob opaco, non JSON leggibile. Il server riceve testo cifrato che non può decifrare. |
| Segnali WebRTC crittografati E2E | Network → i messaggi di segnale viaggiano come blob binari crittografati. Non sono JSON leggibile con candidate o sdp in chiaro. |
| Chiave maestra indipendente dalla password | Network → il login riceve un wrapped_master_key |
| Padding uniforme nel mirror | Network → i pacchetti WebSocket/DataChannel hanno dimensione fissa quando si usa il relay. Ispeziona le dimensioni nella scheda Network — devono essere tutte identiche indipendentemente dalla lunghezza del messaggio. |
| Password protetta (non viaggia mai in chiaro) | Network → il login invia un hash, non testo in chiaro. Non puoi verificare quale algoritmo usa il server (Argon2id), ma puoi vedere che la tua password originale non lascia mai il browser. |
| Le richieste di accoppiamento scadono in 3 giorni | Crea una richiesta, non rispondere, verifica dopo 3 giorni che sia scomparsa. Richiede pazienza e due account. |
| Notifiche push crittografate | Network → le richieste push al Service Worker arrivano crittografate (standard Web Push). Puoi vedere il payload crittografato nella scheda Network. |
| Connessione P2P diretta vs relay | chrome://webrtc-internals/ → mostra i candidati ICE e il tipo di connessione attivo. Se entrambi i peer sono sulla stessa rete, dovresti vedere candidati host (diretti, senza relay). |
Questo non puoi verificarlo
Saremmo ipocriti se dicessimo che tutto è verificabile. Queste affermazioni richiedono che tu ti fidi di noi in una certa misura — o che tu attenda la pubblicazione del codice sorgente.
| Affermazione | Perché non è verificabile |
|---|---|
| Double Ratchet con rotazione delle chiavi | Le operazioni crittografiche avvengono all'interno di un binario WASM. L'utente vede che si carica, ma non può ispezionare gli algoritmi interni. |
| La chiave maestra viene generata con entropia reale (256 bit) | La generazione usa crypto.getRandomValues nel browser. Puoi vedere che vengono generate 24 parole, ma non puoi verificare da F12 la qualità dell'entropia né che il CSPRNG sia sicuro |
| X25519 + Ed25519 + ChaCha20-Poly1305 | Stesso problema: lo stack crittografico è all'interno di WASM. Le curve e gli algoritmi utilizzati non possono essere confermati senza codice sorgente. |
| Il server è "completamente cieco" | Puoi verificare che il client non invia dati leggibili. Ciò che il server fa con i metadati (IP, timestamp) non è osservabile dall'esterno. |
| Il server non conserva le relazioni dopo l'accoppiamento | Richiede accesso al codice e al database del server. |
| Gli IP non vengono registrati | Non puoi verificare cosa registra il server nei suoi log. |
| Le chiavi ruotano con ogni messaggio | Avviene all'interno di WASM. Vedi i messaggi inviati, ma non puoi osservare la rotazione delle chiavi. |
| I dati cancellati scompaiono davvero | Puoi cancellare da IndexedDB locale, ma non puoi verificare che il server non conservi copie (anche se tecnicamente non ha motivo di farlo, poiché non ha mai avuto il contenuto decifrato). |
Perché WASM è una barriera reale
Lo strato crittografico di Solo2 è compilato in WebAssembly — un formato binario che il tuo browser esegue ma che non può essere facilmente ispezionato o decompilato in codice sorgente leggibile.
Il JavaScript minificato (che usiamo per l'interfaccia) è reversibile: il browser può riformattarlo e puoi leggere la logica. WASM no: è codice macchina compilato, come un'applicazione nativa. Puoi vedere che viene eseguito, ma non come funziona internamente.
Diciamo che è Double Ratchet con X25519. Puoi fidarti della nostra parola, o puoi aspettare che pubblichiamo il codice sorgente crypto come repository pubblico. Nel frattempo, le parti verificabili (rete, storage, cookie, connessioni) sono aperte all'ispezione di chiunque abbia un browser.
Cosa stiamo facendo perché tu possa fidarti di più
Pubblicare gli hash SHA-256 dei file .wasm
Pubblicheremo l'hash crittografico di ogni file WASM in produzione. Così qualsiasi auditor potrà verificare che il file servito dal server corrisponda alla versione compilata.
Aprire lo strato crypto come open source
Pubblicare il codice sorgente dello strato crittografico (Zig) come repository pubblico. Lo stesso modello di libsignal di Signal. Chiunque può compilare, confrontare il binario con quello in produzione e verificare che stiamo eseguendo ciò che diciamo.
La sicurezza non dipende dall'oscurità
Il nostro modello di sicurezza è progettato per funzionare anche se il codice sorgente è pubblico. Se l'architettura è solida, pubblicare il codice la rende più forte, non più debole. Questo è l'obiettivo.
5 livelli di sicurezza documentati
Password (accesso al server), 24 parole (vera chiave maestra), segreto del dispositivo (protezione archivio) e rotazione Double Ratchet. Ogni livello è indipendente e verificabile nel nostro Manifesto di Trasparenza.