News

Coldcard rehace cómo una seed obtiene su aleatoriedad

Tras la falla de entropía de julio, el changelog sin publicar de Coinkite recablea la generación de seeds para combinar tres fuentes de hardware, agrega comprobaciones de que el camino aleatorio llega al hardware y vuelve obligatoria la entropía aportada por la persona. Nada de eso repara una seed ya creada.

3 min de lecturaCarteras de hardware
Coldcard rehace cómo una seed obtiene su aleatoriedad

Qué pasó

Entre el 17 y el 19 de agosto de 2026, Coinkite subió al repositorio del firmware de Coldcard un conjunto de cambios que reescriben cómo el dispositivo produce la aleatoriedad detrás de una seed nueva. Están listados en el changelog sin publicar del repositorio, bajo las versiones 5.6.1 (Mk4, Mk5) y 1.5.1Q (Q), ambas fechadas el 20 de agosto de 2026. Vienen después del parche urgente del 31 de julio, que avisó a los propietarios que las seeds generadas con firmware anterior tenían una entropía "críticamente baja": unos 40 bits en Mk3, y hasta apenas unos 72 bits en Mk4, Mk5 y Q, frente a un objetivo declarado de 128. A quienes tenían una Mk3 se les indicó mover los fondos a seeds nuevas.

Qué cambia

Un hardware wallet que genera una seed cumple una sola tarea que importa: producir un número que nadie pueda adivinar. El nuevo changelog trata esa tarea como algo que hay que demostrar, no suponer.

La generación de la seed maestra ahora mezcla entropía fresca de tres fuentes - el generador de hardware del STM32 y los dos secure elements - en lugar de apoyarse en esos elementos solo a través del sembrado durante el arranque, que a su vez ahora usa el digest completo de 256 bits y no un truncamiento a 32 bits. El generador por software de la biblioteca criptográfica de Coinkite pasó del algoritmo Yasmarang a un Hash_DRBG con SHA-256 del NIST SP 800-90A, y las contraseñas de backup, la sal de cifrado y los secretos de 2FA se movieron a él.

Dos agregados hablan directamente de cómo el defecto de julio sobrevivió cinco años. Una autoprueba en el arranque "demuestra que rng_get() entra en el camino de lectura del hardware" y detiene el arranque si no lo hace, y una comprobación en tiempo de compilación verifica que el camino de bytes aleatorios de la biblioteca llegue siquiera a la implementación de hardware. Un generador de números aleatorios que falló en silencio produce una salida idéntica a la de uno que funciona, y por eso el arreglo es una prueba y no una corrección. Las seeds nuevas además exigen ahora entropía aportada por la persona - dados físicos, tiradas de moneda o tecleo cronometrado - sumada a las fuentes de hardware, no en reemplazo de ellas.

Qué no cambia

El firmware nuevo no repara una seed vieja. La entropía queda fijada en el momento en que se generan las palabras, así que una seed débil sigue siendo débil en cualquier versión. Quien tenga un dispositivo afectado enfrenta igual una migración: generar una seed nueva con firmware corregido, respaldarla, probar la restauración, mover las monedas en cadena y actualizar cualquier registro de herencia que apunte al respaldo anterior. Eso es todo el self-custody hecho dos veces, contra reloj, y tiene sus propias formas bien documentadas de salir mal.

Las comprobaciones, además, demuestran un camino, no una calidad. Confirmar que el código llega a un registro de hardware no dice nada sobre si los números que salen de ese registro son buenos. Y quien se ponga a tirar dados confía en que el firmware los mezcle como dice el texto: la cobertura vale lo que valga ese código de mezcla, y desde la pantalla del propio dispositivo no hay forma de verificarlo.

Contexto

El parche del 31 de julio frenó la hemorragia: arregló la generación hacia adelante y avisó que había que mover los fondos. Lo que está en cola ahora es la versión estructural de esa misma respuesta, y llega junto a una larga lista de endurecimientos sin relación en el mismo changelog, buena parte acreditada a investigadores externos, incluido un caso en el que un host USB comprometido podía reescribir una transacción ya preparada después de que la persona la revisara y antes de que el dispositivo la firmara.

Boletín

Bitcoin, sin ruido

Qué ha pasado en Bitcoin, qué cambia de verdad, y las fuentes para que puedas comprobarnos. Un número cada vez, directo a tu correo.

  • Un correo por número, nunca una secuencia automática
  • Sin píxeles de seguimiento y sin compartir direcciones
  • Baja desde cualquier número con un clic

Recibe el próximo número

Un correo por número, sin píxeles de seguimiento, y te puedes dar de baja desde cualquiera de ellos. No compartimos tu dirección. Política de privacidad