Este trabalho e o primeiro contato com programação paralela com passagem de mensagens. Se bem tivemos contato com MPI nas aulas praticas da disciplina, este e o primeiro trabalho desenvolvido completamente com MPI, em termos de analise e programação.
O trabalho consiste em desenvolver um programa utilizando MPI, em qualquer linguagem de programação, devido à familiaridade com a linguagem C foi a escolhida.
O programa desenvolvido chama o aplicativo MDCrack, uma ferramenta que faz a quebra de senhas baseadas em algoritmos de hash aplicando ataques exaustivos, podendo recuperar qualquer senha feita de ate 16 caracteres.
A quebra de senhas e um processo informático que consiste em a decodificação de senhas. Seu uso é dirigido para os administradores de sistemas provarem a solidez das senhas dos seus utilizadores. Neste trabalho utilizaremos o ataque pela força bruta, também conhecido como o ataque exaustivo, que consiste no decifrado de uma senha testando todas as combinações de caracteres possíveis até encontrar a combinação aceita pelo sistema.
Ao receber como entrada o arquivo crackme.txt que contem uma lista de hashes para quebrar, o programa desenvolvido faz a leitura do arquivo para um vetor de string e distribui uma senha para cada processo trabalhador. À medida que cada trabalhador devolve a senha resolvida, o processo mestre vai designado outra linha de código do arquivo para quebrar, fazendo uma distribuição dinâmica das tarefas.
Para os testes de execução utilizamos as maquinas linux01 e linux02. Para fazer a analise de desempenho utilizamos a ferramenta de visualização Jumpshot. O arquivo crackme.txt foi utilizado como entrada de dados pelo programa.
A partir dos arquivos de log gerados na execução do programa e utilizando a ferramenta Jumpshot para visualizar a execução do programa desenvolvido consegue-se ver o tempo em que os processos se comunicam que difere segundo o numero de processos e a complexidade das senhas a quebrar.
Colocar gráficos
Pode-se afirmar que desempenho do programa depende do tamanho das senhas a quebrar ou ate do numero de processos. Quando menor o tamanho das senhas e a quantidade de processos for maior, os processos trabalhadores usaram mais tempo na comunicação (pedindo mais tarefas), nesse caso a opção mais efetiva seria uma distribuição estática das tarefas.
Porem quando for maior o tamanho das senhas, ou a quantidade de processos for menor, os trabalhadores passam menos tempo pedindo mais tarefas e e ai onde a distribuição dinâmica seria mais efetiva.
Obs: o programa mdcrack foi alterado para imprimir somente o resultado.
Nenhum comentário:
Postar um comentário