Kas yra slaptažodžių hash'inimas?

hash("hello") = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
hash("hbllo") = 58756879c05c68dfac9866712fad6a93f8146f337a69afe7dd238f3364946366
hash("waltz") = c0e81794384491161f1777c232bc6bd9ec38f616560b120fda8e90f383853542 

Hash‘o algoritmai yra vienkryptės funkcijos. Jie bet kokį kiekį duomenų pakeičia į fiksuoto ilgio unikalų „atspaudą“, kuris negali būti pakeistas atgal. Jiems taip pat būdinga tokia ypatybė, kad, jei įvestis bent kažkiek pasikeičia, gaunamas hash‘as yra visiškai kitoks (žiūrėti pavyzdį viršuje). Tai puikus būdas apsaugoti slaptažodžius todėl, kad jie yra saugomi užšifruoti ir yra neįmanoma juos iššifruoti, bet tuo pačiu, mes galime patvirtinti, kad vartotojo slaptažodis yra teisingas.

Paskyros sukūrimui ir autentifikavimui hash‘u paremtose sistemose veiksmų seka yra tokia:

  1. Vartotojas sukuria paskyrą.
  2. Jo slaptažodis yra užhashuojamas ir saugomas duomenų bazėje. Neužšifruotas slaptažodis nėra saugomas kietajame diske.
  3. Kai vartotojas ketina prisijungti, slaptažodžio hash‘as, kurį jis įvedė, yra patikrinamas pagal jo tikro slaptažodžio hash‘ą (atkurtą iš duomenų bazės).
  4. Jei hash‘ai sutampa, vartotojui suteikiama prieiga. Jei ne, vartotojas yra informuojamas, kad įvedė klaidingus prisijungimo duomenis.
  5. 3 ir 4 žingsniai yra kartojami kiekvieną kartą, kai kas nors bando prisijungti prie paskyros.

4 žingsnyje niekada nesakykite vartotojui, ką jis įvedė klaidingai – vartotojo vardą ar slaptažodį. Visada nurodykite bendrą pranešimą, kaip „Klaidingas vartotojo vardas arba slaptažodis“. Tai leidžia apsisaugoti nuo įsilaužėlių, kurie gali sužinoti teisingus vartotojo vardus nežinodami jų slaptažodžių.

Reikėtų atkreipti dėmesį, kad hash‘ų funkcijos naudojamos slaptažodžių apsaugojimui nėra tos pačios kaip tos, kurias Jūs galėjote matyti duomenų struktūrų kursuose. Hash‘ų funkcijos, naudojamos duomenų struktūrų, tokių kaip hash‘ų lentelės, realizacijai, yra sukurtos būti greitomis, nesaugiomis. Tik kriptografinės hash‘ų funkcijos turėtų būti naudojamos slaptažodžių hash‘inimui. Hash‘ų funkcijos, tokios kaip SHA256, SHA512, RipeMD ir WHIRLPOOL yra kriptografinės.

Galite pagalvoti, kad viskas, ką turite padaryti, yra paleisti slaptažodį per kriptografinę hash‘o funkciją ir visi Jūsų vartotojų slaptažodžiai bus saugūs.  Tačiau tai nėra tiesa. Yra daugybė būdų, kaip galima slaptažodžius išgauti iš paprastų hash‘ų labai greitai. Taip pat yra keletas lengvai įgyvendinamų metodų, kurie šias „atakas“ padaro mažiau veiksmingas.

Apie kai kurias bendras atakas, naudojamas paprasto slaptažodžio hash‘o nulaužimui skaitykite "Kaip hash'ai yra nulaužiami?".

Serveriai.lt - hostingo paslaugų lyderis domenai