Versión
Siempre "1.0" en los despliegues actuales. Revisiones futuras podrían incrementarlo.
Estándares · Licencia de conducir móvil (mDL)
Cuando un camarero, un agente de la TSA o un empleado de alquiler de coches escanea el QR de la app de licencia de conducir de su teléfono, ese QR no es la licencia. Es un protocolo de enlace. Los atributos reales solo se transmiten después de que el verificador solicite campos concretos y usted apruebe la cesión en su teléfono. Bien implementado, un mDL filtra mucho menos que una tarjeta física. Mal implementado (verificador hostil, aprobación global), filtra la misma cantidad o más. Así se distingue la diferencia.
ISO/IEC 18013-5:2021, Identificación personal, licencia de conducir conforme a ISO, Parte 5: Aplicación de licencia de conducir móvil (mDL). El estándar internacional que especifica cómo se emiten, almacenan, transfieren a un verificador y se verifican sin conexión las licencias de conducir digitales. La superficie QR (la parte que la mayoría de las personas ve) es la sección 8.2 "Recuperación en dispositivo, activación por código QR". Un estándar complementario, ISO/IEC 18013-7, cubre la recuperación en línea (el verificador consulta directamente al emisor con el consentimiento del titular).
La adopción está bien encaminada: una docena de estados de EE. UU. tienen mDLs en producción o en fase piloto en Apple Wallet y Google Wallet; la mDL de California está en disponibilidad general; la TSA acepta mDLs en los controles de seguridad de la mayoría de los principales aeropuertos de EE. UU.; la UE está integrando su variante en la EUDI Wallet bajo eIDAS 2.0 (reglamento vigente desde finales de 2024, wallets previstas para 2026-2027). El estándar es también la base de ISO/IEC 23220 (marco general de credenciales móviles, que abarca más allá de los permisos de conducir).
El QR del mDL codifica una estructura CBOR de DeviceEngagement. CBOR (Concise Binary Object Representation, RFC 8949) es una alternativa binaria compacta a JSON. La estructura decodificada tiene aproximadamente este aspecto:
{
0: "1.0", // version
1: [1, 2, [eDeviceKey bytes]], // security: cipher suite 1, EC P-256 key
2: [ // device retrieval methods
[1, 1, {...NFC options...}],
[2, 1, {...BLE options...}],
[3, 1, {...Wi-Fi Aware options...}]
],
3: {...optional server retrieval...}
}Campos clave, decodificados:
Siempre "1.0" en los despliegues actuales. Revisiones futuras podrían incrementarlo.
Actualmente siempre 1: acuerdo de clave ECDH sobre P-256, cifrado de sesión AES-GCM. El conjunto de cifrado 2 está reservado para brainpoolP320r1 (casos de uso de la UE).
Una clave pública EC efímera generada por sesión por la cartera. La utiliza el verificador para establecer una sesión cifrada. Se destruye tras la transacción. Nuestro escáner le muestra la longitud de este campo, pero nunca devuelve los bytes de la clave; son efímeros y solo tienen significado para la sesión del verificador en curso.
La cartera indica al verificador qué canales está dispuesta a usar para la transferencia real de atributos: NFC (proximidad), Bluetooth LE o Wi-Fi Aware (Wi-Fi entre pares sin punto de acceso). La mayoría de mDLs ofrecen BLE y NFC; Wi-Fi Aware está limitado a ciertas plataformas.
Si está presente, la cartera admite el modo 18013-7: el verificador puede solicitar atributos desde la API en línea del emisor en lugar de directamente desde la cartera. El QR incluye la URL del emisor. Nuestro escáner la extrae y le muestra qué autoridad recibiría la consulta.
Es una categoría de credencial diferente. El código de barras PDF417 de AAMVA en el reverso de una licencia plástica estadounidense contiene todos los atributos de la tarjeta en texto plano: nombre, dirección, fecha de nacimiento, número de licencia, estatura, peso, color de ojos, restricciones y estado de donante de órganos. Cualquier escáner puede leer todo eso. La tarjeta es una credencial de "todo o nada": o la entregas y revelas todo, o no lo haces.
Un mDL invierte eso. El QR no lleva atributos, solo un handshake. El verificador tiene que solicitar atributos específicos (given_name, family_name, birth_date, age_over_21, portrait, document_number, driving_privileges, etc.), la billetera te muestra la solicitud, y solo los atributos que apruebas se transfieren. La transferencia también está firmada criptográficamente por la autoridad emisora (el DMV de tu estado), así que el verificador puede confirmar que los atributos son auténticos sin llamar a ningún servidor; la verificación offline funciona.
Por eso quienes valoran la privacidad prefieren los mDL aunque el estándar sea más complejo: permite una divulgación acotada a la transacción. Un portero no necesita tu dirección; un agente de la TSA no necesita saber si eres donante de órganos; un empleado de 7-Eleven no necesita tu número de licencia.
El estándar mDL define un conjunto de atributos derivados que permiten al verificador hacer una pregunta de sí/no en lugar de obtener un valor en bruto. Los más relevantes:
age_over_18, age_over_21, age_over_65, para compras con restricción de edad sin revelar la fecha de nacimiento.resident_state, para preguntas del tipo «¿es residente del estado?» sin revelar la dirección.driving_privileges, categoría de licencia y restricciones; para el alquiler de vehículos.Una app verificadora bien diseñada para un bar solicita únicamente age_over_21. La billetera muestra "Bar XYZ quiere saber si eres mayor de 21 años." Tocas Aprobar, y un único booleano firmado ("true") regresa al sistema. La app del bar verifica la firma contra el trust root de mDL publicado por tu estado. Listo. Sin fecha de nacimiento, sin nombre, sin número de licencia, sin foto. Comparado con entregar la tarjeta física, esto es una mejora de privacidad enorme.
El modelo de amenaza de la tarjeta física era simple: perderla, copiarla, que alguien la vea por encima del hombro. El modelo de amenaza del mDL es distinto. El formato es sólido; la criptografía es correcta; el riesgo se desplaza hacia la app verificadora al otro lado de la transacción.
Cualquiera puede crear una app verificadora. No existe ninguna autoridad central de licencias. Así, un bar podría usar un verificador genérico configurado para pedir fecha de nacimiento completa, nombre completo y foto, aunque solo necesite age_over_21. Un empleado de alquiler de coches podría pedir todo «para el expediente». Un dependiente podría pedir la dirección. Nada de esto está técnicamente prohibido por el estándar; el estándar solo exige que la cartera muestre al titular qué se está solicitando y requiera aprobación explícita.
Por eso la defensa recae en el titular: lea el mensaje de solicitud. Si el verificador pide más de lo que la transacción necesita, rechácelo. Algunas carteras advierten cuando el verificador no está en una lista de confianza conocida; ISO/IEC 18013-5 admite autenticación de verificadores mediante certificados, pero la infraestructura de listas de confianza aún está madurando (listas por estado en EE. UU.; lista de confianza de la UE bajo eIDAS 2.0).
También conviene saber que el verificador ve su eDeviceKey, el conjunto de cifrado y los métodos de transferencia que admite, y nada más. No obtiene atributos solo con el QR. Escanear un QR de una pegatina o la pantalla de alguien y marcharse no le aporta nada útil a un atacante. Los atributos solo viajan dentro de la sesión cifrada tras el protocolo de enlace.
Suelta un QR de DeviceEngagement mDL (imagen, pegado o cámara) en nuestro escáner. El veredicto muestra:
No decodificamos ningún atributo, no hay atributos en el QR, por diseño. Los datos reales de la licencia viajarían cifrados a través del método de transferencia elegido hacia un verificador real.
La decodificación ocurre en tu navegador; solo los metadatos estructurales llegan a nuestro servidor para la clasificación de seguridad.
age_over_21 = rechazar o preguntar por qué. Un empleado de alquiler de coches que pide el estado de donante de órganos = rechazar.Cargue el QR (imagen, pegado o cámara). El veredicto muestra la versión, el conjunto de cifrado, los métodos de transferencia y cualquier URL opcional de recuperación desde servidor. Sin atributos: esos solo viajan dentro de la sesión cifrada posterior al protocolo de enlace, ante un verificador real.