Resumo

  • O rascunho atual do CoSERV permite que o destinatário incapaz de satisfazer toda uma consulta RIM-ID devolva apenas um subconjunto; no limite, um conjunto vazio continua sendo um resultado válido.
  • Codificação determinística, vínculo criptográfico, assinatura e expiração comprovam propriedades da resposta entregue, não a cobertura do acervo que a produziu.
  • A operação deve manter um recibo de recuperação que conecte escopo da consulta, geração do conjunto de dados, itens pedidos, devolvidos e omitidos, procedência, cache, verificações e decisão local.

O que passou no teste

A arquitetura de atestação remota separa papéis para impedir que uma verificação técnica vire, por conveniência, uma afirmação irrestrita de confiança. O atestador produz evidência, o verificador a avalia e a parte confiante decide o que fazer. A RFC 9334 deixa claro que uma etapa não absorve a autoridade da seguinte.

Antes dessa avaliação, valores de referência e endossos precisam ser localizados. O Internet-Draft Concise Selector for Endorsements and Reference Values, conhecido como CoSERV, define consultas e resultados compactos para essa recuperação. A revisão 07 é um documento ativo do grupo de trabalho RATS. Não é uma RFC, um padrão aprovado ou uma posição final da IETF.

O desenho é rigoroso sobre o objeto retornado. A consulta usa CBOR determinístico. Na associação HTTP, esses bytes podem formar uma URL GET e uma chave de cache estáveis. A resposta assinada fica vinculada à consulta, de modo que trocar o resultado por outro, destinado a uma consulta diferente, compromete a verificação. O conjunto tem expiração obrigatória, não pode durar além do RIM que carrega e exclui RIMs inválidos.

Esse conjunto de garantias responde bem a perguntas essenciais: os bytes são os que o signatário emitiu? Permaneceram íntegros? O resultado pertence a esta consulta? Ainda está dentro da janela declarada? A pergunta sobre completude é de outra natureza: qual era a população relevante, o provedor a possuía por inteiro e todos os itens aplicáveis foram devolvidos?

Não há contradição em uma resposta ser autêntica e parcial. Também não há contradição em uma resposta recém-emitida refletir um acervo desatualizado. A assinatura não enxerga o que nunca entrou no conjunto de dados.

A resposta vazia não diz que o mundo está vazio

O ponto mais importante da revisão 07 para a operação aparece nas consultas por RIM-ID. Se o destinatário não consegue atender à consulta inteira, pode devolver um subconjunto. Na pior hipótese, o conjunto vazio ainda é válido.

A regra é prática. Um serviço com acervo parcial não deveria inventar conteúdo nem transformar desconhecimento em erro de sintaxe. Ele pode fornecer honestamente o que tem condições de fornecer. O problema começa quando uma tela traduz “válido” como “completo”.

Considere cinco chaves solicitadas e três retornadas. As três podem ser autênticas, atuais e exatamente vinculadas à consulta. A ausência das outras duas, porém, admite explicações distintas: o provedor nunca as coletou; elas existem, mas o solicitante não tem autorização; não correspondem ao seletor; a ingestão está atrasada; o formato não é suportado; uma falha no índice as ocultou. A assinatura protege as três presenças, não escolhe a causa das ausências.

Se nada é devolvido, a conclusão permitida continua estreita: aquele destinatário produziu validamente zero resultados segundo aquela troca. Não se segue que nenhum endosso ou valor de referência exista, que nenhuma fonte upstream o conheça ou que outra autorização, outro seletor ou uma geração posterior responderia do mesmo jeito.

Até a palavra “mais recente” tem escopo. Para tags com contador inteiro de versão, o maior contador identifica a revisão mais recente entre as candidatas disponíveis. Caso uma revisão publicada na origem ainda não tenha sido coletada, o máximo local será calculado corretamente e continuará não sendo o máximo existente.

Um seletor é uma escolha de enquadramento

Uma consulta de ambiente escolhe um único tipo: instância, grupo ou classe. Instância ou grupo não se combinam com classe na mesma consulta. Vários seletores do mesmo tipo operam como alternativas. Dentro de um seletor de classe, os campos preenchidos devem coincidir em conjunto; campos ausentes agem como curingas. Medições de ambientes com estado podem estreitar ainda mais a correspondência.

A gramática torna a consulta repetível. Não torna seu enquadramento inevitável. Alguém escolheu instância em vez de classe, preencheu certos campos e deixou outros abertos. Um campo estreito demais pode excluir material decisivo; um curinga largo demais pode reunir contextos inadequados ou expor um universo sensível.

