MeldID: från ett enda konto till ett system för digital åtkomsthantering
När jag först blev bekant med MeldID såg jag det främst som en tjänst för enhetlig digital identifikation. Nu har projektet fått tillämpningar för iPhone och Android, som kombinerar offline-autentiserare TOTP, automatisk dataåterställning mellan enheter och bekräftelse av inloggningar i anslutna tjänster.
När jag först granskade MeldID uppfattade jag det främst som en infrastruktur för enhetlig digital identitet. Användaren skapar ett enda konto, fyller i en hanterbar profil och kan sedan använda den i olika appar — för inloggning och överföring av tillåtna data utan att ständigt behöva fylla i samma formulär.
Jag förväntade mig att den vidare utvecklingen skulle gå just i riktning av profiler och anslutna tjänster. Men projektet började snabbt omvandlas från en knappt märkt serverinfrastruktur till ett vardagligt verktyg för åtkomsthantering.
Det nästa steget blev appar för iPhone och Android. Och här är det särskilt intressant inte själva lanseringen av den mobila klienten, utan vilka uppgifter den kunnat integrera.
Vanlig TOTP — med ett annat syfte
I appen finns en generator för engångskoder TOTP — de där snabba förändrade siffrorna som används för tvåfaktorsautentisering.
Standarden i sig presenteras inte som en egen uppfinning. Användaren lägger till ett konto och får en kod som kan användas i tredje parts tjänster eller på webbplatser.
De flesta autentiserare svarar på frågan: ”Hur visar jag en sexsiffrig kod?” Här hanteras ett mer omfattande problem: hur man säkert styr TOTP-hemligheter — från tillägg och lagring till återställning på annan enhet och borttagning av poster.
Offline-läge fungerar fullt ut
Vid första anblick kan huvudfördelen tyckas vara lokal generering av koder. Men i MeldID innebär offline-läge mer än så.
Redan sparade poster fungerar vidare utan internet. Koder genereras direkt i telefonen, så tillfälligt avbrott i anslutningen hindrar inte tvåfaktorskontrollen.
Även en ny TOTP-post kan läggas till offline. Den lagras lokalt och används direkt för att generera koder. När internet kopplas in automatiskt skickas den till ett säkert lagringsutrymme och synkroniseras med andra enheter.
Redigering och borttagning av redan synkroniserade poster kräver anslutning till servern. Detta förhindrar att olika versioner av samma datalagring finns på olika telefoner.
Det ger en balans: huvudfunktionerna är tillgängliga utan nätverk, och ändringar som måste tillämpas identiskt på alla enheter görs först när man är online igen.
En ny telefon betyder inte ett nytt koduppsättning
Det mest irriterande för en autentiserare är att tappa, bli av med eller byta telefon. Vanligtvis måste man söka reservkoder, manuellt överföra poster eller knyta om appen till varje tjänst.
Här är lagringen inte knuten till en specifik enhet, utan till MeldID-kontot. Efter inloggning på en ny telefon och initiering av det skyddade lagringsutrymmet återställs posterna automatiskt.
Det spelar ingen roll om den tidigare enheten hade Android och den nya iPhone, eller tvärtom. Man kan ansluta andra, tredje och fler mobiltelefoner utan att behöva skapa en separat flyttprocess för varje plattform.
Anta att smarttelefonen oväntat går sönder under en resa. Istället för att återställa åtkomst separat i varje tjänst loggar användaren in i MeldID på den nya enheten och slutför inställningen av lagringen. Därefter återställs hans TOTP-poster i appen.
Man kan använda flera olika MeldID-konton på en och samma telefon. Deras lagringsutrymmen förblir separata: poster från ett konto blandas inte med data från ett annat och visas inte på enheten utan riktig behörighet.
Vad som lagras på servern
Automatisk återställning innebär att data måste finnas någonstans. Men TOTP-hemligheter lagras inte i databasen i klartext.
Innehållet i posten placeras i ett krypterat containerformat. Den nuvarande arkitekturen använder autentiserad kryptering AES-256-GCM, och nyckeln till det säkra lagringsutrymmet är separat från själva databasen.
Därför kan inte en databasläcka direkt ge tillgång till generering av koder. En angripare får krypterade block, inte öppna TOTP-data.
Det är viktigt att inte ge absoluta löften. Mer precist: öppna TOTP-hemligheter lagras inte i databasen, och en kopia av databasen räcker inte för att använda dem.
Bekräftelse av inloggning via MeldID
En annan viktig funktion i appen är Login Approval, alltså ett separat godkännande av inloggning.
Om en webbplats eller app stöder MeldID kan användaren med ett klick initiera inloggningen med sitt konto. När skyddet är aktiverat är inte bara autentiseringen godkänd — inloggningen är först klar när den bekräftas på en betrodd mobil enhet.
Begäran kan godkännas om inloggningen faktiskt startades av användaren själv, eller avslås om operationen verkar oväntad.
Till skillnad från en vanlig push-bekräftelse är Login Approval inbyggt i MeldID-arkitekturen och kan användas av alla tjänster kopplade till detta identitetssystem.
Push används enbart som en notifikation om att en ny operation har initierats. Den innehåller inget lösenord, TOTP-kod, token eller annan data som kan användas för att autentisera.
TOTP och Login Approval kompletterar varandra
TOTP är ett universellt standard och fungerar även i tjänster som inte känner till MeldID. Efter att posten laddats genereras koder lokalt.
Login Approval behövs där själva inloggningen sker via MeldID. Den tillför en medveten handling av användaren och kan stoppa ett försök innan en session skapas.
Detta innebär att appen kan fungera både som en vanlig autentiserare för tredje parts webbplatser och som ett verktyg för att bekräfta inloggningar i anslutna system.
Vad som har förändrats i själva MeldID
När jag först lärde känna projektet var dess huvudsakliga idé att hantera ett enda konto och ett bärbart profil. Nu är det tydligt att MeldID successivt utvecklas till ett personligt centrum för digitalt åtkomstskydd.
Här kan man:
få TOTP-koder offline;
lägga till nya poster i offlineläge;
automatisk återställning på nya enheter;
använda flera telefoner;
skilja flera konton på samma enhet;
bekräfta eller avvisa nya inloggningar.
Appens värde ligger därför inte i att den kan visa en sexsiffrig kod. Dess bredare uppgift är att behålla åtkomst vid enhetsskylt byten, inte förlora data utan nätverk och ge ägaren det sista medvetna valet innan en ny session startas.
Säkerheten bygger inte enbart på en mekanism, utan på en helhetslösning: TOTP-hemligheter lagras inte i klartext, åtkomsten är inte permanent knuten till en telefon, olika konton förblir isolerade från varandra, och inloggningen i stödda tjänster är endast möjlig efter bekräftelse på en betrodd enhet.