Et digitalt produktpas viser ikke det samme for alle. En køber kan se de offentlige data. Et værksted eller en genbrugsvirksomhed kan se mere. En markedstilsynsmyndighed kan se det hele. Det er afklaret, og de europæiske standarder fastslår det nu udtrykkeligt.
Det interessante spørgsmål er mere diskret: Hvis nogen får adgang til beskyttede felter ud over de offentlige data, kan vedkommende så bevise, at netop disse felter er ægte? Eller skal vedkommende stole på, at platformen har udvalgt dem korrekt og videregivet dem uændret?
Forestil dig en notar, der ikke bekræfter brevet som helhed, men hvert afsnit for sig. Det offentlige brev får alle. Den, der har ret til mere, får de ekstra afsnit med, og hvert af dem bærer fortsat den samme notars segl. Sådan har vi bygget vores platform. På de fleste platforme er det ærlige svar på ovenstående spørgsmål: tillid. Hos os er svaret: bevis, for hvert felt, der først tilføjes ved offentliggørelsen. Denne artikel forklarer, hvorfor denne forskel er vigtig, og hvorfor vi har valgt den mere omstændelige vej.
Alle overholder adgangsreglen på samme måde
EN 18239, den europæiske standard for adgangsrettigheder, sikkerhed og fortrolighed i DPP, kræver, at adgangen styres felt for felt: For hvert felt er der en regel for, hvem der må se det. Det er det rigtige krav, og det er ikke svært at opfylde. Hvilken status disse standarder overhovedet har, har vi redegjort for i vores artikel om de harmoniserede standarder.
Den sædvanlige måde at gøre dette på er ved hjælp af et filter på serveren. Serveren ved, hvem der forespørger, slår op, hvad denne person må se, og leverer netop dette udsnit tilbage. Mere kræver standarden ikke. Der er dog en hage, som standarden ikke tager højde for: Udsnittet leveres uden et sikkerhedsmærke. Læseren må stole på, at serveren har udvalgt indholdet ærligt og ikke har ændret noget undervejs. For et offentligt informationsblad er det i orden. For en værdi, som en forarbejder straks baserer prisen på et brugt batteri på, kræver det stor tillid.
Den oplagte løsning er at signere dataene. For begge ender af skalaen fungerer en almindelig signatur godt: at signere den offentlige visning og at signere det fulde datasæt. Hvordan det foregår i detaljer, fremgår af afsn ittet »Signaturer og certifikater« i DPP. Midtvejs går det galt. En signatur på hele dokumentet dækker netop de felter, der var til stede ved signeringen. Hvis man yderligere åbner et beskyttet felt for en autoriseret læser, ligger dette felt uden for den signerede mængde og når frem til læseren uden at være dækket. Ingen vil på forhånd underskrive alle mulige kombinationer af »hvem ser hvad«, da antallet af kombinationer eksploderer. Man falder tilbage på filteret uden segl, og det midterste trin bygger igen på tillid.
Underskriv hvert felt enkeltvis
Der findes en bedre konstruktion, og det er den, vi bygger platformen på. I stedet for at underskrive det færdige dokument som en samlet enhed fastlægger producenten i én enkelt gennemgang hvert felt enkeltvis (for dem, der kender standarderne: W3C-proceduren ecdsa-sd-2023).
Hver visning starter således med de samme offentlige felter. Det, som en læser derudover får at se, tilføjes felt for felt, og hvert af disse felter fører fortsat tilbage til producentens offentlige nøgle - offline, uden ny underskrivning og uden tillid til den instans, der har sammensat visningen. Felterne uden krav mangler ganske enkelt. De er ikke sløret, men findes slet ikke, og der siver intet igennem om dem.
Et gennemløb: reparationsværkstedet
Et reparationsværksted har anmeldt en berettiget interesse i et batteri, hvilket er et af de adgangsniveauer, som batteriforordningen udtrykkeligt foreskriver. Værkstedets system logger ind på vores grænseflade med sin nøgle og henter passet. Svaret er det samme offentlige pass, som køberen også ser, men med præcis ét felt mere: demonteringsvejledningen, som kun vises for berettigede læsere. Intet andet dokument, ingen særudgave.
Inden virksomheden stoler på dette felt, kontrollerer dens software det medfølgende segl op mod producentens offentlige nøgle. Hvis kontrollen lykkes, også med hensyn til det ekstra felt, ved virksomheden: Denne vejledning stammer tegn for tegn fra producenten, og ingen undervejs har ændret noget ved den. Hvis kontrollen ikke går igennem, lægger virksomheden visningen som helhed til side. At virksomheden modtager præcis de felter, den har ret til, er fortsat vores adgangskontrols opgave. Det nye er det efterfølgende trin: Virksomheden kontrollerer selv, om det, der modtages, er ægte, uden at spørge os.
Hvorfor »ubrudt« er hele pointen
Et intakt segl siger ikke, at indholdet er sandt. Det siger: Det er præcis, hvad udstederen har skrevet, og siden da har ingen ændret et eneste tegn. Dermed falder alle, der blot har videregivet dokumentet, uden for tillidsspørgsmålet: mellemhukommelsen, nettet, arkivet, os. Hvem der har givet dig paset, spiller ingen rolle længere.
Og et segl er binært. Enten holder det, eller også holder det ikke - der findes ikke noget halvt brudt segl. Derfor er det ikke en gradvis forskel, om de ekstra felter ankommer til dig med eller uden deres segl: Uden segl er de ikke blot lidt mindre pålidelige - de er slet ikke pålidelige.
Begge fremgangsmåder kan ses her
Det kan enhver selv kontrollere. Transpareo Time Machine er vores open source-app til visning af produktpas: Den bladrer gennem et pas’ versionshistorik og beregner samtidig hver signatur i brugerens browser uden at spørge en af vores servere. Passet for en T-shirt bærer en signatur, der dækker hele dokumentet, mens passet for et batteri har feltvis godkendelse.
Begge er åbne W3C-standarder, som alle kan implementere. Signaturen over hele dokumentet er betydeligt billigere at oprette og drifte, og hvis man kun leverer offentlige data, er det tilstrækkeligt. Det er med vilje, at Time Machine mestrer begge metoder: Passet forbliver et almindeligt standardformat, som ethvert passende værktøj kan kontrollere, ikke kun vores.
Hvem har gavn af det, og hvad kræver standarden?
Hvem får overhovedet oplyst noget ud over de offentlige data? Ikke den tilfældige køber. Det er forarbejdningsvirksomheden, der vurderer, hvad et brugt batteripakke er værd, forsikringsselskabet, der fastsætter prisen på en risiko, genvindingsvirksomheden, der sorterer kemikalier, og myndigheden, der opbygger en sag. Læsere, hvis beslutninger afhænger af penge eller sikkerhed. Og i den gængse tilgang netop de læsere, der ikke får et mærke for de felter, som deres beslutning bygger på. Vi mener, at et kontrolmærke bør betyde det samme for alle: Hvert felt, der vises, stammer fra producenten og er ikke blevet rørt siden da. Et mærke, der kun gælder for de offentlige felter, er et halvt mærke.
Vi siger det ligeud: Intet af dette er lovpligtigt. EN 18239 kræver, at adgangen kontrolleres, og et filter på serveren klarer det upåklageligt. At gøre de offentliggjorte felter kontrollerbare er noget, vi gør oven i købet, fordi hele meningen med et signeret pas er, at ingen behøver at stole på platformen. At udtage det mellemste niveau som en undtagelse genopretter netop den tillid, som signaturen skulle fjerne.
Det samme princip gør, at et felt kan glemmes
At fastlægge hvert felt enkeltvis medfører en anden egenskab, og denne kræves faktisk af europæisk lovgivning. Den generelle forordning om databeskyttelse giver personer ret til at få personoplysninger slettet. Et datasæt, der er signeret som en samlet enhed, kan ikke opfylde dette krav uden at ødelægge sin egen signatur.
Da hvert felt her står for sig selv, kan et enkelt felt fjernes, mens resten fortsat kan kontrolleres. Hvis personoplysninger ved en fejl ender i et pas, kan de fjernes fuldstændigt, og passet forbliver gyldigt: ingen genudstedelse, ingen brudt historik. De felter, som loven kræver skal opbevares, forbliver intakte; det, der kan slettes, kan slettes på anmodning, selv flere år senere.
Hvorfor det er svært, og hvordan vi har løst det
Vi har ikke opfundet metoden; det er en offentlig W3C-standard. Det er ikke svært at få ideen. Det svære er at udforme den sådan, at et pas stadig kan valideres om ti år. En almindelig signatur beregnes ud fra dokumentets bytes. Den feltbaserede signatur beregnes ud fra de enkelte oplysninger, og derfor omdannes passet inden signeringen til en fast skrivemåde, hvor hver oplysning står som en separat sætning. Denne form skal om ti år kunne gengives tegn for tegn, ellers passer intet segl længere. Tre ubetydelige ting står i vejen for dette, og vi har løst alle tre ved roden.
Tal mister deres type. En værdi som 2,0 kommer tilbage som 2 efter en runde gennem et almindeligt dataformat. For et menneske er det det samme, for den faste skrivemåde er det en anden sætning. Hos os gemmes hver værdi med sin type, og offentliggørelsen afbrydes, så snart blot ét tal uden type dukker op.
Betegnelser er ikke det samme som betydning. Hvert feltnavn skal kunne henføres til en entydig betydning i en ordbog, ellers forsvinder feltet lydløst under konverteringen, og signaturen dækker det ikke. Hos os findes hver ordbog lokalt og hentes aldrig via nettet; et ukendt feltnavn stopper signeringen i stedet for stille og roligt at levere et tomt resultat.
Indtastninger skal have faste navne. Hver indtastning i dokumentet har hos os en fast identifikator, så skrivemåden forbliver den samme ved hver gennemløb, i stedet for at der hver gang tildeles nye hjælpenavne.
Den mest følsomme del ligger i producentens egen nøgle. For hver udstedelse kræves der en ekstra, kortvarig nøgle, som de felter, der kan offentliggøres, underskrives med enkeltvis. Denne nøgle genereres og kasseres af producenten selv. Lå den hos os, kunne vi opfinde enkelte felter efterfølgende. Hvert pas bærer to sådanne segl, et fra producenten og et fra Transpareo, også for et enkelt offentliggjort felt.
For os ligger denne indsats på det rette sted. Hvert pas signeres ved offentliggørelsen og kædes sammen med den forrige version, og det uforanderlige tiårige arkiv træder i kraft, så snart pasene er registreret i EU-DPP-registret. At signere hvert felt i stedet for hele blokken er en udvidelse af denne kerne, ikke et påsæt.
Hvor vi står
Vi har valgt beviset for enhver læser, fordi et segl skal betyde én ting, uanset hvem der ser på det. Hvis du vil se, hvordan det fungerer: De to eksempelsertifikater, der er linket til ovenfor, kan kontrolleres direkte i browseren uden at spørge en server.
Spørgsmål til dette indlæg
Foreskriver en standard, at signaturen skal angives felt for felt?
Nej. EN 18239, den europæiske standard for adgangsrettigheder i DPP, kræver, at adgangen styres felt for felt, og et filter på serveren opfylder dette fuldt ud. At gøre de offentliggjorte felter kontrollerbare ud over dette er vores egen beslutning og ikke et krav, som nogen regulering stiller. Vi anser indsatsen for berettiget, fordi hele pointen med et signeret pas er, at ingen behøver at stole på platformen. Hvilken status disse standarder overhovedet har, fremgår af vores indlæg om de harmoniserede standarder.
Vi offentliggør kun offentlige data. Er det nødvendigt?
Sandsynligvis ikke, og det siger vi også helt klart. En signatur, der dækker hele dokumentet, omfatter et pas, hvor alle felter er offentlige, og den er betydeligt billigere at oprette og drifte. Feltvis godkendelse er umagen værd, så snart der kommer en anden målgruppe til, f.eks. et reparationsnetværk, en genvindingsvirksomhed eller en myndighed, som du ellers ville udlevere uddrag uden segl til. Begge metoder er åbne W3C-standarder (ecdsa-sd-2023 for feltvis signatur); ethvert værktøj, der understøtter standarden, kan verificere dem, og begge kører i dag i Transpareo Time Machine - på et T-shirts pas og på et batteris pas.
Kan personoplysninger slettes på et senere tidspunkt, uden at paset bliver ugyldigt?
Ja, og dette krav er faktisk fastsat i EU-lovgivningen. Den generelle forordning om databeskyttelse giver borgerne ret til at få personoplysninger slettet, og et datasæt, der er signeret som en blok, kan ikke imødekomme dette krav uden at ødelægge sin egen signatur. Da hvert felt her er fastlagt for sig, kan et enkelt felt fjernes, mens alt andet fortsat er gyldigt, uden at der skal udstedes en ny version og uden at versionshistorikken brydes. De felter, som loven kræver, at man opbevarer, forbliver intakte.
Hvem har signaturnøglen?
Hvert pas er forsynet med to segl, og det ene af dem kan være dit. Hver udstedelse kræver desuden en kortvarig nøgle, der underskriver de felter, der kan offentliggøres, enkeltvis; denne genereres og kasseres af producenten selv, for hvis vi havde den, kunne vi efterfølgende opfinde enkelte felter. Vi kontrollerer det returnerede segl mod den gemte offentlige nøgle, før vi stoler på det. Hvert pas bærer dermed to segl fra to uafhængige instanser, både for et enkelt offentliggjort felt og for hele datasættet.
Er et pas stadig gyldigt om ti år?
Det er netop dér, indsatsen ligger. Den feltbaserede signatur beregnes ud fra de enkelte oplysninger i et dokument i stedet for dets bytes, så den samme faste skrivemåde skal altså et årti senere kunne gengives tegn for tegn. Tre ting forstyrrer denne proces, og vi har løst alle tre ved roden. Hver værdi gemmes med sin type, alle ordbøger findes hos os og hentes aldrig via nettet, og hver post har en fast identifikator. Det uforanderlige tiårige arkiv er oprettet og træder i kraft, så snart pasene er registreret i EU-registret. Læs mere herom i vores analyse af registerforordningen.




