Ko ustvariš račun v storitvi za zasebno sporočanje, si običajno izbereš geslo. Do tukaj je vse normalno. Tisto, kar ni tako normalno, je to, kar se dogaja spodaj.
V večini storitev je tvoje geslo ključ za vse. Če ga izgubiš, izgubiš dostop. Če ti ga ukradejo, izgubiš vse. Svojo identiteto, svoja sporočila, svoje datoteke. Vse je odvisno od ene same stvari, ki si jo napisal s tipkovnico nekega torkovega popoldneva.
24 besed deluje drugače. Niso geslo, ki si ga izbereš sam. So ključ, ki ga sistem generira naključno, z 256 biti realne entropije. Da si boš lažje predstavljal: za razbitje tega ključa s surovno silo bi bilo potrebno več energije, kot je bo sonce proizvedlo v vsem svojem življenju. To ni metafora. Je matematični izračun.
Dva ključa za dvoja vrata
Tvoje geslo te poveže s storitvijo. Je ključ za vhodna vrata. Če ga pozabiš, lahko vstopiš skozi stranska vrata s svojimi 24 besedami. Če ti geslo ukradejo, ga lahko spremeniš v trenutku, ne da bi se karkoli drugega spremenilo.
Tvojih 24 besed je nekaj drugega. So predstavitev tvojega glavnega ključa. Ključa, iz katerega izhaja tvoja kriptografska identiteta, tistega, ki ščiti tvoje podatke, tistega, ki te identificira pred tvojimi kontakti. Če izgubiš 24 besed in tudi geslo, so tvoji podatki neobnovljivi. Kot pri Bitcoinu. In to je, čeprav se sliši trdo, natanko tisto, kar si želiš od varnega sistema.
Ker je alternativa ta, da bi nekdo lahko obnovil tvoje podatke namesto tebe. In če nekdo lahko obnovi tvoje podatke, lahko do njih tudi dostopa.
Papir šteje
Zapiši si svojih 24 besed na papir. Pravi papir, tistega klasičnega. Shrani ga na varnem mestu. Ne v telefonu, ne v digitalni beležki, ne v e-pošti samemu sebi. Papir v predalu, v sefu ali tam, kjer hraniš stvari, ki so pomembne.
Morda se sliši zastarelo. Vendar papirja ni mogoče hackati na daljavo, ni ga mogoče prestreči prek interneta in ne potrebuje baterije. Včasih je najstarejša tehnologija najvarnejša.
Za tiste, ki želijo poglobiti znanje
24 besed sledi standardu BIP39, ki ga uporabljajo Bitcoin denarnice. Predstavljajo 256 bitov entropije, ki jo generira CSPRNG operacijskega sistema (crypto.getRandomValues). Iz teh 256 bitov se izpelje identiteti ključ (Ed25519 za podpis + X25519 za izmenjavo) prek HKDF-SHA256 z ločitvijo domene (domain separation). Geslo ta ključ ovije (wrap) z Argon2id + AES-256-GCM, preden ga pošlje na strežnik. Strežnik shrani šifriran blob, vendar ga ne more prebrati.