Sådan vil sikkerhedsekspert designe NemID fra bunden

Sikkerhedsekspert Ulf Munkedal fra it-sikkerhedsfirmaet Fort Consult giver i en debat med Version2's læsere sit bud på, hvordan NemID kunne fikses.

Læs Ulf Munkedals svar til læserne på Version2:

Erik Jensen spørger: Hvilket sikkerhedsniveau mener du, at en offentlig logon tjeneste bør have? Er det acceptabelt, at der sker misbrug i et vist omfang, eller skal tjenesten være umulig at misbruge?

Ulf Munkedal svarer: @Erik Jensen
Efter min mening bør ambitionen med en offentlig logintjeneste uden tvivl være, at den er umulig at misbruge. Konsekvenserne ved misbrug er store set fra den enkelte borgers stol og midlerne der er at gøre godt med er også store.

Fra praksis ved vi dog, at intet er 100% sikkert over tid i den virkelige verden, og at ambitionen er urealiserbar – og netop derfor bør vi være realistiske og sørge for, at løsningen ikke afhænger af enkeltstående bropiller, som kan og vil kollapse, men hviler bredt på et gennemtænkt design, der er justerbart, opgraderbart, kan videreudvikles og i videst muligt omfang giver kontrollen til den enkelte borger. Man bygger fx ubåde ud fra et princip om at der faktisk går hul på dem på et tidspunkt og sådan bør vi også tænke.

Thue Kristensen spørger: Man kan selvfølgelig ikke beskytte sig mod alle dumme brugere.
Men et minimum så bør tjenesten være designet sådan, at kompetente brugere er sikret mod misbrug. Sikkerhedsproblemet som version2 har demonstreret er et eksempel på et løseligt sikkerhedsproblem, som selv kompetente mennesker kan falde for, pga dårligt design fra NemID's side.

Ulf Munkedal svarer: @Thue Kristensen:
Jeg forstår godt hvor du kommer fra og er enig langt hen af vejen. Naturligvis skal en offentlig login tjeneste sikre borgere, der ikke er it-kyndige, ellers giver den i sagens natur ikke meget mening. ”Dumme” brugere er dog altid svære at beskytte mod dem selv og det er der nok ingen systemer som kan i praksis.

Kasper Dupont spørger: Såfremt der bliver fundet et sikkerhedshul i appletten formoder jeg at danid vil udgive en opdatering. Hvilke muligheder findes der for at sikre at der anvendes en opdateret udgave af java appletten?

Da java appletten gives ekstra rettigheder er det vigtigt at anvende den nyeste udgave, da et evt. sikkerhedshul i en ældre udgave kunne kompromittere brugerens computer.

Hvilke muligheder har brugerne for at sikre sig, at et ondsindet website ikke kan anvende en ældre udgave af appletten med kendte sikkerhedshuller?

Hvilke muligheder har danid for at sikre sig, at et ondsindet website ikke kan anvende en ældre udgave af appletten med kendte sikkerhedshuller?

Hvorledes bør man forholde sig overfor offentlige myndigheder som opfordrer borgerne til at ignorere advarsler om et udløbet certifikat på appletten?

Ulf Munkedal svarer:@ Kasper Dupont:
Jeg er ikke på nogen måde Java-ekspert. Men jeg er ret sikker på, at appletten loades fra DanIDs server ved hvert login.

Offentlige myndigheder skal naturligvis ikke opfordre borgerne til at ignorere advarsler om et udløbet certifikat.

Henrik Schmidt spørger: Hvad er formålet i det hele taget med at bruge Java og giver det eventuelle argument mening?

Hvad er formålet med, at appletten skal have ret til at læse og skrive på min harddisk? DanID siger, så vidt jeg husker, at der er for at gemme en krypteret log-fil på harddisken, men kunne man ikke lige så godt gemme den på serveren? Man kan jo sørge for, at den kun kan læses med brugerens tilladelse ved at benytte sit eget produkt til formålet.

Ulf Munkedal svarer: @Henrik Schmidt:
Efter min mening er Java ikke optimalt at bruge, af mange årsager som allerede er blevet formuleret af mange andre.
Vi skal dog også passe på at vi ikke bruger alt for meget tid og energi på at forkaste konkrete teknologivalg, for basalt set er mange teknologier over tid usikre, mens et godt design kan holde rigtig længe selvom teknologierne til tider vakler

