Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να...

34
Εργασία στην Ασφάλεια Δικτύων Password Cracking - Dictionary & Rainbow Tables Πάπαρης Κίμωνας - Ε13146 Πάτσης Χαράλαμπος - Ε13152 Παναγιωτίδης Γεώργιος - Ε13143 1

Transcript of Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να...

Page 1: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Εργασία στην Ασφάλεια Δικτύων

Password Cracking - Dictionary & Rainbow Tables

Πάπαρης Κίμωνας - Ε13146

Πάτσης Χαράλαμπος - Ε13152

Παναγιωτίδης Γεώργιος - Ε13143

1

Page 2: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

ΠεριεχόμεναPassword..................................................................................................................................3

PASSWORD CRACKING..............................................................................................................3

Brute Force...............................................................................................................................4

Dictionary attacks.....................................................................................................................5

Μια μικρή έρευνα!...................................................................................................................7

RAINBOW TABLES.....................................................................................................................9

Κωδικοί πρόσβασης και Rainbow Tables..................................................................................9

Time-Memory Tradeoff..........................................................................................................10

Salt..........................................................................................................................................11

Ανάλυση των Rainbow Tables................................................................................................12

Hellman’s Algorithm...............................................................................................................13

Ανάκτηση Password................................................................................................................15

Πρακτικά παραδείγματα........................................................................................................16

Further Improvement.............................................................................................................17

Hacking Tools..........................................................................................................................18

Aircrack-ng..............................................................................................................................18

Συμπέρασμα:..........................................................................................................................25

CPU-GPU.................................................................................................................................25

How to make a better password.............................................................................................26

2

Page 3: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Password

Με τον όρο Password ή κωδικό εννοούμε έναν από τους πιο βασικούς

μηχανισμούς ασφαλείας σε ένα δίκτυο, το οποίο ζητάει αυθεντικοποίηση, πριν γίνει

είσοδος σε αυτό . Υπάρχουν πολύ τρόποι για να γίνει αυθεντικοποίηση ενός χρήστη,

όπως το δακτυλικό αποτύπωμα, ο κωδικός PIN σε ένα κινητό και άλλα.

Όμως, πολλά πράγματα απλοποιούνται με τη χρήση ενός κωδικού, όπως το

γεγονός ότι είναι εύκολο να γίνει η απομνημόνευση του και μάλιστα το πιο βασικό

χαρακτηριστικό του είναι το ότι μπορεί να αντικατασταθεί πάρα πολύ εύκολα. Ο

κωδικός αυτός συνήθως αποτελείται από μια σειρά αλφαριθμητικών χαρακτήρων

και συμβόλων, τα οποία μπορεί να είναι τελείως τυχαία ή είναι πιθανό να

αποτελούν μια ολόκληρη φράση. Η χρήση ενός τέτοιου κωδικού είναι ένας από

τους πιο διαδεδομένους τρόπους έλεγχου πρόσβασης σε ένα σύστημα. Το πόσο

δύσκολο μπορεί να γίνει η εύρεσή του από έναν κακόβουλο χρήστη εξαρτάται από

το μέγεθος και την πολυπλοκότητα του κωδικού αυτού.

PASSWORD CRACKING

Ο όρος password cracking ή διαφορετικά σπάσιμο κωδικού, αναφέρεται

στους διάφορους τρόπους και μέσα που χρησιμοποιούνται, ώστε να αποκαλυφθεί ο

κωδικός πρόσβασης που επιθυμούμε σε έναν υπολογιστή ή κάποια άλλη

ηλεκτρονική συσκευή, που ζητάει κωδικό πρόσβασης. Υπάρχουν αρκετοί τρόποι

όπου μπορούμε να πετύχουμε αυτή την διαδικασία, όπως παραδείγματος χάρη, το

brute force και άλλα.

Το password cracking γίνεται για πολλούς λόγους, κατά κύριο λόγο για

κακόβουλους. Ο σημαντικότερος και συχνότερος λόγος είναι η πρόσβαση σε ένα

υπολογιστικό σύστημα, χωρίς την άδεια και τη γνώση του ιδιοκτήτη, παραδείγματος

χάρη για την αποκάλυψη των κωδικών ενός τραπεζικού λογαριασμού. Αναμφίβολα,

η χρήση αυτή αποτελεί ένα κομμάτι της εγκληματικότητας του διαδικτύου.

Αντίθετα, η παρούσα διαδικασία ενδέχεται να δράσει με θετικό τρόπο, όταν

3

Page 4: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

κάποιος χρήστης χάσει ή ξεχάσει τον κωδικό πρόσβασής του σε ένα σύστημα και

κυριότερα να αποτελέσει έναν τρόπο ελέγχου του κατά πόσο ένα σύστημα είναι

ισχυρό απέναντι στις κακόβουλες επιθέσεις και το περιεχόμενό του μπορεί να

θεωρηθεί προστατευμένο.

Brute Force

Ο πιο συχνός τρόπος να βρει κάποιος έναν κωδικό είναι να κάνει

συνεχόμενες δοκιμές στο σύστημα όπου επιτίθεται. Το brute force αποτελεί ένα

μέσο εύρεσης ενός επιθυμητού κωδικού, που ενώ χρησιμοποιείται από πολλούς

χρήστες, λόγω της απλότητάς του, παρόλα αυτά δε θεωρείται αποδοτικός, όσον

αφορά το χρόνο.

Με την τεχνική αυτή πραγματοποιούνται όλες οι πιθανές δοκιμές

συνδυασμού χαρακτήρων που υπάρχουν και επιθυμούμε να δοκιμάσουμε.

Πρόκειται για μια αρκετά αποτελεσματική μέθοδο όταν ο κωδικός που ψάχνουμε

είναι αρκετά μικρός σε μέγεθος. Ωστόσο, καθώς ο κωδικός μεγαλώνει σε μήκος,

δηλαδή σε αριθμό χαρακτήρων, τόσο η τεχνική αυτή επιβραδύνεται και γίνεται μη

αποτελεσματική, ακόμα και με την χρήση σύγχρονης τεχνολογίας. Στην ουσία, αν

είχαμε έναν κωδικό με επτά γράμματα της αγγλικής αλφαβήτου, αδιαφορώντας για

το αν οι χαρακτήρες που διαλέξαμε είναι με κεφαλαία ή μικρά, με την τεχνική αυτή

θα χρειαζόμασταν 26^7(8.031.810.176) προσπάθειες για να τον βρούμε. Στην

πραγματικότητα, στο παράδειγμα αυτό, ο επιτιθέμενος πρέπει να γνωρίζει από την

αρχή το μέγεθος του κωδικού, για να χρειαστεί αυτές τις προσπάθειες μέχρι την

τελική εύρεσή του. Σε οποιαδήποτε άλλη περίπτωση, ο χρόνος θα ήταν

μεγαλύτερος και οι προσπάθειες περισσότερες, αφού στην πράξη δε μπορούμε να

γνωρίζουμε ούτε το μέγεθος ούτε την αλληλουχία ενός κωδικού.

Συμπερασματικά, παρατηρούμε πως με το brute force μπορούμε να

σπάσουμε οποιονδήποτε κωδικό όσο μεγάλος και περίπλοκος μπορεί να είναι,

όμως ο χρόνος που θα χρειαστεί μπορεί να διαρκέσει μέχρι και αιώνες, κάτι που

κάνει την τεχνική αυτή μη αποτελεσματική.

4

Page 5: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Dictionary attacks

Με το πέρασμα του χρόνου, πολλοί hackers άρχισαν να συνειδητοποιούν

πως ένας μεγάλος αριθμός χρηστών έχει ακριβώς τον ίδιο κωδικό πρόσβασης. Αυτό

συμβαίνει διότι, για πολλούς χρήστες, οι κωδικοί πρόσβασης αποτελούν εμπόδιο

και ενόχληση κατά την είσοδό τους σε κάποιο ηλεκτρονικό μέσο.

Η πλειοψηφία των χρηστών χρησιμοποιεί ως κωδικό πρόσβασης απλές

λέξεις, όπως “password”, το πραγματικό τους όνομα, την ημερομηνία γεννήσεώς

τους ή το αγαπημένο τους χρώμα. Κατά συνέπεια, δημιουργήθηκαν κάποιες λίστες

με λέξεις, τα λεγόμενα “dicrionaries” ή λεξικά. Τα προαναφερθέντα λεξικά

χρησιμοποιούνται από ορισμένα προγράμματα και αυτά με τη σειρά τους κάνουν

συνεχόμενες δοκιμές των λέξεων αυτών, μέχρι να βρουν τον επιδιωκόμενο

συνδυασμό. Υπάρχουν λεξικά τα οποία έχουν τεράστιο αριθμό λέξεων και αριθμών

και τα πιο εξελιγμένα χρησιμοποιούν τον συνδυασμό λέξεων και αριθμών καθώς

και συμβόλων.

Πιο συγκεκριμένα, για να γίνει μια τέτοιου είδους επίθεση

αποτελεσματικότερη, ακολουθούνται δύο πολύ απλές μέθοδοι. Πρώτον, η χρήση

μεγάλων λεξικών βοηθάει στην αύξηση του ποσοστού επιτυχίας. Αυτό προκύπτει

από το γεγονός ότι αν ο επιτιθέμενος έχει στην διάθεση του λίστες με μεγάλη

ποικιλία λέξεων, συνδυασμένες με αριθμούς και σύμβολα, καθώς και γραμμένα

ανάποδα, όπως η λέξη “password” να υπάρχει και ως “drowssap” μπορεί να βρει

έναν κωδικό σχετικά ευκολότερα. Δεύτερον, έχει μεγάλη σημασία η σειρά που

είναι τοποθετημένες οι λέξεις, διότι αν η λίστα είναι μεγάλη, ο χρόνος εύρεσης ενός

κωδικού μεγαλώνει αντίστοιχοι λίστες αυτές είναι πολύ απλό να βρεθούν με μια

απλή αναζήτηση στο διαδίκτυο. Στην ουσία είναι απλά .txt αρχεία με τεράστιο

αριθμό λέξεων και πολλές φορές είναι κατηγοριοποιημένες. Όπως αναφέρθηκε και

προηγουμένως, πολλοί κωδικοί είναι απλά ονόματα ή ημερομηνίες. Έτσι, υπάρχουν

λίστες όπου είναι στοχευόμενες και περιέχουν για παράδειγμα μόνο ημερομηνίες ή

μόνο ονόματα από πόλεις.

5

Page 6: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Εντούτοις, , όσο σύγχρονη και αν είναι μια λίστα, δεν μπορεί να εκμηδενίσει το

πρόβλημα της τεχνικής αυτής. Με την τεχνική λοιπόν των dictionary attack, για να

πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός να υπάρχει στην λίστα. Πλέον, οι

περισσότεροι χρήστες χρησιμοποιούν μεγάλους και σύνθετους κωδικούς οι οποίοι

είναι αρκετά δύσκολο να βρεθούν σε κάποια λίστα. συνεπώς, η τεχνική αυτή

θεωρείται στις μέρες μας μη αποτελεσματική. Ταυτόχρονα, η περιπλοκότητα ενός

κωδικού δεν είναι το μόνο πρόβλημα. Όσο απλός και αν είναι ένας κωδικός, εάν δε

βρίσκεται στις λίστες που έχει στην διάθεση του ο επιτιθέμενος, τότε δε θα

μπορέσει να τον σπάσει.

Οι διαφορές που έχει στην ουσία με το brute force είναι πως με μία

dictionary επίθεση ψάχνει μόνο τις περιπτώσεις που του έχουμε δώσει εμείς μέσω

των λεξικών που έχουμε στην διάθεσή μας και όχι ψάχνοντας όλες τις πιθανές

περιπτώσεις που υπάρχουν γενικά.

6

Page 7: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

!Μιαμικρή έρευνα

