Rendere pubblico senza perdere la firma

Rendere pubblico senza perdere la firma

Transpareo firma singolarmente ogni campo di un passaporto di prodotto, in modo che anche i campi protetti possano essere verificati autonomamente. Il lettore non è tenuto a fidarsi della piattaforma.

Un passaporto digitale di prodotto non mostra a tutti le stesse informazioni. Un’acquirente vede i dati pubblici. Un’officina di riparazione o un’azienda di ricondizionamento vede di più. Un’autorità di vigilanza del mercato vede tutto. Questo aspetto è stato chiarito e le norme europee lo stabiliscono ormai espressamente.

La questione interessante è più sottile: se a qualcuno vengono mostrati campi protetti oltre ai dati pubblici, può dimostrare che proprio quei campi siano autentici? Oppure deve fidarsi del fatto che la piattaforma li abbia selezionati correttamente e trasmessi senza modifiche?

Si immagini un notaio che non autentichi la lettera nel suo insieme, ma ogni paragrafo singolarmente. La lettera pubblica viene fornita a tutti. Chi ha diritto a ulteriori informazioni riceve i paragrafi aggiuntivi, e ciascuno di essi reca comunque il sigillo dello stesso notaio. È così che abbiamo costruito la nostra piattaforma. Nella maggior parte delle piattaforme, la risposta onesta alla domanda sopra riportata è: fiducia. Nel nostro caso è: prova, per ogni campo che viene aggiunto solo al momento della divulgazione. Questo articolo spiega perché tale differenza è importante e perché abbiamo scelto la strada più complessa.

La regola di accesso è la stessa per tutti

La normaEN 18239, la norma europea relativa ai diritti di accesso, alla sicurezza e alla riservatezza nel DPP, richiede che l’accesso sia controllato campo per campo: per ogni campo esiste una regola che stabilisce chi è autorizzato a visualizzarlo. Si tratta del requisito corretto, e non è difficile da soddisfare. Abbiamo analizzato in dettaglio quale sia lo status effettivo di queste norme nel nostro articolo dedicato alle norme armonizzate.

Il metodo usuale per ottenerlo è un filtro sul server. Il server riconosce chi effettua la richiesta, verifica ciò che tale persona è autorizzata a visualizzare e restituisce esattamente quella sezione. La norma non richiede altro. Il lettore deve fidarsi che il server abbia effettuato una selezione corretta e non abbia modificato nulla durante il percorso. Per un opuscolo pubblico ciò è accettabile. Per un valore su cui un operatore di trattamento basa il prezzo di una batteria usata, si tratta di una fiducia eccessiva.

C’è però un problema di cui la norma non si occupa: la selezione arriva senza sigillo.

La soluzione più ovvia consiste nel firmare i dati. Per le due estremità della scala, una firma ordinaria funziona bene: firmare la visualizzazione pubblica, firmare il set di dati completo. Come ciò avvenga nel dettaglio è descritto nella sezione «Firme e certificati» del DPP. È a metà che il sistema fallisce. Una firma sull’intero documento copre esattamente i campi che erano presenti al momento della firma. Se si rende visibile a un lettore autorizzato un campo protetto in più, tale campo si trova al di fuori dell’insieme firmato e gli giunge senza protezione. Nessuno si appresta a firmare in anticipo ogni possibile combinazione di «chi vede cosa», poiché il numero delle combinazioni cresce esponenzialmente. Si ricade quindi sul filtro senza sigillo, e il livello intermedio si basa nuovamente sulla fiducia.

Firmare ogni campo singolarmente

Esiste una struttura migliore, ed è su questa che costruiamo la piattaforma. Anziché firmare il documento finito come un unico blocco, il produttore specifica ogni campo singolarmente in un’unica operazione (per gli esperti di standard: la procedura W3C ecdsa-sd-2023).