Niels Didriksen spørger: @Ulf
Kan du ridse op hvordan du selv ønskede systemet designet, hvis du havde et blankt papir at starte på. Specielt i relation til:
*clientside-teknologivalg,
*nøgleproblematikken mht. elminiering af private nøgler og forbud mod afledte nøgler,
*monolitisk arkitektur vs. modulær arkitektur,
*fravær af gængse standarder/interfaces
*...og hvad du iøvrigt finder relevant.
Bonus-spørgsmål; Hvad vurderer du det vil koste samfundet i resourcer/penge, hvis der skulle omlægges fra nuværende system, til et sådant system.

Til ovenstående vil jeg bede dig forholde dig til Stephan Engbergs debatindlæg:
http://www.version2.dk/artikel/sikkerheds-ekspert-saadan-burde-staten-ha...
Hvor er du enig/uenig?

Ulf Munkedal svarer: @Niels Didriksen:
Hvis jeg fik et blankt stykke papir og måtte designe systemet, så ville jeg ikke starte med at vælge teknologier, men vælge krav og processer.

På min krav-liste ville være at systemet skal være justerbart, opgraderbart og kunne videreudvikles og at det i videst muligt omfang giver kontrollen til den enkelte borger. For den største udfordring er at vi skal kunne imødekomme de trusler som vi endnu ikke kender. Og der slår teknologier ikke til. Nogle gange er et godt design ikke engang nok. Men et godt design hjælper rigtig langt hen af vejen.

Og så skulle det være et ufravigeligt krav til processen omkring tilblivelsen af en ny offentlig login tjeneste, at designet blev lagt åbent frem til åbent kritik og kommentering, på linje med åbne krypteringsstandarder. For hvis der er et design-problem så skal det helst findes inden vi overhovedet går i gang med at bygge systemet og det er der faktisk rigtig mange mennesker som gerne vil hjælpe med at afprøve.

Hvis jeg skulle ”fixe” lidt på den nuværende tjeneste, så tænker jeg bl.a. på ideer som:

  • Data bliver kun indtastet på en konkret autoriseret URL, som skal fremgå af papkortet.

  • Ekstra sikkerhedsfaktor til kritiske logins som stat og netbank i form af fx sms eller anden ekstra bekræftelse. Det underminerer sikkerheden og min tillid til systemet når det har en massiv udbredelse samtidig med at data til at logge ind på Herlev bibliotek og fritidsklubben er de samme som dem der skal bruges til at logge på stat og netbank.

  • Langt mere kontrol og indsigt til den enkelte bruger/borger fx:

    • Mulighed for nemt at checke, om et konkret site faktisk er autoriseret til at modtage mine login data.
    • Mulighed for at vælge hvor mit konkrete login forsøg må bruges (så login data til Herlev bibliotek ikke kan bruges til at logge ind på min netbank)
    • Mulighed for bedre logs og notifikationer til fx sms og mail hver gang mine login data bliver brugt eller forsøgt brugt

Og man kunne komme med mange flere ideer og finde mange andre gode forslag fra andre.

Det konkret debatoplæg af Stephan Engbergs som du henviser til er rigtig godt efter min mening. Det er måske en lidt for revolutionerende løsning lige nu i forhold til det system vi har og den måde vi (desværre) tænker på i dag, men hvis vi kunne vælge et helt nyt design som langt bedre kunne følge med trusselsbilledet, så synes jeg at Stephan Engbergs forslag er inspirerende og godt. Flere af den slags konkrete forslag, tak. :)

Niels Didriksen spørger: @Ulf2
Jeg er personligt ikke bange for de indeværende dages overskrifter vedr. MITM-angreb. Jeg er meget mere bange for potentialet for misbrug af systemet fra personer der allerede har legitim adgang til det, eller har politisk magt over det.

Bruce Schneier, som jeg er sikker på du kender, har fornyligt listet de 3 sikkerhedstrusler han ser som de største i den nære fremtid, og her er der heller ikke nogen bank-konto-fiskning at finde. Men derimod;

  1. The Rise of Big Data

  2. Ill-Conceived Regulations from Law Enforcement

  3. The Cyberwar Arms Race

(www.schneier.com/blog/archives/2011/09/three_emerging.html)

Som jeg ser det, er NemID i sin nuværende konstruktion, en stor saftig plukkemoden fersken i forhold til de ovennævnte trusler. Specielt så længe at den komplette systemmæssige umyndiggørelse af mig som borger i informations-samfundet er hardcodet ind i designet af NemID og driften lagt over i en privat bankvirksomhed.

Har du nogen kommentarer til mig, der kan berolige mig?

Ulf Munkedal svarer: @Niels Didriksen:
Så er du mere rolig end mig omkring MITM-angrebene.

Jeg er dog helt enig med dig i din bekymring for misbrug af systemet ”indefra” og det bør vi absolut også forholde os til når vi drøfter et offentligt login system, som burde være sikret langt bedre mod denne type misbrug end det er i dag. Heldigvis er langt de fleste mennesker loyale og pligtopfyldende, for hvis ikke det var tilfældet, så var systemet allerede brudt ned. Men jo flere magt vi giver det offentlige login system og jo større fristelsen bliver, jo mere bekymrende bliver ”indefra” scenarierne. Konsekvenserne er langt større og vidtrækkende end ved et enkeltstående angreb.

Så løsningen bliver nødt til at være, at vi giver langt større magt og kontrol til den enkelte borger og umuliggør eller besværliggør ”insider” misbrug i langt større grad end i dag.

Så jeg kan desværre ikke berolige dig med andet end at vi – som det ser ud lige nu – heldigvis har tid til at tænke os godt om og så handle inden ”insider” scenarierne bliver til virkelighed. For det gør de en dag, hvis vi fortsætter som vi gør nu.

Anders Feder spørger:
Hej Ulf,
Bare for at få det sort på hvidt: DanID skriver i en pressemeddelelse at det angreb som Ingeniøren demonstrerer kun er et "konstrueret scenarie". Men er angrebet ikke netop af nøjagtig samme art som det Nordea blev udsat for i praksis i september? Med andre ord: lyver DanID rent ud sagt når de afviser Ingeniørens scenarie som "teoretisk"?

Desuden skriver DanID at angrebet er "ganske krævende at udføre på en troværdig måde i det virkelige liv", og at "udbyttet for den kriminelle ikke vil stå mål med indsatsen". Har du nogle kommentarer til disse to påstandes sandfærdighed?

Tak

Ulf Munkedal svarer: @Anders Feder: Angrebet som Ingeniøren demonstrerer er naturligvis konstrueret i sagens natur. Men det er ikke teoretisk. Måske mener DanID at det ikke er udbredt endnu, for det er jeg enig i. Men med Nordea har vi set det første succesfulde angreb.

Og med udbredelsen af det offentlige login system, så bliver det sværere og sværere for en bruger at passe på sine login data og nemmere og nemmere for en angriber at bruge et login der var ment til fritidsklubben ovre i netbanken i stedet. Det er et problem. Og et problem der vil vokse med tiden. Så det er nu - eller i hvert fald inden længe - at der skal reageres på denne udvikling.

Jeg er ikke enig i at angrebet er ”ganske krævende at udføre på en troværdig måde i det virkelige liv” og at ”udbyttet for den kriminelle ikke vil stå mål med indsatsen”.

John Vedsegaard spørger: Vil det ikke være en fordel med flere forskellige systemer, drevet af forskellige aktører uafhængigt af hinanden frem for et, som hvis det enten hackes, eller af andre årsager går ned ikke kan erstattes lige med det samme.

Ulf Munkedal svarer: @John Vedsegaard: Jo, det ville være en stor fordel, som vil blive større jo mere udbredte den offentlige login tjeneste bliver. Det vil dog kræve et helt anderledes design end det nuværende, men det vil være et godt krav at tage med til næste generation.

Ulf

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

Vil det ikke være en fordel med flere forskellige systemer, drevet af forskellige aktører uafhængigt af hinanden frem for et, som hvis det enten hackes, eller af andre årsager går ned ikke kan erstattes lige med det samme.

  • 0
  • 0
Kasper Dupont

Det er korrekt at appletten indlæses direkte fra danid. Men så vidt jeg kan se er der intet der gennemtvinger dette. Den tilladelse appletten gives er uafhængig af hvilket site den indlæses fra. Såfremt et ondsindet site ønsker at udnytte en sårbar version må man formode at de vælger at lægge den sårbare version på deres eget site således at de fortsat kan udnytte den efter en opdatering er udgivet.

  • 3
  • 0
Jesper Mørch

Er NemID-konstruktionen egentlig ikke lidt at sammenligne med stilhed før stormen?
Det jeg tænker på er, at det nok kun er et spørgsmål om tid før DanID bliver kompromitteret, enten udefra eller indefra.

Er det ikke en overordentlig dårlig idé at have både private og offentlige nøgler i PKI samlet ca. samme sted? og, er det i grunden ikke en samfundsmæssig katastrofe som venter på at ske, når DanID på et tidspunkt bliver massivt kompromitteret og både vores finansielle og private oplysninger kan manipuleres?

  • 3
  • 0
