← Últimos artigos
💻 computer science

Resolving an Apparent Key-Dependent Timing Side-Channel in Bouncy Castle ML-DSA-65 Signing: A Pre-Registered Discrimination

Este artigo demonstra que um aparente canal lateral de tempo dependente da chave na implementação ML-DSA-65 do Bouncy Castle é, na verdade, um artefato estatístico da variação natural da amostragem de rejeição, o qual desaparece quando o tempo é analisado dentro de um protocolo pré-registrado que condiciona o número exato de iterações realizadas, confirmando assim a segurança da implementação em todos os conjuntos de parâmetros padronizados.

Autores originais: Arpan Sharma

Publicado 2026-09-09
📖 7 min de leitura🧠 Leitura aprofundada

Autores originais: Arpan Sharma

Artigo original sob licença CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

No mundo da segurança digital, as fechaduras mais poderosas são frequentemente aquelas que levam mais tempo para serem abertas. Durante décadas, matemáticos projetaram sistemas de criptografia que dependem de problemas complexos para manter os dados seguros. À medida que os computadores se tornam mais potentes e o horizonte dos computadores quânticos se aproxima, cientistas correm para construir novas fechaduras que nem mesmo essas máquinas futuras possam quebrar. Um dos novos designs mais promissores chama-se ML-DSA. É um método para criar assinaturas digitais, o equivalente eletrônico de uma assinatura manuscrita em um contrato ou certificado. Essas assinaturas provam que uma mensagem veio de uma pessoa específica e não foi adulterada.

No entanto, um novo tipo de perigo surgiu junto com essas fechaduras matemáticas. Não é uma falha na matemática em si, mas uma falha na forma como a matemática é executada em um computador. Isso é conhecido como ataque de canal lateral de tempo (timing side-channel attack). Imagine um cofre que estala um pouco mais alto quando a combinação correta é inserida, ou uma porta que leva uma fração de segundo a mais para abrir quando a chave certa é usada. Se um atacante puder medir essas minúsculas diferenças de tempo com extrema precisão, poderá ser capaz de deduzir a chave secreta. Para o novo sistema ML-DSA, os designers incorporaram um recurso de segurança: o processo envolve muita tentativa e erro. O computador tenta gerar uma assinatura, verifica se ela é válida e, se não for, descarta-a e tenta novamente. Como o número de tentativas varia aleatoriamente, o tempo total para assinar uma mensagem também varia. Essa aleatoriedade serve para ocultar a chave secreta, tornando impossível dizer se um atraso específico foi causado pela chave ou apenas por má sorte.

Um pesquisador chamado Arpan Sharma investigou recentemente se esse recurso de segurança estava funcionando conforme o pretendido em uma biblioteca de software popular chamada Bouncy Castle. Esta biblioteca é amplamente utilizada para proteger tudo, desde atualizações de software até conexões web seguras. Quando Sharma analisou os dados pela primeira vez, viu algo que parecia um vazamento. Ao comparar o tempo necessário para assinar mensagens com vinte chaves secretas diferentes, ele descobriu que algumas chaves levavam consistentemente mais tempo do que outras. A diferença era pequena — cerca de 1,35 por cento — mas, no mundo da segurança, mesmo uma diferença minúscula e consistente pode ser um sinal de que um segredo está sendo revelado. A questão era se essa diferença era uma vulnerabilidade real, uma falha no código que permitia que a chave secreta influenciasse o tempo, ou simplesmente uma ilusão estatística causada pela natureza aleatória do sistema.

Para responder a isso, Sharma não confiou em um palpite simples ou em um teste rápido. Ele desenhou um experimento rigoroso e planejado para separar o sinal do ruído. O núcleo de seu método foi observar o trabalho que o computador realmente realizava para cada assinatura individual, em vez de olhar apenas para o tempo final. Ele construiu uma ferramenta que registrava exatamente quantas vezes o computador teve que tentar e falhar antes de encontrar uma assinatura válida. Isso é crucial porque o tempo que leva para assinar uma mensagem está diretamente ligado a quantas vezes o computador precisa tentar novamente. Se uma chave tivesse tido a "sorte" de receber mensagens que exigiam menos tentativas, ela terminaria mais rápido, não porque a chave fosse diferente, mas porque a matemática foi mais fácil naquele dia.

