En este tema se describen las técnicas de desidentificación o transformaciones disponibles en Protección de Datos Sensibles.
Tipos de técnicas de desidentificación
La transformación de desidentificación que elijas dependerá del tipo de datos que quieras desidentificar y del propósito de la desidentificación. Las técnicas de desidentificación que admite Protección de Datos Sensibles se dividen en las siguientes categorías generales:
- Ocultación: elimina todo o parte de un valor sensible detectado.
- Sustitución: sustituye un valor sensible detectado por un valor de sustitución especificado.
- Máscara: sustituye un número de caracteres de un valor sensible por un carácter de sustitución especificado, como una almohadilla (#) o un asterisco (*).
- Tokenización basada en criptografía: cifra el valor de los datos sensibles originales con una clave criptográfica. Protección de Datos Sensibles admite varios tipos de tokenización, incluidas las transformaciones que se pueden revertir o "reidentificar".
- Asignación a contenedores: generaliza un valor sensible sustituyéndolo por un intervalo de valores. Por ejemplo, sustituir una edad específica por un intervalo de edades o temperaturas por intervalos correspondientes a "Caliente", "Templado" y "Frío".
- Cambios de fecha: cambia los valores de fecha sensibles en un periodo aleatorio.
- Extracción de hora: extrae o conserva las partes especificadas de los valores de fecha y hora.
En el resto de este tema se explica cada tipo de transformación de anonimización y se ofrecen ejemplos de su uso.
Métodos de transformación
En la siguiente tabla se muestran las transformaciones que ofrece Protección de Datos Sensibles para desidentificar datos sensibles:
Transformación | Objeto | Descripción | Puede invertir1 | Integridad referencial2 | Tipo de entrada |
---|---|---|---|---|---|
Ocultamiento | RedactConfig |
Oculta un valor eliminándolo. | Cualquiera | ||
Sustitución | ReplaceValueConfig |
Sustituye cada valor de entrada por un valor determinado. | Cualquiera | ||
Sustituir por diccionario | ReplaceDictionaryConfig
|
Sustituye un valor de entrada por un valor seleccionado aleatoriamente de una lista de palabras. | Cualquiera | ||
Reemplazar por infoType | ReplaceWithInfoTypeConfig |
Sustituye un valor de entrada por el nombre de su infoType. | Cualquiera | ||
Máscara con carácter | CharacterMaskConfig |
Máscara una cadena total o parcialmente sustituyendo un número determinado de caracteres por un carácter fijo especificado. | Cualquiera | ||
Seudonimización sustituyendo el valor de entrada por un hash criptográfico | CryptoHashConfig |
Sustituye los valores de entrada por una cadena hexadecimal de 32 bytes generada con una clave de cifrado de datos determinada. Consulta la documentación conceptual sobre la seudonimización para obtener más información. | ✔ | Cadenas o números enteros | |
Seudonimización sustituyendo por un token criptográfico que conserva el formato | CryptoReplaceFfxFpeConfig |
Sustituye un valor de entrada por un token o un valor sustituto de la
misma longitud mediante el cifrado con preservación de formato (FPE) con el modo
de operación FFX. De esta forma, la salida se puede usar en sistemas que validan el formato según la longitud. Esto resulta útil para los sistemas antiguos en los que
se debe mantener la longitud de la cadena.
Importante: Para las entradas que varían en longitud o que tienen una longitud superior a 32 bytes, usa CryptoDeterministicConfig .
Para mantener la seguridad, el
Instituto Nacional de Normas y Tecnología de EE. UU.
|
✔ | ✔ | Cadenas o números enteros con un número limitado de caracteres y una longitud uniforme. El alfabeto debe estar formado por al menos 2 caracteres y no puede contener más de 95. |
Seudonimización mediante la sustitución por un token criptográfico | CryptoDeterministicConfig |
Sustituye un valor de entrada por un token o un valor sustituto de la misma longitud mediante AES en modo de vector de inicialización sintético (AES-SIV). Este método de transformación, a diferencia de la tokenización que conserva el formato, no tiene ninguna limitación en los conjuntos de caracteres de cadena admitidos, genera tokens idénticos para cada instancia de un valor de entrada idéntico y usa sustitutos para permitir la reidentificación con la clave de cifrado original. | ✔ | ✔ | Cualquiera |
Valores de segmento basados en intervalos de tamaño fijo | FixedSizeBucketingConfig |
Enmascara los valores de entrada sustituyéndolos por contenedores o intervalos en los que se encuentra el valor de entrada. | Cualquiera | ||
Valores de segmento basados en intervalos de tamaño personalizados | BucketingConfig |
Segmenta los valores de entrada en función de los intervalos configurables por el usuario y los valores de sustitución. | Cualquiera | ||
Cambios de fecha | DateShiftConfig |
Desplaza las fechas un número aleatorio de días, con la opción de ser coherente en el mismo contexto. | ✔ Conserva la secuencia y la duración |
Fechas y horas | |
Extraer datos de tiempo | TimePartConfig |
Extrae o conserva una parte de los valores Date , Timestamp y TimeOfDay . |
Fechas y horas |
Notas a pie de página
content.reidentify
.
Ocultamiento
Si solo quieres eliminar datos sensibles del contenido de entrada, Protección de Datos Sensibles admite una transformación de ocultación (RedactConfig
en la API DLP).
Por ejemplo, supongamos que quieres ocultar todos los infoTypes y que se envía la siguiente cadena a Protección de Datos Sensibles:EMAIL_ADDRESS
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta será la siguiente:
My name is Alicia Abernathy, and my email address is .
En el siguiente ejemplo de JSON y código en varios lenguajes se muestra cómo crear la solicitud a la API y qué devuelve la API DLP.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
REST
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API DLP con JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sustituye PROJECT_ID
por el ID del proyecto.
Entrada 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 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"
}
]
}
}
Sustitución
Las transformaciones de sustitución reemplazan cada valor de entrada por un valor de token determinado o por el nombre de su infoType.
Sustitución básica
La transformación de sustitución básica
(ReplaceValueConfig
en la API de DLP) sustituye los valores de datos sensibles detectados por un valor
que especifiques. Por ejemplo, supongamos que ha indicado a Protección de Datos Sensibles que utilice "[fake@example.com]" para sustituir todos los infoTypes EMAIL_ADDRESS
detectados y que se envía la siguiente cadena a Protección de Datos Sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta es la siguiente:
My name is Alicia Abernathy, and my email address is [fake@example.com].
En el siguiente ejemplo de JSON y código en varios lenguajes se muestra cómo crear la solicitud a la API y qué devuelve la API DLP.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
REST
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API DLP con JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sustituye PROJECT_ID
por el ID del proyecto.
Entrada 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 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"
}
]
}
}
Sustitución de diccionario
Sustitución por diccionario
(ReplaceDictionaryConfig
)
sustituye cada fragmento de datos sensibles detectado por un valor que Protección de Datos Sensibles selecciona aleatoriamente de una lista de palabras que proporcionas.
Este método de transformación es útil si quieres usar valores sustitutos realistas.
Supongamos que quiere que Protección de Datos Sensibles detecte direcciones de correo electrónico y sustituya cada valor detectado por una de las tres direcciones de correo electrónico ficticias.
Envías la siguiente cadena de entrada a Protección de Datos Sensibles junto con la lista de direcciones de correo sustitutas:
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 devuelta 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 crear la solicitud de la API y qué devuelve la API DLP.
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API de DLP con JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sustituye PROJECT_ID
por el ID del proyecto.
Entrada 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 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 saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Sustitución de infoType
También puedes especificar una sustitución de infoType
(ReplaceWithInfoTypeConfig
en la API DLP). Esta transformación hace lo mismo que la transformación de sustitución básica, pero sustituye cada valor de datos sensibles detectado por el infoType del valor detectado.
Por ejemplo, supongamos que ha indicado a Protección de Datos Sensibles que detecte tanto direcciones de correo electrónico como apellidos, y que sustituya cada valor detectado por el infoType del valor. Envías la siguiente cadena a Protección de Datos Sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta es la siguiente:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
Enmascaramiento
Puedes configurar Protección de Datos Sensibles para que enmascare total o parcialmente un valor sensible detectado (CharacterMaskConfig
en la API DLP) sustituyendo cada carácter por un carácter de enmascaramiento único fijo, como un asterisco (*) o una almohadilla (#). El enmascaramiento puede empezar al principio o al final de la cadena. Esta transformación también funciona con tipos de números, como los enteros largos.
La transformación de enmascaramiento de Protección de Datos Sensibles tiene las siguientes opciones que puede especificar:
- Carácter de enmascaramiento (argumento
maskingCharacter
de la API DLP): 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 ocultar una serie de números, como los de una tarjeta de crédito. - Número de caracteres que se van a enmascarar (
numberToMask
): si no especifica este valor, se enmascararán todos los caracteres. - Indica si se debe invertir el orden (
reverseOrder
): indica si se deben enmascarar los caracteres en orden inverso. Si se invierte el orden, los caracteres de los valores coincidentes se ocultan desde el final hacia el principio del valor. - Caracteres que se ignorarán (
charactersToIgnore
): uno o varios caracteres que se omitirán al enmascarar valores. Por ejemplo, puedes indicar a Protección de Datos Sensibles que deje los guiones al enmascarar un número de teléfono. También puedes especificar un grupo de caracteres comunes (CharsToIgnore
) para que se omitan al enmascarar.
Supongamos que envía la siguiente cadena a Protección de Datos Sensibles y le indica que aplique la transformación de enmascaramiento de caracteres a las direcciones de correo electrónico:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Con el carácter de máscara enviado a "#", los caracteres que se deben ignorar definidos como el conjunto de caracteres comunes y los demás ajustes predeterminados, Protección de Datos Sensibles devuelve lo siguiente:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
En los siguientes ejemplos de JSON y de código se muestra cómo funciona la transformación de enmascaramiento.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
REST
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API DLP con JSON.
Método HTTP y URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Sustituye PROJECT_ID
por el ID del proyecto.
Entrada 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 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 tokenización basadas en criptografía
Las transformaciones de tokenización basadas en cifrado (también denominadas "seudonimización") son métodos de desidentificación que sustituyen los valores de datos sensibles originales por valores cifrados. Protección de Datos Sensibles admite los siguientes tipos de tokenización, incluidas las transformaciones que se pueden revertir y permiten la reidentificación:
- Cifrado con hash: dado un
CryptoKey
, Sensitive Data Protection usa un código de autenticación de mensajes basado en SHA-256 (HMAC-SHA-256) en el valor de entrada y, a continuación, sustituye el valor de entrada por el valor cifrado con hash codificado en base64. A diferencia de otros tipos de transformaciones basadas en criptografía, este tipo de transformación no es reversible. - Encriptado con preservación de formato: sustituye un valor de entrada por un token que se ha generado mediante el encriptado con preservación de formato (FPE) con el modo de operación FFX. Este método de transformación genera un token que se limita al mismo alfabeto que el valor de entrada y tiene la misma longitud que el valor de entrada. El FPE también admite la reidentificación con la clave de cifrado original.
- Cifrado determinista: sustituye un valor de entrada por un token que se ha generado mediante AES en modo de vector de inicialización sintético (AES-SIV). Este método de transformación no tiene ninguna limitación en cuanto a los conjuntos de caracteres de cadena admitidos, genera tokens idénticos para cada instancia de un valor de entrada idéntico y usa sustitutos para permitir la reidentificación con la clave de cifrado original.
Cifrado con hash criptográfico
La transformación de cifrado hash (CryptoHashConfig
en la API DLP) toma un valor de entrada (un fragmento de datos sensibles que
Protección de Datos Sensibles ha detectado) y lo sustituye por un valor cifrado con hash. El valor de hash se genera mediante un código de autenticación de mensajes basado en SHA-256 (HMAC-SHA-256) en el valor de entrada con una CryptoKey
.
Protección de Datos Sensibles genera una representación codificada en base64 del valor de entrada cifrado con hash en lugar del valor original.
Antes de usar la transformación de cifrado hash, ten en cuenta lo siguiente:
- El valor de entrada no está cifrado, sino cifrado con hash.
- Esta transformación no se puede deshacer. Es decir, dado el valor de salida cifrado de la transformación y la clave criptográfica original, no hay forma de restaurar el valor original.
- Por el momento, solo se pueden cifrar valores de cadena y enteros.
- La salida cifrada de la transformación siempre tiene la misma longitud, en función del tamaño de la clave criptográfica. Por ejemplo, si usas la transformación de cifrado hash en números de teléfono de 10 dígitos, cada número de teléfono se sustituirá por un valor hash de longitud fija codificado en base64.
Encriptado con preservación de formato
El método de transformación de encriptado con preservación de formato (FPE) CryptoReplaceFfxFpeConfig
de la API DLP toma un valor de entrada (un fragmento de datos sensibles que ha detectado Protección de Datos Sensibles), lo encripta mediante el encriptado con preservación de formato en modo FFX y una CryptoKey
y, a continuación, sustituye el valor original por el valor encriptado o token.
El valor de entrada:
- Debe tener al menos dos caracteres (o una cadena vacía).
- Debe estar codificado como ASCII.
- Se compone de los caracteres especificados por 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 alphabet en
CryptoReplaceFfxFpeConfig
.
Token generado:
- Es el valor de entrada cifrado.
- Conserva el conjunto de caracteres ("alfabeto") y la longitud del valor de entrada después del cifrado.
- Se calcula mediante el cifrado con preservación de formato en modo FFX con la clave criptográfica especificada.
- No tiene por qué ser único, ya que cada instancia del mismo valor de entrada se anonimiza con el mismo token. Esto permite la integridad referencial y, por lo tanto, una búsqueda más eficiente de datos anonimizados. Puedes cambiar este comportamiento usando "ajustes" de contexto, como se describe en Contextos.
Si hay varias instancias de un valor de entrada en el contenido de origen, cada una de ellas se anonimizará con el mismo token. FPE conserva tanto la longitud como el espacio del alfabeto (el conjunto de caracteres), que está limitado a 95 caracteres. Puedes cambiar este comportamiento usando "ajustes" contextuales, que pueden mejorar la seguridad. Al añadir un ajuste de contexto a la transformación, Protección de Datos Sensibles puede desidentificar varias instancias del mismo valor de entrada en diferentes tokens. Si no necesitas conservar la longitud y el espacio del alfabeto de los valores originales, usa el cifrado determinista, que se describe más abajo.
Protección de Datos Sensibles calcula el token de sustitución mediante una clave criptográfica. Puedes proporcionar esta clave de tres formas:
- Insertándola sin cifrar en la solicitud a la API. aunque no se recomienda hacerlo.
- Solicitando a Protección de Datos Sensibles que la genere.
- Insertándola cifrada en la solicitud a la API.
Si decides insertar la clave en la solicitud de la API, debes crear una clave y envolverla (cifrarla) con una clave de Cloud Key Management Service (Cloud KMS). Para obtener más información, consulta Crear una clave envuelta. El valor devuelto es una cadena codificada en base64 de forma predeterminada. Para definir este valor en Protección de Datos Sensibles, debes decodificarlo en una cadena de bytes. En los siguientes fragmentos de código se destaca cómo hacerlo en varios idiomas. Después de estos fragmentos, se proporcionan ejemplos completos.
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 cómo cifrar y descifrar datos con Cloud KMS, consulta Cifrar y descifrar datos.
Ejemplos de encriptado con conservación del formato: desidentificación
En este ejemplo se usa el método de transformación CryptoReplaceFfxFpeConfig
para desidentificar los datos sensibles. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de encriptado con conservación del formato: desidentificación con tipo de sustituto
En este ejemplo se usa el método de transformación CryptoReplaceFfxFpeConfig
para desidentificar los datos sensibles. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de encriptado con conservación del 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 de las tablas. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de encriptado con conservación del formato: reidentificación
A continuación, se muestra un código de ejemplo en varios lenguajes que explica cómo usar Protección de Datos Sensibles para volver a identificar datos sensibles que se han anonimizado mediante el método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de encriptado con conservación del formato: reidentificación de texto
A continuación, se muestra un código de ejemplo en varios lenguajes que demuestra cómo usar Protección de Datos Sensibles para volver a identificar texto sensible que se ha anonimizado mediante el método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de encriptado con conservación del formato: reidentificación con tipo de sustituto
A continuación, se muestra un código de ejemplo en varios lenguajes que explica cómo usar Protección de Datos Sensibles para volver a identificar datos sensibles que se han anonimizado mediante el método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de encriptado con conservación del formato: reidentificación de datos sensibles en tablas
A continuación, se muestra un código de ejemplo en varios idiomas que explica cómo usar Protección de Datos Sensibles para volver a identificar datos sensibles en tablas que se han anonimizado mediante el método de transformación CryptoReplaceFfxFpeConfig
. Para obtener más información, consulta la sección Encriptado que mantiene el formato de esta página.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Cifrado determinista
El método de transformación de cifrado determinista CryptoDeterministicConfig
de la API DLP toma un valor de entrada (un fragmento de datos sensibles que
Protección de Datos Sensibles ha detectado), lo cifra mediante AES-SIV
con un CryptoKey
y, a continuación, sustituye el valor original por una representación codificada en base64 del valor cifrado.
Usar la transformación de cifrado determinista permite buscar datos cifrados de forma más eficiente.
El valor de entrada:
- Debe tener al menos 1 carácter.
- No tiene limitaciones de conjunto de caracteres.
Token generado:
- Es una representación codificada en Base64 del valor cifrado.
- No conserva el conjunto de caracteres ("alfabeto") ni la longitud del valor de entrada después del cifrado.
- Se calcula mediante el cifrado AES en modo SIV (AES-SIV) con un
CryptoKey
. - No tiene por qué ser único, ya que cada instancia del mismo valor de entrada se anonimiza con el mismo token. Esto permite buscar datos cifrados de forma más eficiente. Puedes cambiar este comportamiento usando ajustes de contexto, como se describe en Contextos.
- Se genera con un prefijo añadido, con el formato
[SURROGATE_TYPE]([LENGTH]):
, donde[SURROGATE_TYPE]
representa un infoType sustituto que describe el valor de entrada y[LENGTH]
indica la longitud de sus caracteres. El subrogado permite que el token se vuelva a identificar con la clave de cifrado original que se usó para la desidentificación.
A continuación, se muestra un ejemplo de configuración JSON para la anonimización mediante cifrado determinista. Ten en cuenta que hemos elegido usar "PHONE_SURROGATE" como tipo de sustituto descriptivo, ya que vamos a desidentificar números de teléfono.
[CRYPTO_KEY]
representa una clave criptográfica desencapsulada obtenida 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 anonimiza la cadena "Mi número de teléfono es 206-555-0574" con esta transformación, se obtiene una cadena anonimizada como la siguiente:
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
Para volver a identificar esta cadena, puedes usar una solicitud JSON como la siguiente, donde [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 cadena, se obtiene la cadena original:
My phone number is 206-555-0574, call me
Si quieres usar un CryptoKey
envuelto (cifrado) para mejorar la seguridad, consulta un ejemplo en Guía de inicio rápido: desidentificar y reidentificar texto sensible. Cuando quieras usar una biblioteca de cliente para anonimizar contenido, recuerda decodificar la clave envuelta (que es una cadena codificada en base64 de forma predeterminada), tal como se muestra en la sección Cifrado que conserva el formato de esta página.
Ejemplos de cifrado determinista: desidentificación
En este ejemplo se usa el método de transformación CryptoDeterministicConfig
para desidentificar los datos sensibles. Para obtener más información, consulta la sección Cifrado determinista de esta página.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ejemplos de cifrado determinista: reidentificación
En este ejemplo se muestra cómo volver a identificar datos sensibles que se han desidentificado mediante el método de transformación CryptoDeterministicConfig
. Para obtener más información, consulta la sección Cifrado determinista de esta página.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Agrupación
Las transformaciones de agrupamiento sirven para desidentificar datos numéricos agrupándolos en intervalos. El intervalo de números resultante es una cadena con un guion que consta de un límite inferior, un guion y un límite superior.
Contenedores de tamaño fijo
Protección de Datos Sensibles puede agrupar valores de entrada numéricos en función de intervalos de tamaño fijo
(FixedSizeBucketingConfig
en la API DLP). Para configurar la asignación a segmentos de tamaño fijo, debe especificar lo siguiente:
- Valor del límite inferior de todos los segmentos. Los valores inferiores al límite inferior se agrupan en un solo segmento.
- El valor del límite superior de todos los segmentos. Los valores que superen el límite superior se agruparán en un solo segmento.
- Tamaño de cada contenedor, excepto el mínimo y el máximo.
Por ejemplo, si el límite inferior es 10, el límite superior es 89 y el tamaño del contenedor es 10, se usarían los siguientes contenedores: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89 y 89+.
Para obtener más información sobre el concepto de segmentación, consulta Generalización y segmentación.
Asignación a segmentos personalizable
La creación de contenedores personalizable
(BucketingConfig
en la API DLP) ofrece más flexibilidad que la creación de contenedores de tamaño fijo.
En lugar de especificar los límites superior e inferior y un valor de intervalo para crear contenedores del mismo tamaño, puede especificar los valores máximo y mínimo de cada contenedor que quiera crear. Cada par de valores máximo y mínimo debe tener el mismo tipo.
Para configurar el agrupamiento personalizable, especifica los contenedores individuales. Cada segmento tiene las siguientes propiedades:
- Límite inferior del intervalo del contenedor. Omita este valor para crear un contenedor que no tenga límite inferior.
- Límite superior del intervalo del contenedor. Omite este valor para crear un segmento que no tenga límite superior.
- Valor de sustitución de este intervalo de contenedor. Es el valor por el que se van a sustituir todos los valores detectados que se encuentren entre los límites inferior y superior. Si no proporciona un valor de sustitución, se generará un intervalo mínimo-máximo con guiones.
Por ejemplo, considere la siguiente configuración JSON para esta transformación de asignación a contenedores:
"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"
}
}
]
}
Esto define el siguiente comportamiento:
- Los valores enteros comprendidos entre 1 y 30 se ocultan sustituyéndolos por
LOW
. - Los valores enteros comprendidos entre 31 y 65 se ocultan y se sustituyen por
MEDIUM
. - Los valores enteros comprendidos entre 66 y 100 se ocultan y se sustituyen por
HIGH
.
Para obtener más información sobre el concepto de segmentación, consulta Generalización y segmentación.
Cambios de fecha
Cuando usas la transformación de cambio de fecha (DateShiftConfig
) en la API DLP en un valor de entrada de fecha, Protección de Datos Sensibles cambia las fechas en un número aleatorio de días.
Las técnicas de cambio de fechas modifican aleatoriamente un conjunto de fechas, pero conservan la secuencia y la duración de un periodo. Las fechas de cambio suelen estar relacionadas con una persona o una entidad. Es decir, quieres cambiar todas las fechas de una persona concreta con la misma diferencia horaria, pero usar una diferencia horaria distinta para cada una de las demás personas.
Para obtener más información sobre el cambio de fechas, consulta Cambio de fechas.
A continuación, se muestra un ejemplo de código en varios lenguajes que explica cómo usar la API Cloud DLP para desidentificar fechas mediante el desplazamiento de fechas.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Extracción de la hora
El objeto de extracción de tiempo (TimePartConfig
en la API 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 Protección de Datos Sensibles qué tipo de valor de tiempo quieres extraer, como el año, el mes, el día del mes, etc. (enumerados en el objeto TimePart
).
Por ejemplo, supongamos que ha configurado una transformación timePartConfig
para extraer la parte de la hora YEAR
. Después de enviar los datos de la primera columna de abajo a Protección de Datos Sensibles, 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 saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.