Quelles sont les meilleures pratiques pour anonymiser les noms d'utilisateur dans les données?

8

Je travaille sur un projet qui demande à d'autres étudiants de partager leurs données textuelles originales pour une analyse plus approfondie en utilisant des techniques d'exploration de données, et je pense qu'il serait approprié d'anonymiser les noms des étudiants avec leurs soumissions.

En mettant de côté les meilleures solutions d'une URL où les étudiants soumettent leur travail et un script principal insère l'ID anonymisé, quelle sorte de solutions pourrais-je demander aux étudiants de mettre en œuvre par eux-mêmes pour anonymiser leurs propres noms?

Je suis toujours un noob dans ce domaine. Je ne sais pas quelles sont les normes. Je pensais que la solution pourrait être un algorithme de hachage. Cela semble être une meilleure solution que de créer un faux nom, car deux personnes pourraient choisir le même faux nom.Des personnes possibles pourraient choisir le même faux nom. Quelles sont les préoccupations dont je devrais être conscient?

xtian
la source
2
Pourquoi collecter les noms?
Emre
Les enregistrements doivent être uniques, et tout le monde connaît son propre nom (cela semble sarcastique, mais c'est juste de la simplicité).
2014

Réponses:

5

Je soupçonnais que vous utilisiez les noms comme identifiants. Vous ne devriez pas; ils ne sont pas uniques et soulèvent ce problème de confidentialité. Utilisez plutôt leurs numéros d'étudiant, que vous pouvez vérifier à partir de leurs identifiants, stockés sous forme hachée. Utilisez le nom de famille de l'élève comme un sel, pour faire bonne mesure (formez la chaîne à hacher en concaténant le numéro d'identification et le nom de famille).

Emre
la source
Je comprends, mais juste pour être clair, il semble que vous mélangez deux options. La première est la possibilité de prendre la carte d'étudiant avec le nom, ce qui serait probablement unique et quelque peu obscur pour quiconque obtiendrait les données sur Internet. Plus une deuxième option pour prendre cet ID + Lname encodé et l'a aussi. Plus une mesure supplémentaire pour utiliser un sel de leur nom de famille. En d'autres termes, pré-ordinateur, j'imagine que l'ID + Lname pourrait être une obfuscation acceptable?
xtian
Non, je n'ai pas dit de prendre le NIP et le nom; juste le code PIN, car il est déjà unique. Utiliser le nom de famille comme sel n'était qu'une suggestion; vous pouvez utiliser n'importe quelle information spécifique à l'utilisateur.
Emre
2

Une pratique standard en psychologie (où vous voulez coder les participants afin de relier différentes mesures) consiste à demander aux participants de choisir les initiales et la date de naissance du nom de jeune fille de leur mère, par exemple au format XX-YYMMDD.

Cela si le cours peut encore se heurter à des conflits. Là encore, je ne pense pas qu'il y ait un algorithme d'anonymisation sans conflit infaillible que vos élèves pourraient faire sans connaître tous les autres élèves . Les noms et les dates de naissance des mères pourraient être identiques, les propres dates de naissance pourraient être identiques, les tailles de chaussures pourraient être, les personnages de super-héros préférés ... La seule chose à laquelle je pouvais penser serait les numéros de sécurité sociale (US), mais vous ne voulez vraiment pas les utiliser .

Conclusion: anonymisez sur le backend. Ou, comme le suggère @Emre , demandez-vous si vous avez vraiment besoin d'un identifiant. Peut-être que l'index généré par DB est suffisant?

Stephan Kolassa
la source
Je n'étais pas au courant de ces schémas de nommage alternatifs. Je vous remercie. Sur la question des conflits, une réponse à un vote élevé sur SO suggère ceci à propos de SHA-1, "Pour résoudre le paradoxe d'anniversaire, une base de données avec 10 ^ 18 (un million de millions de millions) d'entrées a une chance d'environ 1 sur 0,000000000000003 de collision. "
xtian