MeldID: fra enkeltkonto til system til styring af digital adgang
Da jeg først blev bekendt med MeldID, opfattede jeg det primært som en tjeneste for enkel digital identifikation. Nu har projektet introduceret apps til iPhone og Android, som kombinerer offline TOTP-autentifikator, automatisk data-genoprettelse mellem enheder og godkendelse af login til tilsluttede tjenester.
Da jeg først vurderede MeldID, betragtede jeg det primært som en infrastruktur for ensartet digital identifikation. Brugeren opretter én konto, udfylder en administreret profil og kan derefter bruge den i forskellige apps — til login og overførsel af tilladte data uden konstant at skulle udfylde de samme formularer.
Jeg forventede, at den videre udvikling ville gå i retning af profiler og tilsluttede tjenester. Men projektet begyndte hurtigt at forvandle sig fra en næsten usynlig serverinfrastruktur til et dagligt værktøj til adgangsstyring.
Næste skridt var apps til iPhone og Android. Det, der især er interessant, er ikke selve introduktionen af den mobile klient, men de opgaver, den har samlet.
Almindelig TOTP — med en anden opgave
I appen er der en generator for engangs koder TOTP — de skiftende cifre, der anvendes til to-faktor autencitering.
Standarden er ikke opfundet af MeldID. Brugeren tilføjer en konto og får en kode, som kan bruges i en tredjeparts tjeneste eller på en hjemmeside.
De fleste autentifikatorer handler om spørgsmålet: «Hvordan vises en sekscifret kode?» Her løses en større opgave: hvordan man sikkert håndterer livscyklussen for TOTP-hemmeligheder — fra tilføjelse og opbevaring til genoprettelse på en anden enhed og sletning af posten.
Offline-tilstand fungerer fuldt ud
Ved første øjekast virker den største fordel kun til lokal generering af koder. Men i MeldID inkluderer offline-tilstand mere.
Allerede gemte poster fortsætter med at fungere uden internet. Koder genereres direkte på telefonen, så midlertidigt manglende forbindelse hindrer ikke to-faktor kontrol.
Den nye TOTP-post kan også tilføjes offline. Den opbevares lokalt og bruges straks til at generere koder. Når internettet er tilgængeligt, sendes tilføjelsen automatisk til en sikker lagerplads og synkroniseres med andre enheder.
Redigering og sletning af allerede synkroniserede poster kræver forbindelse til serveren. Dette sikrer, at man ikke får forskellige versioner af det samme arkiv på forskellige telefoner.
Resultatet er en balance: de grundlæggende handlinger er tilgængelige offline, mens ændringer, der skal gælde på alle enheder, udføres, når der er forbindelse igen.
Ny telefon betyder ikke ny kode
Det irriterende problem med enhver autentifikator opstår efter tab, skade eller udskiftning af telefonen. I en normal situation skal man finde backup-koder, flytte poster manuelt eller genoprette app'en til hver tjeneste.
Her er lageret knyttet til ikke en bestemt enhed, men til MeldID-kontoen. Efter inlogning på den nye telefon og initialisering af det sikre lager, gendannes posterne automatisk.
Det spiller ingen rolle, om den forrige enhed var på Android, og den nye er iPhone, eller omvendt. Man kan tilslutte flere telefoner uden at skulle lave en separat overførselsproces for hver platform.
Forestil dig, at smartphonen uventet går i stykker under en rejse. I stedet for at genoprette adgang i hver tjeneste, logger brugeren ind i MeldID på den nye enhed og fuldfører opsætningen af lageret. Herefter genvindes TOTP-posterne i appen.
På én telefon kan man bruge flere forskellige MeldID-konti. Deres lagre forbliver adskilte: poster fra én konto blandes ikke med data fra en anden, og de vises ikke på enheden uden korrekt autorisation.
Hvad gemmes på serveren
Automatisk genoprettelse betyder, at data skal opbevares et sted. Men TOTP-hemmeligheder gemmes ikke i databasen i åben tekst.
Indholdet af posten opbevares i en krypteret container. Den nuværende arkitektur anvender autentificeret kryptering AES-256-GCM, og nøglen til det sikre lager er adskilt fra selve databasen.
Derfor bliver en lækage af én database ikke en færdig liste over hemmeligheder til generering af koder. En angriber får krypterede blokke, ikke åbne TOTP-data.
Det er vigtigt ikke at afgive absolutte løfter. Ærligt talt: åbne TOTP-hemmeligheder gemmes ikke i databasen, og en kopi af databasen er ikke tilstrækkelig til at bruge dem.
Godkendelse af login via MeldID
En anden vigtig funktion i appen er Login Approval, altså en separat godkendelse af login.
Hvis et website eller en app understøtter MeldID, kan brugeren med et enkelt klik starte login via sin konto. Når der er aktiveret beskyttelse, er succesfuld autentificering ikke nok: login betragtes først som fuldført, når det er bekræftet på en betroet mobil enhed.
Anmodningen kan godkendes, hvis login faktisk startede af brugeren, eller afvises, hvis det virker uventet.
Modsat den almindelige push-godkendelse er Login Approval integreret direkte i MeldID-arkitekturen og kan anvendes af alle tjenester forbundet med denne identifikationssystem.
Push fungerer her kun som en notifikation om den nye handling. Den indeholder ikke password, TOTP-kode, token eller andre data, der kan bruges til at autorisere.
TOTP og Login Approval supplerer hinanden
TOTP forbliver en universel standard og fungerer også i tjenester, der ikke har kendskab til MeldID. Efter indlæsning af posten genereres koder lokalt.
Login Approval er nødvendig, hvor selve login foregår via MeldID. Det tilføjer en bevidst handling fra brugerens side og giver mulighed for at afbryde forsøget, før der oprettes en session.
Derfor kan appen tjene som en almindelig autentifikator til tredjepartssider og samtidig fungere som bekræftelsesmiddel for login til den tilsluttede tjeneste.
Hvad er ændret i selve MeldID
Da jeg først blev bekendt med projektet, var dets hovedidé at administrere én enkelt konto og et flytbart profil. Nu er det tydeligt, hvordan MeldID gradvist bliver en personlig centralenhed for styring af digital adgang.
Her kan man:
modtage TOTP-koder uden internetforbindelse;
tilføje nye poster offline;
automatisk gendanne dem på en ny enhed;
bruge flere telefoner;
adskille flere konti på én enhed;
godkende eller afvise nye login.
Appens værdi ligger derfor ikke i at vise endnu en sekscifret kode. Dens opgave er bredere — at bevare adgang ved en skift af enhed, ikke miste data uden netværk og give ejeren den sidste bevidste mulighed for valg, inden en ny session oprettes.
Her bygges sikkerheden ikke kun på en enkelt mekanisme, men på en kombination af løsninger: TOTP-hemmeligheder opbevares ikke i åben tekst, adgang er ikke permanent bundet til én telefon, forskellige konti forbliver isolerede, og login til understøttede tjenester afsluttes først efter bekræftelse fra en betroet enhed.