Aucun cookie, aucun chatbot, aucun popup gossant, juste un bon vieux site web comme on les aime !

😎 Horaire d'été en vigueur pour les consultations express 😎

Réserve ta consultation maintenant !

🇵🇸 Je remettrai 3% de mon chiffre d'affaires de 2025 en soutien à la Palestine 🇵🇸

Magic Scroll Icon Le grimoire du magicien Magic Scroll Icon

L'anonymisation, un idéal à atteindre ?


3,477 mots - Temps de lecture estimé: 19 minutes

🌘 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 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.

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

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.

Abonne-toi au flux RSS pour ne rien manquer.

Shooting Stars IconConsultation ExpressShooting Stars Icon

Bénéficie d'une heure de consultation dédiée avec François pour résoudre tes défis informatiques et stratégiques. Que ce soit pour la migration vers des technologies libres, la sécurisation de tes systèmes, la documentation de tes procédures, la conception de petits systèmes ou l'automatisation de tâches, cette session intensive t'offre des solutions concrètes et un plan d'action clair.

Tu seras libre ensuite de poursuivre avec un forfait de consultation sur mesure ou les programmes DéconstruIT ou Pleine Confiance

Découvre la Consultation Express.

Étiquettes