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


Τη σήμερον ημέρα ένα μεγάλο μέρος της ζωής μας το περνάμε στο ίντερνετ, χρησιμοποιώντας ένα σωρό σελίδες στις οποίες αποθηκεύουμε τα δεδομένα μας. Αν όμως τα κλειδιά των λογαριασμών μας πέσουν σε λάθος χέρια, κινδυνεύουμε να εκτεθούμε ανεπανόρθωτα. Για αυτό το λόγο όλοι συστήνουν να έχουμε διαφορετικούς κωδικούς για κάθε λογαριασμό, οι οποίοι θα περιλαμβάνουν γράμματα, αριθμούς, σύμβολα και άλλα στοιχεία. Πόσο εύκολα χακάρονται όμως οι λογαριασμοί μας και τι ακριβώς πρέπει να περιλαμβάνει ένας σωστός κωδικός;

Σκέψου για παράδειγμα να βρει κάποιος τα κλειδιά σου στο Facebook και με το προφίλ σου να πάει στο προφίλ του αφεντικού σου και να τον βρίσει. Άντε να αποδείξεις ότι δεν ήσουν εσύ! Μπορεί ας πούμε να αποκτήσει κάποιος πρόσβαση στο Dropbox σου και να πάρει και να δημοσιεύσει τις... πονηρές φωτογραφίες που κρατάς εκεί. Μπορεί τέλος η επιχείρησή σου να βρίσκεται στο ίντερνετ, με τη μορφή ενός e-shop και με τη βοήθεια ενός αδύναμου κωδικού, να μπει κάποιος και να στη διαγράψει τελείως!

Όσο περισσότερο εξαρτόμαστε λοιπόν από τις υπηρεσίες του ίντερνετ, τόσο περισσότερο θα πρέπει να ανησυχούμε για την ασφάλειά τους. Δε χρειάζεται βέβαια να αρρωστήσουμε από την ανησυχία, καθώς το μόνο που χρειάζεται είναι να έχουμε καλούς και τακτοποιημένους κωδικούς, ας δούμε όμως ποιες μεθόδους χρησιμοποιούν οι χάκερ και πόσο εύκολα χακάρονται οι κωδικοί μας.

Διαφήμιση

Τι είναι τα hash string;


Ας ξεκινήσουμε με τα βασικά. Όταν κάνουμε έναν λογαριασμό στο PlayStation για παράδειγμα, η υπηρεσία αποθηκεύει τα στοιχεία πρόσβασής μας σε μία βάση δεδομένων. Αν αυτή η υπηρεσία είναι σοβαρή, αποθηκεύει τον κωδικό μας σε κρυπτογραφημένη μορφή, στο λεγόμενο hash string. Αν λοιπόν χακάρει κάποιος τους server του PlayStation (κάτι που έχει συμβεί στο παρελθόν) και πάρει τα στοιχεία χιλιάδων λογαριασμών, μαζί και του δικού μας, θα έχει στα χέρια του αυτά τα hash string, μαζί με το username μας.


Από κάθε κωδικό πρόσβασης δημιουργείται ένα μοναδικό hash string. Αν λοιπόν πολλοί χρήστες έχουν εντελώς τυχαία τον ίδιο κωδικό, ο χάκερ θα βλέπει και το ίδιο hash string για όλους. Βρίσκοντας λοιπόν σε ποιο κωδικό αντιστοιχεί το συγκεκριμένο hash string, θα μπορέσει να μπει και σε όλους τους λογαριασμούς, αφού έχει ήδη στα χέρια του τα username.

Το καλό είναι ότι από το hash string δεν μπορούμε να βρούμε τον κωδικό δουλεύοντάς το ανάποδα (reverse engineering). Υπάρχουν όμως τρόποι για να βρεθεί ο κωδικός, οι γνωστότεροι από τους οποίους είναι:

  1. τα Rainbow Table,
  2. το Dictionary Attack (Wordlist),
  3. το Brute Force Attack

Rainbow Tables


Τα Rainbow Table είναι βάσεις δεδομένων, οι οποίες περιλαμβάνουν γνωστούς κωδικούς και τα αντίστοιχα hash τους. Ο χάκερ μας λοιπόν μπορεί να πάει σε μία από αυτές τις βάσεις, να βάλει όλα τα hash που έχει στα χέρια του και αν κάποια από αυτά περιλαμβάνονται στη βάση, να βρει τους κωδικούς που αντιστοιχούν.