Το 2006 διέρρευσαν κωδικοί από το Myspace και υπολογίζεται ότι επρόκειτο

για περίπου 34.000 σε αριθμό. Σύμφωνα με την έρευνα που έγινε μετά την επίθεση

μπορούμε να δούμε τα χαρακτηρίστηκα που είχαν οι κωδικοί αυτοί:

Password Character Sets

Μόνο Νούμερα 1.3%

Μόνο Γράμματα 9.6%

Αλφαριθμητικά 81%

Με Σύμβολα 8.3%

7

Page 8: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

1 εώς 4

5

6

7

8

9

10

11

12

13 εώς 32

0 5 10 15 20 25 30

Μήκος Κωδικού

Επίσης, οι 20 πιο χρησιμοποιημένοι κωδικοί είναι: password1, abc123,

myspace1, password, blink182, qwerty1, fuckyou, 123abc, baseball1, football1,

123456, soccer, monkey1, liverpool1, princess1, jordan23, slipknot1, superman1,

iloveyou1 και monkey.

Στην ουσία μπορούμε να δούμε πως περίπου το 50% των χρηστών

χρησιμοποιεί κωδικούς με 7 ή 8 ψηφία. Παράλληλα, το 81% είναι συνδυασμός

αριθμών και χαρακτήρων. Ωστόσο, και αυτοί είναι σε μεγάλο βαθμό κοινοί για

αρκετά μεγάλο πληθυσμό χρηστών. Τέλος, ελάχιστοι χρήστες έχουν περίπλοκους

και μεγάλους κωδικούς (περισσότερα από 12 ψηφία) σε συνδυασμό με σύμβολα

κάτι που είναι λάθος.

Από το παράδειγμα αυτό παρατηρούμε, πως με το πέρασμα του χρόνου

γίνεται μια ευρύτερη χρήση πιο περίπλοκων κωδικών, όμως ακόμα το μεγαλύτερο

ποσοστό εξακολουθεί να χρησιμοποιεί σχετικά μικρούς και όχι σύνθετους

κωδικούς. Όμως, το δείγμα του παραδείγματος αυτού είναι δυστυχώς πολύ μικρό

για να είναι ικανό να αποφέρει αξιόπιστο και σίγουρο στατιστικό αποτέλεσμα.

Παρόλα αυτά, αποτελεί μια ένδειξη του τι περίπου συμβαίνει με την επιλογή των

κωδικών.

8

Page 9: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

RAINBOW TABLES

Ορισμός:

Ένα Rainbow Table είναι ένας look up table(πίνακας αναζήτησης) που

προσφέρει time – memory trade off (ανταλλαγή χρόνου/μνήμης) και

χρησιμοποιείται στην ανάκτηση ενός κωδικού πρόσβασης από ένα hash password

(Κατακερματισμένο κωδικό) που έχει παραχθεί από μια hash function(συνάρτηση

κατακερματισμού) συνήθως κρυπτογραφική.

Κωδικοί πρόσβασης και Rainbow Tables

Για να καταλάβει κανείς καλύτερα πως λειτουργούν τα rainbow tables,

πρέπει αρχικά να καταλάβει πως αποθηκεύονται οι κωδικοί πρόσβασης σε έναν

ηλεκτρονικό υπολογιστή.

Οι κωδικοί πρόσβασης δεν πρέπει να αποθηκεύονται ποτέ στο plaintext,

αλλά ως παραγωγή μιας hash λειτουργίας. Γενικότερα τα Hashes είναι μονόδρομες

διαδικασίες. Ακόμα κι αν ένας επιτιθέμενος αποκτήσει πρόσβαση στην

κατακερματισμένη έκδοση (hash version) ενός κωδικού πρόσβασης, δεν είναι

δυνατό να ανασυγκροτηθεί ο κωδικός αυτός από την hash αξία και μόνο.

Τα rainbow tables γενικότερα χρησιμεύουν στο να γίνουν εφικτές οι

επιθέσεις στην hash value του κωδικού πρόσβασης, χρησιμοποιώντας προ-

υπολογισμένες hash τιμές για κάθε πιθανό συνδυασμό χαρακτήρων. Ένας

επιτιθέμενος ηλεκτρονικός υπολογιστής θα μπορούσε πολύ γρήγορα να υπολογίσει

όλα αυτά τα hashes. Η ενέργεια αυτή μπορεί να γίνει ακόμα γρηγορότερη,

αξιοποιώντας έναν ογκώδη πίνακα των προϋπολογισμένων hash τιμών, εάν γίνει η

υπόθεση πως το επιτιθέμενο μηχάνημα διαθέτει αρκετό χώρο στη RAM για να

αποθηκεύσει ολόκληρο τον πίνακα (ή τουλάχιστον ένα μεγάλο κομμάτι του) και

τελικά να υποστηρίξει την επίθεση. Αυτό είναι ένα κλασικό παράδειγμα time-

memory tradeoff.

9

Page 10: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Time-Memory Tradeoff

Γενικότερα στην πληροφορική, όταν χρησιμοποιούμε τον όρο Time-Memory

Tradeoff (ανταλλαγή χρόνου-μνήμης) αναφερόμαστε σε μία κατάσταση στην οποία

ο χρόνος υπολογισμού μπορεί να μειωθεί με κόστος την χρήση περισσότερης

μνήμης, ή και το αντίστροφο, δηλαδή μειωμένη χρήση μνήμης με κόστος την πιο

αργή εκτέλεση του προγράμματος. Δεδομένου ότι οι σχετικές δαπάνες των κύκλων

της CPU, ο χώρος της RAM, και ο χώρος του σκληρού δίσκου αλλάζουν, ένας

χρήστης με κατάλληλες επιλογές space time, μπορεί να μεταβάλει την

πολυπλοκότητα ενός προβλήματος προς όφελός του.

Για να γίνει κατανοητό το μέγεθος των Rainbow Tables, παρακάτω

παρουσιάζεται το installation dialog για το Ophcrack.

10

Page 11: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Salt

Μια κοινή χρήση των Rainbow Tables είναι να επιτρέπουν τις επιθέσεις σε

