Saltar para o conteúdo principal

A Digital Credentials API explicada

A Digital Credentials API é o acordo que permite a um website pedir uma credencial diretamente à sua wallet, através do browser e do sistema operativo do dispositivo que já tem na mão. No telemóvel onde está a sua wallet, não aparece nenhum código QR e não é enviado para outra app para depois voltar. Toca uma vez, o telemóvel mostra-lhe quem está a pedir e a decisão é sua. Num portátil, o browser mostra o seu próprio código QR para chegar ao seu telemóvel.

O desvio que elimina

Até agora, um website que quisesse algo de uma wallet tinha de fazer chegar o pedido a essa wallet de alguma forma. Na prática, isso significava colocar um código QR na página ou abrir um link que passa o visitante para uma app e, com sorte, o traz de volta. Ambos funcionam, e ambos perdem pessoas em cada passo.

É pior no telemóvel, onde o código QR está no mesmo ecrã que a câmara que o devia ler. A Digital Credentials API fecha essa lacuna ao tornar o pedido algo que o browser e o sistema operativo conseguem transportar sozinhos, porque já sabem que wallets existem no dispositivo.

No mesmo dispositivo

O visitante está no telemóvel onde se encontra a wallet. É aqui que a Digital Credentials API elimina por completo o código QR e a troca de app.

Entre dois dispositivos

O visitante está num portátil e a wallet está num telemóvel, por isso continua a ser preciso algo que os ligue. A diferença é que o próprio browser pode apresentar e gerir esse código.

Como funciona na prática

Do lado do visitante, é um único toque na página onde já estava. Nos bastidores, o browser passa o pedido ao sistema operativo, o sistema operativo encontra as wallets que conseguem responder e a wallet mostra o pedido para aprovação antes de ser partilhado o que quer que seja.

1. Website

Pede uma credencial ao browser em vez de mostrar um código QR ou abrir uma app

2. Browser e sistema operativo

Descobre que wallets no dispositivo contêm algo que corresponde e oferece apenas essas

3. Titular

Vê quem está a pedir e o quê, escolhe uma wallet e aprova ou recusa

4. De novo o website

Recebe a resposta aprovada na mesma página, que o visitante nunca abandonou

Um toque, uma página. Nada é enviado ao website até o titular o aprovar.

Porque é importante o browser estar envolvido

Um código QR é um papel ou uma imagem num ecrã, e não consegue dizer-lhe quem o colocou ali. É essa a base do phishing por QR: um atacante troca o código, a wallet abre e o pedido parece totalmente normal, porque nada no fluxo sabe de onde ele veio realmente.

Quando o pedido passa pelo browser, é o browser que diz à wallet que website está a pedir, e não pode ser convencido a mentir. A wallet pode mostrar ao titular o site verdadeiro e a resposta pode ficar associada a esse site, pelo que uma cópia capturada noutro lugar não serve a ninguém. É uma redução real da exposição à fraude, não apenas um ecrã mais fluido.

Como se articula com o OpenID4VP e a EUDI Wallet

É fácil ver isto como mais um standard entre os quais escolher. Não é. O OpenID4VP continua a ser a linguagem que uma parte confiante usa para dizer o que precisa e para ler a resposta que recebe, e a Digital Credentials API é simplesmente um caminho melhor para essa conversa, sobretudo quando tudo acontece num único dispositivo.

O mesmo se aplica à própria credencial. Um atestado da EUDI Wallet ou um mdoc chega exatamente no mesmo formato em que chegaria através de um código lido, pelo que as verificações que um verificador já faz não mudam. O que uma equipa ganha é a opção de evitar o desvio, sem reconstruir nada do que está por trás.

O suporte chega browser a browser e plataforma a plataforma, e não em todo o lado ao mesmo tempo, e é por isso que as partes confiantes o adotam a par do percurso com leitura de código e não em vez dele. A abordagem prática é usar a API onde o dispositivo a disponibiliza, recorrer a um código onde não disponibiliza e deixar essa alternativa desaparecer à medida que a cobertura aumenta.

O que isto significa para si

Parte confiante

Menos pessoas abandonam o fluxo, porque os passos onde antes desistiam desapareceram, e o browser diz à wallet quem é realmente, o que elimina uma via de phishing.

Titular da wallet

Um toque na página onde já está, um nome verdadeiro para quem está a pedir e nenhuma forma de um site saber que wallets tem, a não ser que diga que sim.

Fornecedor de wallet

A sua wallet é sugerida pelo sistema operativo sempre que contém algo adequado, pelo que ser encontrado já não depende de uma parte confiante decidir colocar um link para si.

Aprofundamento técnico

Esta página explica o que a tecnologia faz e a quem diz respeito. A nossa documentação para programadores cobre a implementação em si: as mensagens, os campos e os exemplos práticos de que uma equipa de integração precisa.

Ler a documentação técnica

Termos relacionados

Perguntas frequentes

Isto significa o fim dos códigos QR?

Não, reduz aquilo para que servem e muda quem os gera. Levar um pedido de um portátil para um telemóvel continua a exigir uma ponte entre os dois, e a API também cobre esse caso: é o browser que apresenta o código, em vez de cada website construir o seu. O que desaparece por completo é o código num telemóvel que já tem a wallet, onde nunca passou de uma solução de recurso.

O website consegue ver que wallets tenho instaladas?

Não. O website descreve o que está a pedir e é o sistema operativo que faz a correspondência no dispositivo. O site nunca fica a saber que wallets estão instaladas nem quais tinham uma correspondência. Se recusar, tudo o que fica a saber é que não recebeu nada, o que para ele é exatamente igual a não ter nenhuma credencial correspondente.

Isto substitui o OpenID4VP?

Não, os dois funcionam em conjunto. O OpenID4VP é a linguagem em que o pedido e a resposta são escritos, e isso não muda aqui. A Digital Credentials API é o canal de entrega no dispositivo, que substitui um código QR ou um link personalizado. Uma parte confiante que já utiliza OpenID4VP mantém a sua lógica de pedido e de verificação.

O que tem uma parte confiante de desenvolver, na prática?

Menos do que a maioria das equipas espera, porque o que muda é o front end. O pedido que o seu backend gera e as verificações que faz à resposta mantêm-se. O que acrescenta é a chamada ao browser e, enquanto o suporte ainda se estiver a alargar, uma alternativa pelo código QR para visitantes cujo browser ou dispositivo ainda não suporta a API.

Fontes

  1. W3C Digital Credentials API
  2. OpenID for Verifiable Presentations (OpenID4VP)

Esta página tem caráter informativo e não constitui aconselhamento jurídico. A Digital Credentials API ainda está em evolução, por isso consulte diretamente a especificação do W3C para a redação oficial.

Fale connosco sobre a integração com a EUDI Wallet