Sharma realizou uma campanha massiva, gerando mais de 1,2 milhão de assinaturas para cada uma das vinte chaves. Ele então agrupou as assinaturas com base na quantidade exata de trabalho que exigiam. Ele fez uma pergunta simples: se duas assinaturas exigissem exatamente o mesmo número de tentativas e passassem pelos mesmos passos, elas ainda levariam tempos diferentes dependendo de qual chave era usada? A resposta foi um não definitivo. Uma vez que ele contabilizou o número de tentativas, a diferença de tempo entre as chaves desapareceu. As variações ínfimas que restaram eram tão pequenas que podiam ser explicadas pelas flutuações naturais e aleatórias do processador e da memória do computador, e não pelas próprias chaves secretas.

O estudo foi além para garantir que os resultados não fossem um acaso do computador específico ou da forma como o software era carregado na memória. Sharma repetiu o experimento com um novo conjunto de chaves e um novo conjunto de mensagens. Ele também realizou um teste de controle onde embaralhou a ordem em que o computador processava os dados. Se as diferenças de tempo fossem causadas pelas chaves secretas, a ordem das chaves não importaria. Se as diferenças fossem causadas pelo local onde os dados residiam na memória do computador, a ordem alteraria os resultados. O experimento mostrou que as diferenças de tempo não seguiam as chaves; elas seguiam o layout da memória. Isso confirmou que o vazamento aparente era um artefato do ambiente do computador, não uma falha na segurança do código.

A pesquisa também examinou a única parte do código que era conhecida por ser ligeiramente diferente dependendo dos dados. O software verifica o tamanho dos números durante o processo e, se um número for muito grande, interrompe a verificação do restante da lista imediatamente. Esta é uma otimização padrão para economizar tempo, mas significa que o computador pode parar mais cedo para algumas entradas do que para outras. Sharma mediu o impacto desse atalho e descobriu que ele contribuía com um atraso de apenas cerca de um nanossegundo. Este é um nanossegundo, um bilionésimo de segundo, uma escala de tempo tão pequena que está muito abaixo do limiar do que um atacante poderia realisticamente medir ou usar para roubar uma chave.

As descobertas foram aplicadas a toda a família desses novos padrões de assinatura digital, incluindo as versões menores e maiores usadas para diferentes níveis de segurança. Em todos os casos, o resultado foi o mesmo. A implementação do software estava limpa. As aparentes diferenças de tempo não eram um sinal de que as chaves secretas estavam sendo vazadas. Em vez disso, eram o resultado natural de um sistema que é projetado para variar seu trabalho para proteger essas mesmas chaves. O estudo concluiu que a biblioteca Bouncy Castle é segura contra este tipo específico de ataque. A dispersão de 1,35 por cento no tempo que inicialmente levantou alarmes era simplesmente o som de vinte chaves diferentes extraindo vinte amostras diferentes de uma distribuição aleatória, um eco estatístico em vez de uma violação de segurança.

Esta investigação serve como um lembrete de quão difícil é provar que um sistema é seguro. No passado, pesquisadores poderiam ter parado no primeiro sinal de uma diferença de tempo e declarado uma vulnerabilidade. Este estudo mostra que, em sistemas complexos e aleatórios, o primeiro sinal é frequentemente apenas o sistema fazendo o seu trabalho. Ao medir cuidadosamente o trabalho realizado e controlar o ambiente, o pesquisador foi capaz de distinguir entre um vazamento real e uma ilusão estatística. O resultado foi uma confirmação de que as novas assinaturas digitais são robustas, e que as variações aleatórias em sua velocidade são um recurso, não um erro. Para os milhões de dispositivos que dependem dessas assinaturas para permanecerem seguros, a mensagem é clara: a fechadura resiste, e o tempo que leva para girar a chave não lhe diz nada sobre o segredo contido nela.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →