Las fechas son un tipo de datos muy común. En los casos en que las fechas se puedan considerar datos sensibles o información de identificación personal (PII), es posible que debas ofuscarlas, ocultarlas o generalizarlas.
Un método para hacer esto es la generalización, o agrupamiento. Sin embargo, según el caso práctico y la configuración, el agrupamiento puede quitar la utilidad de las fechas. Por ejemplo, si generalizas todas las fechas a solo un año, podrías perder el orden en que ocurren los eventos dentro de ese año. Un método alternativo para ofuscar fechas que resuelve este problema es el cambio de fechas.
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, las fechas de cada persona se cambian por una cantidad de tiempo que es única para esa persona.
Ejemplo de cambio de fechas
Considera los siguientes datos:
user_id | date | action |
---|---|---|
1 | 09/06/2009 | correr |
1 | 03/06/2009 | caminar |
1 | 23/05/2009 | gatear |
2 | 03/11/2010 | gatear |
2 | 22/11/2010 | caminar |
… | … | … |
Si generalizas estas fechas al año, obtendrás lo siguiente:
user_id | date_year | action |
---|---|---|
1 | 2009 | correr |
1 | 2009 | caminar |
1 | 2009 | gatear |
2 | 2010 | gatear |
2 | 2010 | caminar |
… | … | … |
Pero ahora ya no sabes cuál es el sentido de la secuencia por usuario.
En su lugar, prueba el cambio de fecha:
user_id | date | action |
---|---|---|
1 | 17/07/2009 | correr |
1 | 11/07/2009 | caminar |
1 | 30/06/2009 | gatear |
2 | 26/01/2011 | gatear |
2 | 14/02/2011 | caminar |
… | … | … |
Observa cómo las fechas son diferentes, pero se conservan la secuencia y la duración.
La magnitud con la que se cambiaron las fechas fue diferente entre los user_id
1 y 2.
Cambio de fecha en Sensitive Data Protection
A continuación, se muestra un objeto JSON para configurar el método content.deidentify
de Protección de datos sensibles:
deidentify_config {
record_transformations {
field_transformations {
fields {
name: "date"
}
primitive_transformation {
date_shift_config {
upper_bound_days: 100
lower_bound_days: -100
entity_field_id {
name: "user_id"
}
crypto_key {
unwrapped {
key: "123456789012345678901234567890ab"
}
}
}
}
}
}
}
Los valores upper_bound_days
y lower_bound_days
especifican los límites superior e inferior del cambio, respectivamente. El contexto o alcance al que se aplicará ese cambio se basa en el valor entity_id_field
, que en este caso es "user_id"
.
También ten en cuenta el uso de un crypto_key
. Esto es similar a su uso en la seudonimización. La clave te permitirá mantener la integridad de estos cambios de fechas en varias solicitudes o ejecuciones de datos.
Recursos
Si quieres obtener más información para desidentificar datos mediante el cambio de fechas y otros métodos en Sensitive Data Protection, consulta los siguientes recursos:
Para obtener información de referencia de la API sobre transformaciones básicas en Sensitive Data Protection, consulta lo siguiente:
- Objeto
DeidentifyConfig
: es el objeto en el que configuras las opciones de desidentificación. - Objeto
PrimitiveTransformations
: El cambio de fecha es una “transformación primitiva” en Sensitive Data Protection. - Objeto
DateShiftConfig
: es el objeto con el que se configura el objetoPrimitiveTransformations
. Si especificas el objetoDateShiftConfig
, puedes cambiar las fechas por un número al azar de días.