e-Xpert Solutions Genève

Chemin du Pont-Du-Centenaire 109
CH-1228 Plan-les-Ouates / Genève
SUISSE

Tel. : +41 22 727 05 55 Fax : +41 22 727 05 50

e-Xpert Solutions Lausanne

Avenue de Gratta-Paille 20
CH-1018 Lausanne
SUISSE

Tel. : +41 21 802 26 78 Fax : +41 22 727 05 50
Contactez notre support : +41 22 727 05 56
Envoyez votre message



Accédez au menu
Contactez-nous

Pseudonymisation et anonymisation

Retour aux articles

Pseudonymisation et anonymisation,

Compliquez l'exploitation de vos données pour les pirates !


Catégorie : Articles

Date de publication : 13 mars 2018 - Dernière mise à jour : 19 avril 2018

Rédacteur : Kevin Gillieron, Yann Desmarest et Bérangère Thévenet


Les concepts de pseudonymisation et d’anonymisation ont été introduits dans les années 1970 lors de l’entrée en application des premières lois régissant les libertés dans le domaine informatique. Ils ont été ensuite précisés dans les Directives Européennes de 1995 et plus récemment dans le Règlement Général sur la Protection des Données (RGPD).
L’occasion de revenir en détail sur ces deux concepts.

La différence fondamentale entre la pseudonymisation et l’anonymisation est que la première est réversible alors que la seconde ne l’est pas. En effet, le but d’une donnée anonymisée est que celle-ci ne puisse jamais être découverte. La pseudonymisation sert quant à elle à restreindre la visibilité d’une donnée aux seules personnes/entités autorisées. Il en résulte donc que la donnée originale doit pouvoir être retrouvée.

L’anonymisation trouve son utilité dans tous les domaines où des informations confidentielles sur des individus doivent être partagées à des tiers. Par exemple, dans le domaine médical, il n’est pas rare que les données de patients soient transmises à des instituts de recherche. Un autre cas commun d’utilisation de techniques d’anonymisations est le partage de données concernant les citoyens par l’Etat. Ce dernier fait souvent appel à des sociétés privées pour le développement de ses logiciels, et dans ce cas, il doit fournir à son partenaire des données de tests. Les bases de données contenant des données très sensibles devraient être idéalement transmises de façon anonymisées.

La pseudonymisation s’applique lorsque l’on souhaite retrouver la donnée originale. Le but de cette technique est donc de pouvoir afficher les informations dissimulées aux seules personnes autorisées. Un cas d’usage typique est le stockage de données bancaires sur un site Internet marchand où les informations de la carte de crédit (numéro de la carte, cryptogramme visuel, etc.) sont pseudonymisées de sorte que si un individu ou un programme malveillant arrive à mettre la main dessus, aucune information n’est révélée.

Anonymisation ou pseudonymisation : deux techniques, deux approches, que choisir ?

Anonymisation et Pseudonymisation sont les deux termes en vogue avec l’arrivée du règlement RGPD. Nous vous proposons de revenir sur la définition de ces deux concepts pour comprendre leur fonctionnement et cas d’utilisation.

TECHNIQUES D’ANONYMISATION

CHANGER LA DONNÉE ORIGINALE PAR DES DONNÉES INEXPLOITABLES
Il existe de nombreuses techniques d’anonymisation, et chacune d’elles s’applique à des utilisations particulières. Parmi celles-ci on retrouve l’ajout de bruit dans la donnée, où le but est de noyer l’information dans la masse. Par exemple, si on veut anonymiser l’âge d’un patient de 22 ans, on pourrait remplacer cette information par une fourchette, telle que 18-25 ans. Il devient impossible de retrouver l’âge exact de la personne. Il est également possible de jouer sur les valeurs numériques et les dates en les modifiant d’un certain pourcentage.

GARDER UNIQUEMENT LES DONNÉES UTILES
Une autre technique simple mais efficace est de tout simplement supprimer la donnée. Evidemment, cela ne s’applique pas à toutes les situations. Cette technique peut être utilisée dans les cas où certaines informations ne sont pas utiles pour un partenaire tiers. Le fait d’effacer la donnée rend impossible toute attaque pouvant amener à une fuite de données.

CODIFIER LES DONNÉES
Il est possible d’anonymiser par substitution. L’idée de cette technique, est de remplacer la donnée existante par une autre, similaire à l’originale. Si l’on reprend l’exemple où l’état transmet une base de données d’individus à une société tierce pour le développement d’un logiciel, les noms des personnes ne doivent jamais être révélés, mais doivent exister afin que les développeurs puissent se baser sur des données consistantes. Par exemple Jacques Dupont, sont alors substitués par des valeurs aléatoires comme John Doe. De la sorte, les développeurs ont toujours des informations cohérentes, mais l’identité de la personne est préservée. Le schéma ci-dessous illustre trois techniques appliquées à une base de données SQL.

Dans la première table, on a plusieurs utilisateurs, avec leur nom, leur âge et leur numéro de sécurité sociale présent en clair. Dans la seconde, on retrouve ces informations anonymisées de la façon suivante :
– Name: Le nom est remplacé par un nom aléatoirement.

– Age: l’âge est substitué par des une tranche d’âge afin de masquer l’âge réel.

– Social Security Number : Le numéro de sécurité sociale a simplement été supprimé.

Toutes les techniques présentées ci-dessus sont dites de randomisation. On essaie de réduire le lien entre une personne et ses données afin de rendre celle-ci non identifiable.

NOYER LES DONNÉES PAR LA GÉNÉRALISATION
Il existe également des méthodes utilisant la généralisation, c’est-à-dire noyer les informations dans la masse afin de réduire la possibilité d’identifier une personne en croisant plusieurs sources d’information. Il existe plusieurs méthodes, dont la k-anonymity et la l-diversity.

k-anonymity

Le schéma définit un nouvel ensemble de données contenant des individus et leur banque :

La colonne « Name » représente la clef unique identifiant un individu : son prénom et son nom de famille. Les colonnes « Age » et « ZIP » sont ce qu’on appelle des quasi-identifiants. Combinés, ils peuvent identifier uniquement un individu. Finalement, la colonne « Bank » représente la donnée sensible.
Si on anonymise simplement en remplaçant le nom de l’individu par une valeur aléatoire, il est facilement possible de le retrouver en croisant les données avec une autre base de données grâce aux quasi-identifiants. Par exemple, si on sait qu’Anna Blanchet a 19 ans et que son code postal est le 1217, même sans le nom on sait que sa banque est l’UBS.

Il a été démontré qu’aux Etats-Unis presque 90% de la population est uniquement identifiable en connaissant le code postal, la date de naissance et le sexe de la personne. La k-anonymity offre précisément une protection contre les attaques visant à croiser les informations de plusieurs bases de données en créant des groupes d’individus en fonction de leurs quasi-identifiants. Par exemple, pour le tableau précédent cela donnerait :

Pour chaque paire âge / code postal on a au moins deux individus, il est par conséquent, a priori, impossible d’identifier un individu et sa banque avec certitude, même en croisant les informations avec une autre base données.
De manière un peu plus formelle, la k-anonymity est une propriété garantissant qu’il y a au moins k lignes dans la table de la base de données pour n’importe quel groupe d’individus partageant un ensemble d’attributs quasi-identifiants.

La k-anonymisation vise une anonymisation optimale, de sorte qu’il ne soit pas possible de retrouver un individu. Cependant, pour une base de données conséquente, l’espace de solutions possibles devient tellement grand qu’il est impossible de trouver la solution optimale dans un temps acceptable. En théorie, on dit d’un tel problème qu’il est NP-hard, pour non-deterministic polynomial-time hardness. Vu qu’il est trop difficile de trouver la meilleure solution, les algorithmes utilisés pour résoudre cette classe de problèmes ne fournissent qu’une approximation de la solution dite optimale.

I-diversity

Le manque de diversité au niveau de la donnée sensible au sein d’un groupe d’individus peut poser des problèmes. En effet, dans l’exemple précédent on a :

Le dernier groupe d’individus âgés de plus de 60 ans et ayant le code postal 1288 partage la même donnée sensible, à savoir la banque BCGE.
Imaginons qu’un pirate ait accès à une autre base de données avec l’information qu’Orson Bernier a 63 ans et a le code postal 1288. Il pourra alors deviner qu’il est client de la banque BCGE. L’information sensible est alors démasquée.

C’est pour cette raison que la I-diversity étend la définition de la k-anonymity en ajoutant une contrainte supplémentaire sur la diversité de la donnée sensible : au sein d’un groupe il doit avoir au moins l différentes données sensibles pour qu’il ne soit pas possible de la deviner. Par rapport à l’exemple ci-dessous, dans le groupe des plus de 60 ans, on doit avoir des personnes clientes dans d’autres banques que la BCGE. Par exemple, on peut changer la tranche d’âge et commencer à plus de 50 ans au lieu de 60.

TECHNIQUES DE PSEUDONYMISATION

Le principe de la pseudonymisation est de remplacer la donnée originale par un pseudonyme. Pour la retrouver, il faut impérativement un système qui garde une trace de ce mapping. Le plus souvent, le pseudonyme est un token (une séquence de caractères) généré aléatoirement. On appelle ce procédé la tokenisation.

