La generalización es el proceso de tomar un valor distintivo y abstraerlo a un valor más general y menos distintivo. La generalización intenta preservar la utilidad de los datos a la vez que reduce la capacidad de identificación de los datos.
Puede haber muchos niveles de generalización según el tipo de datos. La cantidad de generalización necesaria se puede medir en un conjunto de datos o en una población del mundo real mediante técnicas como las que se incluyen en el análisis de riesgos de la Protección de datos sensibles.
Una técnica de generalización común que admite Sensitive Data Protection es el agrupamiento. Mediante el agrupamiento, los registros se agrupan en depósitos más pequeños para tratar de minimizar el riesgo de que un atacante asocie información sensible con información de identificación. Hacerlo puede conservar el significado y la utilidad, pero también ocultará los valores individuales que tienen muy pocos participantes.
Situación de agrupamiento 1
Considera esta situación de agrupamiento numérico: una base de datos almacena las puntuaciones de satisfacción de los usuarios, que van de 0 a 100. La base de datos tiene un aspecto similar al siguiente:
user_id | score |
---|---|
1 | 100 |
2 | 100 |
3 | 92 |
… | … |
Cuando analizas los datos, te das cuenta de que los usuarios rara vez usan algunos valores. De hecho, hay algunas puntuaciones que se asignan a un solo usuario. Por ejemplo, la mayoría de los usuarios eligen 0, 25, 50, 75 o 100. Sin embargo, cinco usuarios eligieron 95 y solo uno eligió 92. En lugar de mantener los datos sin procesar, puedes generalizar estos valores en grupos y a fin de no tener conjuntos con muy pocos participantes. Según cómo se usen los datos, generalizarlos de esta manera podría ayudar a prevenir la reidentificación.
Puedes elegir quitar estas filas de datos de valores atípicos o intentar conservar su utilidad mediante el agrupamiento. Para este ejemplo, agruparemos todos los valores de acuerdo con lo siguiente:
- De 0 a 25: “Baja”
- De 26 a 75: “Media”
- De 76 a 100: “Alta”
El agrupamiento en Sensitive Data Protection es una de las muchas transformaciones básicas disponibles para la desidentificación. La siguiente configuración de JSON ilustra cómo implementar esta situación de agrupamiento en la API de DLP. Este JSON podría incluirse en una solicitud al método content.deidentify
:
C#
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.
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 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.
Node.js
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.
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 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.
REST
... { "primitiveTransformation": { "bucketingConfig": { "buckets": [ { "min": { "integerValue": "0" }, "max": { "integerValue": "25" }, "replacementValue": { "stringValue": "Low" } }, { "min": { "integerValue": "26" }, "max": { "integerValue": "75" }, "replacementValue": { "stringValue": "Medium" } }, { "min": { "integerValue": "76" }, "max": { "integerValue": "100" }, "replacementValue": { "stringValue": "High" } } ] } } } ...
Situación de agrupamiento 2
El agrupamiento también se puede usar en strings o valores enumerados. Supongamos que deseas compartir datos salariales y también incluir cargos. Sin embargo, algunos cargos, como director ejecutivo o ingeniero distinguido, pueden vincularse a una persona o a un pequeño grupo de personas. Es muy fácil asociar estos cargos con los empleados que los tienen.
El agrupamiento también puede ser útil en este caso. En lugar de incluir cargos exactos, generalízalos y agrúpalos. Por ejemplo, “ingeniero sénior”, “ingeniero junior” e “ingeniero distinguido” se generalizan y se agrupan en “ingeniero”. En la siguiente tabla, se ilustra la agrupación de cargos específicos en familias de cargos.
Otras situaciones
En los ejemplos anteriores, aplicamos la transformación a datos estructurados. El agrupamiento también se puede usar en ejemplos no estructurados, siempre que el valor se pueda clasificar con un Infotipo predefinido o personalizado. A continuación, se muestran algunos ejemplos de situaciones:
- Clasificar fechas y agruparlas en rangos de años
- Clasificar nombres y agruparlos según la primera letra (A-M, N-Z)
Recursos
Para obtener más información sobre la generalización y el agrupamiento, consulta Desidentifica datos sensibles en el contenido de texto.
Para obtener documentación de la API, consulta lo siguiente:
- Método
projects.content.deidentify
- Transformación
BucketingConfig
: valores de depósitos basados en rangos personalizados - Transformación
FixedSizeBucketingConfig
: valores de depósitos basados en rangos de tamaño fijos