κωδικούς πρόσβασης. «Πως μπορούμε να προστατευθούμε από τέτοιου είδους

επιθέσεις;» είναι μία ερώτηση που απασχόλησε πολλούς χρήστες.

Χρησιμοποιώντας την τεχνική salt μπορούμε να αποτρέψουμε αυτές τις

επιθέσεις και να είμαστε ασφαλής. Σε αυτήν την περίπτωση, τα αποτελέσματα μίας

επίθεσης δηλαδή το «password» και το «salty-password» δεν θα ταιριάζουν, εκτός

και αν ο επιτιθέμενος γνωρίζει ότι τα hashes περιέχουν salt. H κατάλληλη ενέργεια

σε αυτό το πρόβλημα είναι να δημιουργήσει ένα custom Rainbow-Table, το οποίο

θα πρέπει να είναι προσαρμοσμένο στην τρέχουσα επίθεση.

Το salt αποτελείται από τυχαία bits τα οποία χρησιμοποιούνται ως είσοδος

σε μία κρυπτογραφική συνάρτηση, παράλληλα με τον κωδικό πρόσβασης ο οποίος

αποτελεί και αυτός είσοδο, καθώς παράλληλα μπορεί να χρησιμοποιηθεί ως κλειδί

σε ένα κρυπτογραφικό αλγόριθμο. Το salt κρατιέται μερικές φορές μυστικό , αυτό

παρέχει ένα πλεονέκτημα σε πιθανή υποκλοπή μιας βάσης δεδομένων κωδικού

πρόσβασης, στην οποία το salt δεν φαίνεται.

Στο σχήμα παρουσιάζονται τα αποτελέσματα salt σε έναν ισχυρό κωδικό

πρόσβασης και σε έναν αδύναμο αντίστοιχα. Παρατηρούμε πως χωρίς salt, ακόμα

και ένας ισχυρός κωδικός θα κατακερματιστεί στην ίδια αξία. Αυτό είναι μια

ευπάθεια σε περίπτωση που ο επιτιθέμενος αποκτήσει πρόσβαση στο αρχείο σκιών

11

Page 12: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

(shadow file). Ένας επιτιθέμενος θα μπορούσε απλά να αποθηκεύσει τις hash τιμές

κοινών κωδικών πρόσβασης md5 και έπειτα να είναι σε θέση να ελέγξει αν

οποιοδήποτε password στο σύστημα ταιριάζει σε αυτό το hash. Η τεχνική του salt

τελικά προκαλεί ένα είδος εντροπίας μεγάλου βαθμού στην hash value, ακόμα και

για τους αδύνατους κωδικούς πρόσβασης.

Ανάλυση των Rainbow Tables

Rainbow Table είναι μια αναπαράσταση ακολουθιών (αλυσίδων) κωδικών

πρόσβασης. Κάθε αλυσίδα ξεκινάει με έναν αρχικό κωδικό πρόσβασης, ο οποίος

διέρχεται μέσω μιας hash function κρυπτογραφίας H. Το προκύπτον hash password

τροφοδοτείται έπειτα σε μια reduction function R – συνάρτηση ανακατασκευής , η

οποία παράγει έναν διαφορετικό κωδικό πρόσβασης. Η διαδικασία

επαναλαμβάνεται έπειτα για έναν σταθερό αριθμό επαναλήψεων. Ο αρχικός

κωδικός πρόσβασης και o τελευταίος κωδικός της αλυσίδας που παράγεται από την

R αποτελούν μια είσοδο σε ένα πίνακα ουράνιων τόξων.

Στην εικόνα βλέπουμε καλύτερα τη λειτουργία των rainbow tables. Το αρχικό

password είναι η λέξη Wikipedia και έπειτα ακολουθεί η διαδικασία που

αναφέρθηκε προηγουμένως.

12

Page 13: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Building hash chains according to Hellman’s original algorithm, two chains

which have merged (storing almost entirely duplicate data), and a Rainbow Chain.

Hellman’s Algorithm

Ο αλγόριθμος του Hellman μειώνει σημαντικά το κόστος αναζήτησης έναντι

μιας brute force attack. Η κύρια καινοτομία που εισάγεται από τον Hellman είναι η

ιδέα της χρήσης μιας reduction function η οποία χαρτογραφεί την hash παραγωγή

(output) πίσω στο key space έτσι ώστε να παράγει αλυσίδες από hashes και keys.

Ο πλήρης πίνακας κατασκευάζεται με την οικοδόμηση μιας σειράς γραμμών

(rows). Κάθε σειρά αρχίζει με μια τυχαία αξία, η οποία στη συνέχεια

κατακερματίζεται. Το hash της αρχικής αξίας μειώνεται έπειτα και αυτές οι

διαδικασίες αλυσοδένονται επανειλημμένα, έως ότου η γραμμή φτάσει το

επιθυμητό μήκος και τελειώνει με μία τελική hash αξία.

13

Page 14: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Αξίζει να σημειωθεί ότι η επίθεση υιοθετείται μετά τον υπολογισμό του

πίνακα. Απαιτεί μόνο το αρχικό και το τελικό σημείο για κάθε αλυσίδα, πράγμα που

σημαίνει πως κατά τη διάρκεια του precomputation όλα τα ενδιάμεσα σημεία

μπορεί να απορριφθούν, καθώς χρησιμοποιούνται.

An illustration of the the hash and reduction functions used to generate

tables for Hellman’s approach.

Again: An illustration of the the hash and reduction functions used to

generate tables for Hellman’s approach.

Το έγγραφο του Hellman χρησιμοποιεί τους πίνακες μεγέθους Ν^2/3 (όπου

Ν το μέγεθος του διαστήματος αναζήτησης για τους κωδικούς πρόσβασης) ως αξία,

η οποία παράγει έναν πίνακα που θα ελαχιστοποιήσει τον αριθμό κλειδιών που

χάνουν τον πίνακα εντελώς, ενώ παράλληλα παρέχει μια αξιόλογη αύξηση στην

ταχύτητα υπολογισμού. Αν και αυτό αποτελεί μια σημαντική βελτίωση, είναι ακόμα

ανεπαρκείς κατά τη διάρκεια επιθέσεων σε όλους, εκτός των αδύναμων κωδικών

πρόσβασης.

14

Page 15: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Ανάκτηση Password

Η ανάκτηση ενός κωδικού πρόσβασης που χρησιμοποιεί έναν πίνακα

ουράνιων τόξων είναι μια διαδικασία δύο βημάτων.

1ο βήμα: Ο hash password χρησιμοποιείται για την δημιουργία αλυσίδας

μέσω της reduce-hash ακολουθίας. Η δομή του πίνακα και η λειτουργία της

reduction function εγγυώνται ότι το τρέχων hash θα ταιριάζει με τελικό hash με μια

από τις αλυσίδες που περιέχονται ήδη στα rainbow tables .

2ο βήμα: Η ακολουθία δημιουργίας αλυσίδας επαναλαμβάνεται αρχίζοντας

από αυτόν τον αρχικό κωδικό πρόσβασης έως ότου βρεθεί το αρχικό hash. Ο

κωδικός πρόσβασης που χρησιμοποιείται στην τελευταία επανάληψη είναι ο

κωδικός πρόσβασης που ανακτάται.

Το περιεχόμενο των rainbow tables δεν εξαρτάται από την είσοδο του

αλγορίθμου. Δημιουργείται μια φορά και έπειτα χρησιμοποιείται επανειλημμένα

για τον έλεγχο.

Η αύξηση του μήκους της αλυσίδας μειώνει το μέγεθος του πίνακα. Αυξάνει

το χρόνο που απαιτείται για να κατασκευασθεί μια αλυσίδα, και αυτό είναι η

ανταλλαγή χρόνου/μνήμης του πίνακα ουράνιων τόξων. Σε μια απλή περίπτωση

αλυσίδας ενός μόνο στοιχείου , η αναζήτηση είναι πολύ γρήγορη, αλλά ο πίνακας

είναι πολύ μεγάλος. Όσο οι αλυσίδες μεγαλώνουν , η αναζήτηση επιβραδύνεται ,

αλλά το μέγεθος του πίνακα μικραίνει.

Το τελικό αποτέλεσμα είναι ένας πίνακας που περιέχει τη στατιστικά

υψηλότερη πιθανότητα για ανεύρεση ενός κωδικού πρόσβασης εντός ενός μικρού

χρονικού διαστήματος. Η πιθανότητα επιτυχίας του πίνακα εξαρτάται από τις

παραμέτρους που χρησιμοποιούνται για να τον παραγάγουν. Αυτοί περιλαμβάνουν

το σύνολο των χαρακτήρων που μπορεί να υπάρχουν σε ένα κωδικό πρόσβασης , το

μήκος του κωδικού πρόσβασης, το μήκος των αλυσίδων, καθώς και ο αριθμός των

πινάκων.

15

Page 16: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Πρακτικά παραδείγματα

Το μικρότερο σε μνήμη Rainbow Table είναι το basic alphanumeric, το οποίο

και πάλι καταλαμβάνει 388megabyte στο χώρο. Αυτός είναι ο πίνακας προεπιλογής

που παίρνουμε από το Ophcrack το οποίο και χρησιμοποιήσαμε για την επίθεση σε

μερικούς κωδικούς που δημιουργήσαμε με το Windows XP virtual machine με τα

ακόλουθα αποτελέσματα :

Παρατηρούμε πως αυτό το Rainbow Table δεν λειτουργεί για μη

