Visão geral das credenciais digitais

As credenciais digitais são documentos verificáveis criptograficamente que podem ser usados para autenticar, autorizar ou fornecer informações sobre um usuário. Normalmente, são documentos como carteiras de habilitação, passaportes digitais, cartões de embarque etc. Eles residem em contêineres virtuais chamados de carteiras digitais e fazem parte de um padrão do W3C que especifica como acessá-los e recuperá-los. Esse padrão é implementado para casos de uso da Web com a API W3C Credential Management e no Android, com a API DigitalCredential do Gerenciador de credenciais.

Entender as credenciais digitais

No mundo físico, uma pessoa pode guardar a identidade na carteira e apresentá-la a uma parte solicitante quando solicitada:

Imagem mostrando o fluxo de uma interação normal da Carteira
Figura 1. O processo de atender a uma solicitação de credencial do mundo físico. O solicitante pede uma credencial específica ao usuário. Em seguida, o usuário seleciona e recupera o cartão da carteira física. Por fim, o usuário fornece a credencial ao solicitante.

Nesse caso, o usuário geralmente tem uma única carteira e recupera as credenciais solicitadas para apresentar ao solicitante. As carteiras são, em grande parte, intercambiáveis e geralmente podem armazenar as mesmas coisas.

As credenciais digitais têm algumas diferenças principais:

  1. Espera-se que os usuários tenham várias carteiras que podem conter várias credenciais diferentes. As carteiras determinam quais credenciais podem ser armazenadas nelas.
  2. O solicitante agora é um aplicativo, e não uma pessoa real, e é chamado de verificador.
  3. A apresentação de credenciais acontece no software, o que significa que uma plataforma de API recupera e apresenta as credenciais. No Android, isso é o Credential Manager.

Assim, o Gerenciador de credenciais assume várias funções que antes eram tratadas pelo usuário:

  1. No Android, as carteiras precisam registrar os metadados das credenciais no Gerenciador de credenciais para serem listadas na interface dele.
  2. O Gerenciador de credenciais faz a correspondência de credenciais entre carteiras com base na solicitação e apresenta uma lista para o usuário selecionar.
  3. Quando o usuário seleciona uma credencial na lista, o Gerenciador de credenciais invoca a carteira, que processa o restante da transação (mostrando interfaces etc.) e retorna a credencial ao aplicativo.

Esse fluxo é mostrado aqui:

Imagem mostrando o fluxo de uma interação de credencial digital
Figura 2. Modelo de interação para verificação de credenciais digitais. O Gerenciador de credenciais usa os metadados das credenciais pré-registradas nas carteiras do usuário para corresponder à solicitação de um verificador e solicita que o usuário selecione uma credencial. O Gerenciador de credenciais direciona o fluxo de atividades para a carteira correspondente, que processa o restante da transação e retorna a credencial ao verificador. Observação: o verificador precisa processar e verificar a resposta da credencial quando ela for retornada.

Experiência do usuário

Como mostrado no fluxo do Android, o usuário só precisa interagir uma vez com a interface do Gerenciador de credenciais para selecionar a credencial adequada. Confira um exemplo de como o seletor fica:

Imagem mostrando a interface de credenciais digitais no Gerenciador de credenciais
Figura 3. A interface de credenciais digitais.

Padrões

As solicitações de credenciais digitais são criadas usando o padrão OpenID4VP. Confira exemplos de solicitações no site de demonstração de credenciais digitais.

As respostas de credenciais digitais geralmente são retornadas em um formato padronizado. Elas são mantidas por diferentes órgãos de padronização e incluem credenciais verificáveis do W3C, sd-jwt e mdoc.

Protocolos personalizados também são possíveis, mas recomendamos usar um dos protocolos padrão no seu aplicativo.

Fazer um teste

É possível testar o fluxo de credenciais digitais em várias plataformas com uma carteira Android e um verificador baseado na Web:

  1. Instale a amostra pública da CMWallet no seu smartphone Android. Para fazer isso, extraia do repositório e instale diretamente do Android Studio ou acesse https://github.com/digitalcredentialsdev/CMWallet/actions e selecione o build mais recente para acessar o arquivo app-debug.apk mais recente.
  2. Abra a CMWallet para registrar os metadados com o Credential Manager. Verifique se o Bluetooth está ativado para permitir que os dispositivos se conectem.
  3. Acesse https://digital-credentials.dev/ e selecione Request Credentials (OpenID4VP).
  4. Aceite as solicitações de aviso e leia o QR code com seu smartphone. Em seguida, selecione "Usar chave de acesso" e toque na confirmação para mostrar as credenciais disponíveis.
  5. Selecione a credencial da CMWallet para retornar ao navegador. O navegador deve mostrar a credencial retornada.

Veja também

  • Para saber mais sobre como usar o Gerenciador de credenciais para solicitar credenciais digitais no app, leia a página da API Credential Verifier.
  • Para saber mais sobre como criar uma carteira digital usando o Gerenciador de credenciais, leia a página da API Credential Holder.