MeldID: od jednotného účtu k systému správy digitálneho prístupu
Keď som sa prvýkrát zoznámil s MeldID, vnímal som ho predovšetkým ako službu jedinej digitálnej identifikácie. Teraz projekt ponúka aplikácie pre iPhone a Android, ktoré spájajú offline autentifikátor TOTP, automatické obnovenie dát medzi zariadeniami a potvrdenie prihlásenia v pripojených službách.
Keď som prvýkrát skúmal MeldID, vnímal som ho predovšetkým ako infraštruktúru jednotnej digitálnej identifikácie. Používateľ si vytvorí jeden účet, vyplní spravovateľný profil a potom ho môže používať v rôznych aplikáciách — na prihlásenie a na odosielanie povolených dát bez neustáleho vypĺňania tých istých formulárov.
Očakával som, že ďalší vývoj pôjde práve v smere profilov a pripojených služieb. No projekt sa rýchlo začal meniť z takmer nepostrehnuteľnej serverovej infraštruktúry na bežný nástroj na správu prístupu.
Ďalším krokom boli aplikácie pre iPhone a Android. A tu je zvlášť zaujímavé nie samotné vzniknutie mobilného klienta, ale aké úlohy sa mu podarilo spojiť.
Bežný TOTP — s inou úlohou
V aplikácii je generátor jednorazových kódov TOTP — tých meniacich sa čísel, ktoré sa používajú na dvojfaktorovú autentifikáciu.
Sám štandard nie je považovaný za vlastný vynález. Používateľ pridá účet a dostane kód, ktorý môže použiť v službe tretej strany alebo na webovej stránke.
Väčšina autentifikátorov odpovedá na otázku: „Ako ukázať šesťmiestny kód?“ Tu je řešená širšia úloha: ako bezpečne spravovať životný cyklus TOTP tajomstiev — od pridania a ukladania až po obnovenie na inom zariadení a vymazanie záznamu.
Offline režim funguje plnohodnotne
Na prvý pohľad sa hlavnou výhodou javí len lokálna generácia kódov. No v MeldID je offline režim oveľa viac.
Už uložené záznamy naďalej fungujú bez internetu. Kódy sa generujú priamo na telefóne, takže dočasná strata spojenia nebráni prejsť dvojfaktorovou kontrolou.
Nový záznam TOTP tiež možno pridať offline. Je uložený lokálne a ihneď používa na generovanie kódov. Po pripojení k internetu sa pridanie automaticky odošle do zabezpečeného úložiska a synchronizuje sa s inými zariadeniami.
Úprava a vymazanie už synchronizovaných záznamov vyžaduje pripojenie na server. To zabraňuje vzniku rôznych verzií rovnakého úložiska na rôznych telefónoch.
Výsledkom je rovnováha: základné akcie sú dostupné bez siete, a zmeny, ktoré musia byť rovnaké pre všetky zariadenia, sa vykonajú po návrate online.
Nový telefón neznamená nový súbor kódov
Najnepríjemnejším problémom akéhokoľvek autentifikátora je strata, poškodenie alebo výmena telefónu. Bežne je potrebné hľadať záložné kódy, ručne prenášať záznamy alebo opätovne prepojiť aplikáciu so službami.
Tu je úložisko späté nie s konkrétnym zariadením, ale s účtom MeldID. Po prihlásení na novom telefóne a inicializácii zabezpečeného úložiska sa záznamy automaticky obnovia.
Nie je dôležité, či bol predchádzajúci prístroj na Androide a nový je iPhone, alebo naopak. Môžete pridať druhý, tretí a ďalšie telefóny bez vytvárania samostatného procesu presunu pre každú platformu.
Povedzme, že počas cesty nečakane pokazí telefón. Namiesto obnovenia prístupu samostatne ku každej službe sa používateľ prihlási do MeldID na novom zariadení a dokončí nastavenie úložiska. Následne sa jeho TOTP záznamy vrátia do aplikácie.
Na jednom telefóne možno používať aj niekoľko rôznych účtov MeldID. Ich úložiská zostávajú oddelené: záznamy jedného účtu sa nemiešajú s údajmi iného a neobjavia sa na zariadení bez príslušnej autorizácie.
Čo sa ukladá na serveri
Automatické obnovenie znamená, že údaje musia niekde byť uložené. No TOTP tajomstvá nie sú uložené v databáze v otvorenej podobe.
Obsah záznamu je uložený v šifrovanom kontajneri. V súčasnej architektúre sa používa autentifikované šifrovanie AES-256-GCM, pričom kľúč zabezpečeného úložiska je oddelený od samotnej databázy.
Preto únik jednej databázy sa nemôže zmeniť na hotový zoznam tajomstiev na generovanie kódov. Útočník získa šifrované bloky, nie otvorené TOTP dáta.
Toto je dôležité nesľubovať absolútne. Presnejšie povedané: otvorené TOTP tajomstvá nie sú v databáze uložené a jedna kópia databázy nestačí na ich využitie.
Potvrdenie prihlásenia pomocou MeldID
Druhou dôležitou funkciou aplikácie je Login Approval, teda samostatné potvrdenie autorizácie.
Ak stránka alebo aplikácia podporuje MeldID, používateľ môže jedným kliknutím začať prihlasovanie cez svoj účet. Pri zapnutej ochrane nestačí len samotné overenie: autorizácia sa považuje za ukončenú až po potvrdení na dôveryhodnom mobilnom zariadení.
Požiadavku možno schváliť, ak je prihlásenie skutočne iniciované používateľom, alebo zamietnuť, ak vyzerá neočakávane.
Na rozdiel od bežného push potvrdenia je Login Approval integrovaný priamo do architektúry MeldID a môže byť použitý všetkými službami pripojenými k tejto identifikačnej systéme.
Push slúži len na upozornenie na novú operáciu. Neobsahuje heslo, TOTP kód, token alebo iné údaje vhodné na autorizáciu.
TOTP a Login Approval sa navzájom dopĺňajú
TOTP zostáva univerzálnym štandardom a funguje aj v službách, ktoré o MeldID nič nevedia. Po načítaní záznamu sa kódy generujú lokálne.
Login Approval je potrebný v prípadoch, keď samotná autorizácia prebieha cez MeldID. Pridáva k prihláseniu vedomú akciu používateľa a umožňuje zastaviť pokus pred vytvorením relácie.
Preto môže byť aplikácia bežným autentifikátorom pre cudzí web a zároveň prostriedkom na potvrdenie prihlásenia do prepojenej systému.
Čo sa zmenilo v samotnom MeldID
Kedy som sa prvýkrát zoznámil s projektom, hlavná myšlienka bola správa jednotného účtu a prenášateľného profilu. Teraz je zrejmé, že MeldID sa postupne mení na osobné centrum správy digitálneho prístupu.
Tu je možné:
získať TOTP kódy bez internetu;
pridať nové záznamy offline;
automaticky ich obnoviť na novom zariadení;
používať niekoľko telefónov;
rozdeliť niekoľko účtov na jednom zariadení;
potvrdzovať alebo odmietať nové prihlásenia.
Hodnota aplikácie teda nespočíva v ukazovaní ďalšieho šesťmiestneho kódu. Jej úlohou je širšia — zachovať prístup pri zmene zariadenia, nestratiť dáta bez siete a poskytnúť vlastníkovi poslednú vedomú voľbu pred vytvorením novej relácie.
Bezpečnosť sa nestaví na jednom mechanizme, ale na súhrne riešení: TOTP tajomstvá sa neukladajú v otvorenej podobe, prístup nie je navždy viazaný na jedno zariadenie, rôzne účty zostávajú izolované od seba a prihlásenie do podporovaných služieb sa ukončuje až po potvrdení dôveryhodným zariadením.