Reprenons l’exemple du stockage de données bancaires par un site Internet marchand Online. L’objectif est de pseudonymiser les numéros de carte de crédit afin de les rendre inexploitables en cas de vol de ces données. Le schéma ci-dessous illustre le procédé pour les pseudonymiser :

Explicatif du schéma :
1. Le numéro de carte de crédit est envoyé au service de tokenisation,
2. Le service de tokenisation génère un nombre aléatoirement, qui sera le token, pour l’associer au numéro de la carte de crédit. La paire token / numéro de carte de crédit est alors stockée dans une base de données sécurisée,
3 . Le token est alors retourné.

Pour que ce processus soit efficace, la donnée sensible doit être stockée uniquement dans la base de données du service de tokenisation.

Le service de tokenisation est donc extrêmement critique. La sécurité des données sensibles repose entièrement dessus. En cas de compromission, l’ensemble des données pseudonymisées serait accessible.

Ce service doit assurer un minimum de garantie au niveau sécurité :

1. Le token doit être conçu de sorte à ne pas être réversible. Pour cela il existe plusieurs méthodes de créations telles que la génération aléatoire, le chiffrement ou l’utilisation d’une fonction de hachage.

– L’avantage de la méthode aléatoire, c’est qu’elle n’a aucun lien avec la donnée elle-même, ce qui rend le procédé irréversible.
– Le chiffrement quant à lui, offre une protection relativement efficace, mais l’utilisation d’une clef de chiffrement pose plusieurs problèmes : les clefs peuvent être devinées et les performances sont très mauvaises.
– Et enfin, en ce qui concerne la fonction de hachage, les performances sont bonnes et la sécurité aussi. Cependant, le hash calculé est directement dérivé de la donnée en elle-même. En cas de faille au niveau de l’algorithme de hachage, cela pourrait compromettre la donnée sensible, c’est pourquoi l’utilisation de valeurs aléatoires est l’approche recommandée,

2. Les serveurs hébergeant le service de tokenisation doivent être hautement sécurisés avec un contrôle strict de l’accès aux données sensibles,

3. La base de données contenant le mapping des tokens doit être chiffrée,

4. Et enfin, toutes les communications réseau passant par ce service doivent être également chiffrées.

La tokenisation est de plus en plus utilisée à la place du chiffrement. En effet, il y a deux avantages particulièrement intéressants à cela :

– La donnée chiffrée est dérivée de la donnée originale, ce qui présente le risque qu’elle puisse être retrouvée. Alors qu’un token peut-être purement aléatoire et sans son mapping, il est impossible de retrouver la donnée originale.
– Le chiffrement est plus coûteux en termes de performance (ex. CPU) par rapport à la tokenisation, qui consiste juste à générer des tokens. À noter : l’avantage de la tokenisation est que les tokens peuvent être pré-générés, vu qu’ils ne sont pas liés à la donnée.

Pour conclure, la complexité est de bien choisir la technique appropriée à son contexte. Pour cela, il faut revenir à la définition de vos données en entreprise et vos cas d’utilisation.

Si l’enjeu est de manipuler des données notamment dans vos projets de Big Data, et qu’elles n’ont aucune valeur pour l’entreprise, optez pour l’anonymisation. Elle permet de traiter et stocker ces dernières librement puisqu’elles sont hors du scope du RGPD. À noter, si l’entreprise garde une copie originale des données en plus de la version anonymisée, l’entreprise devient concernée par le RGPD car les données originales peuvent être volées.

Si maintenant les données d’entreprise permettent d’identifier clairement des individus, elles sont alors sensibles. La pseudonymisation est donc nécessaire, notamment pour être conforme avec le RGPD. Elle fait partie de ces techniques assurant le « Privacy by Design ».

Que ce soit pour l’anonymisation ou la pseudonymisation, les entreprises doivent comprendre qu’en plus des aspects techniques, la gouvernance autour des données, de leur traitement et de leur stockage est également primordiale. Des best pratices sont à appliquer, comme par exemple, ne pas stocker les données pseudonymisées et les tokens sur le même serveur physique.

Notre conseil est de bien analyser l’usage que vous faites des données personnelles et en fonction des contraintes techniques et organisationnelles, adoptez des mesures d’anonymisation ou de pseudonymisation adéquates. D’autant que pour être conforme avec le RGPD, il ne suffit pas d’implémenter des techniques d’anonymisation ou de pseudonymisation. Les scénarios sont multiples et chaque entreprise traite les données personnelles différemment.

Ne laissez pas traîner vos données sensibles en clair !

Abonnez-vous
à nos newsletters