Skip to content

agecredentialscanner/scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Digital Aldersverifikation og Privatliv

Dette GitHub repository indeholder et simpelt værktøj til at efterprøve hvorvidt en præsentation af et digitalt aldersbevis udstedt via enten e-Boks eller AltID er sporbart, hvilket betyder at man alle steder hvor aldersbeviset er blevet brugt kan se at det er samme person der har brugt det. I skrivende stund er aldersbeviser fra både AltID og e-Boks ikke anonyme, hvilket betyder at den myndighed der har udstedt dem er teknisk set i stand til at koble dem til den borger de er udstedt til, også selvom selve aldersbeviset ikke indeholder personhenførbar data i klartekst. Dette skyldes at hvert aldersbevis er unikt, og at det derfor kun kræver at myndighederne gemmer en database over udstedte aldersbeviser for senere at kunne slå personen som de blev udstedt til op.

Graden af sporbarhed er dog forskellig for e-Boks og AltID. AltID har taget de korrekte foranstaltninger for at forhindre at bevismodtagere (f.eks. værtshuse eller online salgssteder) kan bruge aldersbeviser som tracking cookies til at spore en brugers færden, hvilket reducerer den mulige overvågning til den som myndighederne kan foretage sig. e-Boks lover at gøre det samme, både i deres markedsføring og den tekniske dokumentation fra deres underleverandør dewa, men stik imod dette viser det sig at den løsning de har lanceret er trivielt sporbar, idet en person der aldersverificerer sig med e-Boks vil efterlade sig et spor der kan koble hver præsentation af aldersbeviset sammen. Dette udgør naturligvis en betydelig risiko for brugerne, men det vidner også om en særdeles lemfældig tilgang til datasikkerhed hos e-Boks A/S og et misbrug af den tillid som de fleste borgere i Danmark har til selskabet i kraft af dets rolle som sikker opbevaring af kommunikation fra private virksomheder og det offentlige.

En længere beskrivelse af baggrunden og problemet kan findes i de følgende afsnit. For selv at observere problemet kan du åbne app'en i en browser, enten på en smartphone eller en PC med et webcam. Herefter kan du scanne dit eget eller en andens digitale aldersbevis fra enten e-Boks eller AltID og se det data som hver QR-kode gemmer. Bemærk at du naturligvis ikke kan scanne QR-koder på samme telefon som du har scanner app'en åben på. For e-Boks skal du desuden være opmærksom på at du skal vente i minimum 3 minutter mellem scanningerne for at præsentationen opdateres og problemet bliver synligt. For AltID udløber QR-koden noget hurtigere og skal manuelt genopfriskes.

Bemærk at ingen aldersbeviser forlader din enhed men kun gemmes i din browsers lokale lager.

Eksempel på to præsentationer fra e-Boks der kan kobles til hinanden

Baggrund

Digital aldersverifikation er i fuld gang med at blive en realitet i Danmark og resten af EU, og de første løsninger til formålet er blevet lanceret i form af hhv. e-Boks og AltID der begge kan downloades som apps til Android eller iOS. I skrivende stund tilbyder begge løsninger aldersbeviser i form af QR-koder der kan fremvises til bevismodtagere udstyret med en scanner (f.eks. en smartphone med et kamera), og AltID tilbyder derudover online aldersverifikation hvor aldersbeviset sendes direkte fra brugerens telefon til et websted.

Både AltID og e-Boks fremhæver at deres løsninger er anonyme og ikke tillader sporing af brugernes gøren og laden. For de fleste brugere vil det være svært at efterprøve denne påstand, idet hvert bevis består af hurtigt skiftende QR-koder som for teknisk uindviede ikke giver nogen indsigt i hvad der rent faktisk deles. De privatlivsmæssige egenskaber ved digital aldersverifikation afhænger i høj grad af de tekniske detaljer, og de mere teknisk kyndige kan granske de publicerede beskrivelser for hhv. AltID og e-Boks for at få en ide om hvorvidt designet som udgangspunkt beskytter brugerens privatliv.

