As datas são dados muito comuns. Nos casos em que as datas possam ser consideradas dados confidenciais ou informações de identificação pessoal (PII, na sigla em inglês), elas talvez precisem ser generalizadas, ofuscadas ou editadas.
Um método para fazer isso é a generalização ou agrupamento por classes. Entretanto, dependendo do caso de uso e da configuração, o agrupamento por classes pode remover o utilitário das datas. Por exemplo, se você generalizar todas as datas para apenas um ano, poderá perder a ordem em que os eventos ocorrem nesse ano. Um método alternativo para ofuscar datas que resolve esse problema é a mudança de data.
As técnicas de mudança de data alteram aleatoriamente um conjunto de datas, mas preservam a sequência e a duração de um período. Geralmente, a mudança de datas é feita no contexto para um indivíduo ou uma entidade. Ou seja, cada data individual é alterada por um espaço de tempo exclusivo para esse indivíduo.
Exemplo de mudança de data
Considere os seguintes dados:
user_id | data | ação |
---|---|---|
1 | 2009-06-09 | run |
1 | 2009-06-03 | walk |
1 | 2009-05-23 | crawl |
2 | 2010-11-03 | crawl |
2 | 2010-11-22 | walk |
... | ... | ... |
Se você generalizar essas datas para um ano, terá:
user_id | date_year | ação |
---|---|---|
1 | 2009 | run |
1 | 2009 | walk |
1 | 2009 | crawl |
2 | 2010 | crawl |
2 | 2010 | walk |
... | ... | ... |
Mas agora você perdeu as informações da sequência por usuário.
Em vez disso, tente a mudança de data:
user_id | data | ação |
---|---|---|
1 | 2009-07-17 | run |
1 | 2009-07-11 | walk |
1 | 2009-06-30 | crawl |
2 | 2011-01-26 | crawl |
2 | 2011-02-14 | walk |
... | ... | ... |
Observe como as datas são diferentes, mas a sequência e a duração são preservadas.
A magnitude em que as datas foram alteradas foi diferente entre user_id
s 1 e 2.
Mudança de data na proteção de dados sensíveis
Segue um objeto JSON para configurar isso para o método
content.deidentify
da proteção de dados sensíveis:
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"
}
}
}
}
}
}
}
Os limites superior e inferior da mudança são especificados pelos valores upper_bound_days
e lower_bound_days
, respectivamente. O contexto ou o escopo ao qual essa mudança será aplicada é baseado no valor entity_id_field
, que, neste caso, é "user_id"
.
Observe também o uso de uma crypto_key
. Isso é semelhante à forma como ela é utilizada na pseudonimização. A chave permitirá que você mantenha a integridade dessas mudanças de data em várias solicitações ou execuções de dados.
Recursos
Para mais informações sobre como desidentificar dados usando a mudança de data e outros métodos na proteção de dados sensíveis, consulte:
Para informações de referência da API sobre transformações primitivas na proteção de dados sensíveis, consulte:
- Objeto
DeidentifyConfig
: o objeto em que você configura as opções de desidentificação. - Objeto
PrimitiveTransformations
: a mudança de data é uma "transformação primitiva" na proteção de dados sensíveis. - Objeto
DateShiftConfig
: objeto com o qual configurar o objetoPrimitiveTransformations
. Ao especificar o objetoDateShiftConfig
, é possível mudar as datas por um número aleatório de dias.