La razón para usar una billetera de hardware como la BitBox02 se puede resumir en un principio simple: evitar confiar en tu smartphone o tu computadora. Como estos dispositivos ejecutan muchas aplicaciones diferentes mientras están conectados a internet, son más susceptibles a malware y ataques dirigidos. Aquí es donde entra en juego la billetera de hardware, como un dispositivo aislado y diseñado específicamente para la seguridad.
Cada interacción crítica con tu billetera ocurre directamente en la BitBox02, sin depender del dispositivo anfitrión, que podría estar comprometido.

Sin embargo, verificar direcciones de recepción y detalles de transacciones en la pantalla segura de la billetera de hardware no elimina completamente la necesidad de confiar en el dispositivo anfitrión. Las transacciones de Bitcoin no solo requieren interacción con tu billetera, sino también con otras entidades de las que recibes o a las que envías dinero. Intercambiar direcciones de Bitcoin de forma segura entre las partes de una transacción puede ser un desafío, y normalmente queda fuera del alcance de la billetera de hardware. ¡Pero no tiene por qué ser así!

Retirando de forma segura

Crear y verificar una nueva dirección de recepción en la BitBox02 garantiza que esa dirección realmente pertenece a tu billetera.
La parte difícil es comunicar esa dirección verificada al remitente que va a usarla. Por ejemplo, un dispositivo anfitrión comprometido podría manipular un exchange para retirar tus bitcoin hacia un atacante reemplazando la dirección correcta por una falsa.

Por eso, la integración de compra con Pocket Bitcoin en la BitBoxApp solicita al usuario verificar su dirección de recepción a través de un canal de comunicación independiente, idealmente en un tercer dispositivo. Esto reduce enormemente el riesgo de este tipo de ataque sofisticado. Ya profundizamos en este tema en otra entrada del blog.

Verificando una dirección de retiro “fuera de banda” en un tercer dispositivo.

Depositando de forma segura

Un problema similar surge cuando se trata de enviar bitcoin a otra persona de manera segura. En esencia, es exactamente la misma situación, pero vista desde el otro lado. Veámoslo ahora desde la perspectiva del remitente. Usaremos el ejemplo de vender bitcoin en un exchange, ya que es el escenario más común en el que un usuario enviará grandes cantidades de bitcoin desde su billetera a otra entidad.

Confiar o no confiar

Para enviar bitcoin a un exchange, el usuario necesita una dirección de depósito para crear la transacción. El exchange sabe que ha enviado una dirección correcta al usuario, pero ¿cómo sabe el usuario que realmente ha recibido esa misma dirección?
Todo lo que ve es una dirección de depósito dentro de su navegador, en un dispositivo que potencialmente podría estar comprometido.

¿Pertenece esta dirección al exchange o a un atacante?

En teoría, un atacante con control del dispositivo anfitrión puede mostrar al usuario cualquier información que desee, incluida una dirección de depósito manipulada.
Si el usuario envía bitcoin a esta dirección maliciosa, la billetera de hardware no tiene forma de verificar su autenticidad, ya que proviene “del mundo exterior”. Este tipo de ataque se conoce como address spoofing (suplantación de direcciones).

La solución incómoda

Ya describimos una solución simple para este problema: usar un segundo dispositivo. Si el usuario inicia sesión en su cuenta del exchange desde otro dispositivo (por ejemplo, su teléfono), puede repetir el flujo de depósito y verificar si las direcciones coinciden.

Este enfoque tiene algunos inconvenientes.
Primero, al ser un poco engorroso, muchos usuarios probablemente omitirán este paso de verificación, especialmente porque no se les solicita activamente hacerlo, como sí ocurre en el flujo de compra dentro de la BitBoxApp.

Además, algunos exchanges generan automáticamente una nueva dirección de depósito cada vez que el usuario solicita una, lo que hace inútil el uso de un segundo dispositivo.
Por supuesto, desde el punto de vista de la seguridad tampoco es perfecto, ya que siempre existe la posibilidad teórica de que ambos dispositivos estén comprometidos, por ejemplo, si ambos acceden a un sitio web falso.

Solicitudes de pago

