Date shifting

Le date sono un tipo di dati molto comune. Nei casi in cui le date possono essere considerate dati sensibili o informazioni che consentono l'identificazione personale (PII), potresti dover generalizzare, offuscare o oscurare le date.

Un metodo per farlo è la generalizzazione o il bucketing. Tuttavia, a seconda del caso d'uso e della configurazione, il bucket può rimuovere l'utilità dalle date. Ad esempio, se generalizzi tutte le date a un solo anno, potresti perdere l'ordine in cui si verificano gli eventi nell'anno in questione. Un metodo alternativo per offuscare le date che risolve questo problema è il spostamento delle date.

Le tecniche di spostamento della data spostano in modo casuale un insieme di date, ma preservano la sequenza e la durata di un periodo di tempo. Il cambio di date di solito viene fatto nel contesto di un individuo o di un'entità. In altre parole, le date di ogni individuo vengono spostate in base a una quantità di tempo specifica per l'individuo.

Esempio di cambio data

Considera i seguenti dati:

user_id date azione
1 2009-06-09 run
1 2009-06-03 camminata
1 2009-05-23 eseguire la scansione
2 2010-11-03 eseguire la scansione
2 2010-11-22 camminata
... ... ...

Se generalizzi queste date per anno, ottieni:

user_id date_year azione
1 2009 run
1 2009 camminata
1 2009 eseguire la scansione
2 2010 eseguire la scansione
2 2010 camminata
... ... ...

Ma ora hai perso ogni senso della sequenza per utente.

Prova invece a cambiare data:

user_id date azione
1 2009-07-17 run
1 2009-07-11 camminata
1 2009-06-30 eseguire la scansione
2 2011-01-26 eseguire la scansione
2 2011-02-14 camminata
... ... ...

Nota come le date sono diverse, ma la sequenza e la durata vengono mantenute. L'entità dello spostamento delle date era diversa tra i periodi 1 e 2 di user_id.

Cambio data in Sensitive Data Protection

Di seguito è riportato un oggetto JSON per la configurazione del metodo content.deidentify di Sensitive Data Protection:

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"
            }
          }
        }
      }
    }
  }
}

I limiti superiore e inferiore dello spostamento sono specificati rispettivamente dai valori upper_bound_days e lower_bound_days. Il contesto o l'ambito a cui verrà applicato lo spostamento si basa sul valore entity_id_field, che in questo caso è "user_id".

Nota anche l'utilizzo di un crypto_key. È simile a come viene utilizzato nell'assegnazione di pseudonimi. La chiave ti consentirà di mantenere l'integrità di questi spostamenti di date in più richieste o esecuzioni di dati.

Risorse

Per ulteriori informazioni su come anonimizzare i dati utilizzando il cambio di data e altri metodi in Sensitive Data Protection, consulta:

Per informazioni di riferimento sulle API sulle trasformazioni primitive in Sensitive Data Protection, consulta: