SHA-1 (okrajšava za Secure Hash Algorithm 1) je ena od več kriptografskih zgoščevalnih funkcij.
Najpogosteje se uporablja za preverjanje, ali je datoteka nespremenjena. To se izvede tako, da se ustvari kontrolna vsota, preden je datoteka poslana, in nato znova, ko doseže cilj.
Poslana datoteka se lahko šteje za pristno le, če sta obe kontrolni vsoti enaki.
Zgodovina in ranljivosti zgoščevalne funkcije SHA
SHA-1 je le eden od štirih algoritmov v družini algoritmov varnega zgoščevanja (SHA). Večino je razvila ameriška Agencija za nacionalno varnost (NSA) in objavil Nacionalni inštitut za standarde in tehnologijo (NIST).
SHA-0 ima 160-bitni izvleček sporočila (zgoščena vrednost) in je bila prva različica tega algoritma. Njegove zgoščene vrednosti so dolge 40 števk. Objavljen je bil pod imenom "SHA" leta 1993, vendar ni bil uporabljen v številnih aplikacijah, ker je bil leta 1995 zaradi varnostne napake hitro nadomeščen s SHA-1.
SHA-1 je druga ponovitev te kriptografske zgoščevalne funkcije. Ta ima tudi povzetek sporočila 160 bitov in je skušal povečati varnost z odpravo slabosti v SHA-0. Leta 2005 pa je bilo tudi ugotovljeno, da SHA-1 ni varen.
Ko so bile v SHA-1 odkrite kriptografske slabosti, je NIST leta 2006 podal izjavo, v kateri je zvezne agencije spodbudil, naj sprejmejo uporabo SHA-2 do leta 2010. SHA-2 je močnejši od SHA-1 in napadi proti SHA-2 se s trenutno računalniško močjo verjetno ne bodo zgodile.
Ne le zvezne agencije, ampak tudi podjetja, kot so Google, Mozilla in Microsoft, so začela načrtovati prenehanje sprejemanja potrdil SSL SHA-1 ali pa so že blokirala nalaganje tovrstnih strani.
Google ima dokaz o koliziji SHA-1, zaradi katere je ta metoda nezanesljiva za generiranje edinstvenih kontrolnih vsot, ne glede na to, ali gre za geslo, datoteko ali kateri koli drug podatek. Iz SHAttereda lahko prenesete dve edinstveni datoteki PDF, da vidite, kako to deluje. Uporabite kalkulator SHA-1 na dnu te strani, da ustvarite kontrolno vsoto za oba, in ugotovili boste, da je vrednost popolnoma enaka, čeprav vsebujeta različne podatke.
SHA-2 in SHA-3
SHA-2 je bil objavljen leta 2001, nekaj let po SHA-1. Vključuje šest zgoščenih funkcij z različnimi velikostmi izvlečka: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 in SHA-512/256.
Razvili so ga oblikovalci, ki niso iz NSA, leta 2015 pa ga je izdal NIST, je še en član družine algoritmov varnega zgoščevanja, imenovanega SHA-3 (prej Keccak).
SHA-3 ni namenjen zamenjavi SHA-2, kot so bile prejšnje različice namenjene zamenjavi prejšnjih. Namesto tega je bil razvit kot druga alternativa SHA-0, SHA-1 in MD5.
Kako se uporablja SHA-1?
En primer iz resničnega sveta, kjer se lahko uporabi SHA-1, je, ko vnašate svoje geslo na prijavno stran spletnega mesta. Čeprav se to zgodi v ozadju brez vaše vednosti, je to lahko metoda, ki jo spletno mesto uporablja za varno preverjanje pristnosti vašega gesla.
V tem primeru si predstavljajte, da se poskušate prijaviti na spletno stran, ki jo pogosto obiskujete. Vsakič, ko zahtevate prijavo, morate vnesti svoje uporabniško ime in geslo.
Če spletno mesto uporablja kriptografsko zgoščevalno funkcijo SHA-1, to pomeni, da se vaše geslo po vnosu spremeni v kontrolno vsoto. Ta kontrolna vsota se nato primerja s kontrolno vsoto, ki je shranjena na spletnem mestu in se nanaša na vaš trenutni geslo, ne glede na to, ali gesla niste spremenili, odkar ste se prijavili, ali pa ste ga spremenili pred nekaj trenutki. Če se ujemata, vam je odobren dostop; če ne, vam sporočijo, da je geslo napačno.
Drug primer, kjer se ta zgoščevalna funkcija lahko uporablja, je za preverjanje datoteke. Nekatera spletna mesta bodo zagotovila kontrolno vsoto SHA-1 datoteke na strani za prenos, tako da lahko, ko prenesete datoteko, sami preverite kontrolno vsoto in zagotovite, da je prenesena datoteka enaka tisti, ki ste jo nameravali prenesti.
Morda se sprašujete, kje je resnična uporaba te vrste preverjanja. Razmislite o scenariju, kjer poznate kontrolno vsoto SHA-1 datoteke s spletnega mesta razvijalca, vendar želite prenesti isto različico z drugega spletnega mesta. Nato lahko ustvarite kontrolno vsoto SHA-1 za svoj prenos in jo primerjate s pristno kontrolno vsoto na razvijalčevi strani za prenos.
Če sta različni, to ne pomeni samo, da vsebina datoteke ni enaka, ampak je lahko v datoteki skrita zlonamerna programska oprema, podatki so lahko poškodovani in povzročijo škodo vašim računalniškim datotekam, datoteka pa ni vse, kar je povezano s pravo datoteko itd.
Lahko pa tudi pomeni, da ena datoteka predstavlja starejšo različico programa kot druga, saj bo celo ta majhna sprememba ustvarila edinstveno vrednost kontrolne vsote.
Mogoče boste prav tako želeli preveriti, ali sta datoteki enaki, če nameščate servisni paket ali kak drug program ali posodobitev, ker pride do težav, če med namestitvijo manjkajo nekatere datoteke.
SHA-1 Kalkulatorji kontrolne vsote
Za določitev kontrolne vsote datoteke ali skupine znakov je mogoče uporabiti posebno vrsto kalkulatorja.
Na primer, SHA1 Online in SHA1 Hash Generator sta brezplačni spletni orodji, ki lahko ustvarita kontrolno vsoto SHA-1 katere koli skupine besedila, simbolov in/ali številk.
Ta spletna mesta bodo na primer ustvarila ta par:
pAssw0rd!
bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba