As datas são dados muito comuns. Nos casos em que as datas possam ser consideradas dados sensíveis 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 de um indivíduo ou uma entidade. Ou seja, cada data individual é alterada por um espaço de tempo exclusivo para esse indivíduo.
Quando usar a mudança de data
Veja alguns casos de uso comuns:
- Preservar a privacidade do paciente em pesquisas de saúde: ofusque as datas de internação e alta do paciente para atender aos requisitos de desidentificação do Safe Harbor da HIPAA e preservar os intervalos temporais entre os eventos.
- Limpar registros de auditoria e transações: mascare datas absolutas de transações ao preparar bancos de dados de teste, mantendo a ordem relativa dos eventos necessária para validar fluxos de trabalho em lote.
- Analise coortes de retenção de usuários: anonimize os carimbos de data/hora de atividade do cliente para análise de coorte, mantendo as tendências cronológicas ao longo de dias ou meses.
- Manter sequências de eventos em estudos longitudinais: proteja a privacidade individual em estudos de acompanhamento de vários anos mudando os carimbos de data/hora de forma uniforme por participante sem distorcer as relações causais ou cronológicas.
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 por ano, a saída será a seguinte:
| user_id | date_year | ação |
|---|---|---|
| 1 | 2009 | run |
| 1 | 2009 | walk |
| 1 | 2009 | crawl |
| 2 | 2010 | crawl |
| 2 | 2010 | walk |
| ... | … | … |
No entanto, a sequência cronológica de eventos para cada usuário é perdida.
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_ids 1 e 2.
Mudança de datas 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 mais 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 primária" 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.