Årsagen til NemID-kaos: Nets testede ikke Java-opdatering

Det var ikke praksis at teste, om NemID virkede med nye Java-opdateringer, viser en redegørelse fra Nets DanID om Java-problemerne i oktober. Java-opdateringer var nemlig normalt bagudkompatible.

Da Java 7 update 45 blev rullet ud tirsdag den 15. oktober af Oracle, fik mange danske NemID-brugere pludselig problemer. NemID fungerede nemlig ikke med den nye opdatering, der lukkede 51 sikkerhedshuller.

Det kom tilsyneladende helt bag på Nets DanID, som driver NemID, og forklaringen står nu at læse i en redegørelse, som firmaet har sendt til Digitaliseringsstyrelsen om problemerne.

Nets testede nemlig aldrig de nye Java-opdateringer, før de blev rullet ud bredt. Det fremgår af Digitaliseringsstyrelsens resumé af redegørelsen.

»Nets DanID oplyser endvidere, at det hidtil ikke har været Nets DanID's praksis at teste nye opdateringer af Java, da opdateringerne hidtil har været bagudkompatible,« skriver styrelsen.

Til gengæld tester Nets NemID op mod nye versioner af Java samt med nye versioner af de mest gængse browsere og styresystemer.

Læs også: Nets om Java-problemer: Vi har måske ikke testet godt nok

Belært af erfaringerne fra oktober, hvor det i tre døgn ikke var muligt at bruge NemID med den nyeste version af Java, har Nets nu ændret procedure: Fremover vil Nets deltage i Oracles Java pre-release-program, så NemID også bliver testet med alle Java-opdateringerne på forhånd.

Selvom Nets beklager forløbet, er Digitaliseringsstyrelsen ikke tilfreds med leverandøren.

»Digitaliseringsstyrelsen tager redegørelsen til efterretning. Styrelsen finder dog ikke den hidtidige praksis tilfredsstillende, men bemærker, at Nets DanID igangsætter nye tiltag og vil optimere de generelle testprocedurer,« skriver styrelsen.

Selvom løsningen i sig selv ikke tog så lang tid at skrive - en analyse af NemID-appletten har for eksempel vist, at der kun blev tilføjet to linjers kode - er der mange sikkerhedskrav til NemID, og derfor tog det tre døgn at få en ny NemID-applet rullet ud.

Læs også: Nets brugte 3 døgn på at tilføje 2 linjer kode til NemID

»Årsagen hertil var, at opdateringen af Java afstedkom flere problemer, som skulle løses, samt at en opdatering af NemID altid skal afprøves i flere testmiljøer, før den lægges ud til brugerne, og det tager tid,« fremgår det af Digitaliseringsstyrelsens resumé.

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

Ved godt det ikke er helt det artiklen omhandler, men er det ikke derfor man såvidt undgår at bruge 3. parts produkter i ens løsninger - ISÆR når man ikke selv har magt over om der kommer opdateringer?

NemID - er nødvendigt at have hvis man ønsker at bo i DK, drive virksomhed i DK eller lignende, derfor er det meget farligt at være så afhængig af en amerikansk virksomhed som først og fremmest tænker på profit! Endvidere hvor er jeg dog træt af, som familien IT-kyndige, at se den fordømte ASK-Toolbar, som Java opdateringer hele tiden prøver at installere og som regel lykkedes med, hvis man ikke er så IT vant. Endnu en grund til at NemID - ikke burde have lov til at anvende Java. Kunne godt tænke mig at se hvor stor grad borgere i DK har installeret ASK-Toolbar modsat andre lande som ikke benytter NemID.

  • 23
  • 2
Mads Knudsen

Lige efter problemerne startede ser det ud til at Nets pressechef har udtalt sig om test, http://www.version2.dk/artikel/nets-om-java-problemer-vi-har-maaske-ikke...
Bl.a. "Vi får typisk en beta-version af opdateringerne fra Oracle, så vi kan teste den" og "Det kan være en fejl hos os, hvor vi ikke har fået testet godt nok."
Ny siger de at ikke tester nye versioner af Java, da der ikke har været behov for det. Så er det jo ikke et spørgsmål om de har testet godtnok. De har jo slet ikke testet.
I redegørelse skriver de at de vil indtræde i Oracles Java pre-release program. Men er det ikke det de hele tiden har været, siden de jvf pressechefen får pre-releases fra Oracle.

Det lyder mest som om at Nets har fundet ud af at de som leverandør af en java-applet er nød til at forholde til hvad der sker i/med Java. Næste skridt må så være at lave en løsning der lever op til intentionerne med java og ikke udnytte de mulige smuthuller som utilsigtet er i Java. Hvis Java så ikke er godt nok, så må der laves en løsning der ikke er baseret på Java.

  • 24
  • 0
Henrik Pedersen

Jeg skulle lige til at fyre en af mine sædvanligt lange satiriske kommentarer af, da det gik op for mig at de får millioner af vores skattekroner til at drive vores digitale infrastruktur.

Vi er blevet, og bliver stadig, godt og grundigt røvrendt alle sammen....

  • 33
  • 2
Kristian Sørensen

Jeg ved godt der i Danmark er tradition for at sige:

  • "det kunne ingen jo forudsige"
  • "vi gør det bedre næste gang"
  • "det er alt for tidskrævende at teste"
  • "det bliver vi ikke målt på"
  • "så grundig test er en luksus vi ikke har råd til"
  • osv.
  • osv.
  • osv.

og så sker der ikke mere.

Men når der er tale om noget så samfundsvitalt som nemid, så bør man afvige fra traditionerne og sende alle internt i nets der havde forudsætninger for at forudse dette, men som ikke skreg så højt som Edward Snowden i fængsel for pligtforsømmelse.

Der kan de så flette fingre med de chefer som med en af ovennævnte floskler afviste førstnævnte gruppes venligt formulerede ønsker om at teste grundigt.

Hvilken af de to grupper der bør straffes strengest har jeg lidt svært ved at afgøre med mig selv.

De politikere og embedsmænd der har tvunget det her ned over hovederne på os stakkels danskere på trods af mange kvalificerede advarsler, bl.a. her på version2, bør der bygges et helt særligt fængsel til. De skal sidde der på livstid.

  • 22
  • 1
Sune Foldager

Ja, desværre kan man ikke regne med at opdateringer er bagudkompatible i praksis, selv om firmaet bag siger det. En af årsagerne er når man bruger APIer på en ikke-dokumenteret måde; den slags brug kan i sagens natur ikke garanteres at virke efter en opdatering.

Jeg arbejder et sted med en ret stor kodebase, og der havde vi flere problemer med opdatering fra .NET 4.0 til den "highly compatible" version 4.5. Det er klassiske ting som fx at kode op imod en bestemt stabil sortering som så ændrer sig. Da sorteringen aldrig har været dokumenteret stabil, kan det dårligt siges at være Microsofts skyld. Der var så også andre fejl som [i]var[/i] Microsofts skyld i visse tilfælde, men alligevel.

Som vi så for lidt tid siden kalder NemID-appletten nogle interne metoder via reflection, og så er man altså i en risikozone. Det kan være nødvendigt (eller gavnligt) at gøre den slags til tider, men det kræver at man har meget styr på sin opdateringsprocedure, og overblik over al brug af den slags kald i sin kodebase.

  • 14
  • 0
Peter Kyllesbeck

»Nets DanID oplyser endvidere, at det hidtil ikke har været Nets DanIDs praksis at teste nye opdateringer af Java, da opdateringerne hidtil har været bagudkompatible,« skriver styrelsen.

Til gengæld tester Nets NemID op mod nye versioner af Java, samt med nye versioner af de mest gængse browsere og styresystemer.
....
Belært af erfaringerne fra oktober, hvor det i tre døgn ikke var muligt at bruge NemID med den nyeste version af Java, får har Nets nu ændret procedure: ..

Jesper Kildebogaard og andre bør nok lige bemærke forskellen:
Opdatering og nye versioner.
Nets tester nye versioner men ikke opdateringer til en version, og det var netop en opdatering og ikke en nye version ved seneste udfald.
Men hvis man ikke længere kan regne med bagudkompatibilitet ved opdateringer inden for samme version, er der jo kun én vej: Teste alle opdateringer og nye versioner.

  • 8
  • 1
Jan Heisterberg

@Peter Kyllesbeck
Og hvor er det så lige du har gået i skole ?
Aha, nu ved jeg det: du har gået i salgsskole .......

Der er ingen objektiv forskel på version, opdatering, release, osv. Det er salgsgas - i mange tilfælde alene opfundet for at kunne tage penge for noget nyt - som så kaldes version.

Der burde blive ledige Jobs på lederplan efter denne bommert .....

  • 3
  • 6
Kristian Sørensen

For en del af ovenstående indlæg er der stemt "finger ned" en eller flere gange.

Men der er ikke skrevet kommentarer der udtrykker andet end enighed med de pågældende kommentarer?

Det kunne være dejligt om nogle af dem der har givet "finger ned" ville skrive en kommentar der forklarer deres syn på denne sag. Kun på den måde får man mulighed for at forholde sig til deres synspunkter.

  • 2
  • 6
Henrik Madsen

Ja, desværre kan man ikke regne med at opdateringer er bagudkompatible i praksis, selv om firmaet bag siger det.

Så vidt jeg husker så var de ting som Nets måtte putte ind i deres applet, ting som Oracle længe havde skrevet at de skulle putte i.

Update 45 håndhævede så bare de regler.

Hvis man længe har ignoreret producentens krav og levet på at producenten ikke har håndhævet disse krav, er det så ens egen skyld eller producentens, når ens skrammel pludseligt ikke virker. ?

  • 10
  • 2
Henrik Madsen

Men hvis man ikke længere kan regne med bagudkompatibilitet ved opdateringer inden for samme version, er der jo kun én vej: Teste alle opdateringer og nye versioner.

Hvis man nu starter med at overholde de design regler der er for java programmer som Oracle udsender så kan man vel også i dette tilfælde regne med bagudkompatibilitet.

Mon ikke kodefolkene har været dovne og bare har kodet løs. Da løsningen så virkede så stoppede man med udviklingen og udgav skidtet, istedetfor lige at se i dokumentationen om der var nogle ting som man skulle have med for at overholde design reglerne 100%

  • 6
  • 1
Tine Andersen

Fortsat!
Nu har jeg lige fået ny kode (så jeg kan tilgå netbank), men jeg kan ikke på nogen mulig måde logge på noget somhelst andet, der bruger NemID. Intet! Nu jeg ikke har et pas (koster mindst 700 kr- og jeg har ikke rejst udenlands siden 1996) eller kørekort (da jeg ikke har eller har haft dette, og anskaffelsen alene vil være på 12.000 kr), men som fortidspensionist har jeg et dokument (med billede), der bliver fornyet årligt ved personligt fremmøde: Mit mimrekort. Dette er så kun gyldigt i DSB/Hovedstadsområdet. Af sære grunde, og det SKAL fornyes årligt- ellers kan man snyde, være blevet rask eller afgå ved døden.

For at få tilgang til min e-journal, kræves der, at jeg møder op på mit borgerservice-center (i praksis det lokale bibliotek- hvor jeg ikke har været siden, jeg skulle have ny kode (der skal man OGSÅ møde op!) for at låne bøger. I praksis bruger jeg nu e-Reolen.... Men jeg skal møde op med dåbsattest og sygesikringsbevis- for at få adgang til mine data.

Det er af flere grunde besværligt, men DSB stoler på mig når jeg møder op og ligner billedet i mit stamkort- og har mit pensionsbrev med. NemID kræver samme personlige fremmøde- uden billedID. Det virker lidt bagvendt og unødigt besværligt.
Min bank- kræver ikke billedlegitimation ved netoverførsler. Men det er så også "kun" penge, som de kan få retur på forskellig vis.

Jeg har IKKE fået valget, om NemID til e-journaler fx, min er knyttet til banken, hvorfor jeg måtte have nyt login efter fem fejlslagne. Det var faktisk RIGTIG svært, at finde frem til informationerne om, hvad man så gør!
Der var masser af indforstået "sådan gør du med dit firma/medarbejdere", men det skulle jeg jo ikke bruge! Eller kunne bruge til en bønne.

Selv min nørd, syntes det var urimeligt svært at finde ud af. Hvor svært er det lige at lave en pop-up: Du har forsøgt at logge på med dit bank-NemID. Dette gælder ikke her, hvorfor du skal kontakte Borgerservice i din kommune. FREMFOR hele TRE muligheder. Det er ligesom ikke en gættekonkurrence, det her, men måske er det som Digital Tinglysning: Man har en dommer og en grafiker ansat, ikke folk, der har fingrene i sovsen.

Jeg er ihvertfald endnu mindre begejstret for NemID (og talkoder) end før- faktisk hader jeg det skrammel! Som talblind er mere end seks cifre nok til, at jeg sveder på knæene....

Mvh
Tine- der IKKE kan huske koder. Dem, er vi trods alt, en del af!

  • 8
  • 1
Henrik Madsen

Jeg har lige rundet avisernes netudgave.

Denne historie er ikke på forsiden.

Hvorfor dog ikke, det er da ugens eller månedens skandale.

Glem det, de har alt for travlt med at lynche Lars Løkke for småpenge samt harcelere over et ændret stemmesystem i Vild med dans.

De store aviser har eet og kun eet kriterie når de smider historier på.

§1. Giver det mange sidevisninger så vi får reklamekroner for bannerne.

En nyhed om at nedbruddet på 3 dage for NemID var fordi Nets har ignoreret design rules og ikke tester nye versioner inden de bliver released til alle brugerne, giver kun en brøkdel af de sidevisninger som en nyhed med et paparazi billede af en kendt skuespillers nipple-slip eller en nyhed om at man skal sende en anden SMS kode til 1234 for at stemme på Allan Simonsen i vild med svans.

  • 14
  • 0
Jesper Kleis

Selv synes jeg ikke det burde være muligt at lave thumbs down - i stedet kunne folk lave en kommentar om hvorfor man ikke synes indlægget er korrekt. Og så kunne andre der var enig i dette give det thumbs up.

Det villa give større transperans og gøre det lidt sværere bare at være negativ

  • 4
  • 6
Jan Heisterberg

@Jesper Poulsen
Nå, du har også gået i "salgsskolen" ......

Leverandører af programmel kan klassificere deres nyeste programmel som de vil, og de kan selv lave de klassifikationsregler som de ønsker at bruge. Det er ren praktik, og har været det i mange, mange år.

Så at tale om en "opdatering", som om det har en objektiv betydning, er ren og sær ordtrylleri uden reel mening. Det er måske både bluf og vildledledning.

Når Nets, med objektivt belæg, klandres for denne situation så skyldes det, at det er "børnelærdom" for it-ansvarlige, at der SKAL testes, altid, og især for systemer som er mission-critical (= væsentlige konsekvenser for brugere eller deres afhængige) eller too-big-to-fail (= rammer mange mennesker).
Mon ikke NetId falder i begge kategorier OG der derfor IKKE er undskyldninger for manglende, omhyggelige tests inden frigivelse.

  • 9
  • 1
Peter Kyllesbeck

Leverandører af programmel kan klassificere deres nyeste programmel som de vil, og de kan selv lave de klassifikationsregler som de ønsker at bruge. Det er ren praktik, og har været det i mange, mange år.

Så at tale om en "opdatering", som om det har en objektiv betydning, er ren og sær ordtrylleri uden reel mening. Det er måske både bluf og vildledledning.


Ja ja enhver fugl synger med sit næb.

Af de fremkomne kommentarer står det klart, at Nets tilsyneladende har undladt at implementere i henhold til javas specifikationer.

Så vidt jeg husker så var de ting som Nets måtte putte ind i deres applet, ting som Oracle længe havde skrevet at de skulle putte i.

Update 45 håndhævede så bare de regler.

Hvis man længe har ignoreret producentens krav og levet på at producenten ikke har håndhævet disse krav, er det så ens egen skyld eller producentens, når ens skrammel pludseligt ikke virker. ?

Svaret til spørgsmålet må være: Ja det er ens egen skyld!

  • 0
  • 0
Jimmy Christiansen

Der er ingen objektiv forskel på version, opdatering, release, osv. Det er salgsgas - i mange tilfælde alene opfundet for at kunne tage penge for noget nyt - som så kaldes version.

Den udtalelse mener jeg så ikke har meget hold i virkeligheden, ikke at det ikke forekommer. Men der er jo rigtig mange der ikke tager penge for deres software. Og de har også major/minor version og evt patchlevel.
http://www.gnu.org/prep/standards/standards.html#Releases
Her er der meget om versioner:
http://en.wikipedia.org/wiki/Software_versioning#Sequence-based_identifiers
http://en.wikipedia.org/wiki/Software_versioning#Semantic_versioning Se også "Odd-numbered versions for development releases" i det efterfølgende afsnit.
I det hele taget er der meget i det emne om versioner opdateringer og hvornår det er det ene eller det andet.

  • 0
  • 0
Lars Skovlund

Man kan vel vende den sådan, at når man baserer sit produkt på et tredjeparts-produkt, så har man ansvaret for at sætte sig ind i versioneringspolitikken for det produkt?
Især når man har skåret hjørner på den måde som Nets har gjort (kald af udokumenterede metoder via reflection, native kode i .jar-filen, etc.)

  • 2
  • 1
Rasmus Faber-Espensen

Så vidt jeg husker så var de ting som Nets måtte putte ind i deres applet, ting som Oracle længe havde skrevet at de skulle putte i.

Update 45 håndhævede så bare de regler.

Det er ikke korrekt.

Jeg skal ikke kunne sige, om det var præcist det, at DanID havde problemer med, men Java 7u45 opdateringen indførte blandt andet uden varsel Caller-Allowable-Codebase manifest-fil-attribuuten, som blev påkrævet for at man kan bruge LiveConnect fra signerede appletter.

Jeg er sikker på, at Oracle havde gode sikkerhedsgrunde til at indføre det, men det var klart en 'breaking change', og så vidt jeg kan se, holdt Oracle kortene tæt på kroppen omkring 7u45 og udsendte ikke nogen offentligt tilgængelige advarsler om at ændringerne ville komme før at de begyndte at distribuere opdateringen.

Det er naturligvis den risiko man tager, når man integrerer op mod tredje parts produkter, men også en Javascript-baseret løsning kunne i princippet blive ødelagt af en browser-opdatering.

  • 5
  • 1
Log ind eller Opret konto for at kommentere