Les dates représentent un type de données très commun. Lorsqu'elles peuvent être considérées comme des données sensibles ou des informations permettant d'identifier personnellement l'utilisateur (PII), il est possible que vous deviez les généraliser, les obscurcir ou les masquer.
Pour effectuer cette action, vous pouvez recourir à la généralisation (ou binning). Néanmoins, en fonction du cas d'utilisation et de la configuration, le binning peut rendre les dates inutiles. Par exemple, si vous généralisez toutes les dates à une seule année, vous risquez de perdre l'ordre dans lequel se produisent les événements au cours de cette année. Le changement de date est une méthode alternative qui permet de contourner ce problème.
Les techniques de changement de date modifient un ensemble de dates de manière aléatoire, tout en préservant la séquence et la durée d'une période. Le changement de date s'effectue généralement dans le contexte d'un individu ou d'une entité. Autrement dit, les dates liées à chaque individu sont modifiées à l'aide d'un intervalle de temps unique à cet individu.
Quand utiliser le décalage de date ?
Voici quelques cas d'utilisation courants :
- Préservez la confidentialité des patients dans la recherche médicale : masquez les dates d'admission et de sortie des patients pour répondre aux exigences de la méthode Safe Harbor de la loi HIPAA en matière d'anonymisation, tout en préservant les intervalles temporels entre les événements.
- Nettoyer les journaux d'audit et de transactions : masquez les dates absolues des transactions lorsque vous préparez des bases de données de test, tout en conservant l'ordre relatif des événements nécessaire pour valider les workflows par lot.
- Analysez les cohortes de rétention des utilisateurs : anonymisez les codes temporels de l'activité des clients pour l'analyse des cohortes tout en conservant les tendances chronologiques sur plusieurs jours ou mois.
- Conserver les séquences d'événements dans les études longitudinales : protégez la confidentialité individuelle dans les études de suivi pluriannuelles en décalant les codes temporels de manière uniforme par participant, sans déformer les relations causales ou chronologiques.
Exemple de changement de date
Examinez les données suivantes :
| ID_utilisateur | date | action |
|---|---|---|
| 1 | 2009-06-09 | courir |
| 1 | 2009-06-03 | marcher |
| 1 | 2009-05-23 | ramper |
| 2 | 2010-11-03 | ramper |
| 2 | 2010-11-22 | marcher |
| … | ... | … |
Si vous généralisez ces dates par année, le résultat est le suivant :
| user_id | année | action |
|---|---|---|
| 1 | 2009 | courir |
| 1 | 2009 | marcher |
| 1 | 2009 | ramper |
| 2 | 2010 | ramper |
| 2 | 2010 | marcher |
| … | ... | … |
Toutefois, la séquence chronologique des événements pour chaque utilisateur est perdue.
Essayons plutôt de modifier les dates :
| user_id | date | action |
|---|---|---|
| 1 | 2009-07-17 | courir |
| 1 | 2009-07-11 | marcher |
| 1 | 2009-06-30 | ramper |
| 2 | 2011-01-26 | ramper |
| 2 | 2011-02-14 | marcher |
| … | ... | … |
Vous noterez que les dates sont différentes, mais que la séquence et la durée sont préservées.
L'ampleur du changement de date n'est pas non plus la même pour les ID user_id 1 et 2.
Décalage des dates dans Sensitive Data Protection
Voici un exemple d'objet JSON permettant de configurer le changement de date pour la méthode content.deidentify de 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"
}
}
}
}
}
}
}
Les limites supérieure et inférieure du changement de date sont respectivement spécifiées par les valeurs upper_bound_days et lower_bound_days. Le contexte ou le champ d'application auquel le changement s'applique est basé sur la valeur entity_id_field, qui correspond à "user_id" dans cet exemple.
Notez également qu'une clé de chiffrement (crypto_key) a été utilisée. Son rôle est comparable à celui qu'elle joue dans la pseudonymisation. La clé vous permet de préserver l'intégrité de ces changements de date entre plusieurs requêtes ou exécutions de données.
Ressources
Pour en savoir plus sur la suppression de l'identification des données à l'aide du changement de date et d'autres méthodes dans Sensitive Data Protection, consultez la page suivante :
Pour obtenir des informations de référence sur les transformations primitives dans la protection des données sensibles, consultez les ressources suivantes :
- Objet
DeidentifyConfig: objet dans lequel vous configurez les options d'anonymisation. - Objet
PrimitiveTransformations: le changement de date est une "transformation primitive" dans la protection des données sensibles. - Objet
DateShiftConfig: objet permettant de configurer l'objetPrimitiveTransformations. En spécifiant l'objetDateShiftConfig, vous pouvez décaler les dates d'un nombre de jours aléatoire.