Kaj je hash? MD5, SHA-256 in kdaj dejansko potrebujete HMAC
Funkcije zgoščevanja spremenijo vsak vnos v prstni odtis s fiksno dolžino, vendar niso vsi zgoščeni ustvarjeni enaki. Izbira med MD5, SHA-256 in HMAC pomeni razliko med delujočim varnostnim pregledom in tistim, ki tiho ne uspe. V tem priročniku je razloženo, kaj vsak počne, kdaj ga uporabiti in kako preveriti lastne zgoščene vrednosti neposredno v brskalniku.
Kaj je zgoščevalna funkcija?
Funkcija zgoščevanja sprejme poljubno količino podatkov – besedilo, datoteko, geslo – in ustvari niz znakov s fiksno dolžino. Isti vhod vedno proizvede enak izhod, zaradi česar so zgoščene vrednosti uporabne za preverjanje. Spremenite vsaj en znak v vnosu in zgoščena vrednost se popolnoma spremeni. Ta enosmerna lastnost (ne morete obrniti zgoščene vrednosti, da bi dobili nazaj izvirne podatke) je tisto, zaradi česar je uporabna za varnost.
MD5: hiter, a pokvarjen
MD5 ustvari 128-bitno zgoščeno vrednost in je bil nekoč standard za kontrolne vsote in preverjanje datotek. Danes je kriptografsko pokvarjen – trke (dva različna vnosa, ki proizvajata isti hash) je hitro najti. MD5 se še vedno pojavlja v podedovanih sistemih in za nevarnostne kontrolne vsote, vendar nikoli za preverjanje pristnosti ali gesla. Uporabite Generator zgoščevanja če želite videti izpis MD5, vendar posegajte po SHA-256 za vse, kar je pomembno.
SHA-256: trenutni standard
SHA-256 (del družine SHA-2) proizvaja 256-bitno zgoščeno vrednost in je sodobna izbira za kriptografsko delo. Je dovolj hiter za večino aplikacij, odporen na znane napade in široko podprt. Boste videli SHA-256 uporablja se v sistemih blockchain, prstnih odtisih potrdil in zgoščevanju gesel. The Generator zgoščevanja podpira SHA-256 kot privzeti algoritem.
HMAC: ko potrebujete skrivnost
Navadna zgoščena funkcija je deterministična – zgoščeno vrednost lahko preveri vsak. An HMAC (koda za preverjanje pristnosti sporočila na podlagi zgoščene vrednosti) zmeša skrivni ključ, tako da lahko samo nekdo, ki pozna ključ, ustvari pravilno zgoščeno vrednost. To je bistveno za API-je: strežnik in odjemalec si delita skrivnost, vsak z njo podpiše svoja sporočila, prejemnik pa preveri, ali se podpis ujema. To dokazuje, da je sporočilo prišlo od domnevnega pošiljatelja in da ni bilo spremenjeno. The HMAC generator vam omogoča, da to preizkusite s svojim skrivnim ključem.
Kdaj uporabiti posamezen pristop
- Uporabite navaden
SHA-256za preverjanje celovitosti datotek, zgoščevanje gesel (s soljo in počasno funkcijo, kot je bcrypt) in javno zbiranje prstnih odtisov. - Uporaba
HMACza podpisovanje zahtev API-ja, preverjanje webhooka in kateri koli scenarij, kjer si obe strani delita skrivnost. - Preskoči
MD5za vse, kar je povezano z varnostjo. Uporabite ga le pri interakciji s podedovanimi sistemi, ki to potrebujejo.
Vaši podatki ostanejo v vaši napravi
Oba Generator zgoščevanja in HMAC generator v celoti izvajati v vašem brskalniku. Vaše besedilo ni nikoli poslano strežniku – zgoščeno je lokalno v vaši napravi, deluje brez povezave, ko se stran naloži, in ne zahteva računa ali prijave. To pomeni, da lahko varno zgostite občutljive informacije, kot so ključi API, za testiranje, ne da bi jih izpostavili internetu.
Bonus: izmerite entropijo
Če ustvarjate skrivnosti ali gesla, Shannonova entropija kalkulator pokaže, koliko naključnosti (in s tem varnosti) je v nizu. Višja entropija pomeni, da je težje uganiti. Uporabite ga za preverjanje, ali so vaše ustvarjene skrivnosti dejansko naključne, preden jih uvedete.