Les données des taxis de la ville de New York (NYC) sont publiées en open data, ce qui signifie qu'elles sont accessibles au public. Ces données comprennent des informations spécifiques pour chaque trajet, notamment l'heure et la zone d'arrivée, l'heure et la zone de départ, ainsi que le nombre de passagers. Cependant, cette transparence a soulevé des préoccupations quant à la confidentialité des individus, car il existe des cas documentés où l'analyse de ces données a permis de déterminer la destination d'une personne photographiée en train de monter dans un taxi.
Dans cette étape, nous avons utilisé les données brutes des trajets de taxi pour créer une carte géographique détaillée des zones d'arrivée de taxi. Pour ce faire, nous avons associé chaque identifiant de zone d'arrivée (DOLocationID) aux coordonnées géographiques correspondantes à l'aide de la carte géographique des zones de taxi. Cela nous a permis de représenter chaque zone d'arrivée sur la carte, créant ainsi une visualisation initiale de la distribution des destinations de taxi.
Lors de cette étape, nous avons appliqué un filtre sur le nombre de passagers pour ne conserver que les trajets avec trois passagers. Cela a réduit le nombre de destinations possibles, simplifiant ainsi la carte géographique. Nous avons effectué cette opération en filtrant les données brutes pour ne conserver que les trajets répondant à ce critère spécifique.
Dans cette étape, nous avons utilisé les métadonnées de l'image de la star pour déterminer l'heure à laquelle la photo a été prise. En analysant ces métadonnées, nous avons filtré les données brutes des trajets pour ne conserver que les trajets qui correspondaient à l'heure de prise de la photo. Cela nous a permis de restreindre davantage la liste des destinations possibles, en fonction de l'heure exacte de la publication de la photo.
À ce stade, nous n'avons pas exploité la zones de départ, nous avons utilisé des informations visuelles de la photo de la star, en particulier l'angle de W. Broadway et Spring Street, pour déterminer que la zone de départ était le quartier Soho (zone 211). En conséquence, nous avons filtré les données brutes des trajets pour ne conserver que ceux dont la zone de départ correspondait au quartier Soho. Cela a réduit la liste des destinations possibles à une seule option, nous permettant de déduire la destination de la star.
À ce point de l'enquête, nous abordons l'anonymisation des données, une étape cruciale pour préserver la confidentialité des trajets tout en maintenant la pertinence des données. Deux concepts clés entrent en jeu : le k-anonymat et la l-diversité.
Le k-anonymat garantit que chaque combinaison de quasi-identifiants, comprenant le nombre de passagers, l'heure de départ et la zone de départ, apparaît au moins k fois dans le jeu de données. Cette approche vise à restreindre la possibilité d'identifier un trajet spécifique, renforçant ainsi la protection de la vie privée des passagers.
La l-diversité s'assure que les groupes de trajets partageant les mêmes quasi-identifiants présentent une diversité suffisante dans leurs zones d'arrivée, évitant ainsi toute révélation involontaire de destinations particulières. Cette mesure contribue à maintenir un équilibre entre la confidentialité des trajets et la nécessité de conserver des données utiles pour l'analyse.
L'outil SIGO
facilite la mise en œuvre de ces techniques d'anonymisation de manière efficace et sécurisée.
Sigo construit un arbre de généralisation en séparant récursivement en deux parties le jeu de données selon chaque axes de l'espace des quasi-identifiants. Pour que la généralisation regroupe des données proches il est important d'avoir une relation d'ordre sur chaque axe.
Par exemple, les dates sont bien ordonnées chronologiquement donc la généralisation va regrouper les trajets qui ont une heure de départ proches. Par contre les identifiants de zones ne sont pas ordonnée par proximité. Comme on peut le voir sur la carte des identifiants élevés (blanc) peuvent êtres entourés de zone avec des identifiants faible (sombre). par conséquence la généralisation va regrouper des zones tres éloignées géographiquements.
Pour éviter le problème d'absence de relation d'ordre sémantique, il faut modifier l'indexation des zones pour redonner un sens de proxymité à la relation d'ordre. Nous avons choisi de calculer une aproximation du plus court chemin qui passe par toutes les zones. Nous avons determiné les centroïdes de chaque zone et établie une matrice de distance entre chaque zone. Chaque étape du chemin sera le nouvel indice de la zone correspondant. On peut constater sur la carte que les zones avec des indices proches sont géographiquement proches.
Une fois les techniques de k-anonymat et de l-diversité appliquées, les données anonymisées sont révélées. À première vue, elles ne révèlent aucune différence visible sur la distribution des trajets par rapport à l'étape précédente. Cette étape démontre l'efficacité de l'anonymisation pour maintenir l'apparence générale des données intacte.
Le filtrage du nombre de passagers se poursuit dans cette étape, mais il ne dévoile rien de plus. L'anonymisation protége les informations sensibles tout en préservant l'utilité des données. Cette étape met en évidence la robustesse de l'anonymisation face à différents types de requêtes.
L'anonymisation basée sur l'heure de départ continue de préserver la confidentialité des données, empêchant toute divulgation non autorisée des informations sensibles. Cette étape souligne l'importance de l'anonymisation temporelle pour garantir la protection des données des voyageurs.
Dans cette dernière étape, aucune destination respecte les trois critères. Les données ont été altérées de manière à garantir le 3-anonymat, empêchant ainsi toute déduction de la destination de la star.
Pour la recherche de la données sensible, la zone de destination, nous avons utilisé trois informations quasi-identifiantes : le nombre de passager, l'heure de départ et la la zone de départ. Mais à partir d'une photo d'un homme sortant d'un taxi nous pouvons avons un problème mirroir. la donnée sensible sera la zone de départ et les quasi-identifiants seront le nombre de passagers, l'heure d'arrivée, et la zone d'arrivée. Il faut donc protéger également le jeu de données contre ce type d'attaque. On peut soit modifier la configuration de SIGO pour ajouter les données sensibles et les quasi identiants. Soit faire une nouvelle passe d'anonymisation avec une configuration dédiée.
SIGO, l'outil qui a rendu possible cette quête, est un projet open source développé et maintenu par CGI.
Pour en savoir plus sur notre suite d'outils (LINO, PIMO, SIGO) et découvrir leur utilisation, consultez nos tutorials.
Vous pouvez explorer les scripts utilisés pour cette investigation sur notre page projet GitHub.
N'hésitez pas à nous faire part de vos retours, commentaires ou suggestions en nous envoyant un e-mail à LINO.fr@cgi.com ou en ouvrant des tickets sur notre projet GitHub. Vos contributions sont précieuses pour continuer à améliorer notre quête pour la protection des données et la résolution des mystères de l'open data.
L'équipe CGI - LINO