Læser-opdagelse af Java i ‘Java-Fri NemID’ afføder sjældent detaljeret forklaring fra Nets
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?

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.