Ogni visualizzazione parte quindi dagli stessi campi pubblici. Ciò che un lettore vede in più viene aggiunto campo per campo, e ciascuno di questi campi rimanda comunque alla chiave pubblica del produttore, offline, senza necessità di una nuova firma e senza dover riporre fiducia nell’ente che ha compilato la visualizzazione. I campi privi di diritti semplicemente mancano. Non sono oscurati, ma non sono affatto presenti, e nulla trapela riguardo a essi.

Un ciclo: l’officina di riparazione

Un’officina di riparazione ha dichiarato un interesse legittimo per una batteria, uno dei livelli di accesso espressamente previsti dal regolamento sulle batterie. Il sistema della sua officina si autentica presso la nostra interfaccia con la propria chiave e richiede il pass. La risposta è lo stesso pass pubblico che vede anche l’acquirente, arricchito esattamente di un campo: le istruzioni di smontaggio, che vengono rese visibili solo ai lettori autorizzati. Nessun secondo documento, nessuna versione speciale.

Prima che l’azienda si affidi a questo campo, il suo software verifica la firma allegata confrontandola con la chiave pubblica del produttore. Se la verifica della firma ha esito positivo, anche per quanto riguarda il campo aggiuntivo, l’azienda sa che: queste istruzioni provengono esattamente dal produttore, senza che nessuno lungo il percorso le abbia modificate. Se la verifica non va a buon fine, l’azienda mette da parte l’intera visualizzazione. L’attività di garantire che l’azienda riceva esattamente i campi a cui ha diritto è affidata al nostro sistema di controllo degli accessi. La novità risiede nella fase successiva: l’azienda verifica autonomamente l’autenticità di ciò che riceve, senza interpellarci.

Perché «inalterato» è il punto cruciale

Un sigillo intatto non garantisce che il contenuto sia veritiero. Significa: questo è esattamente ciò che ha scritto il produttore e da allora nessuno ne ha alterato nemmeno un carattere. In questo modo, chiunque abbia semplicemente trasmesso il documento viene escluso dalla questione della fiducia: la memoria tampone, la rete, l’archivio, noi.

Chi vi ha consegnato il passaporto non ha più alcuna importanza.

E un sigillo è binario. O regge o non regge, non esiste un sigillo «mezzo rotto». Pertanto, non si tratta di una differenza graduale se i campi aggiuntivi vi giungono con o senza il loro sigillo: senza sigillo, non sono documentati in modo leggermente meno completo, ma non sono affatto documentati.

Entrambe le procedure di visualizzazione

Chiunque può verificarlo personalmente. La Transpareo Time Machine è la nostra app open source per la visualizzazione dei passaporti di prodotto: sfoglia la cronologia delle versioni di un passaporto e, nel farlo, verifica ogni firma direttamente nel browser dell’utente, senza richiedere alcuna richiesta al nostro server. Il passaporto di una maglietta riporta una firma che copre l’intero documento, mentre quello di una batteria riporta l’approvazione campo per campo.

Entrambi sono standard W3C aperti, che chiunque può implementare. La firma sull’intero documento è decisamente più economica da realizzare e gestire, ed è sufficiente per chi fornisce solo dati pubblici. Il fatto che Transpareo Time Machine supporti entrambe le procedure è intenzionale: il Pass rimane un formato standard comune, che può essere verificato da qualsiasi strumento compatibile, non solo dal nostro.

A chi giova e cosa richiede la norma

A chi viene effettivamente divulgato qualcosa al di là dei dati pubblici? Non all’acquirente occasionale. Si tratta del gestore che valuta il valore di un pacco batterie usato, dell’assicuratore che quantifica un rischio, del riciclatore che separa le sostanze chimiche, dell’autorità che istruisce un caso. Lettori le cui decisioni dipendono dal denaro o dalla sicurezza. E, nell’approccio tradizionale, proprio quei destinatari che non ricevono alcun marchio di garanzia per i campi su cui si basa la loro decisione. Riteniamo che un marchio di garanzia debba avere lo stesso significato per tutti: ogni campo visualizzato proviene dal produttore e da allora non è stato alterato. Un sigillo che copre solo i campi pubblici è un sigillo incompleto.

