{"id":14151,"date":"2026-08-03T09:20:04","date_gmt":"2026-08-03T12:20:04","guid":{"rendered":"http:\/\/laf5.publisher.highstack.com.ar\/?p=14151"},"modified":"2026-08-03T09:20:04","modified_gmt":"2026-08-03T12:20:04","slug":"coldcard-mantuvo-las-claves-fuera-de-internet-pero-las-genero-de-forma-demasiado-predecible","status":"publish","type":"post","link":"https:\/\/laf5.publisher.highstack.com.ar\/?p=14151","title":{"rendered":"ColdCard mantuvo las claves fuera de internet, pero las gener\u00f3 de forma demasiado predecible"},"content":{"rendered":"<div>\n<p class=\"isSelectedEnd\">Los monederos f\u00edsicos son considerados una de las formas m\u00e1s seguras de guardar criptomonedas porque mantienen las claves privadas fuera de internet. Sin embargo, ese aislamiento sirve de poco cuando la clave fue creada mediante un proceso predecible.<\/p>\n<p class=\"isSelectedEnd\">Eso es lo que ocurri\u00f3 con determinados dispositivos ColdCard. Un error de integraci\u00f3n en su firmware hizo que la generaci\u00f3n de semillas utilizara un sistema pseudoaleatorio de MicroPython en lugar del generador f\u00edsico de n\u00fameros aleatorios previsto por el fabricante.<\/p>\n<p class=\"isSelectedEnd\">El resultado fue una reducci\u00f3n cr\u00edtica de la incertidumbre que protege las claves. Los atacantes no necesitaron robar los dispositivos, infectarlos ni conocer sus frases de recuperaci\u00f3n: pudieron calcular posibles semillas desde fuera y comprobar cu\u00e1les correspond\u00edan a direcciones con fondos.<\/p>\n<h2>Cerca de 89 millones de d\u00f3lares en tres oleadas<\/h2>\n<p class=\"isSelectedEnd\">Hasta el 2 de agosto, investigadores hab\u00edan relacionado tres oleadas de transferencias con el fallo. En conjunto, se hab\u00edan movido unos 1.367 bitcoin, valorados entonces en cerca de 89 millones de d\u00f3lares, desde 4.585 direcciones. La primera operaci\u00f3n retir\u00f3 aproximadamente 1.083 bitcoin de 1.196 direcciones en 41 minutos.<\/p>\n<p class=\"isSelectedEnd\">No est\u00e1 claro que todas las oleadas fueran realizadas por la misma persona. Galaxy Research considera que cada grupo de transferencias muestra la actuaci\u00f3n de un operador coordinado, pero la cadena de bloques no permite demostrar que el responsable fuera el mismo en los tres casos.<\/p>\n<p class=\"isSelectedEnd\">El 3 de agosto apareci\u00f3 una posible cuarta oleada. El patr\u00f3n observado podr\u00eda elevar el total hasta unos 1.816 bitcoin procedentes de m\u00e1s de 5.200 direcciones, aunque esa estimaci\u00f3n se public\u00f3 mientras varias transacciones todav\u00eda estaban pendientes y se basaba en patrones detectados en la red, no en denuncias confirmadas de todas las v\u00edctimas.<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"es\" dir=\"ltr\">\u26a0\ufe0fALERTA DE SEGURIDAD $BTC<\/p>\n<p>Coldcard sufri\u00f3 un grave fallo de firmware (desde 2021) que permiti\u00f3 drenar entre 594 y +1.000 $BTC (+70 millones USD) de cientos de billeteras sin tocar los dispositivos.<\/p>\n<p>El bug afectaba la generaci\u00f3n de semillas (no eran realmente aleatorias). <a href=\"https:\/\/t.co\/4dTWxSQjN3\">pic.twitter.com\/4dTWxSQjN3<\/a><\/p>\n<p>\u2014 Juliet \ud83d\udc3a (@Trader_Juliet) August 2, 2026<\/p>\n<\/blockquote>\n<h2>El error estaba en el origen de las claves<\/h2>\n<p class=\"isSelectedEnd\">Un monedero genera primero una frase semilla, normalmente formada por 12 o 24 palabras. De ella derivan las claves privadas y las direcciones utilizadas para recibir bitcoin.<\/p>\n<p class=\"isSelectedEnd\">En condiciones normales, la cantidad de combinaciones posibles es tan grande que adivinar una semilla mediante fuerza bruta resulta inviable.<\/p>\n<p class=\"isSelectedEnd\">El problema apareci\u00f3 en marzo de 2021, cuando ColdCard traslad\u00f3 algunas operaciones criptogr\u00e1ficas a una biblioteca llamada libNgU. La generaci\u00f3n de semillas pas\u00f3 a utilizar ngu.random.bytes, pero esa funci\u00f3n termin\u00f3 conect\u00e1ndose con un generador de software determinista en lugar de hacerlo con el generador f\u00edsico del dispositivo.<\/p>\n<p class=\"isSelectedEnd\">Ese sistema se inicializaba con informaci\u00f3n como el identificador del microcontrolador y registros asociados al reloj. Son valores que pueden parecer variables, pero no constituyen por s\u00ed solos una fuente criptogr\u00e1fica suficientemente impredecible.<\/p>\n<p class=\"isSelectedEnd\">Coinkite estima que los modelos Mk2 y Mk3 afectados ten\u00edan un espacio efectivo de b\u00fasqueda cercano a 40 bits. En Mk4, Q y Mk5 se a\u00f1ad\u00eda informaci\u00f3n procedente de elementos seguros, elevando su estimaci\u00f3n hasta unos 72 bits.<\/p>\n<p class=\"isSelectedEnd\">Block present\u00f3 una interpretaci\u00f3n m\u00e1s severa para los modelos recientes: aunque se introduc\u00eda entrop\u00eda adicional, el proceso reten\u00eda solo cuatro bytes, equivalentes a 32 bits, para modificar el generador. Eso limitar\u00eda a unos 4.300 millones el n\u00famero de corrientes distinguibles una vez conocidos o acotados otros estados internos.<\/p>\n<p class=\"isSelectedEnd\">Esto no significa que cualquier persona pudiera probar autom\u00e1ticamente todas las semillas en unos minutos. El coste pr\u00e1ctico depend\u00eda tambi\u00e9n del identificador del dispositivo, el momento de arranque, las llamadas anteriores al generador y otros datos. Block aclar\u00f3 que no hab\u00eda realizado una prueba completa capaz de demostrar el tiempo necesario para recuperar cada monedero.<\/p>\n<h2>Actualizar el dispositivo no repara la semilla<\/h2>\n<p class=\"isSelectedEnd\">Coinkite public\u00f3 firmware de emergencia para todos los modelos afectados. La actualizaci\u00f3n corrige la generaci\u00f3n de nuevas semillas, pero no a\u00f1ade aleatoriedad a una frase creada anteriormente.<\/p>\n<p class=\"isSelectedEnd\">Los usuarios afectados deben instalar la versi\u00f3n corregida, generar una semilla completamente nueva y trasladar los fondos despu\u00e9s de verificar una direcci\u00f3n de recepci\u00f3n. Una contrase\u00f1a BIP-39 fuerte o al menos 50 tiradas privadas e independientes de dados utilizadas durante la creaci\u00f3n pueden haber a\u00f1adido una barrera adicional, pero el fabricante recomienda migrar igualmente.<\/p>\n<figure id=\"attachment_2000249393\" aria-describedby=\"caption-attachment-2000249393\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2000249393\" src=\"https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58.jpg\" alt=\"ColdCard mantuvo las claves fuera de internet, pero las gener\u00f3 de forma demasiado predecible\" width=\"1500\" height=\"1000\" srcset=\"https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58.jpg 1500w, https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58-300x200.jpg 300w, https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58-1024x683.jpg 1024w, https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58-768x512.jpg 768w, https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58-672x448.jpg 672w, https:\/\/es.gizmodo.com\/app\/uploads\/2026\/08\/Gizmodo-58-960x640.jpg 960w\" sizes=\"auto, (max-width: 639px) 100vw, (max-width: 1023px) calc(100vw - 2rem), (max-width: 1258px) calc((100vw - 3.68rem) * 2 \/ 3), 800px\"\/><figcaption id=\"caption-attachment-2000249393\" class=\"wp-caption-text\">\u00a9 Yisus Money \u2013 Youtube.<\/figcaption><\/figure>\n<p class=\"isSelectedEnd\">Coinkite tambi\u00e9n detuvo los env\u00edos y destruy\u00f3 el inventario que conservaba con firmware vulnerable. La empresa reconoci\u00f3 que el episodio destruy\u00f3 ahorros y da\u00f1\u00f3 la confianza construida durante a\u00f1os.<\/p>\n<h2>El c\u00f3digo era abierto, pero nadie sigui\u00f3 todo el recorrido<\/h2>\n<p class=\"isSelectedEnd\">El c\u00f3digo de ColdCard estaba disponible p\u00fablicamente. Las revisiones hab\u00edan comprobado que el generador f\u00edsico exist\u00eda dentro del firmware, pero no verificaron de extremo a extremo qu\u00e9 implementaci\u00f3n terminaba utilizando realmente la funci\u00f3n encargada de crear la semilla.<\/p>\n<p class=\"isSelectedEnd\">Coinkite especul\u00f3 con que el atacante pudo encontrar el error utilizando inteligencia artificial para revisar versiones antiguas del c\u00f3digo. No present\u00f3 pruebas que respalden esa posibilidad, por lo que contin\u00faa siendo solo una hip\u00f3tesis del fabricante.<\/p>\n<p>El incidente no demuestra que todos los monederos f\u00edsicos sean inseguros. Demuestra algo m\u00e1s inc\u00f3modo: mantener una clave completamente desconectada no sirve si el azar utilizado para crearla nunca fue suficientemente impredecible.<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>Fuente: Xataka.<\/p>\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los monederos f\u00edsicos son considerados una de las formas m\u00e1s seguras de guardar criptomonedas porque mantienen las claves privadas fuera de internet. Sin embargo, ese aislamiento sirve de poco cuando la clave fue creada mediante un proceso predecible. Eso es lo que ocurri\u00f3 con determinados dispositivos ColdCard. Un error de integraci\u00f3n en su firmware hizo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14152,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-14151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=\/wp\/v2\/posts\/14151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14151"}],"version-history":[{"count":0,"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=\/wp\/v2\/posts\/14151\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=\/wp\/v2\/media\/14152"}],"wp:attachment":[{"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/laf5.publisher.highstack.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}