Ataque de cifrotexto escolhido adaptativo

Um ataque de cifrotexto escolhido adaptativo (abreviado CCA2) é uma forma interativa de ataque de cifrotexto escolhido na qual o adversário envia um certo número de cifrotextos para serem decriptados, e então usa os resultados dessas decriptações para selecionar subsequentes cifrotextos. É uma forma de ataque distinta do ataque de cifrotexto escolhido indiferente (CCA1).

O objetivo desse ataque é revelar gradualmente informações sobre uma mensagem encriptada, ou sobre a própria chave de decriptação. Para sistemas de chave-pública, cifrotextos-escolhidos adaptativos são, genericamente, aplicáveis apenas quando eles tem a propriedade da maleabilidade do cifrotexto — ou seja, o cifrotexto pode ser modificado em formas específicas e que terão um efeito previsível sobre a decriptação da mensagem.

Ataques práticos editar

Ataques de cifrotexto escolhido foram considerados como sendo de caráter principalmente teórico até 1988, quando Daniel Bleichenbacher dos Laboratórios Bell demonstrou um ataque prático contra sistemas usando encriptação RSA com a função de codificação PKCS#1 v1, incluindo uma versão do protocolo Secure Socket Layer (SSL) usado por milhares de servidores web na época.[1]

Os ataques Bleichenbacher exploravam falhas na função PKCS #1 para gradualmente revelar o conteúdo de uma mensagem encriptado em RSA. Fazer isso requer enviar vários milhões de cifrotextos de teste para o dispositivo de decriptação (por exemplo, servidores web equipados com SSL). Em termos práticos, isso significa que uma chave de uma sessão SSL pode ser exposta numa quantidade razoável de tempo, talvez um dia ou menos.

Prevenindo ataques editar

Para prevenir ataques de cifrotexto escolhido adaptativos, é necessário usar uma encriptação ou esquema de codificação que limite a maleabilidade do cifrotexto. Um certo número de esquemas foram propostos para essa finalidade; o padrão mais comum para encriptação RSA é o Optimal Asymmetric Encryption Padding (OAEP). Diferentemente dos esquemas ad-hoc de preenchimento usados nas versões iniciais do PKCS#1, o OAEP tem se provado seguro no modelo do oráculo aleatório.[2] OAEP foi incorporado na versão 2.0 do PKCS#1, publicada em 1998, e se tornou o esquema de codificação recomendado. O sistema antigo continua suportado mas não é recomendado para novas aplicações.

Modelo matemático editar

Na criptografia de complexidade teórica, a segurança contra um ataque de cifrotexto escolhido é geralmente modelada usando-se indistinguibilidade de cifrotexto (IND-CCA2).

Referências editar

  1. Bleichenbacher, Daniel (1998). «Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS #1 CRYPTO '98» (PDF): 1–12. Consultado em 13 de janeiro de 2009 
  2. Fujisaki, Eiichiro; Okamoto, Tatsuaki; Pointcheval, David; Stern, Jacques (2004). «RSA-OAEP Is Secure under the RSA Assumption» (PDF). Springer. Journal of Cryptology. 17 (2): 81–104. doi:10.1007/s00145-002-0204-y. Consultado em 12 de janeiro de 2009