SD-JWT VC vs mdoc (ISO/IEC 18013-5): formatos da EUDI Wallet comparados
SD-JWT VC vs mdoc (ISO/IEC 18013-5) para desenvolvedores: divulgação seletiva, vínculo de chave, OpenID4VP, ISO/IEC 18013-7, o que o Regulamento de Execução (UE) 2026/1731 exige para o PID e de qual formato o verificador precisa.

Em resumo
SD-JWT VC e mdoc (ISO/IEC 18013-5) são os dois formatos de credencial que toda carteira europeia de identidade digital (EUDI Wallet) precisa suportar. O SD-JWT VC é JSON e foi feito para uso remoto. O mdoc é CBOR binário e é o único que também funciona por proximidade.[1]
- Os dois ocultam e revelam atributos com a mesma ideia: hashes com salt assinados pelo emissor.[1]
- Desde o Regulamento de Execução (UE) 2026/1731, os dados de identificação pessoal são emitidos nos dois formatos.[2]
- Um verificador remoto pode ler qualquer um dos dois via OpenID4VP. Um leitor por proximidade precisa de mdoc.[1]
Um SD-JWT VC é uma credencial verificável empacotada como um JSON Web Token assinado, cujas declarações podem ser divulgadas uma a uma. Um mdoc é um documento móvel no formato da ISO/IEC 18013-5, a norma escrita originalmente para carteiras de motorista móveis. O Architecture and Reference Framework (ARF) da EUDI Wallet lista os dois como obrigatórios para as carteiras e um terceiro formato, o W3C Verifiable Credentials Data Model 2.0, como opcional e "destinado apenas a EAAs não qualificados".[1]
Este guia compara os dois para desenvolvedores que constroem um verificador, com base no ARF v3.0.0, no texto do OpenID for Verifiable Presentations (OpenID4VP) 1.0 e no Jornal Oficial. PID significa dados de identificação pessoal.
O que é um SD-JWT VC
O ARF descreve as "SD-JWT-based Verifiable Credentials" como um formato de dados e regras de processamento para expressar credenciais verificáveis, em que SD-JWT "significa 'Selectively Disclosable JSON Web Token'".[1] Ele abrange a codificação JSON, um mecanismo de prova com divulgação seletiva e a vinculação opcional ao dispositivo.[1]
No OpenID4VP, o identificador de formato é dc+sd-jwt, e uma consulta indica o tipo de credencial por meio de vct_values.[4] O exemplo da especificação de uma carga útil emitida, reduzido a dois dos seus oito resumos:[4]
{ "_sd": [ "jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4", "TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo" ], "vct": "https://credentials.example.com/identity_credential", "_sd_alg": "sha-256", "cnf": { "jwk": { "kty": "EC", "crv": "P-256" } } }
Observação
O SD-JWT VC deixa muitas opções em aberto. O ARF afirma que o High Assurance Interoperability Profile (HAIP) "é necessário para garantir a interoperabilidade entre as unidades de carteira e as partes utilizadoras".[1] Desenvolva com base no HAIP.
O que é um mdoc (ISO/IEC 18013-5)
A ISO/IEC 18013-5 define os atributos da carteira de motorista, sua codificação em Concise Binary Object Representation (CBOR), namespaces que evitam a colisão de identificadores, um mecanismo de prova com divulgação seletiva, a vinculação obrigatória ao dispositivo e a troca por proximidade.[1]
Apenas o modelo de dados da carteira de motorista é específico da habilitação para dirigir. O ARF observa que todos os demais aspectos "são genéricos e podem ser usados para qualquer outro tipo de atestado, incluindo PIDs".[1]
O OpenID4VP descreve essas credenciais como "codificadas em CBOR e protegidas com COSE_Sign1" e atribui a elas o identificador de formato mso_mdoc. Uma consulta indica o tipo de documento por meio de doctype_value.[4]
Observação
Uma norma geral para a apresentação de documentos móveis, a ISO/IEC 23220-4, está em elaboração. O ARF afirma que ela "ainda não está concluída" e continua fazendo referência à ISO/IEC 18013-5.[1]
Como a divulgação seletiva funciona em cada formato
A divulgação seletiva permite que o usuário compartilhe alguns atributos e oculte os demais, enquanto o verificador continua checando a assinatura do emissor. O eIDAS 2 exige que as carteiras tornem isso possível.[6] O ARF chama o mecanismo do SD-JWT de "hashes com salt" e afirma que ele "é conceitualmente idêntico ao mecanismo usado para a mesma finalidade na [ISO/IEC 18013-5]".[1]
JSON
SD-JWT VC
- O emissor assina um JWT que contém digests, não valores
- Cada declaração oculta trafega como uma divulgação separada
- A carteira envia apenas as divulgações aprovadas
OpenID4VP 1.0, Apêndice B.3
CBOR
mdoc (ISO/IEC 18013-5)
- O emissor assina hashes com salt dos elementos de dados
- Os elementos de dados ficam em namespaces
- A carteira retorna apenas os elementos aprovados
ARF v3.0.0, seções 5.4.2 e 5.4.3
Um mecanismo, duas codificações.[1][4]
No exemplo acima, o array _sd traz digests SHA-256. Cada disclosure é um array com um valor aleatório, o nome da declaração e o valor da declaração. Para o nome próprio, ele é ["2GLC42sKQveCfGfryNRN9w", "given_name", "John"], e o seu hash é o primeiro digest da lista. O verificador calcula o hash de cada disclosure que recebe e procura o digest no payload assinado.[4]
As declarações são endereçadas de formas diferentes. Para uma credencial JSON, um caminho de declarações é uma lista de chaves, como ["address", "street_address"]. Para um mdoc, o caminho "contém dois elementos do tipo string": o namespace e o identificador do elemento de dados, por exemplo ["org.iso.18013.5.1", "first_name"].[4]
Atenção
A tabela de atributos do PID não tem um atributo "maior de 18 anos". Os obrigatórios são sobrenome, nome próprio, data de nascimento, local de nascimento e nacionalidade.[3] A divulgação seletiva oculta atributos. Ela não transforma uma data de nascimento em um sim ou não.
Key binding e device engagement
A vinculação ao dispositivo associa uma credencial a chaves mantidas na carteira do usuário, de modo que ela não possa ser clonada. O verificador confere essa vinculação pedindo à carteira que assine dados aleatórios novos com a chave privada que corresponde à chave pública contida na credencial.[1] Os nomes variam: "Na [ISO/IEC 18013-5], chama-se 'mdoc authentication'. No [SD-JWT VC], chama-se 'key binding'."[1]
| Pergunta | SD-JWT VC | mdoc (ISO/IEC 18013-5) |
|---|---|---|
| Nome da prova | Key binding | mdoc authentication |
| Exigida pelo formato | Opcional na especificação | Obrigatória na norma |
| Onde fica a chave do titular | A declaração cnf | Dentro do mdoc assinado pelo emissor |
| O que a carteira retorna via OpenID4VP | O SD-JWT com um Key Binding JWT | Um DeviceResponse com uma assinatura ou MAC sobre a transcrição da sessão |
| O que a vincula à sua solicitação | nonce e aud no Key Binding JWT | O handover do OpenID4VP dentro da transcrição da sessão |
A vinculação ao dispositivo é obrigatória para PIDs nos dois formatos.[1][4]
Para SD-JWT VC, a regra do OpenID4VP é rígida. Quando require_cryptographic_holder_binding é true, o valor padrão, a carteira "DEVE retornar um SD-JWT" com um Key Binding JWT. A declaração nonce deve ser igual ao nonce da sua solicitação, e aud deve ser igual ao seu Client Identifier, exceto pela Digital Credentials API, em que deve ser igual à sua origem com o prefixo origin:.[4]
O device engagement é exclusivo do mdoc. Em um fluxo de proximidade, o usuário mostra um QR code ou apresenta uma tag NFC. Ele contém o que o leitor precisa para abrir uma conexão NFC, Bluetooth Low Energy ou Wi-Fi Aware e criar sobre ela um canal autenticado e criptografado, sem conexão com a internet entre os dois.[1]
A carteira autentica o leitor
Uma apresentação por proximidade com mdoc (ISO/IEC 18013-5), de forma simplificada.[1]
O que o usuário vê:
Mostre seu documento
Mostrar QR code
1O usuário abre a carteira e inicia uma apresentação.
Deixe o leitor escanear
Ou aproxime do leitor.
2Um QR code ou uma aproximação NFC estabelece o canal.
Escolha o que compartilhar
- SobrenomeCompartilhado
- Data de nascimentoCompartilhado
- Local de nascimentoNão compartilhado
Compartilhar
3A carteira identifica o leitor e o usuário aprova.
Compartilhado
4Apenas os atributos aprovados saem do celular.[1]
Protocolos de apresentação: OpenID4VP, ISO/IEC 18013-7 e proximidade
O ARF lista o que uma carteira processa: ISO/IEC 18013-5 por proximidade, e OpenID4VP ou ISO/IEC 18013-7 remotamente.[1]
| Protocolo | Onde | SD-JWT VC | mdoc (ISO/IEC 18013-5) |
|---|---|---|---|
| ISO/IEC 18013-5 | Proximidade: QR ou NFC, depois NFC, Bluetooth Low Energy ou Wi-Fi Aware | Não | Sim |
| OpenID4VP com HAIP | Remota: redirecionamentos e esquemas de URI personalizados, ou a Digital Credentials API | Sim | Sim |
| ISO/IEC 18013-7 | Remota: Anexo C sobre a Digital Credentials API; o esquema de URI personalizado do Anexo A é opcional para as carteiras | Não | Sim |
Qual protocolo transporta qual formato, segundo o ARF.[1]
Os atestados SD-JWT VC "não podem ser usados em apresentações por proximidade". A ISO/IEC 18013-7 "pode ser usada apenas para solicitar e apresentar atestados em formato compatível com a [ISO/IEC 18013-5]". O OpenID4VP "é adequado apenas para fluxos de transação de apresentação remota" e transporta os dois formatos.[1] O OpenID4VP 1.0 tornou-se Especificação Final em 10 de julho de 2025.[5]
Vídeo pendente: flow-eudi-openid4vp
Uma apresentação remota a partir de uma carteira com OpenID4VP, do início ao fim.
O ARF não recomenda esquemas de URI personalizados entre dispositivos, porque esses fluxos "são vulneráveis a ataques de phishing e de retransmissão", e indica a Digital Credentials API como alternativa.[1] Essa API ainda é um rascunho do W3C, e o Chrome 141 a ativa por padrão.[9][10] A ISO lista a especificação técnica de 2024 da 18013-7 como retirada e substituída, com uma terceira edição em desenvolvimento, então verifique qual edição o seu código adota.[7][8] Os detalhes da solicitação estão no guia do verificador OpenID4VP.
O que o Regulamento de Execução (UE) 2026/1731 exige para o PID
A primeira regra sobre os formatos do PID, o Regulamento de Execução (UE) 2024/2977, dizia que o PID "deve ser emitido em dois formatos": ISO/IEC 18013-5:2021 e o Verifiable Credentials Data Model 1.1.[2][3] O ato modificativo de julho de 2026 substituiu essa frase. Agora o PID "deve ser emitido em conformidade com as normas estabelecidas no anexo II do Regulamento de Execução (UE) 2024/2979, cláusulas 5 (formato SD-JWT VC) e 6 (formato ISO/IEC-mdoc)".[2]
- 4 de dezembro de 2024Primeira regra2024/2977: 18013-5 e VCDM 1.1.
- 22 de julho de 2026Alteração2026/1731: SD-JWT VC e mdoc.
- 23 de julho de 2026ARF v3.0.0Alinhado com os atos modificativos.
- 24 de dezembro de 2026Prazo das carteirasUma carteira por Estado-Membro.
- 11 de agosto de 2028RetratoO requisito de retrato se aplica, salvo se o usuário recusar expressamente, quando aplicável.
Como evoluiu a legislação sobre os formatos de PID.[1][2][3][6]
O mesmo ato define dois perfis de apresentação em seu anexo ao Regulamento de Execução (UE) 2024/2982: um "perfil ISO/IEC-mdoc" e um "perfil OpenID4VC-HAIP".[2]
- Envie seu certificado de registro: um elemento de
verifier_info"deve incluir o certificado de registro".[2] - Use seu certificado de acesso como certificado folha com o Client Identifier Prefix
x509_hash.[2] - Siga o "Anexo C da ISO/IEC 18013-7:2025" para mdoc via Digital Credentials API.[2]
O registro é abordado no guia para partes confiantes da EUDI Wallet, e o calendário em prazos da EUDI Wallet para 2026 e 2027.
SD-JWT VC vs. mdoc (ISO/IEC 18013-5): tabela comparativa
| Característica | SD-JWT VC | mdoc (ISO/IEC 18013-5) |
|---|---|---|
| Codificação | JSON Web Token | CBOR, binário |
| Divulgação seletiva | Hashes com salt | Hashes com salt |
| Principal caso de uso no ARF | Remoto, por exemplo identificação remota | Proximidade, por exemplo carteira de habilitação móvel |
| Obrigação da carteira | Obrigatório | Obrigatório |
| PID emitido neste formato | Sim | Sim |
| Proximidade | Não | Sim, ISO/IEC 18013-5 |
| Remoto | OpenID4VP com HAIP | OpenID4VP com HAIP, ou ISO/IEC 18013-7 |
| Vinculação ao dispositivo | Opcional no formato, obrigatória para PIDs | Obrigatória na norma |
| Identificador de formato no OpenID4VP | dc+sd-jwt | mso_mdoc |
| Caminho das declarações | Chaves JSON | Namespace, depois identificador do elemento de dados |
Fonte: ARF, exceto a linha do PID (Regulamento de Execução 2026/1731) e as duas últimas linhas (OpenID4VP 1.0).[1][2][4]
As carteiras de habilitação móveis nos Estados Unidos se baseiam na ISO/IEC 18013-5 para proximidade.[7][8] A solução de verificação de idade da UE define a prova de conhecimento zero como seu mecanismo de apresentação obrigatório, "com a apresentação simples em mDoc como alternativa".[13] A EVO Wallet da Moldávia documenta o OpenID4VP 1.0 com um mdoc ISO/IEC 18013-5, com perfil conforme o HAIP 1.0.[11]
Qual formato uma parte confiante deve suportar
As unidades de carteira processam os dois formatos, e o PID é emitido em ambos.[1][2] Os textos lidos para este guia não contêm nenhuma disposição que obrigue uma parte confiante a solicitar os dois. A leitura prática: um verificador remoto pode pedir qualquer um deles, e um leitor sem conexão à internet precisa de mdoc, o único formato que funciona em proximidade.[1]
1Liste onde você encontra o usuário
Site, app, balcão ou catraca.
Algum deles é um fluxo de proximidade
Implemente mdoc (ISO/IEC 18013-5)
Ele também funciona remotamente.
Comece com SD-JWT VC
JSON sobre OpenID4VP com HAIP.
2Mantenha a camada de consulta neutra quanto ao formato
Uma única consulta DCQL pode indicar os dois formatos.
3Verifique emissor, revogação e vinculação
As mesmas verificações valem para os dois.
A Digital Credentials Query Language (DCQL) do OpenID4VP permite que uma única solicitação leve uma consulta dc+sd-jwt e uma consulta mso_mdoc lado a lado. A especificação mostra uma solicitação desse tipo.[4] Segundo o ARF, a parte confiante verifica a assinatura do emissor com base em uma âncora de confiança de uma Lista de Confiança ou de uma Lista de Entidades Confiáveis, verifica a revogação por meio de uma lista de status ou lista de revogação e verifica a vinculação ao dispositivo.[1]
Pelo eIDAS 2, Regulamento (UE) 2024/1183, cada Estado-Membro deve disponibilizar pelo menos uma carteira até 24 de dezembro de 2026, e as partes confiantes privadas obrigadas a usar autenticação forte do usuário devem aceitá-la a pedido do usuário até 24 de dezembro de 2027, com isenção para microempresas e pequenas empresas.[6] A situação de cada país está no acompanhamento do lançamento da EUDI Wallet.
Bibliotecas e ferramentas de teste
As fontes deste guia não citam bibliotecas de código aberto, por isso esta seção não cita nenhuma. Elas indicam onde testar e o que verificar em qualquer biblioteca que você escolher.
- Execute os testes de conformidade em conformance.eudi.dev, citados nas notas de versão do ARF v3.0.0.[1]
- Leia a documentação da implementação de referência em docs.eudi.dev.[1]
- Estude um verificador publicado: o Banco Nacional da Moldávia disponibilizou um verificador de demonstração com código-fonte para instituições financeiras.[12]
- Confirme que a biblioteca segue o HAIP, e não apenas as especificações básicas.[1]
- Confirme qual edição da ISO/IEC 18013-7 ela implementa.[2][8]
Como a Didit ajuda na verificação com a EUDI Wallet
A aceitação da EUDI Wallet chega em breve à Didit: está no nosso roadmap, alinhada ao cronograma da EUDI Wallet, no mesmo fluxo de trabalho que você usa hoje. Você já pode verificar pessoas remotamente.
- Cinco eIDs nacionais já funcionam na Didit por meio de carteiras de identidade digital: MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID. Veja verificação de eID.
- Todos os demais usam verificação de documentos com leitura do chip NFC, prova de vida e comparação facial. Uma verificação KYC completa custa $0.33.
- A triagem AML roda no mesmo fluxo por $0.20.
A documentação das carteiras mostra como os eIDs são ativados por país.
A Didit fornece
- Logins com eID nacional e a rota por documento em um único fluxo de trabalho
- As evidências de cada verificação
Fica com você
- Seu registro como parte confiante de carteira
- A escolha dos formatos e atributos que você solicita
- A decisão de onboarding e suas políticas
Planeje seus formatos de carteira conosco
Conte para nós quais são seus países e onde você encontra seus usuários, e comece hoje com eIDs nacionais e documentos.
Principais conclusões
- As carteiras lidam com SD-JWT VC e com mdoc (ISO/IEC 18013-5), e o PID é emitido nos dois formatos.
- Ambos usam hashes com salt para a divulgação seletiva. Eles diferem na codificação: JSON versus CBOR.
- O SD-JWT VC é apenas remoto. O mdoc funciona por proximidade e remotamente.
- O OpenID4VP com HAIP transporta os dois formatos, então um único verificador pode solicitar qualquer um deles.
Perguntas frequentes
O que é um SD-JWT VC?
Uma credencial verificável empacotada como um Selectively Disclosable JSON Web Token. O emissor assina os digests das declarações, e a carteira revela apenas as declarações que o usuário aprova.[1]
O que é um mdoc segundo a ISO/IEC 18013-5?
Um documento móvel no formato CBOR, definido inicialmente para carteiras de habilitação móveis. O restante da norma é genérico e pode transportar outros atestados, incluindo PIDs.[1]
Qual é a diferença entre SD-JWT VC e mdoc?
Codificação e alcance. O SD-JWT VC é JSON e funciona apenas remotamente; o mdoc é CBOR e também funciona por proximidade. Ambos usam hashes com salt para a divulgação seletiva.[1]
Quais formatos o PID da carteira europeia de identidade digital (EUDI Wallet) usa?
Ambos. O Regulamento de Execução (UE) 2026/1731 estabelece que o PID é emitido conforme o formato SD-JWT VC e o formato ISO/IEC-mdoc.[2]
Uma parte confiante precisa suportar os dois formatos?
Os textos lidos para este guia obrigam as carteiras a processar os dois formatos e não dizem que uma parte confiante deve solicitar ambos. Um verificador remoto pode pedir qualquer um deles. Um leitor por proximidade precisa de mdoc.[1][2]
Como funciona a divulgação seletiva no SD-JWT VC?
O token assinado contém digests no lugar dos valores das declarações. Cada declaração trafega como uma disclosure com um valor aleatório, o nome e o valor. O verificador calcula o hash da disclosure e procura o digest.[4]
O que é key binding, e é a mesma coisa que a autenticação do mdoc?
Ambos são nomes para a vinculação ao dispositivo (device binding), a prova de que a credencial pertence a chaves na carteira do usuário. Ela é obrigatória para PIDs.[1]
O OpenID4VP funciona com mdoc?
Sim. O OpenID4VP transporta os dois formatos, com o identificador mso_mdoc para mdoc e dc+sd-jwt para SD-JWT VC. A ISO/IEC 18013-7 é a outra opção remota e transporta apenas mdoc.[1][4]
Onde posso testar um verificador para os dois formatos?
Use os testes de conformidade em conformance.eudi.dev e a documentação em docs.eudi.dev. O Banco Nacional da Moldávia também publicou um verificador de demonstração com código-fonte.[1][12]
Fontes
- Architecture and Reference Framework v3.0.0, eu-digital-identity-wallet no GitHub, versão de 23 de julho de 2026.
- Regulamento de Execução (UE) 2026/1731 da Comissão, EUR-Lex, Jornal Oficial de 22 de julho de 2026.
- Regulamento de Execução (UE) 2024/2977 da Comissão sobre dados de identificação pessoal, EUR-Lex, Jornal Oficial de 4 de dezembro de 2024.
- OpenID for Verifiable Presentations 1.0, OpenID Foundation, Especificação Final.
- OpenID for Verifiable Presentations 1.0 Final Specification Approved, OpenID Foundation, 10 de julho de 2025.
- Regulamento (UE) 2024/1183 (eIDAS 2), EUR-Lex, Jornal Oficial de 30 de abril de 2024.
- Série ISO/IEC 18013, carteira de habilitação móvel, página da norma na ISO.
- ISO/IEC 18013-7, página da norma na ISO.
- Digital Credentials, rascunho do W3C.
- Digital Credentials API shipped, Chrome for Developers.
- Guia do desenvolvedor da EVO Wallet, Governo da Moldávia, egov4dev.
- Verificador de demonstração do BNM, Governo da Moldávia, egov4dev.
- Solução da UE para verificação de idade, portal técnico, ageverification.dev.
SD-JWT VC e mdoc (ISO/IEC 18013-5) são duas codificações da mesma promessa: atributos assinados que o usuário controla. Veja como a Didit aborda a aceitação de carteiras na página da solução EUDI Wallet e todos os esquemas nacionais em esquemas de eID por país.
Verifique pessoas remotamente enquanto as carteiras são implantadas
Use agora os eIDs nacionais e a via documental e fale conosco sobre a EUDI Wallet.
Artigos relacionados
- e-Devlet para empresas: verificação de identidade na Turquia
- Integração Singpass Myinfo: guia para empresas em Singapura
- Integração com Cl@ve na Espanha: quem pode se conectar e o que usar no lugar
- Verificação PhilSys: como as empresas checam a National ID
- Verificador OpenID4VP: aceitar a carteira europeia de identidade digital (EUDI Wallet)
- Entenda o regulamento eIDAS e as mudanças trazidas pelo eIDAS 2 (2024/1183)