Datalog overhaler det offentlige med egenudviklet NemID-klient: "Vi skal have flere øjne på protokollen"

Den første uofficielle NemID-klient er klar, udviklet af internetaktivist. Men han slipper den kun løs, hvis Nets DanID giver ham lov.

Inden 1. juli vil Digitaliseringsstyrelsen frigive den første NemID-klient, som ikke bruger Java, men det langt mere udbredte Javascript.

Men styrelsen er blevet overhalet inden om af Christian Panton, datalog og medstifter af internet-tænketanken Bitbureauet. Han har nemlig udviklet sin egen NemID-klient i Javascript nu. Den er så vidt han ved den første uofficielle NemID-klient.

»Jeg har rodet lidt med det og ville se, hvor nemt eller svært det var at kode i Javascript, i stedet for at bruge Java. Så jeg har brugt nogle kolde, lange vinternætter på det. Det var mest for at forstå, hvad der sker i hele den proces,« siger han til Version2.

Ved at udvikle sin egen klient, der ikke bruger Java, ville han også kunne undgå alt bøvlet med Java og bruge NemID på flere slags enheder. Men foreløbigt kommer hans hjemmebyggede NemID-klient ikke ud i ’det fri’.

»Jeg har skrevet til DanID for nogle uger siden, men har ikke fået deres godkendelse endnu til at bruge eller offentliggøre min klient. Jeg håber, de giver lov, for jeg synes, det er relevant, at vi kommer ud over Java-problemet, og at vi får nogle flere øjne på den protokol, der ligger bag,« siger Christian Panton, der er datalog og tidligere har demonstreret, hvordan man kunne hacke Rejsekort-systemet.

Da Nets DanID blev taget på sengen af en opdatering fra Oracle, kiggede han også nærmere på NemID-klienten for at se, hvad der blev ændret.

Læs også: DIKU-studerende: Så let er Rejsekortet at hacke

Læs også: Rejsekort-hacker 2 år efter: De har intet lært

Den nyudviklede NemID-klient er lavet som en udvidelse til Chrome, som man som bruger så får tilbudt i stedet for den normale NemID-klient. Christian Panton har dog ikke testet den op mod Nets DanID’s servere, men har i stedet lavet sin egen udgave af en NemID-server.

Hvor svært var det så at udvikle, på en skala fra 1 til 10?

»Det var på 11. Der er brugt rigtig meget obfuscation (forvanskning af koden, red.), som jeg skulle igennem. Selve det at skrive klienten var ikke så svært,« siger Christian Panton.

Fingeraftryk af din computer

Version2 har tidligere skrevet om, hvordan små programfiler skjult som GIF-filer bliver brugt af Nets til at tjekke, hvilken computer klienten kørte på. Det sker ved at tage et ’fingeraftryk’ af computeren med en tjeksum, og det ville Christian Panton også undersøge nærmere.

Læs også: DanID camouflerer programkode på din pc som billedfiler

Læs også: DanID: Ja, vi står bag fire skjulte programfiler i NemID

Dengang fik Nets DanID masser af kritik for at forsøge at skjule, hvad filernes funktion var, en praksis kendt som 'security by obscurity'. Firmaet forsvarede sig med, at der ikke var noget galt i også at bruge røgslør for at gøre det sværere for hackere, så længe sikkerheden også uden røgslør stadig var høj.

Læs også: DanID: Intet underlødigt i 'security by obscurity'

»Det overraskede mig, at de laver tjeksum på din computer, både når man logger på offentlige hjemmesider og på banker. Det troede jeg ikke. Jeg kan til nøds forstå motivationen bag det, når man logger på en bank, fordi de har en risikoanalyse bag og vil vide, hvem der har overført de her penge. Men at man har den slags fingerprinting i det offentlige forstår jeg ikke,« siger Christian Panton.

Han anbefaler at køre NemID-klienten fra Nets i en virtuel maskine, hvis man ikke vil have sin computers fingeraftryk gemt i loggen.

