firma digitale il sigillo informatico
adv

Sempre più spesso si sente parlare di firma digitale in merito all’autenticità di documenti, software e via discorrendo.

Cos’è la firma digitale, perché si applica anche ai software ed in che consiste la sua sicurezza?

Ciò che consideriamo firma digitale segue una definizione ben precisa, non si può limitare alla scansione della firma scritta su pezzo di carta e riproposta in un PDF o in un qualunque documento elettronico.

Nel momento in cui il nostro documento viene diffuso via internet o in qualunque altro modo, infatti, chiunque ne venisse in possesso potrebbe alterarlo, potrebbe crearne uno nuovo apponendo la nostra firma presa tramite screenshot e così via, il tutto senza possibilità di distinzione dall’originale.

Anche i PDF protetti dalla modifica possono essere stampati come nuovi file PDF e, a seguire, modificati.

Minacce

Le tipologie di minacce ai documenti si possono classificare in

  • Passive: nella comunicazione tra due persone una terza intercetta il dato e lo legge.

  • Attive: il dato inviato verrà, nel mezzo del processo o in seguito, modificato. L’autore della modifica potrebbe essere uno qualunque dei 3 attori, per motivi diversi:

    • l’autore: potrebbe aver sbagliato a redigere il contenuto del documento e vorrebbe declinare la responsabilità ripudiandolo. Caso di esempio potrebbe essere una diagnosi medica sbagliata.

    • il lettore: potrebbe voler volgere una situazione a suo tornaconto, dando la responsabilità al mittente. Caso di esempio potrebbe essere una frode assicurativa in cui il lettore modifichi a suo favore una relazione redatta da esperti, omettendo alcuni particolari.

    • il terzo uomo: potrebbe voler modificare le informazioni in modo che il lettore abbia conoscenze sbagliate ed egli possa, invece, trarne vantaggio. Casi di esempio si possono trovare nel mondo dello spionaggio industriale; terze parti potrebbero modificare, infatti, relazioni di consulenti per indurre le aziende rivali a comportarsi in modo sconveniente e sfruttare, invece, i dati corretti a proprio tornaconto.

Il tutto ha senso presupponendo che il documento abbia validità come oggetto a sé stante, cioè, che non si debba, o non si possa, ricorrere a riscontri con il sistema che l’ha generato.

Tale sistema potrebbe, ad esempio, essere fuori uso oppure potrebbe aver subito anch’esso manipolazioni.

Cos’è la firma digitale

La domanda che ci si pone è, quindi, cos’è la firma digitale e come si fa ad applicare ad un software ed ad oggetti diversi dai documenti?

La firma digitale è un algoritmo che consente, attraverso una serie di operazioni, di autenticare, verificare l’integrità e garantire la paternità dell’oggetto firmato.

Esso sfrutta la crittografia asimmetrica e, come si vedrà, si basa su dati che vanno al di là di quanto visibile nel documento scambiato.

La crittografia asimmetrica, tipicamente usata per criptare messaggi da scambiare, ha la particolarità di avere 2 chiavi, una pubblica, usata per cifrare un messaggio, ed una privata, usata per decriptarlo.

In tal modo ci si assicura che chiunque possa scrivere un messaggio privato ad una persona, ma solo il destinatario sia in grado di leggerlo.

Processo di firma

Immaginiamo di voler firmare un documento, esistono dei software dedicati e certificati per questo tipo di operazioni.

Per ottenere una firma digitale, il documento stesso verrà processato tramite una funzione di hash che lo trasformerà in una sequenza fissa di caratteri non riconducibile allo stato iniziale: il processo è irreversibile.

La stessa funzione, a parità di input, fornirà lo stesso risultato e ciò garantirà, nel processo di verifica, l’integrità del documento.

Il prodotto così ottenuto sarà, poi, dato in pasto ad una funzione di cifratura con chiave privata.

Nella firma digitale, infatti, l’uso delle chiavi è inverso a quello della crittografia finalizzata alla codifica dei messaggi da scambiare. Lo scopo è diverso e le chiavi vengono usate al contrario: chi scrive userà la sua chiave privata, perché è lui a dover essere univocamente identificabile, chi legge potrà verificarne l’identità con la chiave pubblica del mittente.

In tal modo, essendo il mittente l’unico a conoscere la sua chiave privata, il messaggio non potrà essere stato scritto da nessun altro, quindi, non potrà essere ripudiato.

Il messaggio originale in chiaro, insieme alla firma digitale ottenuta tramite tali passaggi, saranno incapsulati insieme all’interno di un altro formato, tipicamente denominato P7M.

Il P7M è, quindi, un contenitore di documenti generici e metadati che segue la metodologia di firma CAdES (CMS Advanced Electronic Signature). Esistono altre metodologie di firma ma sono limitate ad una sola tipologia di file (e.g. PAdES firma solo PDF), la CAdES, invece, consente di firmare una varietà di documenti (PDF, DOCX, XML, etc.).

Processo di verifica

Il messaggio ricevuto potrà essere agevolmente letto, in quanto inviato in chiaro, ma se si vuole verificare la validità del messaggio e l’identità del mittente, ci si dovrà affidare ad un software apposito che opererà come segue:

Il documento in chiaro verrà processato tramite una funzione di hash che sfrutta lo stesso algoritmo usato nello step precedente. Si otterrà, così, il prodotto da confrontare con quello ottenuto in fase di creazione della firma digitale al fine di verificarne l’integrità.

L’elemento originale, anch’esso inviato nel P7M, è criptato ed occorrerà la chiave pubblica giusta, quella del mittente, per decriptarlo ed ottenere l’hash per eseguire il confronto.

La chiave pubblica è nota e può essere divulgata in vari modi, la sua autenticità è garantita da un certificato emesso da appositi organi “fidati”.

Se, a valle del processo illustrato, la chiave risulterà essere errata, il mittente non sarà chi dichiara di essere ed il messaggio potrà essere scartato, in quanto non autentico.

Se la chiave risulterà corretta ma l’algoritmo, invece, produrrà due hash diversi, vorrà dire che il messaggio è stato adulterato ed andrà ugualmente scartato in quanto il suo contenuto non sarà attendibile.

Applicazioni della firma digitale a software e metodologie

Data la sua natura ed il suo funzionamento, facilmente si può comprendere come la firma digitale sia applicabile a vari oggetti di natura informatica. Trattandosi di file dati in pasto a funzioni, anche un software può essere firmato digitalmente tramite lo stesso processo e possono essere implementati controlli che ne vietino l’esecuzione o l’installazione se non è genuino. Le conseguenze dell’esecuzione di programmi non genuini sono i ben noti malware.

Altri oggetti che andrebbero opportunamente firmati digitalmente sono i backup dei database, gli archivi delle immagini cliniche e tutto ciò che costituisce la fotografia di uno stato di documenti ed informazioni in un certo istante temporale, in modo da garantire che non vengano modificati in futuro.

Affiancata ad un’opportuna marcatura temporale, la firma digitale può essere impiegata nella procedura di Conservazione Sostitutiva dei documenti con validità legale, garantendo un risparmio di tempo, carta e spazio.

Conclusioni

In rapporto alle minacce precedentemente citate, la firma digitale si occupa, quindi, di prevenire soltanto quelle attive perché il suo triplice scopo non tocca l’occultamento del messaggio. Le minacce passive possono, tuttavia, essere evitate affiancando a questa un opportuno algoritmo di cifratura. Il messaggio criptato sarà, così, leggibile solo al mittente.

Tra i maggiori errori di chi usa la crittografia c’è il falso senso di sicurezza che, spesso, porta ad abbassare la guardia; per quanto il meccanismo sia valido, esistono, comunque, minacce legate alla chain of trust: il confidare nell’organismo terze parti che attesta la validità delle chiavi pubbliche.

Da considerare, infine, gli anelli deboli del processo rappresentati dagli utenti, che spesso non fanno attenzione a mantenere segreta la chiave privata e, dunque, la loro firma digitale.