Saltar para o conteúdo principal

DID explicado: o que é um identificador descentralizado

Um identificador descentralizado, quase sempre escrito DID, é um nome para uma parte que ninguém tem de emitir e que ninguém pode retirar. É a resposta a uma pergunta com que qualquer credencial digital acaba por se deparar: a wallet contém uma declaração assinada, então quem a assinou, e como o verifica sem escrever a quem mantém o registo?

Esta página é a versão em linguagem simples. Cobre de que é feito um DID, o que acontece quando se resolve um, em que diferem os métodos comuns e, igualmente importante, o que um DID por si só não diz.

De que é feito um DID

Um DID é uma linha de texto em três partes separadas por dois pontos. A primeira parte nunca muda. A segunda indica o método, e a terceira é aquilo de que esse método precisa para encontrar o documento certo.

Essa parte do meio é a única decisão verdadeira. Tudo o que se discute a propósito dos DID, onde ficam os dados, quem os pode alterar, quanto custa mantê-los a funcionar, é decidido pelo método e por mais nada.

did:web:credenco.com

did

Esquema

Sempre as mesmas três letras. Não dizem mais do que: o que se segue é um identificador descentralizado.

web

Método

As regras para encontrar e atualizar o documento. Esta é a escolha com consequências reais, porque decide quem tem de manter o identificador acessível.

credenco.com

Identificador específico do método

A parte que só esse método sabe ler. Aqui é um nome de domínio, noutros casos pode ser uma entrada de registo ou a própria chave pública.

Todos os DID são construídos da mesma forma, seja qual for o método que usam.

O que acontece quando se resolve um

Por si só, um DID não faz nada. O seu valor surge no momento em que alguém o resolve: transforma a cadeia de texto no pequeno documento que está por trás, que lista as chaves públicas usadas pelo seu sujeito e onde esse sujeito pode ser contactado.

1. Tem um identificador

Chega uma credencial que nomeia a parte que a assinou. Até aqui é apenas uma cadeia de texto, e não prova nada.

2. Um resolvedor lê o método

O nome do método diz ao resolvedor para onde ir: obter um ficheiro de um domínio, ler um registo distribuído, ou extrair a chave do próprio identificador.

3. Volta um documento

Lista as chaves públicas que o sujeito está a usar agora, e os pontos onde pode ser contactado.

4. Verifica a assinatura

Sem conta em lado nenhum, sem chave de API e sem pedir autorização a quem opera o método.

Resolver é consultar, não é iniciar sessão. Ninguém lhe concede acesso a isso.

Porquê não um nome de domínio ou um certificado

A web já tem formas de dizer quem é alguém, por isso a pergunta justa é o que acrescenta um DID. Um nome de domínio diz para onde enviar um pedido, mas nada diz sobre que chaves pertencem à parte que está por trás. Um certificado liga de facto uma chave a um nome, e fá-lo bem, mas apenas enquanto uma autoridade o continuar a afirmar e apenas para a chave para que foi emitido.

Uma credencial tem o hábito incómodo de sobreviver a ambos. Um diploma continua a ser um diploma daqui a vinte anos, muito depois de a chave de assinatura ter sido rodada e de o certificado que a cobria ter expirado. Como um DID separa o nome das chaves, o emissor pode substituir uma chave sem que o identificador mude e sem reemitir tudo o que já assinou.

As chaves mudam, o nome não

Rodar uma chave comprometida significa publicar um novo documento no mesmo identificador. Todas as referências ao emissor continuam válidas.

Verificar não precisa da autorização de ninguém

Um verificador resolve o identificador e confere a matemática. Não há conta a abrir junto do emissor nem limite de pedidos no serviço de outra pessoa.

Os métodos com que vai realmente deparar-se

Foram registados bem mais de cem métodos, e quase todos podem ser ignorados com segurança. Três cobrem quase tudo aquilo com que uma organização se depara no ecossistema europeu.

did:web

O documento é um ficheiro num domínio que já controla. Nada de novo para operar e um custo de entrada próximo de zero, e é por isso que a maioria das organizações começa aqui. O senão é que quem controla o domínio controla o identificador, e não fica registo do que o documento dizia ontem.

