Estou cursando a matéria optativa sobre Grades Computacionais do meu orientador, o prof. Vinod Rebello, com o grupo que trabalha comigo no laboratório. E eis que ele pede para encontrarmos aplicações que fossem interessantes para execução em grades.
Não sei onde estava com a cabeça para sugerir que fizéssemos um trabalho em cima do John The Ripper, o conhecido password cracker. Na verdade, existem algumas iniciativas para paralelizar o JTR, nenhuma que realmente funcionasse bem. E pintou o desafio.
A necessidade de executar de forma paralela/distribuída vem, principalmente, do fato do JTR demorar um tempo considerável para executar testes de força bruta. Para se ter uma idéia do que é “considerável”, resolvemos tentar executar o John e ver quanto tempo ele demorava até encontrar uma senha nesse método. Criamos um processo para tentar quebrar a senhad e um único usuário e deixamos rodando em uma máquina quad-core de 1Gb de RAM durante uma semana, e o resultado foi… Nada. Null. Ao fim de uma semana de execução, o programa foi incapaz de quebrar a senha. Pelos logs, o programa chegou a testar strings de 8 caracteres fixando os 4 primeiros caracteres.
Estamos partindo agora para entender melhor como o JTR funciona, e vamos dar uma olhada no código também. No próximo post sobre o assunto, vou explicar como instalar e usar o John. Vou colocar também co papel de cada função.
E lá vamos nós…
Abraços,
–Daniel