- 9 -
LA MID: IL PROBLEMA DEL SOFTWARE SU STRUMENTI DI TIPO ELETTRONICO
● Il ruolo del software su tutti gli strumenti elettronici
● L’obbligo di identificazione del software su gli strumenti di misura
● La protezione del software
Tutti conosciamo l’enorme diffusione delle tecnologie informatiche nei settori della vita moderna: smartphone, televisori, elettrodomestici, computer, ecc. Ciascuno di questi dispositivi è caratterizzato dal presentare componenti “materiali” che ricadono cioè sotto l’osservazione dei 5 sensi – il c.d. hardware – ed un altro elemento – il c.d. software – elemento “impalpabile”, il quale è corresponsabile delle funzioni svolte dall’ hardware: entrambi concorrono a produrre il risultato atteso per quel determinato dispositivo.
Il software è in buona sostanza, un insieme di istruzioni che il programmatore scrive in linguaggio comprensibile dall’uomo in formato c.d. sorgente -, affinché il dispositivo esegua certi compiti o azioni. Tali istruzioni non sono però immediatamente leggibili dal microprocessore o CPU, il quale “recepisce” solo sequenze di 0 ed 1 (valori binari): a tale scopo, il programma scritto in linguaggio ad alto livello (comprensibile all’uomo) deve subire una prima elaborazione da parte di uno speciale programma, chiamato “Compilatore”, il quale ha il compito di trasformare l’insieme di istruzioni, in sequenze di “0” e di “1”. Tale passaggio genera un “file” in formato eseguibile: lo scopriamo andando a leggere l’estensione del Nomefile seguita da un punto e dalla scritta exe, che vuol dire appunto “eseguibile” altrimenti detto “linguaggio macchina”, perché è l’unico comprensibile dalla CPU. Questo testo è stato per l’appunto prodotto da un programma che si chiama Word.exe.
Pertanto il software è l’elemento che contiene e costituisce tutta “l’intelligenza” di un dispositivo che implementa tecnologie informatiche: è l’elemento che fornisce le istruzioni all’hardware circa i compiti che esso deve svolgere allo scopo di far compiere al dispositivo specifiche funzione piuttosto che altre; la variazione del software di funzionamento si riverbera sul dispositivo in maniera tale che le sue funzioni cambiano in ragione delle variazioni eventualmente apportate.
Questa situazione riguarda ovviamente anche gli strumenti di misura elettronici: sia quelli di tipo nazionale che quelli regolati dalla MID. Un distributore di carburanti, ad esempio, è fondamentalmente costituito da un complesso di organi e di tubazioni idrauliche ove scorre il carburante; tra questi, l’organo in cui si forma la grandezza metrologica di base è il c.d. misuratore. Il liquido aspirato da una pompa adescante nel serbatoio interrato, viene poi spinto ed entra nelle camere di misura di cui è costituito il misuratore stesso. Le camere sono a volume fisso costante, sicché ad ogni ciclo completo, dal tubo di uscita del misuratore esce una quantità di liquido a volume costante: quello delle camere automisuratrici di cui si compone il misuratore vero e proprio. Il moto rotatorio dell’albero del misuratore impegna un organo detto “Pulser” il quale trasforma il moto di rotazione in una serie di impulsi che poi vengono tramessi alla testata elettronica indicatrice allo scopo di rendere intellegibile all’uomo, il volume di carburante complessivamente erogato.
Il Pulser suddetto è un vero e proprio convertitore A/D – acronimo di Analogico/Digitale -, in quanto trasforma il moto di rotazione dell’albero del misuratore in impulsi elettronici spediti poi alla testata contometrica del distributore.
Nella suddetta testata, tra i vari organi è presente un componente elettronico a stato solido, - in genere una Eprom o una Flash-Eprom - sul quale è residente il “software di funzionamento”- del distributore: esso è deputato a trasformare gli impulsi prodotti dal Pulser nella maniera con la quale il programmatore ha scritto il software, ovvero di come ha prestabilito che, ad esempio, 1000 impulsi equivalgano ad 1 litro di prodotto erogato, mediante un’istruzione del tipo “1000 imp = 1 litro”.
Come fare pertanto per modificare il valore del quantitativo erogato ? Ho essenzialmente 2 strade da seguire: o agisco sull’hardware modificando il volume della camera di misura (del misuratore) – andando quindi a produrre una variazione visibile (perché devo rimuovere i sigilli posti a tutela del misuratore) -, oppure agisco sul software, andando semplicemente a modificare l’istruzione “1000 imp = 1 litro” in “900 imp = 1 litro”: in tal caso erogherò effettivamente il 10% di prodotto “in meno” segnato dalla testata. La modifica testé illustrata si ottiene andando a modificare solamente una riga del software di funzionamento, e quel che più grave è il fatto che tale modifica viene svolta senza rimuovere alcun sigillo di protezione.
A ciò le autorità nazionali (periodo ante MID) ritennero di ovviare al problema prevedendo un sistema di identificazione del software basato sull’utilizzo di una sigla identificativa: sequenza alfanumerica che veniva scritta su targhetta adesiva applicata sul componente a stato solido presente nella testata indicatrice dei volumi erogati e/o richiamabile sul display della testata. Il forte limite di tale sistema è che la sigla identificativa finisce per far stato del contenuto del software.
Chiarisco con un esempio. Se prendo un libro il cui titolo in copertina è la Divina Commedia, stacco tutto il blocco delle pagine che lo costituiscono, e al suo posto vi incollo tutto il blocco di pagine che costituisce il libro Cuore, chiunque osservi dall’esterno il testo della Divina Commedia è indotto a ritenere che all’interno della stessa rinvenga i 3 Cantici: in realtà, se apre il libro si trova invece il contenuto del libro Cuore. Quanto detto ci mostra chiaramente l’enorme limitazione, rectius, l’inutilità di un meccanismo del genere.
La questione è ulteriormente gravata dal fatto che il Mi.S.E. (attuale M.I.M.It.) – titolare della funzione di approvazione degli strumenti di misura, richiedeva per espressa previsione normativa – che il fabbricante richiedente l’approvazione di un nuovo strumento, se di tipo elettronico, depositasse il software in formato eseguibile, ovvero, un’incomprensibile sequenza di “0” e “1” e non in formato sorgente, ove le istruzioni scritte dal programmatore fossero facilmente leggibili. Ma tant’è.
Una conseguenza diretta ed immediata del cambio del software su uno strumento di misura è che, se il cambio riguarda elementi rilevanti sotto il profilo metrologico, sotto l’aspetto giuridico decade automaticamente “l’approvazione”: occorre pertanto che il Fabbricante, prima della modifica del software, promuova una pratica di “variante all’approvazione originaria” spiegando le ragioni della modifica e depositi la nuova versione. Rimane purtroppo in sospeso il fatto che è rilasciata alla “correttezza del fabbricante” il dichiarare se la modifica introdotta sia rilevante o meno sotto il profilo metrologico…!
Con l’entrata in vigore della MID, la questione del software ha ricevuto migliori attenzioni mediante l’imposizione di regole più stringenti e di maggiore efficacia. All’ Allegato I –
Requisti Essenziali – è disposto:
7.6. Uno strumento di misura deve essere concepito in modo da consentire il controllo delle sue funzioni successivamente alla sua commercializzazione e al suo impiego. Se necessario dovranno essere previsti come parte dello strumento un'attrezzatura speciale o un software ai fini di tale controllo. La procedura di prova va descritta nel manuale d'istruzioni.
Se a uno strumento di misura è collegato un software, che svolge altre funzioni oltre alla misurazione, il software che risulti critico ai fini delle caratteristiche metrologiche deve essere identificabile e non può essere influenzato in modo inammissibile dal software collegato.
Un problema serio è costituto dal fatto che nei manuali di istruzioni non c’è traccia alcuna delle procedure.
Nello stesso Allegato I, è disposto:
8.3. Ogni software che risulti critico ai fini delle caratteristiche metrologiche deve essere identificato come tale e mantenuto in condizioni di sicurezza.
Esso deve essere agevolmente identificato dallo strumento di misura. Le prove di un eventuale intervento debbono essere disponibili per un ragionevole periodo di tempo.
8.4. I dati di misurazione, il software che è critico per le caratteristiche della misurazione e i parametri importanti sul piano metrologico memorizzati o trasmessi debbono essere adeguatamente proteE da alterazioni accidentali o intenzionali.
Nel suddetto p.to 8.3 il legislatore comunitario della MID, dispone che il software deve essere identificato come tale e mantenuto in condizioni di sicurezza. Come identificare pertanto un software? Abbiamo già visto l’assoluta inutilità di identificarlo mediante una mera sigla identificativa: occorre qualcosa di più “robusto” e che dia maggiori garanzie anche di un meccanismo c.d. della “Checksum”. Per default, per checksum s’intende il valore della somma dei bit più significativi, ovvero quello dei bit che valgono “1”, trascurando cioè quelli che valgono “0”; quindi 2 Software sono identici se hanno la stesa “checksum”: ma anche un tale sistema presenta delle falle.
Finalmente lo sviluppo delle tecnologie informatiche è approdato ad ideare un sistema basato su “l’impronta digitale del file” – come la c.d. firma digitale – chiamato “Hash del file”: l'impronta hash di un un file è una sequenza di lettere (a,b,c,d,e,f) e cifre (da zero a 9), lunga solitamente 64 caratteri, ottenuta applicando un particolare algoritmo di calcolo alla sequenza di bit che formano il file.
Tale meccanismo informatico garantisce che 2 file che hanno lo stesso “Hash”, sono identici.
Purtroppo, mancando la direttiva comunitaria sul software, vengono in soccorso le c.d. Raccomandazioni/Norme Armonizzate: esse sono emanate da Istituti riconosciuti a livello internazionale, quale ad esempio quelle emanate dall’OIML e/o WELMEC.
L’OIML è acronimo di Organizzazione Internazionale di Metrologia Legale, fondata nel 1955 per l’attuazione di un sistema mondiale di metrologia attraverso l’elaborazione di norme applicabili nei regolamenti di metrologia legale, relativi a unità di misura, risultati delle misurazione e strumenti di misurazione, ad uso delle Autorità nazionali della metrologia legale degli Stati membri, a tutela dell’industria e dei consumatori nelle diverse attività di test, analisi, misurazioni, nei settori della salute, della sicurezza, della sorveglianza ambientale, della produzione di alimenti e altri beni e nella loro commercializzazione. Conta di 61 membri: l’Italia è un Paese fondatore.
Esempi di Raccomandazione è la R 117-1/2 del 2019 riguardante i “Sistemi di misurazione continua di liquidi diversi dall’acqua” e la Raccomandazione OIML R46-1/2 del 2012 riguardante “I misuratori di energia elettrica attiva” ritengono idoneo il sistema di Hash allo scopo di identificare in modo idoneo il “software metrologico del relativo strumento di misura”.
“Protezione del software”. Rilevante è quanto previsto dalla Racc. 46-1/2 ove al p.to 3.6.3.2.3 è così disposto: “La protezione del software comprende un'adeguata sigillatura meccanica, elettronica e/o crittografica significa rendere impossibile o evidente un intervento non autorizzato”.
Esempi: Il software di uno strumento di misura è costruito in modo tale da non poter modificare parametri e configurazione legalmente rilevante ma tramite un menu protetto da interruttore. Questo interruttore è sigillato meccanicamente in posizione inaEva, modificando i parametri e la configurazione giuridicamente rilevante impossibile. Per modificare i parametri e la configurazione, l'interruttore deve essere cambiato, inevitabilmente rompendo il sigillo in tal modo.
Cesate, 21 marzo 2024
Cav. Claudio Capozza