Kom med dit forslag: Hvem skal kigge i NemID-kildekoden?

DanID er villige til at lade udvalgte personer se på kildekoden til den Java-applet, som bruges til login med NemID. Hvem, synes du, skal hjælpe Version2 med at kigge DanID i kortene?

Hvad gemmer der sig i programkoden til den Java-applet, som danskerne skal bruge for at logge på med NemID fra deres pc?

Det spørgsmål er igen blevet aktuelt, efter Version2 i samarbejde med læserne kunne afsløre, at NemID-appletten camouflerer programfiler på brugerens pc som billedfiler.

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

Derfor spurgte Version2 DanID, om det er muligt at få lov til at se kildekoden til Java-appletten.

I august 2010 sagde DanID, at I var villige til at lade kritikere se på kildekoden - det tilbud står vel stadig ved magt?

»Ja. Samme konditioner som tidligere, altså seriøse henvendelser.«

En af betingelserne er blandt andet, at DanID ikke vil lægge kildekoden ud til frit skue for alle og enhver af hensyn til sikkerheden. Men firmaet tilbød blandt andet, at én af de kritiske organisationer, IT-Politisk Forening, kunne få lov til at se kildekoden hos DanID. Et tilbud som foreningen dog afviste.

Læs også: IT-Politisk Forening stoler ikke på DanID trods kode-striptease

Tilbuddet står stadig ved magt, men hvem, mener du, skal se kildekoden for at kontrollere, at programmet eksempelvis ikke bliver misbrugt til at indsamle personlige oplysninger om brugerne af NemID?

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (51)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Peter Holm Jensen

Kildekoden skal være offentlig, den bedste sikkerhed der findes. Er der smuthuller skal de nok blive fundet. De bliver også fundet hvis koden er fordækt, men da af dem der ikke har rent mel i posen. Noget af det mest sikre der findes er f.eks. ssh, encfs eller trucrypt alle open source projekter.

Niels Didriksen

Ivan Damgaard, Aarhus Universitet...


Hmm.. Hr. Damgård er medejer af en stor underleverandør til DanID på nemid-projektet.

Hvad med at lade lektor og sikkerhedsekspert Joseph Kiniry fra IT-Universitetet samle et hold?

Og derudover mener jeg helt sikkert, at et sikkerhedsreview ikke kun skal dække kildekode til klientent, men bør dække hele systemet fra konceptuelt plan og ned.

Casper Bang

Det var da en god idé - og det kunne endda nok crowd-sources så der kunne arbejdes parallelt med opgaven.

Ja vi skal vel bare bruge en wiki et eller andet sted. De 4 binære (Linux .so, Apple .dylib, Windows COM DLL og .NET dll) er der vel ikke så meget hokus pokus i, de skriver logfilen. Men Java koden er noget snask og første opgave må være at udrede symboltabellen (strengene) og dvs. at rekonstruere Wuddlecahes.

Jesper Lund Stocholm Blogger

Du kan ikke dømme dem uden at kende deres begrundelse for at takke nej. Det kan sagtens være, at de fandt betingelserne uacceptable.


Det er helt korrekt. Jeg har tidligere opfordret netop ITPol til at stille op til sådan en gennemgang. Jeg har også opfordret dem til at stå for gennemgang af den slørede kildekode. Foreningen ville kunne bidrage med tilpas meget troværdighed end mere eller mindre tilfældige debattører på V2 (herunder jeg selv) vil kunne.

Jeg er kun blevet mødt af larmende tavshed fra IT-Pols hjemmeside, og det er super ærgerligt. Her var netop en gylden chance til at demonstrere en smule relevans.

Jonas Finnemann Jensen

Der er ingen måde hvorpå vi kan vide om de giver os den rigtige kode. Det er spild af tid at kigge den efter.

Det er jo ikke fordi jeg tror danID vil mig det ondt, men af princip mener jeg at jeg bør vide hvilken kode der bliver afvilket på min PC.

Og det kan jeg ikke når man anvender "security through obscurity", så er jeg tvunget til at stole på danID, både mht. til nemID og alle de personlige data jeg har på min PC.

Martin Slot

Poul Henning Kamp. Hvorfor? Fordi jeg tror han ville a)gå objektiv ind i sagen b)kan gennemskue kode af værste (slam)skuffe og c)kan skrive om det bagefter på en sådan måde at det ikke bliver langtrukken og kedelig.

Claus Bruun

...har hele konstruktionen så store konsekvenser for hele samfundet at man godt kunne betale en gut som Bruce Schneier for at gå det igennem.

Men så skulle det ikke kun være Javadelen, men hele arkitekturen inklusive OCES delen osv...

Thue Kristensen