Así como Bitcoin utiliza claves públicas y privadas para garantizar la propiedad segura de los fondos, podemos usar criptografía de clave pública para asegurar que cierta información provenga realmente de un exchange.
Esto se puede lograr mediante solicitudes de pago (payment requests), un estándar originalmente desarrollado por Trezor en SLIP-24.

La idea consiste en registrar una clave pública del destinatario (en este caso, el exchange) directamente en la billetera de hardware, fuera del alcance de posibles atacantes. Usando su clave privada, el exchange puede firmar una dirección de depósito, incluyendo un monto o incluso un mensaje, y enviar la solicitud firmada al usuario. Al crear la transacción, la billetera de hardware puede verificar que esta solicitud de pago proviene directamente del exchange, ya que confía en la clave pública que ya conoce.

Si un atacante intenta manipular una solicitud de pago firmada, la verificación en la billetera fallará inmediatamente y se activará una alerta, igual que una transacción de Bitcoin no puede modificarse una vez que ha sido firmada y transmitida.

Desde la actualización Ritom, la base técnica para las solicitudes de pago ya está implementada en el firmware de la BitBox02. Como el registro de claves públicas es un aspecto crítico para la seguridad de esta función, se realiza cuidadosamente por nuestros desarrolladores en comunicación directa con los socios, y no estará disponible para los usuarios. De esta manera, las solicitudes de pago en la BitBox02 pueden verificarse y confirmarse con total confianza.

Vendiendo con Pocket Bitcoin

Junto con nuestro socio Pocket Bitcoin, actualmente estamos trabajando en integrar la opción de vender bitcoin directamente desde la BitBoxApp. Mediante solicitudes de pago, el usuario podrá confirmar la intención de enviar bitcoin a Pocket directamente en el dispositivo, en lugar de verificar manualmente una dirección de depósito. Como la BitBox02 puede verificar que una solicitud de pago fue firmada por Pocket y que no ha sido alterada, el usuario ya no tendrá que preocuparse por enviar bitcoin a una dirección incorrecta.

Al vender bitcoin con Pocket, el usuario también proporciona sus datos bancarios (por ejemplo, un IBAN), donde se enviará el valor intercambiado en moneda fiduciaria. Para garantizar que Pocket haya recibido correctamente los datos bancarios del usuario, estos también se incluyen en la solicitud de pago como un mensaje y se muestran en el dispositivo para su confirmación. Esto significa que toda la información relevante, incluyendo:

  • la cantidad de bitcoin que se va a vender
  • el destinatario verificado de la transacción (por ejemplo, Pocket)
  • los datos bancarios donde se enviará el dinero fiat

… puede verificarse directamente en la BitBox02, ¡sin tener que confiar en el dispositivo anfitrión!

Conclusión

La próxima integración de venta en la BitBoxApp no solo resuelve el problema de la suplantación de direcciones descrito anteriormente, sino que además mejora la experiencia del usuario con un flujo de venta intuitivo y un proceso de verificación claro, reduciendo significativamente el riesgo de manipulación o errores.

Vender tus bitcoin puede ser una experiencia estresante cuando se mueven grandes cantidades de dinero, por lo que nos tomamos el tiempo adicional para implementar una solución que se mantenga fiel a nuestros principios fundamentales: simplicidad y seguridad.


¿Aún no tienes una BitBox?

Mantener tus criptomonedas seguras no tiene por qué ser difícil. La billetera física BitBox02 almacena las claves privadas de tus criptomonedas offline. Así podrás gestionar tus monedas de forma segura.

La BitBox02 también viene en versión sólo Bitcoin, con un firmware radicalmente enfocado: menos código significa menos superficie de ataque, lo que mejora aún más tu seguridad cuando sólo almacenas Bitcoin.

¡Hazte con una en nuestra tienda!


Shift Crypto es una empresa privada con sede en Zurich, Suiza. Nuestro equipo de colaboradores de Bitcoin, expertos en criptomonedas e ingenieros de seguridad crea productos que permiten a los clientes disfrutar de un viaje sin estrés desde el nivel de principiante hasta el nivel de maestría en la gestión de criptomonedas. La BitBox02, nuestra billetera de hardware de segunda generación, permite a los usuarios almacenar, proteger y realizar transacciones con Bitcoin y otras criptomonedas con facilidad, junto con su software complementario, la BitBoxApp.