Lucky Thirteen

folclore

criptografia

Um ataque de temporização de 2013 contra o padding CBC no TLS.

O Lucky Thirteen media diferenças mínimas de tempo no processamento do padding CBC pelo TLS para recuperar texto claro byte a byte. Reforçou o argumento para abandonar o modo CBC em favor de cifras AEAD.

O Lucky Thirteen é um ataque de temporização sobre a construção CBC antiga do TLS. O protocolo calculava o MAC sobre o texto claro e depois preenchia, então a quantidade de trabalho que o servidor fazia ao rejeitar um registro dependia do preenchimento, e essa dependência era mensurável como uma diferença mínima de tempo.

A dificuldade de explorá-lo faz parte do que o torna instrutivo. O sinal está em microssegundos, exige muitos milhares de tentativas, e é mais fácil com proximidade de rede, então fica no limite da praticidade. Ainda assim valia corrigir, porque ataques só melhoram, e um canal lateral mensurável é uma vulnerabilidade cujo custo de exploração é um número em movimento.

A correção estrutural foi a ordem. MAC e depois criptografia coloca a verificação de integridade sobre dados já processados, que é o que cria a dependência de tempo; criptografar e depois autenticar, e os modos AEAD que substituíram ambos, verificam a integridade antes de tocar o texto claro. O TLS 1.3 removeu o CBC por essa razão. A lição geral é que comportamento em tempo constante é propriedade de projeto, e não detalhe de implementação que se acrescenta depois.

Também conhecido como: Lucky Thirteen, Lucky 13, CVE-2013-0169

Fontes

  • CVE-2013-0169 (2013)

Todos os verbetes do glossário