Selv hvis kildekoden var frit tilgængelig for alle, så ville der stadig ikke være nogen garanti for at den svarede til den applet som din browser downloader hver gang du bruger NemID. Så folk som ikke stoler på DanID nu, og ikke har lyst til at køre hemmelig kode fra DanID med fulde privilegier, ville heller ikke stole på de med kildekode.

Dette var også It-Politisk Forening's grund til at afvise at bruge ressourcer på at se kildekoden igennem. Det ville ikke løse de grundlæggende tillids-problemer.

Peter Lind

Som http://secunia.com/ eller lign. De roder med den slags som primært arbejde og har et klart bedre indblik i sikkerhed end de fleste. Og derudover kan de hyres for penge og er vant til NDA og lign.

Det ville dog givetvis være mere effektivt at hyre en flok hackere til det - men taget i betragtning hvor uduelie DanID er vil de nok hellere dø end lade det ske.

Casper Bang

Ja, og så skal man lige være sikker på (hvis wiki og arbejdet skal foregå med folks rigtige navne) at man ikke forbryder sig imod en eller anden formulering i DanIDs EULA (hvis der er sådan en) imod dekompilering etc.

Der er ingen tvivl om at DanID ville foretrække hvis folk ikke interesserede sig for deres programmel! Men når man som borger bliver tvunget til at bruge NemID og have ukendt kode eksekveret på sin egen computer, så forholder jeg mig til hver en tid retten til at holde øje med hvad der sker.

Der er så vidt jeg ved, ikke noget i lovgivningen, der gør dette til en "forbrydelse" at blive klogere. Lovgivningen der eksisterer for området synes at beskæftige sig mest med "ond tro" formål så som f.eks. at undgå plagiater, og behandler iøvrigt hhv. Reverse Analysis og Reverse Engineering forskelligt: http://www.it-retten.dk/bog/07/04/

Thue Kristensen
Casper Bang

7.4.f.
Ifølge samme bestemmelses stk. 1, nr. 3, er det imidlertid tilladt den lovlige bruger af et program - uden rettighedshaverens tilladelse - at besigtige, undersøge eller afprøve programmet for at fastslå, hvilke idéer og principper der ligger til grund for de enkelte elementer af det. Det kræves blot, at disse undersøgelseshandlinger finder sted i forbindelse med en indlæsning, visning, kørsel, overførelse eller lagring af programmet, som licenstageren i øvrigt er berettiget til at foretage.

7.4.g.
Ifølge ophl. § 37, stk. 1, nr. 1, må dekompilering for det første kun udføres af licenshaveren eller af en anden person, der har ret til at benytte et eksemplar af et edb-program, eller på disses vegne af en person, der har tilladelse hertil.

Jesper Eklund

Hvis NemID anvender SVN versionsstyring til deres kode, er det vel bare altid at offentliggøre den seneste revision. Så kan enhver studere den nyeste version af koden. Men om det så rent faktisk er den samme kode, som anvendes i applet'en, kan man jo i princippet aldrig være sikker på.

Hans Schou

Det er helt korrekt. Jeg har tidligere opfordret netop ITPol til at stille op til sådan en gennemgang.


Men du mener at det er OK at underskrive et NDA der giver mundkurv? Hvis så man fandt flere tåbeligheder end der allerede er fundet, så måtte det ikke komme ud til offentligheden? Så er det spild af tid at kigge på det overhovedet.

Et krav er også at man skal have mulighed for at kompilere sourcen selv. Den skal så give de samme binære filer som der bliver downloadet. Man bliver så nødt til at vide alle versioner der er blevet brugt af programmer, for at kunne genskabe det samme. Hvis der er forskel i den kompilerede kode, så er hele review intet værd.

Al info om AES er blevet lagt frem. Meget lidt info om NemID er lagt frem. Hvis der er nogle fejldesigns, så bliver de fundet på et tidspunkt. Så mister bankerne (eller rettere deres kunder) nogle penge, men værre er det at det offentlige også basere sig på samme fejldesign, og borgerne kan ikke vælge det fra.

Jeg er kun blevet mødt af larmende tavshed fra IT-Pols hjemmeside, og det er super ærgerligt. Her var netop en gylden chance til at demonstrere en smule relevans.

Nej. Amatør.

Martin Bøgelund

Selv blandt de der accepterer NemID-løsningen som login-metode, erkendes det, at det kun er en OK løsning at få startet op på hele setup'et med at give borgerne en online-identitet - og at NemID ikke er den digiale signaturs hellige gral, og derfor på sigt bør erstattes af noget langt bedre.

At knalde kode på noget teknologi som vi allerede på forhånd er enige om i bedste fald er næstbedst, kan kun tilfredsstille dem der fra dag 1 har været imod NemID, og derfor ønsker den personlige tilfredsstillelse i at få sat DanID's løsning i offentlig gabestok.

Jeg ser intet større perspektiv i et kodereview - stort set alle er jo enige om at det må kunne gøres bedre, selv uden at de har foretaget koderview...

Hvis man alligevel skal bede "uvildige eksperter" bruge tid på NemID, så sæt dem dog for pokker til at se fremad i stedet for bagud, og lad dem byde ind med designprincipper for næste version af NemID!

Peter Mogensen

DanID burde frigive kildeteksten. Hvis løsninger ikke kan klare det, så dur den ikke.

Det eneste der til nøds kan være et alternativ er at lade 3. part (gerne flere) certificere koden i hvert release og give folk en måde at verificere at den version der kører på deres computer er certificeret af en 3. part man stoler på.

Men hvis det blot er et engang gennemsyn af den dags-aktuelle version af koden, så er det meningsløst.

Martin Bøgelund

At knalde kode på noget teknologi som vi allerede på forhånd er enige om i bedste fald er næstbedst, kan kun tilfredsstille dem der fra dag 1 har været imod NemID, og derfor ønsker den personlige tilfredsstillelse i at få sat DanID's løsning i offentlig gabestok.

... eller endnu værre:
Sætte gang i en cyklus, hvor kræfterne sættes ind på at perfektionere kildekoden i et suboptimalt design, og derved få en suboptimal løsning, der alene pga det medgåede ressourceforbrug vil fremstå som bedste bud på en permanent løsning, fordi "den har vi lagt så mange kræfter i"...

Jeg synes kritikerne af NemID-løsningens design må stå vagt omkring deres kritik, og ikke lade den blive udvandet ved at file løs på en delkomponents kildekode.

Simon Moore Højer-Simonsen

For at opnå mest mulig troværdig skal den gruppe som skulle gennemgå kildekoden bestå af forskellige former for autoritet og "kritisk objektivitet".
Man kunne for eksempel forestille sig at gruppen var en blanding af IT Politisk forening, anerkendte lektore/forskere inden for itsikkerhed og/eller Java fra universitetmiljøet og repræsentanter fra større kommercielle spillere på markedet som f.eks. nogle af de sikkerhedsfirmaer som er nævnt i andre indlæg i tråden.

På den måde vil de fleste kritiske "fløje" have en mand med i gruppen og der vil kunne skabes en større troværdighed omkring hvad gruppen måtte komme med af konklusion (givet at de får lov til at komme med en sådan).

Niels Elgaard Larsen

Jeg har tidligere opfordret netop ITPol til at stille op til sådan en gennemgang. Jeg har også opfordret dem til at stå for gennemgang af den slørede kildekode. Foreningen ville kunne bidrage med tilpas meget troværdighed end mere eller mindre tilfældige debattører på V2 (herunder jeg selv) vil kunne.

Hvad er det, vi skulle gennemgå?

DanID kan give os noget kode og vi kan sikkert med stor troværdighed sige, at kildekoden nogenlunde udtrykker hvad DanIDs politik siger.

Så mangler vi at efterprøve, at det også er den kode, der er brugt i appletten. Dvs vi skal kunne bygge en applet på de fire arkitekturer og få præcis de samme samme applets som DanID bruger. Jeg ved ikke, om vi ville få adgang til byggesystemet.
Derudover er det heller ikke så nemt at verificere byggesystemet, jvf Ken Thompsons, betragtninger om Trusting Trust.

Så mangler vi bare at sikre, at det også er den applet, som alle danskere modtager nu og i fremtiden. Det bliver jo lidt svært. Jeg tror ikke, at DanID vil overlade signeringen af hver version af appletten til IT-POL. Simon foreslår et større råd, det kunne måske stå for signeringen.

Men jeg tror ikke, at IT-Pol ville være med til at signere en applet, der gør det, som DanID selv siger, den gør.

Jeg ved ikke om DanID ville forlange, at vi underskrev betingelser, men det er også lige meget; IT-POL overholder også ikke-nedskrevne aftaler og vi vil ikke kunne beskyldes for at have brudt et løfte, hvis vi senere fx offentliggør stumper af dekompileret kode eller pseudokode.

Niels Elgaard Larsen
IT-POL

Jesper Lund Stocholm Blogger

Men du mener at det er OK at underskrive et NDA der giver mundkurv?


Næeh - men vi kan jo af gode grunde ikke vide, om DanID kræver underskrivelse af en NDA - og hvad indholdet af den i givet fald var. IT-Pol skriver ikke noget om det på deres hjemmeside eller har på anden vis kommenteret på det.

Al info om AES er blevet lagt frem. Meget lidt info om NemID er lagt frem.


