Í netbanka Landsbankans, Einkabankanum, má finna reglulegar áminningar um skipta ætti um lykilorð. Í tilefni af því að ég fékk mér forrit sem er sérstaklega hannað til að geyma lykilorð ákvað ég að breyta lykilorðinu mínu í Einkabankanum. Á lykilorðabreytingasíðunni rakst ég hins vegar á nokkrar reglur um það hvernig lykilorðin eiga að vera samsett.
- Lykilorð verður að vera minnst 8 stafir á lengd, hámarkslengd er 16 stafir.
- Lykilorð má ekki innihalda aðra stafi en bókstafi og tölustafi.
- Það má ekki innihalda séríslenska stafi (á, ð, é, í, ó, ú, ý, þ, æ, ö).
- Það má ekki innihalda eingöngu bókstafi.
- Það má ekki byrja á tölustaf.
- Sami stafur má ekki koma fyrir oftar en tvisvar í röð.
Hver sem hefur kynnt sér tölfræði ætti að geta séð að hér er um að ræða fáránlegar reglur og virðast sumar þeirra ekki þjóna neinum tilgangi. Aðaltilgangurinn með svona vörnum er aðallega sá að minnka líkur á að hægt sé að giska á lykilorðin með hreinni ágiskun og síðan koma í veg fyrir skipulagðar tilraunir til að komast að lykilorðunum. Í þetta sinn munum við hunsa auðkennislykilinn þar sem rökin koma honum ekkert við.
Eitt af því sem venjulega er hunsað er sá möguleiki að einhver óheiðarlegur komist inn í netþjóna bankans og nái eintaki af lykilorðum viðskiptavinanna. Þar sem lykilorðin eru geymd í dulkóðuðu formi þurfa ræningjarnir að annaðhvort afkóða lykilorðin eða nota „brute force“ aðferðir sem ganga út á að láta forrit athuga með hverja mögulega samsetningu tákna þar til þeir hitta á lykilorðið. Við gerum ráð fyrir að þeir þurfi að framkvæma þetta þannig að þeir þurfa að ná í dulkóðuðu skrárnar og brjóta lykilorðin hjá sér. Ef þeir reyna að millifæra peninga beint af netþjónum bankans mun komast upp um þá of fljótt og hagnaður þeirra verður miklu minni en ella.
Nú eru ræningjarnir með lykilorðaskrána og neyðast til að brjóta lykilorðin með ágiskunaraðferðinni. Hversu margar ágiskanir tæki það forritið sem þeir keyra áður en það hittir á hvert lykilorð? Skv. prófunum mínum í Einkabankanum skipta háir og lágir stafir ekki máli svo við munum gera ráð fyrir því fyrirkomulagi. Hver ágiskun prófar eina samsetningu af leyfilegum táknum og sér síðan hvort hún gengur upp. Hvernig það er staðfest fer eftir aðstæðum en oftast nær er það hægt án þess að reyna að tengja sig inn á Einkabankann. Því fleiri mögulegar samsetningar af táknum, því lengur tekur það ræningjana að brjóta lykilorðið.
Gerum ráð fyrir að efstu tvær reglurnar sé þær einu sem gilda og að allir viðskiptavinirnir noti 16 stafa lykilorð og í boði eru allir bókstafir í íslenska og enska stafrófinu auk tölustafa. Þetta væru þá 46^16 (46 í 16. veldi) mögulegar samsetningar af stöfum. Ræningjarnir þyrftu samt sem áður að prófa einnig allar samsetningar fyrir 8, 9, 10, 11, 12, 13, 14 og 15 stafi líka en í dæmunum er ekki tekið á því. Til að reikna það út þyrfti að margfalda 46^16 með 46^15 og svo framvegis niður í 8. veldi. Upp á besta samanburðinn miða ég við 16 stafa lykilorð.
Segjum að viðskiptavinir bankans fái síðan fyrirmæli um að þeir verði að breyta lykilorðunum sínum því þriðju reglunni var bætt inn og nú geta þeir ekki notað séríslenska stafi (á, ð, é, í, ó, ú, ý, þ, æ, ö) sbr. hér að ofan. Bara með þessari reglu fækkaði samsetningunum niður í 36^16 sem er um 1,98% af 46^16. Ef lengdir upp á 8 til 15 stafi séu einnig teknar með í útreikningana er óhætt að álykta að hlutfallið minnkar enn þá meira.
Til að draga greinina ekki óþarflega á langinn með sífelldum útreikningum læt ég mér nægja að nefna að hver regla takmarkar fjölda samsetninga enn frekar. Eftir að hafa reynt að hugsa út í ástæðurnar fyrir hverri reglu datt mér ekki í hug nein réttlætanleg ástæða fyrir þessum takmörkunum. Tækninni hefur fleygt fram og er engin ástæða til þess að undanskilja séríslenska stafi og (nær) engin ástæða til þess að takmarka lykilorðin heldur við latneska bókstafi og tölustafi. Auk þess tel ég óhætt fyrir bankann að heimila lengri lykilorð en 16 stafi. Það mætti halda að bankinn sé enn á þeim tíma þegar Þjóðskráin hafði 32ja stafa hámark á nöfnum fólks í tölvukerfinu sínu (sem nú hefur verið hækkað í 256 stafi).
Kostir reglanna
Þó eru 1 þáttur í stefnunni sem ég get verið sammála en hann er lágmarkslengd lykilorða (8 stafir). Það tekur í mesta lagi nokkrar sekúndur á venjulegri heimilistölvu að brjóta lykilorð sem eru með færri en 8 stafi. Hinir takmarka mögulegar samsetningar að einhverju leiti. Önnur regla sem ég er hálfsammála er 4. reglan; Þó hún sé takmarkandi þá hefur hún þau áhrif að viðskiptavinurinn getur ekki notað þekkt orð eða skammstafanir en ég er þá ósammála henni vegna þess að reynslan hefur sýnt að notendur almennt setja einfaldlega tölustafi fyrir aftan venjuleg orð og forrit ræningjanna getur sett þau lykilorð í forgang.
Ókostir
Farið hefur verið ofan í útreikningana vegna 3. reglunnar sem virðist ekki vera byggð á neinni tæknilegri ástæðu. Þar sem lykilorðin eru geymd dulkóðuð ætti það ekki að hafa nein áhrif hvað varðar stafasett inn í lykilorðagrunninum. En tilgátan mín er sú, að fyrst háir og lágir stafir skipta ekki máli, að forritið sem tekur á móti lykilorðum breytir öllu lykilorðinu í lágstafi (eða hástafi). Íslensku stafirnir séu síðan bannaðir því forrit bankans notar innbyggða skipun til að breyta lykilorðastrengnum í lágstafi (eða hástafi). Sú skipun styður ekki íslenska stafi og forritararnir hafi einfaldlega ekki nennt að bæta við stuðningnum.
5. reglan er nokkuð heimskuleg og virðist ekki þjóna neinum tilgangi nema til að takmarka fjölda samsetninga. Af hverju mega lykilorð ekki byrja á tölustaf? Er það til að koma í veg fyrir að einhver geti sett lykilorð sem eru eingöngu tölustafir? Með því að hafa ekki slíka takmörkun væri bankinn að tefja ferli ræningjanna með því að láta þá prófa fleiri samsetningar en þeir þurfa. Ræningjarnir myndu auðvitað láta forritið prófa öll lykilorð sem reglurnar leyfa og þar á meðal lykilorð sem væru eingöngu tölustafir. Með því að setja þessa reglu hefur Landsbankanum tekist að auðvelda verk ræningjanna því það mun taka þá töluvert styttri tíma en ella. Til samanburðar myndi þessi regla orsaka það að ræningjarnir væru næstum helmingi fljótari að komast að 16 stafa lykilorði en ef reglan væri ekki í gildi.
Tilgangur 6. reglunnar er líklegast til að koma í veg fyrir of margar endurtekningar á sama staf. En eins og 5. reglan er hér bara um sýndaröryggi að ræða. Mögulegum samsetningum fækkar en þó má deila um það hvort það borgi sig fyrir ræningjana að innleiða þessa reglu en það fer aðallega eftir því hversu langan tíma hver tilraun tekur og hversu mikið vinnslan eykst ef reglan er innleidd í forritið. Þó er betra að eyða vafanum og láta ræningjana þjást aðeins meira.
Lykilorðastefna Landsbankans á heima í fortíðinni og óska ég hér með eftir hann taki upp vitræna stefnu sem fyrst.
wow aðeins of djúpar pælingar
Já, tekur smá nördaskap til að skilja sumt sem ég skrifa.
Bara sumt? 🙂
Þegar þú minnist á það… 😉
Nördaskapur eða ekki nördaskapur …. Hverjir brjótast inn í tölvur með það fyrir augum að stela lykilorðaskrám og reyna að brjótast inn á reikninga viðkomandi? Eru það afdalabændur eða tölvunerðir?
Mér finnst þessi grein Svavars vera mjög djúp, og virkilega þess virði að fólk taki eftir henni. Ég er forritari sjálfur, og mér hefur aldrei dottið í hug að beita þessari reglu. Nema þeirri sem hann bendir sjálfur á að sé góð: Ekki hafa lykilorðið þitt styttra en 8 stafir.
Það sem ég geri við lykilorðastrenginn, þegar fólk skráir lykilorð, er að breyta honum strax í MD5-hash-aðan streng, og geymi hann þannig í gagnagrunninum. Þegar fólk loggar sig inn, ber ég saman það sem það sló inn (MD5-hash-að að sjálfsögðu) við það sem er í grunninum. Ef strengirnir eru eins, er um sama lykilorð að ræða. Þannig að þó svo að þú komist í lykilorðaskrána mína og takist að opna hana, ertu ekkert betur settur 🙂
Ég veit ekki betur en það séu til frekar einföld de-hashing forrit sem taka svona einfalt MD5 í nefið á engum tíma.
Ef það á að fara út í MD5 hash er nokkuð mikilvægt að salta strenginn áður. Annars er hægt að nýta birthday problem til að finna annan streng sem myndi leiða til sömu MD5 summu. Salt er engin töfralausn en hins vegar tekur það talsvert lengri tíma að finna út lykilorðið ef saltið er gott en ef það væri alls ekki til staðar. Til að gera enn erfiðara fyrir væri hægt að hafa það þannig að hver og einn notandi hefði sér salt.
Þeir sem myndu brjótast inn og stela téðum lykilorðaskrám væru þeir sem myndu nýta þær til að komast að lykilorðunum. Þjófarnir geta síðan fundið aðferð til þess að ná auðkennislyklunum af nokkrum viðskiptavinum eða platað þá til að gefa upp nokkrar runur.
Það minnir mig á það.. voru það ekki bekkjarfélagar þínir sem fundu það út að þeir gátu generate’að auðkennislykilinn rétt í 3 af hverjum 4 skiptum, með einhverjum skítléttum hugbúnaði?
Ég hafði ekki heyrt um það en ég heyrði þá sögu að einn náði að reikna út þriðju hverja tölu. Það er nóg til þess að skrá sig inn á vefbankann og taka út.
Ah, já, var það 1 af 3! Same same.. eins og þú segir, það dugar til að komast inn 🙂