COMO FUNCIONA A VERIFICAÇÃO
Verificado no seu navegador.
Selado para o enclave.
O que seu navegador verifica, o que nosso retransmissor vê e em que você ainda confia em nós.
Ainda sem avaliação independente
Enclave verificado primeiro
Como sabemos
Antes da sua primeira mensagem, o verificador de código aberto da Tinfoil confere no seu navegador o relatório assinado pelo chip. Um relatório que não se verifica interrompe tudo.
Selado na sua aba
Como sabemos
Cada solicitação é criptografada com EHBP (HPKE, AES-256-GCM) para a chave que a atestação indica, antes de sair.
O retransmissor vê bytes
Como sabemos
Nosso retransmissor verifica sua conta e sua cota e repassa o texto cifrado aos hosts da Tinfoil. Ele vê tamanhos, horários e sua conta, e não guarda nenhuma cópia.
Um comprovante por resposta
Como sabemos
Seu navegador verifica o enclave do modelo que respondeu, onde o hardware dele permite, e guarda o que encontrou junto com a resposta.
Quem poderia olhar, e o que impede.
A rede
Risco residual: Baixo- Obtém
- Bytes selados, tamanhos, horários
- Impedido por
- HTTPS e depois a selagem para o enclave
- Continua em aberto
- Tamanhos e horários do tráfego
Nosso retransmissor
Risco residual: Médio- Obtém
- Sua conta, IP, tamanhos, modelo
- Impedido por
- Selado na sua aba; ele não consegue abrir
- Continua em aberto
- Os metadados que ele vê
O host na nuvem
Risco residual: Médio- Obtém
- Memória do enclave criptografada
- Impedido por
- AMD SEV-SNP ou Intel TDX, com atestação
- Continua em aberto
- Falhas de hardware; as próprias declarações da Tinfoil
Um enclave falso
Risco residual: Baixo- Obtém
- Nada: sua aba o recusa
- Impedido por
- Atestação, verificada no seu navegador
- Continua em aberto
- Código verificado não é código revisado
Código do site alterado
Risco residual: Médio- Obtém
- O que você digita, antes da selagem
- Impedido por
- Manifesto, assinatura, sua própria build
- Continua em aberto
- Uma página não consegue responder totalmente por si mesma
A API para desenvolvedores
Risco residual: Alto- Obtém
- Sua solicitação, na memória
- Impedido por
- Sem armazenamento nem logs, pela nossa política
- Continua em aberto
- Você confia no nosso gateway
DENTRO DE UM SERVIDOR
Onde o enclave começa, e onde termina.
Role a página para desmontar um servidor de GPU: o que fica dentro do limite do enclave, e o que fica fora dele.
- Dissipador de calorA tampa de metal sobre os chips da GPU.
- Die da GPUOnde o modelo roda. A documentação da Tinfoil diz que suas GPUs NVIDIA (H100, H200 e B200) funcionam em modo de computação confidencial.
- Memória de alta largura de bandaGuarda os pesos do modelo, e a sua solicitação enquanto ela é respondida.
- Máquina virtual confidencialNo processador do servidor (AMD SEV-SNP ou Intel TDX): o roteador da Tinfoil e o servidor do modelo, em uma memória que o host não consegue ler. O chip dele assina o relatório que seu navegador confere.
- O limite do enclaveO que o hardware mantém fora do alcance do host, e o que a atestação descreve. Sua solicitação só é aberta dentro dele.
- O hostA placa, o hipervisor e os drivers dela, e quem a opera: fora do limite. Ela leva bytes selados para dentro e para fora.
Uma ilustração do tipo de máquina que a Tinfoil usa, não a imagem de uma máquina específica. O registro de versão assinado da Tinfoil indica as CPUs, a memória e as GPUs de cada enclave; o painel Verificado do espaço de trabalho mostra esses dados.
Ler o texto completoOcultar o texto completo
Em resumo
O Undergrove executa modelos de pesos abertos dentro de enclaves de hardware operados pela Tinfoil. Parte do que isso significa o seu navegador verifica por conta própria; parte é uma declaração da Tinfoil; e parte depende de nós. Veja o que é o quê.
Seu navegador verifica
- Que o enclave é um hardware genuíno executando o código que a Tinfoil publicou.
- Que cada solicitação é selada para a chave desse enclave antes de sair da sua aba.
- No comprovante de cada resposta, o enclave do modelo que respondeu, quando o hardware permite.
A Tinfoil declara
- Que não consegue acessar os próprios enclaves e que nada neles persiste entre reinicializações.
- Que as GPUs compatíveis dela rodam em modo de computação confidencial.
Você confia em nós para
- O código que este site envia ao seu navegador, que você pode comparar com a build.
- O que o retransmissor faz com o que consegue ver: tamanhos, horários e sua conta.
- O gateway da API para desenvolvedores, que lê as solicitações na memória.
Nada disso passou ainda por uma avaliação independente.
01 · Atestação
O chip responde pelo código.
Um enclave de hardware é uma parte de um servidor que o próprio host não consegue examinar: o processador criptografa a memória do enclave e mantém o software do host fora dela. Sozinho, isso seria só uma promessa. O que torna isso verificável é a atestação. Quando o enclave inicia, o processador mede o código que carregou e assina um relatório dessa medição com uma chave garantida pelo fabricante do chip. O relatório também indica a chave pública com a qual o enclave vai descriptografar.
Antes da sua primeira mensagem, o espaço de trabalho busca esse relatório do enclave roteador da Tinfoil, pelo nosso servidor, e executa nele, no seu navegador, o verificador de código aberto da Tinfoil. Buscá-lo por nós não muda nada: não conseguimos forjar a assinatura do chip, e um relatório que não passa na verificação interrompe tudo.
Correspondem: as solicitações são seladas para a chave que o relatório indica.
Algo falha: nada é enviado, e o espaço de trabalho diz por quê.
As verificações do verificador, em ordem
- Encontrar a versão que a Tinfoil publicou para este código.
- Conferir o relatório de atestação de hardware do enclave com as chaves de assinatura do fabricante do chip.
- Conferir o registro de build assinado da versão (Sigstore, a partir do GitHub).
- Comparar: o código medido no enclave precisa ser exatamente essa versão.
- Conferir se a chave de criptografia é a que a atestação do enclave indica.
Um relatório verificado é reutilizado por até dez minutos, nesta aba ou em outra aba deste site, e só se for exatamente o mesmo, pelo SHA-256. O espaço de trabalho mostra cada verificação em Verificado, e a página de arquitetura mostra o código que a executa.
02 · Selagem
Só o enclave pode abrir.
Com o enclave verificado, cada solicitação real é selada na sua aba antes de sair. O corpo dela é criptografado com EHBP, o protocolo da Tinfoil para criptografar corpos HTTP, para a chave que a atestação indicou. O EHBP usa HPKE, um padrão para criptografar para a chave pública de alguém: sua aba cria um par de chaves novo para a solicitação, combina-o com a chave do enclave em um segredo compartilhado e criptografa com AES-256-GCM.
A nova metade pública viaja ao lado do texto cifrado, como a chave encapsulada. Só a chave privada do enclave, que nunca sai do enclave, consegue transformá-la de volta no segredo. A resposta volta do mesmo jeito, em frames selados que sua aba abre à medida que chegam.
03 · O retransmissor
Bytes que ele não consegue ler.
As solicitações seladas vão para o nosso retransmissor, uma função na Vercel, em vez de irem direto para a Tinfoil. Ele verifica quem está pedindo e se a pessoa está dentro da cota, e coloca a chave da Tinfoil do Undergrove na solicitação, para que você não precise de uma conta na Tinfoil. Ele recusa tudo o que não for endereçado a um dos hosts da própria Tinfoil ou que não traga uma chave encapsulada.
Ele não consegue contar suas palavras, então estima o custo de cada solicitação pelo tamanho do texto cifrado, errando para mais. Ele não guarda nenhuma cópia, e os logs dele têm só nomes de rotas, códigos de status e tempos.
Por fora: o retransmissor vê
- Sua conta e seu endereço IP (pela Vercel, nossa hospedagem)
- O tamanho, o horário e o caminho de cada solicitação
- Qual modelo respondeu, a partir de um cabeçalho que a Tinfoil define
- Se a pesquisa na web ou imagens foram usadas, conforme seu navegador declara, para que possam ser cobradas
Selado por dentro: ele não consegue ler
- Suas mensagens e arquivos
- As respostas
- Suas instruções e notas de memória
04 · Comprovantes
Dois enclaves, e um comprovante para cada resposta.
O enclave roteador que seu navegador verificou não executa o modelo. Ele abre sua solicitação e a repassa ao enclave onde o modelo roda com as GPUs, que o próprio roteador verifica, segundo o código publicado dele, e indica em um cabeçalho de resposta.
Seu navegador então verifica também esse enclave indicado, com o mesmo verificador, com base no repositório que o roteador da Tinfoil fixa para aquele modelo. O que ele encontrou fica guardado com a resposta como um comprovante: o enclave, o código medido nele, a versão com que ele confere e a chave para a qual a solicitação foi selada. Um comprovante é o registro do próprio navegador, não assinado por nós nem pela Tinfoil; a atestação por trás dele é assinada pela AMD e pelo GitHub, então qualquer pessoa pode verificá-la de novo.
- Verificado
- Hardware genuíno, executando uma versão publicada do repositório que o roteador da Tinfoil fixa para o modelo.
- Não verificado
- Hardware que o verificador do navegador ainda não consegue ler: ele lê relatórios AMD SEV-SNP, então um enclave em Intel TDX é registrado como não verificado.
- Não confirmado
- A verificação foi executada e uma etapa falhou, por exemplo um enclave que já está em uma versão mais nova do que aquela com que o serviço da Tinfoil o associa.
05 · A API para desenvolvedores
Um caminho diferente, dito com clareza.
Um código que chama a API para desenvolvedores envia a solicitação por HTTPS ao nosso gateway, que a lê: para verificá-la, aplicar limites e executar ferramentas. Ele a lê na memória e nunca a armazena nem a registra em log. Depois, o gateway faz o que seu navegador faz no espaço de trabalho: verifica o enclave com o SDK da Tinfoil e sela a solicitação para ele.
Então, neste caminho, você nos confia a solicitação enquanto o gateway a mantém. O que você ainda pode verificar é o enclave: cada resposta da rota da Tinfoil traz cabeçalhos que indicam o pacote de atestação que o gateway verificou, para que você verifique de novo. A documentação para desenvolvedores mostra como.
GET /v1/attestation?sha256= devolve para você conferir de novo.06 · Esta página
Verificando o código que verifica.
Tudo o que está acima roda em código que este site envia ao seu navegador, então esse código também importa. Cada build gera um manifesto: o SHA-256 de cada arquivo que o site serve e o commit a partir do qual ele foi gerado.
Uma página não consegue responder totalmente por si mesma: uma verificação que roda na página só é tão honesta quanto a página. A verificação mais forte não depende de nós: refaça a build do commit você mesmo no ambiente fixado e compare os manifestos.
npm run rebuild:site) deve gerar o mesmo manifesto, byte a byte; qualquer pessoa pode executar e comparar, sem precisar nos pedir.07 · Limites
O que isto não prova.
- As declarações da Tinfoil continuam sendo da Tinfoil. Que ela não consegue acessar os próprios enclaves, que nada neles persiste entre reinicializações e que as GPUs dela rodam em modo de computação confidencial é o que a Tinfoil diz. Seu navegador verifica que o hardware é genuíno e executa o código publicado.
- O hardware faz parte daquilo em que você confia. A proteção é tão boa quanto os processadores, o firmware deles e as chaves dos fabricantes dos chips, e enclaves de hardware já tiveram vulnerabilidades publicadas antes.
- Um dos trechos depende de código publicado. Que sua solicitação foi do roteador para o enclave do modelo depende do código publicado do roteador. Seu navegador só consegue verificar o enclave do modelo em AMD SEV-SNP; em Intel TDX, ele fica registrado como não verificado.
- O retransmissor vê o lado de fora. Sua conta, seu endereço IP, tamanhos, horários e qual modelo respondeu.
- Publicado não é o mesmo que revisado. O verificador mostra qual código roda, não que o código não tem falhas.
- Ainda sem avaliação independente. Nenhum auditor revisou este design nem o código dele até agora.
Para saber quem poderia ver o quê, observador por observador, leia o modelo de ameaças.
08 · Vá além
Veja cada parte funcionando.
- ArquiteturaAs quatro paradas de uma mensagem, o que cada uma pode ver e o código que faz isso.
- Sele você mesmoDigite uma mensagem e veja-a ser selada para o enclave, etapa por etapa.
- Tente decifrarUma solicitação criptografada, byte a byte como nosso retransmissor a viu.
- Modelo de ameaçasQuem poderia ver o quê: nossa hospedagem, nós, a Tinfoil, a rede, uma ordem judicial.
- Verificar esta páginaCalcule o hash do código que esta página carregou e compare com a build.
- TransparênciaContagens de solicitações criptografadas e verificações de enclave, e o commit em produção.