Lo diciamo apertamente: nulla di tutto ciò è obbligatorio. La norma EN 18239 richiede che l’accesso sia controllato, e un filtro sul server lo fa in modo impeccabile. Rendiamo verificabili i campi divulgati come ulteriore misura, poiché il senso stesso di un passaporto firmato è che nessuno debba fidarsi della piattaforma. Escludere il livello intermedio come eccezione ripristina proprio quella fiducia che la firma avrebbe dovuto eliminare.

Lo stesso principio consente di tralasciare un campo

Definire ogni singolo campo comporta una seconda caratteristica, che è effettivamente richiesta dal diritto europeo. Il Regolamento generale sulla protezione dei dati conferisce alle persone il diritto di far cancellare i propri dati personali. Un record di dati firmato come un unico blocco non può soddisfare tale requisito senza distruggere la propria firma.

Poiché in questo caso ogni campo è indipendente, è possibile rimuovere un singolo campo, mentre tutto il resto continua a essere valido. Se per errore dovessero finire dei dati personali in un passaporto, questi verrebbero eliminati in modo pulito e il passaporto rimarrebbe valido: nessuna riemissione, nessuna interruzione della cronologia. I campi che la legge impone di conservare rimangono inalterati; ciò che è cancellabile può essere eliminato su richiesta, anche a distanza di anni.

Perché è difficile e come abbiamo risolto il problema

Non siamo stati noi a inventare questa procedura: si tratta di uno standard pubblico del W3C. Non è difficile avere l’idea. È difficile realizzarla in modo tale che un passaporto sia ancora valido tra dieci anni. Una firma ordinaria opera sui byte di un documento. La firma per singolo campo opera sui singoli dati in esso contenuti; a tal fine, prima della firma, il passaporto viene convertito in un formato fisso in cui ogni dato è rappresentato come una frase a sé stante. Questo formato deve riemergere, carattere per carattere, tra dieci anni; in caso contrario, il sigillo non sarà più valido. Tre elementi apparentemente insignificanti ostacolano questo processo, e noi li abbiamo risolti tutti e tre alla radice.

I numeri perdono il proprio tipo. Un valore come 2,0, dopo essere passato attraverso un formato dati convenzionale, ritorna come 2. Per un essere umano è la stessa cosa, ma per il formato fisso si tratta di una frase diversa. Nel nostro sistema ogni valore viene memorizzato con il proprio tipo, e la pubblicazione viene interrotta non appena compare anche un solo numero privo di tipo.

Le denominazioni non costituiscono di per sé un significato. Ogni nome di campo deve ricondurre a un significato univoco in un dizionario; in caso contrario, il campo scompare silenziosamente durante la conversione e il sigillo non lo copre. Da noi ogni dizionario è disponibile localmente e non viene mai scaricato dalla rete; un nome di campo sconosciuto interrompe la firma, anziché fornire silenziosamente un risultato vuoto.

Le voci necessitano di nomi fissi. Ogni voce nel documento porta, nel nostro sistema, un identificativo fisso, affinché la sintassi rimanga la stessa ad ogni esecuzione, anziché assegnare ogni volta nuovi nomi ausiliari.

La parte più delicata riguarda la chiave propria del produttore. Per ogni emissione è necessaria una chiave aggiuntiva di breve durata, con la quale i campi divulgabili vengono firmati singolarmente. Questa chiave viene generata e scartata dal produttore stesso. Se fosse in nostro possesso, potremmo inventare singoli campi a posteriori. Ogni passaporto reca due sigilli di questo tipo: uno del produttore e uno di Transpareo, anche per un singolo campo reso pubblico.

Per noi, questo impegno è ben ripagato. Grazie all’ Transpareo Proofchain, ogni pass viene firmato al momento della pubblicazione e collegato alla versione precedente, mentre l’ Transpareo Vault, l’archivio inalterabile decennale, entra in funzione non appena i pass vengono registrati nel registro UE. Firmare ogni singolo campo anziché l’intero blocco rappresenta un’estensione di questo nucleo, non un’aggiunta superflua.

A che punto siamo

Abbiamo optato per la prova, a beneficio di ogni lettore, poiché un sigillo dovrebbe avere un unico significato, indipendentemente da chi lo osservi. Per chi desidera vederne il funzionamento: i due passaporti di esempio collegati sopra possono essere verificati direttamente nel browser, senza dover interpellare un server.

Domande relative a questo articolo

Esiste una norma che prescrive la firma campo per campo?

No. La norma europea EN 18239, relativa ai diritti di accesso nel DPP, richiede che l’accesso sia controllato campo per campo, e un filtro sul server soddisfa pienamente tale requisito. Rendere verificabili anche i campi resi pubblici è una nostra scelta e non un requisito imposto da alcuna normativa. Riteniamo che tale impegno sia giustificato, poiché il senso stesso di un pass firmato risiede nel fatto che nessuno debba fidarsi della piattaforma. Per quanto riguarda lo status effettivo di tali norme, ne parliamo nel nostro articolo sulle norme armonizzate.

Pubblichiamo solo dati di dominio pubblico. È davvero necessario?

Probabilmente no, e lo affermiamo chiaramente. Una firma che copre l’intero documento include un passaporto i cui campi sono tutti pubblici, ed è decisamente più economica da realizzare e gestire. L’autenticazione campo per campo diventa vantaggiosa non appena si aggiunge un secondo gruppo di destinatari, ad esempio una rete di assistenza, un’azienda di riciclaggio o un ente pubblico, ai quali altrimenti fornirebbe estratti privi di sigillo. Entrambe le procedure sono standard W3C aperti (ecdsa-sd-2023 per la firma campo per campo); qualsiasi strumento che supporti lo standard è in grado di verificarle, ed entrambe sono attualmente operative nella Transpareo Time Machine, sul passaporto di una maglietta e su quello di una batteria.

È possibile cancellare successivamente i dati personali senza invalidare il passaporto?

Sì, e questo aspetto è effettivamente previsto dal diritto europeo. Il Regolamento generale sulla protezione dei dati conferisce alle persone il diritto di ottenere la cancellazione dei propri dati personali, e un record di dati firmato come blocco non può soddisfare tale richiesta senza distruggere la propria firma. Poiché in questo caso ogni campo è definito separatamente, è possibile rimuovere un singolo campo, mentre tutto il resto continua a essere valido, senza necessità di riemissione e senza interruzioni nella cronologia delle versioni. I campi che la legge richiede di conservare rimangono inalterati.

Chi detiene la chiave di firma?

Ogni passaporto reca due sigilli, e uno di essi può essere il Vostro. Ogni emissione richiede inoltre una chiave a durata limitata che firmi singolarmente i campi divulgabili; tale chiave viene generata e scartata dal produttore stesso, poiché se fosse in nostro possesso potremmo inventare singolarmente i campi a posteriori. Verifichiamo il sigillo restituito confrontandolo con la chiave pubblica archiviata, prima di ritenerlo attendibile. Ogni passaporto reca quindi due sigilli di due enti indipendenti, sia per un singolo campo reso pubblico che per l’intero set di dati.

Il pass sarà ancora valido tra dieci anni?

È proprio qui che risiede la complessità. La firma campo per campo si basa sui singoli dati di un documento anziché sui suoi byte; pertanto, lo stesso formato fisso deve essere riprodotto, carattere per carattere, anche a distanza di un decennio. Tre fattori compromettono questa integrità, e noi li abbiamo eliminati alla radice tutti e tre. Ogni valore viene memorizzato con il proprio tipo, ogni dizionario è conservato presso di noi e non viene mai recuperato dalla rete, e ogni voce è contrassegnata da un identificativo fisso. L’archivio immutabile decennale è stato creato ed entrerà in vigore non appena i passaporti saranno registrati nel registro UE. Maggiori informazioni al riguardo sono disponibili nella nostra analisi del regolamento sul registro UE.

Aggiornamenti sui livelli di accesso e sulle certificazioni

Informazioni selettive, firme elettroniche e lo sviluppo degli standard DPP: ogni mese, in sintesi, direttamente nella vostra casella di posta.