Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
legion — Legion es un tejido de autenticación de conocimiento cero construido para la privacidad. | Kitploit
Herramientas/GitHubGitHub/deadends/legion
Seguridad WebCriptografíaPrivacidadSeguridad de HardwareGestión de Identidad y Acceso (IAM)Autenticación
GitHubdeadends/legion

legion

Legion es un tejido de autenticación de conocimiento cero construido para la privacidad.

Ver Repositorio
1019hace 8 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Legion ZK Auth 🛡️

Autenticación de Conocimiento Cero Real con Firmas de Anillo de Dispositivos Vinculados al Hardware

License: MIT Rust Security Version

🎯 ¿Qué es Legion?

Legion es un sistema de autenticación de conocimiento cero sin contraseña que demuestra que estás autorizado sin revelar quién eres.

Autentícate usando solo tu huella dactilar + frase de recuperación de 24 palabras (como MetaMask). Sin nombres de usuario, sin contraseñas, sin secretos del lado del servidor.

Características Clave

  • ✅ Autenticación sin contraseña: Frase de recuperación BIP-39 + huella dactilar (sin nombre de usuario/contraseña)
  • ✅ Conocimiento Cero Real: El servidor nunca aprende tu identidad (1 de 1M de usuarios)
  • ✅ Anonimato del dispositivo: Vinculado al hardware con firmas de anillo (1 de 1K dispositivos)
  • ✅ Sin Configuración Confiable: Halo2 PLONK (configuración transparente)
  • ✅ Seguridad de Hardware: Vinculación WebAuthn TPM/Secure Enclave
  • ✅ Protección contra Repeticiones: Nullifiers + marcas de tiempo
  • ✅ Seguridad de Sesión: Etiquetas de vinculabilidad evitan el robo
  • ✅ Soporte Multidispositivo: Usa la misma cuenta en 2 dispositivos (portátil + teléfono)
  • ✅ Limitación de Velocidad: 5 intentos/hora (errores genéricos evitan enumeración)
  • ✅ Revocación de Dispositivos: Bloquea dispositivos robados al instante
  • 🔒 Garantías de Seguridad (v1.3.0)

    PropiedadGarantía
    AutenticaciónSin contraseña (BIP-39 + Huella dactilar)
    Anonimato del usuario1 de 2^20 (1,048,576)
    Anonimato del dispositivo1 de 2^10 (1,024) por usuario
    Error de solidez2^-128
    Sistema de pruebaHalo2 PLONK (configuración transparente)
    Derivación de credencialesBlake3 (semilla BIP-39)
    Vinculación de hardwareWebAuthn Nivel 2 (TPM/Secure Enclave)
    MultidispositivoMáx. 2 dispositivos por cuenta
    Limitación de velocidad5 intentos/hora
    Revocación de dispositivosLista negra instantánea

    🚀 Inicio Rápido (¡Un Solo Comando!)

    Requisitos Previos

    • Docker (incluye Docker Compose)

    Instalar y Ejecutar```bash

    Clone and run

    git clone https://github.com/deadends/legion.git cd legion

    Linux/macOS

    chmod +x scripts/install.sh && ./scripts/install.sh

    Windows

    scripts\install.bat

    root@kitploit:~
    **¡Eso es todo!** Abre http://localhost en tu navegador.
    
    ### Lo que se instala
    - ✅ Redis (almacenamiento de sesiones)
    - ✅ Legion Server (verificador de pruebas ZK)
    - ✅ Frontend (cliente WASM)
    - ✅ Nginx (proxy inverso)
    
    **Rendimiento**: Registro ~5s, Autenticación ~2min (generación de pruebas k=14)
    
    ---
    
    ### Configuración manual (sin Docker)
    
    <details>
    <summary>Haz clic para expandir la instalación manual</summary>```bash
    # 1. Install Redis
    # macOS: brew install redis && redis-server
    # Ubuntu: sudo apt install redis && redis-server
    # Windows: https://redis.io/docs/install/install-redis/install-redis-on-windows/
    
    # 2. Run server (terminal 1)
    cd legion-server
    cargo run --release --features redis
    
    # 3. Build frontend (terminal 2)
    cd wasm-client
    wasm-pack build --target web --release
    python3 -m http.server 8000
    
    # 4. Open http://localhost:8000
    

    Para despliegue en producción, consulta DEPLOYMENT.md

    📊 Rendimiento

    Nivel de SeguridadkTiempo de PruebaTamaño de PruebaCaso de Uso
    Desarrollo12~30s3.2 KBPruebas
    Producción14~2min3.4 KBRecomendado

    Benchmarks de Verificación

    Hardware de Prueba: Lenovo IdeaPad 3 - Intel Core i3 11.ª Generación
    Nota: El rendimiento puede variar según las especificaciones del hardware.

    k=12 (Desarrollo/Pruebas)

    MétricaValorNotas
    Tamaño de Prueba3,264 bytes3.19 KB comprimido
    Entradas Públicas10Raíz del árbol de usuario, raíz del árbol de dispositivo, nullifier, etc.
    Generación de Parámetros7.03sConfiguración única por valor k
    Creación de Circuito2.3µsSobrecarga insignificante
    Generación de Clave Verificadora1.29sGeneración de clave única
    Verificación de Prueba107.7msVerificación real de ZK proof
    Verificación Total8.43sExtremo a extremo (sin caché)

    Desglose:

    • 🔥 Arranque en frío (primera verificación): ~8.4s (incluye parámetros + generación de clave + verificación)
    • ⚡ Verificaciones posteriores (con caché): ~108ms (parámetros/clave en caché)
    • 💾 Sobrecarga de prueba: ~326 bytes por entrada pública
    • 🔐 Complejidad del circuito: Árbol de usuario (20 niveles) + Árbol de dispositivo (10 niveles) + vinculaciones

    k=14 (Producción - Recomendado)

    MétricaValorNotas
    Tamaño de Prueba3,392 bytes3.31 KB comprimido
    Entradas Públicas10Raíz del árbol de usuario, raíz del árbol de dispositivo, nullifier, etc.
    Generación de Parámetros100.78sConfiguración única por valor k
    Creación de Circuito5µsSobrecarga insignificante
    Generación de Clave Verificadora12.89sGeneración de clave única
    Verificación de Prueba967.2msVerificación real de ZK proof
    Verificación Total114.65sExtremo a extremo (sin caché)

    Desglose:

    • 🔥 Arranque en frío (primera verificación): ~115s (incluye parámetros + generación de clave + verificación)
    • ⚡ Verificaciones posteriores (con caché): ~967ms (parámetros/clave en caché)
    • 💾 Sobrecarga de prueba: ~339 bytes por entrada pública
    • 🔐 Complejidad del circuito: Árbol de usuario (20 niveles) + Árbol de dispositivo (10 niveles) + vinculaciones

    Importante: La generación de parámetros y la generación de clave son costos únicos que se pueden almacenar en caché. Una vez en caché, la verificación toma solo entre ~108-967ms según el valor de k. La implementación actual aún no almacena parámetros en caché.

    ¿Por qué es más lento que los benchmarks anteriores? El circuito sin contraseña ahora verifica DOS árboles Merkle (usuario + dispositivo) en lugar de uno, proporcionando anonimato real a nivel de dispositivo (1 de 1024 dispositivos por usuario).

    🏗️ Arquitectura

    📖 Para un flujo de autenticación detallado paso a paso con detalles criptográficos, consulta ARCHITECTURE_FLOW.md

    Componentes del Sistema```

    ┌─────────────────────────────────────────────────────────────────────────┐ │ CLIENT (Browser + WASM) │ ├─────────────────────────────────────────────────────────────────────────┤ │ ┌────────────────┐ ┌─────────────────┐ ┌──────────────────────────┐ │ │ │ UI Layer │ │ WASM Prover │ │ Local Storage │ │ │ │ (Vanilla JS) │ │ (Rust→WASM) │ │ (IndexedDB) │ │ │ ├────────────────┤ ├─────────────────┤ ├──────────────────────────┤ │ │ │ • Registration │ │ • Blake3 Hash │ │ • Full Merkle Tree │ │ │ │ • Login Form │ │ • BIP-39 Derive │ │ • Device Trees │ │ │ │ • Session UI │ │ • Halo2 Prover │ │ • WebAuthn Credentials │ │ │ │ • Tree Sync │ │ • Merkle Proof │ │ • Tree Version Cache │ │ │ └────────────────┘ │ • Ring Sigs │ └──────────────────────────┘ │ │ └─────────────────┘ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ Hardware Security (WebAuthn Level 2) │ │ │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ • TPM 2.0 / Secure Enclave • FIDO2 Authenticator │ │ │ │ • Device Private Key (ECDSA) • Biometric/Touch Required │ │ │ └──────────────────────────────────────────────────────────────────┘ │ └────────────────────────────────┬────────────────────────────────────────┘ │ HTTPS/TLS 1.3 │ (Encrypted Channel) ▼ ┌──────────────────────────────────────────────────────────────────────────┐ │ LEGION SERVER (Rust/Axum) │ ├──────────────────────────────────────────────────────────────────────────┤ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ API Layer (Axum) │ │ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ POST /api/register-blind │ Blind registration │ │ │ │ GET /api/download-tree │ Download full Merkle tree │ │ │ │ POST /api/verify-anonymous-proof │ Verify ZK proof │ │ │ │ POST /api/verify-session │ Session validation │ │ │ │ POST /api/webauthn/* │ WebAuthn endpoints │ │ │ │ GET /health │ Health check │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ Business Logic Layer │ │ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ • Blind Registration │ • Tree Synchronization │ │ │ │ • ZK Proof Verifier │ • Nullifier Tracker (replay) │ │ │ │ • Session Manager │ • Linkability Tag Validator │ │ │ │ • WebAuthn Service │ • Timestamp Validator (±10min) │ │ │ │ • Device Revocation │ • Rate Limiter (5/hour) │ │ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ Cryptographic Layer │ │ │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ • Halo2 Verifier (PLONK) │ • Poseidon Hash (ZK-friendly) │ │ │ │ • Blake3 (credential) │ • BIP-39 (recovery phrase) │ │ │ │ • Merkle Tree (2^20) │ • Device Trees (2^10 per user) │ │ │ │ • Ring Signature Verify │ • WebAuthn Signature Verify │ │ │ └─────────────────────────────────────────────────────────────────┘ │ └────────────────────────┬──────────────────────┬──────────────────────────┘ │ │ ▼ ▼ ┌────────────────────────┐ ┌───────────────────────────┐ │ Redis (In-Memory) │ │ RocksDB (Persistent) │ ├────────────────────────┤ ├───────────────────────────┤ │ • Session Tokens │ │ • Merkle Tree Leaves │ │ • Linkability Tags │ │ • Device Trees │ │ • Spent Nullifiers │ │ • Nullifier History │ │ • Rate Limit Counters │ │ • WebAuthn Credentials │ │ TTL: 1 hour │ │ • Revoked Devices │ └────────────────────────┘ └───────────────────────────┘

    root@kitploit:~
    ### Flujo de autenticación (simplificado)```
    ┌─────────────┐                                                ┌──────────────┐
    │   Client    │                                                │    Server    │
    │  (Browser)  │                                                │  (Verifier)  │
    └──────┬──────┘                                                └──────┬───────┘
           │                                                              │
           │ 1. Generate 24-word recovery phrase (BIP-39)                 │
           │    → 256-bit entropy (like MetaMask)                         │
           │    → User writes down on paper                               │
           │                                                              │
           │ 2. Derive account_id from phrase (Blake3)                    │
           │    account_id = Blake3("LEGION_ACCOUNT_V2" || bip39_seed)    │
           │    → Deterministic, no server interaction                    │
           │                                                              │
           │ 3. Hash account_id for tree leaf (Poseidon)                  │
           │    credential_hash = Poseidon(account_id)                    │
           │                                                              │
           │ 4. Blind registration (TRUE zero-knowledge)             ────►│
           │    → Sends ONLY credential_hash (no phrase/identity)         │
           │    → Server adds to tree, returns tree_index                 │
           │                                                         ◄────│ {tree_index: 114}
           │                                                              │
           │ 5. Download full Merkle tree (one-time sync)            ────►│
           │    → Client stores entire tree in IndexedDB                  │
           │    → Enables TRUE zero-knowledge (no server queries)         │
           │                                                         ◄────│ {tree_data: [all leaves],
           │                                                              │  merkle_root, version}
           │                                                              │
           │ 6. Generate WebAuthn key (TPM/Secure Enclave)                │
           │    → Fingerprint prompt creates hardware-bound key           │
           │    → device_pubkey (ECDSA P-256, non-exportable)             │
           │    → Stored in TPM 2.0 / Secure Enclave                      │
           │                                                              │
           │ 7. Register device in device tree                       ────►│
           │    → device_commitment = Blake3(credential_id)               │
           │    → Server converts to valid field element if needed        │
           │    → Server adds to user's device tree (1 of 1024 slots)     │
           │                                                         ◄────│ {device_position: 0,
           │                                                              │  device_tree_root}
           │                                                              │
           │ 8. LOGIN: Touch fingerprint to authenticate                  │
           │    → WebAuthn verifies hardware-bound key                    │
           │    → Decrypts recovery phrase from local storage             │
           │    → Re-derives account_id from phrase                       │
           │                                                              │
           │ 9. Fetch device Merkle proof                            ────►│
           │    → Sends account_id (derived from phrase)                  │
           │    → Server returns device tree path                         │
           │                                                         ◄────│ {device_path: [siblings],
           │                                                              │  device_root}
           │                                                              │
           │ 10. Compute user Merkle proof CLIENT-SIDE                    │
           │    → Uses local tree from IndexedDB                          │
           │    → Computes path for tree_index                            │
           │    → Server NEVER learns which user!                         │
           │                                                              │
           │ 11. Compute nullifier (replay protection)                    │
           │    nullifier = Poseidon(account_id || challenge)             │
           │    → ONE-TIME USE: Different every login                     │
           │    → Prevents proof replay attacks                           │
           │                                                              │
           │ 12. Compute linkability tag (session binding)                │
           │    linkability_tag = Blake3(device_pubkey || nullifier)      │
           │    ⚠️  Binds session to specific device+user                 │        
           │                                                              │
           │ 13. Generate ZK proof (Halo2 PLONK, ~2min for k=14)          │
           │    Proves in zero-knowledge:                                 │
           │    ✓ User exists in Merkle tree (1 of 2^20)                  │
           │    ✓ Device exists in device tree (1 of 2^10)                │
           │    ✓ account_id hashes to credential_hash                    │
           │    ✓ Nullifier computed correctly                            │
           │    ✓ Timestamp is fresh                                      │
           │    WITHOUT revealing which user or device                    │
           │                                                              │
           │ 14. Submit proof                                        ────►│
           │    {proof, public_inputs, linkability_tag, k=14}             │
           │                                                              │ • Check device not revoked
           │                                                              │ • Verify timestamp (±10min)
           │                                                              │ • Rate limit check (5/hour)
           │                                                              │ • Check nullifier (replay?)
           │                                                              │ • Verify ZK proof (~115s)
           │                                                              │ • Mark nullifier as used
           │                                                              │
           │                                                         ◄────│ {session_token, expires_at}
           │                                                              │
           │ 15. Verify session (every request)                      ────►│
           │    {session_token, linkability_tag}                          │
           │                                                              │ • Lookup in Redis
           │                                                              │ • Verify linkability_tag
           │                                                              │   (prevents session theft)
           │                                                              │ • Check not spent
           │                                                         ◄────│ {valid: true}
           │                                                              │
    

    🔍 ¿Quieres más detalles? Consulta ARCHITECTURE_FLOW.md para:

    • Operaciones criptográficas paso a paso
    • Detalles de las restricciones del circuito
    • Explicaciones de las propiedades de seguridad
    • Mecanismos de resistencia a ataques

    Inmersión Profunda en la Seguridad de la Sesión```

    ┌─────────────────────────────────────────────────────────────────────────┐ │ SESSION SECURITY MECHANISMS │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 1. LINKABILITY TAG (Zero-Knowledge Device Binding) │ │ ═══════════════════════════════════════════════════════ │ │ │ │ linkability_tag = Blake3(device_pubkey || nullifier) │ │ │ │ • Computed client-side using hardware-bound device key │ │ • Sent with every session validation request │ │ • Server verifies: stored_tag == provided_tag │ │ │ │ ✅ PREVENTS: Session token theft/replay on different device │ │ ✅ ENSURES: Same user + same device for entire session │ │ ✅ MAINTAINS: Zero-knowledge (server doesn't learn identity) │ │ │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ 2. SESSION TOKEN (Cryptographic Binding) │ │ ═══════════════════════════════════════════════════════ │ │ │ │ session_token = Poseidon(nullifier || timestamp || linkability_tag) │ │ │ │ • Generated server-side after proof verification │ │ • Stored in Redis with linkability_tag as value │ │ • Cannot be forged without knowing nullifier │ │ │ │ ✅ PREVENTS: Token forgery │ │ ✅ ENSURES: Cryptographic binding to proof │ │ │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ 3. NULLIFIER (Replay Protection) │ │ ═══════════════════════════════════════════════════════ │ │ │ │ nullifier = Poseidon(credential_hash || challenge) │ │ │ │ • Unique per authentication attempt │ │ • Tracked in RocksDB (permanent) and Redis (cache) │ │ • Server rejects if nullifier seen before │ │ │ │ ✅ PREVENTS: Proof replay attacks │ │ ✅ ENSURES: One-time use per challenge │ │ │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ 4. TIMESTAMP VALIDATION (Time-Bound Security) │ │ ═══════════════════════════════════════════════════════ │ │ │ │ • Proof includes timestamp (Unix epoch) │ │ • Server validates: |proof_time - server_time| < 5 minutes │ │ • Session TTL: 1 hour (sliding window) │ │ │ │ ✅ PREVENTS: Old proof replay │ │ ✅ ENSURES: Fresh authentication │ │ │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ 5. CHALLENGE-RESPONSE (Freshness Guarantee) │ │ ═══════════════════════════════════════════════════════ │ │ │ │ • Server generates random 32-byte challenge │ │ • Stored in Redis with 5-minute TTL │ │ • Client must include in proof │ │ • Server verifies challenge matches and deletes │ │ │ │ ✅ PREVENTS: Pre-computed proof attacks │ │ ✅ ENSURES: Proof generated for this specific session │ │ │ └─────────────────────────────────────────────────────────────────────────┘

    root@kitploit:~
    ## 🔐 Propiedades de Conocimiento Cero
    
    ### Lo que sabe el servidor
    - ✅ Alguien en el conjunto de anonimato autenticado
    - ✅ La prueba es criptográficamente válida
    - ✅ Mismo usuario+dispositivo mediante etiqueta de vinculabilidad
    - ✅ Estado del límite de velocidad (intentos restantes)
    - ✅ Estado de revocación del dispositivo
    - ✅ Número total de usuarios registrados
    - ✅ Raíz del árbol de Merkle (pública)
    
    ### Lo que el servidor NO puede saber
    - ❌ Qué usuario específico (1 de 1M)
    - ❌ Qué dispositivo específico (1 de 1K por usuario)
    - ❌ Frase de recuperación (semilla BIP-39)
    - ❌ account_id (derivado de la frase)
    - ❌ Clave privada del dispositivo (en TPM/Enclave Seguro)
    - ❌ Qué hoja del árbol pertenece a qué usuario
    - ❌ Ruta Merkle del usuario (calculada del lado del cliente)
    - ❌ Posición tree_index del usuario
    
    ## 📦 Despliegue
    
    Consulte [DEPLOYMENT.md](https://github.com/deadends/legion/blob/passwordless-v1.3/docs/DEPLOYMENT.md) para una guía detallada de despliegue en producción.
    
    ### Despliegue rápido con Docker```bash
    # Production build
    docker-compose -f deployment/docker-compose.yml up -d
    
    # Check logs
    docker-compose -f deployment/docker-compose.yml logs -f legion-server
    
    # Check health
    curl http://localhost/health
    

    Variables de Entorno```env

    RUST_LOG=info LEGION_DATA_PATH=/var/lib/legion/data REDIS_URL=redis://127.0.0.1:6379

    root@kitploit:~
    ## 🧪 Pruebas```bash
    # Run all tests
    cargo test --workspace
    
    # Run with Redis features
    cargo test --workspace --features redis
    
    # Benchmark
    cargo bench
    

    📚 Documentación

    • Flujo de Arquitectura - Flujo de autenticación detallado
    • Correcciones de Seguridad - Mejoras de seguridad v1.1.0
    • Guía de Despliegue - Despliegue en producción
    • Política de Seguridad - Garantías de seguridad y reportes
    • Contribuir - Pautas de contribución

    🛠️ Stack Tecnológico

    • Pruebas ZK: Halo2 (PLONK) - Configuración transparente, sin ceremonia de confianza
    • Curvas: Pasta (Pallas/Vesta) - Ciclo de curvas para recursión
    • Hash: Blake3 (derivación de credenciales), Poseidon (amigable con ZK)
    • Derivación de Claves: BIP-39 (mnemónico de 24 palabras)
    • Hardware: WebAuthn Nivel 2 (TPM 2.0, Enclave Seguro)
    • Backend: Rust, Axum, Redis (sesiones), RocksDB (persistencia)
    • Frontend: Rust→WASM (probador), Vanilla JS (IU), IndexedDB (almacenamiento)
    • Despliegue: Docker, Nginx, systemd

    🤝 Contribuciones

    ¡Las contribuciones son bienvenidas! Lea primero CONTRIBUTING.md.

    1. Haga un fork del repositorio
    2. Cree una rama de funcionalidad (git checkout -b feature/amazing)
    3. Realice los cambios y haga commit (git commit -m 'Add amazing feature')
    4. Suba a la rama (git push origin feature/amazing)
    5. Abra un Pull Request

    🔒 Seguridad

    ¿Encontró un problema de seguridad? Consulte SECURITY.md para divulgación responsable.

    NO abra issues públicos para vulnerabilidades.

    📄 Licencia

    Licencia MIT - consulte el archivo LICENSE para más detalles.

    🔄 Registro de Cambios

    v1.3.0 - Autenticación sin Contraseña (2024)

    Cambios Principales:

    • ✅ Autenticación sin contraseña - Frase de recuperación BIP-39 + huella dactilar
    • ✅ Circuito de campo único - account_id derivado de la semilla BIP-39
    • ✅ Firmas de anillo de dispositivo - 1-de-1024 anonimato de dispositivo por usuario
    • ✅ Soporte para múltiples dispositivos - Usar la misma cuenta en 2 dispositivos
    • ✅ Claves vinculadas al hardware - Integración con WebAuthn TPM/Enclave Seguro
    • ✅ Manejo de elemento de campo Blake3 - Conversión automática para compromisos de dispositivo

    Arquitectura:

    • 🏗️ Sin nombre de usuario/contraseña - solo frase de recuperación + huella dactilar
    • 🏗️ Derivación de account_id del lado del cliente (Blake3 + BIP-39)
    • 🏗️ Árboles de dispositivo almacenados en el servidor (aislamiento por usuario)
    • 🏗️ Verificación dual de árbol Merkle (árbol de usuario + árbol de dispositivo)
    • 🏗️ Conversión robusta de elemento de campo (maneja salidas Blake3 >= módulo del campo)

    v1.2.0 - Arquitectura de Prueba del Lado del Cliente (2024)

    Cambios Principales:

    • ✅ Almacenamiento del árbol Merkle del lado del cliente (IndexedDB) - VERDADERO conocimiento cero
    • ✅ Registro ciego - El servidor nunca ve las credenciales
    • ✅ Generación local de pruebas - Toda la criptografía en WASM
    • ✅ Sincronización de árboles - Descargar el árbol completo una vez, calcular rutas localmente
    • ✅ Nullificadores gastados - Sesiones de un solo uso evitan acceso concurrente

    v1.1.0 - Endurecimiento de Seguridad (2024)

    Añadido:

    • ✅ Límite de tasa (5 intentos/hora por credencial)
    • ✅ API de revocación de dispositivos y su aplicación
    • ✅ Etiquetas de vinculabilidad para prevención de robo de sesiones

    Correcciones de Seguridad:

    • 🔒 Corregida la fuga de identidad en solicitudes de desafío
    • 🔒 Prevenidos ataques de fuerza bruta con límite de tasa
    • 🔒 Habilitada la mitigación de dispositivos robados mediante revocación

    🙏 Agradecimientos

    • Halo2 - Sistema de prueba ZK
    • WebAuthn - Autenticación por hardware
    • Blake3 - Hashing rápido
    • BIP-39 - Frases de recuperación mnemónicas

    📞 Contacto

    • GitHub: @deadends
    • Correo electrónico: [email protected]
    • Sitio web: https://nantha.dev

    Construido con ❤️ por la privacidad y la seguridad

    Descargar herramienta