La sicurezza a lungo termine (o long-term security per utilizzare l’espressione in inglese come la si trova in letteratura) è la branca della crittografia che si occupa della protezione di quei dati che sono considerati sia sensibili che long-lived, ovvero che ci si aspetta esisteranno per svariate decine di anni a venire.
Indice degli argomenti
La sicurezza a lungo termine per proteggere i dati medici
L’esempio più popolare con cui si argomenta la necessità di fare ricerca e di occuparsi di sicurezza a lungo termine sono i dati medici.
Ha infatti senso pensare che un dato medico dovrà poter essere consultato e rimanere reperibile per tutta la durata della vita di un paziente. Oltre alla reperibilità, proteggere i dati medici significa anche garantirne la loro confidenzialità, dato che sono considerati sensibili. Renderli pubblici potrebbe infatti danneggiare la reputazione di un paziente e causare discriminazione, come nel caso di malattie veneree, ad esempio.
Proprio per questo motivo, si considera buona norma aspettarsi un’archiviazione protetta di tali dati non solo per tutta la durata della vita del paziente, ma anzi di prorogare questo lasso di tempo di qualche decina di anni in più in modo da evitare che anche i figli vengano discriminati per particolari condizioni mediche dei genitori.
Ecco perché si considerano come dati sensibili long-lived, a lunga durata, quelli che devono essere protetti e reperibili per almeno un centinaio di anni dalla data in cui vengono emessi.
Perché è necessaria la sicurezza a lungo termine
Il motivo per cui serve trattate e quindi proteggere questi dati in maniera differente rispetto a un normale altro dato (che potrebbe benissimo essere sensibile, se non addirittura più sensibile di un dato medico in alcuni casi) è perché dovendo rimanere reperibili per svariati anni, è difficile prevedere come cambierà lo scenario crittografico così avanti nel futuro.
E il cambiamento del panorama crittografico non è per niente una possibilità remota che forse potrebbe accadere: sta infatti già accadendo. La causa di tale cambiamento si chiama computer quantistico.
Il computer quantistico è un computer che, a differenza di un normale computer binario dove lo stato del computer stesso può essere o 1 o 0, si basa sull’indeterminatezza degli stati quantistici, che possono essere trovarsi in due stati contemporaneamente.
Questa proprietà, assieme a quella dell’entanglement, ovvero di come due stati quantistici si influenzano a vicenda, aumenta esponenzialmente la capacità di computazione del computer quantistico rispetto a quello tradizionale.
Ed è proprio questa nuova capacità di computazione acquisita grazie alle proprietà della meccanica quantistica che sconvolge l’attuale panorama crittografico, minacciandolo.
Sicurezza a lungo termine e attacchi crittografici
Tra le primitive crittografiche più comuni troviamo ad esempio gli algoritmi di cifratura, utilizzati per proteggere la confidenzialità di un dato, e gli algoritmi di firma, utilizzati per garantirne l’autenticità e per offrire un metodo per controllarne l’integrità.
Riferendoci all’esempio dei dati medici, è chiaro che tali primitive crittografiche sono necessarie per, rispettivamente, proteggere la privacy del paziente (confidenzialità) e per garantire il corretto trattamento nel caso avesse bisogno di cure (integrità).
Un attacco crittografico eseguito da un computer quantistico riuscirebbe in poco tempo a corrompere tali primitive e quindi a esporre irreparabilmente i dati medici a occhi indiscreti e a modifiche del dato che potrebbero essere letali per il paziente.
Al momento, i computer quantistici che si sono costruiti sono di piccola scala, ma si stima che entro il 2031 ci sarà il 50% di probabilità di avere disponibile un computer quantistico potente abbastanza da rompere l’algoritmo di cifratura RSA-2048.
Nel gergo della cyber security, quando si dice “rompere” una primitiva crittografica si intende in realtà risolvere il problema matematico su cui si basa tale primitiva.
La sicurezza di un algoritmo di cifratura o di firma deriva infatti dal fatto che il cuore di questi algoritmi sono problemi matematici difficili da risolvere.
Un problema matematico è considerato in crittografia difficile da risolvere se anche il più potente computer mai costruito fino ad oggi impiegherebbe miliardi di anni per computare la soluzione di tale problema.
Il problema posto dal computer quantistico (di grandezza appropriata) è che un attacco crittografico eseguito da lui invece che da un computer binario impiegherebbe invece pochissimo tempo per risolvere tale problema.
Crittografia a lungo termine e protezione dei dati sensibili
Ed è qui che si innesta la crittografia a lungo termine. Per la protezione di dati sia sensibili che di lunga durata è necessario trovare delle soluzioni che continuino a proteggerli, indipendentemente da come potrebbe cambiare il panorama computazionale sia dei computer quantistici che classici nei prossimi decenni.
Per ovviare a questo tipo di minaccia, la crittografia a lungo termine si propone come obiettivo quello di proteggere i dati con primitive la cui sicurezza si basa su problemi matematici che sono impossibili da risolvere.
La sicurezza di tali primitive crittografiche si basa sul fatto che i problemi matematici su cui si fondano non si possono risolvere perché non vengono date abbastanza informazioni per poterlo fare. Per questo motivo vengono anche dette primitive information-theoretic secure.
La tecnica del secret sharing: cos’è e come funziona
Per tornare all’archiviazione di dati sensibili a lungo termine, come i dati medici, la tecnica che offrono un livello di sicurezza “information-theoretic” si chiama secret sharing.
Il dato stoccato non risiede più in un’unica locazione, e.g. il disco fisso di un server, ma viene invece frammentato in più parti, dette anche share, e ciascuna di queste share viene distribuita in una locazione diversa.
Le share non sono da considerarsi come dei “brani” di un dato o una partizione, perché queste darebbero comunque, anche se parziali, delle informazioni all’attaccante che riesce a entrare nel server dove questi frammenti sono stoccati.
Invece tali share sono da considerare come delle ombre del dato da proteggere, cioè derivanti dal dato sì, ma che non trapelano nessuna informazione sul contenuto di tale dato.
Secret sharing è una primitiva crittografica inventata indipendentemente da Shamir e Blakely nel 1979. La tecnica che poi ha alla fine prevalso è quella di Shamir, che si basa sull’interpolazione di polinomi.
Il dato viene rappresentato come un punto nel piano cartesiano che si trova sull’asse delle ordinate. A partire da un polinomio di un grado prescelto e i cui coefficienti sono scelti in maniera casuale, i frammenti o share corrispondenti a tale dato vengono computati come i punti nel piano cartesiano ottenuti tramite l’immagine del dato attraverso il polinomio prescelto.
Al momento dell’archiviazione del dato quello che succede è che il dato non viene in realtà mai distribuito, ma viene anzi eliminato.
Sono invece le share, ovvero gli altri punti sul piano cartesiano ottenuti come immagine del punto corrispondente al dato, ad essere distribuite in maniera dislocata in vari server.
Al momento della ricostruzione del dato medico, i punti vengono processati e, tramite l’interpolazione polinomiale, il punto corrispondente al dato viene ricostruito.
Tale tipo di archiviazione è chiaramente molto più dispendiosa che un’archiviazione classica, dove basta crittare e stoccare il dato in un unico posto. Questo tipo di archiviazione la si esegue infatti per alcuni tipi di dati in particolare, come ad esempio quelli medici, per cui i requisiti di confidenzialità e reperibilità sono importantissimi da rispettare.
Abbiamo già chiarito che la confidenzialità deriva dal fatto che la singola share non rivela alcuna informazione sul dato. In particolare, il grado di un polinomio, chiamiamolo t, ci obbliga a generare almeno t+1 share, perché altrimenti non può essere ricostruito correttamente.
Il metodo di archiviazione offerto da una primitiva come il secret sharing offre confidenzialità perché appunto anche intercettandone una nessuna informazione viene rivelata.
Banalmente, una retta è un caso particolare di polinomio di grado uno. Sappiamo che per un punto passano infinite rette e che per due punti ne passa una solamente. Questo vuol dire che, intercettando una share, non riesco a capire il dato da cui questa deriva perché ci sono infinite rette possibili, ovvero infiniti punti sull’asse delle ordinate che sono tutti validi candidati.
Ma se ne ho due di queste share, allora posso, attraverso l’interpolazione, ricostruire la retta di partenza e, con questa, guardando l’intercetta all’asse delle ordinate, ritrovo il dato.
Per quanto riguarda la reperibilità del dato, questa deriva dalla stessa ragione sopra. Si generano infatti più share di quelle che servono per la ricostruzione del dato, aumentando di conseguenza il numero di locazioni in cui ognuna di queste share deve essere custodita. In caso un attaccante riesca ad infiltrarsi in uno di questi server e a renderlo impossibilitato a rispondere a una chiamata di ricostruzione, la persona bisognosa del dato potrà comunque contare su tutti gli altri server.
Conclusioni
Confidenzialità e reperibilità, per quanto siano con il secret sharing garantite in maniera più forte rispetto a una archiviazione classica del dato, restano valide fino a che un attaccante non riesce a corrompere t+1 locazioni, ovvero abbastanza locazioni da ricostruirsi da sé il dato con le share prese.
Ecco perché in questo tipo di sistema, l’ipotesi è che il sistema distribuito di server soddisfi il fatto che la maggior parte dei server siano onesti, ovvero non vengano corrotti.
In generale, il vantaggio di un metodo di archiviazione di questo tipo è che, nonostante sia più costoso e laborioso, offre un vantaggio rispetto ai metodi che si compongono della semplice cifratura perché:
- non sono perturbati da avanzamenti dello sviluppo del computer quantistico né da progressi di tipo crittanalitico;
- offrono maggiore confidenzialità e reperibilità in caso di attacco o di breakdown di uno o più server;
- ovviano al problema del single-point-of-failure che caratterizza i normali metodo di archiviazione.