Danny Thomsen

Et af problemerne som jeg ser det (lige nu), er at vi skal bruge en web baseret løsning. Teknologien har aldrig rigtig være ment til andet end at modtage og læse filer på internettet.

Så det kunne være fint at rejse en debat om hvor vidt man bør gå over til et eksternt program, frem for at bruge browseren.

  • 0
  • 5
Kasper Dupont

Et eksternt program løser ikke problemet. Med den mængde forskellige sites der kan tilgås med nemid ville det ende med at blive et meget kompliceret program der skulle til. I sidste ende ville det program skulle være en browser i sig selv med den samme kompleksitet. Hvis man implementerede en separat browser fra grunden ville man introducere masser af sikkerhedshuller.

Og hvad skulle det separate program køres i? Med en browser er der standarder for protokollen og formatet af de data der udveksles.

Hvis der skulle anvendes et eksternt program skulle det implementeres til en standard API. Det nærmeste vi kommer en standardiseret API for at implementere sådan et program er Posix og X11. Men hvis man implementerede et eksternt program til disse APIer ville der stadig være en betydelig procentdel af brugerne der ikke kunne køre det, da de har et operativsystem som ikke følger Posix og X11.

En løsning der ikke kan bruges af alle borgere er ikke acceptabel. Det vil sige at hvis man valgte et eksternt program implementeret til en standard API, så ville man stadig være nødt til at have en alternativ løsning til resten af befolkningen. Og hvis man er nødt til at supportere to løsninger, så ender man i en situation hvor det bliver en halvhjertet indsats.

  • 3
  • 0
Ole Østergaard

Scenariet der blev spurgt til er det hvor der er et sikkerhedshul i en version af appletten som allerede er blevet signeret. At appletten flyttes til et andet site ændrer ikke på signaturens gyldighed.

DanID kan da bare revokere det certifikat som appletten med sikkerhedshullet er signeret med?

  • 1
  • 0
Danny Thomsen

Kasper Dupont: Den løsning der er nu, bruger Java applet. Så hvis det blev udviklet i Java vil der ikke være færre det kunne bruge systemet.

Morten Jensen: Nej jeg troller ikke, som jeg skrev før ønsker jeg at rejse debatten.

Jeg ser bare stadig browserens design som et kæmpe problem, da den ikke er designet til at løse de opgaver vi giver den. Derfor er det stadig problemer med Cross-site scripting, Cross-site request forgery, HTTPS stripping og cookie hijacking.

  • 0
  • 0
Morten Jensen

Morten Jensen: Nej jeg troller ikke, som jeg skrev før ønsker jeg at rejse debatten.

Jeg ser bare stadig browserens design som et kæmpe problem, da den ikke er designet til at løse de opgaver vi giver den. Derfor er det stadig problemer med Cross-site scripting, Cross-site request forgery, HTTPS stripping og cookie hijacking.

Jeg tror ikke helt jeg forstår dit argument. Jeg prøver lige at skrive hvad jeg tænker om de ting du nævner. Hvis jeg skriver noget forkert, eller du har noget at tilføje, så hold dig ikke tilbage :)

SSLstrip kræver at du er på lokalnet med ofret, og så er alle applikationer sårbare.
Cookie hijacking kræver typisk også at du sniffer sessionen. Mig bekendt kan du sætte et HttpOnly flag på cookien, så kan scripts ikke læse cookiens værdi, og så kan du ikke hijacke cookien med et cross-site angreb.
Cross-site scripting kræver at du har kompromiteret en trusted host, poisoned DNS eller at siden du angriber tillader bruger-bestemt content (f.eks. som myspace etc), ikke?

I sig selv fire angreb der i mine øjne benytter generiske teknikker, og derfor ikke er specifikke for browsere. Er det ikke kun CSS der kan udføres uden at være på LAN med ofret? Og kræver samtidig at den side du "angriber fra" tillader remote content.

Eller er jeg helt galt på den?

  • 0
  • 0
Rasmus Faber-Espensen

Jeg ser bare stadig browserens design som et kæmpe problem, da den ikke er designet til at løse de opgaver vi giver den.

Det ville være en forbedring, hvis browseren tydeligt kunne signalere, at du er på en side, hvor det er okay at indtaste dine credentials. EV-certifikater leverer lidt af værdien, men det skulle helst være endnu tydeligere. Windows Cardspace var en okay implementation, men blev desværre ikke udbredt.

  • 0
  • 0
Log ind eller Opret konto for at kommentere