Wersja
Zawsze 1.0 dla obecnych wdrożeń. Przyszłe wersje mogą to zmienić.
Standardy · Mobilne prawo jazdy (mDL)
Gdy barman, funkcjonariusz TSA lub pracownik wypożyczalni skanuje QR z aplikacji prawo jazdy na Twoim telefonie, ten QR to nie jest prawo jazdy. To uścisk dłoni. Właściwe atrybuty podróżują dopiero po tym, jak ich weryfikator poprosi o konkretne pola i Ty zatwierdzi ich udostępnienie na telefonie. Zrobione właściwie, mDL ujawnia znacznie mniej niż plastikowa karta. Zrobione źle (wrogi weryfikator, ogólne zatwierdzenie) ujawnia tyle samo lub więcej. Oto jak odróżnić te przypadki.
ISO/IEC 18013-5:2021, Identyfikacja osobista, Prawo jazdy zgodne z ISO, Część 5: Aplikacja mobilnego prawa jazdy (mDL). Międzynarodowy standard określający, jak cyfrowe prawa jazdy są wydawane, przechowywane, przekazywane weryfikatorowi i weryfikowane offline. Powierzchnia QR (część widoczna dla większości użytkowników) to sekcja 8.2 Device retrieval, QR code engagement. Norma towarzysząca, ISO/IEC 18013-7, obejmuje pobieranie online (weryfikator pyta wystawcę bezpośrednio za zgodą posiadacza).
Wdrożenie jest zaawansowane: kilkanaście stanów USA wydaje produkcyjnie lub pilotażowo mDL w Apple Wallet i Google Wallet; mDL Kalifornii jest ogólnie dostępne; TSA akceptuje mDL przy kontroli bezpieczeństwa na większości głównych lotnisk USA; UE wdraża swój wariant w EUDI Wallet w ramach eIDAS 2.0 (rozporządzenie weszło w życie pod koniec 2024, portfele zaplanowane na 2026–2027). Standard stanowi też podstawę ISO/IEC 23220 (ogólna platforma poświadczeń mobilnych obejmująca więcej niż prawa jazdy).
QR mDL koduje strukturę CBOR DeviceEngagement. CBOR (Concise Binary Object Representation, RFC 8949) to kompaktowa binarna alternatywa dla JSON. Zdekodowana struktura wygląda mniej więcej tak:
{
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...}
}Kluczowe pola po dekodowaniu:
Zawsze 1.0 dla obecnych wdrożeń. Przyszłe wersje mogą to zmienić.
Obecnie zawsze 1: uzgadnianie klucza ECDH na P-256, szyfrowanie sesji AES-GCM. Zestaw szyfrów 2 jest zarezerwowany dla brainpoolP320r1 (przypadki użycia UE).
Efemeryczny klucz publiczny EC generowany przez portfel dla każdej sesji. Używany przez weryfikatora do nawiązania zaszyfrowanej sesji. Usuwany po zakończeniu transakcji. Nasz skaner pokazuje długość tego pola, ale nigdy nie wyświetla bajtów klucza — są efemeryczne i mają znaczenie wyłącznie dla aktywnej sesji weryfikatora.
Portfel informuje weryfikatora, z których kanałów jest gotowy korzystać do rzeczywistego transferu atrybutów: NFC (zbliżenie), Bluetooth LE lub Wi-Fi Aware (peer-to-peer Wi-Fi bez punktu dostępowego). Większość mDL obsługuje BLE i NFC; Wi-Fi Aware jest ograniczony platformowo.
Jeśli jest obecne, portfel obsługuje tryb 18013-7: weryfikator może żądać atrybutów bezpośrednio z API wystawcy zamiast z portfela. QR zawiera URL wystawcy. Nasz skaner wyodrębnia go i pokazuje, który organ otrzyma zapytanie.
To inny rodzaj dokumentu tożsamości. Kod kreskowy PDF417 AAMVA na odwrocie plastikowego prawa jazdy USA zawiera w postaci jawnego tekstu wszystkie atrybuty z karty: imię i nazwisko, adres, datę urodzenia, numer prawa jazdy, wzrost, wagę, kolor oczu, ograniczenia i flagę dawcy narządów. Każdy skaner może odczytać te wszystkie dane. Karta jest dokumentem tożsamości na zasadzie „wszystko albo nic”: albo ją przekazujesz i ujawniasz wszystko, albo nie.
mDL odwraca tę zasadę. QR nie zawiera atrybutów — tylko uścisk dłoni. Weryfikator musi poprosić o konkretne atrybuty (given_name, family_name, birth_date, age_over_21, portrait, document_number, driving_privileges itp.), portfel pokazuje Ci żądanie, a transferowane są tylko atrybuty, które zatwierdzisz. Transfer jest też kryptograficznie podpisany przez organ wydający (Twój stanowy DMV), więc weryfikator może potwierdzić autentyczność atrybutów bez kontaktowania się z DMV — weryfikacja offline działa.
Dlatego osoby dbające o prywatność preferują mDL, choć standard jest bardziej złożony: umożliwia ujawnienie dostosowane do transakcji. Bramkarz nie potrzebuje Twojego adresu; funkcjonariusz TSA nie potrzebuje Twojego statusu dawcy organów; kasjer w sklepie nie potrzebuje numeru Twojego prawa jazdy.
Standard mDL definiuje zestaw atrybutów pochodnych, które pozwalają weryfikatorowi zadać pytanie tak/nie zamiast uzyskiwać surową wartość. Najważniejsze:
age_over_18, age_over_21, age_over_65 — do zakupów z ograniczeniem wiekowym bez ujawniania daty urodzenia.resident_state — dla pytania o bycie mieszkańcem danego stanu bez ujawniania adresu.driving_privileges — klasa posiadanego prawa jazdy i ograniczenia; przy wypożyczeniu samochodu.Dobrze zaprojektowana aplikacja weryfikatora dla baru pyta tylko o age_over_21. Portfel pokazuje: Bar XYZ chce wiedzieć, czy masz ukończone 21 lat. Zatwierdzasz, pojedyncza podpisana wartość logiczna (prawda) wraca. Aplikacja baru weryfikuje podpis wobec opublikowanego roota zaufania mDL Twojego stanu. Koniec. Bez daty urodzenia, bez imienia, bez numeru prawa jazdy, bez zdjęcia. W porównaniu z oddaniem plastikowej karty to ogromna poprawa prywatności.
Model zagrożeń dla plastikowej karty był prosty: zgubiłeś/aś, skopiowali, podejrzeli zza ramienia. Model zagrożeń dla mDL jest inny. Format jest solidny; kryptografia jest poprawna; ryzyko przenosi się na aplikację weryfikatora po drugiej stronie transakcji.
Każdy może zbudować aplikację weryfikatora. Nie istnieje centralny organ licencjonowania. Dlatego bar może używać gotowego weryfikatora skonfigurowanego do żądania pełnej daty urodzenia, pełnego imienia i nazwiska oraz zdjęcia, choć potrzebuje tylko age_over_21. Pracownik wypożyczalni może żądać wszystkiego do akt. Pracownik sklepu może pytać o adres. Żadne z nich nie jest technicznie zakazane przez standard — standard wymaga jedynie, by portfel pokazał posiadaczowi, o co jest proszony, i wymagał wyraźnego zatwierdzenia.
Obrona leży więc po stronie posiadacza: czytaj komunikat żądania. Jeśli weryfikator prosi o więcej niż wymaga transakcja, odmów. Niektóre portfele ostrzegają, gdy weryfikator nie jest na znanych listach zaufanych; ISO/IEC 18013-5 obsługuje uwierzytelnianie weryfikatora przez certyfikaty, ale infrastruktura list zaufanych wciąż dojrzewa (listy stanowe w USA; lista UE w ramach eIDAS 2.0).
Warto też wiedzieć: weryfikator widzi Twój eDeviceKey, zestaw szyfrów i obsługiwane metody transferu — i to wszystko. Nie otrzymuje atrybutów z samego QR. Zeskanowanie QR naklejki lub cudzego ekranu i odejście nie daje atakującemu niczego przydatnego. Atrybuty podróżują wyłącznie wewnątrz zaszyfrowanej sesji po uzgadnianiu.
Upuść QR DeviceEngagement mDL (obraz, wklej lub kamera) do naszego skanera. Wynik pokazuje:
NIE dekodujemy żadnych atrybutów — w QR nie ma atrybutów z założenia. Właściwe dane prawa jazdy podróżują zaszyfrowane przez wybraną metodę transferu do prawdziwego weryfikatora.
Dekodowanie odbywa się w Twojej przeglądarce; do naszego serwera trafiają tylko metadane strukturalne na potrzeby klasyfikacji bezpieczeństwa.
age_over_21 = odmów lub zapytaj dlaczego. Pracownik wypożyczalni samochodów pytający o status dawcy organów = odmów.Upuść QR (obraz, wklej lub kamera). Wynik pokazuje wersję, zestaw szyfrów, metody transferu i ewentualny URL pobierania serwerowego. Bez atrybutów — te podróżują wyłącznie wewnątrz zaszyfrowanej sesji po uzgadnianiu do prawdziwego weryfikatora.