emberline
Emberline es un servicio de chat anónimo, efímero y cifrado de extremo a extremo sin cuentas ni almacenamiento persistente. Opera bajo jurisdicción suiza y utiliza una arquitectura minimalista basada en Node.js para conectar usuarios mediante palabras clave compartidas.
Ficha actualizada 24 sept 2026, 18:09 · upstream 24 sept 2026, 18:04 · release sin release detectada
Qué es emberline
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Emberline se posiciona como una herramienta de comunicación privada radical, alineada con el Artículo 13 de la Constitución Suiza sobre privacidad. A diferencia de las aplicaciones convencionales que requieren registro y almacenan datos, Emberline conecta dos extraños basándose en palabras clave compartidas. La sesión termina automáticamente tras el intercambio, sin dejar rastro en servidores ni bases de datos. Todo el tráfico se cifra usando NaCl box (Curve25519 + XSalsa20 + Poly1305), y el servidor solo retransmite los paquetes cifrados y no-ces, actuando como un relay ciego que no puede descifrar lo que pasa por él.
La implementación técnica es deliberadamente simple: un proceso de Node.js maneja conexiones WebSocket y una superficie HTTP mínima para desafíos y estadísticas. No utiliza frameworks complejos ni bases de datos; el estado se mantiene en memoria (Maps) y solo se escriben logs de abuso para prevención. El cliente es un único archivo HTML con JavaScript nativo, lo que reduce la huella de ataque y la complejidad del despliegue.
El modelo de confianza es explícito: aunque el código es abierto y hay verificación de hashes de commits, el operador tiene capacidad teórica de MITM en el intercambio de claves. El diseño prioriza la privacidad frente a terceros sobre la seguridad criptográfica absoluta contra un administrador comprometido. La infraestructura oficial usa una topología con VPS suizo y Raspberry Pi, pero cualquier host Linux es suficiente para auto-alojarlo.
- Comunicación anónima temporal entre desconocidos sin registro ni huella digital persistente
- Herramienta de prueba para evaluar la privacidad en entornos con jurisdicción suiza o alta protección legal
- Servicio de chat efímero para grupos pequeños que desean evitar el almacenamiento de metadatos en bases de datos centralizadas
- Implementación local (self-hosting) en servidores domésticos o Raspberry Pi para usuarios que requieren control total sobre la infraestructura y no confían en terceros
- Cifrado extremo a extremo robusto con NaCl box (Curve25519 + XSalsa20 + Poly1305) implementado en el cliente
- Arquitectura sin base de datos ni almacenamiento persistente, eliminando vectores de fuga de contenido por filtraciones
- Jurisdicción suiza y cumplimiento del Artículo 13 de la Constitución para protección legal reforzada
- Despliegue minimalista con Node.js nativo, sin dependencias complejas ni pasos de compilación
- Transparencia total en el código fuente bajo licencia AGPL-3.0, permitiendo auditoría pública y forking
- Riesgo de MITM en el intercambio de claves debido a la mediación del servidor para conectar usuarios
- Confianza inherente en el operador o administrador del servidor, ya que no hay verificación criptográfica del código ejecutado
- Vulnerabilidad estructural al entregar JavaScript desde el servidor, permitiendo exfiltración si el servidor es comprometido
- Metadatos de red (timing y tamaño de paquetes) son visibles para adversarios globales en los puntos de entrada/salida
- Dependencia de logs de IP para defensa contra abuso, lo que introduce una excepción al principio de 'no logs' para mitigación de ataques DDoS o spam
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Requiere Node.js 18+, un proxy inverso HTTPS (Caddy/nginx) y dominio propio. Ejecutar `npm install` y `node setup-assets.js` antes de arrancar el servidor en puerto 3000. Configurar `ALLOWED_WS_ORIGINS` y `TRUST_PROXY` según la infraestructura. El directorio de logs (`LOG_DIR`) no debe estar dentro del contenido público. Para producción, se recomienda TLS termination externo, rotación de logs y integración con Fail2Ban para los logs de IP, aunque el servidor no almacena conversaciones ni palabras clave.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.