Padrões · Carteira de motorista digital (mDL)

QR codes de carteira de motorista digital: ISO/IEC 18013-5

Quando um bartender, agente da TSA ou atendente de locadora escaneia o QR no app de carteira de motorista do seu celular, esse QR não é a carteira. É um handshake. Os atributos reais só trafegam depois que o verificador deles solicita campos específicos e você aprova a liberação no celular. Feito certo, um mDL expõe muito menos do que um cartão físico. Feito errado (verificador hostil, aprovação em branco), expõe o mesmo ou mais. Veja como distinguir.

Inspecionar um QR de mDL → Todos os padrões →

Qual é o padrão

ISO/IEC 18013-5:2021, Identificação pessoal, carteira de motorista conforme ISO, Parte 5: Aplicação de carteira de motorista digital (mDL). O padrão internacional que especifica como carteiras de motorista digitais são emitidas, armazenadas, transferidas para um verificador e verificadas offline. A superfície de QR code (a parte que a maioria das pessoas vê) é a seção 8.2 "Recuperação pelo dispositivo, engajamento via QR code". Um padrão complementar, ISO/IEC 18013-7, cobre a recuperação online (o verificador consulta o emissor diretamente com o consentimento do titular).

A adoção está bem avançada: uma dúzia de estados americanos têm mDLs em produção ou piloto na Apple Wallet e Google Wallet; o mDL da Califórnia está em disponibilidade geral; a TSA aceita mDLs na segurança na maioria dos grandes aeroportos dos EUA; a UE está integrando sua variante à EUDI Wallet sob o eIDAS 2.0 (regulamento em vigor no final de 2024, carteiras previstas para 2026-2027). O padrão é também a base da ISO/IEC 23220 (estrutura geral de credenciais digitais, cobrindo itens além de carteiras de motorista).

O que está realmente dentro do QR

O QR de mDL codifica uma estrutura CBOR de DeviceEngagement. CBOR (Representação Concisa de Objetos Binários, RFC 8949) é uma alternativa binária compacta ao JSON. A estrutura decodificada tem aspecto aproximado de:

{
  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 principais, decodificados:

Versão

Sempre "1.0" nos deployments atuais. Revisões futuras podem incrementar.

Conjunto de cifras

Atualmente sempre 1: acordo de chaves ECDH em P-256, criptografia de sessão AES-GCM. O conjunto de cifras 2 está reservado para brainpoolP320r1 (casos de uso na UE).

eDeviceKey

Uma chave pública EC efêmera gerada por sessão pela carteira. Usada pelo verificador para configurar uma sessão criptografada. Descartada após a transação. Nosso scanner mostra o comprimento deste campo, mas nunca exibe os bytes da chave — eles são efêmeros e só fazem sentido para a sessão do verificador em andamento.

Métodos de transferência

A carteira informa ao verificador quais canais está disposta a usar para a transferência real dos atributos: NFC (aproximação), Bluetooth LE ou Wi-Fi Aware (Wi-Fi ponto a ponto sem ponto de acesso). A maioria dos mDLs oferece BLE e NFC; o Wi-Fi Aware tem suporte limitado por plataforma.

Recuperação pelo servidor (opcional)

Quando presente, a carteira suporta o modo 18013-7: o verificador pode solicitar atributos da API online do emissor em vez de diretamente da carteira. O QR inclui a URL do emissor. Nosso scanner extrai isso e mostra qual autoridade receberia a consulta.

Como é diferente do PDF417 AAMVA no cartão físico?

É uma categoria diferente de credencial. O código de barras PDF417 AAMVA no verso de uma carteira de motorista física dos EUA contém todos os atributos do cartão em texto simples — nome, endereço, data de nascimento, número da habilitação, altura, peso, cor dos olhos, restrições, indicação de doação de órgãos. Qualquer scanner consegue ler tudo. O cartão é uma credencial de "tudo ou nada": você o entrega e divulga tudo, ou não entrega.

Um mDL inverte isso. O QR não contém atributos — apenas um handshake. O verificador precisa solicitar atributos específicos (given_name, family_name, birth_date, age_over_21, portrait, document_number, driving_privileges, etc.), a carteira mostra a solicitação para você e somente os atributos que você aprovar são transferidos. A transferência também é assinada criptograficamente pela autoridade emissora (seu Detran), para que o verificador confirme a autenticidade dos atributos sem precisar se conectar a um servidor — a verificação offline funciona.

É por isso que pessoas preocupadas com privacidade preferem mDLs mesmo sendo o padrão mais complexo: ele permite divulgação adequada à transação. Um porteiro não precisa do seu endereço; um agente da TSA não precisa da sua indicação de doação de órgãos; um caixa de conveniência não precisa do número da sua habilitação.

Divulgação seletiva: o objetivo real

O padrão mDL define um conjunto de atributos derivados que permitem ao verificador fazer uma pergunta sim/não em vez de receber um valor bruto. Os principais:

Um app verificador bem projetado para um bar pede apenas age_over_21. A carteira mostra "Bar XYZ quer saber se você tem mais de 21 anos." Você toca em Aprovar, um único booleano assinado ("verdadeiro") é enviado de volta. O app do bar verifica a assinatura contra a raiz de confiança mDL publicada pelo seu estado. Pronto. Sem data de nascimento, sem nome, sem número da habilitação, sem foto. Comparado a entregar o cartão físico, isso é uma grande melhoria de privacidade.

Verificadores hostis: o novo modelo de ameaça

O modelo de ameaça do cartão físico era simples: perdê-lo, copiá-lo, ter os dados vistos por cima do ombro. O modelo de ameaça do mDL é diferente. O formato é sólido; a criptografia é robusta; o risco migra para o app verificador do outro lado da transação.

Qualquer pessoa pode criar um app verificador. Não há autoridade central de licenciamento. Assim, um bar pode usar um verificador pronto configurado para pedir data de nascimento completa, nome completo e foto, mesmo precisando apenas de age_over_21. Um atendente de locadora pode pedir tudo "para o arquivo". Um caixa de loja pode pedir o endereço. Nada disso é tecnicamente proibido pelo padrão — ele apenas exige que a carteira mostre ao titular o que está sendo solicitado e requeira aprovação explícita.

Portanto, a defesa está do lado do titular: leia o prompt de solicitação. Se o verificador pedir mais do que a transação precisa, recuse. Algumas carteiras alertam quando o verificador não está em uma lista de confiança conhecida; a ISO/IEC 18013-5 suporta autenticação de verificadores via certificados, mas a infraestrutura de listas de confiança ainda está em maturação (listas por estado nos EUA; lista de confiança da UE sob o eIDAS 2.0).

Vale saber também: o verificador vê sua eDeviceKey, o conjunto de cifras e quais métodos de transferência você suporta — só isso. Ele não obtém atributos somente com o QR. Então escanear um QR de um adesivo ou da tela de alguém e ir embora não dá ao atacante nada útil. Os atributos só trafegam dentro da sessão criptografada após o handshake.

O que nosso scanner mostra

Envie um QR DeviceEngagement de mDL (imagem, colagem ou câmera) para o nosso scanner. O resultado mostra:

NÃO decodificamos nenhum atributo — não há atributos no QR, por design. Os dados reais da carteira trafegam criptografados pelo método de transferência escolhido para um verificador real.

A decodificação ocorre no seu navegador; apenas os metadados estruturais chegam ao nosso servidor para a classificação de segurança.

Antes de aprovar uma solicitação do verificador

Relacionados

Inspecionar um QR DeviceEngagement de mDL

Envie o QR (imagem, colagem ou câmera). O resultado mostra versão, conjunto de cifras, métodos de transferência e qualquer URL de recuperação pelo servidor opcional. Sem atributos — eles só trafegam dentro da sessão criptografada pós-handshake para um verificador real.

Abrir scanner →