Cómo configurar tu Trezor T sin perder la privacidad de tus fondos (Parte I)

P_Hold
14 min readFeb 28, 2020

--

Sistema Operativo Windows Editado 15/03/2022

En vista de los últimos acontecimientos referentes a la billetera Wasabi Wallet, es mi responsabilidad eliminar la recomendación de utilizar Wasabi wallet como interfaz de un Trezor, sobre todo por temas de privacidad, lamento haber dado esa recomendación en el pasado. La mejor solución es usar un nodo propio o un servidor Electrum (EPS/Electrs/Electrumx) para usar Sparrow Wallet o Electrum wallet como interfaz de dispositivo Trezor. Si bien nunca fue mi recomendacion usar el Coinjoin de Wasabi wallet, me parece que es pertinente eliminar cualquier posibilidad de confusión por parte de los lectores. NO RECOMIENDO USAR WASABI WALLET BAJO NINGUNA CAUSA***

El Trezor T es la nueva generación de hardware wallet (hww) del fabricante Satoshi Labs. Con este modelo es posible ingresar la passphrase (frase de contraseña) el propio dispositivo, una característica que no estaba disponible en el Trezor One. El escribir la passphrase en el dispositivo otorga mayor seguridad y privacidad al configurar y administrar la hww, ya que se elimina el riesgo de compartirla (passphrase) con el servidor de un tercero o que se almacene en la PC o Laptop que se utiliza con la hww.

Esta característica del Trezor T permite usar Wasabi como interfaz de la hww incluso si se tiene la función de la passphrase habilitada, algo que no era posible con el Trezor One. Los usuarios que no posean un nodo completo o un servidor personal Electrum y quieren mantener sus Xpub protegidas, ***tienen una buena alternativa al optar por la configuración: Trezor T (con passphrase) + Wasabi Wallet (como interfaz). Los usuarios contarían con la seguridad que aporta colocar passphrase a su dispositivo y un buen nivel de privacidad en sus transacciones con Wasabi***.

***Recordar que Wasabi Wallet usa los filtros compactos (neutrino) y por tanto no se filtran la información contenida en los Xpub (Clave pública extendida) además funciona sobre Tor por defecto. En definitiva, los usuarios no técnicos ahora pueden conseguir un buen nivel de seguridad y privacidad con poco esfuerzo y recursos***.

***Se debe tener en cuenta que aún no es posible realizar la configuración desde cero de una hww usando Wasabi***. El usuario promedio encontrara en esto una dificultad, y es la de tener que recurrir a la interfaz Web del fabricante para configurar la hww (una condición no del todo ideal), de igual forma se debe recordar que con la interfaz Web solo es posible generar wallets con formato legacy P2PKH (inician con 1) o SegWit compatibility P2SH (inician con 3) no compatibles con Wasabi wallet que solo soporta direcciones Segwit Native bech32 (inician con bc1).

El dilema anterior tiene una solución: Es posible usar Electrum Wallet en modo off-line para configurar el hww bajo el formato Segwit Native (bc1) y así evitar filtrar información al interfaz web. Una vez que la hww está configurada, es posible usar Wasabi como interfaz para administrarla (recibir y enviar BTC). Solo queda encontrar la forma de cargar el firmware en el dispositivo (hww) para eliminar la necesidad de conectar con la interfaz web de Trezor. La forma de lograrlo es usar los comandos de Trezorctl.

Los comandos Trezoctl son herramientas escritas en el lenguaje de programación Python que se pueden utilizar con el dispositivo Trezor T usando el terminal de línea de comandos.

En resumen, para lograr un buen nivel de seguridad/privacidad al usar el Trezor modelo T se plantea el siguiente esquema:

  • Para la instalación del Firmware en el dispositivo: Usar los comandos Trezorctl (previa verificación de las firmas GPG del Trezor Bridge).
  • Para generar de la seed (palabra semilla) con hww: Usar como interfaz Electrum wallet en modo offline (incluir passphrase).
  • ***Para administrar la hww (enviar y recbir BTC): Usar Wasabi wallet como interfaz (si no se cuenta con un servidor personal Electrum)***.

En este artículo/tutorial encontraras:

  1. Qué es una passphrase y la importancia de usarla.
  2. Cómo configurar el Trezor Modelo T usando los comandos de Trezorctl (cargar firmware)

Passphrase (Frase de contraseña)

La Passphrase o frase de contraseña es la protección definitiva contra ataques que involucran acceso físico al dispositivo o la semilla de recuperación. Puedes ver la passphrase como una palabra más que se agrega a las 12, 18 o 24 que generas cuando creas una wallet en tu hww.

