Uma equipe de pesquisadores de segurança e segurança e acadêmicos quebrou uma peça central de tecnologia da Internet. Eles fizeram seu trabalho público no 25º Congresso de Comunicação do Caos em Berlim hoje. A equipe foi capaz de criar uma autoridade de certificação desonesto e usá-lo para emitir certificados SSL válidos para qualquer site que quiserem. O usuário não teria indicação de que sua conexão HTTPS estava sendo monitorada / modificada.
Este ataque é possível por causa de uma falha no MD5. MD5 é um algoritmo de hash; Cada arquivo distinto tem um hash distinto. Em 2004, uma equipe de pesquisadores chineses demonstrou criar dois arquivos diferentes que tinham o mesmo hash MD5. Em 2007, outra equipe mostrou ataques teóricos que se aproveitaram dessas colisões. A equipe se concentrou em certificados SSL assinados com o MD5 para sua exploração.
O primeiro passo foi fazer algumas varreduras amplas para ver quais autoridades de certificação (CA) estavam emitindo CERTS MD5 assinados. Eles coletaram 30k certs do Firefox Trusted CAS. 9k deles foram assinados MD5. 97% dos que vieram do Rapidssl.
Tendo selecionado seu alvo, a equipe precisava gerar seu certificado desonesto para transferir a assinatura para. Eles empregavam o poder de processamento de 200 Playstation 3s para fazer o trabalho. Para esta tarefa, é o equivalente a 8000 núcleos de CPU convencionais ou US $ 20 mil de tempo da Amazon EC2. A tarefa leva ~ 1-2 dias para calcular. A parte desafiadora era conhecer o conteúdo do certificado que seria emitido pela RapidsSL. Eles precisavam prever duas variáveis: o número de série e o timestamp. Os números de série do Rapidsl eram todos sequenciais. De testes, eles sabiam que o RapidSSL sempre assinaria seis segundos após a confirmação da compra. Conhecendo esses dois fatos, eles foram capazes de gerar um certificado no avanço e depois comprar o certificado exato que eles queriam. Eles comprariam certificados para avançar o número de série e, em seguida, comprar na hora exata em que calcularam.
O CERT foi emitido para seu domínio específico, mas porque eles controlaram o conteúdo, eles mudaram os sinalizadores para se tornarem uma autoridade de certificação intermediária. Isso lhes deu autoridade para emitir qualquer certificado que eles queriam. Todos esses certs “válidos” foram assinados usando o SHA-1.
Se você definir seu relógio de volta para antes de agosto de 2004, você poderá experimentar seu site de demonstração ao vivo. Desta vez é apenas uma medida de segurança e segurança para o exemplo e isso funcionaria de forma idêntica a um certificado que não expirou. Há um site de projeto e um writeup muito mais abrangente do que isso.
Para corrigir essa vulnerabilidade, todas as CAs agora estão usando o SHA-1 para assinar e a Microsoft e o Firefox estarão na lista negra do Rogue CA em seus produtos do navegador.