Izbira dobrega gesla

Original: http://www.queen.clara.net/pgp/pass.html

[Opomba. To je nekoliko spremenjena različica članka, ki se je prvotno pojavila v reviji Arhiva v februarju 2005.]

Vsak program šifriranja zahteva geslo za zaščito šifriranih podatkov. Ker so pogosto uporabljene sodobne šifre izredno varne in so odporne na vse znane metode kriptoanalize, je geslo pogosto najbolj ranljiv del katerega koli postopka šifriranja. Zato je pomembno izbrati “močne” geslo.

Zakaj govorimo o “geslo” namesto “gesla”?

Ko veliko ljudi zahteva, da izberejo geslo, izberejo nekaj običajnih besed ali imena. To lahko zlahka razpokne z »slovarskim napadom«, tj. Z računalniškim programom, ki uporablja slovar, da preizkusi vse možnosti. Veliko takih programov obstaja. Včasih jih uporabljajo ljudje, ki so pozabili svoje geslo. Toda geslo, ki ga je mogoče obnoviti na ta način, je šibko. To lahko preprosto opomore kdo drug, ki lahko nato pridobi dostop do šifriranih podatkov uporabnika, podrobnosti o spletnem bančništvu itd.

Nekoliko močnejša vrsta gesla je tista, ki ni prava beseda, morda celo vsebuje nekaj številk ali drugih posebnih simbolov, če jih dovoljuje programska oprema ali spletna stran, ki jo uporabljate. Čeprav je to varno pred klasičnim slovničnim napadom, ga lahko razbije napad “brute-sile”, to je program, ki preprosto preskusi vse možne vrste znakov, dokler ne najde pravo kombinacijo. Seveda, če je dlje geslo, postane težji tak napad. Denimo, na primer, da je v geslo dovoljeno 50 različnih znakov. Če dodate še en znak v obstoječe geslo, pričakujete, da bo iskalnik pravilnega gesla traja 50 krat toliko časa.

Nekateri Unix sistemi, na primer, sprejmejo gesla za prijavo do osem znakov. Gesli za prijavo za nekatere ponudnike internetnih storitev so podobni. Na žalost so takšna gesla precej šibka in se zlahka napadajo. Zagotovo bi morali uporabljati daljša gesla, če sistem to dovoljuje.

Dokumenti za neko programsko opremo za šifriranje, kot sta PGP in GnuPG, vedno govorijo o geslih in ne geslih, da bi poudarili, da so lahko razumne dolžine, sestavljene iz številnih besed ali skupin znakov, ločenih (po izbiri) s presledki.

Kako močna bi morala biti geslo?

Geslo je daleč najslabši del mnogih sistemov šifriranja, vsaj za mnoge uporabnike, ki v praksi uporabljajo šibko geslo. Če napadalec želi pridobiti dostop do tipičnih uporabniških šifriranih podatkov, bi bilo veliko bolj učinkovito, če bi poskušali razpršiti geslo kot poskusiti resnično kriptoanalizo. Zato je zelo pomembno izbrati dobro geslo.

Tudi za močne organizacije, kot so vladne agencije z ogromnimi računalniškimi viri, bi bilo najbolj stroškovno učinkovito, če bi poskušali razbiti geslo. Pogosto je rečeno, da je najpreprostejša tehnika za dostop do šifriranih podatkov “gumijasti cevni napad” (prebijanje žrtve ali uporaba drugih metod mučenja, dokler se ne odkrije geslo). Druga taka tehnika je, da v uporabnikovem računalniku napiše elektronsko hrošč ali skrit program, da zajame vse tipke. Alternativno, lahko tudi brez fizičnega dostopa do računalnika ali njegovega uporabnika, resen napadalec lahko iz daljine spremlja elektronske emisije iz računalnika in tako zabeleži geslo. To je znano kot “napad na bombo”. Težnje napade ni mogoče preprečiti. Toda verjetno vam ni treba skrbeti, razen če ste resen cilj vladnih preiskav ali če živite pod represivnim režimom.

Smiselno je izbrati geslo, ki je enako močno uporabljenemu kriptosistemu, saj je vsak tak sistem samo tako močan kot najšibkejši člen. Ta članek pojasnjuje nekaj preprostih trikov, ki lahko pomagajo doseči ta cilj.

Izbira močnega gesla

Na splošno bi moral biti cilj ustvariti geslo, ki ga je enostavno zapomniti in ga natipkati, ko je to potrebno, vendar je zelo težko, da bi kdorkoli drug uganil, tudi za nekoga, ki vas dobro pozna. Prav tako bi moralo biti dovolj dolgo, da bi napad napadov ali napadi z brutalnim napadom prišli nepraktično.

Ena dobro znana metoda je, da z naključnim postopkom izbere niz besed iz slovarja. Ta tehnika se včasih imenuje “diceware”. To metodo izvaja program RISC OS !RNDpass Tony Hopstaken, ki je na voljo na tej spletni strani.

S tako velikim slovarjem, kot je vključen v !RNDpass, je geslo, ki vsebuje 8 ali več naključnih besed, verjetno prenagljeno vsem možnim napadom zaradi ogromnega števila možnih kombinacij, še posebej, če je geslo spremenjeno na nepredvidljiv način preprečiti čisti slovarski napad.

Spodaj so opisani nekateri preprosti nasveti za “izkrivljanje” gesla. Če se uporabljajo z malo domišljije, bodo delovale dobro, tudi če se uporabnik začne z “normalno” geslo na preprostem angleškem jeziku (namesto naključnih besed, kot jih poda !RNDpass) in ga izkrivlja tako, da postane čisto nepredvidljivo.

Nekaj posebnih načinov za to je mogoče avtomatizirati v !RNDpass, kot možnost. Izkrivljanje gordne besede (randomly), ki je sestavljeno iz običajnih besed, je nedvomno varnejše od intuitivnega izkrivljanja, ki ga ročno dodate, vendar pa se lahko bolj trudi, da se jih spomni.

Gesla za spletne strani

Ja, govorim o geslih tukaj, ne pa o “geslih”. Mnoga spletna mesta, ki od uporabnika zahtevajo, da se registrirajo za neko storitev, zahtevajo “geslo” in v nekaterih primerih določajo precej strogo omejitev glede njegove dolžine. V takih primerih bi bila gesla, zgrajena na podlagi doslej obravnavanih idej, precej šibka in potreben drugačen pristop.

Učinkovita rešitev v tem primeru je sestaviti geslo, sestavljeno iz popolnoma naključnih znakov. Eden od načinov za to bi bil uporaba programa RISC OS !PassWd Paul Vigay.

V svoji privzeti konfiguraciji !PassWd omogoča uporabniku, da ustvari naključna 8-mestna gesla, sestavljena iz abecednih znakov, ki se lahko pojavijo v zgornjem ali spodnjem primeru, pa tudi številke od 0 do 9. Tipično geslo te vrste je ‘w4JBM6mb “.

Vendar program omogoča uporabniku, da konfigurira veliko različnih možnosti, kot je dolžina gesla, ali so drugi posebni znaki, kot so “$” ali “!” so dovoljene, ali naj se uporabijo velike in male črke in tako naprej. Na ta način lahko uporabnik ustvari močna gesla z največjo varnostjo, ki jo dovoljuje določena spletna stran.

Zdaj pa se vrnimo k geslom, sestavljenim iz številnih “besed”, ki so primernejši za večino programov za šifriranje.

Izkrivljanje “preprostega” gesla, da bi bil močnejši

• Najprej se lahko začnete z nizom naključnih besed, kot so tiste, ki jih je ustvaril !RNDpass (bolj varen, vendar težje zapomniti) ali smiselno zaporedje besed (manj varno, a se ga je še bolje spomniti). Če izberete slednji pristop, ne uporabljajte nobenih znanih citatov, pregovorov ali izrekov. Vse to obstaja v slovarjih, vključno z nekaterimi v elektronski obliki, ki se lahko uporabljajo za razpoke. Ena od možnosti bi bila izbira fraze iz knjige naključno, po možnosti izogibanje popolnemu stavku. Poskusite se izogniti frazam s konvencionalno, predvidljivo slovnično strukturo. Če je potrebno, zamenjajte nekaj besed z neumnimi, nepričakovanimi besedami.

• Pri “izkrivljanju” preprostega gesla je najbolje, da se izognete uporabi le slovničnih besed, da bi preprečili vsak možen slovarski napad.

• Večina programov za šifriranje vam omogoča uporabo abecednih znakov, kot so številke ali drugi simboli na tipkovnici. Te lahko vstavite na nepričakovana mesta. Na primer, lahko besedo “računalnik” spremenite v “c0mputer”, “98% računalnik” ali “račun”. Uporaba dodatnih znakov lahko izjemno poveča število možnih gesel, ne da bi jih bilo težko zapomniti. Najbolje je, da jih postavite na nepričakovana mesta. Napadalec lahko ugane, na primer, da ste zamenjali “o” z “0”, kar je običajen trik.

• V številnih programih za šifriranje, vključno s PGP in GnuPG, so gesla v obliki velikih in malih črk. To pomeni, da je dobro zamenjati zgornji in spodnji del. Na primer, »računalnik«, comPUTer in COMPUTER bi bili vsi obravnavani kot različni.

• Če poznate besede iz tujih jezikov, lahko v svojo geslo vključite nekaj.

• Izgovarjate lahko lastne nesmiselne besede, kot je znana beseda “jabberwocky”, ki jo je pripravil Lewis Carroll.

• Lahko ustvarite povsem nesmiselne besede, ki so sestavljene iz očitno “naključnih” znakov, vendar jih je enostavno zapomniti. Na primer, “ilro” bi lahko stali za “I love RISC OS”.

• Upoštevajte, da lahko uporabljate vse znake ASCII, ki jih je mogoče natisniti, in ne samo tiste, ki se prikažejo na tipkovnici. Na primer, simbol za zaščito avtorskih pravic © lahko dobite v računalnikih RISC OS, tako da pritisnete tipko ALT, vnesete 169 na številčnico in nato spustite ALT ključ. Podrobnosti o tem, kako priti do vseh takih znakov, najdete v uporabniškem priročniku vašega računalnika.

• Besedne besede lahko prikrijete s čudnimi in nepričakovanimi napisi. Na primer, besedo “računalnik” lahko spremenite v “komputta”.

• Slovarske besede se lahko skrijejo tudi z uporabo dodatnih prostorov ali izpuščanja prostorov, kot v “com puter” ali “Acorncomputer”.

• Predlagane tehnike postanejo še učinkovitejše, če se uporabljajo v kombinaciji. Primer je lahko beseda “MY2c0mputas @ home”.

Kako zapomniti svoje geslo?

Večina strokovnjakov s področja varnosti se strinja, da ni smiselno uporabiti istega gesla za vsak namen. Če je kateri koli od njih nekako ogrožen, bi lahko nekoga omogočil dostop do vseh vaših varnih računov ali programov. Lahko je tvegano, da vsa jajca postavite v eno košaro!

To postavlja vprašanje, kako zapomniti vsa vaša gesla ali gesla. Morda imate na desetine ali celo stotine, še posebej, če imate račune na številnih spletnih mestih.

Ena od rešitev je, da vse svoje gesla hranite v eni datoteki, ki je sama šifrirana z enim močnim glavnim geslom. Na tem spletnem mestu so na voljo številni programi za šifriranje, kateri koli od njih pa lahko uporabite za šifriranje vašega seznama gesel.

Zadnja beseda nasveta: Karkoli počnete, nikoli ne zapišite svojih gesel ali jih shranite v poljubno besedilno datoteko. Če ste, zahtevate težave. Vaši gesla bi morali obstajati samo v vaši glavi ali samo v šifrirani obliki!