Vad är cookie-signering?

Cookie-signering är en säkerhetsteknik som lägger till en kryptografisk signatur till cookie-värden, vilket säkerställer deras integritet och äkthet. När en server skickar en cookie till en webbläsare, lägger den till en hash-baserad meddelandeautentiseringskod (HMAC) till cookie-värdet. Denna signatur skapas med hjälp av en hemlig nyckel som endast servern känner till. När webbläsaren skickar tillbaka cookien kan servern verifiera signaturen för att bekräfta att cookien inte har manipulerats.

Hur fungerar HMAC-SHA1-signering?

HMAC (Hash-baserad meddelandeautentiseringskod) kombinerar en kryptografisk hashfunktion med en hemlig nyckel för att producera en unik signatur. För cookie-signering fungerar processen så här:

  1. Signering: Det ursprungliga cookie-värdet kombineras med en hemlig nyckel med hjälp av HMAC-SHA1-algoritmen, vilket producerar en signatur. Det slutliga signerade cookie-formatet är värde.signatur, där signaturen är base64url-kodad.

  2. Verifiering: När en signerad cookie tas emot, extraherar servern det ursprungliga värdet och signaturen, beräknar om den förväntade signaturen med hjälp av samma hemliga nyckel och jämför dem med en tidssäker jämförelse för att förhindra tidskänsliga attacker.

Varför använda signerade cookies?

Osignerade cookies kan lätt ändras av användare eller skadliga skript. En användare skulle kunna ändra sitt session-ID, användarroll eller annan känslig information som lagras i cookies. Signerade cookies förhindrar detta genom att göra alla ändringar detekterbara - om värdet ändras blir signaturen ogiltig.

Verktygets beskrivning

Detta verktyg låter dig signera och avpolletttera cookie-värden med hjälp av HMAC-SHA1-signaturer, kompatibla med det populära cookie-signature-npm-paketformatet. Ange ditt cookie-värde och hemliga nyckel för att generera en signerad cookie, eller klistra in en signerad cookie för att extrahera och verifiera dess ursprungliga värde.

Exempel

Signera en cookie:

Indata (Osignerad) Hemlig nyckel Utdata (Signerad)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

Avpolletttera en cookie:

Indata (Signerad) Hemlig nyckel Utdata (Osignerad)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

Upptäcka ogiltig signatur:

Om du försöker avpolletttera en cookie med fel hemlig nyckel eller ett manipulerat värde, kommer verktyget att visa ett "Ogiltig signatur"-fel.

Funktioner

  • Signera cookies med HMAC-SHA1 med valfri hemlig nyckel
  • Avpolletttera och verifiera signerade cookies för att extrahera ursprungliga värden
  • Tidssäker jämförelse förhindrar tidskänsliga attacker under verifiering
  • Kompatibelt format med Node.js cookie-signature-paketet
  • Webbläsarbaserad bearbetning med Web Crypto API - inga data skickas till servrar

Användningsområden

  • Testa Express.js-sessioner: Verifiera att dina Express-sessionscookies är korrekt signerade och kan avkodas med din hemliga nyckel
  • Felsöka autentiseringsproblem: Extrahera det ursprungliga värdet från signerade cookies för att felsöka inloggnings- eller sessionsproblem
  • Säkerhetsrevision: Verifiera att cookie-signaturer fungerar korrekt i ditt webbprogram
  • Lära sig kryptografi: Förstå hur HMAC-baserad cookie-signering fungerar i praktiken
  • Migreringstestning: Säkerställ cookie-kompatibilitet när du ändrar hemliga nycklar eller migrerar mellan ramverk