Veto · Mensajería privada

Mensajería privada sin número de teléfono

Veto es una mensajería cifrada de extremo a extremo: identidad local, claves en el dispositivo y relays que solo ven texto cifrado. Construimos el sitio, la app web y una app nativa en Flutter para Android e iOS, todo sobre un solo núcleo en Rust.

Dos teléfonos Android, cada uno con su identidad, conversando a través de dos relays locales: solicitud aceptada, mensajes, reacción y respuesta citada. Contactos inventados.
En resumen

Veto es una mensajería cifrada de extremo a extremo que no pide número de teléfono: la identidad y las claves se crean en el dispositivo y los mensajes viajan por varios relays que solo ven texto cifrado. Construimos su sitio trilingüe, la PWA en /app y, en octubre de 2026, una app nativa en Flutter que usa el mismo núcleo criptográfico en Rust que la web. En el teléfono, la app agrega contactos por enlace o código QR, maneja grupos y encuestas, y se bloquea con un código local.

Cliente
Veto · Mensajería privada
Sector
Privacidad y mensajería
Año
2026
Entregables
  • App nativa en Flutter (Android, iOS)
  • Núcleo Rust por FFI
  • PWA en /app
  • Sitio de marketing trilingüe
  • Arquitectura E2E multi-relay
0números de teléfono requeridos
ML-KEM-768+ X25519, intercambio híbrido
4.366líneas del núcleo cripto en Rust
50pruebas de la app móvil
El contexto

Que nadie en el camino lea los mensajes

El encargo de Veto era exigente. Ni scanners, ni relays, ni operadores debían ver nunca el texto en claro, y nadie debía necesitar un número de teléfono ni un SMS para entrar. Las promesas de seguridad también tenían que ser honestas: un producto de privacidad que exagera su protección rompe la confianza que pide. Hacía falta un producto real y una explicación clara de en qué punto está.

Diseño y construcción

Una app nativa sobre el mismo núcleo en Rust

En octubre de 2026 reemplazamos las apps Capacitor por una app nativa en Flutter para Android e iOS. Reescribir el protocolo en Dart habría duplicado la criptografía y partido Veto en dos redes incompatibles. Por eso la app llama al mismo núcleo en Rust que la web, a través de una pequeña interfaz en C (veto-ffi). Los secretos se quedan detrás de handles nativos; Dart solo recibe claves públicas, texto cifrado y el texto en claro que pide. Unos vectores de prueba generados desde el código TypeScript corren en las dos suites, y la CI falla si web y móvil se separan.

La app nativa usa los mismos relays que la web, así que alguien en el teléfono y alguien en el navegador se agregan con el mismo enlace de invitación o código QR. Un mensaje cuenta como entregado cuando al menos dos relays lo guardaron. En el teléfono, cada fila de SQLite va sellada con la clave de la bóveda, y esa clave se envuelve otra vez con una clave del dispositivo guardada en Android Keystore o en el Keychain de iOS: copiar los archivos de la app no permite adivinar el código fuera de línea. La app se bloquea tras cinco minutos en segundo plano y oculta los chats en el selector de apps.

El repositorio suma 217 commits desde mayo de 2026. La app tiene 53 archivos Dart y 16.369 líneas, con 50 casos de prueba, sobre un crate criptográfico en Rust de 4.366 líneas. Un script de extremo a extremo hace hablar el APK real en un emulador con la app web real.

Primer uso de la app nativa: bienvenida, nombre, código de acceso local y la lista de chats vacía. Sin número de teléfono.
  1. 01

    App Flutter, núcleo en Rust

    Un solo código Flutter para Android e iOS llama a la misma criptografía en Rust que la web a través de veto-ffi: hay un único protocolo que mantener.

  2. 02

    Intercambio híbrido

    El protocolo v2 combina X25519 y ML-KEM-768 en el handshake, y luego un Double Ratchet con renovaciones periódicas de ML-KEM. La parte poscuántica protege la confidencialidad de los mensajes.

  3. 03

    Números de seguridad

    Cada contacto tiene un número de seguridad de 60 dígitos en 12 grupos de 5. Se compara en persona o por llamada, se marca como verificado, y Veto avisa si las claves cambian.

  4. 04

    Teléfono, computador y web

    La app web corre en el navegador de cualquier computador y encuentra a los usuarios nativos en los mismos relays. La app nativa todavía no vincula dispositivos, así que cada uno tiene su propia identidad.

Resultados

Una mensajería en el teléfono, el computador y la web

Veto funciona hoy como app nativa en Android y iPhone y como app web en el computador, con los mismos relays y los mismos enlaces de invitación. En la app nativa funcionan grupos, encuestas, stickers, reacciones, respuestas, chats bloqueados y tema oscuro, y Veto Echo, un contacto de demostración que corre en el propio teléfono, permite probarla sin nadie más.

  • App nativa en Flutter sobre el mismo núcleo Rust que la web
  • Mismos relays y enlaces de invitación en el teléfono y en el navegador
  • 50 pruebas móviles y vectores compartidos con el código web
Preguntas frecuentes

Las preguntas que escuchamos a menudo

¿La app Veto es segura?

Veto cifra cada mensaje en tu dispositivo antes de que salga, con un handshake híbrido X25519 + ML-KEM-768 y un Double Ratchet, y los relays solo transportan sobres sellados que no pueden leer. La propia app marca el límite en su nota «Honest status»: la protección poscuántica cubre la confidencialidad de los mensajes, pero la verificación de identidad es clásica, así que conviene comparar los números de seguridad con tus contactos.

¿Necesito un número de teléfono para usar Veto?

No. Veto no pide número de teléfono, correo ni cuenta. Tu identidad y tus claves se crean en el dispositivo, y agregas a otras personas compartiendo un enlace de invitación o mostrando un código QR.

¿Puedo usar Veto en un computador portátil?

Sí, con la app web en el navegador, que se puede instalar como PWA. Usa el mismo núcleo criptográfico en Rust que la app del teléfono y los mismos relays, así que usuarios de computador y de teléfono se agregan entre sí. La app nativa aún no vincula dispositivos, de modo que el computador tiene su propia identidad.

¿Hay una app de Veto para el celular?

Sí: una app nativa para Android y iPhone, hecha con un solo código Flutter. Crea tu identidad en el teléfono y no pide número de teléfono para empezar.

Hablar con Slash

Pongámoslo en producción

Cuéntanos tu reto. Respondemos en menos de 24 horas laborales con una primera lectura honesta: si podemos ayudarte, te diremos cómo; si no, te diremos quién puede.

Contesto personalmente. Sin formularios eternos ni respuestas automáticas.

Escribirle a Esteban