Controleer het in 2 minuten
Druk op F12 in je browser. Zonder iets te installeren. Zonder te hoeven programmeren.
| Bewering | Hoe te verifiëren | Tabblad |
|---|---|---|
| Geen cookies van welke soort dan ook | Application → Cookies → leeg. Solo2 installeert geen enkele cookie. Je sessie wordt onderhouden in localStorage, niet in cookies. Geen _ga |
Application |
| Geen diensten van derden in de app | Network → filteren op domein → alleen verzoeken naar solo2.net |
Network |
| Analytics alleen op de landing page, niet in de app | Network → op /* |
Network |
| Je geschiedenis leeft in je browser | Application → IndexedDB → solo2-vault-{userId} |
Application |
| Contactenlijst alleen lokaal | Application → IndexedDB → store pares |
Application |
| Geen externe CDN’s | Network → alle JS/CSS worden geladen vanaf hetzelfde domein. Geen cdn.jsdelivr.net |
Network |
| Sessies van maximaal 24 uur | Application → localStorage → solo2_session |
Application |
| Je kunt zien welk type verbinding je gebruikt | In de chat-UI: P2P-indicator (groen) vs Mirror/TURN (oranje) altijd zichtbaar | UI |
| Umami is cookieloos | Application → Cookies → geen cookies van stats.menzuri.com |
Application |
| Je hoofdsleutel wordt willekeurig gegenereerd | Application → bij registratie genereert Solo2 24 unieke woorden. Ze zijn niet afgeleid van je wachtwoord — het is een onafhankelijke sleutel met 256 bits echte entropie | Application |
Als je DevTools beheerst
Verificaties die technische kennis vereisen. Als je HTTP, WebRTC en basiscryptografie begrijpt, kun je deze beweringen bevestigen.
| Bewering | Hoe te verifiëren |
|---|---|
| E2E-versleutelde berichten | Network → verzoeken naar /cmd |
| E2E-versleutelde WebRTC-signalen | Network → signaalberichten reizen als versleutelde binaire blobs. Het zijn geen leesbare JSON met offer |
| Hoofdsleutel onafhankelijk van wachtwoord | Network → de login ontvangt een versleutelde wrapped_master_key |
| Uniforme padding op de spiegelserver | Network → WebSocket/DataChannel-pakketten hebben een vaste grootte bij gebruik van relay. Controleer de groottes in het Network-tabblad |
| Wachtwoord beschermd (reist niet in platte tekst) | Network → inloggen stuurt een hash, geen platte tekst. Je kunt niet verifiëren welk algoritme de server gebruikt (Argon2id), maar je kunt wel verifiëren dat je oorspronkelijke wachtwoord nooit de browser verlaat |
| Koppelingverzoeken verlopen na 3 dagen | Maak een verzoek aan, beantwoord het niet, controleer na 3 dagen of het verdwenen is. Vereist geduld en twee accounts |
| Push-notificaties versleuteld | Network → push-verzoeken naar de Service Worker komen versleuteld aan (Web Push-standaard). De versleutelde inhoud is zichtbaar in het Network-tabblad |
| Directe P2P-verbinding vs. relay | chrome://webrtc-internals/ |
Dit kun je niet verifiëren
We zouden hypocriet zijn als we beweerden dat alles verifieerbaar is. Deze beweringen vereisen dat je ons vertrouwt — of wacht tot we de broncode publiceren.
| Bewering | Waarom dit niet verifieerbaar is |
|---|---|
| Double Ratchet met sleutelrotatie | Cryptografische bewerkingen vinden plaats in een WASM-binair bestand. De gebruiker ziet dat het laadt, maar kan niet lezen welk algoritme het uitvoert |
| De hoofdsleutel wordt gegenereerd met echte entropie (256 bits) | De generatie gebruikt crypto.getRandomValues in de browser. Je kunt zien dat er 24 woorden worden gegenereerd, maar je kunt vanuit F12 niet de kwaliteit van de entropie verifiëren of dat de CSPRNG veilig is |
| X25519 + Ed25519 + ChaCha20-Poly1305 | Zelfde probleem: de cryptografische stack zit in WASM. Vanuit de browser kun je de curven of algoritmen niet bevestigen |
| De server is “volkomen blind” | Je kunt verifiëren dat de client geen leesbare gegevens verstuurt. Wat de server doet met verbindingsmetadata (IP’s, timestamps), vereist vertrouwen of een serveraudit |
| Server bewaart geen relaties na koppeling | Vereist toegang tot de broncode en database van de server |
| IP-adressen worden niet geregistreerd | Je kunt niet verifiëren wat de server in zijn logs registreert |
| Sleutels roteren bij elk bericht | Vindt plaats in WASM. Je ziet dat berichten worden verzonden, maar je kunt de sleutelrotatie niet observeren |
| Verwijderde gegevens verdwijnen echt | Je kunt lokale IndexedDB verwijderen, maar je kunt niet verifiëren dat de server geen kopieën bewaart (hoewel het Manifest zegt dat hij ze nooit had) |
Waarom WASM een echte barrière is
De cryptografische laag van Solo2 is gecompileerd naar WebAssembly — een binair formaat dat je browser uitvoert maar dat je niet als tekst kunt lezen. Dit betekent dat je vanuit F12 niet kunt verifiëren welk algoritme we gebruiken.
Geminificeerd JavaScript (dat we voor de interface gebruiken) is wel reversibel: de browser kan het herformatteren en de codestructuur is leesbaar. Het is een praktische horde, geen echte barrière. Maar WASM gecompileerd vanuit Zig is fundamenteel anders
We zeggen dat het Double Ratchet is met X25519. Je kunt ons op ons woord geloven, of je kunt wachten tot we de broncode van de cryptografische laag publiceren zodat iedereen het kan auditen. We werken eraan.
Wat we doen zodat je ons meer kunt vertrouwen
SHA-256-hashes van .wasm-bestanden publiceren
We publiceren de cryptografische hash van elk WASM-bestand in productie. Zo kan elke auditor verifiëren dat het binaire bestand in je browser exact overeenkomt met wat wij hebben gecompileerd.
De cryptolaag open source maken
De broncode van de cryptografische laag (Zig) publiceren als openbare repository. Hetzelfde model als Signal: open cryptografisch protocol, rest van de code gesloten. Iedereen kan de broncode compileren en de hash van het resulterende .wasm vergelijken met die in productie.
Beveiliging is niet afhankelijk van geheimhouding
Ons beveiligingsmodel is ontworpen om te werken zelfs als de broncode openbaar is. Als de beveiliging afhing van het feit dat niemand de code kan lezen, zou het geen beveiliging zijn — het zou hoop zijn.
5 gedocumenteerde beveiligingslagen
Wachtwoord (servertoegang), 24 woorden (echte hoofdsleutel), apparaatgeheim (kluisbescherming) en Double Ratchet-rotatie. Elke laag is onafhankelijk en verifieerbaar in ons Transparantiemanifest.