Et digitalt produktpas viser ikke det samme for alle. En køber kan se de offentligt tilgængelige oplysninger. Et værksted eller en genbrugsvirksomhed kan se mere. En markedsovervågningsmyndighed kan se det hele. Det er afklaret, og de europæiske standarder fastslår det nu udtrykkeligt.
Det interessante spørgsmål er mere subtilt: 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 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 betyder noget, 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 returnerer netop dette udsnit. Mere kræver standarden ikke. Læseren må stole på, at serveren har udvalgt oplysningerne korrekt og ikke har ændret noget undervejs. Til et offentligt informationsblad er det i orden. For en værdi, som en forarbejder straks baserer prisen på et brugt batteri på, er det en stor tillid.
Der er dog en hage, som standarden ikke tager højde for: Udsnittet leveres uden segl.
Den oplagte løsning er at signere dataene. I 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 afsnittet om signaturer og certifikater i DPP. I midten går det galt. En signatur på hele dokumentet dækker netop de felter, der var til stede ved signeringen. Hvis man yderligere giver en autoriseret læser adgang til et beskyttet felt, ligger dette felt uden for den signerede mængde og modtages af læseren uden dækning. 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 udbyderen 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 kan stadig spores tilbage til producentens offentlige nøgle - offline, uden ny signering 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 for 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, verificerer dens software det medfølgende segl ved hjælp af producentens offentlige nøgle. Hvis signaturkontrollen lykkes - også for det ekstra felt - ved virksomheden: Denne vejledning stammer tegn for tegn fra producenten, og ingen undervejs har ændret noget ved den. Hvis kontrollen ikke lykkes, lægger virksomheden visningen som helhed til side. Det er vores adgangskontrols opgave at sikre, at virksomheden kun modtager de felter, den har ret til. 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 producenten 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 til gennemsyn
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 enkelt signatur i brugerens browser uden at forespø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, der dækker hele dokumentet, er betydeligt billigere at oprette og vedligeholde, og hvis man kun leverer offentlige data, er det tilstrækkeligt. Det er helt bevidst, at Transpareo Time Machine understøtter 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 oplysninger 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 prissætter 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 ændret siden. Et mærke, der kun gælder for de offentlige felter, er et halvt mærke.
Vi siger det helt åbent: 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 er gyldigt. 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 å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 før signeringen til en fast skriftform, hvor hver oplysning står som en separat sætning. Denne form skal om ti år fremkomme tegn for tegn igen, ellers passer ingen forsegling 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, men 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 der dukker blot ét tal uden type op.
Betegnelser er ikke det samme som betydning. Hvert feltnavn skal kunne spores tilbage til en entydig betydning i en ordbog, ellers forsvinder feltet ubemærket under konverteringen, og seglet 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 tildele nye hjælpenavne hver gang.
Den mest følsomme del ligger i producentens egen nøgle. Til hver udstedelse kræves der en ekstra, kortvarig nøgle, som de felter, der kan offentliggøres, underskrives med hver for sig. Denne nøgle genereres og kasseres af producenten selv. Hvis den lå 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 er denne indsats en nødvendighed. Med Transpareo Proofchain bliver hvert pas signeret ved offentliggørelsen og kædet sammen med den forrige version, og Transpareo Vault - det uforanderlige tiårige arkiv - træder i kraft, så snart passene er registreret i EU-registeret. At underskrive 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 hver 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, at 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 fremkomme tegn for tegn. Tre ting forstyrrer dette, og vi har løst alle tre ved roden. Hver værdi gemmes sammen 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-registeret. Læs mere herom i vores analyse af registerforordningen.




