¿Cuál es el modelo de amenaza de un Bitcoin HSM / Hardware Wallet?

Hay muchos dispositivos disponibles que pretenden permitir el almacenamiento seguro de Bitcoin en entornos adversos, como computadoras comprometidas o dispositivos host potencialmente no confiables, como teléfonos.

¿Qué tan seguros son estos dispositivos para almacenar Bitcoin y cuál es el modelo de amenaza contra el que protegen y al que son vulnerables? ¿En qué medida las prácticas comúnmente declaradas sobre el uso de estos dispositivos mejoran la seguridad de almacenar Bitcoin usándolos?

Respuestas (1)


¿Cuál es el modelo de amenaza contra el que protegen y al que son vulnerables?

Las billeteras de hardware son dispositivos de seguridad con diferentes hardware y características, pero el concepto general es en gran medida idéntico. Un dispositivo confiable tiene claves criptográficas, permite ver información en una pantalla dedicada y acepta entradas seguras a través de su propia interfaz (botones o una pantalla táctil).

ingrese la descripción de la imagen aquí

En el modelo de seguridad de la billetera de hardware, un usuario interactúa con su dispositivo host que no es de confianza para construir una transacción que paga un monto a una dirección, luego la transacción se envía a la billetera de hardware para el ensamblaje de la transacción, incluidas las firmas criptográficas. Se espera que el usuario verifique la información que se muestra (es decir, el monto) y reconozca la transacción en su dispositivo. Cada transacción necesita un reconocimiento explícito en el dispositivo de hardware y el host no puede realizar transacciones sin esa aprobación.

Esto es distinto al modelo de billetera de software tradicional donde un usuario interactúa con un host que no es de confianza, que al ingresar la clave de cifrado para la billetera, puede realizar cualquier transacción arbitraria de cualquier monto a cualquier destino.


¿En qué medida las prácticas comúnmente declaradas sobre el uso de estos dispositivos mejoran la seguridad de almacenar Bitcoin usándolos?

Muchos de los consejos de seguridad dados sobre el uso de monederos de hardware brindan muy poca seguridad adicional o solo brindan la ilusión de seguridad en lugar de medidas realmente efectivas.

ingrese la descripción de la imagen aquí

Una medida de seguridad que se repite a menudo es verificar que la dirección en su billetera de hardware coincida con la que intentó enviar usando la aplicación complementaria en la computadora host. Esto no tiene ningún sentido , ya que la dirección de destino la proporciona el host que no es de confianza. La dirección que no coincide sería un indicador de absolutamente nada más que una falla grave del software por parte del dispositivo.


¿Qué tan seguros son estos dispositivos para almacenar Bitcoin?

La máxima seguridad del dispositivo se reduce a confiar en el fabricante, ya que es extremadamente fácil que los errores en el software permitan el robo completo o la pérdida de fondos, y que se inserten puertas traseras invisibles. La historia ha demostrado que muchos de los dispositivos disponibles están plagados de graves problemas de calidad de código, tienen malas opciones en la construcción de la seguridad de su hardware y, de lo contrario, pueden ser una opción insegura para almacenar fondos.

puertas traseras

Las puertas traseras en las transacciones de Bitcoin, específicamente debido a algunas características de EDCSA, son triviales de producir y extremadamente difíciles de detectar, especialmente si se implementan esporádicamente. Las firmas ECDSA contienen un número que se genera a partir de una fuente supuestamente aleatoria; sin embargo, si este número está diseñado para contener valores de un tercero, es posible que se filtre la clave privada secreta u otra información además de ser válido. Las implementaciones modernas de software de ECDSA usan [generación determinista][5] para el valor nonce secreto, pero esto no es verificable sin usar la clave privada para la validación.

Calidad del código

Todos los dispositivos de hoy han mostrado problemas graves con sus implementaciones de código abierto de criptografía ECDSA, o simplemente tienen su implementación de código completamente cerrado para evadir el análisis.

  1. Bitcoin Trezor se envió originalmente con una implementación ECDSA que se basaba en una biblioteca de Python transliterada en c. Este código era cómicamente lento y expuso un [ataque de canal lateral de tiempo muy grande] [6]. Estar físicamente cerca del dispositivo mientras firmaba una transacción expuso suficiente información durante el tiempo de ejecución para exponer el material de la clave privada. Por lo demás, Trezor ha tenido una cantidad considerable de vulnerabilidades de cargador de arranque, análisis de tiempo, análisis de energía y hardware.

  2. El Ledger Nano tiene un error de hora de aficionado en su cargador de arranque que permite eludir por completo la seguridad en al menos el procesador principal que maneja la entrada y la comunicación del usuario. Para la mayoría de los microcontroladores, el diseño de la memoria tiene secciones repetitivas y múltiples posiciones en las que se puede acceder a los datos, el cargador de arranque simplemente no estaba al tanto de esto y permitió cambios arbitrarios en el código confidencial de seguridad.

  3. La serie de hardware CoinKite utiliza micro-ecc , un "ECDSA para arduino" abandonado que no contiene absolutamente ninguna prueba y es vulnerable a al menos un ataque de tiempo.


El uso de una billetera de hardware para almacenar Bitcoin no es una opción a prueba de balas, es un conjunto considerado de compensaciones de seguridad que requiere consideración y comprensión de las amenazas y debilidades de los dispositivos.

Hay hsm privados o personalizados que se pueden usar como github.com/square/subzero , tienen una aplicación cargada en un sistema operativo que no se puede modificar y multisig en diferentes ubicaciones brinda más seguridad.