HTTP Strict Transport Security (HSTS)
O que é HTTP Strict Transport Security (HSTS)?
HTTP Strict Transport Security (HSTS)Política de segurança web enviada num cabeçalho HTTP que instrui o navegador a aceder a um domínio apenas via HTTPS durante o período declarado.
O HSTS, definido no RFC 6797, é sinalizado pelo cabeçalho de resposta Strict-Transport-Security. Quando um navegador compatível recebe este cabeçalho por HTTPS, memoriza a política durante o max-age declarado e atualiza automaticamente qualquer pedido futuro para esse host (e, opcionalmente, os seus subdomínios) para HTTPS, recusando-se a estabelecer ligação se o handshake TLS ou a validação do certificado falharem. Esta medida neutraliza ataques de SSL stripping (o sslstrip de Moxie Marlinspike, de 2009) e a injeção de cookies em texto simples.
O HSTS tem uma fraqueza estrutural: a confiança na primeira utilização (trust-on-first-use). Antes de o navegador ter visto o cabeçalho pela primeira vez, esse primeiro pedido ainda pode ser intercetado e rebaixado. A lista preload — um conjunto codificado dentro do Chromium, Firefox, Safari e Edge — fecha essa lacuna ao distribuir a política com o próprio navegador, forçando HTTPS mesmo na primeira visita. A submissão exige um max-age de pelo menos 31536000 (um ano), includeSubDomains e a diretiva preload, através de hstspreload.org. O Google Registry pré-carregou gTLDs inteiros como .dev e .app, pelo que qualquer domínio sob eles é apenas-HTTPS por omissão. Atenção: a remoção da lista preload propaga-se lentamente, por isso só use preload se puder comprometer-se com HTTPS em toda a parte a longo prazo.
flowchart TD
A[Navegador: primeira visita] -->|ainda sem politica| B{Na lista preload?}
B -->|sim| C[Forcar HTTPS de imediato]
B -->|nao| D[Pedido em texto simples possivel - risco TOFU]
D --> E[Servidor envia o cabecalho Strict-Transport-Security]
E --> F[Navegador guarda a politica por max-age]
F --> G[Todos os pedidos futuros atualizados para HTTPS]
G -->|certificado invalido| H[Falha total, sem excecao]● Exemplos
- 01
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- 02
Um banco submete o seu domínio principal à lista HSTS preload do Chromium.
● Perguntas frequentes
O que é HTTP Strict Transport Security (HSTS)?
Política de segurança web enviada num cabeçalho HTTP que instrui o navegador a aceder a um domínio apenas via HTTPS durante o período declarado. Pertence à categoria Segurança de rede da cibersegurança.
O que significa HTTP Strict Transport Security (HSTS)?
Política de segurança web enviada num cabeçalho HTTP que instrui o navegador a aceder a um domínio apenas via HTTPS durante o período declarado.
Como se defender contra HTTP Strict Transport Security (HSTS)?
As defesas contra HTTP Strict Transport Security (HSTS) costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para HTTP Strict Transport Security (HSTS)?
Nomes alternativos comuns: Strict-Transport-Security, Cabeçalho HSTS.