Postoji rečenica koju često ponavljamo kad govorimo o Cashfulnessu.
„Ne vidimo tvoje dokumente.”
To je jednostavna rečenica za izgovoriti. Mnoge aplikacije je izgovaraju.
Bit je u tome što stoji iza te rečenice. Jer „ne gledamo ih” i „ne možemo ih gledati” dva su vrlo različita obećanja.
Prvo je obećanje dobre volje: vjerujemo da to nećeš učiniti.
Drugo je obećanje nemogućnosti: čak i kad bi htio, ne možeš.
U Cashfulnessu, za dokumente koje učitavaš, vrijedi drugo. A tehnički izraz koji to čini istinitim zove se end-to-end enkripcija.
Na engleskom je pronalaziš skraćenu kao E2EE, od end-to-end encryption: enkripcija „od jednog kraja do drugog”.
Znam da to zvuči kao govor informatičara. Obećavam: na kraju ovog članka razumjet ćeš to čak i ako u životu nisi napisao nijedan redak koda. I razumjet ćeš zašto je to, za aplikaciju u kojoj čuvaš brojke svog kućanstva, odluka koja mijenja sve.
Prvo, prave riječi
Krenimo od glagola. Enkriptirati datoteku znači pretvoriti je u nečitljiv niz.
Ne sakriti je iza lozinke koja pita „pusti me unutra”. Nego je stvarno pretvoriti: uzeti tekst, brojke, slike, i svesti ih na blok znakova koji ništa ne znači onome tko nema pravi ključ.
Ono što taj blok vraća u čitljiv oblik zove se ključ. To je komadić informacije — zamisli ga kao vrlo, vrlo dugu lozinku koju generira računalo — bez kojeg datoteka ostaje šum.
Ključem enkriptiraš. Ključem dekriptiraš. Bez ključa: zid.
Zapamti te dvije riječi — enkriptirati i ključ — jer se sve ostalo vrti oko toga gdje ključ živi.
Sef u banci
Navest ću primjer koji, po meni, sve razjašnjava.
Znaš li za bankovne sefove? One u koje ljudi stavljaju važne dokumente, poneki nakit, stvari koje ne žele držati kod kuće.
Funkcioniraju ovako.
Banka ti daje oklopljeni trezor, čuvan, otporan na lopove. Unutra je tvoj sef.
Ali ključ tvog sefa imaš ti. Samo ti.
Banka čuva trezor. Ne može otvoriti tvoj sef. Nema ključ. Kad bi sutra nepošten zaposlenik htio zaviriti, ne bi mogao: brava se ne otvara bez tvog ključa. Kad bi provalnici upali i odnijeli cijeli trezor, u rukama bi im ostala zatvorena metalna kutija koju ne znaju otvoriti.
Banka ti nudi uslugu — sigurnost trezora — bez zahtijevanja pristupa onome što staviš unutra.
End-to-end enkripcija upravo je to, primijenjena na digitalne datoteke.
Cashfulness je banka: nudi ti trezor, odnosno naše poslužitelje na kojima se čuvaju tvoji dokumenti.
Ti si jedini koji ima ključ sefa.
A mi, poput banke, čuvamo bez mogućnosti otvaranja.
Što se, u praksi, događa kad učitaš dokument
Recimo da želiš u Cashfulnessu čuvati bankovni izvadak, račun za struju, ugovor o najmu, policu osiguranja.
To su dokumenti koje možeš učitati u Cashfulness: izvadci, računi, ugovori, police. Stvari pune tvojih podataka — puno ime, adresa, IBAN, iznosi, druge ugovorne strane.
Evo redoslijeda.
Odabireš datoteku s telefona ili računala.
Prije nego što krene, još na tvom uređaju, dokument se enkriptira. Postaje onaj blok šuma o kojem sam govorio.
Tek nakon toga, već enkriptiran, putuje prema našim poslužiteljima.
Na poslužitelj stiže šum. Na poslužitelju ostaje šum.
Kad ga ti želiš ponovno pročitati, dokument se vraća na tvoj uređaj još uvijek enkriptiran, i ondje — samo ondje, s tvojim ključem — ponovno postaje čitljiv.
Trenutak enkripcije važan je dio: događa se kod tebe, prije polaska. Ne „čim stigne na poslužitelj, mi ga zaključamo za tebe”. To bi bila banka koja čuva presliku tvog ključa u ravnateljevoj ladici.
Ne. Ključ nikad nismo imali. Rađa se kod tebe i ostaje kod tebe.
Gdje živi tvoj ključ
Opravdano pitanje u ovom trenutku: a ako izgubim taj blagoslovljeni ključ? Gdje ga čuvam?
Ključ tvojih dokumenata rađa se iz dvije tvoje stvari.
Prva je tvoja lozinka, ona kojom ulaziš u Cashfulness.
Druga je niz od 24 riječi koje dobiješ kad aktiviraš ovu zaštitu. To je sustav koji se koristi i drugdje za čuvanje najosjetljivijih ključeva — dvadeset i četiri obične riječi, u određenom redoslijedu, koje zajedno funkcioniraju kao glavni ključ za oporavak.
Iz te dvije stvari, na tvom uređaju, gradi se ključ koji enkriptira i dekriptira tvoje dokumente.
I ovdje dolazi točka koja opravdava cijeli članak: taj ključ nikad ne napušta tvoj uređaj.
Ne prolazi kroz naše poslužitelje. Ne spremamo ga nigdje. Ne vidimo ga kako prolazi.
Kao da se ključ sefa kuje unutar tvog doma, tobom, i nikad iz njega ne izlazi. Banka ga nikad nije vidjela, ni na trenutak.
Za naše poslužitelje, ponavljam, svaki tvoj dokument jest i ostaje blok digitalnog šuma.
Tko ne može pročitati tvoje dokumente (dakle: svi osim tebe)
Pokušat ću biti izričit, jer obično se upravo tu obećanje privatnosti ili održi ili se ispuše.
Tvoje učitane dokumente ne možemo pročitati mi koji smo izgradili Cashfulness. Nema nigdje ploče na kojoj naš tehničar otvara tvoju policu. Tehnički to ne postoji, jer nemamo ključ.
Ne može ih pročitati onaj tko upravlja poslužiteljima na kojima rade podaci.
Ne bi ih mogao pročitati napadač koji bi jednog dana probio naše sustave i odnio sve: u rukama bi mu ostao šum, neupotrebljive datoteke.
I ne bismo ih mogli predati čitljive čak ni kad bi ih tijelo vlasti službeno zatražilo, jer ih nemamo u čitljivom obliku. Možemo predati samo šum koji čuvamo.
Rečenica „ne vidimo tvoje dokumente” u ovom trenutku prestaje biti ljubazno umirivanje.
Postaje tehnički opis činjenice.
Ne vidimo ih jer ne možemo. To je razlika.
Druga strana medalje (i to ti želim reći ja, unaprijed)
Tako čvrsta zaštita ima svoju cijenu, i bilo bi nepošteno to skrivati.
Ako izgubiš svoju lozinku i izgubiš i svojih 24 riječi za oporavak, tvoji dokumenti postaju nečitljivi. Zauvijek. Čak i za nas.
Ne postoji gumb „sve sam zaboravio, pošaljite mi datoteke natrag”. Ne postoji naš tehničar koji bi mogao ući kroz prozor i vratiti ti ih.
Vratimo se sefu u banci: ako izgubiš svoj ključ i nitko drugi nema presliku, unutar sefa ostaje sve, ali ga više nitko ne otvara.
Razumijem da ovako izrečeno može izazvati malo tjeskobe. Ali pogledaj to s druge strane, koja je razlog zašto smo to odabrali.
Kad bi negdje postojala „sigurnosna kopija” tvog ključa — na našem poslužitelju, u ravnateljevoj ladici — ta bi kopija bila slaba točka cijelog sustava. Bila bi to prva stvar koju bi napadač tražio. Bila bi to vrata koja bi tijelo vlasti moglo tražiti od nas da otvorimo. Bila bi to datoteka koju bi nepošten zaposlenik mogao kopirati sebi.
Ključ koji postoji samo na tvom uređaju ta vrata jednostavno ne otvara.
Odlučili smo ti dati potpunu kontrolu — s teretom koji to nosi — umjesto da zadržimo prečac koji bi prije ili kasnije postao rupa u nasipu.
Praktičan gest koji tražimo od tebe zauzvrat samo je jedan: čuvaj svojih 24 riječi kao što bi čuvao vlasnički list svog stana. Zapisane, na sigurnom mjestu, daleko od tuđih očiju. Ne u e-mailu samom sebi, ne u bilješci na telefonu. Tih 24 riječi jesu rezervna kopija tvog ključa. Čuvaj ih kao što čuvaš stvari koje su ti važne.
Iskreno pojašnjenje: E2EE ovdje pokriva dokumente
Ne želim ti prodati više nego što ima, jer bi to bilo suprotno svemu ovom članku.
End-to-end enkripcija o kojoj sam ti govorio štiti dokumente koje učitavaš: izvadke, račune, ugovore, police. To je najosjetljivija razina, i tu smo stavili najčvršću bravu.
Tvoji pravi računovodstveni podaci — računi, salda, promjene koje čine tvoju poziciju, odnosno tvoju neto vrijednost — slijede pak drugačiju logiku.
Žive u našoj bazi podataka, na europskim poslužiteljima, i na strani poslužitelja su u čitljivom obliku. To je nužna tehnička odluka: potrebni su da bi tvoje knjigovodstvo ostalo usklađeno između telefona i računala, i da bismo u stvarnom vremenu izračunavali metrike koje ti prikazujemo. Da smo ih enkriptirali na potpuno isti način kao dokumente, aplikacija bi postala izuzetno spora i praktički neupotrebljiva.
Ali — i tu dolazi dio koji mnogi ne očekuju — ti brojevi putuju bez tvoje biografije zalijepljene za sebe.
Kad se registriraš, tražimo nadimak (kakav god želiš, čak i izmišljen), e-mail i lozinku. Ne tražimo ime, prezime, OIB, datum rođenja, adresu, telefon.
Tako bi čak i onaj tko bi dobio pristup bazi podataka vidio određeni nadimak s računima, saldima, promjenama — ali bez načina da te brojeve poveže sa stvarnom osobom koja si ti.
O tome kako funkcionira ova druga razina, i zašto smo je izgradili na dvije razine umjesto na jednoj, postoji poseban članak: Radikalna privatnost: dvije razine, jedno jedino obećanje. Ovdje se zaustavljam, jer je današnja tema ključ sefa.
Poanta koju sam htio istaknuti je ova: kad kažemo da end-to-end enkripcija čini tvoje dokumente nečitljivima, govorimo o dokumentima. Za ostalo vrijedi drugačija, jednako ozbiljna zaštita. I radije ću ti to reći sam, precizno, nego te ostaviti da vjeruješ u čarobnu enkripciju koja pokriva sve.
Zašto nam je do sada bilo toliko stalo
Mogao bih ovdje završiti, kod tehnike. Ali tehnika sama po sebi nije razlog.
Razlog je taj što su osobne financije mjesto gdje čuvaš stvari o kojima ne voliš pričati čak ni s prijateljima. Koliko zapravo zarađuješ. Koliko si stavio po strani, ili koliko malo. Dug koji te tereti.
Ako ti, čim otvoriš takvu aplikaciju, ostane u pozadini sumnja da netko, negdje, može pogledati, ta ti aplikacija nikad neće dati ono zbog čega postoji.
Mi tu stvar zovemo mir. The calm side of money, mirna strana novca. A mir, ako tvoji brojevi zapravo nisu sigurni, samo je riječ na stranici.
End-to-end enkripcija dokumenata nije tehnički trofej za izlog. To je pod na kojem stoji sve ostalo: bez nje su metrike i pozicija namještaj postavljen na prazninu.
Zato smo je upisali u temelje, a nismo je dodali naknadno kao još jedan prekidač.
U jednoj rečenici
Ostavljam ti to u najkraćem obliku koji imam.
Svoje dokumente zaključavaš u sef. Ključ sefa imaš samo ti, i on nikad ne napušta tvoj uređaj. Mi čuvamo zaključan sef, i ne možemo ga otvoriti.
Ne zato što smo obećali da ćemo biti dobri.
Nego zato što smo si namjerno oduzeli mogućnost da to ne budemo.
— Vittorio