Fælles for begge designs er, at de lover at beskytte brugeren mod sporing og læk af private informationer til uvedkommende. Måden de gør dette på er, at en bevismyndighed - i form af enten e-Boks eller Digitaliseringsstyrelsen - først godkender brugeren via eksempelvis MitID, og derefter udsteder et aldersbevis som er digitalt underskrevet af myndigheden, og som indeholder minimum følgende stykker data:

  • Hvorvidt brugeren er over en given alder, f.eks. 27 år (ja/nej)
  • Tidspunktet fra hvornår aldersbeviset gælder og hvor længe.
  • En digital nøgle tilhørende brugeren som beviset er udstedt til. Denne nøgle er typisk gemt i brugerens telefon og kan ikke aflæses og kopieres.
  • Hvilken myndighed der har udstedt beviset, og dennes digitale nøgle.
  • En digital signatur over alt det ovenstående data med myndighedens nøgle.

Når brugeren skal bevise sin alder overfor en bevismodtager - eksempelvis en dørmand - beder brugeren sin telefon om at generere en præsentation af aldersbeviset. Denne består af:

  • Det ovenstående aldersbevis udstedt af myndigheden.
  • En specifikation af en kort tidsperiode på f.eks. 3 minutter i hvilken præsentationen skal betragtes som gyldig.
  • En digital signatur over alt det ovenstående med nøglen som beviset er udstedt til.

Bevismodtageren kan scanne dette med sin telefon som derpå tjekker begge signaturer samt at erklæringen om brugerens alder er til stede.

Trusler og sikkerhed

Der er flere sikkerheds- og privatlivsudfordringer ved en naiv implementation af ovenstående som designdokumenterne for både e-Boks og AltID efterkommer på nogenlunde samme måde.

Kopiering af aldersbeviser

Det vil være et problem hvis en person der ikke er gammel nok blot kan optage en video af en anden persons aldersbevis og bruge det som om det var deres eget. Dette beskyttes der i begge designs imod ved at det kræves at præsentationen skal have en meget kort tidsperiode i hvilken den er gyldig, således at den kopierede præsentation udløber efter ganske få minutter og derefter er ubrugelig. Denne foranstaltning virker under antagelse af at den app der kører på brugerens telefon kan forhindre den digitale nøgle som beviset er udstedt til i at blive kopieret.

Begge apps implementerer denne foranstaltning korrekt, dog er implementationen i e-Boks betydeligt ringere end den i AltID. I AltID skal man eksplicit godkende sig med biometrisk godkendelse hver gang et aldersbevis skal fremvises, og QR-koden er kun synlig i ganske kort tid, hvorefter den forsvinder og beder om ny godkendelse. Det gør det meget tydeligt for brugeren hvornår præsentationen er "frisk" og derfor ikke længere kan kobles sammen med tidligere præsentationer.

I e-Boks tilfælde er det uigennemskueligt hvornår præsentationen genopfriskes, men ved at inspicere data i præsentationen kan man se at det sker ca. hvert 3. minut.

Beskyttelse af personhenførbar data

Begge løsninger lover i designet at de kun inkluderer en enkelt bit af information om brugeren i aldersbeviset, nemlig hvorvidt brugeren er over en given alder eller ej. Dette beskytter brugeren mod at bevismodtagere kan aflæse følsom data som f.eks. navn, fødselsdato eller adresse.

For begge designs er der dog stadig en alvorlig brist, nemlig at myndigheden der har udstedt aldersbeviset kender alle disse oplysninger og i princippet vil være i stand til at udlevere dem hvis de gemmer aldersbeviset efter at det er blevet udstedt eller danner aldersbeviset så identiteten bag effektivt kan rekonstrueres senere. Vi kan sandsynligvis godt stole på at myndighederne ikke vil gøre dette i dag, men visse kritikere vil mene at det er et grundlæggende problem at designet på dette punkt udelukkende beror på tillid og ikke på tekniske garantier, og at det er uigennemskueligt for borgerne hvorvidt løsningen anvendes til overvågning.

Begge apps sørger for at kun aldersinformation kan aflæses som klartekst af bevismodtagere.

Beskyttelse mod sporing

Når en præsentation af et aldersbevis scannes skal det i sagens natur kopieres til bevismodtagerens enhed, og det er umuligt for brugeren at afgøre hvorvidt det bliver slettet igen eller ej. Dette udgør en trussel mod privatlivet idet genbrug af det samme aldersbevis vil kunne koble flere præsentationer sammen og afsløre at det er den samme person der har verificeret sin alder, også selvom personens identitet ikke afsløres. De privatlivsmæssige problemer på dette punkt er sammenlignelige med dem vi kender fra tracking cookies på hjemmesider da det afslører information om brugerens adfærd. Dette kan misbruges af bevismodtagere til at bygge en adfærdsprofil af brugeren, og det kan over tid føre til at brugerens identitet helt afsløres.

Begge løsninger har i designet beskyttet mod dette ved, at myndigheden ikke udsteder et enkelt aldersbevis til genbrug, men i stedet udsteder en stor mængde unikke aldersbeviser der er beregnet til kun at blive præsenteret en gang og derefter smidt væk. På denne måde vil en bevismodtager se et nyt aldersbevis hver gang, og kan derfor ikke se om det kommer fra den samme eller en ny person.

For begge løsninger er der dog her igen den brist at dette kun beskytter imod at bevismodtagere sammenligner aldersbeviser, og ikke imod at myndigheden begynder at indsamle præsentationer fra bevismodtagerne og herigennem sporer borgernes adfærd. Med andre ord, så fjerner de unikke aldersbeviser behovet for tillid til bevismodtagerne, men brugerne er kun beskyttet mod overvågning så længe at de har tillid til at myndighederne ikke bruger løsningen til overvågning.

I praksis implementerer AltID-app'en denne foranstaltning mestendels korrekt, og udsteder et større antal aldersbeviser der ikke synligt har noget data til fælles (men som sagt kan vi ikke vide om Digitaliseringsstyrelsen senere kan koble dem sammen). Det eneste information der tillader bevismodtagere at kæde aldersbeviserne sammen er tidspunktet hvor de er udstedt, men Digitaliseringsstyrelsen sørger for at klokkeslettet altid er sat til midnat for at mindske dette. Med en levetid på en kalendermåned betyder det dog at alle aldersbeviser fordeles på op til 28-31 kasser - én for hver dag i gyldighedsmåneden - hvilket betyder at en bevismodtager med et relativt lille antal brugere potentielt vil kunne bruge udstedelsesdagen som et svagt signal til at skelne dem fra hinanden.

Mere alvorligt beskytter e-Boks dog kun imod sporing på papiret og ikke i praksis, da de slet ikke har implementeret den foranstaltning som ellers er beskrevet i den tekniske dokumentation. e-Boks udsteder kun et enkelt aldersbevis som bruges igen og igen, og det har en lang gyldighedsperiode på seks kalendermåneder i hvilken alle præsentationer trivielt kan kobles sammen, enten ved direkte at sammenligne selve beviset eller via den unikke DID som det indeholder. Det er enten et tegn på inkompetence og/eller ligegyldighed overfor borgernes privatliv at e-Boks A/S har lanceret en løsning med en så åbenlys fejl. Med selv et minimum af den kvalitetskontrol som det forventes er til stede i alle større softwareprojekter skulle denne diskrepans mellem specifikation og implementation være blevet fanget, og der er ganske enkelt ikke en gyldig undskyldning for at dette ikke er blevet gjort.

AI-erklæring

Koden er skrevet med hjælp fra en LLM, men al teksten i dette dokument er skrevet af et menneske.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages