Standard · Patente di guida mobile (mDL)

Codici QR della patente di guida mobile: ISO/IEC 18013-5

Quando un barista, un agente della TSA o un addetto al noleggio auto scansiona il QR sull'app della patente del suo telefono, quel QR non è la patente. È un handshake. Gli attributi effettivi viaggiano solo dopo che il loro verificatore richiede campi specifici e lei approva il rilascio sul suo telefono. Fatto bene, un mDL rivela molto meno di una tessera di plastica. Fatto male (verificatore ostile, approvazione indiscriminata), rivela la stessa quantità o peggio. Ecco come distinguere la differenza.

Ispeziona un QR mDL → Tutti gli standard →

Qual è lo standard

ISO/IEC 18013-5:2021, Identificazione personale, patente di guida conforme a ISO, Parte 5: applicazione della patente di guida mobile (mDL). Lo standard internazionale che specifica come le patenti di guida digitali vengono emesse, archiviate, trasferite a un verificatore e verificate offline. La superficie del codice QR (la parte che la maggior parte delle persone vede) è la sezione 8.2 “Recupero da dispositivo, engagement tramite codice QR”. Uno standard complementare, ISO/IEC 18013-7, copre il recupero online (il verificatore interroga direttamente l'emittente con il consenso del titolare).

L'adozione è ben avviata: una dozzina di stati USA hanno mDL in emissione di produzione o in fase pilota in Apple Wallet e Google Wallet; l'mDL della California è in disponibilità generale; la TSA accetta gli mDL ai controlli di sicurezza nella maggior parte dei principali aeroporti statunitensi; l'UE sta integrando la propria variante nell'EUDI Wallet secondo eIDAS 2.0 (regolamento in vigore da fine 2024, wallet previsti per il 2026-2027). Lo standard è anche la base per ISO/IEC 23220 (quadro generale per le credenziali mobili, che copre anche elementi oltre le patenti di guida).

Cosa c'è davvero dentro il QR

Il QR dell'mDL codifica una struttura CBOR DeviceEngagement. CBOR (Concise Binary Object Representation, RFC 8949) è un'alternativa binaria compatta a JSON. La struttura decodificata appare grosso modo così:

{
  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...}
}

Campi chiave, decodificati:

Versione

Sempre “1.0” per le implementazioni attuali. Le revisioni future potrebbero aumentarlo.

Suite di cifratura

Attualmente sempre 1: accordo di chiave ECDH su P-256, cifratura di sessione AES-GCM. La suite di cifratura 2 è riservata a brainpoolP320r1 (casi d'uso UE).

eDeviceKey

Una chiave pubblica EC effimera generata per ogni sessione dal wallet. Usata dal verificatore per stabilire una sessione cifrata. Eliminata dopo la transazione. Il nostro scanner le mostra la lunghezza di questo campo ma non restituisce mai i byte della chiave: sono effimeri e hanno significato solo per la sessione del verificatore in corso.

Metodi di trasferimento

Il wallet comunica al verificatore quali canali è disposto a usare per il trasferimento effettivo degli attributi: NFC (tocco), Bluetooth LE o Wi-Fi Aware (Wi-Fi peer-to-peer senza un punto di accesso). La maggior parte degli mDL offre BLE e NFC; Wi-Fi Aware è limitato dalla piattaforma.

Recupero da server (opzionale)

Se presente, il wallet supporta la modalità 18013-7: il verificatore può richiedere gli attributi all'API online dell'emittente invece che direttamente al wallet. Il QR include l'URL dell'emittente. Il nostro scanner lo estrae e le mostra quale autorità riceverebbe la richiesta.

In cosa è diverso dall'AAMVA PDF417 sulla tessera di plastica?

È una categoria diversa di credenziale. Il codice a barre AAMVA PDF417 sul retro di una patente di plastica statunitense riporta in chiaro ogni attributo della tessera: nome, indirizzo, data di nascita, numero di patente, altezza, peso, colore degli occhi, restrizioni, indicatore di donatore di organi. Qualsiasi scanner può leggere tutto. La tessera è una credenziale “tutto o niente”: o la consegni e divulghi tutto, o non lo fai.

Un mDL ribalta tutto questo. Il QR non porta alcun attributo, solo un handshake. Il verificatore deve richiedere attributi specifici (given_name, family_name, birth_date, age_over_21, portrait, document_number, driving_privileges, ecc.), il wallet le mostra la richiesta e vengono trasferiti solo gli attributi che lei approva. Il trasferimento è inoltre firmato crittograficamente dall'autorità emittente (la motorizzazione del suo stato), così il verificatore può confermare che gli attributi sono autentici senza contattare nessuno: la verifica offline funziona.

È per questo che chi tiene alla privacy preferisce gli mDL anche se lo standard è più complesso: consente una divulgazione commisurata alla transazione. Un buttafuori non ha bisogno del suo indirizzo; un agente della TSA non ha bisogno del suo stato di donatore di organi; un commesso di un minimarket non ha bisogno del suo numero di patente.

Divulgazione selettiva: il vero punto

Lo standard mDL definisce un insieme di attributi derivati che permettono al verificatore di porre una domanda sì/no invece di ottenere un valore grezzo. I principali:

Un'app di verifica ben progettata per un bar chiede solo age_over_21. Il wallet mostra “Bar XYZ vuole sapere se hai più di 21 anni.” Lei tocca Approva, e torna indietro un singolo booleano firmato (“true”). L'app del bar verifica la firma rispetto alla radice di fiducia mDL pubblicata dal suo stato. Fatto. Nessuna data di nascita, nessun nome, nessun numero di patente, nessuna foto. Rispetto al consegnare la tessera di plastica, questo è un enorme miglioramento per la privacy.

Verificatori ostili: il nuovo modello di minaccia

Il modello di minaccia della tessera di plastica era semplice: la perdi, te la copiano, te la spiano da sopra la spalla. Il modello di minaccia dell'mDL è diverso. Il formato è solido; la crittografia è valida; il rischio si sposta sull'app del verificatore dall'altra parte della transazione.

Chiunque può creare un'app di verifica. Non esiste un'autorità di licenza centrale. Così un bar potrebbe usare un verificatore già pronto configurato per chiedere data di nascita completa, nome completo e foto anche se gli serve solo age_over_21. Un addetto al noleggio auto potrebbe chiedere tutto “per la pratica”. Un commesso potrebbe chiedere l'indirizzo. Nessuna di queste cose è tecnicamente vietata dallo standard, che si limita a dire che il wallet deve mostrare al titolare ciò che viene richiesto e richiedere un'approvazione esplicita.

Quindi la difesa è dalla parte del titolare: legga la richiesta. Se il verificatore chiede più di quanto serve alla transazione, rifiuti. Alcuni wallet avvisano quando il verificatore non è in un elenco di fiducia noto; ISO/IEC 18013-5 supporta l'autenticazione del verificatore tramite certificati, ma l'infrastruttura degli elenchi di fiducia è ancora in fase di maturazione (elenchi per stato negli USA; elenco di fiducia UE secondo eIDAS 2.0).

Vale anche la pena sapere: il verificatore vede la sua eDeviceKey, la suite di cifratura e quali metodi di trasferimento supporta, tutto qui. Non ottiene gli attributi dal solo QR. Quindi scansionare un QR da un adesivo o dallo schermo di qualcuno e portarselo via non dà a un aggressore nulla di utile. Gli attributi viaggiano solo all'interno della sessione cifrata dopo l'handshake.

Cosa le mostra il nostro scanner

Inserisci un QR DeviceEngagement mDL (immagine, incolla o fotocamera) nel nostro scanner. Il verdetto mostra:

NON decodifichiamo alcun attributo: non ci sono attributi nel QR, per progettazione. I dati effettivi della patente viaggerebbero cifrati sul metodo di trasferimento scelto verso un verificatore reale.

La decodifica avviene nel suo browser; solo i metadati strutturali raggiungono il nostro server per la classificazione di sicurezza.

Prima di approvare una richiesta del verificatore

Correlati

Ispeziona un QR DeviceEngagement mDL

Inserisci il QR (immagine, incolla o fotocamera). Il verdetto mostra versione, suite di cifratura, metodi di trasferimento ed eventuale URL opzionale di recupero da server. Nessun attributo: quelli viaggiano solo all'interno della sessione cifrata dopo l'handshake verso un verificatore reale.

Apri lo scanner →