Artículo 6 de 125 min de lectura

Lo que te muestra el teléfono: análisis de transacciones en el firmador

La mayoría de los robos de billeteras ocurren con el consentimiento del dueño. Una página muestra una cosa, la billetera firma otra y el dueño pulsó Confirm (Confirmar). La tarea del teléfono es asegurarse de que lo que ves es lo que firmas.

Un teléfono que decodifica una aprobación ilimitada a favor de un spender desconocido, con los dos hallazgos destacados y una tarjeta pequeña que muestra que la página solo decía Swap
La solicitud tal como es, no como la describió la página.
En esta página

Una afirmación y la verdad

Cuando una página web te pide firmar algo, también te dice qué es. «Intercambia 1 ETH por USDC». «Reclama tu recompensa». «Verifica tu billetera». Esa descripción es una afirmación de la página, y una página maliciosa puede afirmar lo que quiera. Los bytes que entrega a la billetera son otra cosa, y son lo único que la blockchain verá jamás.

AirNox Vault ignora la afirmación. Decodifica la solicitud a partir de los bytes exactos que está a punto de firmar, en el teléfono, con su propio parser, y te muestra el resultado. Lo que la computadora dice de una solicitud es una afirmación. Lo que muestra el teléfono es la verdad.

Izquierda: una página dice Swap 1 ETH to USDC; derecha: el teléfono decodifica una aprobación ilimitada a favor de un spender desconocido
La misma solicitud, dos descripciones. Solo una salió de los bytes.

El teléfono reconoce los métodos estándar

La mayor parte de lo que firmas es corriente. Una transferencia. Una aprobación de tokens (allowance). Un intercambio a través de un router conocido. Un depósito en un contrato. El teléfono reconoce las operaciones estándar de cada familia de cadenas que admite y te las muestra con palabras claras: qué operación, qué token, cuánto, a quién, en qué red y cuál es el tope de comisión. Una transferencia parece una transferencia. Una aprobación parece una aprobación, con el spender (la dirección autorizada a gastar) y la cantidad bien a la vista.

Las imitaciones se señalan

Las solicitudes peligrosas son las que parecen corrientes y no lo son. Un método cuyo nombre se parece a uno estándar pero cuyos parámetros no encajan. Una llamada que delega el control a otro contrato de una forma que no aparece en el resumen. Un destino que no es el contrato con el que la página dijo estar hablando. Un token cuyo símbolo suplanta a uno muy conocido. Una dirección de destinatario que comparte los primeros y los últimos caracteres con una de las tuyas.

Cada una de ellas se detecta y se convierte en un hallazgo. El teléfono no se niega a firmar, porque la decisión es tuya. Se asegura de que no puedas pasarlo por alto.

Seis hallazgos: aprobación ilimitada, spender desconocido, método similar, token suplantador, destinatario similar, delegación oculta
Los hallazgos que plantea el teléfono antes de dejarte aceptar.

Los hallazgos

Una aprobación ilimitada es el movimiento clásico de un drainer: apruebas (approve) una vez y después pierdes todo lo que tengas de ese token. El teléfono escribe «ilimitada» en rojo y lo trata como hallazgo.

Un spender desconocido es una aprobación a favor de una dirección que nadie ha avalado. Cuando un intercambio se cotizó a través de un router concreto y la aprobación apunta a otra cosa, la discrepancia es un hallazgo.

Un método similar, un símbolo de token suplantador, un destinatario similar y una delegación oculta se señalan cada uno por su nombre. Para los destinatarios, tanto la computadora como el teléfono muestran una imagen determinista de la dirección, así que una imitación que engaña al ojo en hexadecimal no lo engaña en la imagen.

Primero reconoces, después Accept

Un hallazgo no es una ventana emergente que puedas cerrar por reflejo. El botón Accept (Aceptar) sigue desactivado hasta que marques cada hallazgo. Puedes rechazar en cualquier momento. Solo puedes aceptar después de haber reconocido lo que encontró el teléfono. Esa única decisión de diseño convierte «hice clic sin mirar» en «lo leí y decidí seguir», que es la diferencia entre una billetera vaciada y una decisión.

La computadora analiza primero

El mismo análisis se ejecuta en la computadora antes de que una solicitud salga de ella, así que la mayoría de las solicitudes dañinas se señalan en la ventana de la billetera antes de llegar al teléfono. El teléfono repite el análisis porque la computadora es la máquina que suponemos comprometida. Dos pasadas independientes, en dos dispositivos, con la última palabra en el que guarda las claves.

Leer sigue siendo cosa tuya

Un firmador (signer) que te muestra la verdad no puede impedir que la aceptes. Lo que sí puede hacer es que sea imposible pasarla por alto: decodificada a partir de los bytes, con palabras claras, con las partes de riesgo en rojo y una barrera que tienes que cruzar a propósito. El resto depende de ti, y ahora tienes lo que necesitas para decidir.

La serie completa

  1. Da por hecho que la computadora está comprometida
  2. Mass Adoption Security: el firmador es un teléfono que ya tienes
  3. Tres formas de cruzar el air gap: códigos QR, Bluetooth LE y NFC
  4. Invisible en las ondas: un firmador que nadie puede localizar escaneando
  5. Nunca se confía en el transporte
  6. Lo que te muestra el teléfono: análisis de transacciones en el firmador
  7. El teléfono lleva su propio registro
  8. La bóveda en tu computadora: Argon2id y un perfil que resiste los intentos de adivinar
  9. dApps sin una billetera en el navegador
  10. Un servidor MCP con reglas: agentes de IA con límites
  11. Una billetera protegida para todo
  12. Pequeña y nativa: C++, sin runtime de JavaScript, de una estación de trabajo a una Raspberry Pi

Únete a la lista de espera

Deja tu correo y te enviaremos novedades sobre los lanzamientos. Nada más.