Γεννήτρια TOTP — Κωδικός ελέγχου ταυτότητας Live 2FA
Επικολλήστε ένα μυστικό TOTP Base32 και παρακολουθήστε τον πραγματικό, ζωντανό 6ψήφιο κωδικό ελέγχου ταυτότητας να περιστρέφεται κάθε 30 δευτερόλεπτα — εντελώς εκτός σύνδεσης στο πρόγραμμα περιήγησής σας.
Αποτέλεσμα
Αυτό το εργαλείο δημιουργεί πραγματικούς, συμβατούς με τα πρότυπα κωδικούς Time-based One-Time Password (TOTP) από ένα μυστικό Base32, τους ίδιους εξαψήφιους περιστρεφόμενους κωδικούς που εμφανίζονται από εφαρμογές όπως το Google Authenticator ή το Authy. Επικολλήστε το μυστικό που σας δόθηκε κατά τη ρύθμιση του ελέγχου ταυτότητας δύο παραγόντων - η ίδια συμβολοσειρά που συνήθως κρύβεται πίσω από έναν κωδικό QR - και παρακολουθήστε τον ζωντανό κώδικα να μετράει αντίστροφα και να ανανεώνεται κάθε 30 δευτερόλεπτα, ακριβώς όπως θα ήταν μέσα σε μια εφαρμογή τηλεφώνου. Προορίζεται για τη δοκιμή και την επαλήθευση μυστικών 2FA που κατέχετε ή ελέγχετε: εντοπισμός σφαλμάτων μιας ροής σύνδεσης που δημιουργείτε, επιβεβαίωση ενός εφεδρικού κωδικού πριν πετάξετε ένα QR παροχής ή διπλός έλεγχος ότι ένα μυστικό πληκτρολογήθηκε σωστά.
Κάτω από την κουκούλα αυτή είναι μια γνήσια εφαρμογή του RFC 6238 (TOTP) που βασίζεται στο RFC 4226 (HOTP), όχι μια αντίστροφη μέτρηση για καλλυντικά. Το μυστικό Base32 αποκωδικοποιείται ανά RFC 4648 σε ακατέργαστα byte κλειδιού, ο τρέχων χρόνος Unix διαιρείται με το χρονικό βήμα για να ληφθεί ένας κινούμενος μετρητής και αυτός ο μετρητής κωδικοποιείται ως buffer big-endian 8 byte. Το εγγενές Web Crypto API (crypto.subtle) του προγράμματος περιήγησης υπολογίζει ένα HMAC σε αυτό το buffer με τον κατακερματισμό που έχετε επιλέξει — Το SHA-1 παραμένει η σχεδόν καθολική προεπιλογή για συμβατότητα με υπάρχουσες εφαρμογές ελέγχου ταυτότητας, ενώ τα SHA-256 και SHA-512 προσφέρονται για ρυθμίσεις που υποστηρίζουν τις ισχυρότερες παραλλαγές. Στη συνέχεια, η δυναμική περικοπή του RFC 4226 τραβάει τέσσερα byte από την έξοδο HMAC σε μια μετατόπιση που λαμβάνεται από το τελευταίο του byte, καλύπτει το επάνω bit και μειώνει το modulo αποτελέσματος 10^6 ή 10^8 για να παράγει τον 6- ή 8-ψήφιο κωδικό - την ίδια αριθμητική που εκτελεί εσωτερικά η εφαρμογή του τηλεφώνου σας.
Κάθε μέρος της διαδικασίας συμβαίνει τοπικά: δεν υπάρχει κανένα στοιχείο διακομιστή, κανένας φάρος ανάλυσης που να μεταφέρει το μυστικό σας και καμία εξωτερική κλήση API κανενός είδους. Το κείμενο Base32 που επικολλάτε στο πεδίο αναλύεται απευθείας από το JavaScript που εκτελείται στην καρτέλα σας και δεν το αφήνει ποτέ. Αυτό το καθιστά έναν ασφαλή τρόπο για να ελέγξετε ένα μυστικό 2FA σε ένα μηχάνημα που εμπιστεύεστε, αν και όπως συμβαίνει με κάθε εργαλείο που αγγίζει υλικό ελέγχου ταυτότητας, θα πρέπει να αποφεύγετε την επικόλληση μυστικών σε κοινόχρηστους ή δημόσιους υπολογιστές και θα πρέπει να το χρησιμοποιείτε μόνο σε κωδικούς που συνδέονται με λογαριασμούς που κατέχετε ή είστε ρητά εξουσιοδοτημένοι να δοκιμάσετε.
Ο αλγόριθμος, η καταμέτρηση ψηφίων και τα στοιχεία ελέγχου χρονικού βήματος υπάρχουν επειδή οι αναπτύξεις TOTP στον πραγματικό κόσμο δεν είναι απόλυτα ομοιόμορφες: οι περισσότερες υπηρεσίες καταναλωτών χρησιμοποιούν SHA-1 με 6 ψηφία και βήμα 30 δευτερολέπτων, αλλά ορισμένα εργαλεία επιχειρήσεων και προγραμματιστών εκδίδουν μυστικά SHA-256 ή SHA-512, 8-ψήφιους κωδικούς ή 6 δευτερεύοντες χρόνους 501. Η αντιστοίχιση αυτών των ρυθμίσεων σε ό,τι καθορίζει ένα URI παροχής ή μια σελίδα ρύθμισης σάς επιτρέπει να αναπαράγετε ακριβώς τον κώδικα που θα εμφανίζει η εφαρμογή ελέγχου ταυτότητας, κάτι που είναι ανεκτίμητο όταν εφαρμόζετε τον δικό σας διακομιστή επαλήθευσης TOTP και χρειάζεστε μια αξιόπιστη αναφορά εκτός σύνδεσης για σύγκριση.