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

Πώς λειτουργεί η υπογραφή HMAC-SHA1;

Το HMAC (Hash-based Message Authentication Code) συνδυάζει μια κρυπτογραφική συνάρτηση hash με ένα μυστικό κλειδί για να παράγει μια μοναδική υπογραφή. Για την υπογραφή cookie, η διαδικασία λειτουργεί ως εξής:

  1. Υπογραφή: Η αρχική τιμή του cookie συνδυάζεται με ένα μυστικό κλειδί χρησιμοποιώντας τον αλγόριθμο HMAC-SHA1, παράγοντας μια υπογραφή. Η τελική μορφή του υπογεγραμμένου cookie είναι value.signature, όπου η υπογραφή είναι κωδικοποιημένη σε base64url.

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

Τα μη υπογεγραμμένα cookie μπορούν εύκολα να τροποποιηθούν από χρήστες ή κακόβουλα σενάρια. Ένας χρήστης θα μπορούσε να αλλάξει το αναγνωριστικό της συνεδρίας του, τον ρόλο του χρήστη ή άλλα ευαίσθητα δεδομένα που είναι αποθηκευμένα στα cookie. Τα υπογεγραμμένα cookie αποτρέπουν αυτό κάνοντας οποιαδήποτε τροποποίηση ανιχνεύσιμη—αν η τιμή αλλάξει, η υπογραφή γίνεται άκυρη.

Περιγραφή εργαλείου

Αυτό το εργαλείο σας επιτρέπει να υπογράψετε και να αναιρέσετε την υπογραφή των τιμών cookie χρησιμοποιώντας υπογραφές HMAC-SHA1, συμβατές με τη δημοφιλή μορφή του πακέτου npm cookie-signature. Εισάγετε την τιμή του cookie και το μυστικό κλειδί σας για να δημιουργήσετε ένα υπογεγραμμένο cookie, ή επικολλήστε ένα υπογεγραμμένο cookie για να εξαγάγετε και να επαληθεύσετε την αρχική του τιμή.

Παραδείγματα

Υπογραφή ενός cookie:

Είσοδος (Μη υπογεγραμμένη) Μυστικό κλειδί Έξοδος (Υπογεγραμμένη)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

Αναίρεση υπογραφής ενός cookie:

Είσοδος (Υπογεγραμμένη) Μυστικό κλειδί Έξοδος (Μη υπογεγραμμένη)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

Ανίχνευση άκυρης υπογραφής:

Εάν προσπαθήσετε να αναιρέσετε την υπογραφή ενός cookie με το λάθος μυστικό κλειδί ή μια τροποποιημένη τιμή, το εργαλείο θα εμφανίσει ένα σφάλμα "Άκυρη υπογραφή".

Χαρακτηριστικά

  • Υπογραφή cookie με HMAC-SHA1 χρησιμοποιώντας οποιοδήποτε μυστικό κλειδί
  • Αναίρεση υπογραφής και επαλήθευση υπογεγραμμένων cookie για εξαγωγή αρχικών τιμών
  • Σύγκριση ανθεκτική στο χρόνο αποτρέπει επιθέσεις χρονισμού κατά την επαλήθευση
  • Συμβατή μορφή με το πακέτο Node.js cookie-signature
  • Επεξεργασία βάσει προγράμματος περιήγησης χρησιμοποιώντας Web Crypto API—κανένα δεδομένο δεν αποστέλλεται σε διακομιστές

Περιπτώσεις χρήσης

  • Δοκιμή συνεδριών Express.js: Επαληθεύστε ότι τα cookie συνεδρίας Express σας είναι σωστά υπογεγραμμένα και μπορούν να αποκωδικοποιηθούν με το μυστικό κλειδί σας
  • Αποσφαλμάτωση προβλημάτων ελέγχου ταυτότητας: Εξαγάγετε την αρχική τιμή από υπογεγραμμένα cookie για αντιμετώπιση προβλημάτων σύνδεσης ή συνεδρίας
  • Ελέγχος ασφάλειας: Επαληθεύστε ότι οι υπογραφές cookie λειτουργούν σωστά στην εφαρμογή ιστού σας
  • Εκμάθηση κρυπτογραφίας: Κατανοήστε πώς λειτουργεί η υπογραφή cookie βασισμένη σε HMAC στην πράξη
  • Δοκιμή μετάβασης: Διασφαλίστε τη συμβατότητα cookie κατά την αλλαγή μυστικών κλειδιών ή τη μετάβαση μεταξύ πλαισίων