← Últimos artigos
💻 computer science

Bootstrapping Mutual Attestation with Kleene's Second Recursion Theorem

Este artigo resolve o regresso infinito da atestação mútua ao aplicar o segundo teorema de recursão de Kleene para construir nós que podem reconstruir e verificar mutuamente o código-fonte exato uns dos outros apenas a partir de dados integrados, eliminando, assim, a necessidade de terceiros de confiança ou valores de referência externos através de diferentes arquiteturas de computação.

Autores originais: Takuma Imamura

Publicado 2026-08-24
📖 7 min de leitura🧠 Leitura aprofundada

Autores originais: Takuma Imamura

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

No mundo da computação segura, existe uma necessidade fundamental de provar que um programa de computador é exatamente o que afirma ser. Este processo, conhecido como atestação remota, é o equivalente digital de um segurança verificando uma carteira de habilitação antes de deixar alguém entrar em um edifício restrito. O segurança compara a foto e os detalhes na carteira com um banco de dados confiável do que uma carteção válida deveria ser. Se os detalhes coincidirem, a pessoa é autorizada a entrar. No reino digital, um programa de computador gera uma impressão digital única, chamada de medição, que é comparada com um valor de referência — uma impressão digital conhecida e esperada — mantida pelo verificador. Este sistema funciona perfeitamente quando uma parte verifica outra, mas encontra um muro lógico quando dois ou mais computadores precisam verificar uns aos outros simultaneamente. Se o Computador A precisa saber a impressão digital do Computador B para verificá-lo, e o Computador B precisa saber a impressão digital do Computador A para verificá-lo, nenhum deles pode iniciar o processo sem já ter a resposta. Isso cria uma dependência circular onde cada máquina espera pela outra para fornecer a própria prova necessária para começar.

Pesquisadores da Acompany Co., Ltd. em Nagoya, Japão, encontraram uma maneira de quebrar esse círculo sem depender de uma autoridade central ou de uma lista pré-existente de códigos confiáveis. Eles abordaram o problema não como um enigma de segurança, mas como uma questão de lógica e autorreferência. Ao aplicar um princípio matemático conhecido como o segundo teorema da recursão de Kleene, eles demonstraram que um grupo de computadores pode ser programado para conter o código-fonte exato de todos os outros membros dentro de sua própria memória. Isso permite que cada máquina reconstrua o código de seus pares do zero, calcule a impressão digital correta em tempo real e verifique a identidade do outro sem nunca precisar perguntar a uma parte externa pela resposta. A equipe construiu protótipos funcionais para provar este conceito, mostrando que dois computadores seguros puderam verificar com sucesso a integridade um do outro usando apenas dados que carregavam consigo.

O cerne do problema reside na natureza dos ambientes seguros modernos, como os Ambientes de Execução Confiáveis (Trusted Execution Environments), que são espaços isolados onde dados sensíveis podem ser processados sem medo de serem vistos ou adulterados. Em uma configuração típica, um único computador prova sua confiabilidade para um servidor. O servidor detém uma lista de impressões digitais de códigos aprovados e verifica o relatório do computador contra essa lista. No entanto, em uma rede descentralizada onde múltiplos computadores devem colaborar em tarefas confidenciais, cada máquina atua tanto como o verificador quanto como o verificado. Se eles tentarem codificar rigidamente as impressões digitais esperadas de seus parceiros em seu próprio software, encontrarão um loop infinito. Para saber a impressão digital do Parceiro B, o Computador A deve conhecer o código do Parceiro B. Mas o código do Parceiro B contém a impressão digital do Computador A, o que requer conhecer o código do Computador A, que contém a impressão digital do Parceiro B, e assim por diante, para sempre. Soluções anteriores para este dilema envolveram a introdução de uma terceira parte confiável para distribuir as impressões digitais, ou o uso de recursos de hardware específicos para injetar os valores durante a inicialização. Esses métodos funcionam, mas reintroduzem um ponto central de confiança ou vinculam a solução a um tipo específico de hardware, limitando onde e como podem ser usados.

