Pular para o conteúdo principal
Didit levanta US$ 7,5 milhões para construir a infraestrutura para identidade e fraude
Didit
Voltar para o blog
Blog · 6 de outubro de 2026

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.

Por DiditAtualizado
sd-jwt-vc-vs-mdoc-cover.png

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]

Última revisão: 5 de outubro de 2026 · Não constitui assessoria jurídica

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]

PerguntaSD-JWT VCmdoc (ISO/IEC 18013-5)
Nome da provaKey bindingmdoc authentication
Exigida pelo formatoOpcional na especificaçãoObrigatória na norma
Onde fica a chave do titularA declaração cnfDentro do mdoc assinado pelo emissor
O que a carteira retorna via OpenID4VPO SD-JWT com um Key Binding JWTUm DeviceResponse com uma assinatura ou MAC sobre a transcrição da sessão
O que a vincula à sua solicitaçãononce e aud no Key Binding JWTO 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]

Usuário Carteira Seu leitor
1Abre a carteira
2Mostra QR code ou tag NFC
3Conecta, canal seguro
4Solicitação de apresentação

A carteira autentica o leitor

5Pede aprovação
6Aprova
7Elementos de dados selecionados

Uma apresentação por proximidade com mdoc (ISO/IEC 18013-5), de forma simplificada.[1]

O que o usuário vê:

EUDI Wallet

Mostre seu documento

Mostrar QR code

1O usuário abre a carteira e inicia uma apresentação.

EUDI Wallet

Deixe o leitor escanear

Ou aproxime do leitor.

2Um QR code ou uma aproximação NFC estabelece o canal.

EUDI Wallet

Escolha o que compartilhar

  • SobrenomeCompartilhado
  • Data de nascimentoCompartilhado
  • Local de nascimentoNão compartilhado

Compartilhar

3A carteira identifica o leitor e o usuário aprova.

EUDI Wallet

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]

ProtocoloOndeSD-JWT VCmdoc (ISO/IEC 18013-5)
ISO/IEC 18013-5Proximidade: QR ou NFC, depois NFC, Bluetooth Low Energy ou Wi-Fi AwareNãoSim
OpenID4VP com HAIPRemota: redirecionamentos e esquemas de URI personalizados, ou a Digital Credentials APISimSim
ISO/IEC 18013-7Remota: Anexo C sobre a Digital Credentials API; o esquema de URI personalizado do Anexo A é opcional para as carteirasNãoSim

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]

  1. 4 de dezembro de 2024Primeira regra2024/2977: 18013-5 e VCDM 1.1.
  2. 22 de julho de 2026Alteração2026/1731: SD-JWT VC e mdoc.
  3. 23 de julho de 2026ARF v3.0.0Alinhado com os atos modificativos.
  4. 24 de dezembro de 2026Prazo das carteirasUma carteira por Estado-Membro.
  5. 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ísticaSD-JWT VCmdoc (ISO/IEC 18013-5)
CodificaçãoJSON Web TokenCBOR, binário
Divulgação seletivaHashes com saltHashes com salt
Principal caso de uso no ARFRemoto, por exemplo identificação remotaProximidade, por exemplo carteira de habilitação móvel
Obrigação da carteiraObrigatórioObrigatório
PID emitido neste formatoSimSim
ProximidadeNãoSim, ISO/IEC 18013-5
RemotoOpenID4VP com HAIPOpenID4VP com HAIP, ou ISO/IEC 18013-7
Vinculação ao dispositivoOpcional no formato, obrigatória para PIDsObrigatória na norma
Identificador de formato no OpenID4VPdc+sd-jwtmso_mdoc
Caminho das declaraçõesChaves JSONNamespace, 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

Sim

Implemente mdoc (ISO/IEC 18013-5)

Ele também funciona remotamente.

Não

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.

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.

Fale conoscoComece grátisLeia a documentação

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

  1. Architecture and Reference Framework v3.0.0, eu-digital-identity-wallet no GitHub, versão de 23 de julho de 2026.
  2. Regulamento de Execução (UE) 2026/1731 da Comissão, EUR-Lex, Jornal Oficial de 22 de julho de 2026.
  3. 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.
  4. OpenID for Verifiable Presentations 1.0, OpenID Foundation, Especificação Final.
  5. OpenID for Verifiable Presentations 1.0 Final Specification Approved, OpenID Foundation, 10 de julho de 2025.
  6. Regulamento (UE) 2024/1183 (eIDAS 2), EUR-Lex, Jornal Oficial de 30 de abril de 2024.
  7. Série ISO/IEC 18013, carteira de habilitação móvel, página da norma na ISO.
  8. ISO/IEC 18013-7, página da norma na ISO.
  9. Digital Credentials, rascunho do W3C.
  10. Digital Credentials API shipped, Chrome for Developers.
  11. Guia do desenvolvedor da EVO Wallet, Governo da Moldávia, egov4dev.
  12. Verificador de demonstração do BNM, Governo da Moldávia, egov4dev.
  13. 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.

Comece grátisFale conosco

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitoramento de Transações e Análise de Carteiras. Integre em 5 minutos.

Peça para uma IA resumir esta página