Compróbao en 2 minutos
Preme F12 no teu navegador. Sen instalar nada. Sen saber programar.
| Afirmación | Como verificalo | Pestana |
|---|---|---|
| Non hai cookies de ningún tipo | Application → Cookies → baleiro. Solo2 non instala ningunha cookie. A túa sesión mantense en localStorage, non en cookies. Sen _ga |
Application |
| Non hai servizos de terceiros na app | Network → filtrar por dominio → só peticións a solo2.net. Non hai Google, Facebook, Cloudflare nin ningún outro. |
Network |
| Analytics só no landing, non na app | Network → en /* verás peticións a stats.menzuri.com. Na app (/app/*), ningunha. |
Network |
| O teu historial vive no teu navegador | Application → IndexedDB → solo2-vault-{userId}. Os teus datos cifrados están aí, non no servidor. |
Application |
| Lista de contactos só local | Application → IndexedDB → store pares. Só existe no teu navegador. |
Application |
| Sen CDNs externos | Network → todos os JS/CSS cárganse desde o mesmo dominio. Non hai cdn.jsdelivr.net, unpkg.com nin similares. |
Network |
| Sesións de 24h como máximo | Application → localStorage → solo2_session. O token ten unha caducidade verificable. |
Application |
| Podes ver que tipo de conexión usas | Na UI do chat: indicador P2P (verde) vs Mirror/TURN (laranxa) visible en todo momento | UI |
| Umami é cookieless | Application → Cookies → non aparece ningunha cookie de stats.menzuri.com. Umami non usa cookies. |
Application |
| A túa chave mestra xérase aleatoriamente | Application → ao rexistrarte, Solo2 xera 24 palabras únicas. Non se derivan da túa contrasinal — son unha chave independente con 256 bits de entropía real | Application |
Se sabes usar DevTools
Verificacións que requiren coñecemento técnico. Se entendes HTTP, WebRTC e criptografía básica, podes confirmar estas afirmacións.
| Afirmación | Como verificalo |
|---|---|
| Mensaxes cifradas E2E | Network → as peticións a /cmd levan payloads cifrados (base64/binario). Non hai JSON lexible con texto plano. |
| Sinais WebRTC cifrados E2E | Network → as mensaxes de sinal viaxan como blobs binarios cifrados. Non son JSON lexible con offer/answer en plano. |
| Chave mestra independente de contrasinal | Network → o login recibe un wrapped_master_key |
| Padding uniforme no mirror | Network → os paquetes WebSocket/DataChannel teñen tamaño fixo cando se usa relay. Inspecciona os tamaños na pestana Network |
| Contrasinal protexido (non viaxa en plano) | Network → o login envía un hash, non texto plano. Non podes verificar que algoritmo usa o servidor (Argon2id), pero si que o teu contrasinal orixinal nunca se envía. |
| As solicitudes de vinculación caducan en 3 días | Crea unha solicitude, non a respondas, verifica tras 3 días que desapareceu. Require paciencia, pero é verificable. |
| Push notifications cifradas | Network → as peticións push ao Service Worker chegan cifradas (estándar Web Push). Vese o payload cifrado na pestana Network |
| Conexión P2P directa vs relay | chrome://webrtc-internals/ → verifica candidatos ICE. Se ves typ srflx ou typ relay, sabes se é directo ou retransmitido. |
Isto non podes verificalo
Seriamos hipócritas se dixésemos que todo é verificable. Estas afirmacións requiren confianza — ou auditoría externa.
| Afirmación | Por que non é verificable |
|---|---|
| Double Ratchet con rotación de chaves | As operacións criptográficas ocorren dentro dun binario WASM. O usuario ve que se carga, pero non pode ler que algoritmo executa |
| A chave mestra xérase con entropía real (256 bits) | A xeración usa crypto.getRandomValues dentro do navegador. Podes ver que se xeran 24 palabras, pero non podes verificar desde F12 a calidade da entropía nin que o CSPRNG sexa seguro |
| X25519 + Ed25519 + ChaCha20-Poly1305 | Mesmo problema: o stack criptográfico está dentro de WASM. Non se poden confirmar as curvas nin os algoritmos desde o navegador |
| O servidor é "completamente cego" | Podes verificar que o cliente non envía datos lexibles. O que o servidor fai cos metadatos de conexión (IPs, timestamps) require confianza ou auditoría |
| O servidor non garda relacións tras a vinculación | Require acceso ao código e base de datos do servidor |
| Os IPs non se rexistran | Non podes verificar que rexistra o servidor nos seus logs |
| As chaves rotan con cada mensaxe | Ocorre dentro de WASM. Ves que se envían mensaxes, pero non podes observar a rotación de chaves |
| Os datos borrados realmente desaparecen | Podes borrar de IndexedDB local, pero non podes verificar que o servidor non retén copias (aínda que o Manifesto di que nunca os tivo) |
Por que WASM é unha barreira real
A capa criptográfica de Solo2 está compilada en WebAssembly — un formato binario que o teu navegador executa pero que non podes ler como texto. Isto significa que non podes auditar directamente o código que cifra as túas mensaxes.
O JavaScript minificado (que usamos para a interface) si é reversible: o navegador pode reformatealo e a estrutura do código é lexible. É un proceso laborioso, pero posible. WASM non: é un binario opaco.
Dicimos que é Double Ratchet con X25519. Podes confiar na nosa palabra, ou podes esperar a que publiquemos o código fonte da capa crypto para verificalo ti mesmo.
Que estamos facendo para que poidas confiar máis
Publicar hashes SHA-256 dos .wasm
Publicaremos o hash criptográfico de cada ficheiro WASM en produción. Así calquera auditor poderá verificar que o binario que se executa no teu navegador coincide co que nós compilamos.
Abrir a capa crypto como código aberto
Publicar o código fonte da capa criptográfica (Zig) como repositorio público. O mesmo modelo que Signal: protocolo criptográfico aberto, resto da aplicación privado.
A seguridade non depende da escuridade
O noso modelo de seguridade está deseñado para funcionar incluso se o código fose público. Non dependemos de que ninguén vexa como funciona — dependemos de que a criptografía sexa sólida.
5 documented security layers
Contrasinal (acceso ao servidor), 24 palabras (chave mestra real), segredo de dispositivo (protección bóveda) e rotación Double Ratchet. Cada capa é independente e verificable no noso Manifesto de Transparencia.