Verifícalo tú mismo

No confíes en nadie. Compruébalo.

Solo2 es una aplicación web. Eso significa que tu navegador ya tiene todas las herramientas que necesitas para auditar lo que hacemos. Pulsa F12, abre las DevTools y comprueba por ti mismo cada afirmación de nuestro Manifiesto. Aquí te decimos exactamente cómo.

Compruébalo en 2 minutos

Pulsa F12 en tu navegador. Sin instalar nada. Sin saber programar.

Afirmación Cómo verificarlo Pestaña
No hay cookies de rastreo Application → Cookies → solo cookie de sesión técnica. Sin _ga, _fbp, _gid ni similares Application
No hay servicios de terceros en la app Network → filtrar por dominio → solo peticiones a solo2.net. Cero llamadas a Google, Facebook, Amazon, etc. Network
Analytics solo en landing, no en la app Network → en /info/* se ve stats.menzuri.com. En la app (/) no aparece ningún script de analytics Network
Tu historial vive en tu navegador Application → IndexedDB → solo2-vault-{userId} con stores messages, files, etc. Datos locales Application
Lista de contactos solo local Application → IndexedDB → store pares existe localmente. Network → no hay petición de "contacts" ni "friends" al servidor Application
Sin CDNs externos Network → todos los JS/CSS se cargan desde el mismo dominio. No hay cdn.jsdelivr.net, cdnjs.cloudflare.com, unpkg.com Network
Sesiones de 24h máximo Application → localStorage → solo2_session expira. Puedes cerrar sesión y ver que desaparece Application
Puedes ver qué tipo de conexión usas En la UI del chat: indicador P2P (verde) vs Mirror/TURN (naranja) visible en todo momento UI
Umami es cookieless Application → Cookies → no aparece ninguna cookie de stats.menzuri.com incluso tras visitar el landing Application
Tu identidad se calcula, no se almacena Application → localStorage → no existe ninguna clave solo2_identity. La identidad se deriva de tu contraseña en cada login Application

Si sabes usar DevTools

Verificaciones que requieren conocimiento técnico. Si entiendes HTTP, WebRTC y criptografía básica, puedes confirmar estas afirmaciones.

Afirmación Cómo verificarlo
Mensajes cifrados E2E Network → las peticiones a /cmd contienen payloads binarios opacos (zcatpack). El contenido no es texto legible. No puedes confirmar qué algoritmo se usa, pero sí que no viaja en claro
Señales WebRTC cifradas E2E Network → los signal messages viajan como blobs binarios cifrados. No son JSON legible con offer/answer en claro
Identidad derivada de contraseña, no almacenada Application → localStorage → no existe solo2_identity. La identidad se computa con Argon2id + HKDF en cada login. Network → ni la contraseña ni la identidad derivada salen del navegador
Padding uniforme en mirror Network → los paquetes WebSocket/DataChannel tienen tamaño fijo cuando se usa relay. Inspecciona los sizes en la pestaña Network
Contraseña protegida (no viaja en plano) Network → el login envía un hash, no texto plano. No puedes verificar qué algoritmo usa el servidor (Argon2id), pero sí que tu contraseña original nunca sale del navegador
Solicitudes de vinculación caducan en 3 días Crea una solicitud, no la respondas, verifica tras 3 días que desapareció. Requiere paciencia y dos cuentas
Push notifications cifradas Network → las peticiones push al Service Worker llegan cifradas (estándar Web Push). Se ve el payload cifrado en la pestaña Network
Conexión P2P directa vs relay chrome://webrtc-internals/ muestra los ICE candidates y si la conexión es relay (TURN) o srflx/host (directa)

Esto no puedes verificarlo

Seríamos hipócritas si dijéramos que todo es verificable. Estas afirmaciones requieren que confíes en nosotros — o que esperes a que publiquemos el código.

Afirmación Por qué no es verificable
Double Ratchet con rotación de claves Las operaciones criptográficas ocurren dentro de un binario WASM. El usuario ve que se carga, pero no puede leer qué algoritmo ejecuta
La identidad se deriva determinísticamente de la contraseña La derivación usa Argon2id + HKDF dentro de WASM. Puedes ver que no hay clave almacenada, pero no puedes verificar el algoritmo de derivación desde F12
X25519 + Ed25519 + ChaCha20-Poly1305 Mismo problema: el stack criptográfico está dentro de WASM. No se pueden confirmar las curvas ni los algoritmos desde el navegador
El servidor es "completamente ciego" Puedes verificar que el cliente no envía datos legibles. Lo que el servidor hace con los metadatos de conexión (IPs, timestamps) requiere confianza o auditoría del servidor
El servidor no guarda relaciones tras vinculación Requiere acceso al código y base de datos del servidor
Las IPs no se registran No puedes verificar qué registra el servidor en sus logs
Las claves rotan con cada mensaje Ocurre dentro de WASM. Ves que se envían mensajes, pero no puedes observar la rotación de claves
Los datos borrados realmente desaparecen Puedes borrar de IndexedDB local, pero no puedes verificar que el servidor no retiene copias (aunque el Manifiesto dice que nunca los tuvo)

Por qué WASM es una barrera real

La capa criptográfica de Solo2 está compilada en WebAssembly — un formato binario que tu navegador ejecuta pero que no puedes leer como texto. Esto significa que no puedes verificar desde F12 qué algoritmo usamos.

El JavaScript minificado (que usamos para la interfaz) sí es reversible: el navegador puede reformatearlo y la estructura del código es legible. Es un obstáculo práctico, no una barrera real. Pero WASM compilado desde Zig es fundamentalmente diferente — es un binario de bajo nivel donde los nombres originales desaparecen y las optimizaciones del compilador transforman el código más allá de lo reconocible.

Decimos que es Double Ratchet con X25519. Puedes confiar en nuestra palabra, o puedes esperar a que publiquemos el código fuente de la capa crypto para que cualquiera pueda auditarlo. Estamos trabajando en ello.

Qué estamos haciendo para que puedas confiar más

1

Publicar hashes SHA-256 de los .wasm

Publicaremos el hash criptográfico de cada archivo WASM en producción. Así cualquier auditor podrá verificar que el binario que se ejecuta en tu navegador corresponde exactamente con el que nosotros compilamos.

2

Abrir la capa crypto como código abierto

Publicar el código fuente de la capa criptográfica (Zig) como repositorio público. El mismo modelo que Signal: protocolo criptográfico abierto, resto del código cerrado. Cualquiera podrá compilar el código fuente y comparar el hash del .wasm resultante con el que está en producción.

3

La seguridad no depende de la oscuridad

Nuestro modelo de seguridad está diseñado para funcionar incluso si el código fuente es público. Si la seguridad dependiese de que nadie pudiese leer el código, no sería seguridad — sería esperanza.

4

5 capas de seguridad documentadas

Contraseña, secreto de dispositivo, identidad determinista, 24 palabras BIP39 y rotación Double Ratchet. Cada capa es independiente y verificable en nuestro Manifiesto de Transparencia.

Solo2 — Tu conversación es solo tuya.