Resumo

  • A revisão 12 é um Internet-Draft Experimental ativo, não um RFC nem prova de implementação ou publicação.
  • O JSON HTTPS expressa o estado desejado por uma origem; cadastro do operador e política da zone factory continuam controlando qualquer escrita no DNS.
  • Validação, geração do RRset, atualização autoritativa, convergência de cache, escolha do cliente, ECH e resultado da aplicação são etapas distintas.
  • Clientes comuns não devem usar o well-known no lugar do DNS, pois o bootstrap expõe o nome e pode receber configuração identificadora.

Uma ponte de operação não é uma API do navegador

Registros SVCB e HTTPS distribuem parâmetros de conexão pelo DNS. Como configurações públicas de ECH podem girar com frequência, o projeto propõe uma ponte entre uma origem que conhece seu TLS e uma zone factory com acesso de escrita à zona autoritativa.

A origem publica JSON por HTTPS; a zone factory busca, valida, converte e, se a política permitir, publica. O consumidor normal continua sendo o cliente DNS. A semelhança do conteúdo não torna os dois caminhos intercambiáveis.

Ao buscar diretamente o arquivo, o cliente precisa primeiro abrir HTTPS sem a configuração ECH que procura. Esse bootstrap revela o nome e os dados de ClientHello que ECH pretende proteger. A origem também pode responder com uma configuração única para aquele cliente, criando vetor de rastreamento.

Um fetch autenticado é só o primeiro recibo

HTTPS confirma que certa origem serviu um documento sob um certificado aceito. Não confirma que a zone factory cadastrou a origem, aceitou o owner name, entendeu os parâmetros, testou os endpoints, alterou a zona ou que caches receberam a nova geração.

O JSON é estado desejado. O resultado de validação é decisão de controle. O fragmento produzido é estado planejado. Serial e RRset autoritativos são estado aplicado. Consultas externas e clientes mostram estado distribuído.

Cada etapa precisa de identidade, tempo e hash. Um painel que mostra apenas “última coleta 200” mistura documento recusado, mudança ainda não aplicada e publicação já convergida.

Síntese desligada por padrão preserva autoridade

O rascunho diz que a configuração padrão não deveria sintetizar registros a partir de documentos encontrados. Ativar a síntese deve exigir mudança do operador. A existência de um arquivo público não é delegação DNS.

O cadastro deve fixar origem, porta, owner name, tipo de registro, política e responsável. Para nomes SVCB arbitrários, não existe em geral uma origem HTTP naturalmente autorizada; é preciso mapear nome e tipo a uma URL completa ou fonte local.

A origem fala por si. Um documento em 443 não descobre automaticamente um serviço em 8443 só porque compartilham host. Aliases, CDN e split-mode não ampliam essa autoridade sem recibos próprios.

JSON válido ainda pode ser impróprio

O objeto contém regeninterval e endpoints; chaves superiores desconhecidas são ignoradas e uma lista vazia é erro. Entradas podem representar ServiceMode ou AliasMode, mas o RRset resultante continua sujeito às regras SVCB/HTTPS.

Se a conversão falhar, um SvcParamKey não puder ser tratado ou o fragmento não passar nas verificações, o DNS não deve ser atualizado. Essa recusa pode não chegar à origem. Logo, o monitor precisa de parse, normalização, campos rejeitados, RRset gerado, versão de política e decisão.

“Sem mudança”, “mudou mas é inválido” e “válido porém negado” são estados diferentes. Comparar apenas texto bruto também é frágil: espaços podem mudar sem alterar DNS, enquanto transformação local pode alterar semântica.

ECH exige cobertura, não uma conexão exemplar

A zone factory deveria testar ECH nos endpoints apresentados antes de publicar. Talvez precise de cliente TLS capaz de usar ECHConfigList ainda ausente do DNS e observar sucesso real de ECH.

Um sucesso não aprova a lista inteira. Alguns ECHConfig podem falhar de propósito por GREASE. Multi-CDN pode oferecer vários endereços, mas o teste alcançar apenas um. Hints divergentes de A/AAAA precisam de autenticação webPKI nos endereços relevantes.

O recibo conserva endpoint, família, item ECHConfig, expectativa GREASE, certificado, ALPN, porta e resultado. Sem denominador, “ECH passou” não autoriza todos os caminhos.

Frequência não é expiração

regeninterval indica quando uma substituição pode ser gerada. Não é notAfter. A zone factory deveria usar TTL menor e tentar atualizar antes, mas origem, poll, commit, autoridades, resolvers e clientes seguem relógios distintos.

O projeto aceita alguma extensão de vida porque retry_configs tolera diferença de versão e remoções abruptas podem causar falha pior. Portanto, declarar rotação completa no momento da geração é incorreto.

Múltiplas zone factories podem divergir: uma entende um parâmetro, outra recusa; uma ajusta TTL por política. É preciso comparar RRsets semânticos, seriais e sondas autoritativas, não apenas o hash do JSON.

Saída precisa de contrato próprio

O documento não define como uma origem entra ou sai da lista de polling, nem como um servidor pede remoção de todos os HTTPS RRs. Uma origem que deixa o programa pode manter JSON antigo e continuar sendo publicada.

404 não é ordem segura de exclusão: pode ser falha temporária. Reter para sempre também é perigoso. Withdrawal precisa de autoridade, horário, substituição, serial e observação de drenagem de cache.

ECH, hints e aliases podem merecer estados de falha diferentes. Essa decisão pertence à governança, não a um cron job.

Compromisso curto pode produzir controle longo

Valores errados podem vazar privacidade ou degradar serviço com excesso de retry_configs. Como webPKI às vezes depende de DNS ou HTTP para provar controle, um invasor temporário que edita JSON pode influenciar hints e, numa cadeia fraca, obter efeito mais duradouro.

Isso é análise de risco, não relato de ataque. Hints divergentes devem ser comparados com A/AAAA e autenticados em todos os endereços. CAA pode fornecer contexto adicional. A mesma entrada comprometida não deve fechar roteamento e identidade.

Servir o recurso a partir de filesystem também exige impedir traversal e enumeração. O JSON carrega material público; nunca deve abrir caminho para a chave privada de ECH.

Fontes e limites

O pacote congelado reúne a revisão 12, registro, histórico e referências; TLS WG; SVCB/HTTPS; bootstrap DNS de ECH; ECH; well-known URI; TLS 1.3; ACME; CAA; registros IANA e key-share prediction.

As fontes estabelecem texto de protocolo e risco. Não provam zone factory, publicação DNS, ECH, convergência, emissão de certificado, tracking, comprometimento ou resultado real. A abertura é um caso construído.

Fontes