Beneficios y riesgos de seguridad

Al igual que el PIN se utiliza para proteger tu dispositivo, se puede decir que la frase de contraseña sirve como protección de segundo factor para tu semilla. Debido a que la frase de contraseña no se almacena en ningún lugar del dispositivo (solo se usa temporalmente cuando la ingresas) es resistente a cualquier ataque que implique acceso físico y alteración del chip. Además, si alguien comprometió copia física de tu semilla de recuperación, aún no podría acceder a tu wallet protegida con passphrase (frase de contraseña) a menos que la conociera o tú se la entregaras.

Puedes crear tantas frases de contraseña en combinación con tu semilla de recuperación como desees. Esta facilidad de crear una nueva wallet con cada passphrase diferente permite obtener una ventaja secundaria de las billeteras ocultas = negación plausible. Una vez que te familiarice con la función y te sientas seguro al usarla, puedes considerar la creación de “wallet de señuelo”.

Si el robo y el peligro físico están en tu modelo de amenaza, es recomendable que dejes algo de dinero en tu wallet básica “sin frase de contraseña”, La idea detrás de esto es que, si alguna vez te encuentras en una situación en la que alguien intenta extorsionarte o ponerte bajo presión, puedes renunciar al PIN entregándolo y el atacante solo verán una pequeña parte de lo los fondos que en realidad posees.

Riesgos potenciales al usar passphrase

Al usar la función de passphrase (frase de contraseña), obtienes mucha responsabilidad personal adicional en proporción directa a las mejoras de seguridad.

Debido a que la frase de contraseña no se almacena en ningún lugar, debes tomar todas las precauciones necesarias para preservarla de forma segura, ya sea una copia de seguridad física o simplemente en una memoria.

Si se pierde la frase de contraseña, solo se puede encontrar adivinando (fuerza bruta) que a menudo es inviable tecnológica y económicamente (imposible). La dificultad de adivinar la frase de contraseña varía según la fuerza (complejidad).

Importancia de Usar Passphrase

El 31 de enero de 2020 Kraken Security Labs informó de una vulnerabilidad en ambos dispositivos Trezor (One y T), encontraron una forma de extraer las palabras semillas (seed) de ambas hww, el ataque requiere de solo 15 minutos de acceso físico al dispositivo, y aprovecha las fallas inherentes al microcontrolador utilizado en los dispositivos Trezor. Esto significa que es difícil para el equipo de Trezor hacer algo sobre esta vulnerabilidad sin un rediseño de hardware.

Hasta entonces, esto es lo que se puede hacer para protegerse:

  • No permitas que nadie tenga acceso físico a tu billetera Trezor
  • Habilita un passphrase (frase de contraseña) BIP39.

Esta frase de contraseña no está almacenada en el dispositivo y, por lo tanto, es una protección que evita este ataque. si quieres saber mas sobre los informes puedes ir a los siguientes enlaces: Informe de Kraken, Respuesta de Trezor.

Cómo configurar el Trezor Modelo T usando los comandos de Trezorctl

Los comandos de Trezorctl son herramientas escritas en lenguaje de programación Python que se pueden usar con los dispositivos Trezor bajo líneas de comandos.

Advertencia: Estos comandos son para usuarios avanzados. Úselos con precaución.

Instalación de Trezorctl en Linux: aqui

Con estos comandos lograras:

  1. Verificar conexión del dispositivo.
  2. Carga o Actualización de Firmware.
  3. Borrar el Dispositivo Trezor (opcional).

Para verificar/aplicar los comandos Trezorctl ir a la fuente oficial:

Consideraciones:

Este documento es una guía básica.

los comandos aplican para el Trezor One y para el Trezor T con las diferencias propias de cada dispositivo, en este caso se usará un Trezor T.

Prerrequisitos

  1. Instala el Trezor Bridge.

Recuerda verificar las firmas GPG del archivo ejecutable antes de realizar la instalación. Puedes encontrar información al respecto aquí

2. Instala Python

Deberás descargar Python versión 3.5 o posterior. En este momento, la versión más reciente de Python es 3.8.1

Descarga el instalador: revisa las versiones de Python para Windows y selecciona tu versión de instalador preferida. Verás algo así:

Selecciona el archivo que quieres instalar. Verás lo siguiente:

Descarga sin ejecutar el archivo que se quieres instalar, en este caso “Windows x86–64 executable installer” y el GPG SIG el nombre del archivo es “python-3.8.1-amd64.exe.asc”, guarda ambos archivos en una carpeta que puede llamar “python”

Verifica que el ejecutable es el correcto por medio del siguiente procedimiento:

Abre un terminal de PowerShell sobre la carpeta que creaste y que contiene el archivo ejecutable, para esto pulsa Shift y botón derecho del mouse y selecciona “Abrir la ventana de PowerShill aqui”, verás algo así:

Ingresa el siguiente comando (Enter):

certutil -hashfile

Verás lo siguiente:

Escribe nuevamente el comando anterior y agrega la ruta exacta del archivo ejecutable que descargaste, en este caso es “Windows x86–64 executable installer” solo debes arrastra el ejecutable hasta la terminal de comando y agrega al final MD5. Te debería quedar de la siguiente forma:

certutil -hashfile "Ruta"\Windows x86–64 executable installer MD5

Donde “Ruta” es la ruta exacta donde se encuentra ubicado el archivo ejecutable.

Verás lo siguiente:

El resultado es el hash del archivo, que debe coincidir con el hash encontrado en la lista de la página de Python (resaltado en amarillo)

Si ambos coinciden, finaliza la descarga ejecutando el instalador.

Asegúrate de que la opción “Add Python 3.8 to PATH”esté marcada. Luego haga clic en “Install Now” y acepta que el programa realice cambios.

Configuración de instalación de Python
Progreso de instalación de Python

Espera hasta que se complete la instalación.

¡Instalación completa!

Instalación de trezorctl

Espera hasta que el instalador de Python haya terminado. Si abres la ventana del símbolo del sistema antes de que se complete la instalación, los comandos necesarios no estarán disponibles. Deberás cerrar la ventana y volverla abrir.

Siguie Los siguientes Pasos:

Paso 1: Presiona Win + R para abrir el cuadro de diálogo “Ejecutar”.

Escribe cmd en el cuadro de diálogo y presione Entrar, o haga clic en “Aceptar”.

Diálogo Ejecutar de Windows

Paso 2: En el símbolo del sistema, ingrese el siguiente comando.

pip install trezor
Símbolo del sistema de Windows con instalación de trezor

Paso 3: Espera hasta que finalice la instalación.

la instalación de trezorctl está completa

Paso 4: Prueba algunos comandos de muestra.

Ejemplo de comandos trezorctl

Ten en cuenta que el siguiente error puede aparecer en Windows:

WebUSB transport is disabled: Could not find module 'libusb-1.0.dll'. Try using the full path with constructor syntax.

Si tiene el Trezor Bridge en funcionamiento puedes ignorar el error.

Cuando necesites ejecutar trezorctl nuevamente, simplemente abra el símbolo del sistema y escribe el comando trezorctl.

Paso 1: Presiona Win + R para abrir el cuadro de diálogo “Ejecutar”.

Paso 2: Escribe “cmd “en el cuadro de diálogo y presione Entrar, o haga clic en “Aceptar”.

Paso 3: Escribe los comandos trezorctl

También puedes usar el terminal de líneas de comandos de Windonws PowerShell

Comandos de Trezorctl

Para mayor seguridad al aplicar los comandos puedes eliminar la conexión de internet de tu Pc o laptop.

  1. Verificar conexión del dispositivo.

Descripción: Este comando envía un mensaje de ping al dispositivo para verificar si la comunicación entre la PC/Laptop y el dispositivo funciona.

Aplicar comando: Conecta el Trezor, Abre el terminal y ejecuta el siguiente comando:

trezorctl ping "ahoy!"

Si la conexión no es correcta verás el siguiente mensaje:

Si la conexión es correcta verás el siguiente mensaje:

Este comando es útil para garantizar que el resto de instrucciones que apliques para configurar el trezor estén siendo reconocidos por el dispositivo.

2. Cargar o Actualizar Firmware.

Atención: Antes de realizar la actualización del firmware de tu hww asegúrate de tener el respaldo de tus palabras semillas.

Descripción: Este comando instala en el dispositivo Trezor el firmware seleccionado, el dispositivo debe estar en “bootloader modo” (modo de cargador de arranque). Si tu dispositivo es nuevo no será necesario colocarlo en “Bootloader modo”.

Procedimiento:

Desconecta tu trezor, y a continuación, debes obtener el archivo .bin correspondiente al último firmware lanzado por los desarrolladores de Satoshi Labs.

Puedes instalar una versión específica del firmware (archivo .bin) descargándolo desde de GitHub: https://github.com/trezor/webwallet-data/tree/master/firmware

Verás lo siguiente:

La carpeta 1 contiene archivos para Trezor One.

La carpeta 2 contiene archivos para Trezor Model T.

Para acceder a los archivos .bin que contienen los firmwares has clic sobre el número al lado del símbolo de la carpeta (en “1” para Trezor ONE y en “2” para el Trezor T) y debes seleccionar el último firmware liberado.

Para Trezor ONE

Para Trezor T

En este caso se usará el trezor-2.2.0.bin para Trezor T, debes elegir la última actualización disponible y hacer clic en download

En la misma página debes hacer clic sobre firmware: add según la versión del firmware que quieras utilizar, esto es necesario para obtener el firgenprint del firmware.

Obtendrás el siguiente texto:

Una vez descargado el archivo .bin y ubicado en fingerprint es momento de conectar tu Trezor T.

Si tu dispositivo es nuevo verás algo así:

Aplica el siguiente comando:

trezorctl firmware-update -f #ubicación#\trezor-2.2.0.bin

Nota: El comando lo debes aplicar estableciendo la ruta exacta donde fue alojado el archivo .bin que descargaste, solo debes sustituir el texto #ubicación# por la dirección exacta.

Una vez aplicado el comando observaras algo así:

La ruta donde se descargó en este caso el archivo del frimware fue: C:\Users\Peter\Downloads\trezor-2.2.0.bin

El fingerprint en la terminal de comando debe coincidir con el publicado en el Github de Trezor:

Una vez aplicado el comando verás lo siguiente en tu Trezor T:

¡Listo! se ha cargado la actualización de firmware. Ahora es posible continuar la configuración de tu primera wallet con tu hww usando Electrum como interfaz.

Actualización del firmware

El procedimiento es parecido al anterior, con la diferencia de que debes colocar el dispositivo en bootloader modo (cargador de arranque)

A modo de ejemplo se actualizará un Trezor T con firmware 2.1.8 y se pasará al firmware 2.2.0

Nota: Para colocar el Trezor T en bootloader modo debes deslizar tu dedo en la pantalla mientras lo conectas. Cómo se muestra en el siguiente video:

Verás lo siguiente:

Pulsa el botón Verde para confirmar en el dispositivo que deseas actualizar el firmware.

Fimware 2.1.8

Abre un terminal y coloca el comando de actualización de firmware:

Verás lo siguiente en el dispositivo:

pulsar el boton verde en la pantalla si se quieres actualizar el firmware.

Antes de confirmar la acción en el dispositivo recuerda verificar que el fingerprint en la línea de comando y el aportado por Trezor coinciden.

Una vez que has verificado que los fingerprint coinciden, confirma la acción en el dispositivo pulsando el botón verde en la pantalla del Trezor T.

Al confirmar la acción verás lo siguiente:

listo! tu trezor ha quedado con el firmware actualizado.

Ahora es posible conectar tu Trezor modelo T con Electrum wallet en modo Off-line y administrar tu hww.

***También te será posible administrar tu hww con Wasabi wallet

3. Borrar el Dispositivo Trezor T

Descripción: Este comando restablece el dispositivo Trezor a los valores de fábrica y elimina todos los datos privados (no elimina el Firmware).

Alerta: Antes de ejecutar el comando debes asegurarte de tener un respaldo de tus palabras semillas.

Aplicar comando: Conecta el trezor, abre la terminal y ejecutar el siguiente comando:

trezorctl wipe-device

Una vez aplicado el comando verás lo siguiente en terminal:

Te pedirá que confirmes la acción (Borrado) en el dispositivo Trezor:

Confirma la acción en el dispositivo y verás lo siguiente en el terminal de comandos:

¡Listo! tu dispositivo Trezor T ha quedado limpio, y con la configuración de fábrica. El borrado no elimina el firmware que tiene cargado el Trezor.

En el proximo articulo aprenderas cómo realizar el resto de la configuración del Trezor T con Electrum wallet en modo Off-line.

No Confíes, Verifica

Si este artículo/tutorial te ayudó, sientes que has aprendido algo nuevo y quieres apoyar mi trabajo en temas de “Seguridad y Privacidad en el uso de Bitcoin” puedes hacer una libre aportación en cualquiera de los siguientes enlaces:

Para Onchain. puedes hacerlo desde Samourai wallet o mejor con Sparrow Wallet (te costara solo 546 sats la tx de notificacion y luego puedes enviar de manera privada cada vez que quieras). Gracias!!!

Twitter

Referencias:

--

--

P_Hold

Aprender y enseñar sobre Bitcoin son de las actividades que más disfruto. Only-bitcoin.