QR peek
La cámara de un móvil abre un código QR casi en cuanto lo ve. Este lector se detiene un paso antes. Decodifica el código, muestra lo que lleva escrito y lo que haría un teléfono con ello, y te deja la decisión a ti.
Los teléfonos activan la cámara trasera cuando eliges “Escanear con la cámara”. Desde un ordenador, sirve una captura de pantalla o una foto del código: suelta el archivo, o pégalo con Ctrl+V (⌘+V en Mac).
🔒 Decoding takes place on your device. Camera frames and pictures stay in your browser, and what the code says is not passed to anyone.
Un código QR es un texto corto
Esos cuadrados blancos y negros forman caracteres, unos pocos miles como máximo, con corrección de errores para que el código se lea aunque esté sucio en parte o tapado por un logo. Eso es todo lo que hay. Ni un programa ni un destino oculto. El problema viene de lo que hace después el dispositivo que lo escanea. Si el texto empieza por https://, el teléfono se ofrece a abrirlo. Otros prefijos activan otras acciones, y nadie puede saber cuál mirando los cuadrados.
Por eso el fraude se ha pasado a los códigos QR. Un enlace en un correo electrónico pasa por los filtros de spam, y puedes pasar el cursor por encima para inspeccionarlo. Imprime el mismo enlace como código en un parquímetro, en la mesa de un restaurante o en un falso aviso de entrega, y se salta los filtros y se abre en un teléfono, donde la barra de direcciones muestra muy poco.
Los tipos de contenido que reconoce el lector
| Empieza por | Qué haría un teléfono | Qué comprobar |
|---|---|---|
http://, https://, www. | Abrir una página web | El dominio en negrita |
WIFI: | Conectarse a una red inalámbrica | Quién gestiona la red; se marcan las redes abiertas y WEP |
BEGIN:VCARD, MECARD: | Añadir un contacto | Los campos de correo electrónico y de sitio web |
mailto:, SMSTO:, sms:, tel: | Preparar un mensaje o una llamada | El destinatario; se marcan los códigos cortos y los números de tarifa especial |
otpauth:// | Añadir una cuenta a una aplicación de autenticación | Que seas tú quien la está configurando |
bitcoin:, ethereum: y similares | Preparar una transferencia de criptomonedas | Todo, porque no se puede revertir |
000201…, BCD, upi:// | Preparar un pago con tarjeta, bancario (SEPA) o UPI | Nombre del beneficiario e importe |
geo:, BEGIN:VEVENT | Abrir un mapa, añadir un evento al calendario | Nada en particular |
Todo lo demás se muestra como texto sin formato. Si hay una dirección web escondida en ese texto, recibe el mismo examen que un enlace. Un código que contiene una dirección javascript:, data: o file: se marca en rojo.
Cómo se examina un enlace
La mayoría de los códigos contienen una dirección web, y el lector la desmonta sin solicitarla.
- Dominio. El dominio registrable se muestra en negrita y se analiza en busca de alfabetos mezclados, caracteres invisibles y parecido con marcas conocidas, con el mismo motor que el detector de caracteres parecidos. Todo lo que haya antes de una
@se señala, porquehttps://city-parking.example@payments.example.net/te lleva a payments.example.net. - Cifrado. Una dirección
http://sin cifrar sale en amarillo. - Acortadores. Se reconocen unos cincuenta servicios como bit.ly, tinyurl.com y qrco.de. El destino real está guardado en el servidor del acortador y no se puede leer en el código. En bit.ly, si añades
+al final de la dirección se muestra una página de vista previa. TinyURL tienepreview.tinyurl.com. - Parámetros de seguimiento.
utm_source,fbclid,gclidy sus parientes se enumeran, y recibes una segunda copia de la dirección sin ellos. - Palabras de pago. Si la dirección menciona pagar, aparcar, una multa, un peaje o una factura, una nota te recuerda que compruebes si hay una pegatina colocada sobre el código original.
El texto decodificado nunca se convierte en un enlace en el que se pueda hacer clic, con una excepción. Las direcciones web normales llevan abajo un enlace “Abrir de todos modos”, que abre una pestaña nueva sin enviar el referente.
Lo que leer el código no te puede decir
El lector ve la dirección, no la página. Un dominio con la ortografía impecable puede alojar igualmente una copia del formulario de acceso de un banco. Para probar el destino en sí, pega la dirección en la consulta de sitios inseguros o síguela salto a salto con el rastreo de redirecciones. Ambos se ejecutan desde nuestro servidor, no desde tu teléfono.
Tampoco puede ver el mundo físico. Pasa un dedo por encima de un código en una máquina pública, porque una pegatina tiene borde. Para cualquier pago, lo más seguro es la aplicación del operador o una dirección web que escribas tú mismo.
Ten especial cuidado con los códigos otpauth://. Contienen el secreto a partir del cual se generan tus códigos de acceso. Escanea uno solo en la página de seguridad de un servicio donde estés activando tú mismo la verificación en dos pasos. Nadie legítimo te enviará uno para “verificar tu cuenta”.
La decodificación usa el detector de códigos de barras integrado en tu navegador cuando lo hay. Si no, se carga desde este sitio un pequeño decodificador de código abierto. En ambos casos la imagen se queda en tu dispositivo, y la cámara, que necesita tu permiso, se apaga en cuanto se lee un código.
Preguntas frecuentes
¿Puede escanear un código QR hackear mi teléfono?
Leer un código es inofensivo, porque solo da texto. El riesgo empieza con lo que ocurre después, como abrir una página de phishing, conectarse a una red Wi-Fi desconocida o aprobar un pago. Si miras primero el contenido, como hace esta página, no pasa nada que no hayas elegido tú.
¿Cómo escaneo un código QR que está en mi propia pantalla?
Haz una captura de pantalla y luego suelta la imagen en esta página, elígela con el botón de archivo o pégala con Ctrl+V (⌘V en un Mac). La imagen se decodifica en local.
¿Qué es el quishing?
Es el phishing entregado mediante un código QR. Una forma típica es una pegatina en un parquímetro o en una estación de carga que lleva a una falsa página de pago. Otra es un correo electrónico que te pide escanear un código para “mantener tu cuenta activa”, lo que te pasa de un ordenador de trabajo protegido a un teléfono personal.
¿Por qué el lector dice que no se encontró ningún código QR?
Probablemente el código es demasiado pequeño en la imagen, está borroso o cortado. Recorta la imagen alrededor del código, deja un margen blanco por los cuatro lados e inténtalo de nuevo. Los códigos que no son QR, como los códigos de barras de productos o los Data Matrix, no se leen.
¿Es peligroso un código QR que usa un acortador de enlaces?
No necesariamente. Muchos generadores de QR pasan todos los códigos por su propio dominio corto para poder cambiar el destino más tarde. Eso sí significa que el código no te dice nada sobre dónde vas a terminar, y que el destino puede cambiar después de imprimir el código. Usa la función de vista previa del acortador, o el rastreo de redirecciones.
¿La imagen de la cámara sale de mi dispositivo?
No. Los fotogramas se analizan en el navegador y se descartan. Tampoco se transmite el contenido decodificado.