Ler a definição

did:webvh

O mesmo ficheiro alojado num domínio, mais um registo apenas de adição de todas as versões que já teve. Um verificador pode ver que a chave em que confia hoje foi ali colocada pela parte que detinha o identificador ontem, que é precisamente a lacuna que o did:web deixa em aberto.

Ler a definição

did:key

O identificador é a chave pública, codificada. Não há nada para alojar nem nada para obter, o que o torna ideal para identidades de curta duração e descartáveis. Também significa que a chave nunca pode ser rodada, por isso é a escolha errada para algo que deva durar.

Os restantes constam do registo de métodos DID do W3C. Trate um método que não conste dele, ou que só um produto suporte, como uma dependência desse produto.

O que um DID não lhe diz

É aqui que a maioria das explicações sobre DID para em silêncio, e é a parte que decide se um programa de wallet funciona. Um DID prova continuidade: a parte que assinou esta credencial detém a mesma chave que a parte que assinou aquela. Não prova nada sobre quem essa parte é no mundo real.

Qualquer pessoa pode criar um DID em poucos segundos, incluindo alguém que se faça passar por uma universidade. Determinar que um identificador pertence mesmo a uma instituição acreditada é um trabalho separado, feito por uma lista de confiança, um certificado qualificado ou uma atestação de uma parte em que o verificador já confia. Com o eIDAS 2.0 é exatamente para isso que servem as listas de confiança e o registo das partes confiantes.

Lidas em conjunto, as coisas são simples: o DID transporta as chaves, o trust framework transporta o significado, e um verificador precisa de ambos antes de aceitar seja o que for.

O que isto significa para si

Emissor

Um identificador que sobrevive a todas as rotações de chave, para que uma credencial assinada há anos continue verificável e uma chave comprometida seja uma tarefa operacional em vez de uma recolha.

Verificador

Pode verificar uma assinatura sem conta, sem contrato e sem uma integração por emissor. O que continua a precisar é de uma lista de confiança que diga quais identificadores aceitar.

Titular da wallet

Nada a gerir. Os identificadores estão dentro das suas credenciais, e a wallet resolve-os por si quando lhe mostra quem emitiu o quê.

Termos relacionados

Perguntas frequentes

É preciso uma blockchain para usar DID?

Não. Essa associação vem dos métodos que foram construídos primeiro, não da norma. A especificação nada diz sobre onde um documento tem de residir, e os métodos de uso diário na Europa, did:web e did:webvh, são ambos ficheiros servidos por HTTPS comum a partir de um domínio que o proprietário já tem.

Porque não usar simplesmente um nome de domínio?

Um domínio diz onde encontrar algo, não que chaves lhe pertencem, e um certificado liga chaves a um nome enquanto uma autoridade o afirmar. Um DID dá-lhe as duas partes ao mesmo tempo e mantém o identificador estável enquanto as chaves por trás mudam, e é isso que torna uma credencial assinada há três anos ainda verificável hoje.

Que método devemos escolher?

Comece por quanto tempo o identificador tem de durar e por quem o pode alterar. Para um emissor cujas credenciais sobrevivem às chaves, o did:webvh dá aos verificadores o histórico de que precisam para confiar numa rotação. Para pilotos internos e identidades de curta duração, did:web ou did:key costuma bastar, e mudar mais tarde é uma migração comum e não uma reconstrução.

Um DID prova que uma organização é quem diz ser?

Não, e assumir que sim é o erro mais comum. Um DID prova que quem assinou duas coisas detinha a mesma chave privada. Se essa chave pertence a uma universidade acreditada ou a alguém que registou um domínio convincente é uma questão separada, respondida por uma lista de confiança, um certificado qualificado ou uma atestação de uma parte em que já confia.

Fontes

  1. W3C Decentralized Identifiers (DIDs)
  2. W3C DID Resolution
  3. W3C DID Extensions: Methods
  4. did:webvh explicado, na documentação para programadores da Credenco

Esta página é informativa e não constitui aconselhamento jurídico. Consulte diretamente a especificação do W3C para a redação oficial.

Fale connosco sobre emitir com um DID