αλφαριθμητικούς χαρακτήρες (πχ @#$%) διότι δεν τους περιέχει. Αυτή η επίθεση

κάλυψε το 99.9% των αλφαριθμητικών κωδικών 14-χαρακτηρων και αυτό μόνο σε

11 λεπτά.

Είναι σημαντικό να σημειωθεί ότι όλα τα rainbow tables έχουν συγκεκριμένο

μήκος και σετ χαρακτήρων με τα οποία λειτουργούν αυστηρά. Password τα οποία

είναι πολύ μεγάλα, ή περιέχουν χαρακτήρες που δεν βρίσκονται μέσα στο character

set δεν μπορούν να προσβληθούν από επιθέσεις που γίνονται μέσω rainbow

tables.

To Ophcrack εργαλείο δεν είναι και τόσο εύκαμπτο. Δεν σου επιτρέπει να

δημιουργήσεις τα δικά σου Rainbow Tables. Για αυτήν την ενέργεια πρέπει να

χρησιμοποιηθούν Project Rainbow Crack Tools, τα οποία μπορούν να επιτεθούν

σχεδόν σε οποιοδήποτε χαρακτήρα-σύνολο, ή σε οποιονδήποτε hashing αλγόριθμο.

16

Page 17: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Υπάρχει λόγος που τα rainbow tables έχουν αρχίσει να χρησιμοποιούνται

πρόσφατα, καθώς πλέον η χρήση 2-4gigabyte της μνήμης είναι κάτι απλό και

συνηθισμένο.

Παρακάτω έχουμε μερικά παραχθέντα rainbow tables για ασφαλέστερο NT hash.

Μία επίθεση rainbow table είναι συνήθως υπερβολή για μία μηχανή

υπολογιστών γραφείου. Εάν οι χάκερ έχουν φυσική πρόσβαση στη μηχανή, τότε η

ασφάλεια είναι ευάλωτη. Όταν λοιπόν ένας μακρινός χάκερ λάβει έναν μεγάλο

κατάλογο κατακερματισμένων κωδίκων, τότε παρουσιάζεται πρόβλημα και έχουμε

το ρίσκο να δεχθούμε άμεσα μία rainbow table επίθεση. Για αυτόν ακριβώς τον

λόγο πρέπει να χρησιμοποιούμε salt στα hash μας.

Hash= md5(‘-salt-‘+password)

Further Improvement

Η καινοτομία των Rainbow Tables σε σύγκριση με τις προηγούμενες

προσεγγίσεις είναι η χρήση μιας σειράς reduction function (σε αντιδιαστολή με μια

σειρά πινάκων, κάθε ένας που παράγεται με μια ενιαία λειτουργία μείωσης). Όταν

οι αλυσίδες παράγονται, η θέση στην αλυσίδα καθορίζει ποια λειτουργία μείωσης

εφαρμόζεται σε κάθε hash.

Αυτό παρέχει ένα σημαντικό πλεονέκτημα από την άποψη του

precomputation time : εάν μια σύγκρουση εμφανίζετε, εκφυλίζεται στις

συγχωνευμένες αλυσίδες μόνο αν η σύγκρουση εμφανίζεται στην ίδια θέση μέσα

στην αλυσίδα (δεδομένου ότι ειδάλλως η επόμενη λειτουργία μείωσης που

εφαρμόζεται θα ήταν διαφορετική και οι αλυσίδες θα χώριζαν). Ενώ μια Rainbow

17

Page 18: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Tables chain μπορεί πιθανά να περιέχει μια σειρά επανάληψης των τιμών, η

πιθανότητα αυτού του γεγονότος που εμφανίζεται είναι πολύ χαμηλή, όπως είναι η

πιθανότητα ότι δύο αλυσίδες περιέχουν μια σειρά ίδιων τιμών οποιουδήποτε

αξιόλογου μήκους.

Hacking Tools

Υπάρχουν πολλοί τρόποι που μπορεί να χρησιμοποιήσει κάποιος για να

κάνει μια επίθεση hacking σε κάποιον άλλον. Έτσι έχουν φτιαχτεί και κάποια

εργαλεία με τα οποία αυτή η διαδικασία γίνεται ακόμα πιο εύκολη για τον

επιτιθέμενο. Κάποια από αυτά είναι το Aircrack-ng, Hydra, John The Ripper,

Hashcat, Medusa και πολλά άλλα. Μπορούμε να πούμε ότι όλα έχουν και τον καλό

σκοπό δημιουργίας τους παραδείγματος χάρη να βρει κάποιος ένα χαμένο κωδικό

σε κάποιο προστατευμένο αρχείο, ή ένα χαμένο/ξεχασμένο κωδικό σε ένα εταιρικό

e-mail.

Aircrack-ng

Εμείς για την εργασία μας χρησιμοποιήσαμε το Aircrack-ng γιατί ήταν το πιο

απλό στην χρήση και το πιο εύκολο για να βγάλουμε ένα γρήγορο αποτέλεσμα για

παράδειγμα. Κάναμε επίσης δοκιμές με το hydra, όπου προσπαθήσαμε να

χακάρουμε ένα λογαριασμό gmail,όμως το ίδιο το πρόγραμμα τελικά δεν μας άφηνε

να το υλοποιήσουμε και μας έλεγε ότι η διαδικασία αυτή είναι παράνομη. Το ίδιο

προσπαθήσαμε να κάνουμε αργότερα με το Hashcat, όμως και εκεί συναντήσαμε το

ίδιο πρόβλημα διότι είναι λίγο περίπλοκο εργαλείο και ουσιαστικά δεν μπορέσαμε

να βγάλουμε κάποιο αποτέλεσμα. Έτσι όπως προαναφέρθηκε χρησιμοποιήσαμε το

Aircrack-ng( το εργαλείο αυτό είναι προεγκατεστημένο στα kali-Linux, τα οποία

χρησιμοποιήσαμε για να κάνουμε το συγκεκριμένο παράδειγμα) όπου με διάφορες

εντολές που θα δούμε και παρακάτω μπορέσαμε να "χακάρουμε" το δίκτυο στο

σπίτι ενός από τα άτομα της ομάδας. Επίσης το Aircrack-ng χρησιμοποιεί μια μορφή

18

Page 19: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

των dictionary tables για να βρει αυτό που ψάχνουμε οπότε είναι και από τα

καλύτερα παραδείγματα που μπορούσαμε να βρούμε.

Ας δούμε βήμα-βήμα την διαδικασία του Aircrack-ng:

1. Με την εντολή "airmon-ng" μπορούμε να δούμε τις διαδικασίες που τρέχουν στον

υπολογιστή μας στο επίπεδο του ίντερνετ και μπορούν να προκαλέσουν πρόβλημα

σε αυτό που θέλουμε να τρέξουμε.

2. Χρησιμοποιώντας την εντολή "airmon-ng check kill" τερματίζουμε αυτές τις

διαδικασίες για να μπορούμε να κάνουμε το hacking χωρίς προβλήματα.

3. Στη συνέχεια με την εντολή: "airmon-ng start wlan0" ξεκινάμε την διαδικασία

wlan0 την οποία θα χρησιμοποιήσουμε για να βρούμε τις πληροφορίες του δικτύου

που θέλουμε να κάνουμε την επίθεση μας.

19

Page 20: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

4. "iwconfig" με αυτή την εντολή τώρα μπορούμε να σιγουρευτούμε ότι το wlan0

είναι η μόνη διαδικασία που τρέχει στον υπολογιστή( στο επίπεδο δικτύου).

5. Με την εντολή: "airodump-ng wlan0" λέμε στον υπολογιστή να βρει τα δίκτυα

που βρίσκονται τριγύρω μας και έτσι θα βρούμε και αυτό που θέλουμε να κάνουμε

την επίθεση.

όταν πλέον βρει όλα τα διαθέσιμα δίκτυα η διαδικασία τελειώνει και έχουμε πλέον

μια λίστα με διάφορες πληροφορίες για αυτά, όπως είναι το bssid τους, το channel

στο οποίο βρίσκονται και το όνομα του κάθε διαφορετικού δικτύου ( το οποίο είναι

και το πιο χρήσιμο μιας και θα θέλουμε να σπάσουμε τον κωδικό κάποιου

συγκεκριμένου δικτύου). Παρακάτω βλέπουμε τη διαδικασία να έχει τελειώσει και

να έχει βρει τα γειτονικά μας δίκτυα.

20

Page 21: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Το δίκτυο που θα γίνει η επίθεση είναι το "COSMOTE-311DA6"

6. Τώρα είναι η στιγμή που θα χρησιμοποιήσουμε την εντολή: "airodump-ng -c 11 -

w wpatutorial --bssid 78:96:82:31:1D:A6 wlan0mon" για να βρούμε μέσα στο δίκτυο

που ψάχνουμε κάποιες συσκευές που είναι συνδεδεμένες σε αυτό και παράλληλα

να πάρει ένα "handshake" από τουλάχιστον μία και πλέον θα έχουμε στον

υπολογιστή μας τον κωδικό σε κρυπτογραφημένη μορφή.

Μέσα στην εντολή που έχουμε κάποια στοιχεία που θα πρέπει να δούμε λίγο

καλύτερα:

- Με το -c 11 δηλώνουμε το channel στο οποίο βρίσκεται το δίκτυο που θέλουμε να

κάνουμε την επίθεση.

- Με το -w wpatutorial θα δημιουργήσουμε ένα αρχείο στο pc το οποίο θα κρατήσει

τον κρυπτογραφημένο κωδικό μόλις τελειώσει η διαδικασία.

- Τέλος με το -bssid 78:96:82:31:1D:A6 δηλώνουμε την bssid του δικτύου που

θέλουμε να κάνουμε την επίθεση. Βλέπουμε πάνω ότι έχουμε δύο δίκτυα με το

όνομα που ψάχνουμε, οπότε κάνουμε δοκιμές να δούμε πιο είναι το σωστό. Αν δεν

πετύχει δηλαδή η διαδικασία με το ένα θα πάμε να δοκιμάσουμε το άλλο, όσα και

να είναι.

21

Page 22: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

7. Εδώ θα δούμε το τέλος της διαδικασίας και πάνω δεξιά στην εικόνα μπορούμε να

διακρίνουμε το "WPA handshake: 78:96:82:31:1D:A6" και κάτω τις δύο συσκευές

που εντοπίστηκαν να είναι συνδεδεμένες μέσα στο δίκτυο και μέσω κάποιας από

αυτές τις δύο κατάφερε να πάρει το handshake και κατά συνέπεια τον

κρυπτογραφημένο κωδικό.

Παρακάτω βλέπουμε το αρχείο wpatutorial-01 το οποίο δημιουργήθηκε

μέσω της παραπάνω διαδικασίας και εκεί μέσα βρίσκεται ο κωδικός τον οποίο στη

συνέχεια θα προσπαθήσουμε να βρούμε.

8. Αν το handshake για κάποιο λόγο δεν το είχε βρει η διαδικασία από μόνη της με

την εντολή: "aireplay-ng --deauth 1 -a 78:96:82:31:1D:A6 -h 78:96:82:31:1D:A6 -c

EC:9B:F3:82:CC:49 wlan0mon" για την πρώτη συσκευή και "aireplay-ng --deauth 1 -a

78:96:82:31:1D:A6 -h 78:96:82:31:1D:A6 -c 16:FE:ED:944:A5:C9 wlan0mon" για την

22

Page 23: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

δεύτερη. Εμείς είχαμε πετύχει με την πρώτη το authentication οπότε η εντολή αυτή

δεν έκανε τίποτα καινούριο όπως θα δούμε και παρακάτω (όμως δεν είναι κακό να

την τρέξουμε και ας έχουμε πάρει το handshake από πριν γιατί είναι και μία

επιβεβαίωση αν κάτι έχει πάει λάθος).

9. Φτάσαμε στο σημείο λοιπόν που είμαστε έτοιμοι να ξεκινήσουμε το password

cracking. Όπως αναφέρθηκε στην αρχή του παραδείγματος το aircrack είναι μία

διαδικασία που χρησιμοποιεί dictionary tables, έτσι θα χρειαστούμε ένα αρχείο το

οποίο θα περιέχει τα λεγόμενα dictionary tables, θα είναι δηλαδή μια λίστα με

πολλές λέξεις (wordlist) που θα χρησιμοποιήσει το πρόγραμμα για να βρει αυτή που

θα ταιριάζει με αυτή που ψάχνουμε, τον κωδικό του δικτύου που θέλουμε. Για να

το καταφέρουμε αυτό θα χρησιμοποιήσουμε την εντολή: "aircrack-ng -w hack.txt -b

78:96:82:31:1D:A6 wpatutorial-01.cap wlan0mon".

Το hack.txt είναι η wordlist που προαναφέρθηκε και το wpatutorial-01.cap

είναι το αρχείο που δημιουργήθηκε σε μια προηγούμενη διαδικασία και περιέχει

μέσα τον κρυπτογραφημένο κωδικό. Εμείς λοιπόν με την εντολή αυτή λέμε στο

πρόγραμμα πάρε όλες τις λέξεις από το ένα αρχείο και δες αν είναι κάποια από

αυτές ο κωδικός που ψάχνουμε.

10. Η διαδικασία τρέχει και ανάλογα με το πόσες πολλές λέξεις υπάρχουν στο

αρχείο αυτό τόσο περισσότερη ώρα θα του πάρει.

23

Page 24: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Αρχικά στην πρώτη προσπάθεια μέσα στην λίστα αυτή δεν υπήρχε πουθενά

ο κωδικός του δικτύου και έτσι η διαδικασία μετά απ' όλες τις προσπάθειες που

έκανε απέτυχε και μας εμφάνισε το αντίστοιχο μήνυμα: "Passphrase not in

dictionary" και τερματίστηκε η διαδικασία.

Μετά από την αποτυχημένη προσπάθεια ανανεώσαμε την λίστα και βάλαμε

μέσα και την λέξη που αποτελεί τον κωδικό του δικτύου που κάναμε την επίθεση.

Μετά από κάποια λεπτά βρήκε ότι η λέξη αυτή είναι ίδια με την κρυπτογραφημένη

και έτσι η διαδικασία ήταν επιτυχής και μας εμφάνισε το αντίστοιχο μήνυμα: "KEY

FOUND ["κωδικός του δικτύου"]".

24

Page 25: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

:Συμπέρασμα

Σαν συμπέρασμα μπορούμε να πούμε ότι με το aircrack-ng είναι εύκολο να

βρούμε έναν κωδικό εάν η λίστα που θα χρησιμοποιήσουμε είναι πολύ μεγάλη

αλλά έχει και πολλές διαφορετικές παραλλαγές της κάθε λέξης. Αν ένας κωδικός

όμως περιέχει και κεφαλαία και μικρά γράμματα και αριθμούς και σύμβολα τότε η

δουλειά αυτή γίνεται ακόμα πιο δύσκολη.

Για να προστατευτούμε από αυτού του είδους επιθέσεις είναι καλό να

χρησιμοποιούμε μεγάλους κωδικούς με τουλάχιστον ένα κεφαλαίο γράμμα και έναν

αριθμό και να είναι μία φράση, όχι μια απλή λέξη. Πλέον το password πρέπει να

αντικατασταθεί από το λεγόμενο passphrase.

CPU-GPU

Είναι σωστό να πούμε ότι οι υπολογιστές έχουν ολοκληρωμένα chips τα

οποία καθιστούν την απαραίτητη προϋπόθεση για να λειτουργήσει σωστά η

απεικόνιση της εικόνας του υπολογιστή στην οθόνη. Αυτή η διαδικασία γίνεται από

την GPU (Graphical Processing Unit) η οποία αρχικά αναπτύχθηκε για 2D γραφικό

περιβάλλον όμως με την πάροδο του χρόνου μπήκε στη ζωή μας το 3D γραφικό

περιβάλλον και έτσι αναπτύχθηκαν και οι GPUs για να μπορούν να ανταπεξέλθουν

στα καινούρια συστήματα πολύ περισσότερο όμως απ ότι θα χρειαζόταν.

Αρχιτεκτονικά ένας επεξεργαστής (CPU) έχει λίγους πυρήνες με πολύ μεγάλη

cache memory η οποία μπορεί να χειριστεί λίγα νήματα λογισμικού ανά πάσα

χρονική στιγμή. Η διαφορά λοιπόν μίας GPU με έναν CPU είναι ότι έχει εκατοντάδες

πυρήνες και μπορεί να επεξεργαστεί χιλιάδες τέτοια νήματα ταυτοχρόνως. Έτσι

συμπεραίνουμε ότι μία GPU επιτυγχάνει τέλειες επιδόσεις χρησιμοποιώντας

παραλληλισμό με εκατοντάδες (αν όχι χιλιάδες) πυρήνες. Ενώ ένας CPU μπορεί να

25

Page 26: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

εκτελέσει τέσσερις 32-bit οδηγίες ανά clock ενώ μία GPU μπορεί να εκτελέσει 3200

32-bit οδηγίες ανά clock. Σε αυτό που καταλήγουμε είναι ότι μία GPUείναι πιο

ειδικευμένη σε ανάλυση αριθμών καθώς τρέχει εκατομμύρια και δισεκατομμύρια

πράξεις το δευτερόλεπτο. Οι πυρήνες σε κάθε GPU αλλάζει ανάλογα τον

κατασκευαστή, η nVidia προτιμάει πιο πολύ δύναμη σε λιγότερα chips ενώ η AMD

βάζει περισσότερους πυρήνες για να αυξήσει την επεξεργαστική ισχύ.

Κάποιες κάρτες γραφικών και πόσα hashes μπορούν να επεξεργαστούν το

δευτερόλεπτο:

-AMD Radeon R9 390X - 200000 hashes/sec

-AMD Radeon R9 295X - 347000 hashes/sec

-AMD Radeon HD 7990 - 260000 hashes/sec

-nVidia GTX Titan X - 279000 hashes/sec

-nVidia GTX 980 Ti - 240000 hashes/sec

-nVidia GTX Titan Z - 188000 hashes/sec

(Οι GPU της AMD είναι λίγο καλύτερες από της nVidia στο κομμάτι της

αποκρυπτογράφησης).

How to make a better password

Ένας τρόπος με τον οποίο ο χρήστης μπορεί να ενδυναμώσει τον κωδικό του

απέναντι στις ανεπιθύμητες επιθέσεις των λεγόμενων hackers, είναι η σωστή

επιλογή και σειρά των χαρακτήρων του κωδικού που θα ορίσει για την προστασία

των δεδομένων του.

26

Page 27: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

Πιο αναλυτικά, ένας κωδικός, ενδεικτικά, θα πρέπει να περιλαμβάνει

διάφορα γράμματα, ψηφία και σύμβολα.

Χρησιμοποιώντας μια σχετική σελίδα στο διαδίκτυο(

https://howsecureismypassword.net/ ), μπορούμε να συμπεράνουμε πως ακόμα και

ένας απλός κωδικός με 16 μηδενικά χρειάζεται 3 μέρες για να σπάσει και να

αποκαλυφθεί.

Την ίδια στιγμή, χρησιμοποιώντας μονάχα ένα σύμβολο και ένα κεφαλαίο

γράμμα, ένας κωδικός με 16 χαρακτήρες απαιτεί περίπου 18 χιλιάδες χρόνια για να

σπάσει.

Συμπερασματικά , ένας ορθός κωδικός, για να μπορέσει να θεωρηθεί

ισχυρός απέναντι στις διαδικτυακές επιθέσεις, δε θα πρέπει να αποτελεί μια

ολοκληρωμένη και προβλέψιμη λέξη, αλλά έναν συνδυασμό χαρακτήρων, που θα

ξεπερνούν σε αριθμό τουλάχιστον τους 16. Η πολυπλοκότητα ενός κωδικού

27

Page 28: Password · Web viewΜε την τεχνική λοιπόν των dictionary attack, για να πετύχει μια επίθεση πρέπει ο επιθυμητός κωδικός

εξαρτάται από τη δημιουργικότητα του κάθε χρήστη και τις απαιτήσεις του

προγράμματος όπου τον ζητάει.

28