Ł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 1/27
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. 2/27
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 3/27
Konfiguracje pomiędzy hostami W fazie testowej skupiliśmy się nie tylko na testach wydajnościowych, lecz również na samym połączeniu między jednostkami roboczymi. Konfiguracje między systemami operacyjnymi jednostek: 1.Linux + WinXP = masakra 2.Linux + Win7 = masakra 3. WinXP + WinXP = jest dobrze 4. Win7 + WinXP = jest dobrze 5. Win7 + Win7 = jest dobrze 6.Mac + Mac = ? 7.Mac + ? = ? 4/27
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” 5/27
Brute Force - rekurencyjnie Główny schemat działania 6/27
Brute Force - rekurencyjnie Rekurencja 7/27
Algorytm Słownikowy Główny schemat działania 8/27
Zalety/wady -Kontrola działania Algorytmu -Synchronizacja -Polskie litery w słowniku 9/27
Zalety/Wady –Praktycznie nie ograniczona maksymalna długość szukanego hasła –Łatwość w dostosowaniu do potrzeb (długość hasła, alfabet) 10/27
Protokół komunikacji Master – slave dla algorytmu „Brute Force” 11/27
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 12/27
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) 13/27
Rekomendowane użycie metody 14/27
Funkcjonalności podstawowe + rozszerzone 15/27
Funkcjonalności rozszerzone Metoda „Inteligentna” Podprogram pomagający przy pomocy pytań zadawanych użytkownikowi, przypomnienie sobie hasła(np. do konta e- mail’owego) 16/27
Funkcjonalność rozszerzona: przypominanie hasła 17/27
Prezentacja działania aplikacji 18/27
Wybór metody 19/27
Ograniczenie alfabetu 20/27
Monitorowanie przebiegu 21/27
Zakończone zadania 22/27
Metoda słownikowa 23/27
Metoda Brute Force, dł. 3 24/27
Metoda Brute Force, dł. 4 25/27
Metoda Brute Force, dł. 5 26/27
Pytania? 27/27