Verifieer het zelf

Vertrouw niemand. Verifieer het zelf.

Solo2 is een webapplicatie. Dat betekent dat je browser al alle tools heeft om onze beweringen te verifiëren. Geen extensies, geen speciale software. Alleen de ontwikkelaarstools van je browser (F12) en twee minuten van je tijd.

Controleer het in 2 minuten

Druk op F12 in je browser. Niets installeren. Geen programmeerkennis nodig.

Bewering Hoe te verifiëren Tab
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 → filter op domein → alleen verzoeken naar solo2.net Network
Analytics alleen op de landing, niet in de app Network → alleen op de landing (root), niet op /app/* Network
Je geschiedenis leeft in je browser Application → IndexedDB → solo2-vault-{userId}. Al je berichten en bestanden staan daar. De server heeft niets. Application
Contactenlijst alleen lokaal Application → IndexedDB → store pares. Je contacten bestaan alleen in je browser. Application
Geen externe CDN's Network → alle JS/CSS laden van hetzelfde domein. Geen cdn.jsdelivr.net, geen googleapis.com, geen cloudflare.com. Alles is van ons. Network
Sessies duren maximaal 24 uur Application → localStorage → solo2_session. Controleer de vervaltijdstempel. Nooit meer dan 24u na aanmaak. Application
Je kunt zien welk type verbinding je gebruikt In de chatinterface: P2P-indicator (groen) vs Mirror/TURN (oranje) altijd zichtbaar. UI
Umami is cookieloos Application → Cookies → geen cookie van stats.menzuri.com verschijnt. Umami telt bezoeken zonder je te identificeren. 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 kunt gebruiken

Verificaties die technische kennis vereisen. Als je HTTP, WebRTC en basiscryptografie begrijpt, kun je dit zelf controleren.

Bewering Hoe te verifiëren
Berichten E2E-versleuteld Network → verzoeken naar /cmd dragen binaire payloads. De body is een ondoorzichtige blob, geen leesbaar JSON. De server ontvangt cijfertekst die hij niet kan ontcijferen.
WebRTC-signalen E2E-versleuteld Network → signaalberichten reizen als versleutelde binaire blobs. Het is geen leesbaar JSON met candidate of sdp in platte tekst.
Hoofdsleutel onafhankelijk van wachtwoord Network → de login ontvangt een versleutelde wrapped_master_key
Uniforme padding in mirror Network → WebSocket/DataChannel-pakketten hebben een vaste grootte bij gebruik van relay. Inspecteer de groottes in het Network-tabblad — ze moeten allemaal identiek zijn ongeacht de berichtlengte.
Wachtwoord beschermd (reist nooit in platte tekst) Network → de login stuurt een hash, geen platte tekst. Je kunt niet verifiëren welk algoritme de server gebruikt (Argon2id), maar je kunt zien dat je oorspronkelijke wachtwoord de browser nooit verlaat.
Koppelingverzoeken verlopen na 3 dagen Maak een verzoek aan, reageer er niet op, controleer na 3 dagen dat het is verdwenen. Vereist geduld en twee accounts.
Push-notificaties zijn versleuteld Network → push-verzoeken aan de Service Worker komen versleuteld aan (standaard Web Push). Je kunt de versleutelde payload zien in het Network-tabblad.
Directe P2P-verbinding vs relay chrome://webrtc-internals/ → toont ICE-kandidaten en het actieve verbindingstype. Als beide peers op hetzelfde netwerk zitten, zou je host-kandidaten moeten zien (direct, zonder relay).

Dit kun je niet verifiëren

We zouden hypocriet zijn als we zeiden dat alles verifieerbaar is. Deze beweringen vereisen dat je ons tot op zekere hoogte vertrouwt — of dat je wacht tot we de broncode publiceren.

Bewering Waarom het niet verifieerbaar is
Double Ratchet met sleutelrotatie Cryptografische bewerkingen vinden plaats binnen een WASM-binair. De gebruiker ziet dat het laadt, maar kan de interne algoritmen niet inspecteren.
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. De gebruikte curven en algoritmen kunnen niet worden bevestigd zonder broncode.
De server is "volledig blind" Je kunt verifiëren dat de client geen leesbare gegevens stuurt. Wat de server doet met metadata (IP's, tijdstempels) is van buitenaf niet waarneembaar.
De server bewaart geen relaties na koppeling Vereist toegang tot de code en database van de server.
IP's worden niet geregistreerd Je kunt niet verifiëren wat de server vastlegt in zijn logs.
Sleutels roteren bij elk bericht Vindt plaats binnen WASM. Je ziet berichten worden verzonden, maar je kunt de sleutelrotatie niet observeren.
Verwijderde gegevens verdwijnen echt Je kunt verwijderen uit lokale IndexedDB, maar je kunt niet verifiëren dat de server geen kopieën bewaart (hoewel hij er technisch geen reden voor heeft, aangezien hij nooit de ontcijferde inhoud had).

Waarom WASM een echte barrière is

De cryptografische laag van Solo2 is gecompileerd in WebAssembly — een binair formaat dat je browser uitvoert maar dat niet gemakkelijk kan worden geïnspecteerd of gedecompileerd tot leesbare broncode.

Geminifieerd JavaScript (dat we gebruiken voor de interface) is reversibel: de browser kan het herformatteren en je kunt de logica lezen. WASM niet: het is gecompileerde machinecode, als een native applicatie. Je kunt zien dat het draait, maar niet hoe het intern werkt.

We zeggen dat het Double Ratchet met X25519 is. Je kunt ons woord vertrouwen, of je kunt wachten tot we de crypto-broncode als openbare repository publiceren. In de tussentijd zijn de verifieerbare delen (netwerk, opslag, cookies, verbindingen) open voor inspectie door iedereen met een browser.

Wat we doen zodat je meer kunt vertrouwen

1

SHA-256-hashes van .wasm-bestanden publiceren

We zullen de cryptografische hash van elk productie-WASM-bestand publiceren. Zo kan elke auditor verifiëren dat het bestand dat de server levert overeenkomt met de gecompileerde versie.

2

De cryptolaag als open source openen

De broncode van de cryptografische laag (Zig) publiceren als openbare repository. Hetzelfde model als Signals libsignal. Iedereen kan compileren, het binaire bestand vergelijken met dat in productie en verifiëren dat we uitvoeren wat we zeggen.

3

Beveiliging hangt niet af van verborgenheid

Ons beveiligingsmodel is ontworpen om te werken zelfs als de broncode openbaar is. Als de architectuur solide is, maakt het publiceren van de code het sterker, niet zwakker. Dat is het doel.

4

5 gedocumenteerde beveiligingslagen

Wachtwoord (servertoegang), 24 woorden (echte hoofdsleutel), apparaatgeheim (kluisbescherming) en Double Ratchet-rotatie. Elke laag is onafhankelijk en verifieerbaar in ons Transparantiemanifest.

Solo2 — Je gesprek is alleen van jou.