Verificer det på 2 minutter
Tryk på F12 i din browser. Uden at installere noget. Uden at kunne programmere.
| Påstand | Hvordan du verificerer det | Fane |
|---|---|---|
| Ingen cookies af nogen art | Application → Cookies → tomt. Solo2 installerer ingen cookies. Din session opretholdes i localStorage, ikke i cookies. Uden _ga |
Application |
| Ingen tredjepartstjenester i appen | Network → filtrer efter domæne → kun forespørgsler til solo2.net |
Network |
| Analyse kun på landingssiden, ikke i appen | Network → på /* |
Network |
| Din historik lever i din browser | Application → IndexedDB → solo2-vault-{userId} |
Application |
| Kontaktliste kun lokalt | Application → IndexedDB → store pares |
Application |
| Ingen eksterne CDN’er | Network → alle JS/CSS indlæses fra samme domæne. Ingen cdn.jsdelivr.net |
Network |
| Sessioner på maks. 24 timer | Application → localStorage → solo2_session |
Application |
| Du kan se hvilken type forbindelse du bruger | I chat-interfacet: P2P-indikator (grøn) vs Mirror/TURN (orange) altid synlig | UI |
| Umami er cookiefri | Application → Cookies → ingen cookies fra stats.menzuri.com |
Application |
| Din hovednøgle genereres tilfældigt | Application → ved registrering genererer Solo2 24 unikke ord. De afledes ikke af din adgangskode — de er en uafhængig nøgle med 256 bit reel entropi | Application |
Hvis du kan bruge DevTools
Verificeringer der kræver teknisk viden. Hvis du forstår HTTP, WebRTC og grundlæggende kryptografi, kan du bekræfte disse udsagn.
| Påstand | Hvordan du verificerer det |
|---|---|
| E2E-krypterede beskeder | Network → forespørgsler til /cmd |
| E2E-krypterede WebRTC-signaler | Network → signalbeskeder rejser som krypterede binære blobs. De er ikke læsbar JSON med offer |
| Hovednøgle uafhængig af adgangskode | Network → login modtager en krypteret wrapped_master_key |
| Uniform padding på spejlserveren | Network → WebSocket/DataChannel-pakker har fast størrelse ved brug af relay. Tjek størrelserne i Network-fanen |
| Adgangskode beskyttet (sendes ikke i klartekst) | Network → login sender en hash, ikke klartekst. Du kan ikke verificere hvilken algoritme serveren bruger (Argon2id), men du kan verificere at din originale adgangskode aldrig forlader browseren |
| Sammenkædningsforespørgsler udløber efter 3 dage | Opret en forespørgsel, svar ikke på den, verificer efter 3 dage at den er forsvundet. Kræver tålmodighed og to konti |
| Push-notifikationer krypteret | Network → push-forespørgsler til Service Worker ankommer krypteret (Web Push-standard). Det krypterede indhold er synligt i Network-fanen |
| Direkte P2P-forbindelse vs. relay | chrome://webrtc-internals/ |
Dette kan du ikke verificere
Vi ville være hyklere, hvis vi påstod at alt er verificerbart. Disse udsagn kræver at du stoler på os — eller venter til vi offentliggør kildekoden.
| Påstand | Hvorfor dette ikke er verificerbart |
|---|---|
| Double Ratchet med nøglerotation | Kryptografiske operationer sker inde i en WASM-binærfil. Brugeren ser at den indlæses, men kan ikke læse hvilken algoritme den kører |
| Hovednøglen genereres med reel entropi (256 bit) | Genereringen bruger crypto.getRandomValues i browseren. Du kan se, at der genereres 24 ord, men du kan ikke verificere entropiens kvalitet eller at CSPRNG er sikker fra F12 |
| X25519 + Ed25519 + ChaCha20-Poly1305 | Samme problem: den kryptografiske stak er inde i WASM. Fra browseren kan du ikke bekræfte kurverne eller algoritmerne |
| Serveren er ”helt blind” | Du kan verificere at klienten ikke sender læsbare data. Hvad serveren gør med forbindelsesmetadata (IP’er, tidsstempler) kræver tillid eller serverrevision |
| Serveren gemmer ikke relationer efter sammenkædning | Kræver adgang til kildekode og database på serveren |
| IP-adresser logges ikke | Du kan ikke verificere hvad serveren logger |
| Nøgler roterer med hver besked | Sker inde i WASM. Du ser at beskeder sendes, men kan ikke observere nøglerotationen |
| Slettede data forsvinder virkelig | Du kan slette fra lokal IndexedDB, men du kan ikke verificere at serveren ikke beholder kopier (selvom Manifestet siger at den aldrig havde dem) |
Hvorfor WASM er en reel barrière
Solo2’s kryptografiske lag er kompileret til WebAssembly — et binært format som din browser kører, men som du ikke kan læse som tekst. Det betyder at du fra F12 ikke kan verificere hvilken algoritme vi bruger.
Minificeret JavaScript (som vi bruger til interfacet) er reversibel: browseren kan reformatere det og kodestrukturen er læsbar. Det er en praktisk hindring, ikke en reel barrière. Men WASM kompileret fra Zig er fundamentalt anderledes
Vi siger at det er Double Ratchet med X25519. Du kan stole på vores ord, eller du kan vente til vi offentliggør kildekoden for kryptolaget, så alle kan revidere det. Vi arbejder på det.
Hvad vi gør for at du kan stole mere på os
Offentliggøre SHA-256-hasher for .wasm-filer
Vi offentliggør den kryptografiske hash for hver WASM-fil i produktion. Så kan enhver revisor verificere at binærfilen i din browser matcher præcist det vi kompilerede.
Åbne kryptolaget som open source
Offentliggøre kildekoden for kryptolaget (Zig) som åbent repository. Samme model som Signal: åbent kryptografisk protokol, resten af koden lukket. Alle kan kompilere kildekoden og sammenligne hashen for den resulterende .wasm med den i produktion.
Sikkerhed afhænger ikke af hemmeligholdelse
Vores sikkerhedsmodel er designet til at fungere selv om kildekoden er offentlig. Hvis sikkerheden afhæng af at ingen kunne læse koden, ville det ikke være sikkerhed — det ville være håb.
5 dokumenterede sikkerhedslag
Adgangskode (adgang til serveren), 24 ord (reel hovednøgle), enhedshemmelighed (boksbeskyttelse) og Double Ratchet-rotation. Hvert lag er uafhængigt og verificerbart i vores Transparensmanifest.