BWallet versus Trezor – advertencias de un desarrollador

Hace poco se anunció el lanzamiento de BWallet, un clon del monedero físico Trezor cuyo principal atractivo es, a simple vista, el precio. ¿Pero qué hay de la seguridad? Un desarrollador de Trezor se ha dedicado a estudiar a este nuevo competidor, y ayer compartió sus conclusiones en el Reddit de Bitcoin:

robot-fight


Tal vez hayan leído algo acerca del lanzamiento de BWallet, la copia china de la cartera TREZOR. Debería sentirme halagado, porque cuando los demás te copian, es porque lo estás haciendo bien. Sin embargo, siento que tengo algo que decir a la comunidad Reddit sobre este producto.

En primer lugar, me sorprende bastante que BWallet sea en realidad más caro que TREZOR. Nuestros clientes pueden confirmar que el dispositivo TREZOR cuesta USD 19, el resto de los USD 119 es costo de investigación y desarrollo, actualizaciones de software, soporte al cliente, desarrollo de muchos estándares de código abierto, etc.

Leí muchos comentarios de este tipo:

 «Grandioso, BWallet vende su hardware barato, así que le subiré el firmware de TREZOR y estaré tan seguro como con TREZOR, pero a menor costo».

No. No funciona así, por lo siguiente:

Los creadores de BWallet cambiaron las llaves en el gestor de arranque, por lo que usar otro firmware que no sea el de BWallet mostrará la advertencia «firmware no oficial» durante el arranque. Hasta ahí todo bien, puedes cargar el firmware de TREZOR, pero a partir de ese momento dejarás de saber si alguien reemplazó este firmware “oficial» de TREZOR por otra cosa, porque tanto el software de SatoshiLabs (desarrolladores de TREZOR) como el del atacante gatillarán la misma advertencia en el arranque.

trezor2
TREZOR

Esto afecta la seguridad práctica; el TREZOR Oficial es tan seguro porque sus «piezas» adquieren sentido en conjunto, y no se puede eliminar una de las precauciones de seguridad (firmware firmado y revisado por expertos en este caso) y pretender que no afecta la seguridad global.

También, por alguna razón utilizaron un cableado diferente para los botones. Eso significa que puedes cargar el firmware de TREZOR al dispositivo, pero no funcionará. Simplemente no serás capaz de hacer click en «Confirmar» o «Cancelar».

Esto nos lleva a otro problema con BWallet: nosotros en SatoshiLabs hemos hecho un gran esfuerzo de ingeniería a nivel de diseño para garantizar la privacidad del usuario. Eso significa que no existen diferencias entre cada dispositivo TREZOR, y que no podemos rastrear tu identidad a partir de tus cuentas TREZOR, ni tu historial de transacciones o balance. Lo interesante con BWallet es que realmente no cambiaron mucho en los códigos fuente del firmware, excepto por el agregado de una súper-cookie de seguimiento a la API. Esta línea en particular deberí llamar la atención:

https://github.com/BWallet/bwallet-mcu/blob/2427d396c29722e1ddd70791aaeb12b55ae5d609/firmware/fsm.c#L148

Esto informa el número de serie del procesador a la computadora, lo que significa que pueden rastrear quién eres (saben a qué nombre/dirección enviaron el dispositivo) y cuánto dinero tienes (porque BWallet informa este ID a mybwallet.com).

Originalmente pensé que el tema de los botones, mencionado anteriormente, era sólo un error de ingeniería. Ahora tiendo a pensar que ha sido hecho a propósito, ya que con el cableado diferente no se puede reemplazar su firmware con facilidad, lo que les permite hacer un seguimiento del usuario. Hace unos años, los estafadores vendían emails por buen dinero. Parece que la cosa está avanzando y pronto los mercados negros tendrán listas de bitcoiners ricos, incluyendo sus nombres reales y direcciones residenciales a la venta por unos pocos dólares.

Si los problemas mencionados anteriormente no te han atemorizado, todavía queda más. Ellos en realidad no entienden el firmware, sólo son capaces de compilarlo. La prueba es el error fatal que presenta su gestor de arranque, el cual aún no han notado. También su firmware está una versión por detrás de nuestra versión estable, y estamos a un día de la lanzar una nueva versión con cambios importantes.

Este tipo de productos de estilo “copiado y pegado” es inaceptable para un software a cargo de cuidar tu dinero.

En conclusión, me gustaría decir que es perfectamente aceptable que cualquiera tome nuestro producto de código abierto y cree el suyo propio. Pero al mismo tiempo no queremos que nuestra reputación se vea afectada por una adaptación potencialmente peligrosa. El valor de TREZOR reside tanto en su servicio como en sus códigos.