Paroolid ja nende haldamine
Paroolide keerukus ja paroolide murdmine
Turvalisuse huvides nõutakse kasutajatelt keeruliste paroolide kasutamist. Samas ei tohiks kasutada samasuguseid paroole erinevate kontode jaoks, sest parooli lekkimisel muutuksid kõik kontod avalikuks. Seega tekib konflikt kasutusmugavuse ja turvalisuse vahel. See on peamine põhjus miks väga suur osa paroolidest on liiga nõrgad. Probleemi illustreerimiseks saate külastada lehekülge, mis ennustab parooli murdmiseks kuluvat aega kui murdmiseks kasutatakse ühte lauaarvutit: https://howsecureismypassword.net/. Hoiatus: ärge sisestage sellele veebilehele enda paroole!
Kasutajal tekib probleem: kuidas kasutada turvalist parooli ja seda ka meeles pidada? Mida turvalisem on parool seda raskem on parooli meeles pidada.
Lahenduste ideed:
- õppida paroolid pähe
- kirjutada paroolid paberile
- salvestada paroolid tekstifaili
- kasutada paroolide haldamise tarkvara
Kuidas veebilehed paroole salvestavad
Paroolide sisestamisel ei võrrelda sisestatud parooli vaid funktsiooni paroolist. Kui süsteem või veebileht salvestaks kasutajate paroole, siis süsteemi murdmise korral lekiksid kõigi kasutajate paroolid. Selleks, et rünnaku puhul paroolide lekkimist ära hoida salvestatakse hoopis paroolide räsid.
Krüptograafiline räsifunktsioon
Räsifunktsioon (hash function) on deterministlik algoritm, mis saab sisendiks suvalise hulga andmeid ning mille väljund on alati ühepikkune (teatud arv bitte). Loomulikult tähendab see seda, et ühele räsifunktsiooni väljundile vastab lõpmata palju sisendeid. Oluline on see, et iga muudatus sisendis muudab tervet räsifunktsiooni väljundit.
Krüptograafias kasutatakse räsifunktsioone mitmel pool ning sellistel räsifunktsioonidel on nõutud teatavad omadused:
- Ühesuunalisus (one-wayness): räsifunktsiooni väljundist ei saa tuletada sisendit, st räsifunktsioon ei ole pööratav.
- Lisaoriginaalikindlus (second pre-image resistance): teades räsifunktsiooni sisendit on raske leida mõni teine sisend, mis annaks samasuguse väljundi.
- Kollisioonikindlus (collision resistance): on raske leida kahte erinevat sisendit, mis annaks sama väljundi.
Tuntumad räsialgoritmid on MD5, SHA-1, SHA-2, SHA-3.
Leiame räsi lausele "krüptograafiline räsifunktsioon on ühesuunaline".
Räsifunktsioon | Lause räsi |
---|---|
MD5 | 8727dc1ee0fd84c1e0d2d38cb02dfea0 |
SHA-1 | 7c32ae747dd38b6567ba86cce3bbe2f0323246ab |
SHA-256 | 017c36232edeac0f0b4c93b8d8e5e69c81799c3d8db32705ff60136148bcde0e |
Paroolid ja nende räsid
Veebilehed salvestavadki paroolide asemel nende räsid. Kui kasutaja tahab sisse logida ja oma parooli sisestab, siis arvutab veebileht sellest uuesti räsi ja võrdleb seda andmabaasis olevaga.
Siit tekib järgmine probleem, räsifunktsioon on deterministlik ja seega saab süsteemi ründaja räside tulemused varem välja arvutada. Ründaja võib näiteks arvutada välja kõikide lihtsamate paroolide räsid, muuseas näiteks parooli “test” räsi. Seega kui süsteemi või veebilehe räside andmebaas lekib, siis saab paljud levinud paroolid ikkagi tuvastada. Probleemi lahendab iga kasutaja räsi juhuslikuks muutmine paroolile juhuslikkuse (inglise keeles "salt") lisamisega.
Näide (paroolile "test" soola "j2Bl" lisamine):
sha256(“test”) = 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 sha2(“test+j2Bl”)=4cb0ccd18a4f985823c5640e97103b6c7ee23d175cffc01691baeb006773c365
Näide: Vaatame, kuidas saab lihtsaid paroole jõuga ära arvata.
Ründajate elu tehakse veelgi keerulisemaks ning tavalise räsifunktsiooni asemel kasutatakse hoopis spetsiaalset paroolipõhist võtmetuletusfunktsiooni (password-based key derivation function). Selliste funktsioonde mõte on selles, et nad räsivad sisendit mitte üks vaid näiteks 10 000 korda, muutes seega ründajal paroolide arvamise oluliselt kulukamaks. Näited sellistest funktsioonidest on PBKDF2, scrypt jt.
Paroolihaldustarkvara
Paroolihaldustarkvara KeePass
Windowsi (ja Linuxi) jaoks on tasuta on saadaval vabavaraline programm KeePass. Linuxi ja Mac OS jaoks on samast lähtekoodist ehitatud KeePassX.
Harjutus: Installida KeePass (KeePassX) ja proovida selle kasutamist. KeePass koduleht http://keepass.info/.
- Paigaldage KeePass professional edition http://keepass.info/download.html
- valige "Installer EXE for Windows"
- käivitage KeePass-2.28-Setup.exe
- vajutage "Run" ja "Yes"
- vajutage "ok" või valige endale sobiv keel
- vajutage "next",
- märkige ära "I accept the agreement" ja vajutage "next
- vajutage kolm korda "next"
- vajutage "install"
- Käivitage KeePass
- Looge uus paroolide andmebaas: File -> New -> (sisestage faili nimi) -> Save
- Genereerige ja sisestage peavõti (master password), võti ei tohiks olla lühike ja triviaalne. Parooli välja all kuvatakse visuaalselt parooli hinnangulist keerukust (estimated quality). On väga oluline, et te jätate selle võtme meelde, kui te tahate edaspidi oma paroolide andmebaasi kasutada.
- Vajutage "ok" ja "ok"
- Lisage andmebaasi uus parool: Edit -> Add Entry...
- Lukustage KeePass: File -> Lock Workspace
Lisamaterjalid ja viited
- Juhuslike paroolide genereerimine (kontrolli, et oleks HTTPS)
- Kuidas jätta meelde keerulisi paroole
- Windowsi paroolide murdmisest
- Räsifunktsioon
- Paroolipõhine võtmetuletusfunktsioon
- Why passwords have never been weaker—and crackers have never been stronger
- Paroolihaldaja KeePass
- http://keepass.info (Windows, Linux)
- http://www.keepassx.org (Windows, Linux, Mac OS X)
- The secret to online safety: Lies, random characters, and a password manager