Łamanie haseł Program realizowany w ramach projektu z przedmiotu: „Aplikacje internetowe i rozproszone”
Skład zespołu Szef grupy: Krzysztof Gruszewski Komunikacja MPI, Testy wydajnościowe: Marek Sobczuk, Mateusz Borowicz Interface/Algorytm Brute Force(rekurencyjnie): Maciej Gustowski Metoda inteligentna/słownikowa: Maciej Golec Algorytm Brute Force/funkcjonalności dodatkowe: Mikołaj Porębny
Uzasadnienie biznesowe Problem łamania haseł ma już szeroką gamę rozwiązań, jednak jest on dobrym przykładem mogącym obrazować współpracę kilku jednostek komputerowych. Naszym podstawowym zadaniem będzie opracowanie prostej w użyciu, sprawnie działającej aplikacji, która pozwoli na wykorzystanie skutecznie działających metod, oraz optymalizacje samego rozdzielania zadań na procesy.
Technologie Pakiet Microsoft Office 2007 Visual Paradigm MySQL Workbench Wamp Server MPICH2 - taka sam wersja na wszystkich hostach Python - taka sam wersja na wszystkich hostachch PsPAD - kompilator do pythona Hamachi VLAN
Funkcjonalności podstawowe Wybór problemu: Łamanie hasła o danym rozmiarze, z danym alfabetem znaków Łamanie hasła o nieznanym rozmiarze, z danym alfabetem znaków Łamanie hasła o nieznanym rozmiarze i nieokreślonym alfabecie Łamanie hasła i login’u Wybór metody: Metoda „Brute Force” Metoda „Słownikowa”
Brute Force - rekurencyjnie Główny schemat działania
Brute Force - rekurencyjnie Rekurencja
Algorytm Słownikowy Główny schemat działania
Zalety/wady -Kontrola działania Algorytmu -Synchronizacja -Polskie litery w słowniku
Zalety/Wady –Praktycznie nie ograniczona maksymalna długość szukanego hasła –Łatwość w dostosowaniu do potrzeb (długość hasła, alfabet)
Protokół komunikacji Master – slave dla algorytmu „Brute Force”
Transmisja Master to Slave: tag = 0; komunikat: "stop" - reakcja zakończenie pracy tag = 1; komunikat: szukane_haslo; - dane tag = 2; komunikat: pierwsza_litera_hasla - litera podana przez mastera, której wartość jest stała, slave ma przejrzeć wszystkie kombinacje haseł o podanej długości i właśnie takiej pierwszej literze tag = 3; komunikat: dlugosc_hasla - dane
Transmisja Slave to Master: tag = 10; komunikat: odszyfrowane_haslo (znaczenie: koniec zadania zwraca poprawne odnalezione hasło) tag = 11; komunikat: dowolna_tresc (znaczenie koniec zadania ale bez sukcesu, czekam na koj]lejne zadanie)
Rekomendowane użycie metody
Funkcjonalności podstawowe + rozszerzone
Funkcjonalności rozszerzone Metoda „Inteligentna” Podprogram pomagający przy pomocy pytań zadawanych użytkownikowi, przypomnienie sobie hasła(np. do konta e- mail’owego)
Funkcjonalność rozszerzona: przypominanie hasła
Prezentacja działania aplikacji
Wybór metody
Ograniczenie alfabetu
Monitorowanie przebiegu
Zakończone zadania
Metoda słownikowa
Metoda Brute Force, dł. 3
Metoda Brute Force, dł. 4
Metoda Brute Force, dł. 5
Pytania?