Resumo
- Alguns clientes repetiam uma negociação fracassada com versões cada vez mais antigas. Um atacante capaz de bloquear as primeiras tentativas passava a influenciar o próximo ClientHello.
- A recuperação de dados exigia ainda SSL 3.0 CBC, posição ativa no caminho, pedidos repetidos com o segredo e alteração de registros. O artigo original estimou 256 pedidos por byte recuperado.
TLS_FALLBACK_SCSVnão era uma cifra: declarava o recuo e permitia que o servidor rejeitasse localmente uma versão abaixo da maior que ele mantinha habilitada.
A negociação normal permitia ao cliente oferecer TLS 1.2 e ao servidor escolher a melhor versão comum. O resultado ficava protegido pelo handshake. A rota paralela nasceu para contornar servidores e middleboxes que quebravam ao receber mensagens mais novas.
Nessa rota, silêncio virava descrição de capacidade. Depois de uma falha, o cliente reduzia a versão máxima e tentava outra vez. Um intermediário ativo podia derrubar as tentativas modernas até que o próprio cliente se limitasse ao SSL 3.0. Não era necessário quebrar o TLS 1.2; bastava fazê-lo parecer incompatível.
O rebaixamento abria acesso a uma fraqueza diferente. No CBC do SSL 3.0, bytes arbitrários de padding não recebiam verificação determinística completa pelo MAC. O ataque Web descrito pelos pesquisadores fazia o navegador emitir pedidos HTTPS com cookie, alinhava o byte desejado ao fim de um bloco, trocava o bloco final e observava se o servidor aceitava o registro alterado.
Sob essas condições, a aceitação ocorria em média uma vez a cada 256 tentativas. Portanto, 256 pedidos por byte é uma expectativa, não um prazo nem uma taxa universal. O cenário também precisava de adversário no caminho, controle da forma do pedido, sessão CBC e repetição. Suporte a SSL 3.0 sozinho não revelava o cookie.
Desabilitar SSL 3.0 eliminava o caminho. Quando dependências legadas impediam o corte imediato, era preciso sinalizar que a oferta menor era uma repetição e deixar o servidor testar se ela fazia sentido.
RFC 7507 definiu {0x56,0x00} para esse fim. O valor aparece na lista de suites, mas nunca pode ser escolhido como algoritmo. Se o servidor suporta uma versão superior à anunciada no recuo, responde com o alerta fatal inappropriate_fallback(86).
É uma regra pequena e local. O cliente declara contexto; o servidor compara com sua configuração efetiva. O alerta, porém, não prova ataque, pois falhas comuns de rede também podem provocar o recuo. E SCSV não substitui a negociação correta nem conserta um endpoint limitado ao SSL 3.0.
OpenSSL incluiu suporte em 1.0.1j, 1.0.0o e 0.9.8zc. RFC 7568 proibiu SSL 3.0. RFC 8996 depois aposentou TLS 1.0 e 1.1 e tornou RFC 7507 obsoleto, já que TLS 1.3 usa sentinelas em ServerHello.Random.
Uma ponte de migração é saudável quando torna a exceção visível e também permite que ela desapareça.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