Os pesquisadores propuseram um caminho diferente ao tratar o grupo de computadores como um sistema único e interconectado. Eles perceberam que a dependência circular poderia ser resolvida se cada computador pudesse gerar o código de seus pares a partir de um conjunto compartilhado de instruções. Usando um conceito da ciência da computação que permite que um programa se refira ao seu próprio código-fonte, eles projetaram um método onde um grupo de programas é transformado em um conjunto de unidades autossuficientes. Cada unidade carrega uma descrição completa de toda a família de programas dentro de si. Quando um computador inicia, ele lê esta descrição interna, reconstrói o código-fonte exato de seu parceiro e, então, calcula a impressão digital do parceiro. Como a reconstrução é feita de dentro para fora, o computador não precisa confiar em uma lista externa; ele simplesmente computa a resposta com base nos dados que já possui. Esta abordagem remove a necessidade de uma autoridade central e funciona em diferentes tipos de hardware seguro sem exigir mudanças nas ferramentas de segurança subjacentes.

Para provar esta teoria, a equipe criou duas demonstrações funcionais. A primeira focou em sistemas que medem o código diretamente enquanto ele é executado, como sistemas Linux padrão. Eles construíram uma ferramenta chamada PyReflect, que recebe um modelo de código e gera automaticamente os programas autorreferenciais. Em seu teste, duas máquinas virtuais apoiadas por um módulo de segurança de software trocaram relatórios de verificação com sucesso. Cada máquina reconstruiu o código da outra, calculou a impressão digital esperada e confirmou que o par estava executando o software correto. A segunda demonstração abordou sistemas que medem um artefato de compilação (build artifact), como o AWS Nitro Enclaves, que são contêineres seguros especializados. Aqui, o processo é mais complexo porque o computador deve não apenas reconstruir o código-fonte, mas também reconstruir o arquivo executável final exatamente como ele foi criado. Eles desenvolveram uma ferramenta chamada NixReflect para lidar com isso. Em seu experimento, dois enclaves seguros foram lançados, e cada um reconstruiu de forma independente a imagem inteira do outro a partir dos dados armazenados em sua própria memória. Eles então calcularam a impressão digital da imagem reconstruída e a compararam com a reportada pelo par. Os resultados coincidiram perfeitamente, provando que as máquinas podem derivar os valores de referência corretos a partir de seus próprios dados internos.

Os pesquisadores também mediram o custo desta abordagem. No caso dos enclaves seguros, o processo de reconstrução da imagem do par levou significativamente mais tempo do que simplesmente calcular um hash do código. Para o caso de teste específico, o processo de reconstrução e reconstrução de build levou aproximadamente 6,8 segundos, enquanto um cálculo de hash simples levou menos de 0,1 segundos. Espera-se que esta diferença cresça para aplicações mais complexas, já que o computador deve percorrer toda a cadeia de dependências para reconstruir o software. Apesar deste custo de tempo, o experimento confirmou que o método é viável e não requer nenhum novo hardware ou uma terceira parte confiável. A equipe observou que, para sistemas mais complexos, seria possível delegar o processo de reconstrução para um ambiente de build seguro antes da implantação, o que reduziria o custo de tempo de execução, embora isso introduziria um outro conjunto de suposições de confiança em relação ao ambiente de build.

A significância deste trabalho reside em sua capacidade de resolver um impasse lógico que há muito tempo impede a computação segura totalmente descentralizada. Ao mostrar que a atestação mútua pode ser alcançada através da reconstrução autossuficiente, os pesquisadores forneceram um caminho para redes ponto a ponto onde nenhuma entidade única é confiada por todos os participantes. A solução é independente de arquitetura, o que significa que pode ser aplicada a vários tipos de hardware seguro sem a necessidade de modificações customizadas no hardware. Ela se baseia nas propriedades fundamentais da computação em vez de recursos específicos de hardware, tornando-a uma ferramenta versátil para o futuro da computação confidencial. Embora os protótipos atuais sejam demonstrações de prova de conceito, eles estabelecem que o problema de inicialização do valor de referência pode ser resolvido sem uma terceira parte confiável, abrindo as portas para redes seguras mais robustas e independentes.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →