Mis on küpsise allkirjastamine?

Küpsise allkirjastamine on turvatehnika, mis lisab küpsise väärtustele krüptograafilise allkirja, tagades nende terviklikkuse ja autentsuse. Kui server saadab küpsise brauserisse, lisab ta sellele räsipõhise sõnumi autentimiskoodi (HMAC). See allkiri luuakse kasutades saladuslikku võtit, mis on ainult serverile teada. Kui brauser saadab küpsise tagasi, saab server allkirja kontrollida, et kinnitada, et küpsist ei ole muudetud.

Kuidas toimib HMAC-SHA1 allkirjastamine?

HMAC (räsipõhine sõnumi autentimiskood) ühendab krüptograafilise räsifunktsiooni saladuslikku võtmega, et toota unikaalne allkiri. Küpsise allkirjastamisel toimub see järgmiselt:

  1. Allkirjastamine: Algne küpsise väärtus kombineeritakse saladuslikku võtmega, kasutades HMAC-SHA1 algoritmi, et toota allkiri. Lõplik allkirjastatud küpsise vorming on väärtus.allkiri, kus allkiri on base64url-kodeeritud.

  2. Kontrollimine: Kui saadakse allkirjastatud küpsist, eraldab server algse väärtuse ja allkirja, arvutab oodatava allkirja uuesti sama saladuslikku võtit kasutades ja võrdleb neid ajasõltumatu võrdlusega, et vältida ajapõhiseid rünnakuid.

Miks kasutada allkirjastatud küpsiseid?

Allkirjastamata küpsiseid saab kasutajad või pahatahtlikud skriptid lihtsalt muuta. Kasutaja võib muuta oma sessiooni ID-d, kasutajarolli või muud tundlikku andmeid, mis on küpsistes salvestatud. Allkirjastatud küpsised takistavad seda, kuna iga muudatus muudab allkirja kehtetuks.

Tööriista kirjeldus

See tööriist võimaldab teil allkirjastada ja tühistada küpsise väärtusi, kasutades HMAC-SHA1 allkirju, mis on ühilduv populaarse cookie-signature npm paketi vorminguga. Sisestage oma küpsise väärtus ja saladuslik võti, et luua allkirjastatud küpsis, või kleepige allkirjastatud küpsis, et eraldada ja kontrollida selle algset väärtust.

Näited

Küpsise allkirjastamine:

Sisend (Allkirjastamata) Saladuslik võti Väljund (Allkirjastatud)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

Küpsise tühistamine:

Sisend (Allkirjastatud) Saladuslik võti Väljund (Allkirjastamata)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

Vigase allkirja tuvastamine:

Kui proovite tühistada küpsist valesti saladuslikku võtit või muudetud väärtust kasutades, kuvab tööriist "Vigane allkiri" veateate.

Funktsioonid

  • Allkirjastage küpsiseid HMAC-SHA1-ga, kasutades mis tahes saladuslikku võtit
  • Tühistage ja kontrollige allkirjastatud küpsiseid, et eraldada algne väärtus
  • Ajasõltumatu võrdlus takistab ajapõhiseid rünnakuid kontrollimisel
  • Ühilduv vorming Node.js cookie-signature paketiga
  • Brauseripõhine töötlemine, kasutades Web Crypto API-d - andmeid ei saadeta serveritele

Kasutusjuhud

  • Express.js sessiooni testimine: Kontrollige, et teie Express'i sessiooni küpsised on korrektselt allkirjastatud ja saate neid oma saladuslikku võtit kasutades dekodeerida
  • Autentimisprobleemide silumine: Ekstraheerige allkirjastatud küpsiste algne väärtus, et tõrkeotsingut teha login või sessiooniprobleemide puhul
  • Turvaaudit: Kontrollige, et küpsise allkirjad töötavad teie veebirakenduses korrektselt
  • Krüptograafia õppimine: Mõistke, kuidas HMAC-põhine küpsise allkirjastamine tegelikkuses toimib
  • Migreerimise testimine: Veenduge küpsiste ühilduvuses, kui muudate saladuslikke võtmeid või migreerite erinevate raamistike vahel