Questo argomento illustra le tecniche di anonimizzazione o le trasformazioni disponibili in Sensitive Data Protection.
Tipi di tecniche di anonimizzazione
La scelta della trasformazione di anonimizzazione da utilizzare dipende dal tipo di dati che vuoi anonimizzare e dallo scopo per cui vuoi anonimizzarli. Le tecniche di anonimizzazione supportate da Sensitive Data Protection rientrano nelle seguenti categorie generali:
- Oscuramento: elimina tutto o parte di un valore sensibile rilevato.
- Sostituzione: sostituisce un valore sensibile rilevato con un valore surrogato specificato.
- Mascheramento: sostituisce un numero di caratteri di un valore sensibile con un carattere surrogato specificato, ad esempio un hash (#) o un asterisco (*).
- Tokenizzazione basata su crittografia: cripta il valore dei dati sensibili originali utilizzando una chiave di crittografia. Sensitive Data Protection supporta diversi tipi di tokenizzazione, incluse le trasformazioni che possono essere invertite o "reidentificate".
- Bucketing: "generalizza" un valore sensibile sostituendolo con un intervallo di valori. Ad esempio, sostituendo un'età specifica con una fascia d'età o le temperature con intervalli corrispondenti a "Caldo", "Medio" e "Freddo".
- Spostamento delle date: sposta i valori delle date sensibili di un periodo di tempo casuale.
- Estrazione dell'ora: estrae o conserva parti specificate dei valori di data e ora.
Il resto di questo argomento illustra ogni diverso tipo di trasformazione di anonimizzazione e fornisce esempi di utilizzo.
Metodi di trasformazione
La tabella seguente elenca le trasformazioni fornite da Sensitive Data Protection per anonimizzare i dati sensibili:
| Trasformazione | Oggetto | Descrizione | Può invertire1 | Integrità referenziale2 | Tipo input |
|---|---|---|---|---|---|
| Oscuramento | RedactConfig |
Oscura un valore rimuovendolo. | Qualsiasi | ||
| Sostituzione | ReplaceValueConfig |
Sostituisce ogni valore di input con un valore specificato. | Qualsiasi | ||
| Sostituisci con dizionario | ReplaceDictionaryConfig
|
Sostituisce un valore di input con un valore selezionato in modo casuale da un elenco di parole. | Qualsiasi | ||
| Sostituisci con infoType | ReplaceWithInfoTypeConfig |
Sostituisce un valore di input con il nome del relativo infoType. | Qualsiasi | ||
| Maschera con carattere | CharacterMaskConfig |
Maschera una stringa completamente o parzialmente sostituendo un determinato numero di caratteri con un carattere fisso specificato. | Qualsiasi | ||
| Pseudonimizzazione tramite la sostituzione del valore di input con un hash di crittografia | CryptoHashConfig |
Sostituisce i valori di input con una stringa esadecimale di 32 byte generata utilizzando una chiave di crittografia dei dati specificata. Per saperne di più, consulta la documentazione concettuale sulla pseudonimizzazione. | ✔ | Stringhe o numeri interi | |
| Pseudonimizzazione tramite sostituzione con token crittografico con protezione del formato | CryptoReplaceFfxFpeConfig |
Sostituisce un valore di input con un token o un valore surrogato della stessa lunghezza utilizzando la crittografia con protezione del formato (FPE) con la modalità operativa FFX. In questo modo, l'output può essere utilizzato in sistemi che prevedono la convalida del formato in base alla lunghezza. Questa opzione è utile per i sistemi legacy in cui è necessario mantenere la lunghezza della stringa.
Importante: per input di lunghezza variabile o superiore a 32 byte, utilizza CryptoDeterministicConfig.
Per garantire la sicurezza, il National Institute of Standards and Technology consiglia i seguenti limiti:
|
✔ | ✔ | Stringhe o numeri interi con un numero limitato di caratteri e di lunghezza uniforme. L'alfabeto deve essere composto da almeno 2 caratteri e non deve contenerne più di 95. |
| Pseudonimizzazione tramite sostituzione con token di crittografia | CryptoDeterministicConfig |
Sostituisce un valore di input con un token o un valore surrogato della stessa lunghezza utilizzando AES in modalità Synthetic Initialization Vector (AES-SIV). Questo metodo di trasformazione, a differenza della tokenizzazione con conservazione del formato, non ha limitazioni sui set di caratteri delle stringhe supportati, genera token identici per ogni istanza di un valore di input identico e utilizza surrogati per consentire la reidentificazione in base alla chiave di crittografia originale. | ✔ | ✔ | Qualsiasi |
| Valori bucket basati su intervalli di dimensioni fisse | FixedSizeBucketingConfig |
Maschera i valori di input sostituendoli con bucket o intervalli in cui rientra il valore di input. | Qualsiasi | ||
| Valori bucket basati su intervalli di dimensioni personalizzate | BucketingConfig |
Raggruppa i valori di input in base a intervalli configurabili dall'utente e valori di sostituzione. | Qualsiasi | ||
| Date shifting | DateShiftConfig |
Sposta le date di un numero casuale di giorni, con l'opzione di essere coerente per lo stesso contesto. | ✔ Preserva la sequenza e la durata |
Date/ore | |
| Estrai dati temporali | TimePartConfig |
Estrae o conserva una parte dei valori Date, Timestamp e TimeOfDay. |
Date/ore |
Note a piè di pagina
content.reidentify.
Oscuramento
Se vuoi semplicemente rimuovere i dati sensibili dai contenuti di input, Sensitive Data Protection supporta una trasformazione di oscuramento (RedactConfig nell'API DLP).
Ad esempio, supponiamo che tu voglia eseguire una semplice oscuramento di tutti gli infoType EMAIL_ADDRESS e che la seguente stringa venga inviata a Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La stringa restituita sarà la seguente:
My name is Alicia Abernathy, and my email address is .
L'esempio JSON e il codice in diversi linguaggi riportati di seguito mostrano come formare la richiesta API e cosa restituisce l'API DLP.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per saperne di più sull'utilizzo dell'API DLP con JSON, consulta la guida rapida di JSON.
Metodo HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sostituisci PROJECT_ID con l'ID progetto.
Input JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Output JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Sostituzione
Le trasformazioni di sostituzione sostituiscono ogni valore di input con un valore token specificato o con il nome del relativo infoType.
Sostituzione di base
La trasformazione di sostituzione di base (ReplaceValueConfig nell'API DLP) sostituisce i valori dei dati sensibili rilevati con un valore specificato da te. Ad esempio, supponiamo che tu abbia indicato a Sensitive Data Protection di utilizzare "[fake@example.com]" per sostituire tutti gli infoType EMAIL_ADDRESS rilevati e che la seguente stringa venga inviata a Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La stringa restituita è la seguente:
My name is Alicia Abernathy, and my email address is [fake@example.com].
L'esempio JSON e il codice in diversi linguaggi riportati di seguito mostrano come formare la richiesta API e cosa restituisce l'API DLP.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per saperne di più sull'utilizzo dell'API DLP con JSON, consulta la guida rapida di JSON.
Metodo HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sostituisci PROJECT_ID con l'ID progetto.
Input JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Output JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Sostituzione del dizionario
Sostituzione del dizionario (ReplaceDictionaryConfig) sostituisce ogni dato sensibile rilevato con un valore che Sensitive Data Protection seleziona in modo casuale da un elenco di parole che fornisci.
Questo metodo di trasformazione è utile se vuoi utilizzare valori surrogati realistici.
Supponiamo che tu voglia che Sensitive Data Protection rilevi gli indirizzi email e sostituisca ogni valore rilevato con uno dei tre indirizzi email surrogati.
Invii la seguente stringa di input a Sensitive Data Protection insieme all'elenco di indirizzi email sostitutivi:
Stringa di input
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Elenco di parole
- izumi@example.com
- alex@example.com
- tal@example.com
La stringa restituita può essere una delle seguenti:
My name is Alicia Abernathy, and my email address is izumi@example.com.
My name is Alicia Abernathy, and my email address is alex@example.com.
My name is Alicia Abernathy, and my email address is tal@example.com.
L'esempio JSON seguente mostra come formare la richiesta API e cosa restituisce l'API DLP.
Per saperne di più sull'utilizzo dell'API DLP con JSON, consulta la guida rapida di JSON.
Metodo HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sostituisci PROJECT_ID con l'ID progetto.
Input JSON
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig": {
"infoTypeTransformations": {
"transformations": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"primitiveTransformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
}
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
]
}
}
Output JSON
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is izumi@example.com."
},
"overview": {
"transformedBytes": "22",
"transformationSummaries": [
{
"infoType": {
"name": "EMAIL_ADDRESS"
},
"transformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
},
"results": [
{
"count": "1",
"code": "SUCCESS"
}
],
"transformedBytes": "22"
}
]
}
}
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Sostituzione di infoType
Puoi anche specificare una sostituzione dell'infoType (ReplaceWithInfoTypeConfig nell'API DLP). Questa trasformazione esegue la stessa operazione della trasformazione di sostituzione di base, ma sostituisce ogni valore di dati sensibili rilevato con l'infoType del valore rilevato.
Ad esempio, supponiamo che tu abbia configurato Sensitive Data Protection per rilevare sia gli indirizzi email che i cognomi e per sostituire ogni valore rilevato con l'infoType del valore. Invii la seguente stringa a Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La stringa restituita è la seguente:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
Mascheramento
Puoi configurare Sensitive Data Protection per mascherare completamente o parzialmente un valore sensibile rilevato (CharacterMaskConfig nell'API DLP) sostituendo ogni carattere con un singolo carattere di mascheramento fisso, ad esempio un asterisco (*) o un hash (#). Il mascheramento può iniziare dall'inizio o dalla fine della stringa. Questa trasformazione funziona anche con tipi di numeri come i numeri interi lunghi.
La trasformazione di mascheramento di Sensitive Data Protection offre le seguenti opzioni che puoi specificare:
- Carattere di mascheramento (l'argomento
maskingCharacternell'API DLP): il carattere da utilizzare per mascherare ogni carattere di un valore sensibile. Ad esempio, puoi specificare un asterisco (*) o un simbolo del dollaro ($) per mascherare una serie di numeri, come quelli di un numero carta di credito. - Il numero di caratteri da mascherare (
numberToMask): se non specifichi questo valore, verranno mascherati tutti i caratteri. - Indica se invertire l'ordine (
reverseOrder): indica se mascherare i caratteri in ordine inverso. Se inverti l'ordine, i caratteri nei valori corrispondenti vengono mascherati dalla fine all'inizio del valore. - Caratteri da ignorare (
charactersToIgnore): uno o più caratteri da saltare durante il mascheramento dei valori. Ad esempio, puoi indicare a Sensitive Data Protection di lasciare i trattini quando maschera un numero di telefono. Puoi anche specificare un gruppo di caratteri comuni (CharsToIgnore) da ignorare durante il mascheramento.
Supponiamo che tu invii la seguente stringa a Sensitive Data Protection e gli indichi di utilizzare la trasformazione di mascheramento dei caratteri sugli indirizzi email:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Con il carattere di mascheramento impostato su "#", i caratteri da ignorare impostati sul set di caratteri comune e le impostazioni predefinite, Sensitive Data Protection restituisce quanto segue:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
I seguenti esempi di JSON e codice mostrano come funziona la trasformazione di mascheramento.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per saperne di più sull'utilizzo dell'API DLP con JSON, consulta la guida rapida di JSON.
Metodo HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sostituisci PROJECT_ID con l'ID progetto.
Input JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Output JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Trasformazioni di tokenizzazione basate su crittografia
Le trasformazioni di tokenizzazione basata su crittografia (chiamata anche "assegnazione di pseudonimi") sono metodi di anonimizzazione che sostituiscono i valori dei dati sensibili originali con valori crittografati. Sensitive Data Protection supporta i seguenti tipi di tokenizzazione, incluse le trasformazioni che possono essere invertite e consentono la reidentificazione:
- Hashing di crittografia: dato un
CryptoKey, Sensitive Data Protection utilizza un codice di autenticazione dei messaggi basato su SHA-256 (HMAC-SHA-256) sul valore di input, quindi sostituisce il valore di input con il valore sottoposto ad hashing codificato in base64. A differenza di altri tipi di trasformazioni basate su crittografia, questo tipo di trasformazione non è reversibile. - Crittografia con protezione del formato: sostituisce un valore di input con un token generato utilizzando la crittografia con protezione del formato (FPE) con la modalità operativa FFX. Questo metodo di trasformazione produce un token limitato allo stesso alfabeto del valore di input e con la stessa lunghezza del valore di input. FPE supporta anche la reidentificazione, se viene fornita la chiave di crittografia originale.
- Crittografia deterministica: sostituisce un valore di input con un token generato utilizzando AES in modalità Synthetic Initialization Vector (AES-SIV). Questo metodo di trasformazione non ha limitazioni sui set di caratteri delle stringhe supportati, genera token identici per ogni istanza di un valore di input identico e utilizza surrogati per consentire la reidentificazione in base alla chiave di crittografia originale.
Hashing di crittografia
La trasformazione di hashing di crittografia (CryptoHashConfig nell'API DLP) prende un valore di input (un dato sensibile rilevato da Sensitive Data Protection) e lo sostituisce con un valore sottoposto ad hashing. Il valore hash viene generato utilizzando un codice di autenticazione dei messaggi basato su SHA-256 (HMAC-SHA-256) sul valore di input con un CryptoKey.
Sensitive Data Protection restituisce una rappresentazione con codifica base64 del valore di input sottoposto ad hashing al posto del valore originale.
Prima di utilizzare la trasformazione di hashing di crittografia, tieni presente quanto segue:
- Il valore di input non è crittografato, ma sottoposto ad hashing.
- Questa trasformazione non può essere annullata. In altre parole, dato il valore di output con hashing della trasformazione e la chiave di crittografia originale, non è possibile ripristinare il valore originale.
- Al momento, è possibile eseguire l'hashing solo di valori di tipo stringa e numero intero.
- L'output con hashing della trasformazione ha sempre la stessa lunghezza, a seconda delle dimensioni della chiave di crittografia. Ad esempio, se utilizzi la trasformazione di hashing di crittografia su numeri di telefono di 10 cifre, ogni numero di telefono verrà sostituito da un valore hash con codifica base64 di lunghezza fissa.
Crittografia con protezione del formato
Il metodo di trasformazione della crittografia con protezione del formato (FPE)
(CryptoReplaceFfxFpeConfig
nell'API DLP) prende un valore di input (un dato sensibile
rilevato da Sensitive Data Protection), lo cripta utilizzando la crittografia con protezione del formato
in modalità FFX e una
CryptoKey,
quindi sostituisce il valore originale con il valore criptato o token.
Il valore di input:
- Deve contenere almeno due caratteri (o la stringa vuota).
- Deve essere codificato in ASCII.
- Composto dai caratteri specificati da un "alfabeto", ovvero l'insieme di caratteri consentiti nel valore di input (da 2 a 95). Per saperne di più, consulta il campo alphabet in
CryptoReplaceFfxFpeConfig.
Il token generato:
- È il valore di input criptato.
- Conserva il set di caratteri ("alfabeto") e la lunghezza del valore di input dopo la crittografia.
- Viene calcolato utilizzando la crittografia con protezione del formato in modalità FFX con chiave di crittografia specificata.
- Non è necessariamente univoco, poiché ogni istanza dello stesso valore di input viene anonimizzata nello stesso token. In questo modo viene garantita l'integrità referenziale e, di conseguenza, una ricerca più efficiente dei dati anonimizzati. Puoi modificare questo comportamento utilizzando gli "aggiustamenti" del contesto, come descritto in Contesti.
Se nel contenuto di origine sono presenti più istanze di un valore di input, ognuna verrà anonimizzata con lo stesso token. FPE conserva sia la lunghezza che lo spazio dell'alfabeto (il set di caratteri), che è limitato a 95 caratteri. Puoi modificare questo comportamento utilizzando le "modifiche" del contesto, che possono migliorare la sicurezza. L'aggiunta di un aggiustamento del contesto alla trasformazione consente a Sensitive Data Protection di anonimizzare più istanze dello stesso valore di input in token diversi. Se non hai bisogno di preservare la lunghezza e lo spazio alfabetico dei valori originali, utilizza la crittografia deterministica, descritta di seguito.
Sensitive Data Protection calcola il token di sostituzione utilizzando una chiave di crittografia. Puoi fornire questa chiave in tre modi:
- Incorporandola non criptata nella richiesta API. Ti sconsigliamo tuttavia di selezionare questa opzione.
- Richiedendo a Sensitive Data Protection di generarla.
- Incorporandola in forma crittografata nella richiesta API.
Se scegli di incorporare la chiave nella richiesta API, devi creare una chiave e aggregarla (crittografarla) utilizzando una chiave Cloud Key Management Service (Cloud KMS). Per saperne di più, consulta Crea una chiave con wrapping. Il valore restituito è una stringa con codifica Base64 per impostazione predefinita. Per impostare questo valore in Sensitive Data Protection, devi decodificarlo in una stringa di byte. I seguenti snippet di codice mostrano come eseguire questa operazione in diversi linguaggi. Di seguito sono riportati alcuni esempi end-to-end.
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
Per saperne di più sulla crittografia e sulla decrittografia dei dati utilizzando Cloud KMS, consulta Cripta e decripta i dati.
Esempi di crittografia con protezione del formato: anonimizzazione
Questo esempio utilizza il metodo di trasformazione CryptoReplaceFfxFpeConfig per anonimizzare i dati sensibili. Per ulteriori informazioni, consulta
Crittografia con protezione del formato in questa pagina.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia con protezione del formato: anonimizzazione con tipo surrogato
Questo esempio utilizza il metodo di trasformazione CryptoReplaceFfxFpeConfig per anonimizzare i dati sensibili. Per ulteriori informazioni, consulta
Crittografia con protezione del formato in questa pagina.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia con conservazione del formato: anonimizzazione dei dati sensibili nelle tabelle
Questo esempio utilizza il metodo di trasformazione CryptoReplaceFfxFpeConfig per anonimizzare i dati sensibili nelle tabelle. Per ulteriori informazioni, consulta Crittografia con protezione del formato in questa pagina.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia con protezione del formato: reidentificazione
Di seguito è riportato un codice campione in diversi linguaggi che mostra come utilizzare Sensitive Data Protection per reidentificare i dati sensibili che sono stati anonimizzati tramite il metodo di trasformazione CryptoReplaceFfxFpeConfig. Per saperne di più, consulta Crittografia con protezione del formato in questa pagina.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia con protezione del formato: reidentificazione del testo
Di seguito è riportato il codice campione in diversi linguaggi che mostra come utilizzare Sensitive Data Protection per reidentificare il testo sensibile anonimizzato tramite il metodo di trasformazione CryptoReplaceFfxFpeConfig. Per saperne di più, consulta Crittografia con protezione del formato in questa pagina.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia con protezione del formato: reidentificazione con tipo surrogato
Di seguito è riportato un codice campione in diversi linguaggi che mostra come utilizzare Sensitive Data Protection per reidentificare i dati sensibili che sono stati anonimizzati tramite il metodo di trasformazione CryptoReplaceFfxFpeConfig. Per saperne di più, consulta Crittografia con protezione del formato in questa pagina.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia con conservazione del formato: reidentificazione dei dati sensibili nelle tabelle
Di seguito è riportato un codice campione in diversi linguaggi che mostra come utilizzare Sensitive Data Protection per reidentificare i dati sensibili nelle tabelle che sono state anonimizzate tramite il metodo di trasformazione CryptoReplaceFfxFpeConfig. Per saperne di più, consulta Crittografia con protezione del formato in questa pagina.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Crittografia deterministica
Il metodo di trasformazione della crittografia deterministica
CryptoDeterministicConfig
nell'API DLP prende un valore di input (un dato sensibile rilevato da Sensitive Data Protection), lo cripta utilizzando AES-SIV con una CryptoKey, quindi sostituisce il valore originale con una rappresentazione con codifica base64 del valore criptato.
L'utilizzo della trasformazione di crittografia deterministica consente una ricerca più efficiente dei dati criptati.
Il valore di input:
- Deve contenere almeno 1 carattere.
- Non ha limitazioni relative al set di caratteri.
Il token generato:
- È una rappresentazione con codifica Base64 del valore criptato.
- Non conserva il set di caratteri ("alfabeto") o la lunghezza del valore di input dopo la crittografia.
- Viene calcolato utilizzando la crittografia AES in modalità SIV (AES-SIV) con un
CryptoKey. - Non è necessariamente univoco, poiché ogni istanza dello stesso valore di input viene anonimizzata nello stesso token. In questo modo, la ricerca dei dati crittografati è più efficiente. Puoi modificare questo comportamento utilizzando gli "aggiustamenti" del contesto, come descritto in Contesti.
- Viene generato con un prefisso aggiunto, nel formato
[SURROGATE_TYPE]([LENGTH]):, dove[SURROGATE_TYPE]rappresenta un infoType surrogato che descrive il valore di input e[LENGTH]indica la lunghezza dei caratteri. Il surrogato consente di reidentificare il token utilizzando la chiave di crittografia originale utilizzata per l'anonimizzazione.
Di seguito è riportato un esempio di configurazione JSON per l'anonimizzazione utilizzando la crittografia deterministica. Tieni presente che abbiamo scelto di utilizzare "PHONE_SURROGATE" come tipo di surrogato descrittivo, poiché stiamo anonimizzando i numeri di telefono.
[CRYPTO_KEY] rappresenta una chiave di crittografia senza wrapping ottenuta da Cloud KMS.
{
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
]
},
"item":{
"value":"My phone number is 206-555-0574, call me"
}
}
L'anonimizzazione della stringa "My phone number is 206-555-0574" utilizzando questa trasformazione genera una stringa anonimizzata come la seguente:
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
Per reidentificare questa stringa, puoi utilizzare una richiesta JSON come la seguente, dove [CRYPTO_KEY] è la stessa chiave di crittografia utilizzata per anonimizzare i contenuti.
{
"reidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_SURROGATE"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PHONE_SURROGATE"
},
"surrogateType":{
}
}
]
},
"item":{
"value":"My phone number is [PHONE_SURROGATE](36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me"
}
}
La reidentificazione di questa stringa restituisce la stringa originale:
My phone number is 206-555-0574, call me
Se invece vuoi utilizzare un CryptoKey con wrapping (crittografato) per una maggiore sicurezza, consulta la Guida rapida: anonimizzazione e reidentificazione del testo sensibile per un esempio. Quando vuoi utilizzare una libreria client per anonimizzare i contenuti, ricordati di decodificare la chiave con wrapping (che per impostazione predefinita è una stringa con codifica base64), come mostrato in Crittografia con conservazione del formato in questa pagina.
Esempi di crittografia deterministica: anonimizzazione
Questo esempio utilizza il metodo di trasformazione CryptoDeterministicConfig per anonimizzare i dati sensibili. Per saperne di più, consulta Crittografia deterministica in questa pagina.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Esempi di crittografia deterministica: reidentificazione
Questo esempio mostra come reidentificare i dati sensibili che sono stati anonimizzati tramite il metodo di trasformazione CryptoDeterministicConfig. Per saperne di più, consulta Crittografia deterministica in questa pagina.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Bucketing
Le trasformazioni di bucketing servono ad anonimizzare i dati numerici inserendoli in intervalli. L'intervallo di numeri risultante è una stringa con trattino composta da un limite inferiore, un trattino e un limite superiore.
Bucketing di dimensioni fisse
Sensitive Data Protection può raggruppare i valori di input numerici in base a intervalli di dimensioni fisse
(FixedSizeBucketingConfig
nell'API DLP). Per configurare il bucketing di dimensioni fisse, specifica quanto segue:
- Il valore del limite inferiore di tutti i bucket. Tutti i valori inferiori al limite inferiore vengono raggruppati in un unico bucket.
- Il valore del limite superiore di tutti i bucket. Tutti i valori superiori al limite superiore vengono raggruppati in un unico bucket.
- Le dimensioni di ogni bucket, ad eccezione dei bucket minimo e massimo.
Ad esempio, se il limite inferiore è impostato su 10, il limite superiore è impostato su 89 e la dimensione del bucket è impostata su 10, verranno utilizzati i seguenti bucket: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.
Per saperne di più sul concetto di bucketing, consulta Generalizzazione e bucketing.
Bucketing personalizzabile
Il bucketing personalizzabile (BucketingConfig nell'API DLP) offre una maggiore flessibilità rispetto al bucketing di dimensioni fisse.
Anziché specificare i limiti superiore e inferiore e un valore di intervallo con cui creare bucket di dimensioni uguali, specifichi i valori massimo e minimo per ogni bucket che vuoi creare. Ogni coppia di valori minimi e massimi deve avere lo stesso tipo.
Puoi configurare il bucketing personalizzabile specificando i singoli bucket. Ogni bucket ha le seguenti proprietà:
- Il limite inferiore dell'intervallo del bucket. Ometti questo valore per creare un bucket senza limite inferiore.
- Il limite superiore dell'intervallo del bucket. Ometti questo valore per creare un bucket senza limite superiore.
- Il valore sostitutivo per questo intervallo di bucket. Questo è il valore con cui sostituire tutti i valori rilevati che rientrano nei limiti inferiore e superiore. Se non fornisci un valore sostitutivo, verrà generato un intervallo min-max con trattino.
Ad esempio, considera la seguente configurazione JSON per questa trasformazione di bucketing:
"bucketingConfig":{
"buckets":[
{
"min":{
"integerValue":"1"
},
"max":{
"integerValue":"30"
},
"replacementValue":{
"stringValue":"LOW"
}
},
{
"min":{
"integerValue":"31"
},
"max":{
"integerValue":"65"
},
"replacementValue":{
"stringValue":"MEDIUM"
}
},
{
"min":{
"integerValue":"66"
},
"max":{
"integerValue":"100"
},
"replacementValue":{
"stringValue":"HIGH"
}
}
]
}
Questo definisce il seguente comportamento:
- I valori interi compresi tra 1 e 30 vengono mascherati e sostituiti con
LOW. - I valori interi compresi tra 31 e 65 vengono mascherati sostituendoli con
MEDIUM. - I valori interi compresi tra 66 e 100 vengono mascherati e sostituiti con
HIGH.
Per saperne di più sul concetto di bucketing, consulta Generalizzazione e bucketing.
Date shifting
Quando utilizzi la trasformazione di spostamento della data (DateShiftConfig nell'API DLP) su un valore di input della data, Sensitive Data Protection sposta le date di un numero casuale di giorni.
Le tecniche di spostamento delle date spostano in modo casuale un insieme di date, ma preservano la sequenza e la durata di un periodo di tempo. Lo spostamento delle date viene solitamente eseguito nel contesto di un individuo o di un'entità. In altre parole, vuoi spostare tutte le date di un individuo specifico utilizzando lo stesso differenziale di spostamento, ma utilizzare un differenziale di spostamento separato per ogni altro individuo.
Per saperne di più sullo spostamento delle date, consulta Spostamento delle date.
Di seguito è riportato il codice campione in diversi linguaggi che mostra come utilizzare l'API Cloud DLP per anonimizzare le date utilizzando lo spostamento delle date.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Estrazione dell'ora
L'esecuzione dell'oggetto di estrazione dell'ora (TimePartConfig nell'API DLP) conserva una parte di un valore corrispondente che, in una data, un'ora o un timestamp, conserva una parte di un valore corrispondente. Puoi specificare a Sensitive Data Protection il tipo di valore temporale che vuoi estrarre, tra cui anno, mese, giorno del mese e così via (enumerati nell'oggetto TimePart).
Ad esempio, supponiamo che tu abbia configurato una trasformazione timePartConfig impostando la parte dell'ora da estrarre su YEAR. Dopo aver inviato i dati nella prima colonna di seguito a Sensitive Data Protection, otterrai i valori trasformati nella seconda colonna:
| Valori originali | Valori trasformati |
|---|---|
9/21/1976 |
1976 |
6/7/1945 |
1945 |
1/20/2009 |
2009 |
7/4/1776 |
1776 |
8/1/1984 |
1984 |
4/21/1982 |
1982 |
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.