En este tema, se describen las técnicas, o transformaciones, de desidentificación disponibles en Sensitive Data Protection.
Tipos de técnicas de desidentificación
La elección de la transformación de desidentificación que desees usar depende del tipo de datos que deseas desidentificar y con qué propósito lo haces. Las técnicas de desidentificación que admite Sensitive Data Protection se dividen en las siguientes categorías generales:
- Ocultamiento: Borra de forma parcial o completa un valor sensible detectado.
- Reemplazo: Reemplaza un valor sensible detectado por un valor subrogado especificado.
- Enmascaramiento: Reemplaza una cantidad de caracteres de un valor sensible por un carácter subrogado especificado, como un hash (#) o un asterisco (*).
- Asignación de tokens basada en criptografía: Encripta el valor original de los datos sensibles mediante el uso de una clave criptográfica. Sensitive Data Protection admite varios tipos de asignación de tokens, incluidas las transformaciones que se pueden revertir o “reidentificar”.
- Agrupamiento: “Generaliza” un valor sensible mediante su reemplazo por un rango de valores. Por ejemplo, reemplaza una edad específica por un rango de edades o reemplaza temperaturas por rangos que correspondan a “Caliente”, “Medio” y “Frío”.
- Cambio de fechas: Cambia los valores sensibles de fecha por una cantidad de tiempo aleatoria.
- Extracción de tiempo: Extrae o conserva partes específicas de valores de fecha y hora.
En el resto de este tema, se describe cada tipo diferente de transformación de desidentificación y se proporcionan ejemplos de su uso.
Métodos de transformación
En la siguiente tabla, se enumeran las transformaciones que proporciona Sensitive Data Protection para desidentificar datos sensibles:
Transformación | Objeto | Descripción | Se puede revertir1 | Integridad referencial2 | Tipo de entrada |
---|---|---|---|---|---|
Ocultamiento | RedactConfig |
Quita un valor y lo oculta. | Cualquiera | ||
Reemplazo | ReplaceValueConfig |
Reemplaza cada valor de entrada con un valor determinado. | Cualquiera | ||
Reemplazar por diccionario | ReplaceDictionaryConfig
|
Reemplaza un valor de entrada por un valor que se elige al azar de una lista de palabras. | Cualquiera | ||
Reemplazo con Infotipo | ReplaceWithInfoTypeConfig |
Reemplaza un valor de entrada con el nombre de su Infotipo. | Cualquiera | ||
Enmascaramiento con caracteres | CharacterMaskConfig |
Enmascara una string por completo o parcialmente mediante el reemplazo de un número determinado de caracteres con un carácter fijo especificado. | Cualquiera | ||
Seudonimización mediante el reemplazo de un valor de entrada con un hash criptográfico | CryptoHashConfig |
Reemplaza valores de entrada con una string hexadecimal de 32 bytes mediante una clave de encriptación de datos. Para obtener más información, consulta la documentación conceptual de seudonimización. | ✔ | Strings o números enteros | |
Seudonimización mediante el reemplazo por token de preservación de formato criptográfico | CryptoReplaceFfxFpeConfig |
Reemplaza un valor de entrada con un token, o valor sustituto, de la misma longitud mediante la encriptación de preservación de formato (FPE) con el modo de operación FFX. Esto permite que la salida se use en sistemas con validación de formato en función de la longitud. Esto es útil para los sistemas heredados en los que se debe mantener la longitud de la string.
Importante: Para las entradas que varían en su longitud o que tienen una longitud superior a 32 bytes, usa CryptoDeterministicConfig .
Para mantener la seguridad, el Instituto Nacional de Normas y Tecnología recomienda usar los siguientes límites:
|
✔ | ✔ | Strings o números enteros con una cantidad limitada de caracteres y una longitud uniforme. El alfabeto debe estar compuesto al menos por 2 caracteres y no debe contener más de 95. |
Seudonimización mediante el reemplazo por token criptográfico | CryptoDeterministicConfig |
Reemplaza un valor de entrada por un token o un valor subrogado de la misma longitud mediante el uso de AES en modo de vector de inicialización sintética (AES-SIV). Este método de transformación, a diferencia de la asignación de token con preservación de formato, no tiene límites en los grupos de caracteres de string compatibles, genera tokens idénticos para cada instancia de un valor de entrada idéntico y usa subrogados para habilitar la reidentificación con la clave de encriptación original. | ✔ | ✔ | Cualquiera |
Valores de bucket con base en rangos de tamaño fijos | FixedSizeBucketingConfig |
Enmascara los valores de entrada y los reemplaza por depósitos, o rangos dentro de los cuales se encuentra el valor de entrada. | Cualquiera | ||
Valores de bucket con base en rangos de tamaño personalizados | BucketingConfig |
Valores de entrada de depósito con base en rangos configurables por el usuario y valores de reemplazo. | Cualquiera | ||
Cambio de fechas | DateShiftConfig |
Cambia las fechas por un número de días al azar, con la opción de ser coherente en el mismo contexto. | ✔ Conserva la secuencia y la duración |
Fechas y horarios | |
Extracción de datos de tiempo | TimePartConfig |
Extrae o conserva una parte de los valores de Date , Timestamp y TimeOfDay . |
Fechas y horarios |
Pies de página
content.reidentify
.Ocultamiento
Si solo quieres quitar datos sensibles de tu contenido de entrada, Sensitive Data Protection admite una transformación de ocultamiento (RedactConfig
en la API de DLP).
Por ejemplo, supongamos que deseas realizar un ocultamiento simple de todos los Infotipos EMAIL_ADDRESS
y que la siguiente cadena se envía a Protección de datos sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La string obtenida será la que se muestra a continuación:
My name is Alicia Abernathy, and my email address is .
En el siguiente ejemplo y código JSON en varios lenguajes, se muestra cómo formar la solicitud a la API y lo que muestra la API de DLP.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta las Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta las Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Para obtener más información sobre el uso de la API de DLP con JSON, consulta la guía de inicio rápido de JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Reemplaza PROJECT_ID
por el ID del proyecto.
Entrada de 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"
}
]
}
}
Salida de 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"
}
]
}
}
Reemplazo
Las transformaciones de reemplazo sustituyen cada valor de entrada por un valor de token determinado o por el nombre de su Infotipo.
Reemplazo básico
La transformación de reemplazo básico (ReplaceValueConfig
en la API de DLP) reemplaza los valores de datos sensibles detectados por un valor que especifiques. Por ejemplo, supongamos que le indicaste a la Protección de datos sensibles que use “[fake@example.com]” para reemplazar todos los infotipos EMAIL_ADDRESS
detectados y que la siguiente cadena se envía a la Protección de datos sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Se mostrará la siguiente string:
My name is Alicia Abernathy, and my email address is [fake@example.com].
En el siguiente ejemplo y código JSON en varios lenguajes, se muestra cómo formar la solicitud a la API y lo que muestra la API de DLP.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Para obtener más información sobre el uso de la API de DLP con JSON, consulta la guía de inicio rápido de JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Reemplaza PROJECT_ID
por el ID del proyecto.
Entrada de 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"
}
]
}
}
Salida de 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"
}
]
}
}
Reemplazo de diccionario
El reemplazo de diccionario (ReplaceDictionaryConfig
) reemplaza cada dato sensible detectado por un valor que Sensitive Data Protection selecciona de forma aleatoria de una lista de palabras que proporcionas.
Este método de transformación es útil si deseas usar valores de sustitutos realistas.
Supongamos que deseas que Sensitive Data Protection detecte direcciones de correo electrónico y reemplace cada valor detectado por una de las tres direcciones de correo electrónico sustitutas.
Envía la siguiente cadena de entrada a Sensitive Data Protection junto con la lista de direcciones de correo electrónico sustitutivas:
Cadena de entrada
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Lista de palabras
- izumi@example.com
- alex@example.com
- tal@example.com
La cadena que se muestra puede ser cualquiera de las siguientes:
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.
En el siguiente ejemplo de JSON, se muestra cómo formar la solicitud a la API y lo que muestra la API de DLP.
Consulta la guía de inicio rápido de JSON para obtener más información sobre el uso de la API de DLP con JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Reemplaza PROJECT_ID
por el ID del proyecto.
Entrada de 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"
}
]
}
}
Salida de 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#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Reemplazo del Infotipo
También puedes especificar un reemplazo del Infotipo (ReplaceWithInfoTypeConfig
en la API de DLP). Esta transformación hace lo mismo que la transformación de reemplazo básico, pero reemplaza cada valor de datos sensibles detectado por el Infotipo del valor detectado.
Por ejemplo, supongamos que le indicaste a la Protección de datos sensibles que detecte las direcciones de correo electrónico y los apellidos, y que reemplace cada valor detectado por el Infotipo del valor. Debes enviar la siguiente cadena a Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Se mostrará la siguiente string:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
Enmascaramiento
Puedes configurar la Protección de datos sensibles para que enmascare de forma total o parcial un valor sensible detectado (CharacterMaskConfig
en la API de DLP) si reemplazas cada carácter por un único carácter de enmascaramiento fijo, como un asterisco (*) o un hash (#). El enmascaramiento puede comenzar en el principio o el final de la cadena. Esta transformación también funciona con los tipos de número como los números enteros largos.
La transformación de enmascaramiento de Sensitive Data Protection tiene las siguientes opciones que puedes especificar:
- Carácter de enmascaramiento (el argumento
maskingCharacter
en la API de DLP): Es el carácter que se usa para enmascarar cada carácter de un valor sensible. Por ejemplo, puedes especificar un asterisco (*) o un signo de dólar ($) para enmascarar una serie de números, como los del número de una tarjeta de crédito. - El número de caracteres que se debe enmascarar (
numberToMask
): Si no especificas este valor, se enmascararán todos los caracteres. - Si se debe invertir el orden (
reverseOrder
): Indica si se deben enmascarar los caracteres en orden inverso. Invertir el orden hace que los caracteres de los valores coincidentes se enmascaren desde el final hacia el principio del valor. - Caracteres que se deben ignorar (
charactersToIgnore
): Son uno o más caracteres que se deben omitir cuando se enmascaran valores. Por ejemplo, puedes indicarle a Sensitive Data Protection que se conserven los guiones en su lugar cuando se enmascare un número de teléfono. También puedes especificar un grupo de caracteres comunes (CharsToIgnore
) para que se los ignore cuando se enmascara.
Supongamos que envías la siguiente cadena a Sensitive Data Protection y le indicas que use la transformación de enmascaramiento de caracteres en las direcciones de correo electrónico:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Si se envía el carácter de enmascaramiento a “#”, se configuran los caracteres que se deben ignorar como el grupo de caracteres común y se mantiene el resto de la configuración predeterminada, la Protección de datos sensibles mostrará lo siguiente:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
En los siguientes ejemplos de código y JSON, se demuestra cómo funciona la transformación de enmascaramiento.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Para obtener más información sobre el uso de la API de DLP con JSON, consulta la guía de inicio rápido de JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Reemplaza PROJECT_ID
por el ID del proyecto.
Entrada de 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"
}
]
}
}
Salida de 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"
}
]
}
}
Transformaciones de asignación de tokens basada en criptografía
Las transformaciones de asignación de tokens basada en criptografía (también conocida como “seudonimización”) son métodos de desidentificación que reemplazan los valores originales de los datos sensibles por valores encriptados. Sensitive Data Protection admite los siguientes tipos de asignación de tokens, incluidas las transformaciones que se pueden revertir y permiten la reidentificación:
- Hashing criptográfico: Si se le otorga una
CryptoKey
, la Protección de datos sensibles usa un código de autenticación de mensajes basado en SHA-256 (HMAC-SHA-256) en el valor de entrada y, luego, reemplaza el valor de entrada por el valor de hash codificado en base64. A diferencia de otros tipos de transformaciones basadas en criptografía, este tipo de transformación no es reversible. - Encriptación de preservación de formato: Reemplaza un valor de entrada por un token que se generó mediante la encriptación de preservación de formato (FPE) con el modo de operación FFX. Este método de transformación produce un token que está limitado al mismo alfabeto que el valor de entrada y tiene la misma longitud que este. La FPE también admite la reidentificación si se otorga la clave de encriptación original.
- Encriptación determinista: Reemplaza un valor de entrada por un token que se generó mediante el uso de AES en modo de vector de inicialización sintética (AES-SIV). Este método de transformación no tiene límites en los grupos de caracteres de string compatibles, genera tokens idénticos para cada instancia de un valor de entrada idéntico y usa valores subrogados a fin de habilitar la reidentificación si se otorga la clave de encriptación original.
Hashing criptográfico
La transformación de hashing criptográfico (CryptoHashConfig
en la API de DLP) toma un valor de entrada (un dato sensible que detectó la Protección de datos sensibles) y lo reemplaza por un valor de hash. El valor de hash se genera mediante el uso de un código de autenticación de mensajes basado en SHA-256 (HMAC-SHA-256) en el valor de entrada con una CryptoKey
.
La Protección de datos sensibles genera una representación codificada en base64 del valor de entrada de hash, en lugar del valor original.
Antes de usar la transformación de hashing criptográfico, ten en cuenta lo siguiente:
- El valor de entrada no está encriptado, pero tiene un hash.
- Esta transformación no se puede revertir. Es decir, si se otorga la clave criptográfica original y el valor de salida de hash de la transformación, no hay manera de restablecer el valor original.
- Por el momento, solo se puede generar un hash en los valores de número entero y string.
- La salida con un hash de la transformación siempre tiene la misma longitud, según el tamaño de la clave criptográfica. Por ejemplo, si usas la transformación de hashing criptográfico en números de teléfono de 10 dígitos, cada número de teléfono se reemplazará por un valor de hash codificado en base64 de longitud fija.
Encriptación de preservación de formato
El método de transformación de encriptación de preservación de formato (FPE) (CryptoReplaceFfxFpeConfig
en la API de DLP) toma un valor de entrada (un dato sensible que detectó la Protección de datos sensibles), lo encripta con la encriptación de preservación de formato en modo FFX y un CryptoKey
y, luego, reemplaza el valor original por el valor encriptado o el token.
El valor de entrada debe cumplir las siguientes condiciones:
- Debe constar de al menos dos caracteres (o la string vacía).
- Se debe codificar como ASCII.
- Debe estar compuesto por los caracteres que especifica un “alfabeto”, que es el conjunto de entre 2 y 95 caracteres permitidos en el valor de entrada. Para obtener más información, consulta el campo del alfabeto en
CryptoReplaceFfxFpeConfig
.
El token generado tiene las siguientes características:
- Es el valor de entrada encriptado.
- Conserva el grupo de caracteres (“alfabeto”) y la longitud del valor de entrada luego de la encriptación.
- Se calcula mediante la encriptación de preservación de formato en el modo FFX que está vinculada con la clave criptográfica especificada.
- No es necesariamente único, ya que cada instancia del mismo valor de entrada genera el mismo token cuando se desidentifica. Esto habilita la integridad referencial y, por lo tanto, permite una búsqueda más eficiente de los datos desidentificados. Puedes cambiar este comportamiento si realizas “ajustes” de contexto, como se describe en Contextos.
Si hay varias instancias de un valor de entrada en el contenido de origen, cada una generará el mismo token cuando se desidentifique. La FPE conserva la longitud y el espacio del alfabeto (el grupo de caracteres), que tiene un límite de 95 caracteres. Puedes cambiar este comportamiento si realizas “ajustes” de contexto, lo que puede mejorar la seguridad. La adición de un ajuste de contexto a la transformación permite que la Protección de datos sensibles desidentifique varias instancias del mismo valor de entrada como tokens diferentes. Si no necesitas conservar la longitud y el espacio del alfabeto de los valores originales, usa la encriptación determinista, que se describe a continuación.
La Protección de datos sensibles calcula el token de reemplazo con una clave criptográfica. Debes proporcionar esta clave de una de las siguientes tres maneras:
- Incorpórala sin encriptar en la solicitud a la API. No se recomienda hacerlo.
- Solicita que Sensitive Data Protection la genere.
- Incorpórala ya encriptada en la solicitud a la API.
Si eliges incorporar la clave en la solicitud a la API, debes crear una clave y unirla (encriptarla) con una clave de Cloud Key Management Service (Cloud KMS). Para obtener más información, consulta Crea una clave unida. El valor que se muestra es una string codificada en base64 de forma predeterminada. Para establecer este valor en la Protección de datos sensibles, debes decodificarlo en una cadena de bytes. En los siguientes fragmentos de código, se destaca cómo realizar esto en varios lenguajes. A continuación de estos fragmentos, se proporcionan ejemplos de extremo a extremo.
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)
Para obtener más información sobre la encriptación y la desencriptación de datos mediante Cloud KMS, consulta Encripta y desencripta datos.
Ejemplos de encriptación de preservación de formato: desidentificación
En este ejemplo, se usa el método de transformación CryptoReplaceFfxFpeConfig
para desidentificar datos sensibles. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación de preservación de formato: desidentificación con tipo subrogado
En este ejemplo, se usa el método de transformación CryptoReplaceFfxFpeConfig
para desidentificar datos sensibles. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación de preservación de formato: desidentificación de datos sensibles en tablas
En este ejemplo, se usa el método de transformación CryptoReplaceFfxFpeConfig
para desidentificar los datos sensibles en las tablas. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación de preservación de formato: reidentificación
A continuación, se muestra el código de muestra en varios lenguajes que demuestra cómo usar la Protección de datos sensibles para volver a identificar datos sensibles que se desidentificaron a través del método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación de preservación de formato: reidentificación de texto
A continuación, se muestra el código de muestra en varios lenguajes que demuestra cómo usar la Protección de datos sensibles para volver a identificar el texto sensible que se desidentificó a través del método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación de preservación de formato: reidentificación con tipo subrogado
A continuación, se muestra el código de muestra en varios lenguajes que demuestran cómo usar la Protección de datos sensibles para volver a identificar los datos sensibles que se desidentificaron a través del método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación de preservación de formato: reidentificación de datos sensibles en tablas
A continuación, se muestra el código de muestra en varios lenguajes que demuestran cómo usar la Protección de datos sensibles para volver a identificar datos sensibles en tablas que se desidentificaron a través del método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta Encriptación de preservación de formato en esta página.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Encriptación determinista
El método de transformación de encriptación determinista, CryptoDeterministicConfig
en la API de DLP, toma un valor de entrada (un dato sensible que detectó la Protección de datos sensibles), lo encripta mediante el uso de AES-SIV con una CryptoKey
y, luego, reemplaza el valor original por una representación codificada en base64 del valor encriptado.
El uso de la transformación de encriptación determinista permite una búsqueda más eficiente de los datos encriptados.
El valor de entrada debe cumplir las siguientes condiciones:
- Debe tener una longitud mínima de 1 carácter.
- No debe tener limitaciones de grupo de caracteres.
El token generado tiene las siguientes características:
- Es una representación codificada en base64 del valor encriptado.
- No conserva el grupo de caracteres (“alfabeto”) ni la longitud del valor de entrada luego de la encriptación.
- Se calcula mediante la encriptación AES en modo SIV (AES-SIV) con una
CryptoKey
. - No es necesariamente único, ya que cada instancia del mismo valor de entrada genera el mismo token cuando se desidentifica. Esto permite realizar búsquedas más eficientes de los datos encriptados. Puedes cambiar este comportamiento si realizas “ajustes” de contexto, como se describe en Contextos.
- Se genera con un prefijo agregado en el formato
[SURROGATE_TYPE]([LENGTH]):
, en el que[SURROGATE_TYPE]
representa un Infotipo subrogado que describe el valor de entrada y[LENGTH]
indica la longitud de caracteres. El valor subrogado permite que el token se vuelva a identificar mediante la clave de encriptación original que se usó para la desidentificación.
A continuación, se muestra un ejemplo de configuración JSON para la desidentificación mediante una encriptación determinista. Ten en cuenta que elegimos “PHONE_SURROGATE” como nuestro tipo de valor subrogado descriptivo, ya que estamos desidentificando números de teléfono.
[CRYPTO_KEY]
representa una clave criptográfica separada que se obtuvo de 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"
}
}
Si se desidentifica la string “My phone number is 206-555-0574” mediante esta transformación, se genera una string desidentificada como la que se muestra a continuación:
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
Si deseas volver a identificar esta string, puedes usar una solicitud JSON como la siguiente, en la que [CRYPTO_KEY] es la misma clave criptográfica que se usó para desidentificar el contenido.
{
"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"
}
}
Si se vuelve a identificar esta string, se genera la string original:
My phone number is 206-555-0574, call me
Si, en cambio, deseas usar una CryptoKey
unida (encriptada) para mejorar la seguridad, consulta la Guía de inicio rápido: Desidentifica y reidentifica texto sensible para ver un ejemplo. Cuando estés listo para usar una biblioteca cliente a fin de desidentificar contenido, recuerda decodificar la clave unida (que es una string codificada en base64 de forma predeterminada), como se muestra en Encriptación de preservación de formato en esta página.
Ejemplos de encriptación determinista: desidentificación
En este ejemplo, se usa el método de transformación CryptoDeterministicConfig
para desidentificar datos sensibles. Para obtener más información, consulta Encriptación determinista en esta página.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de encriptación determinista: reidentificación
En este ejemplo, se muestra cómo volver a identificar los datos sensibles que se desidentificaron a través del método de transformación CryptoDeterministicConfig
. Para obtener más información, consulta Encriptación determinista en esta página.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Agrupamiento
Las transformaciones de agrupamiento sirven para desidentificar datos numéricos mediante el “agrupamiento” en rangos. El rango numérico resultante es una string con guion que consta de un límite inferior, un guion y un límite superior.
Agrupamiento de tamaño fijo
Sensitive Data Protection puede bucket valores de entrada numéricos en función de rangos de tamaño fijos (FixedSizeBucketingConfig
en la API de DLP). Debes especificar los siguientes elementos para configurar el agrupamiento de tamaño fijo:
- El valor del límite inferior de todos los grupos. Los valores que sean menores al límite inferior se agruparán en un solo grupo
- El valor del límite superior de todos los grupos. Los valores que sean mayores al límite superior se agruparán en un solo grupo
- El tamaño de cada grupo que sea distinto de los grupos mínimo y máximo.
Por ejemplo, si el límite inferior se establece en 10, el límite superior en 89 y el tamaño del grupo en 10, se usarán los siguientes grupos: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.
Para obtener más información sobre el concepto de agrupamiento, consulta Generalización y agrupamiento.
Agrupamiento personalizable
El agrupamiento personalizable (BucketingConfig
en la API de DLP) ofrece más flexibilidad que el agrupamiento de tamaño fijo.
En vez de especificar los límites inferiores y superiores y un valor interno para crear grupos de igual tamaño, especificas los valores mínimo y máximo de cada grupo que desees crear. Cada par de valores mínimo y máximo debe tener el mismo tipo.
Puedes configurar el agrupamiento personalizable si especificas grupos individuales. Cada bucket tiene las siguientes propiedades:
- El límite inferior del rango del grupo. Omite este valor para crear un grupo que no tenga un límite inferior
- El límite superior del rango del grupo. Omite este valor para crear un grupo que no tenga un límite superior
- El valor de reemplazo para este rango de grupos. Este es el valor por el que se reemplazarán todos los valores detectados que se encuentren entre los límites inferior y superior. Si no proporcionas un valor de reemplazo, se generará un rango de mínimos y máximos con guiones
Por ejemplo, considera la siguiente configuración de JSON para esta transformación de agrupamiento:
"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"
}
}
]
}
Esta configuración define el siguiente comportamiento:
- Los valores de número entero que se encuentran entre 1 y 30 se enmascaran mediante el reemplazo por
LOW
. - Los valores de número entero que se encuentran entre 31 y 65 se enmascaran mediante el reemplazo por
MEDIUM
. - Los valores de número entero que se encuentran entre 66 y 100 se enmascaran mediante el reemplazo por
HIGH
.
Para obtener más información sobre el concepto de agrupamiento, consulta Generalización y agrupamiento.
Cambio de fechas
Cuando usas la transformación de cambio de fechas (DateShiftConfig
en la API de DLP) en un valor de entrada de fecha, Sensitive Data Protection cambia las fechas por una cantidad aleatoria de días.
Las técnicas de cambio de fechas cambian un conjunto de fechas de forma aleatoria, pero conservan la secuencia y la duración de un período. En general, el cambio de fechas se realiza en el contexto de un individuo o una entidad. Es decir, debes cambiar todas las fechas de un individuo específico mediante el uso del mismo diferencial de cambio, pero debes usar un diferencial de cambio distinto para cada individuo.
Para obtener más información sobre el cambio de fechas, consulta Cambio de fechas.
A continuación, se observa el código de muestra en varios lenguajes, lo que explica cómo usar la API de Cloud DLP para desidentificar fechas mediante el cambio de fecha.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Extracción de tiempo
Ejecutar el objeto de extracción de tiempo (TimePartConfig
en la API de DLP) conserva una parte de un valor coincidente que, en una fecha, una hora o una marca de tiempo, conserva una parte de un valor coincidente. Especifica a la Protección de datos sensibles qué tipo de valor de tiempo deseas extraer, incluidos el año, el mes, el día del mes y demás (que se enumeran en el objeto TimePart
).
Por ejemplo, supongamos que configuraste una transformación timePartConfig
mediante la configuración de la parte del tiempo que se debe extraer para el valor YEAR
. Después de enviar los datos de la primera columna que se encuentra a continuación a Sensitive Data Protection, obtendrías los valores transformados de la segunda columna:
Valores originales | Valores transformados |
---|---|
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#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.