🌘 Anonymisation des données : Transformer les données en opportunités, pas en risques
L'anonymisation, c'est une technique pour protéger les informations personnelles. Ça consiste à transformer une donnée de manière irréversible afin de la rendre utilisable à des fins d'analyse statistique ou d'entraînement d'algorithme, mais sans pouvoir la rattacher à quelqu'un.
La donnée perd alors sa nature de renseignement personnel et n’a plus besoin des mêmes protections. Par contre, il y a deux défis importants qui peuvent entrer en contradiction :
- Il faut s'assurer que notre recette est irréversible. On doit penser à des technologies qui n'existent pas encore aujourd'hui. On doit aussi considérer la fuite des données originales.
- Il faut que la donnée ait encore de la valeur statistique pour l'organisation.
Il n’y a pas de technique parfaite d’anonymisation. De plus, il n’y a pas non plus de méthode bien définie, étant donné que les données s’inscrivent dans un contexte où elles ont été générées, et un autre où elles sont utilisées.
Ce que nous voulons éviter, c'est la réidentification. En gros, c'est retrouver l'identité d'une personne à partir des données. C'est faire le chemin inverse de l'anonymisation. Et ça veut souvent dire qu’on a mal fait notre travail ou qu’on ignorait certains aspects si ça arrive !
🌘 Protège ton entreprise et ta réputation en minimisant les fuites de données
Chaque semaine, il y a des fuites de données. Prises une par une, on pourrait croire que leur impact est limité. C'est en rassemblant les données de plusieurs fuites que les criminels produisent des profils variés. Ces profils servent à voler des identités pour commettre des crimes financiers, de l'extorsion ou d'autres types de violences. Ça devrait constituer une des motivations pour limiter le plus possible la collecte et l’entreposage de données personnelles dans nos entreprises. Qui veut se faire complice ?
🌘 Utiliser les données sans compromettre la vie privée
D'un autre côté, les organisations ont besoin de statistiques et d'un portrait précis de leur clientèle pour rester pertinentes et compétitives. Nos sociétés ont aussi besoin de données publiques de qualité pour prendre des décisions éclairées sur notre avenir. Sans données, les entreprises et nos gouvernements naviguent dans l'obscurité.
🌘 Anonymisation au Québec : Les exigences légales
Au Québec, les données personnelles sont régies par la loi 25 et diverses réglementations qui sont produites par la Commission d'accès à l'information. En particulier, le règlement sur l'anonymisation se présente comme une marche à suivre. En résumé, voici les étapes qu'on doit suivre et documenter.
- Identifier les usages qu'on a prévus pour les données anonymisées
- Faire superviser le processus par une personne compétente. Le règlement ne définit pas ce qu'est une personne compétente pour superviser un processus d'anonymisation, mais on peut supposer que c'est quelqu'un avec une formation en statistiques.
- Retirer tous les renseignements qui permettent une identification directe. Je te conseille de te référer à mon aide-mémoire pour recenser tes renseignements personnels. La notion d’identification directe ou indirecte varie avec la population statistique concernée.
- Faire une analyse des risques de réidentification selon différentes méthodes qui la permette :
- Individualisation : pouvoir isoler une personne d'un ensemble de données
- Corrélation : relier deux ensembles de données avec une ou plusieurs variables communes
- Inférence : déduire un renseignement depuis d'autres renseignements, à l'aide d'algorithme ou de connaissances expertes
- Renseignements publics : Au fil du temps, de plus en plus de renseignements sur une personne deviennent publics. Par exemple, lorsqu'une personne reçoit de l'attention médiatique.
- Choisir les techniques d'anonymisation appropriées. Je vais te présenter certaines d'entre elles plus bas.
- Choisir des mesures de sécurité pour protéger les données anonymisées. Ce qu’il est important de retenir, c'est que l'on doit continuer à protéger les données qui ont été anonymisées. Ce ne sont pas des données publiques!
- Reviser périodiquement si les données sont toujours anonymisées de manière irréversible. Des fuites de données, des intrusions par des cybercriminels ou de nouvelles techniques statistiques peuvent compromettre des données qu'on croyait anonymisées.
- Créer un registre avec ces informations :
- La description des renseignements
- Leur usage prévu
- Les techniques utilisées
- La date à laquelle l'analyse des risques a été effectuée
- Les dates de mise à jour
Adopter de bonnes pratiques de protection des données permet de conserver ta réputation et de démontrer le souci pour ta clientèle, même lorsqu’un incident de cybersécurité survient. Ça réduit les impacts en termes de durée et les risques légaux. De plus, des données anonymisées, ça a beaucoup moins de valeur pour les criminels sur le marché noir.
🌘 Gérer les risques et préserver l'utilité des données
Est-ce qu'il existe un compromis entre ces deux besoins opposés. C'est là que l'anonymisation intervient. Si on la perçoit comme un continuum et non un concept binaire, on peut trouver des compromis. Au travers de différentes techniques, on peut se rapprocher de ces objectifs en apparence contradictoires.
Tracer la ligne entre la précision des données et l'anonymat complet est une décision de gouvernance des données et de gestion des risques. D'un côté, on veut en garder le plus possible. D'un autre côté, on ne veut pas risquer la réidentification des données.
Dans cet article, je vais te présenter différentes techniques qui peuvent être combinées pour tendre vers l'anonymisation. Prises une à une, ces techniques manquent souvent de puissance. Mais combinées, elles peuvent devenir efficaces.
Il n'existe pas de recette toute faite pour l'anonymisation, car c'est différent pour chaque ensemble de données et cas d'usage. Un jeu de données peut être anonymisé de différentes façons pour différents besoins, et ces différentes versions, une fois recombinées, ne doivent pas permettre la réidentification non plus.
🌘 Les techniques d'anonymisation : un aperçu
Je vais te présenter quatre techniques d'anonymisation. Je les ai organisées selon un spectre ou à une extrémité, on préserve l'entièreté des enregistrements alors que, de l'autre, on n'en conserve aucun! Dans l'ordre, on retrouve le masquage, la pseudonymisation, le k-anonymat et les données synthétiques.
On va utiliser un jeu de données médicales simples comme exemple.
Nom | Âge | Ville | Revenu | Maladie | Poids (kg) | Taille (cm) |
---|---|---|---|---|---|---|
Alice | 30 | Montréal | 60 000 | Grippe | 65 | 165 |
Bob | 45 | Québec | 80 000 | Diabète | 90 | 180 |
Charlie | 25 | Montréal | 45 000 | Rhume | 70 | 175 |
David | 60 | Sherbrooke | 90 000 | Cancer | 85 | 170 |
Eve | 35 | Québec | 70 000 | Grippe | 75 | 160 |
François | 52 | Trois-Rivières | 120 000 | Hypertension | 80 | 185 |
Sophie | 28 | Gatineau | 55 000 | Migraine | 58 | 168 |
Martin | 41 | Saguenay | 75 000 | Asthme | 72 | 178 |
Julie | 33 | Lévis | 62 000 | Allergies | 68 | 172 |
Pierre | 48 | Montréal | 95 000 | Cholestérol | 88 | 177 |
🌘 Le masquage de données : Cacher les données sensibles
L'exemple le plus simple de masquage de données que je peux te donner, c'est sur les factures. On voit généralement seulement les 4 derniers chiffres d'une carte de crédit et non le numéro au complet. Ça sert à savoir avec quelle carte tu as payé quand tu règles tes comptes. Ça peut aider le marchand à démêler les transactions. Mais ce n’est pas suffisant pour savoir à qui appartient la carte ni pouvoir l’utiliser pour effectuer des transactions frauduleuses.
Le masquage, c'est une opération qu'on applique sur une donnée pour modifier son apparence lorsqu'elle est affichée, sans changer la valeur réelle dans le traitement informatique. C’est une modification que le logiciel dit « frontal », visible aux utilisateurs·trices, qui doit effectuer.
Un autre exemple de masquage, c’est seulement afficher l’année de naissance, alors que la date complète se trouve dans le système. Ou, dans le cas d'un prénom et d'un nom, seulement afficher les initiales.
Pour des valeurs numériques telles qu'un salaire, on peut afficher un intervalle.
Nom | Âge | Ville | Revenu | Maladie | Poids (kg) | Taille (cm) |
---|---|---|---|---|---|---|
A*** | 30 | Montréal | 50000-70000 | Grippe | 65 | 165 |
B*** | 45 | Québec | 70000-90000 | Diabète | 90 | 180 |
C*** | 25 | Montréal | Under 50000 | Rhume | 70 | 175 |
D*** | 60 | Sherbrooke | 70000-90000 | Cancer | 85 | 170 |
E*** | 35 | Québec | 70000-90000 | Grippe | 75 | 160 |
F*** | 52 | Trois-Rivières | Over 100000 | Hypertension | 80 | 185 |
S*** | 28 | Gatineau | 50000-70000 | Migraine | 58 | 168 |
M*** | 41 | Saguenay | 70000-90000 | Asthme | 72 | 178 |
J*** | 33 | Lévis | 50000-70000 | Allergies | 68 | 172 |
P*** | 48 | Montréal | 70000-90000 | Cholestérol | 88 | 177 |
🌘 Pseudonymisation : Remplacer les identifiants
La pseudonymisation, c'est remplacer un identifiant ou une valeur par une autre. C’est une opération qu’on effectue dans une base de données, en joignant les données réelles avec une table de pseudonymes. Un des défis de cette méthode, c'est qu'il faut conserver une table de correspondance pour s'assurer que chaque valeur est toujours remplacée de la même façon. Ça présente aussi un risque de cybersécurité, parce que, si la table de correspondance est rendue publique, quelqu’un peut procéder à une réidentification.
L’enregistrement des mots de passe utilise une méthode similaire à la pseudonymisation, le hachage. Cependant, on ajoute de la sécurité en incluant un nombre aléatoire dans le calcul, qu’on appelle le sel. Ce dernier varie pour chaque enregistrement. Cette opération rend le hachage "salé" irréversible, mais la validité du mot de passe reste facile à vérifier.
Nom | Âge | Ville | Revenu | Maladie | Poids (kg) | Taille (cm) |
---|---|---|---|---|---|---|
101 | 30 | 201 | 60 000 | 301 | 65 | 165 |
102 | 45 | 202 | 80 000 | 302 | 90 | 180 |
103 | 25 | 201 | 45 000 | 303 | 70 | 175 |
104 | 60 | 203 | 90 000 | 304 | 85 | 170 |
105 | 35 | 202 | 70 000 | 301 | 75 | 160 |
106 | 52 | 204 | 120 000 | 305 | 80 | 185 |
107 | 28 | 205 | 55 000 | 306 | 58 | 168 |
108 | 41 | 206 | 75 000 | 307 | 72 | 178 |
109 | 33 | 207 | 62 000 | 308 | 68 | 172 |
110 | 48 | 201 | 95 000 | 309 | 88 | 177 |
Table de correspondance des noms
Nom | Code |
---|---|
Alice | 101 |
Bob | 102 |
Charlie | 103 |
David | 104 |
Eve | 105 |
François | 106 |
Sophie | 107 |
Martin | 108 |
Julie | 109 |
Pierre | 110 |
Table de correspondance des villes
Ville | Code |
---|---|
Montréal | 201 |
Québec | 202 |
Sherbrooke | 203 |
Trois-Rivières | 204 |
Gatineau | 205 |
Saguenay | 206 |
Lévis | 207 |
Table de correspondance des maladies
Maladie | Code |
---|---|
Grippe | 301 |
Diabète | 302 |
Rhume | 303 |
Cancer | 304 |
Hypertension | 305 |
Migraine | 306 |
Asthme | 307 |
Allergies | 308 |
Cholestérol | 309 |
🌘 K-anonymat : Anonymisation par agrégation
Le K-anonymat constitue une méthode d’agrégation de données. C'est une technique pour garantir qu'un groupe d'au moins K personnes partage les mêmes caractéristiques dans les données. K est un nombre entier. Pour y arriver, on va rassembler les données en groupes en utilisant des méthodes d'agrégation statistiques. Pour créer les groupes, on peut utiliser les méthodes précédentes de masquage de données et de pseudonymisation, ou d'autres recettes propres à la nature des données avec lesquelles on travaille.
Notre objectif consiste à ce qu’il existe au moins K enregistrements pour chaque valeur possible des données sensibles qu’on a transformées. Par exemple, en moyenne, sur un groupe de 96 personnes, on peut s’attendre à ce que 8 personnes célèbrent leur date de fête chaque mois. Donc, en conservant seulement le mois de naissance, à des fins marketing, par exemple, on pourrait viser un K-anonymat de 8.
Parmi les moyens les plus fréquemment utilisés pour le K-anonymat, on retrouve l'arrondi des valeurs numériques, la troncature des identifiants texte et des dates, et l'encodage de valeurs catégorique à l'aide de regroupements en classes. Certains attributs peuvent poser problème lors de la transformation, en particulier ceux qui se composent de peu de modalités et ceux qui se présentent sous forme binaire. Il faudra alors en regrouper plusieurs ensembles pour créer nos groupes. On peut procéder en essayant de viser des groupes qui sont de taille similaire dans la population.
Reprenons notre exemple et essayons de respecter le 3-anonymat. On reprend notre tableau précédent avec les pseudonymes et on va agréger les colonnes sur l'âge, la ville et le revenu.
Nom | Âge | Ville | Revenu | Maladie | Poids (kg) | Taille (cm) |
---|---|---|---|---|---|---|
101 | 20-39 | Région métropolitaine | Moins de 70 000 | 301 | 65 | 165 |
102 | 40-59 | Autre Région | 70000-90000 | 302 | 90 | 180 |
103 | 20-39 | Région métropolitaine | Moins de 70 000 | 303 | 70 | 175 |
104 | 60+ | Autre Région | 70000-90000 | 304 | 85 | 170 |
105 | 20-39 | Autre Région | 70000-90000 | 301 | 75 | 160 |
106 | 40-59 | Autre Région | Plus de 90 000 | 305 | 80 | 185 |
107 | 20-39 | Autre Région | Moins de 70 000 | 306 | 58 | 168 |
108 | 40-59 | Autre Région | 70000-90000 | 307 | 72 | 178 |
109 | 20-39 | Autre Région | Moins de 70 000 | 308 | 68 | 172 |
110 | 40-59 | Région métropolitaine | Plus de 90 000 | 309 | 88 | 177 |
Ici, indépendamment sur chacune des trois colonnes, nous avons
K=1
pour l'âge, ce ne serait pas suffisantK=3
pour la villeK=2
pour les revenus
Il faudrait donc utiliser seulement 2 groupes d'âge (moins de 40 et plus de 40 ans) et deux groupes de revenus (moins de 70 000 $ et plus de 70 000 $).
Nom | Âge | Ville | Revenu | Maladie | Poids (kg) | Taille (cm) |
---|---|---|---|---|---|---|
101 | Moins de 40 | Région métropolitaine | Moins de 70 000 | 301 | 65 | 165 |
102 | Plus de 40 | Autre Région | Plus de 70 000 | 302 | 90 | 180 |
103 | Moins de 40 | Région métropolitaine | Moins de 70 000 | 303 | 70 | 175 |
104 | Plus de 40 | Autre Région | Plus de 70 000 | 304 | 85 | 170 |
105 | Moins de 40 | Autre Région | Moins de 70 000 | 301 | 75 | 160 |
106 | Plus de 40 | Autre Région | Plus de 70 000 | 305 | 80 | 185 |
107 | Moins de 40 | Autre Région | Moins de 70 000 | 306 | 58 | 168 |
108 | Plus de 40 | Autre Région | Plus de 70 000 | 307 | 72 | 178 |
109 | Moins de 40 | Autre Région | Moins de 70 000 | 308 | 68 | 172 |
110 | Plus de 40 | Région métropolitaine | Plus de 70 000 | 309 | 88 | 177 |
De cette façon, nous avons K=3
pour l'âge, la ville et le revenu.
🌘 Données synthétiques : idéal pour le développement logiciel
Les données synthétiques sont idéales lors quand on fait le développement des logiciels et des interfaces. On s'assure d'avoir des données qui ont la même forme que les vraies données. On respecte les types, les formats, le vocabulaire utilisé et on peut facilement générer des volumes de données massifs pour tester la performance. On peut aussi générer des nombres aléatoires depuis une distribution de probabilités pour construire le jeu de données.
Dans cet article, j'ai généré des données synthétiques sans utiliser de distribution. Elles viennent de l'imagination d'un grand modèle de langage. Ça n'a aucune valeur statistique, il faut se le dire. C'est juste pour donner des exemples!
Les données synthétiques basées sur une distribution de probabilité vont seulement respecter des statistiques de base de la population, comme la moyenne, l'écart-type, ou suivre une distribution de probabilité spécifique. Ces attributs vont être respectés en statistiques univariées, c'est-à-dire de manière indépendante sur chaque colonne. La distribution conjointe sur toutes les variables ne sera pas respectée ici, ce qui nous empêche de réutiliser ces données pour entraîner des algorithmes d’apprentissage automatique. Pour réussir ce tour de force, il faudrait utiliser des copules mathématiques ou des données simulées par confidentialité différentielle, deux techniques beaucoup plus avancées que cet article ne peut traiter !
Par contre, pour voir si son code fonctionne, ou à des fins de formation, c'est l'idéal! C'est d'ailleurs une partie importante de la formation en actuariat, le domaine dans lequel j'ai étudié. Nous utilisons fréquemment des données synthétiques dans les cours pour représenter des portefeuilles de polices d'assurance, simuler les marchés financiers ou encore des catastrophes naturelles.
L’avantage de ces données, c’est leur caractère entièrement fictif. Elles n'ont pas besoin d'être protégées par des mesures de sécurité avancées, et elles n'ont même pas besoin d'être entreposées. En utilisant toujours la même amorce du générateur de nombres aléatoires et la même recette pour générer les données, on peut reproduire les résultats facilement. Ça leur donne donc un avantage pour effectuer des tests de non-régression dans le domaine du développement logiciel, même des années plus tard !
🌘 Les logiciels d'anonymisation des données
Il n'existe pas de logiciel permettant d'anonymiser de manière simple et générique des données. Comme chaque jeu de données a ses particularités, on va devoir utiliser un logiciel qui permet soit un niveau avancé de configuration, soit est spécialisé dans un certain domaine ou format de fichier.
Les solutions de gouvernance de données pour l'apprentissage automatique, tel que K2View vont permettre la pseudonymisation et le masquage, ainsi que la création de données de test. Cependant, ces outils peuvent rapidement devenir dispendieux pour faire le même travail qu’une base de données relationnelle, tel que PostgreSQL avec un module tel qu’Anonymiser, si les besoins ne correspondent pas aux données massives.
La création de vues et l'utilisation des techniques de masquage dynamique permettent d'intégrer une couche de masquage et de gestion des accès dans une base de données existante sans devoir mettre en place de nouveaux outils.
Pour bien gérer l’agrégation de données et la mesure de divers indicateurs de confidentialité, le logiciel ARX Data Anonymization Tool constitue aussi une option. Il ne semble cependant plus mis à jour depuis 2022.
Pour la production de données synthétiques, il existe plusieurs bibliothèques Python libres qui permettent de produire ce type de données. Pour reproduire un modèle de données relationnelles complet avec des clés primaires et étrangères, le logiciel Mostly AI semble avoir les fonctionnalités les plus avancées. J'ai identifié cet article qui en recense plusieurs: 13 Outils de génération de données synthétiques pour l’entraînement de modèles d’apprentissage automatique.
🌘 Conclusion
L'anonymisation est un équilibre entre la protection de la vie privée et notre besoin d'exploiter les données pour améliorer notre entreprise. Aucune technique n'est parfaite. C'est la combinaison de plusieurs techniques, adaptées au contexte spécifique de chaque ensemble de données, qui va nous permettre de l'atteindre.
En gardant en tête que l’anonymisation est un concept relatif et non absolu, et en adoptant une démarche rigoureuse et bien documentée, on peut tendre vers cet idéal. On peut aussi minimiser les risques et conserver la valeur des données.
Derrière chaque enregistrement, se trouve une personne, et que c'est de notre responsabilité de protéger sa vie privée. Nos clients, fournisseurs, membres et collègues nous font confiance avec leurs données personnelles.