Viskas vyksta tavo naršyklėje: įvestis, HMAC raktas ir tikėtina maiša nepalieka įrenginio.
Ką HMAC prideda prie paprasto maišo
HMAC (raiščiu pagrįstas pranešimo autentifikavimo kodas) įmaišo slaptą raktą į maišymo procesą. Jei pranešimo SHA-256 įrodo tik tai, kad baitai nepasikeitė, tai HMAC papildomai įrodo, kad jį sukūręs žinojo bendrą raktą — taip serveris gali pasitikėti, kad gaunamas webhook tikrai ateina iš laukiamo siuntėjo. Su raktu key ir pranešimu The quick brown fox jumps over the lazy dog HMAC-SHA256 grąžina f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.
Paprasto maišo autentifikavimui neužtenka: SHA-256 gali perskaičiuoti bet kas, tad užpuolikas galėtų suklastoti maišą. HMAC sukurtas tam atsispirti, įskaitant ilgio praplėtimo atakas, kurios laužo naivias hash(slaptis + pranešimas) schemas. Naudokite HMAC-SHA256 API užklausoms pasirašyti, webhook patikrai (Stripe, GitHub, Slack) ir su pranešimu susietiems žetonams išvesti. Raktas turi likti slaptas, ilgas ir atsitiktinis.
Kaip apskaičiuoti HMAC
- Pasirinkite HMAC algoritmą: SHA-1, SHA-256 arba SHA-512.
- Įveskite slaptą raktą užmaskuotame rakto lauke.
- Įveskite arba įklijuokite autentifikuotiną pranešimą.
- Palyginkite parašą su tuo, kurį gauna jūsų serveris.
Dažnai užduodami klausimai apie HMAC
Kodėl HMAC reikia rakto?
Raktas paverčia viešą pėdsaką autentifikavimo įrodymu: atitinkantį MAC gali sukurti tik šalys, kurios dalijasi paslaptimi.
HMAC-SHA1 ar HMAC-SHA256?
HMAC-SHA256 yra šiuolaikinis numatytasis pasirinkimas webhook ir užklausų pasirašymui. HMAC-SHA1 vis dar pasitaiko senesniuose protokoluose ir yra priimtinas, kai reikia suderinamumo.
Ar HMAC yra šifravimas?
Ne. Jis neslepia pranešimo — jis tik įrodo vientisumą ir autentiškumą. Jei reikia konfidencialumo, šifruokite atskirai.
Viskas vyksta tavo naršyklėje: įvestis, HMAC raktas ir tikėtina maiša nepalieka įrenginio.
