← Volver a la Bitácora

Cómo NO confiar en tu Hardware Wallet

Cómo NO confiar en tu Hardware Wallet

El 30 de julio de 2026 empezaron a caer las Coldcard. En cuatro oleadas, y sin una sola transacción de exploit en la cadena, los atacantes vaciaron más de 5.200 direcciones y se llevaron 1.816 BTC —unos 116 millones de dólares—, según el recuento de TRM Labs. Ningún aparato fue hackeado, ni accedido remotamente, ni tomado por asalto: el aviso de Coinkite lo dice con esas palabras.

Tres meses después le tocó a Ledger, y por una razón que no se parece en nada. Los aparatos eran genuinos, el firmware era el oficial y el chip estaba intacto: lo que había adentro era un implante escondido debajo de la pantalla, con un módulo celular, transmitiendo las palabras de la semilla mientras el usuario las leía.

Dos ataques, dos lecciones. Uno rompió el número; el otro, la caja. Doce láminas y un manual clandestino para entender las dos mitades de la misma frase: tu hardware wallet no custodia tu llave, custodia la calidad de tu entropía y la de la cadena que la trajo hasta tu casa. Y de todo eso, sólo una parte se puede verificar con tus propias manos.

Dos golpes, dos lecciones

Coldcard: el número. El firmware 4.0.1, de marzo de 2021, traía una guarda de compilación que chequeaba si cierta macro del generador de hardware existía, y no si estaba encendida. Cuando no lo estaba, la generación de la semilla caía en silencio a Yasmarang, el generador pseudoaleatorio que viene con MicroPython, sembrado con datos que no son secretos: el número de serie del chip y los registros del reloj. La fuerza efectiva quedó en unos 40 bits en las Mk2 y Mk3 —en algunos análisis, entre 22 y 32— y en unos 72 en las Mk4, Q y Mk5, por mezcla parcial con el elemento seguro. El diseño pedía 128.

Con 40 bits no hace falta hackear nada: se enumeran las semillas posibles, se derivan sus direcciones y se vigila la blockchain. Cuando aparece un saldo, se vacía. Eso es todo lo que pasó en esas cuatro oleadas, sin tocar una sola víctima, sin regar un satoshi de polvo por el camino.

Dos detalles que importan cuando te toca: actualizar el firmware no arregla una semilla ya generada —hay que crear una nueva con entropía propia y mudar los fondos—, y quien tenía frase de paso BIP39 o suficientes dados propios no estaba en la lista. Coinkite publicó firmware de emergencia (5.6.0+) que ya no deja generar una semilla sin entropía del usuario.

Ledger: la caja. Octubre de 2026, otra capa, otro método. Los atacantes compraron Nano X genuinas, las abrieron, pegaron un implante en el hueco de relleno que queda debajo de la pantalla —un microcontrolador STM32, un módulo LTE con eSIM y una antena— y las devolvieron al circuito, sobre todo a través de revendedores del sudeste asiático. También aparecieron casos por Amazon y en Europa.

El implante no toca el elemento seguro ni el sistema operativo: lee las veinticuatro palabras directamente de la pantalla mientras el aparato las muestra en la configuración inicial, y las manda por red celular. El Genuine Check pasaba sin problemas, porque el chip original seguía ahí y era genuino. Ledger confirmó que no hubo compromiso de su fabricación, de su firmware ni de sus sistemas: es un ataque físico, posterior a la fábrica, contra la distribución. Pérdidas estimadas: entre 90 y 100 millones de dólares en cientos de carteras.

Ninguno de los dos necesitó una vulnerabilidad criptográfica. El primero pidió un bug silencioso de cinco años en una guarda de compilación; el segundo, un cartero cómplice. Y en los dos, la misma certeza incómoda: el air-gap no cubre ninguna de las dos cosas.

El espejismo de la bóveda perfecta

Slide: el gato ninja sonríe junto a una caja fuerte gigante, cuya pared de atrás está rota y abierta

Bitcoin exige que custodíes tu propio dinero, y el hardware wallet resolvió el problema con una metáfora impecable: una bóveda física, aislada de internet, air-gapped, con la llave privada adentro y una pantalla propia para firmar. La metáfora vende sola porque es táctil: metés el aparato, apretás dos botones, salís tranquilo.

La pregunta que la caja fuerte nunca responde es la del cartel: ¿quién fabricó la cerradura y quién guarda la copia de la llave maestra? En el caso Coldcard el fabricante era serio, el firmware era abierto, los usuarios eran sofisticados, y el error igual pasó. El aparato siguió mostrando su pantallita, siguió pidiendo el PIN, siguió siendo un ladrillo indescifrable. Y mientras tanto entregaba llaves de 40 bits con la misma solemnidad que las de 128.

La entropía no se ve. Esa es toda la trampa. Todo lo demás del aparato se puede inspeccionar: la carcasa, el precio, la comunidad, los repos. Lo único que define si tu plata es tuya o es de cualquiera se decide en unos milisegundos de ruido, adentro de un chip, y no aparece en ninguna pantalla.

El único trabajo real del dispositivo

Slide: a la izquierda una PC de escritorio armando una transacción; a la derecha un gánster con anteojos negros estampa un sello gigante que dice FIRMADO

Conviene desarmar el ritual en tres pasos, porque sólo uno de los tres tiene riesgo real:

  • Paso A — cero riesgo: tu computadora arma la transacción. Elegís destinatario, monto, comisión. Si tu computadora está infectada, puede armar otra transacción: eso se arregla mirando la pantalla del aparato antes de firmar.
  • Paso B — riesgo crítico: el aparato firma con la clave privada en su interior, sin tocar internet. Acá pasa lo único que no se puede deshacer.
  • Paso C — cero riesgo: la transacción firmada sale al mundo. Una firma no se filtra: es pública por definición, y con ella ya no hay nada que robar.

Todo el valor del aparato está concentrado en el Paso B, y también toda su superficie de ataque. No hace falta romper el chip: alcanza con que el firmware decida que la llave puede salir —que es exactamente lo que probó la función Recover de Ledger en 2023, cuando quedó demostrado que la frase “la llave nunca sale del chip” es una decisión de diseño y no una ley física.

De ahí sale la primera regla, y es contraintuitiva: el trabajo del aparato no es guardar la llave. Es firmar con ella. Todo lo que hace además de eso es superficie, y todo lo que le agrega “comodidad” es superficie que le regalás a un tercero.

La trampa de la confianza ciega

Slide: el gato ninja sostiene un plano de un chip; piensa en un escudo (la expectativa) y descubre con una lupa una fábrica (la realidad)

Una tabla de dos filas desarma el argumento de venta:

La promesaLa realidad
”Es open source.”El software sí. El silicio no: no hay forma de verificar qué hace realmente el chip (STM32, ESP32, o el elemento seguro con datasheet bajo NDA).
”Viene de fábrica, sellado.”Intervenciones en la cadena de suministro —el implante de Ledger de octubre es exactamente esto—, carteros comprometidos, aparatos falsos y backdoors de fábrica.

El open source es una virtud real y también la parte más fácil de conseguir: los builds reproducibles prueban que el binario coincide con el código, no que el chip que corre ese binario haga lo que el código dice. Y del lado de la cadena de suministro hay historia de sobra. En diciembre de 2023, el paquete @ledgerhq/connect-kit publicado en npm salió con un drainer adentro —el npm de un ex empleado, versiones 1.1.5 a 1.1.7, unas dos horas al aire, unos 600.000 dólares drenados entre dApps y usuarios. No hubo que romper criptografía: hubo que publicar un módulo.

