Was ist Cookie-Signierung?

Cookie-Signierung ist eine Sicherheitstechnik, die einen kryptografischen Signaturwert zu Cookie-Werten hinzufügt und so deren Integrität und Authentizität gewährleistet. Wenn ein Server einen Cookie an einen Browser sendet, fügt er einen Hash-basierten Nachrichtenauthenifizierungscode (HMAC) zum Cookie-Wert hinzu. Diese Signatur wird unter Verwendung eines Geheimnisschlüssels erstellt, der nur dem Server bekannt ist. Wenn der Browser den Cookie zurücksendet, kann der Server die Signatur überprüfen, um zu bestätigen, dass der Cookie nicht manipuliert wurde.

Wie funktioniert die HMAC-SHA1-Signierung?

HMAC (Hash-basierter Nachrichtenauthenifizierungscode) kombiniert eine kryptografische Hash-Funktion mit einem Geheimnisschlüssel, um eine eindeutige Signatur zu erzeugen. Für die Cookie-Signierung läuft der Prozess wie folgt ab:

  1. Signierung: Der ursprüngliche Cookie-Wert wird unter Verwendung des HMAC-SHA1-Algorithmus mit einem Geheimnisschlüssel kombiniert, um eine Signatur zu erzeugen. Das endgültige signierte Cookie-Format lautet Wert.Signatur, wobei die Signatur base64url-codiert ist.

  2. Überprüfung: Beim Empfang eines signierten Cookies extrahiert der Server den ursprünglichen Wert und die Signatur, berechnet die erwartete Signatur unter Verwendung desselben Geheimnisschlüssels neu und vergleicht sie mit Hilfe eines zeitunabhängigen Vergleichs, um Timing-Attacken zu verhindern.

Warum signierte Cookies verwenden?

Unsignierte Cookies können von Benutzern oder böswilligen Skripts leicht manipuliert werden. Ein Benutzer könnte seine Sitzungs-ID, Benutzerrolle oder andere sensible Daten in Cookies ändern. Signierte Cookies verhindern dies, indem jede Änderung erkennbar wird - wenn sich der Wert ändert, wird die Signatur ungültig.

Werkzeugbeschreibung

Dieses Werkzeug ermöglicht es Ihnen, Cookie-Werte unter Verwendung von HMAC-SHA1-Signaturen zu signieren und zu entfernen, kompatibel mit dem beliebten cookie-signature-npm-Paket-Format. Geben Sie Ihren Cookie-Wert und Ihren Geheimnisschlüssel ein, um einen signierten Cookie zu generieren, oder fügen Sie einen signierten Cookie ein, um den ursprünglichen Wert zu extrahieren und zu überprüfen.

Beispiele

Signieren eines Cookies:

Eingabe (Unsigniert) Geheimnisschlüssel Ausgabe (Signiert)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

Entfernen der Signatur eines Cookies:

Eingabe (Signiert) Geheimnisschlüssel Ausgabe (Unsigniert)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

Erkennung ungültiger Signaturen:

Wenn Sie versuchen, einen Cookie mit dem falschen Geheimnisschlüssel oder einem manipulierten Wert zu entfernen, zeigt das Werkzeug einen "Ungültige Signatur"-Fehler an.

Funktionen

  • Signieren von Cookies mit HMAC-SHA1 unter Verwendung eines beliebigen Geheimnisschlüssels
  • Entfernen und Überprüfen signierter Cookies, um die ursprünglichen Werte zu extrahieren
  • Zeitunabhängiger Vergleich verhindert Timing-Attacken während der Überprüfung
  • Kompatibles Format mit dem Node.js cookie-signature-Paket
  • Browserbasierte Verarbeitung unter Verwendung der Web Crypto API - keine Daten werden an Server gesendet

Anwendungsfälle

  • Testen von Express.js-Sitzungen: Überprüfen Sie, ob Ihre Express-Sitzungs-Cookies ordnungsgemäß signiert sind und mit Ihrem Geheimnisschlüssel entschlüsselt werden können
  • Debuggen von Authentifizierungsproblemen: Extrahieren Sie den ursprünglichen Wert aus signierten Cookies, um Anmelde- oder Sitzungsprobleme zu beheben
  • Sicherheitsüberprüfung: Überprüfen Sie, ob die Cookie-Signaturen in Ihrer Webanwendung korrekt funktionieren
  • Erlernen der Kryptografie: Verstehen Sie, wie die HMAC-basierte Cookie-Signierung in der Praxis funktioniert
  • Migrationstest: Stellen Sie sicher, dass Cookies bei einem Wechsel des Geheimnisschlüssels oder einer Migration zwischen Frameworks kompatibel bleiben