Cómo cifra Spun tus datos, desde el cifrado de WhatsApp hasta las llamadas grupales
Detalle honesto, escenario por escenario, sobre el cifrado de WhatsApp, las llamadas y los datos almacenados: qué está cifrado de extremo a extremo, qué solo está cifrado en tránsito y qué debe ser legible por Spun para que el producto funcione.
De un vistazo
Cifrado por escenario
A continuación encontrarás cada tipo de dato que maneja Spun y cómo se protege exactamente. Marcamos E2EE como Sí solo cuando ningún sistema de Spun puede leer el contenido.
| Escenario | E2EE | Notas |
|---|---|---|
Llamada de voz 1:1 (Spun → Spun) DTLS-SRTP (WebRTC) | Sí | WebRTC puramente entre pares. Las claves se negocian entre los dos extremos: Spun nunca las tiene. |
Videollamada 1:1 (Spun → Spun) DTLS-SRTP (WebRTC) | Sí | Igual que la voz. Los servidores de retransmisión TURN solo ven paquetes cifrados cuando falla la conexión P2P directa. |
Llamada grupal (3 o más participantes) TLS 1.2+ hacia el SFU, DTLS-SRTP para el contenido multimedia | No | El SFU de LiveKit Cloud descifra el contenido multimedia para enrutarlo a los demás participantes. Arquitectura SFU estándar. |
Sala de traducción (modo P2P, ≤2 participantes) DTLS-SRTP (WebRTC) | Sí | Pasa al SFU si se une un tercer participante: consulta la fila anterior. |
Sala de traducción (modo SFU, 3 o más participantes) TLS 1.2+ hacia el SFU | No | El SFU de LiveKit tiene acceso al contenido multimedia para traducirlo y volver a mezclarlo. |
Mensajes de WhatsApp (dentro de WhatsApp) Signal Protocol (Meta) | Parcial | WhatsApp en sí tiene E2EE entre los participantes. Pero una vez que tu proveedor de gateway recibe tus mensajes entrantes en tu nombre, el gateway y Spun ven el texto sin cifrar: así funciona la bandeja de entrada. |
Mensajes de WhatsApp (en Spun) TLS 1.2+ | No | Necesario para mostrar la bandeja de entrada, la búsqueda, las funciones de IA y las automatizaciones. |
Spun Chat y mensajes del equipo TLS 1.2+ | No | Texto sin cifrar en reposo para que los mensajes se puedan buscar y procesar con las funciones de IA que actives. |
Archivos multimedia adjuntos (imágenes, video, documentos) TLS 1.2+ (Cloudflare R2 + S3 SigV4) | No | R2 administra las claves. Spun firma URL de corta duración para controlar el acceso por organización. |
Datos de tarjetas de pago TLS 1.2+ directo a Stripe | Parcial | Stripe Elements recoge los datos de la tarjeta directamente en el navegador: nunca llegan a los servidores de Spun. Solo recibimos un ID de cliente opaco. |
Prompts y resultados de IA TLS 1.2+ hacia el proveedor de IA | No | Se envían por TLS a OpenAI / AssemblyAI / etc. La ocultación de PII (cuando está activada) elimina los campos sensibles antes de la transmisión. |
Copias de seguridad de la base de datos TLS 1.2+ | No | Cifrado estándar de copias de seguridad administradas. |
E2EE = cifrado de extremo a extremo. “Sí” significa que ni siquiera Spun puede leer los datos. “Parcial” significa E2EE dentro de un tercero (Stripe, WhatsApp), pero visible para Spun en la parte que nosotros manejamos.
En tránsito
Todo lo que se mueve entre tu navegador, nuestros servidores y nuestros subencargados está cifrado con TLS.
TLS 1.2+ en todas las conexiones de red
Todo el tráfico navegador ↔ Spun, Spun ↔ gateway de WhatsApp, Spun ↔ OpenAI / AssemblyAI / Deepgram / Sarvam / Azure y Spun ↔ Stripe está cifrado con TLS. Las versiones anteriores del protocolo están desactivadas en el balanceador de carga.
Edge con Cloudflare al frente
Cloudflare termina TLS en el edge y vuelve a cifrar hasta el origen. Los certificados de origen fijan las solicitudes a nuestros servidores de Hetzner. La protección WAF y DDoS está siempre activa.
URL firmadas de corta duración
Las descargas de archivos multimedia usan URL prefirmadas S3 SigV4 limitadas a un solo objeto, con un vencimiento fijo. Incluso una URL filtrada deja de funcionar en cuanto vence.
En reposo
Los datos almacenados están aislados por organización mediante la seguridad a nivel de fila de PostgreSQL, y el contenido multimedia solo es accesible mediante URL firmadas y limitadas a un objeto.
PostgreSQL con seguridad a nivel de fila
Cada tabla que contiene datos de clientes tiene políticas de seguridad a nivel de fila (RLS) de PostgreSQL que aplican el aislamiento por organización. Incluso una consulta a la que por error le falta el filtro de organización se rechaza a nivel de base de datos.
Primero Alemania, con una celda en Estados Unidos
La celda principal (plano de control, servidores de aplicación, PostgreSQL y Redis) funciona en Hetzner Núremberg (Alemania, UE). Una segunda celda funciona en Manassas, Virginia. Cada organización está alojada en exactamente una celda, y toda organización nueva se crea en la celda de la UE.
Cloudflare R2 para el contenido multimedia
Las imágenes, los videos, el audio y los documentos se almacenan en Cloudflare R2. Nunca se accede a ellos mediante una dirección de bucket pública, solo mediante una URL firmada limitada a un solo objeto.
Llamadas de voz y video
Qué es E2EE real, qué no lo es y por qué. No promocionamos las llamadas grupales como cifradas de extremo a extremo, porque no lo son.
Voz y video 1:1: E2EE real
Cuando dos usuarios de Spun se llaman entre sí, el audio y el video se cifran con DTLS-SRTP de extremo a extremo entre los dos navegadores. El servidor de Spun solo retransmite la señalización SDP. Incluso si Cloudflare TURN tiene que retransmitir (NAT simétricos, firewalls), solo ve paquetes cifrados.
Llamadas grupales (3 o más): cifradas en tránsito, sin E2EE
Las llamadas grupales de audio y video y las salas de traducción con varios participantes usan LiveKit Cloud como SFU (unidad de reenvío selectivo). El contenido multimedia se cifra con DTLS-SRTP entre cada cliente y el SFU, pero el SFU lo descifra al recibirlo para enrutarlo a los demás participantes. Esta es la arquitectura SFU estándar y no está cifrada de extremo a extremo.
Salas de traducción: P2P primero cuando es posible
Las salas de traducción intentan primero P2P (E2EE) cuando solo hay dos participantes, y pasan al SFU cuando se une un tercero o cuando los dispositivos tienen recursos demasiado limitados para P2P. El modo de conexión se ve en la interfaz de la llamada.
Por qué no afirmamos tener E2EE completo en las llamadas grupales
LiveKit admite un modo opcional de cifrado de extremo a extremo (con la API Encoded Insertable Streams) que protege el contenido multimedia incluso frente al SFU. Actualmente no está activado en las llamadas grupales de Spun: agregarlo requiere un mecanismo de intercambio de claves entre los participantes y una compatibilidad verificada de navegador y códec para cada cliente admitido.
Si el E2EE completo para grupos es un requisito para ti, contáctanos en [email protected]: está en la hoja de ruta y te compartiremos su estado.
Pagos e identidad
Los datos más sensibles los manejan procesadores especializados, así que Spun nunca los ve ni los almacena.
Los datos de la tarjeta van directo a Stripe
Stripe Elements recoge los números de tarjeta, los CVC y las fechas de vencimiento dentro de un iframe que los envía directamente a Stripe, sin pasar en absoluto por los servidores de Spun. Solo recibimos un ID opaco de cliente o de método de pago. Stripe tiene la certificación PCI-DSS Level 1.
Las contraseñas se guardan con hash Argon2
Las cuentas con correo y contraseña usan Argon2id con salts por usuario. No guardamos ni registramos contraseñas en texto sin cifrar. Google Sign-In delega la autenticación por completo a Google: para esas cuentas nunca existe una contraseña en Spun.
Claves de API y webhooks firmados
Todas las cargas de webhooks de terceros (WhatsApp, Stripe, webhooks de extensiones) están firmadas con HMAC-SHA256 y se verifican del lado del servidor. Los tokens de API de las extensiones son JWT de corta duración (RS256) con un endpoint JWKS publicado.
Mensajes de WhatsApp: los límites del E2EE
El E2EE de WhatsApp protege los mensajes mientras están dentro de la infraestructura de WhatsApp. En el momento en que tu proveedor de gateway recibe un mensaje en tu nombre, el gateway ve el texto sin cifrar. Esto se aplica a todo proveedor de la WhatsApp Business API: así funcionan las bandejas de entrada de empresa.
¿Más preguntas?
Para detalles técnicos específicos (conjuntos de cifrado, autoridades de certificación, política de rotación de claves, etc.) o para solicitar la respuesta a un cuestionario de seguridad, escribe a [email protected].