GREASE
folclorecriptografiaredes
Um mecanismo que envia valores fictícios aleatórios para manter implementações TLS tolerantes a extensões desconhecidas.
Generate Random Extensions And Sustain Extensibility (RFC 8701) injeta deliberadamente valores reservados e sem significado nos handshakes TLS para que servidores e middleboxes aprendam a ignorar o que não reconhecem, evitando que extensões futuras quebrem. Também aparece como um marcador distintivo em fingerprints TLS.
O GREASE resolve um problema causado por implementações bem-intencionadas. Quando um protocolo tem pontos de extensão, servidores que rejeitam tudo que não reconhecem acabam congelando o protocolo, porque implantar uma extensão genuinamente nova quebra as conexões com toda implementação rígida já em campo. O ponto de extensão existe e não pode ser usado.
O mecanismo é deliberadamente banal: os clientes anunciam valores reservados que não significam nada, escolhidos de modo que qualquer implementação correta os ignore. Um servidor que engasga com um valor desconhecido passa a quebrar imediata e visivelmente durante o desenvolvimento, em vez de anos depois, quando uma extensão real for implantada e as falhas forem a emergência de outra pessoa.
É por isso que o TLS 1.3 chegou a ser implantado. A tentativa anterior de evolução do protocolo esbarrou em middleboxes com expectativas rígidas, e a negociação de versão teve de ser redesenhada para parecer a versão antiga na rede. O GREASE é a inoculação contra a repetição disso, e sua lição generaliza: um ponto de extensão que nunca é exercitado é um ponto de extensão que não vai funcionar quando você finalmente precisar dele.
Também conhecido como: GREASE, Generate Random Extensions And Sustain Extensibility
Fontes
- RFC 8701 (2020)