Cryptology Academy · Aula

Preenchimento PKCS#1 v1.5 e Bleichenbacher

Explique ataques adaptativos de texto cifrado escolhido contra PKCS#1 v1.5.

Aula 2 de 413 etapas

Preenchimento PKCS#1 v1.5 e Bleichenbacher é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Boas-vindas

O preenchimento PKCS#1 v1.5 foi o padrão dominante de preenchimento RSA durante 20 anos. Em 1998, Daniel Bleichenbacher mostrou que ele era vulnerável a um ataque adaptativo de texto cifrado escolhido.

Estrutura do PKCS#1 v1.5

Formato: 0x00 0x02 [bytes aleatórios diferentes de zero] 0x00 [mensagem] O prefixo 0x00 0x02 indica preenchimento de criptografia (em vez de 0x00 0x01 para assinaturas). Os bytes aleatórios impedem o determinismo e não podem ser zero.

Por que o PKCS#1 v1.5 era usado

O PKCS#1 v1.5 foi projetado pela RSA Security em 1993, muito antes da existência das provas de segurança IND-CCA2. Ele adicionou aleatoriedade e verificações de estrutura. Foi amplamente implantado em SSL/TLS a partir de 1995.

O ataque de Bleichenbacher

Bleichenbacher (1998): se um servidor revelar se a descriptografia RSA produz um preenchimento PKCS#1 v1.5 válido (por meio de uma mensagem de erro ou da temporização), um atacante poderá descriptografar qualquer valor criptografado com RSA usando aproximadamente 1 milhão de consultas.

Definição de oráculo

Um “oráculo de preenchimento” é qualquer canal lateral que diferencie “preenchimento válido” de “preenchimento inválido”. Até mesmo uma pequena diferença de temporização ou uma mensagem de erro diferente cria um oráculo explorável.

Mecânica do ataque

O atacante multiplica o texto cifrado-alvo C por s^e mod n e envia C×s^e modificado. Se o servidor responder “preenchimento válido”, s foi escolhido corretamente. A iteração estreita o intervalo de textos simples possíveis até que M seja recuperado.

Ataque DROWN (2016)

O DROWN explorou Bleichenbacher por meio do SSLv2. Servidores TLS modernos que compartilhavam uma chave com qualquer servidor SSLv2 eram vulneráveis. Ele descriptografava trocas de chaves RSA de TLS moderno usando o SSLv2 como oráculo. 33% dos servidores HTTPS foram afetados.

Ataque ROBOT (2017)

ROBOT (Retorno da ameaça do oráculo de Bleichenbacher): redescobriu oráculos de temporização em 7 das 10 implementações de TLS mais populares, incluindo Cisco, F5 e Radware. Bleichenbacher persiste porque as implementações são difíceis de proteger corretamente.

Descriptografia RSA em tempo constante

Defesas: prossiga sempre com a descriptografia, independentemente da validade do preenchimento; devolva uma resposta idêntica para preenchimento inválido. Use código em tempo constante para impedir diferenças de temporização. É difícil implementar isso corretamente.

Por que o OAEP substituiu o v1.5

O OAEP inclui uma função hash unidirecional com alçapão que demonstra a segurança IND-CCA2 (segurança contra textos cifrados escolhidos). Mesmo com um oráculo de preenchimento, a estrutura aleatorizada do OAEP torna as consultas ao oráculo inúteis.

Sistemas legados ainda usam o v1.5

Apesar da existência do OAEP, o PKCS#1 v1.5 ainda é usado em sistemas de pagamento legados, aplicativos Java antigos e determinadas implementações de PKI. O TLS 1.3 removeu completamente a troca de chaves RSA, eliminando essa superfície de ataque.

Verificação rápida

O que é um “oráculo de preenchimento” no contexto do ataque de Bleichenbacher?

Recapitulação

O ataque de Bleichenbacher é um marco da criptoanálise prática. Em seguida, estudaremos o OAEP — o preenchimento com segurança demonstrável que substitui o v1.5.
Grátis para começar

Aprenda Cryptology Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
67
Aulas
261

Perguntas Frequentes

A aula “Preenchimento PKCS#1 v1.5 e Bleichenbacher” é grátis?

Sim — o texto completo de “Preenchimento PKCS#1 v1.5 e Bleichenbacher” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Preenchimento PKCS#1 v1.5 e Bleichenbacher”?

Explique ataques adaptativos de texto cifrado escolhido contra PKCS#1 v1.5. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Preenchimento PKCS#1 v1.5 e Bleichenbacher”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. RSA de livro-texto e por que é inseguro
  2. Preenchimento PKCS#1 v1.5 e Bleichenbacher
  3. OAEP: preenchimento ideal para encriptação assimétrica
  4. RSA-PSS para assinaturas digitais
← Voltar para Cryptology Academy