Kako se razbijejo gesla?
V račune se le redko vdre na način, kot to prikazujejo filmi. V praksi napadalci pridejo do gesla na enega od treh načinov. Geslo je razbito: odkrije se s preizkušanjem enega kandidata za drugim, običajno glede na bazo zgoščenih vrednosti gesel, ukradeno iz storitve. Geslo je ukradeno: vneseno je na lažni spletni strani ali ga prestreže zlonamerna programska oprema. Ali pa je ponovno uporabljeno: napadalci vzamejo geslo iz preteklega razkritja in ga preizkusijo na drugih storitvah, pri čemer računajo na to, da ga je lastnik uporabil tudi tam. Razlika je pomembna, saj proti vsakemu načinu pomaga nekaj drugega. Ta članek obravnava glavne metode in navaja, kaj pomaga proti vsaki od njih.
Ponovno uporabljena gesla iz vdorov v baze podatkov
Vsako leto pride do vdorov v storitve, njihove baze podatkov o uporabnikih pa se znajdejo v prodaji ali se prosto delijo. Napadalci vzamejo pare e-poštnih naslovov in gesel iz enega vdora ter jih samodejno preizkusijo v bankah, pri e-poštnih ponudnikih, v spletnih trgovinah in na družbenih omrežjih — napad, imenovan credential stuffing. Ta postopek ne vključuje nobenega ugibanja in deluje iz preprostega razloga: ljudje gesla ponovno uporabljajo. Tudi močno geslo tukaj ne pomaga, če je povsod enako.
Kaj pomaga: drugačno geslo za vsak račun, tako da vdor v eno storitev ne odpre ničesar drugega.
Lažno predstavljanje (phishing)
Lažna spletna stran je posnetek prave prijavne strani na nekoliko drugačnem naslovu, do katere pridete prek povezave v e-pošti ali sporočilu, ki deluje nujno: blokiran račun, paket, račun. Vse, kar tja vpišete, gre naravnost napadalcu. Dolžina in naključnost gesla pri tem ne igrata nobene vloge, saj ga vnesete sami.
Kaj pomaga: spletna mesta odpirajte iz lastnih zaznamkov in ne prek povezav. Uporabljajte upravitelja gesel: ta ponudi vnos gesla le na naslovu, za katerega je bilo shranjeno, zato, če shranjenega gesla ne ponudi, preverite naslov, preden ga vnesete ročno. In vklopite dvofaktorsko avtentikacijo, zaradi katere samo ukradeno geslo ne zadošča. Vendar pa je mogoče enkratne kode z lažnim predstavljanjem prestreči enako kot samo geslo. Ključev (passkeys) in varnostnih ključev FIDO2 ni mogoče prestreči na ta način, saj se odzivajo le na pristno spletno mesto — razlika, ki jo organizacija NIST označuje kot odpornost proti lažnemu predstavljanju.
Zlonamerna programska oprema
Programi, znani kot infostealerji, kopirajo gesla, shranjena v brskalniku, skupaj s sejnimi piškotki, in jih pošljejo le nekaj sekund po zagonu, medtem ko prestrezniki tipkanja (keyloggerji) beležijo vse, kar natipkate. Ukraden sejni piškotek lahko napadalcu omogoči dostop do že prijavljenega računa brez gesla in brez drugega faktorja. Takšni programi se običajno pojavijo v piratski programski opremi, lažnih posodobitvah in e-poštnih priponkah.
Kaj pomaga: nameščanje programske opreme le iz uradnih virov, redno posodabljanje operacijskega sistema in brskalnika ter previdnost pri vsaki nepričakovani priponki — čeprav nič od tega ni zagotovilo. Če je bila naprava okužena, ukrepajte z druge naprave, za katero veste, da je varna: spremenite gesla, uporabite možnost vsake storitve za odjavo vseh aktivnih sej in preverite, ali so e-poštni naslov za obnovitev, telefonska številka in nastavitve dvofaktorske avtentikacije še vedno vaši. Okuženo napravo očistite, preden se vanjo znova prijavite.
Ugibanje v prijavnem obrazcu
Preizkušanje gesel neposredno na spletnem mestu je počasno: dobro zasnovana storitev po nekaj napačnih poskusih uvede zakasnitev, blokira dostop ali zahteva kodo captcha. Zaradi tega je vztrajno napadanje enega samega računa neučinkovito, zato je pogost ravno nasproten pristop: peščica najpogostejših gesel — 123456, password, qwerty123 — se preizkusi na milijonih računov, kar se imenuje password spraying. Ciljano ugibanje deluje enako z osebnimi podatki: imena otrok in hišnih ljubljenčkov, rojstni dnevi, priljubljena ekipa, kar je vse enostavno najti na družbenih omrežjih.
Kaj pomaga: vsako geslo, ki ni med pogostimi in ni sestavljeno iz podatkov o vas — oglejte si članek kako ustvariti močno geslo.
Razbijanje ukradenih zgoščenih vrednosti brez povezave
Pravilno zgrajena storitev gesel ne hrani v berljivi obliki. Hrani zgoščene vrednosti (hashe) — izhod enosmerne funkcije, iz katere gesla ni mogoče izračunati nazaj. Ko takšna baza uide, napadalci preizkušajo možna gesla: na lastni strojni opremi izračunajo zgoščene vrednosti kandidatov in primerjajo rezultate. Noben prijavni obrazec jih ne upočasnjuje, hitrost pa je odvisna od zgoščevalne funkcije, ki jo je storitev izbrala, in njenih nastavitev. Pri hitrih, zastarelih funkcijah, kot je MD5, ena sama sodobna grafična kartica preizkusi več deset milijard kandidatov na sekundo. Funkcije, zasnovane za shranjevanje gesel — Argon2id ali bcrypt v starejših sistemih —, so namerno počasne in to hitrost zmanjšajo za več redov velikosti, zato jih navajajo trenutna priporočila.
Slovarski napadi
Kandidatna gesla niso naključna. Orodja za razbijanje začnejo s seznami resničnih gesel iz preteklih vdorov ter s slovarji besed in imen, nato pa uporabijo pravila, ki posnemajo človeške navade: velika začetnica, letnica ali klicaj na koncu, črka, zamenjana s podobnim simbolom. Geslo, kot je Summer2024!, deluje zapleteno, vendar je med prvimi preizkušenimi kandidati. Soljenje (salting) — dodajanje edinstvene naključne vrednosti vsakemu geslu pred zgoščevanjem — napadalcem preprečuje uporabo vnaprej izračunanih tabel, znanih kot mavrične tabele (rainbow tables), in razbijanje vseh enakih gesel hkrati, vendar predvidljivega gesla ne naredi nič manj predvidljivega.
Napad s surovo silo
Ko so slovarji izčrpani, preostane le še preizkušanje vsake kombinacije, pri naključno generiranem geslu pa o izidu odloča dolžina. Za ponazoritev vzemimo hitro zgostitev in geslo, pri katerem je vsak znak izbran neodvisno, z enako verjetnostjo, med 94 natisljivimi znaki ASCII, brez presledka. Takšnih gesel z 8 znaki je približno 6 × 1015; pri hitrosti deset milijard ugibanj na sekundo preizkušanje vseh traja približno teden dni, v povprečju pa se pravo geslo najde v polovičnem času. Za 12 znakov bi preizkušanje vseh na enaki strojni opremi trajalo približno 1,5 milijona let, pri 16 znakih pa je ta številka zunaj vsake smiselne primerjave. To je celoten argument za dolga naključna gesla: slovarji so proti njim malo koristni, pod temi predpostavkami pa preizkušanje vseh kombinacij ni praktično izvedljivo. Naš zanesljiv generator gesel jih ustvarja v vašem brskalniku in za vsakega prikazuje oceno entropije v bitih.
Kaj pomaga: dolgo geslo brez človeškega vzorca, kar v praksi pomeni generirano geslo. Način shranjevanja gesla v storitvi ni pod vašim nadzorom, zato predvidevajte najslabše in izberite geslo, ki se upira ugibanju tudi takrat, ko je shranjeno s hitro zgoščevalno funkcijo.
Opazovanje in spraševanje
Najstarejše metode ne potrebujejo nobene tehnologije. Geslo je prebrano čez ramo, z listka na zaslonu ali z deljenega zaslona med videoklicem; ali pa napadalec zanj preprosto vpraša, ko se izdaja za tehnično podporo ali sodelavca — kar imenujemo socialni inženiring. Nobena legitimna storitev od vas nikoli ne bo zahtevala gesla po telefonu, e-pošti ali prek klepeta.
Kaj pomaga: gesla nikoli nikomur ne povejte ali pošljite in ga ne puščajte tam, kjer ga lahko vidijo drugi.
Kaj to pomeni v praksi
Različnim napadom se zoperstavljamo z različnimi navadami, pri čemer tri od njih opravijo večino dela: edinstveno geslo za vsak račun, raje generirano kot izmišljeno, nadgrajeno z dvofaktorsko avtentikacijo — ali ključem (passkey) namesto gesla, kjer storitev to omogoča. Ti ukrepi ne pokrivajo vsega — na primer ukradene seje —, zato so pomembni tudi zgoraj navedeni nasveti glede zlonamerne programske opreme. Več člankov je zbranih v gradivih o geslih.