Y hay un riesgo más barato que todos los anteriores: la filtración de 2020 de Ledger, con unos 272.000 domicilios y un millón de correos, alimentó años de phishing, llamadas, extorsiones y asaltos a domicilio de gente que había hecho lo correcto y sólo se había comprado una bóveda. Es la razón de la primera regla del manifiesto: decir en público que tenés un hardware wallet es anunciar que tu casa tiene algo que vale la pena.

El Manifiesto Clandestino

Slide: el gato ninja, viejo y con barba, sostiene una tablilla de piedra con reglas talladas en las montañas

Tres reglas, y conviene leerlas como higiene y no como épica:

  1. Do not say you own a HW. Nunca reveles que tenés uno. Ni en la caja del foro, ni en el grupo, ni con una foto de fondo. La discreción es la única mitigación que no depende de ningún fabricante.
  2. Do not buy a HW. O mejor: no lo compres ciegamente. Comprarlo para que adivine por vos es delegar en un desconocido la única parte que importa.
  3. Do not trust a HW. No confíes en él. Usalo como lo que es: una calculadora aburrida que firma y no llama a nadie.

Y una nota al pie que en octubre dejó de ser teórica: si igual lo comprás, compralo directo al fabricante y abrí el aparato antes de confiarle una semilla. El ataque de Ledger no existiría sin el revendedor.

El enemigo oculto: la entropía

Slide: un robot abre la cabeza y le salen engranajes; al lado, un gato ninja se agarra la cabeza frente a un rollo de papel que imprime 1,2,3,4

Entropía quiere decir, acá, una sola cosa: cuántos números distintos puede haber tirado adentro del aparato el proceso que inventó tu semilla. Cien bits de entropía son 2¹⁰⁰ posibilidades; cuarenta son un billón, que suena enorme y se recorre entero en una tarde. La seguridad de tus fondos no depende de la longitud de la frase que anotaste, depende de cuánta ignorancia quedó en el sistema sobre cuál de esos números te tocó.

El problema es que un microchip es, por naturaleza, lo contrario del azar: es una calculadora que repite la misma cuenta y da siempre el mismo resultado. Para fabricar azar hay que ir a buscarlo afuera, a un fenómeno físico que no se pueda repetir. Los generadores de hardware (TRNG) lo intentan con ruido térmico, jitter de osciladores y otras fuentes analógicas, y después mezclan todo con una función criptográfica. Cuando esa cadena se rompe —un fallback determinista, una semilla del generador temporal de 32 bits, una macro apagada— no falla la criptografía: falla el punto donde el mundo físico tenía que entrar al chip y no entró.

Dos casos con la misma firma lo muestran mejor que cualquier teoría. En 2023, el hallazgo que se publicó como Milk Sad (CVE-2023-39910) mostró que bx seed, de Libbitcoin Explorer 3.x, usaba el generador Mersenne Twister inicializado con 32 bits del reloj del sistema: 4.000 millones de posibilidades —nada— y las carteras afectadas fueron barridas. Y el caso Coldcard de 2026 que abrimos más arriba. Productos distintos, años distintos, mismo pecado: cuando la fuente buena no está, alguien escribió un plan B, y el plan B también era la llave.

Física cuántica vs. el mundo real

Slide: el gato ninja, con traje espacial, sostiene con pinzas una piedra radiactiva que brilla, sobre una mesa con dos dados

La teoría dice que la aleatoriedad verdadera sólo puede venir de un evento físico impredecible. Es un camino que la gente ya recorrió: Alex Waltz construyó un generador de números aleatorios cuántico para semillas de Bitcoin usando desintegración radiactiva —una muestra de americio 241 de un detector de humo—, un tubo Geiger y una Raspberry Pi. Funciona, es hermoso, y es la prueba de que la entropía física es real y verificable.

Ahora la práctica: vos no guardás plutonio en la alacena. Tu hardware wallet tiene un generador analógico chico, barato, con un datasheet de dos páginas, y el fabricante no te muestra los números que salieron ni te deja compararlos con nada. Ahí no hay teoría cuántica: hay confianza, que es lo contrario.

