Sistema de chat anónimo con cifrado militar, intercambio seguro de archivos y auto-eliminación inteligente
Interfaz moderna del chat anónimo con cifrado end-to-end
📑 Tabla de Contenidos Completa
| Característica | Descripción | Estado |
|---|---|---|
| 🔐 Cifrado AES-256-GCM | Estándar militar para todos los datos | ✅ Activo |
| 🔑 Diffie-Hellman | Intercambio seguro de claves | ✅ Activo |
| 🚫 Zero Database | Sin persistencia de datos sensibles | ✅ Activo |
| ⏰ Auto-Eliminación | Limpieza automática inteligente | ✅ Activo |
| Característica | Descripción | Beneficio |
|---|---|---|
| 🎭 Identidades Temporales | Usuarios generados automáticamente | Sin registro |
| 🌈 Avatares Únicos | Colores distintivos sin datos personales | Identificación visual |
| 🔄 Sesiones Efímeras | Cada conexión es independiente | Máxima privacidad |
| 📊 Sin Tracking | Cero recopilación de datos | Anonimato total |
| Especificación | Valor | Seguridad |
|---|---|---|
| 📏 Tamaño Máximo | 15MB por archivo | ✅ Optimizado |
| 🗂️ Cantidad Límite | 5 archivos por usuario | ✅ Controlado |
| 🔒 Cifrado | AES-256-GCM completo | ✅ Militar |
| ⏱️ Retención | 30 minutos máximo | ✅ Auto-limpieza |
graph TB
A[👤 Usuario] --> B[🌐 Next.js Frontend]
B --> C[⚡ WebSocket Seguro]
C --> D[🚀 FastAPI Backend]
D --> E[🔐 Motor de Cifrado]
D --> F[📁 Storage Temporal]
E --> G[🔑 Gestión de Claves]
F --> H[⏰ Auto-Limpieza]
style A fill:#e1f5fe
style B fill:#f3e5f5
style D fill:#e8f5e8
style E fill:#fff3e0
style F fill:#fce4ec
| Componente | Repositorio | Tecnología | Deploy | Estado |
|---|---|---|---|---|
| 🎨 Frontend | chat-frontend | Next.js 14 + TypeScript | Netlify | 🟢 Online |
| 🚀 Backend | chat-backend | FastAPI + Python | Render | 🟢 Online |
🔧 Stack Tecnológico Completo
| Capa | Tecnología | Propósito | Versión |
|---|---|---|---|
| 🎨 Frontend | Next.js + TypeScript | Interfaz moderna y responsive | 14.x |
| 🚀 Backend | FastAPI + Python | API eficiente con WebSockets | 3.11+ |
| 🔐 Cifrado | AES-256-GCM + DH | Seguridad de grado militar | Nativo |
| 🌐 Deploy | Netlify + Render | Infraestructura escalable | Cloud |
| 💾 Storage | Memoria + Temporal | Sin persistencia | Efímero |
| 🔄 Comunicación | WebSocket + HTTPS | Tiempo real seguro | WSS/TLS |
# 1. Clonar repositorios
git clone https://github.com/h3n-x/chat-backend.git
git clone https://github.com/h3n-x/chat-frontend.git
# 2. Backend (Terminal 1)
cd chat-backend && pip install -r requirements.txt && python main.py
# 3. Frontend (Terminal 2)
cd chat-frontend && npm install && npm run dev🎉 ¡Listo! Accede a http://localhost:3000
🔧 Configuración Avanzada
PORT=8000
CORS_ORIGINS=http://localhost:3000,https://write-ghost.netlify.app
MAX_FILE_SIZE=15728640 # 15MB
MAX_FILES_PER_USER=5
AUTO_CLEANUP_INTERVAL=300 # 5 minutosNEXT_PUBLIC_WS_URL=ws://localhost:8000
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_MAX_FILE_SIZE=15728640# Backend
cd chat-backend
docker build -t chat-backend .
docker run -p 8000:8000 chat-backend
# Frontend
cd chat-frontend
docker build -t chat-frontend .
docker run -p 3000:3000 chat-frontend| Paso | Acción | Resultado |
|---|---|---|
| 1️⃣ | Accede a la aplicación | Identidad anónima generada |
| 2️⃣ | Elige sala (General/Privada) | Conexión cifrada establecida |
| 3️⃣ | Comienza a chatear | Mensajes cifrados automáticamente |
| 4️⃣ | Comparte archivos (opcional) | Contenido cifrado y temporal |
Máxima privacidad con cifrado independiente
🚪 Crear Sala Privada
├── 🎲 Código único de 6 dígitos
├── 👥 Máximo 10 usuarios
├── 🔑 Claves de cifrado independientes
└── ⏰ Auto-eliminación al vaciar| Método | Límites | Seguridad | Retención |
|---|---|---|---|
| 🖱️ Drag & Drop | 15MB/archivo | AES-256-GCM | 30 min |
| 📎 Selector | 5 archivos/usuario | Metadatos cifrados | Auto-limpieza |
| 🖼️ Vista Previa | Imágenes soportadas | Sin cache persistente | Temporal |
| Elemento | Cifrado | Almacenamiento | Retención | Integridad |
|---|---|---|---|---|
| 💬 Mensajes | ✅ AES-256-GCM | 🚫 Solo memoria | ⏰ 10 min | ✅ HMAC |
| 📁 Archivos | ✅ AES-256-GCM | 📁 Temporal cifrado | ⏰ 30 min | ✅ HMAC |
| 🏷️ Metadatos | ✅ AES-256-GCM | 🚫 Solo memoria | ⏰ Con archivo | ✅ HMAC |
| 🔑 Claves | ✅ Diffie-Hellman | 🚫 Solo memoria | ⏰ Por sesión | ✅ PFS |
🔐 Flujo de Cifrado Detallado
sequenceDiagram
participant U1 as 👤 User 1
participant S as 🚀 Server
participant U2 as 👤 User 2
Note over U1,U2: 🔑 Key Exchange
U1->>S: Connect WebSocket
S->>U1: Generate DH pair
U2->>S: Join room
S->>U2: DH exchange
S->>U1: Shared key established
S->>U2: Shared key established
Note over U1,U2: 💬 Encrypted Communication
U1->>U1: Encrypt message (AES-256-GCM)
U1->>S: Send encrypted message
S->>U2: Relay (without decrypting)
U2->>U2: Decrypt message locally
- Cifrado Simétrico: AES-256-GCM (Galois/Counter Mode)
- Intercambio de Claves: Diffie-Hellman Ephemeral (DHE)
- Función Hash: SHA-256 para derivación de claves
- Integridad: HMAC integrado en GCM
- Aleatoriedad: CSPRNG para nonces y claves
| Servicio | URL | Estado | Uptime |
|---|---|---|---|
| 🎨 Frontend | write-ghost.netlify.app | 🟢 Online | 99.9% |
| 🚀 Backend | chat-backend-haeb.onrender.com | 🟢 Online | 99.5% |
| 📊 Health Check | /health | 🟢 Online | Monitoreado |
| 📖 API Docs | /docs | 🟢 Online | Swagger UI |