Robo masivo de Bitcoin por fallo de entropía en Coldcard expone semillas BIP39

Autor: Publicada 5 min de lectura 171 lecturas

Las imágenes de este artículo han sido generadas con inteligencia artificial. Cómo publicamos

El 30 de julio un atacante vació 1.196 direcciones de Bitcoin en 41 minutos y se llevó 1.082,65 BTC —aproximadamente 70,2 millones de dólares según el valor en ese momento— tras explotar una debilidad en la generación de semillas de Coldcard, el monedero hardware de uso exclusivo para Bitcoin diseñado por Coinkite. La investigación pública que mapea la operación y rastrea la causa técnica señala que no fue una fuga por ataque físico directo sino una falla de integración de firmware aparecida en marzo de 2021 que, en ciertos builds, hizo que la generación de la semilla se apoyara en un generador determinista de software en lugar del generador de números aleatorios del chip STM32.

En términos concretos, la cadena de errores incluye una configuración de producción que deshabilitaba la macro de MicroPython para el RNG, la comprobación en la librería libngu de la mera existencia de esa macro en vez de su activación efectiva, y la inicialización del pseudorandom con el identificador único del chip y registros de temporizador sin recoger entropía fresca. El resultado: semillas BIP‑39 de 12 palabras con entropías efectivas muy por debajo de los 128 bits esperados, estimadas por Coinkite en torno a 40 bits en algunos modelos Mk3 y cerca de 72 bits en otros modelos Mk4/Mk5/Q, lo que reduce drásticamente el coste práctico de generar candidatos a semillas y comprobar direcciones en la cadena pública.

Robo masivo de Bitcoin por fallo de entropía en Coldcard expone semillas BIP39
Imagen generada con IA.

Es importante subrayar que la exposición depende exclusivamente de la versión de firmware que se usó cuando se creó la semilla, no de la versión que el usuario instale después. Coinkite publicó parches de emergencia y los usuarios deben instalarlos, pero instalar el parche no corrige una semilla ya generada con el firmware vulnerable. La recomendación oficial es generar una semilla nueva con firmware parcheado y transferir los fondos; restaurar la semilla antigua en el firmware corregido o en otro monedero reproduce la debilidad.

Desde la perspectiva del atacante, esta falla es peligrosa porque permite un enfoque offline y dirigido: si un adversario puede acotar o conocer datos como el UID del dispositivo, el estado del temporizador al arrancar o la historia de llamadas al RNG, puede reproducir flujos candidatos y derivar palabras para comprobar si alguna coincide con direcciones en la cadena pública. La investigación pública no ha presentado aún una reconstrucción confirmada de la semilla de alguna de las direcciones saqueadas, y el patrón de «barrido» observado por algunos equipos (transacciones sin cambio con tarifa de ≈30 sat/vB) sirve para identificar al operador que movió monedas, no para demostrar la técnica de robo per se.

Para cualquier poseedor de Coldcard la prioridad práctica es simple y urgente: comprobar si la semilla fue creada en una versión afectada y, en caso afirmativo, migrar. Coinkite colocó en advertencia las series y versiones vulnerables (por ejemplo Mk3 en ciertos parches 4.0.0–4.1.9, fijadas en 4.2.0; Mk4/Mk5 antes de 5.6.0; Q antes de 1.5.0Q, y builds «edge» anteriores a índices concretos). Si no puedes verificar con certeza que la semilla nació en firmware seguro, genera una semilla nueva con firmware actualizado y mueve los fondos a ella. No restaures ni exportes la semilla antigua a otro dispositivo y no des por segura una semilla simplemente porque ahora el dispositivo tenga la última versión instalada.

Hay matices clave para usuarios avanzados: si la semilla se creó usando al menos 50 tiradas privadas e independientes de un dado de seis caras (la recomendación de Coinkite para aportar entropía física) o a través de una fuente externa de alta calidad, la semilla puede no estar en riesgo por esta falla concreta; en caso de duda, migrar sigue siendo la opción más segura. Un passphrase BIP‑39 fuerte añade una capa que la sola lista de palabras no consigue saltar, pero Coinkite continúa recomendando reemplazar la semilla aun cuando se use passphrase. En setups multisig la exposición sólo existe si todos los firmantes comparten semillas generadas vulnerablemente; multisig con firmantes heterogéneos sigue siendo una mitigación sólida.

Robo masivo de Bitcoin por fallo de entropía en Coldcard expone semillas BIP39
Imagen generada con IA.

Las implicaciones operativas para la industria son amplias. Los custodios, exchanges y gestores de fondos deben comprobar procedimientos de generación de claves en volumen y auditar que las cadenas de herramientas y las librerías de terceros usen correctamente el RNG del hardware. La cadena de confianza en una wallet hardware no es solamente el dispositivo físico sino también la integración del firmware, las macros de compilación, y el tratamiento de wrappers que abstraen el RNG. Auditorías de firmware, pruebas de entropía y uso de mecanismos independientes (por ejemplo generación de semilla con dados físicos) deberían ser parte del playbook para sistemas de alto valor.

Para usuarios finales y administradores recomiendo verificar la versión del dispositivo y la fecha de creación de la semilla, instalar el firmware de emergencia proporcionado por el fabricante, generar una semilla nueva en ese firmware y transferir todos los fondos, comprobar no restaurar la semilla antigua en ningún entorno, usar passphrases fuertes como defensa adicional y, donde sea posible, desplegar firmas múltiples con proveedores distintos para minimizar riesgo de fallo común. También es buena práctica monitorizar direcciones propias y listas de transacciones con patrones inusuales (como las mencionadas transacciones sin cambio) y notificar a proveedores si se detecta actividad sospechosa.

Este incidente recuerda que la seguridad cripto depende tanto de la robustez criptográfica como de la ingeniería del software. Los usuarios de hardware wallets deben considerar no sólo la reputación del fabricante sino los detalles de implementación del RNG y las prácticas de construcción del firmware. Para leer documentación técnica sobre el estándar de semillas BIP‑39 y comprender por qué la entropía importa, puede consultarse la especificación oficial en GitHub: BIP‑39 (especificación). Para información y avisos del fabricante, visite la web de Coinkite/Coldcard: Coinkite / Coldcard. Si administras fondos significativos, contacta al soporte del fabricante y considera asesoría profesional para migraciones seguras.

Cobertura

Relacionadas

Mas noticias del mismo tema.