Αν λοιπόν προσθέσει σε αυτή τη βάση το hash "5f4dcc3b5aa765d61d8327deb882cf99", θα μάθει πολύ εύκολα ότι ο κωδικός που χρησιμοποιούμε είναι η λέξη "password". Κάποιος άλλος χρήστης έχει σκεφτεί πιο πονηρά και έχει βάλει την ίδια λέξη με τη μορφή "p@ssw0rd!". Είναι όντως πιο ασφαλής γιατί χρησιμοποιεί γράμματα, αριθμούς και σύμβολα. Ταυτόχρονα όμως είναι και αυτή κοινή και περιλαμβάνεται στα Rainbow Table με hash "d5ec75d5fe70d428685510fae36492d9". Ο χάκερ μας δηλαδή θα μπορέσει με μεγάλη ευκολία να μπει και σε αυτόν το λογαριασμό.

Αν θέλετε να μάθετε το hash (MD5) για τους δικούς σας κωδικούς, μπορείτε να επισκεφτείτε μία σελίδα όπως το MD5 Hash Generator και να το βρείτε. Αν πάλι έχετε κάποιο hash δικού σας λογαριασμού και θέλετε να δείτε αν περιλαμβάνεται στα Rainbow Table, ένα από αυτά βρίσκεται στη σελίδα CrackStation. Το CrackStation είναι ένα μόνο από τα πολλά Rainbow Table που υπάρχουν στο ίντερνετ και αν δεν περιλαμβάνει τους δικούς μας κωδικούς, δε σημαίνει ότι αυτοί λείπουν και από τα υπόλοιπα.

Διαφήμιση

Dictionary Attack (Wordlist)


Αν τώρα ο κωδικός μας δεν είναι μία κοινή λέξη ή δεν περιλαμβάνεται σε κάποιο Rainbow Table, ο χάκερ μας έχει την επιλογή του Dictionary Attack. Η "επίθεση" αυτή γίνεται μέσω ενός τεράστιου αρχείου κειμένου (Wordlist), το οποίο περιλαμβάνει πάρα μα πάρα πολλούς κωδικούς, κοινούς και μη. Το μόνο που χρειάζεται να κάνει ο χάκερ μας, είναι να χρησιμοποιήσει ένα αυτόματο πρόγραμμα, για να συγκρίνει το hash string που έχει στα χέρια του, με αυτά που περιλαμβάνονται στη Wordlist. Αν το πρόγραμμα βρει το hash μέσα στη λίστα, θα του δώσει και τον κωδικό.


Μία τέτοια λίστα περιλαμβάνει και το CrackStation που είδαμε προηγουμένως, το μέγεθος της οποίας είναι 15GB! Για ένα αρχείο κειμένου, αυτό το μέγεθος είναι πραγματικά τεράστιο!

Το Dictionary Attack όμως μπορεί να γίνει στοχευμένα και για εμάς προσωπικά. Όταν ο χάκερ πήρε στα χέρια του τα στοιχεία του λογαριασμού μας, έμαθε το username, το ονοματεπώνυμο, την ηλικία και ότι άλλο είχαμε προσθέσει στο προφίλ μας. με λίγη φαντασία λοιπόν μπορεί να δημιουργήσει κωδικούς με το συνδυασμό όλων αυτών, να τους μετατρέψει σε hash string και να τους συγκρίνει με αυτό που έχει στα χέρια του.

Brute Force Attack


Δεν τελειώνουμε όμως εδώ, καθώς αν ο χάκερ μας δεν καταφέρει τίποτα με τις δύο πρώτες μεθόδους, μπορεί να δοκιμάσει την τεχνική του Brute Force Attack. Σε αυτή τη μέθοδο χρησιμοποιείται ένας υπολογιστής ο οποίος μετατρέπει αυτόματα όλους τους συνδυασμούς γραμμάτων, αριθμών και συμβόλων, σε ένα hash string, για να βρει τον κωδικό. 

Για παράδειγμα η λέξη "password" μπορεί να βρεθεί σε μόλις 2.17 δευτερόλεπτα, διότι είναι ένας συνδυασμός μέσα από τους 26 πεζούς χαρακτήρες του αλφαβήτου!


Για τη λέξη "p@ssw0rd!" θα χρειαστούν 4,16 ημέρες, διότι είναι συνδυασμός από 69 χαρακτήρες (πεζά, αριθμοί, σύμβολα).


