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), potrebbe essere necessario generalizzarle, offuscarle o oscurarle.

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

Le tecniche di cambio data spostano in modo casuale un insieme di date, ma mantengono la sequenza e la durata di un periodo di tempo. Lo spostamento delle date viene solitamente eseguito nel contesto di una persona o di un'entità. Ciò significa che le date di ogni persona vengono spostate di un periodo di tempo univoco per quella persona.

Esempio di cambio data

Considera i seguenti dati:

user_id data azione
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 generalizzi queste date per anno, ottieni:

user_id date_year azione
1 2009 run
1 2009 walk
1 2009 crawl
2 2010 crawl
2 2010 walk
... ...

Ma ora hai perso qualsiasi senso della sequenza per utente.

Prova invece a cambiare la data:

user_id data azione
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
... ...

Tieni presente che le date sono diverse, ma la sequenza e la durata vengono mantenute. L'entità dello spostamento delle date era diversa tra user_id 1 e 2.

Cambio data in Sensitive Data Protection

Di seguito è riportato un oggetto JSON per configurare questa opzione per il 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".

Tieni presente anche l'utilizzo di una crypto_key. È simile a come viene utilizzata nella pseudonimizzazione. La chiave ti consentirà di mantenere l'integrità di questi turni di date tra più richieste o sessioni dati.

Risorse

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

Per informazioni di riferimento sull'API relative alle trasformazioni primitive in Sensitive Data Protection, consulta: