
Los códigos QR están diseñados con funciones de alineación y escala, por no
hablar de sumas de comprobación y redundancia significativa. Tienen que serlo,
porque se sacan fotos con cámaras de baja calidad, mientras se el lector se encuentra en moviemiento, en poca lu, o pegado en un poste con una curva, etc. Así que es una completa
sorpresa que el investigador Christian Walther lograra
crear un código QR ambiguo.
Christian creó un código QR que se resuelve en dos sitios web dependiendo del
ángulo desde el que se lo mire. En un caso el enlace conduce a Github y en el otro a la red social Mastodon.
El truco es identificar las celdas que son
diferentes entre las dos URL, por ejemplo, y dividirlas por la mitad vertical
y horizontalmente: convirtiéndolas en un pequeño tablero de ajedrez. Parece
que algunos decodificadores QR toman muestras en el centro de cada cuadrado
objetivo, y el centro estará en un lado o en el otro dependiendo de la
inclinación del código QR.
Descubrir la codificación de código QR con diferencia mínima entre dos URL
arbitrarias sería un
ejercicio de programación
muy interesante. ¿Cuánto tiempo pasará hasta que veamos que se usan de forma
popular (y maliciosa),
como en los viejos tiempos, cuando la incorporación de imágenes era algo novedoso?
Probablemente, si funcionan o no dependerá del teléfono o del algoritmo,
pero…
Fuente:
HackDay