Pređi na vsebino
cutty.dev
All posts

Varnost povezav s geslom — kaj se zgodi, ko kliknete

Svoji kratki povezavi lahko dodate geslo. Pokažemo, kaj se dogaja v ozadju — brez uporabe žargona — in zakaj se sploh spla izda.

Polovica navodil o povezavah s geslom se začne s stavkom, da je to "dodatna plast varnosti". In se tu konča. Po mojem mnenju je to prav najmanj pomembna stvar, ki jo lahko o tem rečemo.

"Varnostna plast" ničesar ne pojasnjuje. Ne pove ti, kaj se zgodi s to geslo, kdo ga vidi, niti kdaj je sploh smiselno. In to so edina vprašanja, ki se jih izda pripračiti, preden klikneš "Dodaj geslo".

Torej po vrstici.

Geslo na povezavi ni isto kot ključavnica na vhodnici

Ljudje si predstavljajo, da geslo neustavljivo zapre povezavo. Tako ni. Varnost povezav z geslom deluje bolj kot vstopnica za koncert: kdo ima vstopnico, ta pride vstopiti. Kdor jo komu podari, bo tudi nekoga spustil vstopiti.

To zveni kot napaka. Ni. Preprosto je treba vedeti, čemu ta mehanizem služi.

Tri situacije, v katerih je res uporabno:

Cenovnik za premium stranke ali dokument v beta različici, preden gre v svet. Brez gesla bo takšna povezava kadar koli v Google ali od roka do roke »prešla skozi roke«.

Vsebina s datumom veljavnosti. Ponudba velja le v petek. Gradivo z konference izključno za udeležence. Geslo ustvari nadzorovan vstop preko povezave — veš, da ga je nekdo prejel od tebe, ne da bi ga našel naključno.

In stvar, ki jo objaviš popolnoma javno, vendar želiš ohraniti nadzor nad situacijo. Povezava lahko kroži. Brez gesla nihče ne bo mogel vstopiti.

In zdaj to, česar ta priročnik ne bi smel zamuditi

Vnesete geslo v obrazec. V istem trenutku izgine. Doslovno. To, da ste nastavili "tajne123", preneha obstajati v berljivi obliki, preden spustite tipko.

Kaj ostane v bazi? Ne geslo. Po njem prstni odtis. Strokovno: hash. Niz znakov, ki ustreza tvojemu geslu le takrat, ko nekdo vnese natanko isto kot ti. Sam po sebi ne razkriva ničesar.

Rekel bom neposredno, ker je to pomembno: jaz, kot vodja storitve, nimem kako prebrati tvojo geslo. Ne zato, ker sem vljuden. Zato, ker fizično ni česa prebrati. Če bi se nekdo vdreli v bazo, bi odnesel le stog teh odtisov in to je vse.

Algoritem, ki to izračuna, je namerno počasen. Vem, da "počasen" zveni kot pritožba, vendar je to prednost. Gre za to, da bi nekdo, ki je ukradel bazo, za ugibanje enega samega gesla moral porabiti absurdno veliko časa. Govorimo o letih, ne o sekundah.

Klik na drugi strani

Nekdo dobi tvojo povezavo in klikne. Namesto da takoj pride do cilja, vidi zaslon: "ta povezava je zaščitena s geslom", polje za vnos, gumb.

Vpiše. Strežnik primerja tisto, kar je vpisal, s shranjenim odtisom. Se ujema? Prejme varnostno ključ (token) za toliko časa, da velja 24 ur. V naslednjih 24 urah se vrne na povezavo brez kakršnega koli vnašanja. Ni perluheta zapomnati, ni perluheta trpeti.

Ne privreti? Napaka. Pet napak iz iste IP naslovne blokira vstop za pet minut. Bot, ki poskuša s serijo gesel prodreti skozi, se zaleti v steno.

Česa tukaj preprosto ni

Ne shranjujemo gesel v obliki čistega besedila. Nikjer. Tudi ne v dnevnikih (logih), ki jih pregledam pri iskanju napak.

Ne pošiljamo gesel po e-pošti. To pomeni, da če kdo pozabi geslo, mu ga ne bom poslal, ker ga ne vem. Sam ga moraš poslati po istem kanalu kot prejšnjič.

In ne prenosamo gesel navzven. Nobena analitika, nošen marketing, nobena AB ne dotika teh podatkov. (To je pravilo, ki velja v celotnem cutty.dev, ne samo tukaj.)

Dve navadi, ki naredita razliko

Prvi: ne izmišljaj gesla iz glave. Ime podjetja plus leto ustanovitve je darilo za vsakogar, ki te pozna. Generator v brskalniku bo v sekundi izločil nekaj boljšega.

Drugi, pomembnejši: gesla ne pošiljajte po istem kanalu kot povezavo. Je povezava šla po e-pošti? Geslo pošljite prek SMS-a. Ali obratno. Smisel je v tem, da prevzem ene pošte nikomur ne omogoči celotnega nabora podatkov.

Drobnjak, za katerega malo kdo ve: lahko naredite nekaj povezav, ki vodijo na isti naslov, vendar z različnimi gesli. Dati dostop petim osebam, vsaka ima svojo povezavo. Se neka od njih poslavlja? Blokirate njeno povezavo, ostali tega niti ne bodo opazili.

Geslo boste spremenili brez ustvarjanja nove povezave. Plošča, "Uredi", novo geslo. Opozorilo: vse aktivne 24-urno seje prenehamo z delovanjem takoj. Vsak mora ponovno vpisati geslo.

Meja, o kateri je vredno vedeti pravočasno

Vrnitev k vstopnici za koncert. Geslo ščiti pred iskalnikom in pred naključnim gostom. Ne ščiti pa pred nekdo, ki geslo pozna in se odloči, da ga bo delil s svetom.

Če tvoj scenarij zveni "to mora videti natančno ta ena oseba in nihče drug", geslo ni dovolj. Tu potrebuješ račune, prijavo, avtorizacijo. Druga liga, druga težava.

Ampak roka navzgor, kako pogosto dejansko imaš tak scenarij? Po mojem izkušnjam redko. V zdecydirani večini primerov gre za preprosto "ne želim, da bi tukaj nekdo prišel s ulice". In na to geslo je dovolj z nadmernostjo.

Če želite videti, kako to izgleda od znotraj — pri ustvarjanju povezave razširite "Napredne možnosti" in označite "Dodaj geslo". Ostalo se zgodi samo.