Με την πάροδο των ετών, και στη προσπάθεια του να ενισχύσει (ή να αναβαθμίσει) τον κωδικό πρόσβασης, ο κλάδος δεν κατάφερε παρά να προκαλέσει σύγχυση σε χρήστες και εταιρείες με τη χρήση κάθε είδους ορολογίας, όπως ο έλεγχος ταυτότητας ή η αυθεντικοποίηση δύο παραγόντων (2FA), ο έλεγχος ταυτότητας δύο βημάτων, ο έλεγχος ταυτότητας πολλαπλών παραγόντων (MFA) και τελευταία με μοντέρνες έννοιες όπως ο καθολικός δεύτερος παράγοντας (U2F), το Fast IDentity Online 2 (FIDO2), το WebAuthn και τα passkeys.
Μέχρι σήμερα, οι περισσότεροι από τον κλάδο της κυβερνοασφάλειας θα ένιωθαν αρκετά ευχαριστημένοι αν έπειθαν κάποιον χρήστη ή εταιρεία να υϊοθετήσει οποιοδήποτε από τα παραπάνω. Μπορεί οτιδήποτε περισσότερο από έναν κωδικό πρόσβασης να αποτελεί πράγματι βελτίωση, όμως πλέον έχουμε φτάσει σε ένα σημείο που πρέπει να θέσουμε τον πήχη της ελάχιστης αποδοχής πολύ ψηλότερα. Στο συγκεκριμένο άρθρο, θα εξετάσουμε την τρέχουσα κατάσταση όσον αφορά την παράκαμψη των «ισχυρότερων» μεθόδων αυθεντικοποίησης ή επαλήθευσης ταυτότητας – και έχουμε την πεποίθηση ότι θα καταφέρουμε να επισημάνουμε την ιδανική πορεία προς το μέλλον.
Δύο, όχι και τόσο έξυπνοι
Πολλές από τις απλούστερες μεθόδους «2FA» δεν ανταποκρίνονται σε αυτό που πραγματικά οφείλει να είναι η επαλήθευση ταυτότητας ή η αυθεντικοποίηση δύο παραγόντων. Ιδανικά, οι δύο παράγοντες πρέπει να είναι δύο από τους παρακάτω τρεις τύπους: κάτι που γνωρίζετε (όπως ένας κωδικός πρόσβασης ή ένα PIN), κάτι που έχετε (όπως ένα τεκμήριο τύπου USB/ Bluetooth, μια SmartCard ή ένα ζεύγος δημόσιων/ ιδιωτικών κλειδιών) ή κάτι που είστε (όπως το δακτυλικό αποτύπωμα ή το πρόσωπο). Δυστυχώς, οι περισσότερες από τις πρώτες λύσεις που παρουσιάστηκαν κατέληξαν σε κάτι που γνωρίζετε και … κάτι σε άλλο που επίσης γνωρίζετε.
Ας πάρουμε το τεκμήριο RSA, το μήνυμα SMS ή το TOTP (κωδικοί πρόσβασης μίας χρήσης βάσει χρόνου, π.χ. Google Authenticator ή Authy) ως ορισμένες μορφές «2FA», όπου στις περισσότερες περιπτώσεις σας παρουσιάζεται ένας 6ψήφιος κωδικός που αλλάζει κάθε 30 δευτερόλεπτα. Αν και πολλοί ήταν επικριτικοί ή εξέφρασαν επιφυλάξεις για τις υλοποιήσεις SMS αυτού του είδους εξαιτίας της πιθανότητας ανταλλαγής SIM, στην πραγματικότητα όλες οι παραπάνω μέθοδοι είναι αδύναμες και επιρρεπείς στην υποκλοπή.
Το πρόβλημα είναι το εξής. Φανταστείτε ότι είστε παραλήπτες ενός καλά σχεδιασμένου (ενδεχομένως από Τεχνητή Νοημοσύνη;) μήνυμα ηλεκτρονικού ψαρέματος. Για να καταφέρει ο απατεώνας να θέσει σε κίνδυνο τον λογαριασμό ή τα δεδομένα σας σε αυτό το στάδιο, πρέπει να σας κάνει να πιστέψετε ότι το ηλεκτρονικό μήνυμα είναι νόμιμο, είτε χρησιμοποιείτε επαλήθευση ταυτότητας πολλαπλών παραγόντων είτε όχι. Και εδώ είναι το σημείο της διαδικασίας, που όταν ζητηθούν δύο διαφορετικά πράγματα που γνωρίζει κάποιος (ο κωδικός πρόσβασης και ένας μυστικός κωδικός που παράγεται δυναμικά) καταλήγει συνήθως σε δάκρυα: Αν πραγματικά πιστέψετε ότι συνδέεστε στην τράπεζα σας, στο ηλεκτρονικό ταχυδρομείο ή στον εταιρικό σας λογαριασμό, όχι μόνο θα αποκαλύψετε ευχαρίστως τον κωδικό πρόσβασής σας, αλλά και τον μυστικό σας κωδικό. Αυτός ο τύπος αυθεντικοποίησης λειτουργεί μόνο προς μία κατεύθυνση: ο απατεώνας επαληθεύει την ταυτότητά σας, αλλά εσείς δεν έχετε επαληθεύσει την ταυτότητα της οντότητας που σας ζητά επαλήθευση.
Υπάρχουν μάλιστα δωρεάν διαθέσιμα εργαλεία για την αυτοματοποίηση αυτής της εξαπάτησης. Ένα από τα πιο δημοφιλή ονομάζεται evilginx2. Αν και όταν πρωτοεμφανίστηκε βασίστηκε στον δημοφιλή εξυπηρετητή nginx, πλέον αποτελεί μια αυτόνομη εφαρμογή που χρησιμεύει ως εργαλείο «όλα-σε-ένα» για το «ψάρεμα» των στοιχείων του πολυπαραγοντικού ελέγχου ταυτότητας (knowledge-based) και την κλοπή των cookies συνεδριών για την παράκαμψη της αυθεντικοποίησης. Και αυτό έχει ωθήσει την παρανομία και την κακόβουλη συμπεριφορά σε νέα επίπεδα.
Πως φτάσαμε ως εδώ;
Αν αναλογιστούμε την ιστορία της παραβίασης διαπιστευτηρίων, όλα ξεκίνησαν με το sniffing μη κρυπτογραφημένων ασύρματων δικτύων Wi-Fi ή την εκτέλεση άλλων δικτυακών επιθέσεων προτού αρχίσει να χρησιμοποιείται κρυπτογράφηση. Το 2010 είχε κάνει την εμφάνιση του ένα διαβόητο εργαλείο που είχε την ονομασία FireSheep και είχε σχεδιαστεί για να επιτρέπει στους επιτιθέμενους να επισκέπτονται μια καφετέρια και να κλέβουν παθητικά τα διαπιστευτήρια ατόμων λόγω της έλλειψης κρυπτογράφησης.
Ως απάντηση στις επιθέσεις σαν αυτές που αναφέραμε παραπάνω αλλά και στις διαρροές του Edward Snowden το 2013, ο κλάδος προχώρησε στην κρυπτογράφηση σχεδόν των πάντων στο διαδίκτυο. Και αυτή η επιλογή, βοήθησε σημαντικά στην προστασία από τις επιθέσεις τύπου machine-in-the-middle (MitM). Σήμερα, η χρήστη του HTTPS είναι καθολική στον Ιστό, ακόμη και στις εφαρμογές των smartphones, με αποτέλεσμα να μην μπορεί ο οποιοσδήποτε να παρακολουθεί ή να καταγράφει όλα όσα μπορείτε να βλέπετε ή να κάνετε στο Διαδίκτυο.
Στη συνέχεια, οι κυβερνοεγκληματίες προχώρησαν στην κλοπή διαπιστευτηρίων, και την ίδια ώρα οι περισσότεροι από εμάς σε μεγάλο βαθμό προχωρήσαμε στην υϊοθέτηση κάποιας παραλλαγής της πολυπαραγοντικής αυθεντικοποίησης, αν και για ακόμη μία φορά, συνήθως στην φθηνότερη και ευκολότερη παραλλαγή -δηλαδή σε κάτι που γνωρίζουμε, συν κάτι εφήμερο που γνωρίζουμε επίσης. Αν και έδινε μία αίσθηση ασφάλειας, ήταν ένα αναποτελεσματικό μέτρο.
Μετά από πολλές συνεδριάσεις επιτροπών και τη δημιουργία φορέων τυποποίησης, ο κλάδος κατέληξε συναινετικά σε ένα ευρέως αποδεκτό πρότυπο γνωστό ως Web Authentication API ή WebAuthn. Αν θέλετε να εμβαθύνετε στη σύγχυση σχετικά με τα διάφορα χαρακτηριστικά του, υπάρχει ένα νήμα στο Reddit που μπορείτε να εξετάσετε ωστόσο σε αυτό το άρθρο δεν πρόκειται να προχωρήσουμε σε βαθιά ανάλυση.
Περιήγηση στο WebAuthn
Τα WebAuthn/passkeys καθιστούν την πολυπαραγοντική αυθεντικοποίηση ανθεκτική στο ηλεκτρονικό ψάρεμα. Βέβαια, τίποτα δεν είναι τέλειο, και σε μία πρόσφατη έρευνα ανακαλύφθηκε ένας περιορισμένης «εμβέλειας» αλλά εξαιρετικού ενδιαφέροντος φορέας επίθεσης MitM που περιλαμβάνει εξειδικευμένες συσκευές υλικού και ένα κενό ασφαλείας (CVE) που έχει ήδη επιδιορθωθεί, ωστόσο από εδώ και πέρα θα αναφερόμαστε σε αυτή ως μία απρόσβλητη από το ηλεκτρονικό ψάρεμα μέθοδο ελέγχου ταυτότητας πολλαπλών παραγόντων.
Ας εξετάσουμε τη διαδικασία σταδιακά. Ας πούμε, ότι θέλουμε να δημιουργήσουμε έναν λογαριασμό σε μία δημοφιλή ιστοσελίδα κοινωνικής δικτύωσης. Χρησιμοποιώντας έναν υπολογιστή ή ένα smartphone με υποστήριξη κλειδιού πρόσβασης (passkey), επιλέγουμε να δημιουργήσουμε έναν νέο λογαριασμό με κλειδί πρόσβασης. Η ιστοσελίδα ζητάει το επιθυμητό όνομα χρήστη (συνήθως μία διεύθυνση ηλεκτρονικού ταχυδρομείου). Η συσκευή στέλνει το όνομα χρήστη στην ιστοσελίδα και εκείνη στη συνέχεια απαντά με το όνομα χρήστη, μία πρόκληση (challenge) και το όνομα τομέα της ιστοσελίδας. Η συσκευή που χρησιμοποιούμε παράγει ένα μοναδικό κρυπτογραφικό ζεύγος κλειδιών, το αποθηκεύει με ασφάλεια μαζί με το όνομα της ιστοσελίδας και την ονομασία χρήστη, υπογράφει την πρόκληση από την ιστοσελίδα και επισυνάπτει το σχετιζόμενο δημόσιο κλειδί για την ιστοσελίδα ώστε να το χρησιμοποιεί ως αναγνωριστικό.
Την επόμενη φορά που θα επισκεφθούμε τη συγκεκριμένη ιστοσελίδα, δεν θα χρειάζεται πλέον, ούτε θα χρησιμοποιηθεί κάποιος κωδικός πρόσβασης, ο οποίος σύμφωνα με τον ορισμό, αποτελεί πλέον ένα κοινόχρηστο μυστικό που θα μπορούσε να κλαπεί ή να αναπαραχθεί. Αντιθέτως, όπως φαίνεται και στην Εικόνα παρακάτω, αποστέλλεται το όνομα χρήστη το οποίο είναι ταιριαστό με το όνομα τομέα της συγκεκριμένης ιστοσελίδας. Ο ιστότοπος απαντά με μια πρόκληση. Η συσκευή μας αναζητά το κλειδί για αυτό το όνομα τομέα και το χρησιμοποιεί για να υπογράψει την πρόκληση, επαληθεύοντας την ταυτότητα μας.
Για περισσότερες πληροφορίες, μπορείτε να επισκεφθείτε το vertx.io που έχει μία «developer-centric» ανάλυση των μηχανισμών της διαδικασίας.
Τι θα μπορούσε να πάει στραβά;
Με αυτόν τον συνδυασμό στοιχείων και δεδομένων, το κλειδί δεν μπορεί εύκολα να κλαπεί ή να επαναχρησιμοποιηθεί, και δεν γίνεται να εξαπατηθείτε στην προσπάθεια σας να συνδεθείτε σε μια παραπλανητική/ ψεύτικη διαδικτυακή τοποθεσία με όμοιο όνομα τομέα (υπάρχει πάντως και εδώ μία μικρή επιφάνεια επίθεσης: αν προσθέσετε ένα passkey για το zuzax.com και υπάρχει η δυνατότητα δημιουργίας ενός υποτομέα που βρίσκεται υπό τον έλεγχο ενός επιτιθέμενου, όπως για παράδειγμα το phish.zuzax.com, ενδέχεται να σας κάνουν να υπογράψετε μια επαναλαμβανόμενη πρόκληση).
Πέρα από τη συσκευή του χρήστη, το που αποθηκεύονται τα κλειδιά καθορίζει και την ασφάλειά τους έναντι της κλοπής και της κατάχρησης. Η χρήση τεκμηρίων υλικού U2F (hardware tokens), όπως ένα YubiKey ή μια SmartCard, διασφαλίζει ότι τα κλειδιά είναι κλειδωμένα σε αυτή τη συσκευή και δεν μπορούν να εξαχθούν με τη φυσική κλοπή να αποτελεί τη μόνη πρακτική επιλογή. Ορισμένα τεκμήρια υλικού απαιτούν επίσης βιομετρικά στοιχεία, PIN ή συνθηματική φράση για να ξεκλειδώσουν. Με την έλευση των passkeys, τα μυστικά κλειδιά μπορούν να συγχρονιστούν στο cloud του προμηθευτή του λειτουργικού σας συστήματος (iCloud, Google Drive, OneDrive) ή μέσω του διαχειριστή κωδικών πρόσβασης (Bitwarden, Keeper, 1password κ.λπ.) καθιστώντας τα πιο ευάλωτα σε κλοπή στην περίπτωση που παραβιαστεί ο λογαριασμός σας.
Και, φυσικά, είναι απαραίτητο να υλοποιηθεί. Το βάρος της υλοποίησης πέφτει στις ιστοσελίδες (όπου έχει σημειωθεί σημαντική πρόοδος τον τελευταίο χρόνο) και όπως πάντα, στις επιχειρήσεις που πρέπει να το ενεργοποιήσουν και να το χρησιμοποιήσουν στα συγκεκριμένα περιβάλλοντά τους. Κάτι τέτοιο δεν είναι και τόσο διαφορετικό από αυτό που συνίσταται διαρκώς στους επαγγελματίες από τον κλάδο της ασφάλειας, δηλαδή να αντιμετωπίζουν την πολυπαραγοντική αυθεντικοποίηση (MFA) ή τον έλεγχο ταυτότητας πολλαπλών παραγόντων ως βασική υγιεινή (μαζί με την επιδιόρθωση και την απενεργοποίηση του περιττού RDP).
Η τελευταία αδυναμία που απομένει είναι το cookie συνεδρίας που ορίζεται κατά τη σύνδεση, αλλά αυτό αποτελεί βασικό θέμα για κάποιο άλλο άρθρο.
Είναι αμφίδρομο (και μας ωθεί προς τα εμπρός)
Ως χρήστες, θα πρέπει να μπορούμε να αποδείξουμε την ταυτότητα μας στη συσκευή μας χρησιμοποιώντας ένα PIN, δακτυλικό αποτύπωμα ή χρησιμοποιώντας το πρόσωπο μας και η συσκευή να κάνει όλη τη δουλειά της πιστοποίησης της ταυτότητας και των δύο μερών. Και αυτό είναι το πλέον σημαντικό μέρος αυτής της συναλλαγής -η αμφίδρομη λειτουργία της.
Όλοι ξέρουμε ότι η κλοπή κωδικών πρόσβασης είναι πρόβλημα, και το μόνο που έχουμε κάνει είναι να παρατείνουμε τη διάρκεια ζωής τους προσπαθώντας να τους ενισχύσουμε με άλλες μορφές ελέγχου ταυτότητας που βασίζονται στη γνώση. Οι πληροφορίες μπορούν να κλαπούν και θα κλαπούν, θα υποκλαπούν και θα αναπαραχθούν. Αν θέλουμε πραγματικά να λειτουργούμε με πολυπαραγοντικό έλεγχο ταυτότητας, πρέπει να προχωρήσουμε πέρα από τη γνώση και να απαιτήσουμε ισχυρότερη απόδειξη.
Αυτή είναι μια ευκαιρία να ξεπεράσουμε το γεγονός ότι η ασφάλεια αποτελεί πηγή τριβής για τους χρήστες -στην πραγματικότητα, βελτιώνει ενεργά την ασφάλεια τους μειώνοντας τις τριβές ή τις καθυστερήσεις. Οι σημερινές υλοποιήσεις των passkeys μπορεί να είναι δύσκολες και ενδεχομένως και αδέξιες ωστόσο είμαστε πεπεισμένοι ότι όσοι τα υιοθετήσουν θα επωφεληθούν περισσότερο ενώ σε σύντομο χρονικό διάστημα αναμένεται να αντιμετωπιστούν και οι όποιες προκλήσεις με το περιβάλλον χρήσης. Δεν υπάρχει άλλη επιλογή. Είναι η καλύτερη λύση που έχουμε στη διάθεση μας και οι κυβερνοεγκληματίες δεν πρόκειται να μας περιμένουν να επιχειρηματολογήσουμε για τα πλεονεκτήματα αυτής της λύσης.
Πηγή: Sophos