Resumo

  • A RFC 9841 estende o Brotli com dicionários compartilhados, janelas grandes e framing; compressor e descompressor precisam dos mesmos bytes de dicionário.
  • Uma troca no dicionário pode mudar o conteúdo descomprimido, enquanto o tamanho observado pode revelar informação nos dois sentidos entre dicionário e carga.
  • O recibo operacional deve vincular payload, hash criptográfico do dicionário, origem, escopo, validade, versão do decoder e a escolha de comprimir ou não dados secretos.

O objeto comprimido chegou intacto, mas a prova estava incompleta. Seu hash dizia que os bytes não tinham mudado; não dizia quais bytes externos o decoder consultara para reconstruí-lo. Quando o nome do dicionário aponta para uma versão móvel, dois nós honestos podem produzir histórias diferentes a partir da mesma carga.

A RFC 9841, publicada como Informational em setembro de 2025, especifica o Shared Brotli Compressed Data Format. As versões texto e XML preservam o mesmo registro. Ela acrescenta ao Brotli dicionários, janela ampla e enquadramento. Não prova adoção, economia ou segurança de produto algum.

O dicionário participa do significado

Seus dados podem fornecer histórico LZ77, substituir a lista estática de palavras, trocar transformações ou selecionar combinações por contexto. A exigência é binária: compressor e descompressor usam exatamente o mesmo dicionário. Similaridade ou nome igual não bastam.

Um recibo reproduzível junta o hash da carga ao digest criptográfico do dicionário, ao perfil, framing e build do decoder. Registra ainda origem de criação, proprietário, revisão, escopo, ativação, aposentadoria e rollback. Quando o dicionário resulta de vários recursos, a receita também é parte do artefato. A RFC 8878 sobre Zstandard reforça que essa custódia é uma questão geral de compressão com dependência externa.

A RFC 9841 traz um identificador HighwayHash de 256 bits para conjuntos conhecidos e confiáveis, mas esclarece que ele não oferece segurança de colisão diante de um adversário. Identificação eficiente e prova hostil não são sinônimos. Onde substituição e cadeia de suprimento importam, SHA-256 ou outra função criptográfica adequada precisa integrar o recibo.

O canal lateral ganhou uma nova fonte

Compressão cria sinais de tamanho. Se alguém controla parte da entrada e observa a saída, pode testar correspondências com um segredo. A RFC 7457 registra CRIME; o CVE-2012-4929 mantém uma referência pública, e a pesquisa sobre canais laterais de compressão trata a classe mais ampla.

O ponto novo para governança é considerar o dicionário uma fonte de dados. Ele pode revelar o payload; o payload também pode revelar o dicionário. Um corpus montado com páginas autenticadas, frases de clientes ou modelos internos não vira público porque foi empacotado como otimização. Do outro lado, uma base pública pode ajudar sondagens contra um segredo colocado no mesmo contexto.

A proteção mais forte continua sendo não comprimir informação privada sob observação adversária. Mesma origem, nada de dicionário entre domínios, menor controle do atacante, atualização lenta e separação de contextos são reduções de risco, não selos. A classificação vem antes do benchmark: payload, dicionário e prefixos manipuláveis precisam aparecer no modelo.

Negociação HTTP expõe os atributos da dependência

A companheira RFC 9842, com registro próprio, define a negociação HTTP e os content codings dcb e dcz. Available-Dictionary carrega SHA-256. O recurso tem de obedecer às regras de mesma origem e legibilidade, além de estar fresco ou explicitamente apto ao uso stale. Se a mitigação exigida falhar, a resposta é descartada.

Isso se encaixa na semântica HTTP, no cache HTTP e nos controles de respostas stale. A RFC 6265 ajuda a comparar escopo de estado. A RFC 9842 também avisa que o hash pode virar identificador de rastreamento e exige particionamento equivalente ou mais rígido que o de cookies.

Rastreamento e particionamento no navegador ficam para outra investigação, sem duplicar esta tese. Aqui, basta notar que a identidade operacional contém origem, permissão de leitura, frescor e partição. Um nome de arquivo não contém nada disso.

A IANA publica os registros de parâmetros e codificações HTTP e de campos HTTP. A RFC 9651 ilustra metadados estruturados. Registro significa coordenação, não suporte comprovado.

O teste útil tenta quebrar a associação

Troque os bytes sem trocar o nome. Force uma cópia antiga. Apresente o hash certo na origem errada. Mude o decoder. Coloque frases escolhidas perto de um valor privado, exceda limites e remova o recurso. Observe se o sistema fecha, faz fallback visível ou serve conteúdo diferente.

Cada medição precisa carregar hashes, versão, perfil, enquadramento, origem e estado de cache. Razão de compressão sem memória, latência, determinismo, variação de tamanho e rollback é um número sem cadeia de custódia.

O padrão deve coordenar o mínimo necessário; decisões sobre fluxo, segredo e cadência permanecem locais. Essa distribuição de autoridade só funciona quando o código em execução produz recibos. Chamar a dependência de “cache” não reduz o poder que ela exerce sobre o resultado.

O que não foi demonstrado

Nenhum navegador, servidor, CDN, biblioteca, payload ou dicionário real foi testado. Não houve medição de taxa, CPU, memória, vazamento ou sucesso de ataque. Publicação não implica uso.

O resultado justificável é arquitetural: bytes externos necessários à descompressão pertencem ao artefato; bytes capazes de interagir com segredos por tamanho pertencem à fronteira confidencial. O ganho de banda precisa conservar essa dupla identidade.

Fontes