Det giver jo ikke mening at sammenligne disse to ting. AES er en krypteringsalgoritme og NemID er implementering af fx AES samt protokoller, PKI og alt muligt andet.

værre er det at det offentlige også basere sig på samme fejldesign, og borgerne kan ikke vælge det fra.


Jeps - og dette er netop grunden til at IT-Pol burde se på det. Alt imens IT-Pol stikker næsen i sky og afviser at kigge på det fordi de ikke med det samme kan få lovning på implementering af "den rigtige løsning (tm)", så lader de alle brugerne af NemID i stikken.

Nej. Amatør.


Jeg beklager mit spydige ordvalg - "diletantisk" er nok desværre bedre valgt.

Desværre er det jo ikke første gang at IT-Pol har udtrykt en holdning som de så nægter at revidere - alt imens verden omkring dem har ændret sig.

Jesper Lund Stocholm Blogger

Og det kan jeg ikke når man anvender "security through obscurity", så er jeg tvunget til at stole på danID, både mht. til nemID og alle de personlige data jeg har på min PC.


Uagtet at jeg synes DanIDs implementering af disse ting er lidt kluntet, så er det jo ikke korrekt, det du skriver. Det står dig frit for at analysere den JIT-kode der afvikles på din PC.

Jesper Lund Stocholm Blogger

Hvad er det, vi skulle gennemgå?


Ja alt det DanID nægter at fortælle os andre. Om I kommer frem til det via en analyse af råtekst eller den JIT'ede udgave gør ikke den store forskel. Men I kunne fortælle os andre, hvordan skidtet rent faktisk virker. Altså

"hvordan foregår signering teknisk"?
"hvordan foregår nøglegenerering teknisk"?
"hvordan foregår kryptering teknisk"?
"hvordan foregår udskiftning af password"?
"hvad er formålet med log-filen på den lokale PC"?

(find selv på flere)

Det eneste IT-Pol endnu positivt har bidraget til i denne debat har været at vise, at en applet kan skrive på den lokale PC hvis den er signeret - men lige præcist denne egenskab i applet er én af de, hvor man faktisk med nogen ædruelighed kan argumenter for, at det er en god idé. Derfor batter det intet - og det viser reaktionerne på jeres test jo også. Den har intet betydet ... og det er synd.

Jeg ved ikke om DanID ville forlange, at vi underskrev betingelser, men det er også lige meget; IT-POL overholder også ikke-nedskrevne aftaler og vi vil ikke kunne beskyldes for at have brudt et løfte, hvis vi senere fx offentliggør stumper af dekompileret kode eller pseudokode


Så med andre ord kunne I aldrig finde på at medvirke til nogen som helst ting om noget som helst?

Jesper Lund Stocholm Blogger
Søren Ørslund

der er mange tråde i den debat:-) Danid har vel ejerskab til de applikationer der anvendes her, og har vel derfor nogle IP rettigheder? det er da flot at de gerne vil auditeres, men det troede jeg faktisk den slags firmaer blev i forvejen?

Søren Ørslund

I stedet for altid at hoppe op som trold af en æske, kunne du for en gang skyld sætte dig ind i de aftaler der er indgået og vise mig hvor danid er forpligtet til det tilbud de giver. De er mig bekendt kun underlagt statsautoriseret revision og underholdelse af DS484 i følge aftale nmed Staten. Så temaet må være at pege på en team der kan udføre dette betryggende, og ikke alle mulige nye krav, i modsat fald vil jeg godt have at at Danid sikrer solskin i næste uge.

Carsten Agger

Alle skal kigge i kildekoden. Nets/DanID bør frigive koden til NemID under GPL eller en lignende licens og gøre den tilgængelig på Github eller et lignende sted.

Der er INGEn saglig begrundelse for at lade være, og i betragtning af DanIDs monopolstatus, heller ingen kommerciel begrundelse. Indsigt i den kode der kører på ens egen computer er en ret for alle, og ikke noget, der skal forbeholdes udvalgte "eksperter".

Jens Peter Jensen

Præcis! Det er rent faktisk muligt i dag, at installere et komplet Linux-system, kun udfra kode, man selv har oversat, og dermed har mulighed for selv at kontrollere. Så det samme skal selvfølgelig være tilfældet for kode, som staten vil have man skal køre på selvsamme maskine.

John Vedsegaard

Hvis nogen skulle finde svagheder henvender de sig selvfølgelig omgående til udvikleren så eventuelle huller kan blive lukket.
DanID kan passende give en dusør til dem der henvender sig med sådanne oplysninger, diskret selvfølgelig, så det ikke er halvdelen af verdens programører der arbejder for at få den dusør.
Jeg mener at jo flere der kender kildekoden, jo større chance for at der opstår problemer.

Log ind eller Opret konto for at kommentere