Data Masking

Il data masking è una procedura di offuscamento dati, impiegata per la salvaguardia della privacy nell’utilizzo e nel testing di piattaforme online.
Attraverso il masking, i dati sensibili vengono sostituiti con altri dati o con stringhe di caratteri, in modo da impedire l’identificazione della persona fisica. Questa procedura previene l’appropriazione indebita dei dati a fini commerciali, ma ne permette l’utilizzo per lo sviluppo di applicativi, siti web e collaudo software. Per questa ragione, il data masking deve sempre garantire la fruizione dei dati.

Il data masking è utilizzato e raccomandato per attuare le misure di sicurezza previste dal Regolamento generale sulla protezione dei dati (GDPR).

Regole generali per eseguire il data masking

Il data masking deve essere irreversibile, qualsiasi sia la tecnica utilizzata. I dati in output non possono essere riconvertiti alla loro forma originale. I risultati devono comunque essere rappresentativi dei dati di origine.

È necessario mantenere l’integrità referenziale dei dati quando si utilizzano soluzioni di data masking. Questo perché alcuni attributi all’interno delle tabelle possono essere utilizzati come riferimento per altri elementi. Ad esempio, se un numero di carta di credito è utilizzato come chiave primaria e viene codificato, tutti i valori ad esso collegati devono avere la stessa codifica.

Molti database relazionali, per ottimizzare l’archiviazione dei dati, consentono agli elementi di relazionarsi tra loro attraverso chiavi. Per questo motivo, mescolare o sostituire queste chiavi durante i processi di mascheramento di dati, potrebbe avere grosse complicazioni sul funzionamento del database.

I dati mascherati devono rispettare il criterio di unicità. Ciò è fondamentale anche per l’integrità referenziale, perché le colonne utilizzate devono contenere valori univoci.

Non è necessario codificare l’intero database. Devono essere codificati tutti i dati sensibili e i dati non sensibili, nel caso in cui possano ricondurre a quelli sensibili.

Il mascheramento dei dati deve essere un processo ripetibile, non è consigliabile eseguire mascheramenti “una tantum”, che sarebbero difficili da mantenere e poco efficaci.

È fondamentale mantenere il tipo di dato quando questo viene mascherato. I database non accettano testo in campi numerici o riferiti a date. Solitamente il data masking conserva implicitamente il tipo di dato. Ci sono però situazioni in cui un dato specifico può essere conservato come un dato generico (ad esempio conservato come varchar, ovvero testo generico).

Bisogna mantenere inalterata la struttura dei dati mascherati. Ovvero se i dati originali hanno una lunghezza che varia da due a venti caratteri, i dati riprodotti dalla macchina dovrebbero avere la stessa lunghezza.

Possono verificarsi alcuni casi in cui sia richiesto mantenere i raggruppamenti logici di valori, quindi è necessario mantenere questi ultimi. Ad esempio, il mescolamento casuale di dati relativi alla posizione geografica di determinati soggetti, indicata attraverso il codice postale, risulterebbe nella perdita di informazioni geografiche importanti.

Data masking statico e dinamico

Durante le fasi di sviluppo è necessario impiegare i dati per il testing. Per permettere questa operazione senza compromettere la privacy dell’utente, si fa ricorso a due tipologie di masking: statico e dinamico.

Data masking statico

Il data masking statico viene utilizzato per il testing di applicativi su un database. Viene creata una copia del database originale, che viene poi caricata su un server separato. Il numero di informazioni contenute nel database copia viene ridotto, lasciando a disposizione solo i dati necessarie per condurre test specifici. I dati rimasti subiscono un processo di mascheramento, e la versione offuscata del database viene inviata ai programmatori.

Data masking dinamico

Il data masking dinamico (masking on-the-fly) avviene durante il processo di trasferimento dei dati necessari alla progettazione agli sviluppatori, e non prevede la registrazione intermedia su alcun supporto di memorizzazione.
Questo tipo di masking è più efficiente per le organizzazioni che utilizzano un’integrazione continua dei dati, e non hanno il tempo necessario per creare e caricare i backup del database. Con l’integrazione continua è possibile inviare agli sviluppatori piccoli set di dati per i test.

Attraverso il data masking dinamico è anche possibile effettuare un offuscamento parziale dei dati. Attraverso questa procedura vengono mascherati dati sensibili ad utenti non autorizzati, permettendo comunque la fruizione dell’interfaccia.

Ad esempio, un addetto di un call center può identificare un cliente tramite gli ultimi quattro numeri della sua carta di credito, senza però accedere al numero completo.

Metodi di data masking

Pseudonimizzazione

La pseudonimizzazione nasconde l’identità del soggetto a terzi e riduce il rischio che i dati vengano collegati a domini diversi, grazie all’inassociabilità.

Attraverso questo metodo i dati personali vengono trattati in modo tale che non possano più essere attribuiti ad uno specifico interessato senza l’utilizzo di informazioni aggiuntive, che devono essere conservate separatamente.

La pseudonimizzazione può essere applicata in diversi modi. Ad esempio, può essere effettuata dal titolare del trattamento, al momento della raccolta dei dati, per una successiva elaborazione. Un’altra possibilità di applicazione è la pseudonimizzazione affidata a terzi che, una volta effettuato il trattamento, inoltreranno i dati al titolare.

Le tecniche di pseudonimizzazione sono:

  • Contatore: si tratta della forma più semplice di pseudonimizzazione. Ad ogni dato viene associato un numero da un contatore monotono (ovvero un contatore che fornisce numeri incrementandoli). Questa tecnica è utile per set di caratteri molto semplici.
  • Generatore di numeri casuali: simile al contatore, ma fornisce numeri casuali.
  • Funzione crittografica di hash: questo metodo permette di associare a stringhe di lunghezza variabile altre di lunghezza fissa.
  • Codice di autenticazione del messaggio: funziona come la precedente ma viene generata una chiave segreta per pseudonimizzare.

Anonimizzazione

L’anonimizzazione è una procedura che fornisce informazioni anonime, ovvero informazioni che non fanno riferimento ad una persona fisica identificata o identificabile.

Si differenzia dalla pseudonimizzazione, che associa uno “pseudonimo” ad ogni dato.

Anche in questo caso non esiste un’unica tecnica o metodologia.

  • Correlabilità: questo metodo impedisce di risalire ad una singola persona o ad un gruppo di persone che hanno dati in diverse banche dati, come può avvenire, ad esempio, tramite un’analisi di correlazione.
  • Rumore statico: metodo che consiste nell’alterare gli attributi dei dati in modo che non siano riconducibili al soggetto, ma mantengano comunque la possibilità di essere utilizzarli.
  • Scrambling: tecnica mescola tra di loro le lettere dell’alfabeto, secondo un determinato schema.
  • Generalizzazione: metodo che consiste nell’estendere o aumentare le scale di grandezza dei vari attributi. Ad esempio, può essere sostituita una nazione con una regione.

Shuffling

Le tecniche di data shuffling consistono nel mescolare in modo casuale i dati all’interno di un database, tra una colonna e l’altra. Si possono mantenere relazioni logiche tra colonne.

Un classico caso per l’utilizzo di queste metodologie è la generazione di dati per test, dove si richiede di avere dati reali come input per nuovi progetti, ma garantendo sempre la totale anonimità dei dati utilizzati.

Le tecniche di shuffling non andrebbero usate da sole, ma dovrebbero accompagnare le tecniche di data masking. Questo perché non sono perfette e spesso potrebbero mantenere alcune relazioni tra i valori.

Esistono diversi tipi di shuffling:

  • Shuffling casuale: mescola casualmente i dati tra le colonne senza però mantenere un collegamento logico tra esse.
  • Designazione di gruppi: consiste nel collegare le colonne che appartengono allo stesso gruppo (ad esempio numero di telefono con prefisso e nazione), e mescolare i loro valori insieme. Il difetto di questa metodologia è che le colonne collegate fra loro inizialmente, mantengono i valori iniziali, il che da la possibilità di stabilire alcune relazioni iniziali.
  • Designazione delle partizioni: i dati vengono mescolati all’interno di partizioni specifiche (ad esempio usare il valore “Giappone” nella colonna “nazione” come partizione, e mescolare i valori di tutte le righe che hanno “Giappone “ come valore della colonna “nazione”). Questo metodo permette di mantenere intatti alcuni collegamenti fra attributi. Lo svantaggio principale è che valori di partizioni diverse non vengono mai mischiati tra di loro, il che permette di vedere alcune relazioni iniziali.

Crittografia

In termini informatici, la crittografia consiste nel rendere illeggibile un set di dati crittografato. Per rendere leggibile i dati è necessaria una chiave di decrittatura.

La crittografia si basa sull’utilizzo di algoritmi di cifratura ed è il metodo più difficile di mascheramento dati.

Sono molti i metodi di crittografia, affidati a svariati software e in costante evoluzione.

  • Cifratura a chiave simmetrica: utile per sistemi chiusi o singoli utenti. La chiave di cifratura è la stessa sia per la codifica che per la decodifica, e viene fornita direttamente al destinatario. Il vantaggio di questo metodo è la maggiore velocità rispetto alla cifratura asimmetrica, ma è molto più rischiosa, perché la chiave di cifratura potrebbe essere intercettata.
  • Cifratura a chiave asimmetrica: questo metodo utilizza due tipi di chiavi: una privata, che deve rimanere segreta e una pubblica che può essere condivisa. C’è un collegamento matematico tra le due. Entrambe possono decrittare o crittografare un messaggio, utilizzando sempre la chiave opposta a quella utilizzata per uno dei due passaggi.

Bibliografia