Skip to main content

Construido para la confianza

ZeroKeyUSB es un gestor de contraseñas autocontenido y basado en hardware.
Diseñado con un único objetivo: proteger tus credenciales sin conectarse jamás a Internet.
Cada unidad se ensambla, se prueba y se encapsula en resina epoxy de grado industrial para evitar manipulación externa, haciéndolo resistente al agua, al polvo y libre de mantenimiento.

Arquitectura del sistema


Lista de componentes


Por qué estos componentes

🧠 Microcontrolador SAMD21E18A

El procesador ARM Cortex-M0+ equilibra rendimiento, tamaño y eficiencia energética:
  • 256 KB Flash — espacio para firmware, fuentes, 9 layouts de teclado y bitmaps de iconos en PROGMEM.
  • 32 KB SRAM — suficiente para el buffer del display, caché de credenciales y workspace TOTP sin asignación dinámica.
  • USB nativo — el periférico USB Full-Speed por hardware elimina la necesidad de chips puente USB externos.
  • DSU hardware — la Data Scrambling Unit ofrece CRC32 hardware para comprobaciones rápidas de integridad del firmware al arranque.
  • Fuse BOOTPROTBOOTPROT=7 bloquea los primeros 16 KB de Flash, evitando que el código de aplicación modifique el bootloader.

🔐 Elemento seguro ATECC608A

El ATECC608A proporciona cuatro capacidades que el software por sí solo no puede garantizar:
El SKU MAHDA-T se entrega con el comando AES hardware deshabilitado. La rutina de aprovisionamiento del primer arranque lo habilita, configura el slot 8 como contenedor de clave AES, genera la clave con el TRNG del chip y bloquea irreversiblemente las zonas Config y Data.

💾 EEPROM M24C64-WMN6TP

  • 8 KB de almacenamiento no volátil organizados en páginas de 32 bytes.
  • >1 millón de ciclos de escritura por página — décadas de uso normal.
  • Todos los datos de credenciales se cifran con AES-128 CBC antes de escribirse — el bus I²C solo ve ciphertext.
  • Consciente de límites de página: el firmware divide las escrituras que cruzan límites de 32 bytes para evitar el wrap-around de direcciones del M24C64.

🖐️ Controlador táctil TS06

  • IC táctil capacitivo sellado de seis canales (cinco activamente usados).
  • Calibración interna de baseline — no requiere ajuste analógico.
  • Sensibilidad mínima (0x3F) puesta al arranque para evitar disparos falsos a través del encapsulado epoxy.
  • Debounce 80 ms, umbral de pulsación larga 800 ms, lockout de canal 150 ms — todo gestionado en firmware.

💡 OLED SSD1306

  • 128×32 píxeles, blanco sobre negro, alto contraste.
  • Conectado vía I²C en la dirección 0x3C.
  • Refresco de frame completo (~512 bytes por frame) vía librería Adafruit_SSD1306.
  • Excelente visibilidad tanto a la luz del día como en la oscuridad.
  • Protegido tras la ventana sellada de epoxy.

⚡ Conexión USB-C

  • Consumo aproximado de 20 mA — similar a un ratón inalámbrico.
  • Sin batería — totalmente alimentado desde el puerto USB del host.
  • Sin wireless — no hay hardware Wi-Fi, Bluetooth ni NFC en el PCB.
  • Funciona con Windows, macOS, Linux, Android e iPadOS.

Bus I²C

Todos los periféricos comparten un único bus I²C a 100 kHz: SDA y SCL están en PA08 y PA09 respectivamente. Hay resistencias pull-up externas en el PCB.

Diseño físico

  • Encapsulado en resina epoxy — previene corrosión, polvo, humedad y manipulación física.
  • Sin interfaces wireless — elimina por completo las superficies de ataque remoto.
  • Sin tornillos ni juntas externas — el dispositivo no se puede abrir de forma no destructiva.
  • Pads táctiles dorados — duraderos, resistentes a la corrosión y visibles a través de la resina.

Transparencia, no exposición

ZeroKeyUSB es totalmente open source. El firmware y los esquemas de hardware están públicamente disponibles en
GitHub → Depbit-lab/zerokeyusb.
Cualquiera puede verificar exactamente qué código corre en su dispositivo.
Las actualizaciones de firmware requieren acceso físico — vía pogo pins SWD o el bootloader USB con firmware firmado. No existe ningún mecanismo de actualización remota.
ZeroKeyUSB es un producto sellado — abrir o reprogramar el dispositivo invalida la garantía y destruye el encapsulado epoxy.