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 bucketing può rimuovere l'utilità nelle date. Ad esempio, se generalizzi tutte le date a un solo anno, potresti perdere l'ordine in cui si verificano gli eventi all'interno di quell'anno. Un metodo alternativo per offuscare le date che risolve questo problema è lo spostamento delle date.

Le tecniche di spostamento delle date spostano in modo casuale un insieme di date, ma conservano 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à. ovvero le date di ogni persona vengono spostate di un periodo di tempo univoco per quella persona.

Quando utilizzare lo spostamento delle date

Ecco alcuni casi d'uso comuni:

  • Preserva la privacy dei pazienti nella ricerca sanitaria: offusca le date di ricovero e dimissione dei pazienti per soddisfare i requisiti di anonimizzazione Safe Harbor dell'HIPAA, preservando al contempo gli intervalli temporali tra gli eventi.
  • Sanitizza i log di controllo e delle transazioni: maschera le date delle transazioni assolute durante la preparazione dei database di test mantenendo l'ordine relativo degli eventi necessario per convalidare i flussi di lavoro batch.
  • Analizza le coorti di fidelizzazione degli utenti: anonimizza i timestamp dell'attività dei clienti per l'analisi di coorte, mantenendo le tendenze cronologiche nel corso di giorni o mesi.
  • Mantieni le sequenze di eventi negli studi longitudinali: proteggi la privacy individuale negli studi di monitoraggio pluriennali spostando i timestamp in modo uniforme per partecipante senza distorcere le relazioni causali o cronologiche.

Esempio di spostamento della data

Considera i seguenti dati:

user_id data azione
1 2009-06-09 run
1 2009-06-03 camminata
1 2009-05-23 scansione
2 2010-11-03 scansione
2 2010-11-22 camminata

Se generalizzi queste date per anno, l'output è il seguente:

user_id date_year azione
1 2009 run
1 2009 camminata
1 2009 scansione
2 2010 scansione
2 2010 camminata

Tuttavia, la sequenza cronologica degli eventi per ogni utente viene persa.

Prova invece a spostare le date:

user_id data azione
1 2009-07-17 run
1 2009-07-11 camminata
1 2009-06-30 scansione
2 2011-01-26 scansione
2 2011-02-14 camminata

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

Spostamento delle date in Sensitive Data Protection

Un oggetto JSON per configurare questo metodo per content.deidentify di Sensitive Data Protection è il seguente:

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 si applicherà questo turno si basa sul valore entity_id_field, che in questo caso è "user_id".

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

Risorse

Per saperne di più su come anonimizzare i dati utilizzando lo spostamento delle date e altri metodi in Sensitive Data Protection, consulta:

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

  • DeidentifyConfig object: l'oggetto in cui configurare le opzioni di deidentificazione.
  • PrimitiveTransformations object: Lo spostamento della data è una "trasformazione primitiva" in Sensitive Data Protection.
  • DateShiftConfig oggetto: oggetto con cui configurare l'oggetto PrimitiveTransformations. Se specifichi l'oggetto DateShiftConfig, puoi spostare le date di un numero casuale di giorni.