Skip to content

🤫 Anonymous, account-free social spaces with local aliases, ephemeral karma, and human-centric moderation. Optional Taior integration adds metadata-resistant routing.

Notifications You must be signed in to change notification settings

taiorproject/Hush

Repository files navigation

Hush Messenger

Mensajería P2P privada con cifrado AORP — versión web/PWA

⚠️ EXPERIMENTAL – Sin auditoría de seguridad ⚠️

Salas privadas, identidades efímeras, sin cuentas. Funciona completamente en el navegador usando libtaior WASM + SvelteKit + Yjs.

Características

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

Requisitos previos

  • Node.js 18 o superior
  • npm 9 o superior
  • Token de GitHub con permiso read:packages (para descargar @taiorproject/taior desde GitHub Packages)

Ejecución local

1. Configurar autenticación con GitHub Packages

@taiorproject/taior está publicado en GitHub Packages. Necesitas un token de GitHub con permiso read:packages.

export GITHUB_TOKEN=ghp_tutoken

O agrégalo a tu ~/.npmrc global:

echo "//npm.pkg.github.com/:_authToken=ghp_tutoken" >> ~/.npmrc

2. Instalar dependencias

cd Hush
npm install

Esto descarga automáticamente @taiorproject/taior@0.1.0 desde GitHub Packages.

3. Correr en modo desarrollo

npm run dev

Abre http://localhost:5173 en el navegador.

4. Build de producción

npm run build
npm run preview

Arquitectura

┌─────────────────────────────────────────┐
│         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

Uso

  1. Abre la app en el navegador
  2. Haz clic en Nueva conversación
  3. Genera o escribe una clave de sala y compártela con quien quieras chatear
  4. Activa Privacidad reforzada para mayor anonimato (modo Mix)
  5. Los mensajes se sincronizan entre pestañas del mismo navegador via BroadcastChannel

Modos de privacidad

  • Normal: cifrado E2E + AORP en modo mix (por defecto)
  • Privacidad reforzada: activa cobertura adicional de cover traffic

Notas de seguridad

⚠️ EXPERIMENTAL – Sin auditoría de seguridad

Lo que Hush SÍ provee

  • 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

Lo que Hush NO provee

  • 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

Alternativas para privacidad real

  • Signal: metadatos ocultos, auditado, producción
  • Briar: P2P + Tor, resistente a censura
  • Session: onion routing sin número de teléfono

Documentación relacionada

  • ../libtaior/README.md: librería de enrutamiento anónimo
  • ../aorp-spec/: especificación del protocolo AORP
  • ../taior-protocol/: documentación del protocolo Taior
  • CHANGELOG.md: historial de versiones

Estado

Implementado (✅)

  • 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

Roadmap (🛣️)

  • Transport entre dispositivos distintos (WebSocket simple)
  • Auditoría de seguridad
  • Cumplimiento completo de la spec AORP
  • Release de producción (v1.0)

Licencia

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

Descargo de responsabilidad

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.

About

🤫 Anonymous, account-free social spaces with local aliases, ephemeral karma, and human-centric moderation. Optional Taior integration adds metadata-resistant routing.

Resources

Stars

Watchers

Forks