Kun luot tilin yksityisessä viestintäpalvelussa, valitset normaalisti salasanan. Tähän asti kaikki normaalia. Mikä ei ole niin normaalia, on se, mitä tapahtuu pinnan alla.
Useimmissa palveluissa salasanasi on avain kaikkeen. Jos kadotat sen, menetät pääsyn. Jos se varastetaan, menetät kaiken. Identiteettisi, viestisi, tiedostosi. Kaikki riippuu yhdestä asiasta, jonka kirjoitit näppäimistöllä eräänä tiistai-iltapäivänä.
24 sanaa toimivat eri tavalla. Ne eivät ole salasana, jonka sinä valitset. Ne ovat avain, jonka järjestelmä luo satunnaisesti, 256 bitin todellisella entropialla. Havainnollistaakseni: tuon avaimen murtaminen raa'alla voimalla vaatisi enemmän energiaa kuin aurinko tuottaa koko elämänsä aikana. Se ei ole vertauskuva. Se on matemaattinen laskelma.
Kaksi avainta kahdelle ovelle
Salasanasi yhdistää sinut palveluun. Se on etuoven avain. Jos unohdat sen, pääset sisään takaovesta 24 sanallasi. Jos salasanasi varastetaan, voit vaihtaa sen heti ilman, että mikään muu muuttuu.
24 sanaasi ovat jotain muuta. Ne ovat pääavaimesi esitys. Avain, josta kryptografinen identiteettisi johdetaan, joka suojaa tietojasi, joka tunnistaa sinut yhteyshenkilöillesi. Jos menetät 24 sanaa ja myös salasanan, tietosi ovat peruuttamattomasti menetetyt. Kuten Bitcoinissa. Ja se, vaikka kuulostaa kovalta, on juuri sitä, mitä haluat turvalliselta järjestelmältä.
Koska vaihtoehto on, että joku voi palauttaa tietosi puolestasi. Ja jos joku voi palauttaa tietosi, hän voi myös käyttää niitä.
Paperilla on väliä
Kirjoita 24 sanasi paperille. Oikealle paperille, vanhanaikaiselle. Säilytä se turvallisessa paikassa. Ei puhelimessasi, ei digitaalisessa muistiossa, ei itsellesi lähetetyssä sähköpostissa. Paperi laatikossa, kassakaapissa tai missä ikinä säilytät tärkeitä asioita.
Se voi tuntua vanhanaikaiselta. Mutta paperia ei voi hakkeroida etänä, sitä ei voi kaapata internetin kautta eikä se tarvitse akkua. Joskus vanhin teknologia on turvallisin.
Syventymistä haluaville
24 sanaa noudattavat BIP39-standardia, jota käyttävät Bitcoin-lompakot. Ne edustavat 256 bitin entropiaa, jonka käyttöjärjestelmän CSPRNG (crypto.getRandomValues) on luonut. Noista 256 bitistä johdetaan identiteettiavain (Ed25519 allekirjoitukseen + X25519 avainvaihtoon) HKDF-SHA256:lla verkkotunnuserottelulla. Salasana käärii tämän avaimen Argon2id + AES-256-GCM:llä ennen sen lähettämistä palvelimelle. Palvelin tallentaa salatun blobin mutta ei voi lukea sitä.