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, oscurarle o oscurarle.
Un metodo per farlo è la generalizzazione o bucketing. 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 in quell'anno. Un metodo alternativo per l'offuscamento delle 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. La modifica delle date viene solitamente eseguita nel contesto di un individuo o di un'entità. In altre parole, le date di ogni individuo vengono spostate di un periodo di tempo univoco per quell'individuo.
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 di HIPAA Safe Harbor, preservando al contempo gli intervalli temporali tra gli eventi.
- Sanitizza i log di controllo e delle transazioni: maschera le date assolute delle transazioni durante la preparazione dei database di test, mantenendo l'ordine relativo degli eventi necessario per convalidare i workflow batch.
- Analizza le coorti di fidelizzazione utenti: anonimizza i timestamp delle attività dei clienti per l'analisi di coorte, mantenendo al contempo 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 delle date
Considera i seguenti dati:
| user_id | data | azione |
|---|---|---|
| 1 | 2009-06-09 | run |
| 1 | 2009-06-03 | camminata |
| 1 | 2009-05-23 | scansionare |
| 2 | 2010-11-03 | scansionare |
| 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 | scansionare |
| 2 | 2010 | scansionare |
| 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 | scansionare |
| 2 | 2011-01-26 | scansionare |
| 2 | 2011-02-14 | camminata |
| … | … | … |
Nota come le date sono diverse, ma la sequenza e la durata sono conservate.
L'entità dello spostamento delle date era diversa tra user_id 1 e 2.
Spostamento delle date 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".
Nota anche l'utilizzo di un crypto_key. Questo è simile al modo in cui viene utilizzato nella pseudonimizzazione. 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 lo spostamento delle date e altri metodi in Sensitive Data Protection, consulta:
Per informazioni di riferimento sulle API relative alle trasformazioni primitive in Sensitive Data Protection, consulta:
DeidentifyConfigoggetto: l'oggetto in cui configuri le opzioni di anonimizzazione.PrimitiveTransformationsoggetto: lo spostamento delle date è una "trasformazione primitiva" in Sensitive Data Protection.- Oggetto
DateShiftConfig: oggetto con cui configurare l'oggettoPrimitiveTransformations. Specificando l'oggettoDateShiftConfig, puoi spostare le date di un numero casuale di giorni.