Μετάβαση στο περιεχόμενο

Επαληθευτής JWT

Ελέγξτε αν ένα Web Token JSON είναι γνήσιο και εξακολουθεί να ισχύει. Επικολλήστε το token μαζί με το μυστικό HMAC, ένα δημόσιο κλειδί PEM, ένα πιστοποιητικό, ένα JWK ή ένα ολόκληρο JWKS. Ο επαληθευτής ελέγχει την υπογραφή με τη βιβλιοθήκη jose, συγκρίνει τα exp και nbf με την τρέχουσα ώρα και μια προαιρετική ανοχή ρολογιού και εμφανίζει σαφή ετυμηγορία δίπλα στην αποκωδικοποιημένη κεφαλίδα και τα claims. Τα tokens με alg none απορρίπτονται.

Επαναφορά

Συχνές ερωτήσεις

Τι ελέγχει ο επαληθευτής;

Ελέγχει την υπογραφή με βάση το κλειδί που παρέχετε και στη συνέχεια συγκρίνει τα claims exp και nbf με την τρέχουσα ώρα. Η ετυμηγορία είναι έγκυρη μόνο όταν η υπογραφή ταιριάζει και κανένας από τους δύο χρονικούς ελέγχους δεν αποτυγχάνει. Claims όπως iss, aud ή sub εμφανίζονται στο payload, αλλά δεν συγκρίνονται με αναμενόμενες τιμές.

Ποια κλειδιά μπορώ να επικολλήσω;

Για τα HS256, HS384 και HS512 επικολλήστε το κοινόχρηστο μυστικό ως κείμενο ή ως oct JWK. Για token RSA, EC και EdDSA, επικολλήστε ένα δημόσιο κλειδί PEM (SPKI ή PKCS #1), ένα πιστοποιητικό X.509, ένα δημόσιο ή ιδιωτικό JWK, ένα JWKS με έως 50 κλειδιά ή ένα ιδιωτικό κλειδί PEM, από το οποίο χρησιμοποιείται μόνο το δημόσιο μέρος.

Πώς επιλέγεται το σωστό κλειδί από ένα JWKS;

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

Τι κάνει η επιλογή αλγορίθμου;

Με την επιλογή «Χρήση του alg του token», ο αλγόριθμος προέρχεται από την κεφαλίδα του token, αλλά το κλειδί πρέπει και πάλι να είναι συμβατό με αυτόν, επομένως ένα δημόσιο κλειδί RSA δεν μπορεί ποτέ να χρησιμοποιηθεί ως μυστικό HMAC. Επιλέξτε έναν συγκεκριμένο αλγόριθμο για να απαιτήσετε επίσης τη χρήση του από το token, όπως θα πρέπει να κάνει ένας διακομιστής για να ορίσει τον αναμενόμενο αλγόριθμο. Τότε, ένα token με διαφορετικό alg απορρίπτεται και εμφανίζονται και τα δύο ονόματα.

Γιατί απορρίπτεται ένα token με alg none;

Ένα token με alg none δεν φέρει υπογραφή, επομένως δεν υπάρχει τίποτα προς επαλήθευση και θα μπορούσε να το έχει γράψει οποιοσδήποτε. Η αποδοχή τέτοιων token αποτελεί γνωστή ευπάθεια σε βιβλιοθήκες JWT. Ο επαληθευτής αναφέρει σφάλμα αντί για έγκυρο αποτέλεσμα.

Πώς λειτουργούν τα exp, nbf και η ανοχή απόκλισης ρολογιού;

Ένα token θεωρείται ληγμένο όταν το exp είναι ίσο με ή προγενέστερο της τρέχουσας ώρας και μη έγκυρο ακόμη όταν το nbf είναι μεταγενέστερο της τρέχουσας ώρας. Η ανοχή απόκλισης ρολογιού, από 0 έως 3600 δευτερόλεπτα, διευρύνει και τους δύο ελέγχους για να επιτρέψει αποκλίσεις ρολογιού μεταξύ διακομιστών. Οι ισχυρισμοί που υπάρχουν αλλά δεν είναι αριθμητικοί καθιστούν το token μη έγκυρο.

Τι σημαίνει μη έγκυρη υπογραφή;

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

Ποιοι αλγόριθμοι υποστηρίζονται;

HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 και EdDSA με κλειδιά Ed25519. Τα κλειδιά RSA πρέπει να έχουν τουλάχιστον 2048 bit. Τα κρυπτογραφημένα token (JWE) δεν αποκρυπτογραφούνται.

Αποθηκεύονται το token ή το κλειδί;

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

Πόσο μεγάλο μπορεί να είναι το token και το κλειδί;

Τα token μπορούν να έχουν έως 65,536 χαρακτήρες και το πεδίο κλειδιού έως 262,144 χαρακτήρες, κάτι που επαρκεί για μεγάλα έγγραφα JWKS. Το token πρέπει να αποτελείται από τρία μέρη base64url χωρισμένα με τελείες, μια κεφαλίδα JSON με μέλος alg και ένα αντικείμενο JSON ως ωφέλιμο φορτίο.

Σχετικά με το OneClick Pro

Το OneClick Pro είναι μια δωρεάν συλλογή με περισσότερα από 150 διαδικτυακά εργαλεία για καθημερινή εργασία: μετατροπή εικόνων και μονάδων, μορφοποίηση και επικύρωση κώδικα, έλεγχος τομέων και SEO, καθώς και εργασία με κείμενο, ημερομηνίες και αριθμούς. Κάθε εργαλείο λειτουργεί χωρίς εγγραφή ή συνδρομή, και ό,τι εισάγετε χρησιμοποιείται μόνο για τον υπολογισμό του αποτελέσματός σας και δεν αποθηκεύεται ποτέ. Χρησιμοποιήστε το ως γρήγορη εργαλειοθήκη για μεμονωμένες εργασίες ή αποθηκεύστε στα αγαπημένα τα εργαλεία που χρησιμοποιείτε καθημερινά.