Millist räsifunktsiooni tuleks kasutada andmebaasis hoitavate paroolide räsimiseks (avateksti peitmiseks)?

Postitas Erki Eessaar
Kõigepealt mõned eestikeelsed allikaviiited.
Cybernetica (2023) kirjutab, et viimasel viiel aastal on sadu näiteid rünnakutest, mis järgivad järgnevat mustrit.
  • "Infosüsteemis kaitstakse lõppkasutajate paroole liiga nõrgalt (paroole hoitakse kas avatekstina või räsituna mõne lihtsa meetodiga – tavapärane on standardse räsifunktsiooni ühekordne rakendamine).
  • Sissetungija varastab kasutajate andmebaasi, mis sisaldab kasutajatunnuseid (tüüpiliselt e-posti aadress) ning paroole või parooliräsisid ning nõrkade parooliräside korral arvutab neist jõuründega paroolide väärtused.
  • Murdunud paroolide abil saab teenuses kasutajakontosid üle võtta ning kuivõrd inimesed kasutavad sama parooli väga tihti paljudes teenustes, saab neid paroole pruukida kasutaja kontode ülevõtmiseks teisteski teenustes."
Seega ei tuleks andmebaasis hoida mitte paroolide avateksti, vaid tuleb hoida paroolide soolatud räsi, kusjuures algse parooli jõuründega leidmine peaks olema võimalikult ressursimahukas. Räsi leitakse räsifunktsiooniga. Cybernetica (2023) defineerib räsifunktsiooni kui funktsiooni, mis võtab oma sisendiks vaid sõnumi ning väljastab (tavaliselt fikseeritud pikkusega) sõnumilühendi ehk räsi.

Cybernetica (2013) jaotises 2.3 kirjutatakse erinevate räsifunktsioonide turvalisusest. 2013. aasta detsembri lõpu seisuga kirjutab dokument muuhulgas räsifunktsioonide kohta:

"5 aasta jooksul turvalised primitiivid: Blowfish, AES (kõik standardsed võtmepikkused), RSA-2048 (ja diskreetse logaritmi põhised süsteemid mooduli pikkusega 2048 bitti), SHA-2, SHA-3, RIPEMD-160"

2018. aastal ilmus krüptograafiliste algoritmide elutsükli uuringu uus versioon (Cybernetica, 2018), mis sisuliselt kordas sama soovitust.

Selles kirjutatakse: "2017. aasta veebruaris leidis Google’i poolt toetatud teadlaste meeskond lõpuks ammuoodatud kollisiooni räsifunktsioonile SHA-1. Kuigi kollisiooni olemasolu ei tähenda automaatselt kõigi kasutusstsenaariumite ebaturvaliseks muutumist, kordame siinkohal jubakõigis eelmistes krüptograafiliste algoritmide elutsükli uuringutes antud soovitust SHA-1 käibelt kõrvaldada. Asenduseks sobivad kõik SHA-2 ja SHA-3 perekonna räsifunktsioonid. ... Nagu ülal juba mainitud, pole viimase aasta jooksul peale SHA-1 kollisiooni leidmise märkimisväärseid krüptograafilisi läbimurdeid toimunud. Seega kehtivad üldjoontes eelmistes aruande versioonides antud soovitused."

2023. aasta aruandes soovitab Cybernetica paroolide räsimiseks samuti SHA-2 ja SHA-3 perekondade algoritme, aga ka PBKDF2, scrypt ja Argon2.

Näiteprojektis kasutatava populaarse ja suure realisatsioonide arvuga bcrypt algoritmi kohta toovad nad negatiivse poole pealt välja
  • piirangud parooli pikkusele (72 baiti),
  • suhtelise nõrkuse spetsiifilist riistvara kasutavate jõurünnete suhtes,
  • bcrypt ei kuulu ühegi riikliku agentuuri poolt soovitatud algoritmide nimekirja.
Nad kirjutavad "FPGA-põhiste rünnete vastase nõrkuse tõttu peab uutes süsteemides kasutama spetsiifilisi vastumeetmeid rakendavaid algoritme, nagu näiteks scrypt."

Aineprojektis loetakse ebasobivateks algoritmideks MD5 ja SHA-1, kuid mitte bcrypt.

Hinda postitust:

Keskmine hinne : Pole veel hinnanguid!