Arvutiteaduse instituut
  1. Esileht
  2. Programmeerimine lastele ja noortele
EN
Logi sisse

Programmeerimine lastele ja noortele

  • PEALEHT
  • TUNNIKAVAD
  • HUVILAAGRID

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

allikas

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.


Allikas: Wikimedia

Krüptograafias kasutatakse räsifunktsioone mitmel pool ning sellistel räsifunktsioonidel on nõutud teatavad omadused:

  1. Ühesuunalisus (one-wayness): räsifunktsiooni väljundist ei saa tuletada sisendit, st räsifunktsioon ei ole pööratav.
  2. Lisaoriginaalikindlus (second pre-image resistance): teades räsifunktsiooni sisendit on raske leida mõni teine sisend, mis annaks samasuguse väljundi.
  3. 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äsifunktsioonLause räsi
MD58727dc1ee0fd84c1e0d2d38cb02dfea0
SHA-17c32ae747dd38b6567ba86cce3bbe2f0323246ab
SHA-256017c36232edeac0f0b4c93b8d8e5e69c81799c3d8db32705ff60136148bcde0e

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/.

  1. Paigaldage KeePass professional edition http://keepass.info/download.html
    1. valige "Installer EXE for Windows"
    2. käivitage KeePass-2.28-Setup.exe
    3. vajutage "Run" ja "Yes"
    4. vajutage "ok" või valige endale sobiv keel
    5. vajutage "next",
    6. märkige ära "I accept the agreement" ja vajutage "next
    7. vajutage kolm korda "next"
    8. vajutage "install"
  2. Käivitage KeePass
    1. Looge uus paroolide andmebaas: File -> New -> (sisestage faili nimi) -> Save
    2. 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.
  1. Vajutage "ok" ja "ok"
  2. Lisage andmebaasi uus parool: Edit -> Add Entry...
  3. Lukustage KeePass: File -> Lock Workspace

Lisamaterjalid ja viited

  • Juhuslike paroolide genereerimine (kontrolli, et oleks HTTPS)
    • https://www.random.org/strings/
    • https://www.grc.com/passwords.htm
  • Kuidas jätta meelde keerulisi paroole
    • https://xkcd.com/936/
  • Windowsi paroolide murdmisest
    • http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/
  • Räsifunktsioon
    • https://et.wikipedia.org/wiki/Räsifunktsioon
    • https://en.wikipedia.org/wiki/Hash_function
  • Paroolipõhine võtmetuletusfunktsioon
    • http://en.wikipedia.org/wiki/PBKDF2
    • http://en.wikipedia.org/wiki/Scrypt
  • Why passwords have never been weaker—and crackers have never been stronger
    • http://arstechnica.com/security/2012/08/passwords-under-assault/
  • 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
    • http://arstechnica.com/information-technology/2013/06/the-secret-to-online-safety-lies-random-characters-and-a-password-manager/
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused