Razlika med MAC in HMAC
Difference Between Mac
MAC
koda za preverjanje pristnosti sporočila
namen MAC je preveriti nepristranskost sporočila
pošiljatelj
- uporabite funkcijo zgoščevanja, da dobite H (m)
- sporočilo concate in H (m)
- pošlji
H(m) + m
na sprejemnik
sprejemnik
- dobite
H(m) + m
od pošiljatelja - izračunajte zgoščeno vrednost m
H(m)
- primerjajte, ali je zgoščena vrednost od pošiljatelja enaka vrednosti, ki jo pravkar izračunamo
MAC lahko preveri samo nepristranskost podatkov
HMAC
HMAC je posebna vrsta kode za preverjanje pristnosti sporočil (MAC), ki vključuje kriptografsko zgoščevalno funkcijo in tajni kriptografski ključ. Lahko se uporablja za hkratno preverjanje celovitosti podatkov in
HMAC je podmnožica elementa MAC
HMAC zagotavlja tako integriteto podatkov kot njihovo preverjanje pristnosti
kje
H je kriptografska zgoščevalna funkcija
m je sporočilo, ki ga je treba preveriti
K je skrivni ključ
K ’je ključ velikosti bloka, ki izhaja iz skrivnega ključa, K bodisi tako, da na desni doda 0 do velikosti bloka, ali tako, da najprej zgosti na manj kot velikost bloka in nato z ničlami doda desno
∥ pomeni združevanje
⊕ označuje bitno izključitev ali (XOR)
opad je zunanje oblazinjenje velikosti bloka, sestavljeno iz ponavljajočih se bajtov v vrednosti 0x5c
ipad je notranje oblazinjenje velikosti bloka, sestavljeno iz ponavljajočih se bajtov v vrednosti 0x36
Ko dolžina tajnega ključa ni dovolj, uporabite to 0x00 za dokončanje
0x5c, 0x36 je šestnajstiška predstavitev bajta
Kar zadeva, zakaj dodati ta dva ipad in opad
Naj bodo njihove vrednosti po X ali X drugačne
Da se dve začetni vrednosti razlikujeta.
Varnostno preverjanje HMAC zahteva dve različni stanji razprševanja
zato so blazinice polne velikosti bloka. To je le preprost način
iz enega samega glavnega ključa dobite dve različni stanji.Pojasnimo: vaša preprostejša shema je verjetno varna, vendar je niste
pokazal dokaz. Z različnimi ključi je možen varnostni dokaz.Natančni vzorci blazinic sploh niso pomembni. Vse ničle in vsi enaki
bi bilo tudi v redu glede uporabe varnostnega dokaza
tisti s 50-odstotno gostoto tisti, katerih XOR je prav tako 50-odstotni, je le 'splošno'
načela «.
Uporaba HMAC
hmac se v glavnem uporablja pri preverjanju pristnosti, njegova uporaba pa je taka:
1. Naročnik izda zahtevo za prijavo (ob predpostavki, da GET zahteva brskalnik)
2. Strežnik vrne naključno vrednost (nonce) in naključno vrednost zapiše v sejo.
3. Naročnik uporabi naključno vrednost kot ključ, uporabniško geslo (ključ) za operacijo hmac in jo nato pošlje strežniku.
4. Strežnik prebere uporabniško geslo v uporabniški zbirki podatkov in naključno vrednost, poslano v koraku 2, da izvede isto operacijo hmac kot odjemalec, nato pa jo primerja z rezultatom, ki ga pošlje uporabnik. Preverite, ali je uporabnik zakonit
V tem postopku so lahko varnostni napadi naključne vrednosti, ki jih pošlje strežnik, in rezultati hmac, ki jih pošlje uporabnik, in za hekerja, ki je prestregel dve vrednosti, dve vrednosti nima smisla. Uporabniškega gesla ni mogoče pridobiti. Uvedba naključnih vrednosti pomeni, da je hmac veljaven samo v trenutni seji, kar močno poveča varnost in uporabnost. Večina jezikov izvaja algoritem hmac, na primer php-jev mhash, Python hmac.py Razred java MessageDigest je izvedljiv tudi za uporabo hmac pri spletni overitvi. Tudi hitrost delovanja md5 z js je razmeroma hitra.