Læser-opdagelse af Java i ‘Java-Fri NemID’ afføder sjældent detaljeret forklaring fra Nets

Den nylancerede Java-fri NemID kører faktisk på Java. Læs forklaringen her.

Forleden kunne Version2 med afsæt i en nyhed fra Nets meddelelse, at Java helt på vej ud af NemID. Det har nu vist sig at være en sandhed med modifikationer.

Anledningen til vores historie var, at Nets netop havde lanceret, hvad organisationen har markedsført som Java-fri NemID.

Som nogle vil vide, har nøglekort-brugere længe kunnet undvære Java, mens NemID via nøglefiler og hardware stadig har forudsat, at brugeren har installeret Java. Og det er denne gruppe, der nu ikke længere behøver installere Java med den nylancerede løsning fra Nets.

Løsningen fungerer sådan, at brugeren dels installerer en browser-udvidelse i eksempelvis Chrome og samtidig også installerer et program i selve styresystemet via eksempelvis en Deb-fil til Ubuntu.

Og så kan den såkaldte Java-fri løsning altså anvendes - forudsat at udbyderen, som man forsøger at anvende løsningen hos, har implementeret det også.

Opmærksom læser

I forbindelse med Version2's historie om den 'Java-fri' NemID har en snarrådig læser set nærmere på det program, som blev installeret i styresystemet - og altså ikke browser-plugin'et.

Og i den forbindelse har læseren bemærket, at der med det lokale program følger en Java-installation, et såkaldt Java Runtime Environment til afvikling af kode skrevet i programmeringssproget Java.

Vi har forelagt Nets læser-observationen for at opklare, hvorfor den Java-fri NemID tilsyneladende kører på Java.

Pressekonsulent hos Nets Ulrik Marschall har undersøgt sagen nærmere og er vendt tilbage via mail med et længere og detaljeret svar.

»Formuleringen ’Java-fri NemID’ er rettet mod slutbrugere, som har været vant til, at de skulle hente og installere Oracles komplette Java Runtime Environment fra java.com – inklusiv Java Plug-in software, som gør det muligt at køre Java-appletter direkte i browseren (se fx What is Java? fra java.com). Det er ikke længere nødvendigt. Det beskriver vi forenklet som 'Java-fri NemID' og 'Du kan nu bruge NemID som nøglefil uden at have Java installeret på din computer’,« lyder det i mail-svaret fra pressekonsulenten, som fortsætter:

»Folk med teknisk indsigt kan med rette indvende – som i omtalte kommentar (læserkommentaren i Version2's debat, red.) – at den forenklede beskrivelse ikke er korrekt, når der stadig installeres et JRE på brugerens computer sammen med det nye NemID Nøglefilsprogram.«

Samspillet mellem browser-plugin og det lokalt installerede program, som altså er programmeret i Java, tager sig ifølge mailen fra Ulrik Marschall ud som følger:

»Ved hjælp af den tilhørende browser-udvidelser kommunikerer browseren via ‘native messaging’ med en ‘native app’. Dette program, der er installeret på slutbrugerens computer, gør det muligt fra browseren at gøre brug af nøglefilen. Dermed har man undgået den sikkerhedsrisiko, der ligger i at afvikle Java-programmer direkte i browseren, og som er grunden til, at browserne efterhånden stopper med at supportere Java Plug-in software.«

I forbindelse med lanceringen af den 'Java-fri NemID' har Nets netop brugt som begrundelse, at Firefox efter 7. marts 2017 kan blive opdateret til v52, som ikke længere understøtter Java.

Kunne være skrevet i C++

Programmet, der bliver installeret i styresystemet, kunne godt være skrevet i andre programmeringssprog end lige Java. Når valget alligevel er faldet på Java, så er det, fordi det giver mulighed for at genbruge en del af koden fra den tidligere Java-baserede løsning, fremgår det af svaret fra Nets.

»Programmet installeret på slutbrugerens computer kunne være skrevet i et vilkårligt programmeringssprog, Java, C++, C, assembler eller andet. Af praktiske og sikkerhedsmæssige årsager har vi valgt Java, da vi på denne måde kan genbruge meget af den eksisterende afprøvede kode,« står det i mailen fra Marschall, som fortsætter:

»Derfor leveres et reduceret JRE med i pakken, så det er transparent, at programmet lokalt kører Java, samtidigt med det sikres at de nødvendige komponenter er til stede. Ved at levere et JRE med i pakken styres, hvilken Java version der anvendes, og vi kan dermed sikre kompatibiliteten samt styre opdateringen, hvis der er behov for det.«

Hvad med sikkerheden?

I den forbindelse kunne nogle måske være bekymret over, at det er en gammel og potentielt sikkerhedsmæssigt gennemhullet JRE-installation, der følger med den Java-fri NemID i Nets' setup.

»Når der udkommer en ny udgave af JRE, vil vi vurdere, om der er sikkerhedsrettelser, som er vigtige for NemID Nøglefils-program. I det tilfælde kan vi frigive en opdatering til NemID Nøglefils-program, som indeholder den nødvendige JRE opdatering. Slutbrugeren vil blive informeret om – og guidet til – opdateringen via den JavaScript-klient, som har afløst Java-appletten,« fremgår det af mail-svaret fra Ulrik Marschall.

Og faktisk er det opfattelsen hos Nets, at denne form for software-vedligehold vil fungere bedre end de tidligere Java-opdateringer fra Oracle.

Det bliver i mailen fra Ulrik Marschall begrundet på følgende vis:

  • »Vi kan begrænse os til vigtige rettelser«
  • »Vi kan verificere kompatibilitet med NemID Nøglefilsprogram inden frigivelse«
  • »Opdatering er integreret i NemID-brug af JavaScript-klienten«

»Det er vigtigt at bemærke, at den JRE vi leverer, jo ikke er ‘installeret’ på maskinen. Det skal forstås som, at den ikke er installeret og registreret som en JRE, der kommer direkte fra Oracle. Den er således ikke umiddelbart synligt for andre systemer/applikationer der benytter Java. De vil fortsat benytte den JRE der måtte være ‘officielt’ installeret på systemet,« lyder det hen mod slutningen i det måske mest teknisk detaljerede svar, Version2 nogensinde har modtaget fra Nets.

Svaret slutter med at understrege, at andre applikationer i udgangspunktet ikke vil anvende den JRE, Nets kontrollerer.

»Dermed er det som udgangspunkt kun vores applikation der benytter den JRE, vi har leveret, og dermed kan vi afgøre om en sikkerhedsfinding i ‘vores’ JRE er af en art der måtte medføre at vi ønsker at opdatere den, og vi kan jo netop styre OM bl.a. JRE skal opdateres. I dette tilfælde vil det ikke fremgå som en 'Java opdatering' men en opdatering af NemID Nøglefilsprogrammet.«

Det var så Nets' begrundelse - i sin helhed - for, hvorfor den 'Java-fri NemID' kører på Java.

Men hvad synes du? Giver argumentationen om at bruge Java mening? Eksempelvis i forhold til at kunne genanvende tidligere skrevet kode?

Tips og korrekturforslag til denne historie sendes til tip@version2.dk

Følg forløbet

Kommentarer (21)

Konstantin Slavin-Borovskij

Det er jo umiddelbart en fin forklaring fra Nets, og det er da heller ikke usædvanligt at pakke programmer ned sammen med JRE - det er i hvert fald set før.

Men jeg er bange for, hvad opdateringsmetoden gør for opdragelsen af brugere. Hvis det bliver normen, at man skal hente og installere et program, når NemID-vinduet beder om det, så åbner det da op for en ny angrebsvektor, da brugerne ikke skal ind på nogen officiel hjemmeside, for at installere opdateringen. Og i det hele taget, at brugerne bliver mødt med en besked om at opgradere for "ellers kan du ikke bruge NemID" er jo lige nøjagtig den formulering som malware / phishing spredere gør brug af.

Bjarne Nielsen

... lyder det hen mod slutningen i det måske mest teknisk detaljerede svar, Version2 nogensinde har modtaget fra Nets.

Dejligt at se, at Nets endelig kommer ind i kampen! :-)

Jan Gundtofte-Bruun

[quote id]
»Når der udkommer en ny udgave af JRE, vil vi vurdere, om der er sikkerhedsrettelser, som er vigtige for NemID Nøglefils-program
[/quote]
Såeh, sikkerhedsrettelser som er vigtige for andre ting vil ikke afstedkomme en opdatering? Dejligt. Fedt. Super! Suk.

Christian Damsgaard

Såeh, sikkerhedsrettelser som er vigtige for andre ting vil ikke afstedkomme en opdatering? Dejligt. Fedt. Super! Suk.

Hvilke andre ting?

Den eneste applikation der kan gøre brug af JRE'et er NemID applikationen, da JRE er indlejret i det browser plug-in som bliver installeret, og det er ikke umiddelbart tilgængeligt for andre applikationer, da JRE ikke bliver installeret globalt med et offentlig (public) JRE.

Erling Sjørlund

Den er således ikke umiddelbart synligt for andre systemer/applikationer der benytter Java.
Det er meget betryggende at vide, at ondsindede programmer ikke kunne finde på at søge efter en fil med et bestemt navn, for på den måde at angribe.
Er "native messaging" en lukket verden, så ingen kan komme til at se, hvad der sker?
De, der vil ondt, er jo ikke netop gennemsnitsbrugere, men meget kapable programmører, så er dette ikke blot security by obscurity?

Tobias Tobiasen

Det er meget betryggende at vide, at ondsindede programmer ikke kunne finde på at søge efter en fil med et bestemt navn, for på den måde at angribe.


Hvis et ondsindet program har adgang til at søge på din harddisk og eksekvere programmer så har du tabt alligevel. Det skader ikke at "installere" et JRE i en folder på disken.

Er "native messaging" en lukket verden, så ingen kan komme til at se, hvad der sker?


Se det er et godt spørgsmål. Hvad er native messaging og hvordan sikres det at ondsindede websites ikke kan sende native messages?

Adam Sjøgren

De skulle da helt klart have valgt assembler, når nu det var på bordet. Eller Brainfuck.

Spøg til side. Det er nemt at forstå de praktiske årsager til at vælge Java, når de nu allerede har en masse gammel kode i Java, men hvad er de sikkerhedsmæssige årsager der omtales?

Det bliver beskrevet som et sikkerhedsproblem at køre Java direkte i browseren. Hvordan er det meget bedre at køre en extension direkte i browseren som taler med Java direkte i styresystemet?

Endelig kunne de bare have kaldt det "Java-plugin-fri NemID", så havde de sparet megen fnisen rundt omkring.

Sune Marcher

Det er klart en bedre løsning end at have Java plugin'et direkte i browseren.

Her skal en angriber trods alt finde en måde at breake fra javascript-på-website til angreb på javascript-i-addon-context, for derefter finde en måde at exploite native messaging... jeg siger ikke det ikke kan gøres (der er nok allerede folk der er i gang med at undersøge muligheden for serialization exploits), men barren er trods alt hævet.

Men på trods af det giver mening i forhold til kodegenbrug, så sidder jeg alligevel med en klar fornemmelse af at det er lidt af en klyt-løsning. På den anden side, så har jeg det trods alt bedre med at de skriver Java end C/C++... det tvivler jeg på de er kompetente nok til at gøre sikkert.

Christian Nobel

Når nu Nets alligevel er gået ud af den tangent der hedder at lave en platformsafhængig løsning, hvorfor har de så ikke taget skridtet fuldt ud, og har lavet et decideret program (på nydansk: en app) som kun er beregnet til brug for bank?

Dermed slipper de for at forholde sig til browsere, og kan med god ret hævde at sikkerheden er højere, da man dermed har lavet en mere sandkasse'ish løsning.

At man så i øvrigt skal bruge over 60MB på den lille sag er mig en gåde.

Tobias Tobiasen

Se det er et godt spørgsmål. Hvad er native messaging og hvordan sikres det at ondsindede websites ikke kan sende native messages?


Jeg skulle nok have googlet før jeg skrev denne kommentar :). Det viser sig at google vidste en masse om native messages og jeg nu er blevet lidt klogere.
Native messaging er bygget ind i browserne og man må antage at browserne har et incitament til at sørge for at det er sikket.

Bjørn Agger

I forbindelse med omlægning fra Java til "Javafri" af NemID, så har nets liiige glemt en detalje.

Jeg ville gerne opdatere mit certifikat til min hardware, så det har jeg forsøgt et par dage. Jeg er bare blevet stoppet af et vindue, der er gråt uden mulighed for noget. Jeg kontaktede derefter support via mail, og i dag fik jeg forklaringen på den manglende mulighed for fornyelse af certifikat.

Når man logger på nemlog-in.dk, så kører virker den nye "Javafrie" udvidelse. For at forny certifikat, bliver man viderestillet til nemid.nu. Der er "Javafri" version ikke blevet implementeret endnu :(

Jeg kan nu prøve med jævne mellemrum at forny mit certifikat indtil det udløber/nets får opdateret nemid.nu :/

Mvh Bjørn

Log ind eller opret en konto for at skrive kommentarer

Pressemeddelelser

Affecto Denmark reaches highest Microsoft Partner level

Affecto Denmark, a leading provider of data-driven solutions, has reached the highest level in the Microsoft partner ecosystem: Managed Partner.
22. jun 2017

Innovate your business with Affecto's IoT Explorer Kit

Are you unsure if Internet of Things fits your business strategy?
31. maj 2017

Big Data Lake Summit: Fast and Trusted Insights

If you want to outpace, outsmart and outperform your competition in a digital world, you need trusted data that can be turned into actionable business insights at speed.
24. apr 2017