Il data masking è una procedura di offuscamento dati, impiegata per la salvaguardia della privacy nell’utilizzo e nel testing di piattaforme online.[1]
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.

Quando si utilizzano soluzioni di data masking è necessario mantenere l’integrità referenziale dei dati. Alcuni attributi presenti all’interno del database possono essere utilizzati come riferimento per altri elementi. Ad esempio, se il numero di una carta di credito utilizzato come chiave primaria all'interno di una tabella è associato ad un insieme di caratteri, tutti i valori ad esso collegati devono essere codificati secondo i medesimi criteri.[2]

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 sul funzionamento del database causate dalla perdita di relazioni tra i dati.

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.

È spesso importante che il mascheramento mantenga inalterato il tipo di dato all'interno dei database, ad esempio i database non accettano testo in campi numerici o riferiti a date. Ci sono però situazioni in cui un dato specifico può essere conservato come un dato generico (ad esempio un numero può essere conservato come varchar, ovvero testo generico).

Anche la struttura dei deve di regola rimanere inalterata: se i dati originali hanno una lunghezza che varia da due a venti caratteri, i dati riprodotti dalla macchina dovrebbero avere la stessa lunghezza.

In alcuni casi può anche essere necessario mantenere i raggruppamenti logici di valori. 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 eseguire dei test sul corretto funzionamento del database. Per permettere questa operazione senza compromettere la privacy dell’utente, si fa ricorso a due tipologie di masking: statico e dinamico.[3]

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[4], 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à.[5]

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[6].

Le tecniche di pseudonimizzazione sono:

  • Contatore: si tratta della forma più semplice di pseudonimizzazione. Ad ogni dato viene associato un numero da 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 genera una chiave segreta per pseudonimizzare.[7]

Anonimizzazione

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

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

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

  • Blocco della correlabilità: questo metodo impedisce di risalire ad una singola persona o ad un gruppo di persone che hanno dati in diverse banche dati, attraverso, ad esempio, di 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 possono 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. 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 resta possibile 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.[9]

La crittografia si basa sull’utilizzo di algoritmi di cifratura ed è il metodo più difficile di mascheramento dati. I dati non criptati, dettiplaintext, subito il processo di cifratura non sono più interpretabili dalla macchina (ciphertext) . Questo processo previene la perdita di informazioni sensibili tramite hacking.[10]

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. Questo metodo è più veloce 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.[11]

Note

  1. ^ enisa, Pseudonymisation techniques and best practices.
  2. ^ Dynamic Data Masking, su docs.microsoft.com.
  3. ^ (IT) Dynamic Data Masking, su docs.microsoft.com, 24/03/2021.
    «La maschera dati dinamica (DDM) limita l'esposizione dei dati sensibili nascondendoli agli utenti senza privilegi. Può essere usata per semplificare notevolmente la progettazione e la codifica della sicurezza nell'applicazione»
  4. ^ Dynamic Data Masking, su docs.microsoft.com.
  5. ^ (EN) enisa, Pseudonymisation techniques and best practices, 2019.
  6. ^ Enisa, Pseudonymisation techniques and best practices, 3 dicembre 2019, pp. 12-17.
  7. ^ Enisa, Pseudonymisation techniques and best practices, 3 dicembre 2019, pp. 24-30.
  8. ^ (EN) enisa, Pseudonymisation techniques and best practices, 2019.
  9. ^ Cos'è la crittografia dei dati?, su kaspersky.it.
  10. ^ An Overview of Cryptography, su garykessler.net.
  11. ^ Cos'è la crittografia dei dati?, su kaspersky.it.

Bibliografia