Volver al blog
ViajesPrivacidad

Publicar la tarjeta de embarque cuesta una cuenta: lo que medimos sobre tapar códigos QR

Publicado el10 min read
Compartir

Qué revela un simple resguardo

Empecemos por un caso documentado, no por una hipótesis.

El periodista de seguridad Brian Krebs lo publicó en 2015. Un lector llamado Cory vio la tarjeta de embarque que un amigo había subido a Facebook, hizo una captura, amplió el código de barras y lo pasó por un decodificador en línea gratuito. Segundos después tenía los datos de la cuenta de viajero frecuente de su amigo.

Lo que vino después es lo importante. Cory podía consultar todos los vuelos futuros de esa cuenta, cambiar el asiento de pasajeros ya emitidos y cancelar cualquier vuelo próximo. Además, la información expuesta bastaba para superar la primera mitad del proceso de restablecimiento del PIN de la aerolínea.

El amigo simplemente había publicado una foto de viaje.

Un detalle se le escapa a casi todo el mundo: los códigos de barras y QR no son decoración, son contenedores de datos legibles por máquina. Tú ves cuadrados en blanco y negro; un escáner ve una referencia de reserva, un nombre, un vuelo, una fecha, un asiento. Esa distancia es todo el riesgo.

Tapar a medias no funciona, y medí hasta qué punto

Esta es la sección que más quería escribir, porque el método equivocado es más peligroso que no hacer nada: te crees a salvo y publicas igualmente.

Los códigos QR incorporan por diseño una corrección de errores considerable. La especificación permite que un escáner reconstruya la carga completa aunque una parte relevante del símbolo esté dañada, sucia u oculta. En el mundo físico resulta útil: billetes doblados o impresiones emborronadas siguen leyéndose. Aplicado al razonamiento «tapo la mitad y listo», se convierte en un fallo de seguridad.

Así que lo medí.

¿Cuánta superficie hay que cubrir de verdad?

El método es reproducible. Con la biblioteca qrcode de Python generé un código QR de bono ficticio — la carga es una URL de canje con referencia de reserva y código de validación — en los niveles de corrección M (15 %), Q (25 %) y H (30 %). Cada uno pasó por cuatro formas de tapado en siete proporciones de superficie, y luego por el QRCodeDetector de OpenCV. Solo contaba como «aún legible» la recuperación completa de la URL original.

El resultado fue peor de lo que esperaba.

Forma de tapado Falla desde (M, 15 %) Falla desde (Q, 25 %) Falla desde (H, 30 %)
Bloque opaco, centrado 15 % de la superficie 20 % de la superficie 25 % de la superficie
Bloque opaco, esquina inferior derecha 20 % de la superficie 25 % de la superficie 25 % de la superficie
Franja horizontal 10 % de la superficie 20 % de la superficie 20 % de la superficie
Pixelado, centrado 15 % de la superficie 20 % de la superficie 25 % de la superficie

Se lee así: ese porcentaje marca dónde empieza a fallar la decodificación. Por debajo, todo sigue leyéndose.

Tres hallazgos merecen quedarse.

Primero, un billete con corrección alta sigue leyéndose con una quinta parte de su superficie cubierta. En nivel H con un 20 % tapado, el bloque centrado, el de esquina y el pixelado recuperaron la carga los tres. Ese rectángulo de aspecto considerable que dibujaste sobre el código no bloqueó nada.

Segundo, pixelar se comportó igual que un bloque opaco: umbrales idénticos en los tres niveles. Eso liquida la intuición de que desenfocar es al menos mejor que nada. No es más seguro; solo parece que hiciste algo.

Tercero, la franja horizontal fue la más eficaz de las cuatro. En nivel M bastaba una franja que cubriera el 10 % de la altura. Una franja atraviesa todo el ancho del símbolo, así que el daño se reparte entre varios bloques de palabras de código, mientras que un cuadrado compacto cae justo donde la corrección de errores es más fuerte.

Sinceramente, ese tercer punto contradice la conclusión que iba a escribir. Los avisos de seguridad que dicen que «tachar un billete no lo anula» son correctos: hablan de validez y legibilidad. Pero si la pregunta es qué forma de tachar detiene mejor a un escáner, estos datos responden que la franja gana al bloque. Solo se descubre midiendo.

Dónde tapas importa más que cuánto

El resultado más útil llegó al final.

Los tres cuadrados grandes de las esquinas de un QR son los patrones de localización: el escáner los usa para fijar orientación y límites. Tapé el superior izquierdo y los tres niveles de corrección fallaron al decodificar, pese a que esa zona ocupa solo entre el 2,0 y el 3,6 % de la superficie total.

Dicho de otro modo: cubrir el 2 % en el sitio correcto vale más que cubrir el 20 % en el equivocado.

Los límites de la prueba forman parte del resultado. Usé el decodificador de OpenCV, una única carga y una sola versión de QR. Los escáneres comerciales y las cámaras de móvil implementan la reconstrucción de otra forma y pueden ser más capaces. Trata estos umbrales como un suelo, no como una garantía: el decodificador de un atacante real será probablemente más tolerante que mi entorno de prueba.

En la práctica queda una regla: cubre el símbolo entero con un bloque opaco que rebase los bordes. Ni una esquina, ni unos trazos, ni pixelado. Si tu herramienta no lo permite, asegúrate al menos de tapar por completo uno de los tres patrones de localización.

Mal tapado equivale a no tapado.

Tres capas de exposición en las capturas de viaje

Las capturas de viaje se reparten en tres capas con perfiles de riesgo realmente distintos.

Capa Origen habitual Qué se filtra Peor escenario
1: título escaneable Bonos de Civitatis/Klook, entradas, tarjetas de embarque El título en sí, el PNR, pistas de la cuenta de fidelización Billete usado por otro, secuestro de cuenta
2: identificadores de texto Confirmaciones de Booking.com/Agoda, referencias, número de habitación Nombre, fechas de estancia, dirección del alojamiento Llamadas suplantando al huésped, ingeniería social
3: datos incrustados Pantalla fotografiada con otro dispositivo GPS de los EXIF, hora de captura, dispositivo Deducción de tu ubicación o tu domicilio

La capa uno es la urgente. El valor de un bono electrónico está en el código mismo; si alguien lo escanea antes, lo descubres en la entrada. Hay casos documentados de delincuentes que toman entradas publicadas, las alteran y estafan a compradores: la víctima no es solo quien publicó.

La capa dos parece inofensiva y es combustible para ingeniería social. Nombre, fechas y alojamiento bastan para presentarse en recepción en tu lugar, o al revés, para llamarte haciéndose pasar por el alojamiento y pedir «reconfirmar la tarjeta». Este fraude se dispara en temporada alta.

La capa tres es la que más se pasa por alto. Una captura de móvil normalmente no lleva GPS, pero fotografiar una pantalla con un segundo dispositivo graba en la imagen dónde estabas. Ocurre más de lo que parece al pasar la pantalla de un portátil.

Cuando tus acompañantes necesitan los datos de verdad

Esta es la restricción real: organizar un viaje obliga a compartir. Horas de encuentro, contenido de las entradas, dirección del hotel.

Por orden de preferencia:

Primero, la función nativa de compartir de la plataforma. Civitatis, Klook, Booking.com y la mayoría permiten compartir o transferir una reserva a un acompañante. Por la vía oficial, la validez queda bajo control de la plataforma y no aparece ninguna captura circulando.

Segunda opción: enviar texto, no imagen. «26/09, 9:00, entrada principal, llevo yo las entradas» transmite todo lo necesario con riesgo cero.

Tercera opción: imagen con control de acceso. Para contenido realmente visual —una tabla de itinerario compleja, un mapa— usa algo con control de acceso en vez de una publicación abierta.

En lpic.cc puedes fijar una contraseña de visualización al subir, así el enlace corto resiste los reenvíos. Las contraseñas se guardan con hash bcrypt, no se comparan en texto plano. Para un itinerario destinado a «solo estas cinco personas», eso está bastante más controlado que dejarlo circular por un grupo.

Los límites, por delante: imágenes hasta 8 MB, archivos conservados 30 días desde la última visualización, subidas optimizadas automáticamente y originales no conservados. Y sobre todo — una contraseña frena a quien no debe verlo, no a alguien autorizado que hace una captura y la reenvía. Todo mecanismo de compartición topa con ese techo. No lo tomes por absoluto.

La última línea de defensa sigue siendo la misma: un título realmente sensible no debería convertirse nunca en archivo de imagen.

Preguntas frecuentes

P1: Publiqué una tarjeta de embarque hace tiempo. ¿Sirve borrarla ahora?

Borrar limita la exposición futura, pero no demuestra que nadie la capturase. Importan más otras dos cosas: cambiar de inmediato la contraseña y las preguntas de seguridad de esa cuenta de la aerolínea, y revisar que las reservas próximas no hayan sido alteradas. En el caso Krebs, lo primero que pudo hacer el atacante fue cambiar asientos y cancelar vuelos.

P2: Alguien escaneó mi bono de Klook. ¿Puedo entrar igualmente?

Depende del tipo de billete. Un bono de un solo canje ya usado aparece como usado en la entrada. Contacta de inmediato con el soporte de la plataforma, aunque el resultado no está garantizado y en temporada alta la respuesta es lenta. Aquí la prevención gana por mucho a la reparación.

P3: ¿Basta con pixelar el código QR?

No, y lo medí. En los tres niveles de corrección, pixelado y bloque opaco tuvieron umbrales de fallo idénticos: un billete de nivel alto necesitaba un 25 % de superficie cubierta antes de dejar de leerse. Usa un bloque opaco sobre toda la zona del código o, mejor, tápalo físicamente antes de disparar.

P4: Mi confirmación solo muestra referencia y nombre. ¿Sigue habiendo riesgo?

Sí. Nombre y referencia bastan en algunas plataformas para consultar el estado de una reserva, y con las fechas de estancia el kit de ingeniería social queda completo. El patrón que se repite en los casos reales es que el atacante nunca necesita tu contraseña, solo fragmentos suficientes para convencer a un agente de soporte.

P5: ¿Y las fotos de viaje en sí?

Riesgo de otra naturaleza. Ahí el problema principal es el GPS de los EXIF. La mayoría de redes sociales los elimina al subir, pero las nubes y el envío «como archivo original» suelen conservarlos intactos. Cómo lo trata cada servicio está en nuestra prueba de EXIF campo por campo sobre 8 servicios.

Fuentes

#código QR#tarjeta de embarque#privacidad en viajes#bono electrónico#robo de cuenta#RGPD#prueba de seguridad
K

Escrito por

Kevin Wu

Consultor de seguridad

Especializado en privacidad y seguridad de datos — te ayuda a evitar los riesgos ocultos al compartir imágenes.