Whisper
Descargar

Mensajería cifrada de extremo a extremo

Algoritmos que guardan secretos. Los tuyos.

Tus chats, fotos y notas de voz solo los ven tú y la persona a quien le escribes. Ni el servidor, ni nosotros. Y si se cae internet, Whisper sigue funcionando entre teléfonos cercanos.

Para Android 8 o superior · Whisper Web funciona en tu navegador

Ilustración: un chat de Whisper en un teléfono. Un mensaje sale de tu teléfono, el servidor solo ve caracteres revueltos y el teléfono de Ana lo vuelve a mostrar.

En pocas palabras

  • Cifrado de extremo a extremo

    Por defecto, en todos los chats uno a uno.

  • Sin anuncios

    Tus chats no son una valla publicitaria.

  • Diseño abierto

    Basado en X3DH y Double Ratchet, los protocolos que publicó Signal.

  • Funciona sin internet

    Modo emergencia, por Bluetooth y Wi‑Fi.

Funciones

Todo lo que esperas de un chat. Sin renunciar a tu privacidad.

  • Solo ustedes dos

    Mensajes, fotos, videos, notas de voz y documentos se cifran en tu teléfono antes de salir.

  • Ver una vez

    Fotos, videos y notas de voz que se abren una sola vez.

  • Mensajes sombra

    Los mensajes recientes se difuminan a los 5 segundos: nadie lee por encima de tu hombro. Toca uno para volver a verlo.

  • Mensajes temporales

    Los mensajes nuevos se borran solos a las 24 horas, 7 días o 90 días. Tú eliges.

  • Llamadas de voz y video

    Llamadas uno a uno, cifradas. Pasa de voz a video sin colgar.

  • En tu computador

    Escanea un código QR y chatea desde el navegador con Whisper Web. Tu teléfono es el puente.

  • Stickers

    Un paquete propio de Whisper, casi todos animados, y tus favoritos a un toque.

  • Rápido y ligero

    App nativa para Android. Tus mensajes aparecen al instante y, si no hay señal, salen solos cuando vuelve.

Cómo funciona

Algoritmos, no promesas.

Whisper no te pide confiar en nadie, ni siquiera en nosotros. Se apoya en el diseño que publicó Signal, X3DH y Double Ratchet, y en algoritmos estándar y muy estudiados.

a por, b por G, es igual a b por, a por G: los dos teléfonos llegan al mismo punto, su secreto compartido.

a y b son el secreto de cada teléfono; G es público. Los dos teléfonos llegan al mismo punto sin enviarlo nunca.

  1. X25519

    Un secreto compartido, a plena vista

    Dos teléfonos acuerdan una clave intercambiando solo números públicos. El secreto nunca viaja.

  2. X3DH

    Escríbele a quien está desconectado

    Tu primer mensaje ya sale cifrado, aunque el otro teléfono esté apagado.

  3. Double Ratchet

    Una clave nueva para cada mensaje

    Cada clave se usa una vez y se descarta. Una clave filtrada expone un mensaje, no la conversación.

  4. AES-256-GCM

    Sellado contra manipulaciones

    Si cambia un solo bit en el camino, el mensaje se rechaza y nunca se muestra.

La ecuación de Curve25519 sobre un campo de juguete de 151 elementos. Cada salto suma G una vez más: k·G → (k+1)·G. Avanzar es fácil. Con p = 2²⁵⁵ − 19, devolverse no.

En cifras

256
bits en cada clave
unas 2 elevado a 128
operaciones para romper la curva
1
clave nueva para cada mensaje
60
dígitos en un número de seguridad
Ver todas las matemáticas Cada fórmula, diagrama y parámetro, tal como están en el código.

Acuerdo de claves

Curve25519: un secreto compartido a plena vista

Dos teléfonos acuerdan un secreto intercambiando solo números públicos. Cualquiera puede ver el intercambio. Nadie que lo vea puede deducir el secreto.

La curva: y al cuadrado es igual a x al cubo más 486662 x al cuadrado más x, sobre el campo primo F p, donde p es 2 a la 255 menos 19.

Alice publica A, igual a a por G. Bob publica B, igual a b por G. Entonces a por B es igual a b por A: los dos llegan al mismo punto, su secreto compartido.

Recuperar a a partir de a por G es el problema del logaritmo discreto en curvas elípticas: unas 2 a la 128 operaciones.

Cada persona tiene dos claves de largo plazo: una clave de identidad X25519 para acordar secretos y otra Ed25519, aparte, para firmar. La prekey firmada lleva una firma Ed25519.

Sigma, la firma Ed25519 de la prekey firmada, la verifica el teléfono que la descarga.

Por qué importaEl secreto nunca viaja, así que no hay nada que interceptar.

Iniciar un chat

X3DH: escribirle a alguien desconectado

Bob deja algunas claves públicas en el servidor por adelantado. Alice las combina con las suyas y obtiene una clave que solo Bob puede reconstruir, aunque tenga el teléfono apagado.

Diagrama: la clave de identidad de Alice se cruza con la prekey firmada de Bob (DH1). La clave efímera de Alice se cruza con la clave de identidad de Bob (DH2), con su prekey firmada (DH3) y, si hay, con una prekey de un solo uso (DH4).

A: Alice, quien escribe · B: Bob, quien recibe · IK: clave de identidad · SPK: prekey firmada · OPK: prekey de un solo uso · EK: clave efímera de Alice

Cuatro valores Diffie–Hellman. DH1 con IK A y SPK B. DH2 con EK A e IK B. DH3 con EK A y SPK B. DH4 con EK A y OPK B, si queda una prekey de un solo uso.

La clave de sesión SK es HKDF‑SHA256 con material de entrada 32 bytes en 0xFF seguidos de DH1, DH2, DH3 y DH4; sal, 32 bytes en cero; info, whisper/x3dh/v1; longitud, 32 bytes.

Por qué importaEl primer mensaje ya va cifrado. Nadie espera a que Bob se conecte.

Claves por mensaje

Double Ratchet: una clave nueva para cada mensaje

Cada mensaje se cierra con su propia clave, que se usa una vez y se descarta. Cada respuesta hace además un Diffie⁠–⁠Hellman nuevo, así que las claves solo avanzan.

Diagrama: la clave de cadena CK0 produce CK1, CK1 produce CK2, y así sucesivamente. Cada clave de cadena produce además una clave de mensaje: MK0, MK1, MK2.

La clave de mensaje n es HMAC‑SHA256 de la clave de cadena n con el byte 0x01. La siguiente clave de cadena es HMAC‑SHA256 de la clave de cadena n con el byte 0x02.

En cada respuesta, una nueva clave raíz RK prima y una nueva clave de cadena CK salen de HKDF‑SHA256, con la salida del Diffie–Hellman como entrada, la clave raíz actual como sal, info whisper/dr/root y 64 bytes de salida.

Lo que garantiza

Secreto hacia adelante
Robar las claves de hoy no abre los mensajes pasados.
Seguridad post‑compromiso
Si se filtran claves, la conversación se recupera con el siguiente intercambio.
En desorden
Los mensajes pueden llegar en cualquier orden. Se guardan hasta 256 claves saltadas mientras llegan.

Por qué importaUna clave de mensaje filtrada expone un mensaje, no la conversación.

Cifrado

AES‑256‑GCM: sellado y a prueba de manipulación

Cada mensaje se cierra con su clave de 256 bits y se sella con una etiqueta calculada sobre cada bit. Si cambia un bit, el sello deja de coincidir.

Sellar el mensaje m con la clave K y el nonce N da el texto cifrado c y la etiqueta t. La clave tiene 256 bits, el nonce 96 bits aleatorios y la etiqueta 128 bits.

Abrir un texto cifrado que difiere de c en cualquier bit falla: el mensaje se rechaza.

Por qué importaSi cambia un solo bit en el camino, el mensaje se rechaza y nunca se muestra.

Adjuntos

Fotos, videos, notas de voz y documentos

Cada archivo se cifra en tu teléfono con una clave aleatoria nueva antes de salir. Solo se sube texto cifrado.

Una cabecera WMB1 y luego bloques de 256 KiB, cada uno sellado con AES‑256‑GCM.

La clave del archivo, K f, son 256 bits aleatorios. Cada bloque c i son los 256 KiB número i del archivo, sellados con AES‑256‑GCM bajo K f y su propio nonce.

El almacenamiento recibe solo el contenedor WMB1 de bloques sellados. Bob recibe la clave del archivo dentro de un mensaje del Double Ratchet.

Por qué importaEl servidor de archivos solo guarda bytes opacos.

Ediciones

Hasta las ediciones van cifradas

Una edición es un mensaje cifrado nuevo que apunta al original. El servidor nunca ve el texto nuevo, y rechaza cualquier edición sin cifrar de un mensaje cifrado.

La edición m prima es un mensaje nuevo del Double Ratchet con el texto nuevo, que apunta al id del original. Si el original está cifrado y la edición no, el servidor la rechaza.

Por qué importaCorregir un error nunca filtra lo que querías decir.

Verificación

Verifica, no confíes

Tú y la otra persona comparan un número de seguridad de 60 dígitos, en voz alta o escaneando un código QR. Si coincide, no hay nadie en medio.

Ejemplo

Número de seguridad de ejemplo, 12 grupos de 5 dígitos.

La huella H de cada persona es SHA‑512 iterado 5.200 veces sobre su clave de identidad, recortado a 30 bytes. El número de seguridad son 60 dígitos leídos de ambas huellas, en el mismo orden en los dos teléfonos.

Por qué importaDemuestra que las claves de ambos teléfonos son las reales y no las de un impostor.

Whisper Web

Tus chats, también en el computador.

Abre Whisper Web, escanea el código QR con tu teléfono y listo. El navegador nunca tiene tus claves: tu teléfono cifra, descifra y hace de puente.

  1. Abre web.susurro.im en tu computador.
  2. Escanea su código QR desde Whisper en tu teléfono.
  3. Chatea en pantalla grande.

Mantén tu teléfono encendido y conectado mientras lo usas.

Ilustración: un portátil con Whisper Web, unido a un teléfono por un puente cifrado.
Detalles técnicos

Dos claves, del teléfono a la web y de la web al teléfono, salen de HKDF‑SHA256 sobre el secreto X25519 que comparten navegador y teléfono, con el id del enlace como sal, info whisper-link v1 y 64 bytes.

El nonce de cada trama es una marca de dirección de 4 bytes seguida de un contador de 8 bytes que sube de a uno por trama. La trama se sella con AES‑256‑GCM.

Por qué importaEl relé del medio solo mueve texto cifrado.

Modo emergencia

¿Sin internet? Sigue hablando.

Cuando se cae la red, los teléfonos cercanos hablan entre sí por Bluetooth y Wi‑Fi y se pasan tus mensajes, salto a salto. Igual de cifrados.

Sin cuenta y sin señal
Habla con personas cercanas sin registrarte ni conectarte a nada.
Salto a salto
Los mensajes viajan a través de otros teléfonos y pueden llegar más allá de tu alcance.
Firmado en cada salto
Un mensaje falso lo descarta el primer teléfono que lo ve.
Comparte la app sin internet
Pásale Whisper al teléfono de un amigo por Quick Share, Bluetooth o Wi‑Fi local.
Sin internet Tú Ana
Ilustración: cinco teléfonos sin internet se pasan un mensaje de uno a otro hasta que llega a Ana.
Detalles técnicos

La dirección son los primeros 16 bytes, 128 bits, de SHA‑256 sobre una etiqueta de dominio y las claves públicas X25519 y Ed25519 de la identidad.

Cada paquete lleva una firma Ed25519. En cada salto se verifica la firma y se comprueba la dirección del remitente contra sus claves; si no, el paquete se descarta.

Por qué importaNadie puede usar una dirección sin las claves que la respaldan, y un paquete falso muere en el primer salto.

Con franqueza

Lo que el servidor ve y lo que no

El cifrado oculta lo que dices, no que lo dijiste. Este es el panorama completo.

El servidor ve

  • Quién habla con quién, y cuándo
  • El tamaño de mensajes y archivos
  • Tu número de teléfono y tu perfil

En chats uno a uno, nunca ve

  • Lo que dicen tus mensajes
  • Lo que contienen tus fotos, videos y archivos
Tras la entrega
Cuando un mensaje cifrado se entrega, el servidor olvida su contenido, salvo si está destacado o fijado. El resto del registro y sus adjuntos se borran unas dos semanas después.
En tu teléfono
Los chats viven en una base de datos cifrada (SQLCipher). Las claves las protege el Android Keystore.
Llamadas
Cifradas con WebRTC (DTLS‑SRTP). El audio y el video nunca pasan sin cifrar por nuestros servidores.

Por qué importaDebes saber exactamente qué está protegido y qué todavía no.

Tus secretos, en buenas manos. Las tuyas.

Descárgalo para Android o abre Whisper Web en tu computador.

Para Android 8 o superior · Whisper Web funciona en tu navegador