Για τη λέξη "h%9D3-Ijn76" θα χρειαστούν 18,28 αιώνες, γιατί αποτελεί συνδυασμό από 95 χαρακτήρες (πεζά, κεφαλαία, αριθμοί και σύμβολα), ενώ είναι και ελαφρώς μεγαλύτερη από τους προηγούμενους!


Όπως βλέπουμε και στην τελευταία περίπτωση, η συγκεκριμένη τεχνική χρειάζεται πολύ χρόνο και έναν πολύ δυνατό υπολογιστή για να αποφέρει αποτελέσματα. Για αυτό το λόγο κοστίζει πολύ στον χάκερ που θα τη δοκιμάσει, οπότε αν δεν είσαι ο Πρόεδρος των ΗΠΑ ή κάποια μεγάλη εταιρία, δεν πρόκειται ποτέ να το κάνει κάποιος στο λογαριασμό σου. Αυτό βέβαια πρόκειται να αλλάξει άρδην με τους κβαντικούς υπολογιστές, η δύναμη των οποίων είναι πολλαπλάσια, αλλά μέχρι τότε θα έχει βρεθεί άλλος τρόπος ασφάλειας.

Η τεχνική του "salting"


Επειδή οι εταιρίες γνωρίζουν ότι δεν παίρνουμε και πολύ στα σοβαρά την ασφάλεια των λογαριασμών μας, πολλές από αυτές χρησιμοποιούν την τεχνική του "salting" στο λογαριασμό μας. Με τη μέθοδο αυτή, το Facebook για παράδειγμα, παίρνει τον κωδικό μας και προσθέτει σε αυτόν κάποια δικά του ψηφία (για παράδειγμα τη λέξη "face"), πριν μετατραπεί σε hash string.

Αν για παράδειγμα χρησιμοποιούμε τη λέξη "password", ο αλγόριθμος του Facebook θα την κάνει "passfacewordface" και στη συνέχεια θα τη μετατρέψει σε hash. Το hash λοιπόν της λέξης "password" θα είναι διαφορετικό από τη λέξη "passfacewordface" και αυτό είναι το έξτρα μέτρο ασφαλείας που καθιστά στην ουσία τα Rainbow Table άχρηστα.


Πώς πρέπει να είναι ένας καλός κωδικός και τι μπορείς να κάνεις για να τον θυμάσαι;


Τι μάθαμε λοιπόν από όλα τα παραπάνω; Ότι οι κωδικοί που θα επιλέξουμε για τους λογαριασμούς μας, πρέπει ιδανικά να περιέχουν κεφαλαία και πεζά γράμματα, αριθμούς, σύμβολα, ειδικούς χαρακτήρες και να είναι διαφορετικοί για κάθε ιστοσελίδα στην οποία κάνουμε εγγραφή. Πρέπει επίσης να μην είναι κοινοί ή ακόμη καλύτερα να μην έχουν καμία έννοια, ενώ τέλος αν θέλουμε την απόλυτη ασφάλεια, θα πρέπει να αποτελούνται από όσο το δυνατόν περισσότερα ψηφία γίνεται.

Αν έχεις όμως τεράστιους κωδικούς, οι οποίοι ταυτόχρονα δεν έχουν καμία έννοια πώς είναι δυνατόν να τους θυμάσαι; Για αυτό υπάρχουν οι password manager σαν τον Keepass DX, οι οποίοι αποθηκεύουν για εμάς τα πάντα και μας προτείνουν νέους κωδικούς, κάθε φορά που κάνουμε εγγραφή σε νέα υπηρεσία. Επιλέγουμε τον συγκεκριμένο password manager γιατί αποθηκεύει τοπικά τους κωδικούς μας και όχι σε κάποιο server. Έτσι έχουμε τον απόλυτο έλεγχο στους κωδικούς μας, αλλά αν χάσουμε τη βάση στην οποία αποθηκεύονται, χάνουμε τα πάντα.

Ειδικά στο Android είναι πολύ βολικός, καθώς μπορεί να ρυθμιστεί και ως "Υπηρεσία αυτόματης συμπλήρωσης". Όταν λοιπόν θελήσουμε να μπούμε σε ένα από τα προφίλ μας ή να κάνουμε login σε μια εφαρμογή, θα μας εμφανίσει ένα παράθυρο για να επιλέξουμε τον κωδικό μέσα από το Keepass DX! Πολύ καλό.



Σχόλια

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter