Assinaturas Anônimas Universais: unindo o passado, o presente e o futuro da autenticação anônima
24 de janeiro de 2024 Jesus Diaz Vico 8 minutos de leitura
Recentemente, obtivemos o artigo ’ Fundamentos de Assinaturas Anônimas: Definições Formais, Requisitos Simplificados e uma Construção Baseada em Suposições Gerais ’ aceito no FC’24 – a edição de 2024 da conferência de Criptografia Financeira. Este artigo apresenta Assinaturas Anônimas Universais (UAS) .
Estamos muito entusiasmados com isso, pois, além de unir vários subcampos no domínio da autenticação anônima, o UAS abre o caminho para o que acreditamos que poderia ser (parte do) futuro da Identidade Autossoberana e algo que definitivamente impulsionaremos para a integração dentro do Oferta de Atala .
Mas chega de introdução. Do que se trata o UAS?
Um pouco de história
Em 1985, David Chaum pensou pela primeira vez em uma credencial criptográfica que as pessoas pudessem usar sem vazar sua identidade, mas ainda dando aos provedores de serviços a garantia de que estavam falando com uma pessoa legítima. Muitas variantes foram propostas, geralmente aproveitando o conceito de atributos atestados – que os proprietários de credenciais podem escolher seletivamente se devem ou não ser revelados. Isso é conhecido como esquemas de credenciais anônimas (AC).
Em 1991, Chaum e van Heyst propuseram assinaturas de grupo (GS), que permitem aos membros de um grupo que possuem uma credencial de membro fazer algo semelhante aos ACs. Essas credenciais de membro geralmente não possuem atributos, mas as assinaturas produzidas pelos esquemas GS podem ser processadas por uma entidade confiável, que pode extrair o identificador do signatário anônimo.
Os esquemas AC e GS dependem de autoridades que emitem as credenciais necessárias para autenticar ou assinar. Tal entidade foi removida em 2001, quando Rivest, Shamir e Tauman idealizaram esquemas de Ring Signature (RS), que podem ser vistos como uma espécie de assinatura de grupo que não pode ser anonimizada e não requer emissores.
Assim, em apenas 16 anos, a comunidade criptográfica encontrou três maneiras diferentes, mas semelhantes, de permitir que os usuários se autenticassem anonimamente. E desde 2001, muitas mais variantes foram propostas, por vezes encontrando pontos intermédios. Estes incluem esquemas RS que permitem vincular assinaturas ou assinaturas de grupo nas quais apenas os usuários podem vincular suas próprias assinaturas).
O que o UAS resolve?
Na verdade, não é apenas que os esquemas AC, GS e RS (e suas muitas variantes) tenham algumas coisas em comum. Suas próprias razões de ser estão intimamente relacionadas. Permitir que os usuários se autentiquem anonimamente, ao mesmo tempo que permite que os provedores de serviços tenham algum tipo de controle sobre as informações que podem extrair. Do ponto de vista teórico, isto reflecte-se no facto de os modelos de segurança serem normalmente muito semelhantes. Por exemplo, é preciso sempre pensar nas propriedades de anonimato, que capturam o que pode ser aprendido com uma assinatura. E sobre propriedades de não falsificação, que possuem variantes de rastreabilidade e não-frameabilidade, informando precisamente que tipo de verificadores de garantia de não falsificação (prestadores de serviços) e usuários podem esperar, respectivamente. Além disso, existem maneiras de construir esses esquemas a partir de blocos de construção muito semelhantes.
No entanto, por alguma razão, até agora, AC, GS, RS e outros foram estudados de forma independente. Além disso, embora dentro de algum ramo concreto, como o GS, existam modelos de segurança de referência como a linha de trabalho ‘Fundamentos de Assinaturas de Grupo’, nem sempre é esse o caso. Mesmo tendo modelos de referência, esses modelos de segurança geralmente estão vinculados a uma compensação concreta entre privacidade e utilidade.
Um exemplo prático
Digamos que você tenha um esquema AC que permite divulgar seletivamente atributos arbitrários no momento da apresentação da credencial. Mas então, você deseja reutilizá-lo em um cenário em que também precisa vincular apresentações do mesmo usuário (talvez você queira recompensar esse usuário com alguns pontos de fidelidade, ou talvez esse usuário esteja enviando spam para você e você queira bloqueá-lo!) . Resumindo, você deseja adicionar algum tipo de auditabilidade. Esta simples mudança a priori requer um novo modelo de segurança! Claro, se você souber fazer, pode ampliar a anterior e, se tiver sorte, a construção que tinha antes também pode ser atualizada facilmente. Mas se você já implementou esse tipo de coisa, já sabe que geralmente é esperar demais.
Um modelo dinâmico para compensações entre privacidade e utilidade na autenticação anônima
Exigir um modelo de segurança para cada compensação concreta entre privacidade e utilidade obviamente não é o ideal. E é precisamente isso que queríamos corrigir, já que este tipo de requisitos próximos, mas diferentes, são bastante comuns na prática. Então, o que fizemos foi criar o UAS, um modelo de segurança genérico que pode ser ajustado aqui e ali, para que você possa adaptá-lo às necessidades do seu caso de uso – em termos da necessária compensação entre privacidade e utilidade. . Com um pouco mais de detalhes, olhando de perto, há três pontos em que se pode querer adaptar este tipo de esquema de autenticação anônima:
- No momento da emissão: quando um usuário solicita uma credencial, ele pode ser solicitado a fornecer credenciais de endosso obtidas anteriormente que atendam à propriedade A ou B – ou pode nem mesmo ser obrigado a fornecer uma credencial!
- No momento da assinatura: quando um usuário deseja produzir uma assinatura anônima (ou apresentar sua credencial), o verificador pode exigir saber se os atributos da credencial atendem a determinados critérios.
- No momento da auditoria: os auditores podem exigir que algumas informações possam ser extraídas após a criação da assinatura. Também pode não haver auditores!
Capturamos essas diversas compensações por meio de ‘espaços reservados funcionais’ (os programadores podem pensar nisso como funções abstratas) nesses três pontos, que estão incorporados em uma estrutura de segurança que basicamente segue o modelo de anonimato-impossível de falsificação mencionado acima. O mais importante para os engenheiros é que, dada uma construção comprovadamente segura em nosso modelo, eles só precisariam especificar as funções concretas necessárias em cada etapa – emissão, assinatura e auditoria – e pronto! A segurança decorre da segurança da construção principal.
O que isso tem a ver com GS, AC ou RS?
Pergunta justa! Queríamos ter certeza de que nosso alegado modelo geral é realmente geral. Então, como fizemos isso? Bem, provamos que, ao fornecer funções concretas no momento da emissão, assinatura e auditoria, nossa construção genérica pode se comportar como um esquema GS, AC ou RS. Mais especificamente, provamos que tal variante da nossa construção é um esquema seguro GS, AC ou RS, sob os seus bem conhecidos modelos de segurança).
É claro que os artigos são finitos, então provamos apenas que GS, AC e RS básicos podem ser construídos a partir de uma construção genérica de UAS. Também esboçamos provas para variantes mais avançadas, como GS com abertura dependente de mensagem , assinaturas privadas multimodais e credenciais anônimas revogáveis . É fácil imaginar muitas outras variantes. Credenciais anônimas com recursos de auditoria estendidos, por exemplo, ou até mesmo esquemas de assinatura anônima com uma compensação entre privacidade e utilidade que ainda não foi considerada no espaço acadêmico.
O que é (ou pode ser) o próximo?
A primeira coisa que você deve ter notado é que este é um trabalho bastante teórico. Embora tudo pareça bem no papel, podem surgir problemas durante a codificação. Uma preocupação legítima é qual a penalidade paga em termos de eficiência por ter uma construção que pode ser adaptada para atender a muitos casos de uso diferentes. Esta é uma preocupação muito razoável. Afinal, esquemas concebidos com um único propósito em mente tendem a ser mais eficientes. Para melhor avaliar isso, estamos trabalhando em um protótipo. Inicialmente, queremos ter uma biblioteca que possa abstrair os detalhes internos e permitir que os desenvolvedores se concentrem na implementação dos espaços reservados funcionais concretos nos quais estão interessados. Em seguida, teste o quão eficiente é o resultado, a partir de nossa (atualmente apenas) construção genérica . Provavelmente isso será bom o suficiente para alguns aplicativos, mas não todos.
O artigo fornece uma construção genérica baseada em BBS+ , criptografia e provas ZK genéricas (não interativas). Isto certamente será aceitável se o que quisermos alcançar forem afirmações do tipo divulgação seletiva, mas provavelmente não será adequado se quisermos provar predicados mais expressivos, por exemplo. Assim, o próximo passo é pensar em construções genéricas alternativas que sejam mais adequadas para requisitos mais expressivos.
Além disso, do ponto de vista teórico, temos muitas ideias para o futuro. Permitir que emitentes e auditores alterem as suas funções, por exemplo. Neste momento, embora muitos emitentes ou auditores possam coexistir, cada um deles assume uma função. Ou adapte o modelo ao ambiente totalmente dinâmico e muito mais.
Como planejamos integrar o UAS ao Atala?
Conforme declarado, estamos trabalhando em uma implementação baseada em nossa construção genérica de BBS+, criptografia (ElGamal) e provas ZK (protocolos Sigma básicos). Este será o nosso ponto de partida, permitindo-nos testar esta nova tecnologia na pilha SSI fornecida pela Atala. Ao integrar o UAS na pilha Open Enterprise Agent da Atala , seremos capazes de aproveitar todas as ferramentas que a Atala inclui e começar a testar como o UAS se comporta em ambientes prontos para produção (com agentes, nós, protocolos de comunicação específicos de SSI, etc.), e também adaptá-lo às necessidades do mercado e das equipes de engenharia.
Fique de olho nas próximas atualizações!
1 post - 1 participant