Por isso, arquivar apenas o hash da consulta é insuficiente. O hash ajuda a provar que os bytes não mudaram, mas não explica quem aprovou o escopo, qual decisão ele deveria informar e quais alternativas foram descartadas. Sem essa justificativa, “não encontramos nada” pode significar apenas “procuramos com precisão onde nada apareceria”.

Há um contrapeso de privacidade. O próprio rascunho reconhece que seletores de instância podem ser sensíveis. Não faz sentido criar uma lista pública de dispositivos em nome da auditabilidade. Os bytes exatos podem permanecer em um repositório de evidências com acesso restrito, enquanto o registro operacional guarda uma impressão protegida, o tipo de seletor e a aprovação de escopo.

Procedência não é propriedade automática do pacote

Um resultado pode transportar artefatos de origem e artefatos coletados ou agregados por um intermediário. A assinatura do pacote coletado informa quem o montou e protege seus bytes. Ela não prova que todas as fontes foram consultadas, que todas as tarefas de coleta terminaram, que todos os formatos eram aceitos ou que nenhuma regra de licença e acesso retirou itens.

Um envelope pode chegar com lacre perfeito e ainda ter sido preenchido a partir de um arquivo com gavetas faltando. Verificar o lacre não recompõe a gaveta.

Também é preciso separar confiança rasa de confiança profunda. A parte confiante pode validar o invólucro CoSERV, um CoRIM interno, a autoridade de um endosso e, depois, decidir se a alegação vale para a evidência específica. Cada passo tem autoridade e falhas próprias. O sucesso da camada externa não concede automaticamente validade material a todas as alegações internas nem toma a decisão de negócio.

Expiração responde ao tempo, não à população. Ela limita a reutilização de uma resposta como se fosse atual e impede que o resultado dure mais que o RIM. Uma resposta criada agora, contudo, pode reproduzir fielmente uma coleção incompleta.

Um cache correto pode repetir uma lacuna

Consultas determinísticas funcionam bem como chaves estáveis de cache HTTP. Reutilizar resultados assinados dentro da validade reduz processamento e melhora disponibilidade. Em troca, surge uma linha do tempo adicional: quando o acervo do provedor mudou, quando o cache buscou o objeto e quando a parte confiante agiu.

O cache pode devolver repetidamente um subconjunto válido sem violar o protocolo. A falha de governança ocorre quando o log conserva só “assinatura válida”. Depois, ninguém sabe qual cache respondeu, quando recebeu o objeto, que diretivas de frescor aplicou, se houve revalidação ou se a geração do provedor mudou no intervalo.

Na revisão antecipada do HTTPDIR de 15 de agosto de 2026, Lucas Pardue marcou “Not Ready” e discutiu cache, privacidade, HEAD, tamanho da consulta, validadores e frescor. É a avaliação de um revisor, não consenso do grupo nem rejeição da IETF. O limite de completude decorre da própria permissão a subconjuntos e ao vazio; a revisão apenas mostra que o caminho HTTP cria estados adicionais dignos de registro.

O recibo operacional

Transformar a resposta CoSERV em certificado universal de completude seria pedir ao protocolo uma promessa improvável. Um artefato externo é mais honesto: um recibo de recuperação e cobertura. Ele deve unir pelo menos:

  • os bytes determinísticos da consulta, ou uma impressão protegida com acesso controlado ao original;
  • o perfil, o tipo de resultado e a lógica dos seletores;
  • as chaves RIM ou ramificações pedidas;
  • o provedor, a geração consultada e uma declaração delimitada do que o conjunto afirma cobrir;
  • chaves e artefatos devolvidos;
  • omissões conhecidas e motivos como indisponível, não autorizado, sem correspondência, inválido, não suportado ou falha de recuperação;
  • a distinção entre fonte e material coletado, com a cadeia de procedência;
  • validade do RIM, expiração da resposta, momento da recuperação e caminho de cache;
  • os resultados das verificações; e
  • a avaliação local, a ação tomada e o gatilho para nova consulta.

O recibo não deve terminar em mais um sinal único de sucesso. Cobertura é uma declaração do provedor. Assinar o motivo de uma omissão prova que o provedor o declarou, não que a explicação seja verdadeira. A decisão da parte confiante é um terceiro fato.

Um registro legível poderia mostrar: três de cinco chaves voltaram; uma foi omitida por autorização e outra não estava disponível naquela geração; as três passaram na verificação; o sistema restringiu a carga até obter uma segunda fonte ou nova geração. Isso permite revisar a decisão. “CoSERV OK” não permite.

Fontes