MeldID: ühest kontost digitaalse juurdepääsu haldamise süsteemiks
Kui ma tutvustasin esimest korda MeldID-d, tajusin seda eelkõige ühetaolise digitaalse identimise teenusena. Nüüd on projektil olemas rakendused iPhone’i ja Androidi jaoks, mis ühendavad offline-autentikaatori TOTP, automaatse andmete taastamise seadmetevahel ning sisselogimise kinnitamise ühendatud teenustes.
Kui ma esimest korda nendesin MeldID-d, tajusin seda eelkõige ühetaolise digitaalse identimise infrastruktuurina. Kasutaja loob ühe konto, täidab hallatava profiili ning seejärel saab seda kasutada erinevates rakendustes — sisse loginimiseks ja lubatud andmete edastamiseks ilma sama vormi pideva täitmiseta.
Ootasin, et edasine areng läheb just profiilide ja ühendatud teenuste suunas. Kuid projekt hakkas kiiresti muutuma peaaegu märkamatust server-infrastruktuurist igapäevatöövahendiks juurdepääsude haldamiseks.
Järgmiseks sammuks said iPhone’i ja Androidi rakendused. Siin on eriti huvitav mitte niivõrd mobiilirakenduse välimus, kuivõrd selle ühendatud funktsioonid.
Tavapärane TOTP — teise ülesandega
Rakenduses on generaator ühekordsete koodide jaoks TOTP — need muutuvad numbrid, mida kasutatakse kahefaktorilise autentimise jaoks.
Stanži standard ei esitleta enda leiutisena. Kasutaja lisab konto ning saab koodi, mida saab kasutada kolmanda osapoole teenuses või veebilehel.
Enamik autentijaid vastab küsimusele: «Kuidas näidata kuusikohalist koodi?» Siin lahendatakse laiem ülesanne: kuidas turvaliselt hallata TOTP- salve — alates lisamisest ja salvestamisest kuni taastamise ja kustutamiseni kahel seadmel.
Omapärane offline-olek on täielikult töökorras
Alguses tundub suurim eelis lihtsalt kohaliku koodigeneraatorina. Kuid MeldID puhul hõlmab offline-olek enamat.
Juba salvestatud kirjed töötavad edasi ilma internetita. Koodid luuakse otse telefonis, seega ajutine ühenduse puudumine ei takista kahefaktorilist kontrolli läbimast.
Uus TOTP-kirje saab samuti offline lisada. See salvestatakse kohalikult ning kasutatakse kohe koodide genereerimiseks. Kui internetiühendus taastub, saadetakse lisamine automaatselt kaitstud hoiukohta ning sünkroniseeritakse teiste seadmetega.
Redigeerimine ja kustutamine juba sünkroniseeritud kirjetest vajavad ühendust serveriga. See tagab, et erinevatel telefonidel ei tekiks vastuolulisi versioone ühest hoidlast.
Tulemusena saavutatakse tasakaal: põhilised toimingud on saadaval ilma võrguühenduseta ning muudatused, mis peavad kehtima kõikidel seadmetel, tehakse pärast uuesti ühenduse loomist.
Uus telefon ei tähenda uut koodi
Kõige tüütum probleem mis tahes autentija puhul tekib pärast telefoni kaotsiminekut, rikke või vahetust. Tavalistes tingimustes tuleb otsida varukoode, käsitsi üle kanda kirjeid või uuesti siduda rakendus iga teenusega.
Siin on hoidla seotud mitte konkreetselt seadmega, vaid MeldID kontoga. Pärast sisse logimist uuel telefonil ning kaitstud hoiuruumi initsialiseerimist taastuvad kirjed automaatselt.
Ei ole vahet, kas eelmine seade oli Android või iPhone ning uue seade — vastupidi. Võib ühendada teise, kolmanda ja mitme järgneva telefoni, ilma et peaks iga platvormi jaoks eraldi andmekandjat üle viima.
Ühel telefonil saab kasutada mitut erinevat MeldID kontot. Nende hoidlad jäävad eraldatuks: ühe konto kirjed ei segune teisega ning neid ei ilmu seadmesse ilma vastava autentsuseta.
Mida hoitakse serveris
Automaatne taastamine tähendab, et andmed peavad kusagil salvestuma. Kuid TOTP-sekrete ei salvestata andmebaasis avatud kujul.
Sisu asetatakse krüpteeritud konteinerisse. Hetkel kasutusel olev arhitektuur kasutab autentitud AES-256-GCM krüptimist ning kaitstud hoidla võti on eraldatud andmebaasist.
Selle tõttu ei muutu andmebaasi lekkimine valmis salasüsteemiks, mis võimaldaks koodiallikaid genereerida. Kurjategija saab ainult krüpteeritud plokid, mitte avatud TOTP-andmed.
Oluline on mitte anda absoluutseid lubadusi. Tegelikult: avalikud TOTP-sekreedid andmebaasis ei salvestata ning üksikud koopiad andmebaasist ei ole piisavad nende kasutamiseks.
Sisselogimise kinnitamine MeldID abil
Teine oluline funktsioon rakenduses on Login Approval, ehk sisselogimise kinnitamine eraldi.
Kui veebileht või rakendus toetab MeldID-d, võib kasutaja ühe toiminguga alustada sisselogimist oma kontoga. Kui kaitse on sisse lülitatud, ei ole autentimine lõplik enne, kui seda kinnitab usaldusväärne mobiilseade.
Päringut saab heakskiita, kui sisselogimine oli tõepoolest kasutaja algatatud, või lükata tagasi, kui tegevus näib ootamatu.
Erinevalt tavapärast push-kinnitamisest on Login Approval otseselt integreeritud MeldID arhitektuuri ning on kõigi selle identimissüsteemiga ühendatud teenuste kasutuses.
Push siin toimib ainult teavituse saatjana uue tegevuse kohta. Selles ei ole parooli, TOTP-koodi, tokenit ega muid kasutamiseks sobivaid andmeid.
TOTP ja Login Approval täiendavad üksteist
TOTP jääb universaalseks standardiks ning töötab ka siis, kui teenused ei tunne MeldID-d. Pärast kirje laadimist genereeritakse koodid kohapeal.
Login Approval on vajalik siis, kui autentimine toimub MeldID kaudu. See lisab teadliku tegevuse ja võimaldab peatada katsed enne sessiooni loomist.
Seega võib rakendus olla tavaline autentija välisel veebilehel ning samal ajal kinnitamiseks kasutatava sisselogimise vahend ühendatud süsteemis.
Mida on muutunud ennast MeldID-s
Esimest korda projekti hinnates nägin selle põhieesmärgiks ühetaolise konto juhtimise ja transportiva profiili. Nüüd on tõsiselt märgata, et MeldID hakkab aegamisi arenema isiklikuks digitaalse juurdepääsu juhtimiskeskuseks.
Seda teha saab:
saada TOTP-koode ka ilma internetita;
lisada uusi kirjeid offline-olekus;
automaatne taastamine uuel seadmel;
mitme telefoni kasutamine;
mitme konto eraldamine samal seadmel;
uute sisselogimiste kinnitamine või lükkamine tagasi.
Selle rakenduse väärtus ei seisne ainult selles, et ta näitab kuusikohalist koodi. Selle ülesandeks on laiem: säilitada juurdepääs seadme vahetamisel, mitte kaotada andmeid ilma võrguta ning pakkuda omanikule viimast teadlikku valikut enne uue sessiooni loomist.
Turvalisus ei põhine ühel mehhanismil vaid kogu lahenduste kogumil: TOTP-sekreedid ei salvestata avalikult, ligipääs ei ole ajaliselt seotud ühe seadmega, erinevad kontod jäävad eraldatuks ning ühendatud teenuste sisse logimine lükatakse edasi kuni usaldusväärse seadmega kinnitamiseni.