Version2 har spurgt Nets DanID om den officielle holdning til alternative NemID-klienter og afventer svar.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (39)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Jens Larsen

Det er kun en proof-of-concept der udviklet, som ikke er testet op imod de rigtige servere. Så at sige at den løsning artiklen nævner kan bruges endeligt er nok lige at trække den langt nok.

At gå fra proof-of-concept til produktionskode kan være meget meget dyrt.

Mvh.

Henrik Pedersen

Vi kunne give ham imponerende 3500 i timen det næste år (8 timers arbejdsdag), for at få det lavet færdigt. Faktisk synes jeg bare vi skal give ham en million ekstra, til at gå ud og købe øl og damer for, fordi vi alligevel sløser så sindsygt meget med vores fælles-offentlige midler og jeg tusinde gange hellere så dem gå til små firmaer, privatpersoner, eller endda middelstore udviklingshuse, end at de røg ned i de grådige lommer hos Nets (eller CSC & Co.)

Claus Jacobsen

Jens - Du har som sådan ret - men hold nu op hvor kan man trække mange torsk i land for den mængde penge der er til overs. Og direktørene kan virkelig tænke længe over hvad de vil komme med af undskyldninger for selvsamme mængde. (og så er der nok stadig lidt til overs til at færdiggøre koden.)

Johan Brinch

Efter at have kigget på JVM bytekoden og deobfuskeret bootstrap appletten, kan jeg bekræfte, at der er tale om store mængder obfuskering på bytekode-niveau, hvilket er hamrende klamt at grave sig igennem (cue automatisk deobfuskering).

Godt gået.

Jeg glæder mig til at læse et white-paper, der beskriver protokollen ;-)

Henrik Pedersen

Jeg tror desværre ikke du har oplevet hvordan IT verdenen omkring det offentlige virker Christian.

Mine odds er på de får lukket munden på dig med en NDA og trusler om sagsanlæg...

Som minimum tror jeg i hvert fald ikke at de giver nogen som helst accept af din egenudviklede klient. I deres øjne grænser det sikkert til landsforræderi.

Victor Jacobsen

Det har vel kun akademisk interesse med en alternativ klient.

Der næppe nogle tjenesteudbydere som vil anvende software, som ikke er supporteret af Nets DanId - og slet ikke nu hvor der kun er få måneder til den officielle version er klar.

Omkostning er ikke kun til programmering af klient, der følger også en hel del dokumentation, uddannelse af support personale samt omfattende test aktiviteter af både funktionalitet og sikkerhed - og der skal vel også bruges mange ressourcer på at give redegørelser til diverse kontrol instanser...

Christian P. Broe Petersen

Men hvilken forskel skulle det i øvrigt gøre?

Forskellen er vel, at nogen antyder at han bare har lavet noget, som han ikke aner om virkelig virker.

Det er dog ikke det jeg sådan kan læse af artiklen. Hvis det er noget der reelt virker, så er det jo en kæmpe joke set i lyset af de mange mio Nets skulle have for at lave javascript klienten.

Men sådan er det jo ofte - at en eller to ildsjælde kan meget mere end et stort tungt og dyrt firma. Det dyre firma har bare flere slipsedrenge med powerpoints, som kan overbevise om at deres er meget bedre.

Christian Panton

Der næppe nogle tjenesteudbydere som vil anvende software, som ikke er supporteret af Nets DanId

Tjenesteudbyderne er slet ikke blandet ind i det. Mit plugin erstatter dynamisk <applet></applet> i DOM'en når siden renders.

og slet ikke nu hvor der kun er få måneder til den officielle version er klar.

Som tidsplanen ser ud nu kan vi forvente at alle tjenesteudbyderne har udskiftet deres applet kode senest december. Der er længe til. Og holder tidsplanen?

Povl H. Pedersen

Det er klient side kode han erstatter. Det er der vel ikke noget galt i. En 3die parts Java fortolker kunne vel også finde på at udføre koden lidt anderledes end påtænkt, ligesom en opdatering får det til at gå ned.

Der står ingen steder noget om, at man SKAL bruge NemIDs applet for at logge på netbanken, der står bare man skal bruge NemID.

Nu har jeg ikke fritid nok til at gøre det samme, men reverse engineering af kode og protokoller er ikke helt umuligt når man har prøvet det nogle gange. Med Java har jeg ikke været dybere end standard decompilers.

Kan huske med CashCow mod PBS i gamle dage. De havde krav om klient cert på betalinsserveren hos butikken fra Verisign. Men det blev ikke valideret i PBS' ende. Jeg brugte self-signed og sparede $200/år. Der var også andre issues. Har også lige kigget på et Internet enablet alarmsystem der sender username/password i GET URL'en. Og gerne HTTP uden S. Men man kan selvfølgelig opgradere til den nye version der bruger HTTPS. Ikke testet med Subler.

Peter Lind

Kan godt være de finder noget. Men det bliver ikke en NDA


Pointen var nok at de ville finde noget og så true ham til en NDA.

Mht. hvad de finder, så synes jeg at huske at EU har sine egne ret stramme regler omkring reverse engineering af kryptering og software-beskyttelse. Det er ganske tilladt hvis det er nødvendigt for at fikse problemer med noget software man har købt - men der er ikke mange andre undtagelser. Så det er muligt der kommer advokater farende fra den vinkel.

Michael Bisbjerg

Jeg mindes, mht. regler om reverse engineering, at RE er tilladt hvis det er nødvendigt for at få tingene til at virke (ligesom dvd kopi-beskyttelses' brydning).

Så når en Linux/Mac/Windows klient ikke har Java installeret (bare quote en "stram virksomheds sikkerhedspolitik"), så er det "nødvendigt".

Lars Skovlund

For sent. Juristerne vil formentlig pege på denne udtalelse:

»Jeg har rodet lidt med det og ville se, hvor nemt eller svært det var at kode i Javascript, i stedet for at bruge Java. Så jeg har brugt nogle kolde, lange vinternætter på det. Det var mest for at forstå, hvad der sker i hele den proces,« siger han til Version2.

Peter Lind

Så når en Linux/Mac/Windows klient ikke har Java installeret (bare quote en "stram virksomheds sikkerhedspolitik"), så er det "nødvendigt".


Du ville næppe opnå andet eller mere end at din advokat laver head-desk øvelsen, hvis det er dit forsvar. Der er kendte metoder til at håndtere det problem - for ikke at nævne at de relevante myndigheder ikke anerkender at Java udgør en stor sikkerhedsrisiko.

Povl H. Pedersen

Manden har implicit lov til at køre kode på sin maskine der identificerer ham via et NemID API. Hvis vi ikke må det, så må vi ikke bruge NemID. Så der er ikke noget hacking i at køre op mod prod systemet med sit eget ID.

Reverse engineering for at opnå kompatibilitet er en ret man ikke kan opgive. Man skal dog anmode om nødvendig dokumentation først, og kun hvis man ikke kan få dette må man lave Reverse Engineering.

Sune Marcher

Jeg mindes, mht. regler om reverse engineering, at RE er tilladt hvis det er nødvendigt for at få tingene til at virke (ligesom dvd kopi-beskyttelses' brydning).


Tja, MultiAgp aka DVD-Jon aka Jon Lech Johansen fik, på trods af han ikke havde gjort noget ulovligt i forhold til Norks lovgivning, ransaget sit hjem og konfiskeret alle elektroniske devices, fra computer til mobiltelefone... synes også at kunne huske han jokede med at de endda snuppede en tamagotchi.

I en sag om NemID er det godt nok ikke den massive amerikanske medieindustri der invaliderer en nationalstats suverænitet, men banker (samt ansvarlige politikere) kunne godt tænkes ikke at have lyst til at tabe ansigt i så høj grad, at der ville blive presset noget juicy sagsanlæg igennem, hvis Christian forsøger at release kode.

Og hvis de ikke finder noget konkret ulovligt, så er der vel noget terrorsagsgummiparagraf de kan diske op med.

Log ind eller Opret konto for at kommentere