Projekt z przedmiotu: Aplikacje internetowe i rozproszone. TEMAT: Łamanie haseł. str. 0



Podobne dokumenty
Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Harmonogramowanie projektów Zarządzanie czasem

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Ogólna charakterystyka kontraktów terminowych

Warszawska Giełda Towarowa S.A.

Udoskonalona wentylacja komory suszenia

PS IMAGO 3.0 /// instrukcja instalacji

Poniżej instrukcja użytkowania platformy

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

Bazy danych. Andrzej Łachwa, UJ, /15

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

Zarządzanie Zasobami by CTI. Instrukcja

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

INSTRUKCJA Panel administracyjny

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

WYKRESY FUNKCJI NA CO DZIEŃ

Temat: Co to jest optymalizacja? Maksymalizacja objętości naczynia prostopadłościennego za pomocą arkusza kalkulacyjngo.

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

STATUT POLSKIEGO STOWARZYSZENIA DYREKTORÓW SZPITALI W KRAKOWIE. Rozdział I

Analiza wyników egzaminu gimnazjalnego przeprowadzonego w roku szkolnym 2011/2012 w części z języka francuskiego

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

WYMAGANIA EDUKACYJNE SPOSOBY SPRAWDZANIA POSTĘPÓW UCZNIÓW WARUNKI I TRYB UZYSKANIA WYŻSZEJ NIŻ PRZEWIDYWANA OCENY ŚRÓDROCZNEJ I ROCZNEJ

1. Podstawy budowania wyra e regularnych (Regex)

Podstawa prawna: Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych (t. j. Dz. U. z 2000r. Nr 54, poz. 654 ze zm.

Dotyczy: Odnowa centrum wsi śegiestów poprzez budowę oświetlenia ulicznego wzdłuŝ drogi powiatowej 1517K w śegiestowie

InsERT GT Własne COM 1.0

Warszawa, dnia 6 listopada 2015 r. Poz ROZPORZĄDZENIE MINISTRA ROLNICTWA I ROZWOJU WSI 1) z dnia 23 października 2015 r.

Program Google AdSense w Smaker.pl

Nowe funkcjonalności

Nowości w module: BI, w wersji 9.0

Regulamin rekrutacji w projekcie,,grupa PoMocowa SENIORÓW - usługi społeczne osób starszych dla osób starszych

Architektura komputerów

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Eksperyment,,efekt przełomu roku

( 5 4 ) Sposób i urządzenie do sterowania dźwigiem, zwłaszcza towarowym,

REGULAMIN SAMORZĄDU UCZNIOWSKIEGO GIMNAZJUM W ZABOROWIE UL. STOŁECZNA 182

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

PROTOKÓŁ. b) art. 1 pkt 8 w dotychczasowym brzmieniu:

KLAUZULE ARBITRAŻOWE

Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows.

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Materiały szkoleniowe dla partnerów. Prezentacja: FIBARO a system grzewczy.

Główne wyniki badania

Zapytanie ofertowe dotyczące wyboru wykonawcy (biegłego rewidenta) usługi polegającej na przeprowadzeniu kompleksowego badania sprawozdań finansowych

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Rozliczenia z NFZ. Ogólne założenia. Spis treści

PERSON Kraków

STOWARZYSZENIE LOKALNA GRUPA DZIAŁANIA JURAJSKA KRAINA REGULAMIN ZARZĄDU. ROZDZIAŁ I Postanowienia ogólne

FORUM ZWIĄZKÓW ZAWODOWYCH

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Druk nr 1013 Warszawa, 9 lipca 2008 r.

Regulamin oferty Taniej z Energą

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Tytuł. Autor. Dział. Innowacyjne cele edukacyjne. Czas. Przebieg. Etap 1 - Wprowadzenie z rysem historycznym i dyskusją

Bielsko-Biała, dn r. Numer zapytania: R WAWRZASZEK ISS Sp. z o.o. ul. Leszczyńska Bielsko-Biała ZAPYTANIE OFERTOWE

Regulamin korzystania z serwisu

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

Załącznik nr 4 UMOWA O REALIZACJI PRAKTYKI STUDENCKIEJ

Formularz Zgłoszeniowy propozycji zadania do Szczecińskiego Budżetu Obywatelskiego na 2016 rok

Komunikat 16 z dnia dotyczący aktualnej sytuacji agrotechnicznej

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska

Zawarta w Warszawie w dniu.. pomiędzy: Filmoteką Narodową z siedzibą przy ul. Puławskiej 61, Warszawa, NIP:, REGON:.. reprezentowaną przez:

29. TRZY W LINII CZYLI O POSZUKIWANIU ZWIĄZKÓW

CBOS CENTRUM BADANIA OPINII SPOŁECZNEJ WIZY DLA NASZYCH WSCHODNICH SĄSIADÓW I PROBLEM KALININGRADU BS/134/2002 KOMUNIKAT Z BADAŃ

Wybrane dane demograficzne województwa mazowieckiego w latach

Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

enova Workflow Obieg faktury kosztowej

Warunki formalne dotyczące udziału w projekcie

POMOC PSYCHOLOGICZNO-PEDAGOGICZNA Z OPERONEM. Vademecum doradztwa edukacyjno-zawodowego. Akademia

Regulamin szkolnego konkursu matematycznego dla uczniów klasy II i III: Mały Matematyk

ZASADY REKRUTACJI KANDYDATÓW DO XVIII LICEUM OGÓLNOKSZTAŁCĄCEGO IM. JANA ZAMOYSKIEGO NA ROK SZKOLNY 2016/2017

PORADNIK: Jak przyznaćstypendiumwprogramie Stypendia św. Mikołaja

Dobór nastaw PID regulatorów LB-760A i LB-762

UZASADNIENIE. I. Potrzeba i cel renegocjowania Konwencji

WZÓR UMOWA Nr... zawarta w dniu...

zarządzam, co następuje:

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016

REGULAMIN IV POWIATOWEGO KONKURSU - OBLICZA EKONOMII HASŁO IV EDYCJI

VinCent Office. Moduł Drukarki Fiskalnej

a) nazwa:... b) adres siedziby:... c) NIP:... REGON:... adres:...

Motywuj świadomie. Przez kompetencje.

Projektowanie bazy danych

I. Zakładanie nowego konta użytkownika.

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Sponsorzy projektu Obozy Zdobywców Biegunów

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Ustawienie wózka w pojeździe komunikacji miejskiej - badania. Prawidłowe ustawienie

REGULAMIN. przeprowadzania naboru nowych pracowników do korpusu służby cywilnej w Kuratorium Oświaty w Szczecinie.

Procedura weryfikacji badania czasu przebiegu 1 paczek pocztowych

Podstawy programowania

Microsoft Management Console

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

ZP Obsługa bankowa budżetu Miasta Rzeszowa i jednostek organizacyjnych

Transkrypt:

Projekt z przedmiotu: Aplikacje internetowe i rozproszone TEMAT: Łamanie haseł str. 0

Spis Treści: 0. Skład zespołu i ostateczny podział obowiązków str. 2. 1. Temat - str. 2 2. Uzasadnienie biznesowe - str. 2-3 3. Technologie str. 3 4. Funkcjonalności podstawowe str. 3 5. Funkcjonalności rozszerzone str. 4 6. Przypadki użycia oraz diagramy czynności str. 5-7 7. Algorytmy str. 8-10 8. Testy wydajnościowe str. 11-15 9. Ostateczna wersja programu str. 16-19 str. 1

0. Skład zespołu i ostateczny podział obowiązków: 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. Temat. Zadaniem naszego projektu jest napisanie aplikacji umożliwiającej złamanie/odkrycie pojedynczego hasła, zadanego zbioru zaszyfrowanych haseł, lub połączeniu hasła z login em. 2. Uzasadnienie biznesowe. str. 2 Problem łamania haseł ma już szeroką gamę rozwiązań, jednak jest on dobrym przykładem mogącym obrazować współpracę kilku jednostek komputerowych. Trudno pokusić się o nowe innowacyjne rozwiązania problemu, jednak w naszej pracy postanowiliśmy skupić się na czymś innym. Oczywiście nie rezygnujemy od razu z dodatkowych funkcjonalności, czy pomysłów. Korzystając z takich metod jak metoda słownikowa, czy metoda brute force, rozdzielimy dane zadanie na procesy, które zostaną przydzielone konkretnym jednostkom. 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(metoda brute force, będzie używana jedynie w przypadkach beznadziejnych [np. gdy hasło generowane jest losowo], lub gdy wszystkie inne metody zawiodą), oraz optymalizacje samego rozdzielania zadań na procesy. Trudno oczywiście o to, żeby nasz program został użyty w celu choćby złamania hasła danego użytkownika na serwisie społecznościowym. Podstawowe funkcjonalności pomogą jednak np. w odkrycie hasła do archiwum.rar czy.zip, a rozszerzone pomogą użytkownikowi w przypomnieniu sobie zapomnianego hasła. 3. 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 2.1.0.166 VLAN 4. Funkcjonalności podstawowe I. Wybór problemu: a) Łamanie hasła o danym rozmiarze, z danym alfabetem znaków b) Łamanie hasła o nieznanym rozmiarze, z danym alfabetem znaków c) Łamanie hasła o nieznanym rozmiarze i nieokreślonym alfabecie d) Łamanie hasła i login u II. Wybór metody: a) Metoda Brute Force b) Metoda Słownikowa str. 3

III. Rekomendowane użycie programu(dla nieznanego rozmiaru i alfabetu znaków, za pomocą wszystkich metod) 5. Funkcjonalności rozszerzone. I. Podprogram pomagający przy pomocy pytań zadawanych użytkownikowi, przypomnienie sobie hasła(np. do konta e- mail owego)** *przed przystąpieniem do działania konkretnego algorytmu, sprawdzanemu będą statystycznie najczęściej używane hasła( qwe, 1234321 ), następnie będą sprawdzane hasła w jakiś sposób połączone z loginem jeśli taki jest znany(np. jeśli login = kowalski666, to na początku zostanie sprawdzony sam login jako hasło, następnie jego wariacje[np. w przypadku serwisu EdukacjaWeb kowalsk666i ), następnie metoda słownikowa z zestawem cyfr wykorzystanym w loginie, itp.( )wszystko do uzgodnienia. **ludzka pamięć jest zawodna, problem zapominania haseł jest dosyć powszechny, zapisywanie ich w jakimkolwiek miejscu niesie za sobą pewne ryzyko, stąd też taki pomysł. Przykład działania: jeśli użytkownik programu pamięta hasła do innych serwisów, aplikacji, itp. możliwe ze zapomniane hasło jest jednym z nich. Możemy wymyśleć aplikacja, która spróbuje połączyć hasło z imieniem zmarłego kota, pierwszej miłości, zawodnika nba czy czegokolwiek innego. Tym jednak proponuje zająć się później. str. 4

6. PRZYPADKI UŻYCIA ORAZ DIAGRAMY CZYNNOŚCI Rys.1 Przypadki użycia str. 5

Rys.2. Diagram czynności : Rekomendowane użycie metody str. 6

Rys.3 Diagram czynności: Przypominanie hasła str. 7

ALGORYTMY ALGORYTM BRUTE FORCE: Rys.4 Główny schemat działania dla algorytmu brute force str. 8

Rys.5 Zasada działania rekurencji str. 9

ALGORYTM SŁOWNIKOWY: Rys.6 Główny schemat działania dla algorytmu słownikowego str. 10

TESTY WYDAJNOŚCIOWE: Testy zostały wykonane w oparciu o najbardziej podstawową, najwcześniejszą, działającą wersję aplikacji w oparciu o dwie jednostki sprzętowe. Przed samym przystąpieniem do testów wypróbowaliśmy kilka konfiguracji między jednostkami z danymi systemami operacyjnymi. 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 +? =? Testy wydajnościowe zostały przeprowadzone na dwóch jednostkach roboczych o konfiguracjach: Jednostka 1: Windows 7 32 3Gb RAM Intel Core 2 DUo CPU P8400 @ 2.27 GHz Jednostka 2: Windows 7 32 2 Gb RAM Intel Core 2 DUo CPU T7400 @ 2.16 GHz str. 11

Metoda Słownikowa Ponieważ dla metody słownikowej uzależnienie testu od długości hasła nie miało sensu, został przeprowadzony tylko jeden test, w którym uzależniliśmy wynik od ilości wątków. Dla każdej ilości wątków test został przeprowadzony dwukrotnie. Jeśli wyniki różniły się od siebie nieznacznie(przyjęliśmy, że nieznacznie oznacza, że wartość bezwzględna różnicy będzie wynosić mniej niż 20% niższego pomiaru). Przebieg testu: Wnioski: Jak widać na wykresie, dla dwóch jednostek roboczych, najlepszy wynik został osiągnięty dla 5 wątków. Warto zwrócić uwagę, że największa amplituda pomiędzy wartościami wystąpiła między jednym a dwoma wątkami, najmniejsza natomiast w okolicy ekstremum naszej funkcji(czyli między czwartym, a piątym, oraz piątym a szóstym). str. 12

Metoda Brute Force W przypadku algorytmu Brute force sytuacja miała się już trochę inaczej. Wymogiem przeprowadzenia testu było oczywiście uzależnienie od długości hasła. Testy zostały przeprowadzone na tych samych zasadach co w przypadku metody słownikowej. Przebieg testów: Dla dł. 3: str. 13

Dla dł. 4: Dla dł. 5: str. 14

Wnioski: Jak łatwo zauważyć, kształt wykresu dla algorytmu Brute force jest zbliżony do kształtu wykresy dla algorytmu słownikowego. Ciekawym spostrzeżeniem jest fakt, iż jest on bardziej wyraźny dla wyższych rozmiarów hasła. Należy zwrócić w tym przypadku uwagę na wartość amplitudy pomiędzy czasem dla 1 wątku, a czasem dla optymalnej ilości wątków(dla dł. 3,4,5 są to kolejno: 2,4,7 wątków). Można wysnuć z tego oczywisty wniosek, że ilość wątków musi być proporcjonalna do długości hasła. Informację to wykorzystaliśmy oczywiście w ostatecznej wersji naszej aplikacji. Ostatnim wnioskiem jest fakt iż należy wystrzegać się ilości wątków ponad wartością optymalną. Chociaż po pojedynczej inkrementacji różnica między czasem dla ilości optymalnej, a ilości optymalnej podniesionej o jeden jest niewielka, to należy zwrócić uwagę na to, iż różnice pomiędzy sąsiednimi wartościami stają się coraz wyższe. Ostatecznie prowadzi to do odkrytej przez nas anomalii czasowej(np. dla długości 5, czas dla 14 wątków równał się niecałe 30s, natomiast dla 15 wątków skoczył nagle do wartości ponad 400s). Początkowo trudno było nam nawet odkryć granicę tej anomalii, ponieważ dla wyższej ilości wątków(najwyższe przez nas testowana ilość to 25), program powodował zawieszenie systemu. str. 15

Ostateczna wersja programu Wśród podstawowych funkcjonalności opartych na bazie danych znajdują się: Rejestracja nowego użytkownika: Logowanie do systemu: str. 16

O ile w pierwszej, konsolowej wersji programu sam użytkownik mógł ustalać liczbę procesów, w wersji ostatecznej oparliśmy się na wykonanych przez nas testach. Dlatego dla metody słownikowe, tak jak i metody Brute force liczba procesów jest znaleziona przez nas wartością optymalną. Zależność występuje niestety tylko dla 2 hostów i danej długości hasła. Dla większych wartości zgodnie z zasadami logiki przyjęliśmy: dla metody słownikowej rozdział dzielony(dla dwóch hostów po 5, więc mamy w sumie 10 wątków, stąd dla 3 hostów mamy podłogę z 10/3 = 3, dla 10/4 = 2, itd.) dla metody brute force, ponieważ nie odnaleźliśmy dokładnej funkcji wyznaczającej optymalną ilość procesów, ustaliliśmy, że zgodnie z następnymi wyrazami funkcji 2,4,7, przyjęliśmy regułę: an = an-1 + bn gdzie: a jest daną wartością optymalną pierwsze a =1 n jest rozmiarem hasła(1,2, ) b jest danym krokiem inkrementacyjnym zmieniającym się o wartość podniesioną o jeden względem poprzedniej(będzie to więc kolejno(1,2,3,4, ). str. 17

Sam wzór zlecenia zadania przyjął formę: 1. Wybranie metody i parametrów: 2. Ograniczenie alfabetu(opcjonalnie): str. 18

3. Monitorowanie zlecenia: Na końcu jako lekko humorystyczną opcjonalność dodatkową stworzyliśmy password guide dla nowych użytkowników komputerów: str. 19