La conclusión no es “hacete un generador nuclear”. Es mucho más modesta y más útil: asumí que el generador interno de tu aparato es débil, y no le pidas que sea el único. La solución no es tecnológica, es analógica: se resuelve con dados.

Paso 1: conviértete en el caos

Slide: el gato ninja lanza decenas de dados al aire, que explotan sobre la mesa con líneas de velocidad

Comprá dados de casino —los de verdad, con aristas afiladas, no los de un juego de mesa— y hacé lo que hace el aparato, pero afuera: lanzá los dados decenas de veces y anotá los resultados exactos. Después hacés que tu aparato o tu computadora usen esa secuencia como fuente de entropía y que la mezclen con la suya, en lugar de dejarlos decidir solos.

Los números, porque acá importan. Nada en el mundo digital usa más de 256 bits, y las 128 bits que pide una frase de 12 palabras ya son inalcanzables: cada tirada de un dado de seis caras aporta log₂(6) ≈ 2,58 bits, así que 50 tiradas son 129 bits —más de lo que usa toda la bóveda— y 200 tiradas son unos 517 bits. El aviso de Coinkite es explícito: las semillas creadas entre marzo de 2021 y julio de 2026 están en riesgo si se generaron sin al menos 50 tiradas de dados independientes y privadas, y una frase de paso BIP39 única y fuerte.

Un poco de honestidad técnica, porque el diablo está en el detalle: un dado puede estar cargado y tu forma de tirarlo puede ser predecible, y por eso ningún protocolo serio usa los dados crudos sino mezclados con una función de hash. Lo que importa no es que los dados sean perfectos. Lo que importa es que nadie más tenga una copia del resultado. El generador de fábrica puede estar comprometido por quien lo fabricó; tus tiradas, no. Eso es todo lo que estás comprando.

Paso 2: el traductor universal (BIP39)

Slide: el gato ninja vuelca una bolsa de números y símbolos en una máquina industrial; sale un pergamino que dice CASA PERRO NINJA

Los humanos no podemos anotar 256 bits sin equivocarnos, así que Bitcoin estandarizó un traductor: BIP39. La secuencia de entropía se parte en bloques de 11 bits, cada bloque indexa una palabra de un diccionario de 2048 (2¹¹), y se le agrega un checksum —4 bits en la frase de 12 palabras, 8 en la de 24— para que el aparato detecte si copiaste mal. De ahí sale la frase semilla que anotás en un papel: veinticuatro palabras que son, literalmente, un número escrito en un idioma de dos mil palabras.

Dos malentendidos que valen plata. El primero: la frase semilla no es la llave. Es la entrada de un derivador (PBKDF2-HMAC-SHA512) que produce la semilla maestra; de ahí —y sólo de ahí— salen todas tus llaves. El segundo: el derivador acepta un ingrediente extra, la frase de paso o “palabra 25”, que no está en tu backup. Si tu entropía es mala, la frase de paso es lo único que te salva; si tu entropía es buena, es lo único que te salva de que te encuentren el papel. Es la capa que casi nadie usa y la que convirtió el desastre Coldcard en un susto para una parte de los afectados y en una pérdida total para el resto.

Y hay una trampa de implementación que conviene nombrar, porque es exactamente el punto del artículo: los dados no dan potencias de dos. Sesenta caras no entran en 2048 de forma exacta, así que el programa que convierte tiradas en palabras tiene que descartar los valores que no entran en el rango —si en vez de descartarlos los toma con un módulo, introduce un sesgo, y ese sesgo es una pista. Tu entropía es tan fuerte como la aritmética del programa que la traduce. Otra razón para usar una herramienta conocida y auditada en vez de la primera que aparezca.

Paso 3: aislamiento total (Modo Paranoico)

Slide: el gato ninja, tapado con una manta y con linterna en la boca, escribe frente a una notebook en un cuarto oscuro; al lado, un hacha clavada en la mesa

El procedimiento no tiene misterio, pero se hace entero o no sirve:

  • Hardware de propósito general: una PC vieja que no uses para nada más. No tu máquina de todos los días, no la del trabajo, no la que tiene la carpeta de Descargas.
  • La herramienta en un USB: bajate el conversor BIP39 de Ian Coleman —un archivo HTML, funciona sin servidor— y verificalo. La copia se usa offline, no abierta desde el navegador con internet.
  • Cortá la conexión: apagá el wifi, desenchufá el cable, y recién ahí abrí la herramienta en la PC vieja, con tu lista de tiradas en papel.
  • Anotá las palabras en absoluto secreto, a mano, en papel —o mejor, en una chapa de acero estampada, que no se moja ni se quema. Y después: conectá la máquina sólo para apagarla y borrarla, no para “chequear el saldo”.

El Paso 3 es el que casi todo el mundo saltea, y es el que convierte a los otros dos en teatro. Si generás la semilla con tus dados en la máquina de todos los días, con el wifi prendido y un navegador lleno de extensiones, no mejoraste nada: le regalaste a un malware exactamente lo que el fabricante no tenía.

El espectro de la custodia

Slide: una balanza: de un lado un yunque que dice Confianza Ciega en un Chip; del otro, el gato ninja sosteniendo un dado

Puestos los dos extremos, la elección se vuelve clara:

Nivel Novato. El aparato genera la semilla. Confiás en su firmware, en su generador de hardware, en su elemento seguro y en la cadena de suministro que lo trajo hasta tu casa. Cuando algo de esa cadena falla —el bug de Coldcard, el correo interceptado, el firmware que un día decide exportar— perdés todo y te enterás por Twitter. No es una estupidez: es el nivel que usan casi todos, incluidos muchos que se creen expertos.

Nivel Ninja. Vos creás la semilla físicamente. El aparato es una calculadora tonta que firma: no le pedís que invente nada, sólo que multiplique lo que ya inventaste vos. Confiás en el firmware que mezcla tu entropía con la suya —ese residuo existe y hay que saber que está— pero ya no le confiás el origen de tu llave a un chip que no podés ver.

El espectro es eso: no hay un punto de confianza cero, hay un punto de confianza mínimo y visible. Entre “confío en todo lo que hizo un desconocido por mí” y “confío en que este programa mezcle lo que yo hice, y puedo revisar el código que lo hace”, la distancia es toda tu seguridad.

El Zen de la autocustodia

Slide: el gato ninja medita en el aire rodeado de doce palabras flotando en un halo, mientras un robot abandonado mira desde un escabel

Verificá todo lo posible. Sé implacable con la generación de tus claves, que es el único momento del proceso donde todavía podés hacer algo. Después, aceptá el resto: ninguna herramienta te va a dar cero confianza, y quien te prometa una bóveda infranqueable te está vendiendo una caja de plástico.

La verdadera seguridad no se compra empaquetada: se construye asumiendo la responsabilidad de tu propia entropía. Es el mismo movimiento epistémico que venimos contando en esta serie, siempre del mismo lado: no hace falta tenerlo todo para saber que está bien. PeerDAS no descarga el bloque entero: muestrea unas celdas y sabe. La tela de confianza de Ğ1 no pide la verdad completa de nadie: pide cinco firmas que vencen y se renuevan. Y acá, vos no necesitás un generador de números aleatorios perfecto: necesitás que el número que inventaste no lo haya inventado nadie más.

Dos meses y medio después del desastre, el propio fabricante sigue recomendando lo mismo que recomendaba antes: 50 tiradas de dados y una frase de paso fuerte. Los dados son un chiste de mesa de café, y son el único componente del sistema que ni el fabricante, ni el cartero, ni el firmware, ni un atacante con tu historial completo puede predecir.

El aparato te da la firma. El azar lo tenés que traer vos.