MeldID: από έναν ενιαίο λογαριασμό σε σύστημα διαχείρισης ψηφιακής πρόσβασης
Όταν πρωτογνωρίστηκα με το MeldID, το αισθανόμουν πρωτίστως ως υπηρεσία ενιαίας ψηφιακής ταυτοποίησης. Τώρα, το έργο διαθέτει εφαρμογές για iPhone και Android, που συνδυάζουν τον offline ταυτοποιητή TOTP, αυτόματη ανάκτηση δεδομένων μεταξύ συσκευών και επαλήθευση εισόδου σε συνδεδεμένες υπηρεσίες.
Όταν πρωτογνωρίστηκα με το MeldID, το αισθανόμουν πρωτίστως ως infrastructure ενιαίας ψηφιακής ταυτοποίησης. Ο χρήστης δημιουργεί ένα λογαριασμό, συμπληρώνει το διαχειριζόμενο προφίλ και στη συνέχεια μπορεί να το χρησιμοποιεί σε διάφορες εφαρμογές — για είσοδο και μετάδοση εξουσιοδοτημένων δεδομένων χωρίς την ανάγκη συνεχούς συμπλήρωσης ίδιων φορμών.
Περίμενα ότι η περαιτέρω εξέλιξη θα πήγαινε προς τις κατευθύνσεις των προφίλ και των συνδεδεμένων υπηρεσιών. Αλλά το έργο γρήγορα άρχισε να μετατρέπεται από μια σχεδόν αόρατη server infrastructure σε ένα εργαλείο καθημερινής διαχείρισης πρόσβασης.
Το επόμενο βήμα ήταν οι εφαρμογές για iPhone και Android. Εδώ, το ιδιαίτερο ενδιαφέρον δεν είναι η εμφάνιση του κινητού πελάτη καθαυτή, αλλά το ποιες λειτουργίες κατάφεραν να ενσωματώσουν.
Ο συνηθισμένος TOTP — με άλλη αποστολή
Στην εφαρμογή υπάρχει γεννήτρια μοναδικών κωδικών TOTP — των αλλαγμένων ψηφίων που χρησιμοποιούνται για δύο παράγοντες ταυτοποίησης.
Το ίδιο το πρότυπο δεν παρουσιάζεται ως δική του εφεύρεση. Ο χρήστης προσθέτει έναν λογαριασμό και λαμβάνει έναν κωδικό που μπορεί να χρησιμοποιήσει σε τρίτη υπηρεσία ή σε ιστότοπο.
Οι περισσότερες εφαρμογές πιστοποίησης απαντούν στην ερώτηση: «Πώς να δείξω έναν εξαψήφιο κωδικό;» Εδώ, λύνεται μια ευρύτερη αποστολή: πώς να διαχειριστεί ασφαλώς τον κύκλο ζωής των TOTP μυστικών — από την προσθήκη και αποθήκευση έως την ανάκτηση σε άλλη συσκευή και τη διαγραφή λογαριασμού.
Ο offline λειτουργία λειτουργεί πλήρως
Αρχικά, το κυριότερο πλεονέκτημα φαίνεται να είναι η τοπική δημιουργία κωδικών. Αλλά στο MeldID, η offline λειτουργία περιλαμβάνει περισσότερα.
Οι ήδη αποθηκευμένοι λογαριασμοί συνεχίζουν να λειτουργούν χωρίς σύνδεση στο διαδίκτυο. Οι κωδικοί δημιουργούνται απευθείας στη συσκευή, επομένως η προσωρινή απουσία σύνδεσης δεν εμποδίζει την ολοκλήρωση της δύο παραγόντων ελέγχου.
Νέες καταχωρίσεις TOTP μπορούν επίσης να προστεθούν offline. Αποθηκεύονται τοπικά και χρησιμοποιούνται άμεσα για τη δημιουργία κωδικών. Όταν η σύνδεση επανέλθει, η προσθήκη αποστέλλεται αυτόματα σε ασφαλές αποθετήριο και συγχρονίζεται με άλλες συσκευές.
Η επεξεργασία και η διαγραφή ήδη συγχρονισμένων καταχωρίσεων απαιτούν σύνδεση με τον διακομιστή. Αυτό αποτρέπει τη δημιουργία διαφορετικών εκδόσεων μιας αποθήκευσης σε διαφορετικές συσκευές.
Το αποτέλεσμα είναι μια ισορροπία: βασικές λειτουργίες είναι διαθέσιμες χωρίς σύνδεση, ενώ οι αλλαγές που πρέπει να ισχύουν ομόφωνα σε όλες τις συσκευές γίνονται μετά την επανενεργοποίηση της σύνδεσης.
Νέο τηλέφωνο δεν σημαίνει νέο σύνολο κωδικών
Το πιο ενοχλητικό πρόβλημα κάθε πιστοποιητή είναι όταν χάνεται, σπάει ή αντικαθίσταται η συσκευή. Σε μια συνηθισμένη κατάσταση, πρέπει να αναζητάς εφεδρικούς κωδικούς, να μεταφέρεις χειροκίνητα τις καταχωρίσεις ή να ξανασυνδέσεις την εφαρμογή με κάθε υπηρεσία.
Εδώ, η αποθήκευση δεν συνδέεται με συγκεκριμένη συσκευή, αλλά με τον λογαριασμό MeldID. Μετά την είσοδο σε νέο τηλέφωνο και την αρχικοποίηση της ασφαλούς αποθήκευσης, οι καταχωρίσεις αποκαθίστανται αυτόματα.
Δεν έχει σημασία αν η προηγούμενη συσκευή ήταν Android και η καινούρια iPhone, ή αντίστροφα. Μπορείς να συνδεσεις δεύτερο, τρίτο και περισσότερα τηλέφωνα, χωρίς να χρειάζεται να κάνεις ξεχωριστή διαδικασία μεταφοράς ανά πλατφόρμα.
Ας υποθέσουμε ότι ένα smartphone σπάει ξαφνικά κατά τη διάρκεια ενός ταξιδιού. Αντί να αποκαταστήσει την πρόσβαση σε κάθε υπηρεσία ξεχωριστά, ο χρήστης εισέρχεται στο MeldID στη νέα συσκευή και ολοκληρώνει τη διαμόρφωση της αποθήκευσης. Μετά, οι καταχωρίσεις TOTP επιστρέφουν στην εφαρμογή.
Σε μια συσκευή μπορείς να χρησιμοποιήσεις και πολλούς διαφορετικούς λογαριασμούς MeldID. Οι αποθηκεύσεις τους παραμένουν διαχωρισμένες: οι καταχωρίσεις ενός λογαριασμού δεν συγχέονται με αυτά ενός άλλου και δεν εμφανίζονται στη συσκευή χωρίς σχετική αυθεντικοποίηση.
Τι αποθηκεύεται στον διακομιστή
Η αυτόματη ανάκτηση σημαίνει ότι τα δεδομένα πρέπει κάπου να αποθηκεύονται. Όμως, τα TOTP μυστικά δεν αποθηκεύονται σε ανοιχτή μορφή στη βάση δεδομένων.
Το περιεχόμενο της καταχώρισης τοποθετείται σε κρυπτογραφημένο κοντέινερ. Στην τρέχουσα αρχιτεκτονική, χρησιμοποιείται επαληθευμένη κρυπτογράφηση AES-256-GCM, και το κλειδί της ασφαλούς αποθήκευσης είναι διαχωρισμένο από τη βάση δεδομένων.
Έτσι, η διαρροή μιας βάσης δεδομένων δεν μετατρέπεται σε έτοιμο κατάλογο μυστικών για την παραγωγή κωδικών. Ο επιτιθέμενος λαμβάνει κρυπτογραφημένα μπλοκ, όχι ανοιχτά TOTP δεδομένα.
Εδώ, είναι σημαντικό να μην δίνουμε απόλυτες υποσχέσεις. Πιο σωστά: τα ανοιχτά TOTP μυστικά στη βάση δεν αποθηκεύονται και μία μόνο αντίγραφο της βάσης δεν αρκεί για τη χρήση τους.
Επιβεβαίωση εισόδου μέσω MeldID
Μια δεύτερη σημαντική λειτουργία της εφαρμογής είναι το Login Approval, δηλαδή η ξεχωριστή επιβεβαίωση της σύνδεσης.
Εάν η ιστοσελίδα ή η εφαρμογή υποστηρίζει MeldID, ο χρήστης μπορεί με μία ενέργεια να ξεκινήσει την είσοδο μέσω του λογαριασμού του. Με ενεργή την προστασία, η επιτυχημένη ταυτοποίηση δεν αρκεί: η πρόσβαση θεωρείται ολοκληρωμένη μόνο μετά την επιβεβαίωση σε μια αξιόπιστη κινητή συσκευή.
Το αίτημα μπορεί να εγκριθεί αν η είσοδος ξεκίνησε πράγματι από το χρήστη ή να απορριφθεί αν η προσπάθεια φαίνεται απροσδόκητη.
Σε αντίθεση με την απλή push επιβεβαίωση, η Login Approval ενσωματώνεται άμεσα στην αρχιτεκτονική του MeldID και μπορεί να χρησιμοποιηθεί από όλες τις υπηρεσίες που συμμετέχουν σε αυτό το σύστημα ταυτοποίησης.
Το push εδώ λειτουργεί μόνο ως ειδοποίηση για μια νέα ενέργεια. Δεν περιέχει κωδικό πρόσβασης, TOTP, token ή άλλα στοιχεία που να επιτρέπουν πρόσβαση.
Το TOTP και το Login Approval συμπληρώνουν το ένα το άλλο
Το TOTP παραμένει το ευρέως αποδεκτό πρότυπο και λειτουργεί ακόμα και σε υπηρεσίες που δεν γνωρίζουν τίποτα για το MeldID. Μετά τη φόρτωση της καταχώρισης, οι κωδικοί παράγονται τοπικά.
Το Login Approval απαιτείται εκεί όπου η ίδια η διαδικασία σύνδεσης γίνεται μέσω MeldID. Προσθέτει μια συνειδητή ενέργεια του χρήστη στον login και επιτρέπει την παύση της προσπάθειας πριν από τη δημιουργία της συνεδρίας.
Έτσι, η εφαρμογή μπορεί να λειτουργεί ως συνηθισμένος πιστοποιητής για τρίτες ιστοσελίδες και ταυτόχρονα ως μέσο επιβεβαίωσης εισόδου σε μια συνδεδεμένη υπηρεσία.
Τι άλλαξε στο ίδιο το MeldID
Όταν πρωτογνωρίστηκα με το έργο, η βασική ιδέα ήταν η διαχείριση ενιαίου λογαριασμού και μεταφερόσιμου προφίλ. Τώρα φαίνεται ότι το MeldID μετατρέπεται σταδιακά σε ένα προσωπικό κέντρο διαχείρισης ψηφιακής πρόσβασης.
Εδώ μπορούμε:
να λαμβάνουμε TOTP κωδικούς χωρίς internet;
να προσθέτουμε νέες καταχωρίσεις offline;
να τις ανακτά αυτόματα σε νέο συσκευή;
να χρησιμοποιούμε πολλαπλά τηλέφωνα;
να διαχωρίζουμε πολλαπλούς λογαριασμούς σε μια συσκευή;
να επιβεβαιώνουμε ή να απορρίπτουμε νέες εισόδους.
Έτσι, η αξία της εφαρμογής δεν έγκειται στο ότι μπορεί να δείξει έναν ακόμη εξαψήφιο κωδικό. Ο στόχος της είναι ευρύτερος — να διατηρήσει την πρόσβαση όταν αλλάζει η συσκευή, να μην χάνονται δεδομένα χωρίς σύνδεση και να δώσει στον κάτοχο την τελευταία συνειδητή επιλογή πριν δημιουργήσει μια νέα συνεδρία.
Η ασφάλεια στηρίζεται εδώ σε μια συνδυασμένη προσέγγιση: τα TOTP μυστικά δεν αποθηκεύονται σε ανοιχτή μορφή, η πρόσβαση δεν συνδέεται μόνιμα σε μία συσκευή, οι διαφορετικοί λογαριασμοί παραμένουν απομονωμένοι και η είσοδος σε υποστηριζόμενες υπηρεσίες ολοκληρώνεται μόνο μετά την επιβεβαίωση από μια αξιόπιστη συσκευή.