Monday, January 5, 2009

Forjando certificados SSL que utilizam o MD5


O tema da virada do ano foi o ataque demonstrado por Alexander Sotirov et al que mostra a necessidade de se deixar de utilizar o algorítimo de hashes criptográficos MD5 em mais uma aplicação: PKI, ou Public Key Infrastructure (slides PDF) / (site SSL prova de conceito)

A implicação mais óbvia é a utilização desta vulnerabilidade em ataques de phishing/pharming mais sofisticados (combinados com ataques de DNS possibilitariam a um atacante a falsificação quase perfeita (e talvez o tunelamento do acesso do cliente através de um site forjado) de instituições de comércio eletrônico e personal banking (https://)

Há quem argumente que não é de grande impacto a notícia, porque o usuário comum simplesmente clicaria em "Add Exception" no Browser quando um ataque similar é feito com um certificado SSL não forjado, mas as implicações são ainda mais sérias neste caso, tanto é que a Verisign estará substituindo gratuitamente para seus clientes os certificados que ainda utilizam o MD5...

Segundo os pesquisadores, além da aplicação da colisão de hashes MD5, o ataque foi possível porque a Verisign e outras (RapidSSL, FreeSSL, TrustCenter, RSA Data Security, Thawte, verisign.co.jp):
  • ainda utilizavam (até dias atrás) certificados com assinaturas criadas utilizando MD5 (caso você seja responsável por certificados SSL em uma PKI interna, verifique também... )
  • automatizam as solicitações de certificados
  • não verificam solicitações anômalas
  • permitem a previsão da combinação entre número de série e validade do certificado
  • não limitam o tamanho da cadeia de certificados
Ou seja, uma melhor aplicação do velho e bom conceito de "segurança em profundidade" teria evitado o sucesso do ataque demonstrado, mesmo que a vulnerabilidade existisse.

Vale lembrar que o MD5 tem um crescente histórico de identificações de vulnerabilidades que possibilitaram esta prova de conceito.

Segundo a Netcraft, 14% dos sites que usam SSL utilizam o MD5 como algoritimo de hash.

Estas duas extensões para Firefox podem auxiliá-lo a detectar se o site HTTPS que você está acessando usa certificados que utilizam MD5:
Além disto, recentemente foi disponibilizado um módulo para o metasploit framework que pode varrer o endereçamente interno da sua empresa e identificar se existem certificados que precisam ser trocados:

Uma lista de referências sobre o assunto segue abaixo:

Um outro detalhe interessante é que para parte da computação necessária para o sucesso do ataque, foram utilizados os cores SPU do processador "Cell" de um cluster de mais de 200 videogames Playstation 3.

5 comments:

  1. Aproveitando o assunto, ainda é viável a utilização do MD5 em análises forenses?

    Quais as alternativas temos além do SHA1, que também parece estar com os dias contados?

    ReplyDelete
  2. Olá Felipe! Todas as melhores referências não condenam o uso de MD5 para verificação de hashes conhecidos, já que os ataques divulgados dependem que o atacante consiga "fabricar" o arquivo original. Veja:

    Referências:

    http://sansforensics.wordpress.com/2009/01/07/law-is-not-a-science-admissibility-of-computer-evidence-and-md5-hashes/

    http://www.forensicmag.com/articles.asp?pid=238

    http://www.nsrl.nist.gov/Documents/analysis/draft-060530.pdf

    "None of the attacks are pre-image attacks. In a pre-image attack, an attacker must manufacture a file with a previously known hash. All of the current attacks are only able to produce two files with the same hash, but it is a random hash."

    ReplyDelete
  3. Ate pouco tempo atras a Microsoft nao suportava sha-256. Se nao me engano o SP3 do XP incluiu o suporte. Isso limitava muito a geracao de certificados fortes com suporte no Windows. Achei muito interessante o artigo.

    ReplyDelete
  4. Ooops! Saiu "anonimo". O post acima foi meu. []s

    ReplyDelete
  5. A versão mais atual do openssl suporta SHA512, inclusive já faço uso dele.

    ReplyDelete