Cos’è la firma digitale, i suoi punti di forza ed i suoi punti deboli

Oramai, si sente parlare di firma digitale ogni giorno, soprattutto nell’ambito lavorativo, ma spesso non viene spiegato propriamente cosa sia ed a cosa effettivamente serva.

La firma digitale, o digital sign, è una sorta di schema matematico utilizzato per verificare l’autenticità dei messaggi e dei documenti digitali. Per permetterne il funzionamento ed il raggiungimento dello scopo per cui è stata progettata, la firma digitale utilizza due componenti principali entrambi appartenenti agli algoritmi di criptaggio:

  • Hashing, questa è una funzione usata all’interno del processo che genera la firma digitale. In particolare, essa viene utilizzata come input per ottenere una versione unica e compatta dei dati che vengono firmati, ovvero ciò che viene definito come message digest.
    Questa componente provvede ad assicurare l’integrità dei dati, ovvero il fatto che le informazioni inviate e/o archiviate siano accurate ed inalterate senza aver subito alcuna modifica.
  • chiave di criptaggio pubblica, questo tipo di criptaggio assimmetrico implica a sua volta due componenti sostanziali, una chiave pubblica da condividere con gli altri ed una totalmente privata; nell’uso quotidiano di questo criptaggio, per esempio, noi possiamo accedere alla chiave pubblica di un nostro amico “Bob”, cifrare il nostro messaggio con tale chiave ed inviarlo a “Bob”; “Bob” a sua volta potrà decriptare il messaggio che gli abbiamo inviato usando la sua chiave unica, privata e personale. Tutto questo assicura l’autenticazione del messaggio e la sua non-repudiation (cioè il fatto che il mittente non possa negare di essere effettivamente lui il creatore del messaggio), saremo infatti certi e potremo verificare la fonte che ha inviato i dati.

Lo scopo principale della firma digitale è, come abbiamo detto, quello di assicurare che messaggi e documenti ricevuti siano stati inviati da una fonte autentica e che non siano stati modificati durante il transito; i pacchetti di informazioni che inviamo e che contengono i nostri messaggi, infatti, seguono dei “sentieri virtuali” per arrivare a destinazione e, durante il loro “viaggio”, potrebbero essere manipolati o modificati altrimenti. Logicamente, una firma digitale può essere utilizzata sia applicandola a dei dati trasmessi, come nel caso menzionato, sia a dei dati archiviati.

Un esempio dell’uso della firma digitale e del suo funzionamento può essere il seguente: il mittente invia un messaggio al destinatario; a tale messaggio viene applicata la funzione di hashing e, successivamente alla trasformazione subita, viene firmato con una chiave privata (tale chiave dovrà sempre ed in ogni caso restare privata e non accessibile a nessun altro tranne che al suo proprietario). Il destinatario, potrà, una volta ricevuto il tutto verificare l’hash ed utilizzare una chiave pubblica per sapere se l’hash è stato o meno alterato.

Esistono tre diverse tecniche standard stabilite nel 1991 da NIST (National Institute of Standard Technology) ed utilizzate per il criptaggio della firma digitale: questo ci suggerisce l’importanza di questa tipologia di sicurezza, ma anche il suo essere vetusta, ovvero desueta, rispetto al suo “approdo” nella società di massa (ci limiteremo qui ad elencarle):

  1. DSA, ovvero Digital Signature Algorithm.
  2. RSA, un algoritmo assimmetrico basato sulla difficoltà di trasferire dei grandi numeri nei loro originali numeri primi e specificato nell’AND, ovvero nell’American National Standard, e nel PKCS, Public Key Cryptography Standard
  3. ECDSA, cioè l’Elliptic Curve Digital Signature Algorithm, sempre un algoritmo asimmetrico ma basato sulle curve elittiche.

La firma ditigale al momento si considera una forma di criptaggio sicura poiché, per superarla ci vorrebbe troppo tempo material, ma si suppone che con l’arrivo del quantum computing tutte le firme digitali che utilizzino il criptaggio con chiave pubblica fondata su numeri primi non saranno più sicure. Ciò significa che sarà necessario utilizzare degli algoritmi più resistenti e complicati come l’homomorphic encryption e la lattice-based cryptography che al momento non vengono applicati a tale sistema.

Inoltre, anche attualmente, come tutti i sistemi di sicurezza si possono trovare alcune potenziali debolezze. Mettiamo da parte l’ovvietà della problematica del “fattore umano” che abbiamo, in altre sedi, trattato ampiamente e prendiamo ad esempio la PKI che è la Public Key Infrastructure, un’infrastruttura (da non confondere con l’algoritmo che fa parte di essa) che consiste in programmi, data formats, procedure, protocolli di comunicazione, polizze di sicurezza e meccanismi relativi alla chiave pubblica criptografica; questa infrastruttura dà per scontato che l’identità del destinatario è assicurata dai certificati e che l’algoritmo assimmetrico si occuperà del processo di scambio della chiave. L’interesse dell’infrastruttura è quello di identificare gli utenti, creare e distribuire certificati, mantenere o revocare certificati, distribuire e mantenere le chiavi di criptaggio ed abilitare tutte le tecnologie per lo scambio e l’autenticazione della comunicazione. I certificati, però, che la PKI assume, e che sono una credenziale contenente la chiave pubblica di un specifico individuo ed altre significative informazioni ad esso relative, sono particolarmente eterogenei.

Questi certificati, infatti, sono obbligatoriamente richiesti per ogni persona che intenda partecipare in una PKI e sono firmati da un’autorità terza che sarebbe la CA (certificate authority, ovvero un’organizzazione o server che mantengono e si occupano dei certificati). Il momento in cui la CA firma il certificato lega l’indentità di un individuo ad una chiave pubblica autenticandolo. Questi certificati possono anche essere revocati nel caso l’autorità scoprisse che la chiave privata di una persona sia stata compromessa oppure che il suddetto sia stato affidato alla persona sbagliata. Il problema fondamentale di questi certificati (che vengono utilizzati anche per altre tecnologie) è che, semplificando, funzionano come qualsiasi documento cartaceo e possono essere rubati (con il social engineering) e/o falsificati generando quindi una debolezza, o una vulnerabilità, nel meccanismo stesso di scambio. Ciò significa anche che un malintenzionato potrebbe creare non solo un’identità falsa a livello di firma digitale, ma anche un’apparente sito internet affidabile con tanto di permessi riconosciuti dall’autorità ed attirare a sé degli ignari. In passato alcuni virus hanno utilizzato certificati rubati/falsificati come fake AV, alcune varianti del virus Zeus, Conficker, Stuxnet e Duqu.

Share the love

Comincia la discussione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *