Wat is cookie signing?

Cookie signing is een beveiligingstechniek die een cryptografische handtekening toevoegt aan cookie-waarden, waardoor de integriteit en authenticiteit ervan worden gegarandeerd. Wanneer een server een cookie naar een browser stuurt, voegt het een hash-based message authentication code (HMAC) toe aan de waarde van de cookie. Deze handtekening wordt gemaakt met behulp van een geheim sleutel die alleen bekend is bij de server. Wanneer de browser de cookie terugzendt, kan de server de handtekening verifiëren om te bevestigen dat de cookie niet is gewijzigd.

Hoe werkt HMAC-SHA1-signing?

HMAC (Hash-based Message Authentication Code) combineert een cryptografische hash-functie met een geheim sleutel om een unieke handtekening te produceren. Voor cookie signing werkt het proces als volgt:

  1. Signing: De oorspronkelijke cookie-waarde wordt gecombineerd met een geheim sleutel met behulp van het HMAC-SHA1-algoritme, waardoor een handtekening wordt geproduceerd. Het uiteindelijke ondertekende cookie-formaat is waarde.handtekening, waarbij de handtekening base64url-gecodeerd is.

  2. Verificatie: Bij ontvangst van een ondertekende cookie haalt de server de oorspronkelijke waarde en handtekening op, berekent de verwachte handtekening opnieuw met behulp van dezelfde geheime sleutel en vergelijkt deze met behulp van een time-safe vergelijking om timing-aanvallen te voorkomen.

Waarom ondertekende cookies gebruiken?

Niet-ondertekende cookies kunnen gemakkelijk worden gewijzigd door gebruikers of kwaadaardige scripts. Een gebruiker zou zijn sessie-ID, gebruikersrol of andere gevoelige gegevens die in cookies zijn opgeslagen, kunnen wijzigen. Ondertekende cookies voorkomen dit doordat elke wijziging detecteerbaar wordt - als de waarde verandert, wordt de handtekening ongeldig.

Hulpmiddelbeschrijving

Dit hulpmiddel stelt u in staat om cookie-waarden te ondertekenen en te ontdoen van HMAC-SHA1-handtekeningen, compatibel met het populaire cookie-signature npm-pakket. Voer uw cookie-waarde en geheime sleutel in om een ondertekende cookie te genereren, of plak een ondertekende cookie om de oorspronkelijke waarde te extraheren en te verifiëren.

Voorbeelden

Een cookie ondertekenen:

Invoer (niet ondertekend) Geheime sleutel Uitvoer (ondertekend)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

Een cookie ontdoen van ondertekening:

Invoer (ondertekend) Geheime sleutel Uitvoer (niet ondertekend)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

Detectie van ongeldige handtekening:

Als u probeert een cookie te ontdoen van ondertekening met de verkeerde geheime sleutel of een gewijzigde waarde, zal het hulpmiddel een "Ongeldige handtekening" -fout weergeven.

Functies

  • Onderteken cookies met HMAC-SHA1 met behulp van een willekeurige geheime sleutel
  • Ontdoe cookies van ondertekening en verifieer ondertekende cookies om de oorspronkelijke waarden te extraheren
  • Time-safe vergelijking voorkomt timing-aanvallen tijdens verificatie
  • Compatibel formaat met Node.js cookie-signature pakket
  • Browsergebaseerde verwerking met behulp van Web Crypto API - geen gegevens verzonden naar servers

Gebruiksgevallen

  • Testen van Express.js-sessies: Verifieer dat uw Express-sessie-cookies correct zijn ondertekend en kunnen worden gedecodeerd met uw geheime sleutel
  • Debuggen van authenticatieproblemen: Extraheer de oorspronkelijke waarde uit ondertekende cookies om problemen met aanmelden of sessies op te lossen
  • Beveiligingscontrole: Controleer of cookiehandtekeningen correct werken in uw webtoepassing
  • Leren over cryptografie: Begrijp hoe HMAC-gebaseerde cookie signing in de praktijk werkt
  • Migratietesten: Zorg voor cookie-compatibiliteit bij het wijzigen van geheime sleutels of het migreren tussen frameworks