Mensajería P2P privada con cifrado AORP — versión web/PWA
Salas privadas, identidades efímeras, sin cuentas. Funciona completamente en el navegador usando libtaior WASM + SvelteKit + Yjs.
✅ E2E Encryption: AES-GCM 256 con PBKDF2 por sala
✅ AORP Routing: Cifrado onion via libtaior WASM (ChaCha20-Poly1305 + X25519)
✅ Cover Traffic: Paquetes dummy para ocultar patrones
✅ Identidades efímeras: Sin cuentas, sin persistencia de identidad
✅ Local-First: Yjs CRDT, historial cifrado en localStorage
✅ PWA: Instalable desde el navegador
✅ Sin servidores: No hay relays ni signaling externos
- Node.js 18 o superior
- npm 9 o superior
- Token de GitHub con permiso
read:packages(para descargar@taiorproject/taiordesde GitHub Packages)
@taiorproject/taior está publicado en GitHub Packages. Necesitas un token de GitHub con permiso read:packages.
export GITHUB_TOKEN=ghp_tutokenO agrégalo a tu ~/.npmrc global:
echo "//npm.pkg.github.com/:_authToken=ghp_tutoken" >> ~/.npmrccd Hush
npm installEsto descarga automáticamente @taiorproject/taior@0.1.0 desde GitHub Packages.
npm run devAbre http://localhost:5173 en el navegador.
npm run build
npm run preview┌─────────────────────────────────────────┐
│ Hush PWA (SvelteKit) │
│ Frontend: Svelte + Flowbite │
├─────────────────────────────────────────┤
│ libtaior WASM │
│ ├─ AORP routing (onion encryption) │
│ ├─ ChaCha20-Poly1305 + X25519 │
│ └─ Cover traffic generation │
├─────────────────────────────────────────┤
│ BroadcastChannel │
│ └─ Sync Yjs CRDT entre pestañas │
└─────────────────────────────────────────┘
- Frontend: SvelteKit + Flowbite + Tailwind
- Crypto AORP: libtaior WASM (ChaCha20-Poly1305 + X25519 + HKDF-SHA256)
- Crypto E2E: AES-GCM 256 + PBKDF2-SHA256 por roomKey
- Sync: Yjs CRDT via BroadcastChannel (entre pestañas del mismo origen)
- Persistencia: localStorage cifrado con la roomKey
- Abre la app en el navegador
- Haz clic en Nueva conversación
- Genera o escribe una clave de sala y compártela con quien quieras chatear
- Activa Privacidad reforzada para mayor anonimato (modo Mix)
- Los mensajes se sincronizan entre pestañas del mismo navegador via BroadcastChannel
- Normal: cifrado E2E + AORP en modo
mix(por defecto) - Privacidad reforzada: activa cobertura adicional de cover traffic
- ✅ E2E Encryption: AES-GCM con clave derivada de la roomKey
- ✅ Onion Encryption: libtaior WASM cifra cada paquete Yjs
- ✅ Cover Traffic: paquetes dummy ocultan patrones de uso
- ✅ Identidades efímeras: sin cuentas ni tracking persistente
- ✅ Historial cifrado: localStorage cifrado con la roomKey
- ❌ Anonimato de red: BroadcastChannel es local al navegador, no oculta IP
- ❌ Sincronización entre dispositivos distintos: requeriría un transport adicional
- ❌ Auditoría de seguridad: proyecto experimental de investigación
- ❌ Resistencia a adversarios globales: no diseñado para amenazas de estado
- Signal: metadatos ocultos, auditado, producción
- Briar: P2P + Tor, resistente a censura
- Session: onion routing sin número de teléfono
../libtaior/README.md: librería de enrutamiento anónimo../aorp-spec/: especificación del protocolo AORP../taior-protocol/: documentación del protocolo TaiorCHANGELOG.md: historial de versiones
- PWA web (SvelteKit)
- libtaior WASM integrado
- Cifrado E2E AES-GCM por sala
- Onion encryption via AORP WASM
- Cover traffic
- Sync local con Yjs CRDT + BroadcastChannel
- Historial cifrado en localStorage
- Identidades efímeras por sala
- Transport entre dispositivos distintos (WebSocket simple)
- Auditoría de seguridad
- Cumplimiento completo de la spec AORP
- Release de producción (v1.0)
Proyecto de investigación experimental – Sin auditoría de seguridad.
- Hush: AGPL-3.0-or-later
- libtaior: AGPL-3.0-or-later
- Documentación Taior: CC BY-NC-SA 4.0
Hush es un prototipo educativo para demostrar conceptos de cifrado E2E, arquitectura P2P, integración WASM y el protocolo AORP.
No usar para comunicaciones que requieran privacidad o anonimato real.
Para comunicaciones sensibles, usar herramientas auditadas como Signal, Briar o Session.