Quais são as práticas recomendadas para anonimizar nomes de usuários nos dados?

8

Estou trabalhando em um projeto que pede aos colegas que compartilhem seus dados de texto originais para análise adicional usando técnicas de mineração de dados e, acho que seria apropriado anonimizar os nomes dos alunos com suas submissões.

Deixando de lado as melhores soluções de um URL em que os alunos enviam seus trabalhos e um script de back-end insere o ID anonimizado. Que tipo de soluções eu poderia instruir os alunos a implementar por conta própria para anonimizar seus próprios nomes?

Eu ainda sou um noob nesta área. Não sei quais são as normas. Eu estava pensando que a solução poderia ser um algoritmo de hash. Parece uma solução melhor do que inventar um nome falso, pois duas pessoas podem escolher o mesmo nome falso. As pessoas possíveis podem escolher o mesmo nome falso. Quais são algumas das preocupações das quais devo estar ciente?

xtian
fonte
2
Por que coletar os nomes?
Emre
Os registros precisam ser únicos, e todo mundo sabe seu próprio nome (isso soa sarcástico, mas é apenas simplicidade).
Xtian

Respostas:

5

Suspeitei que você estivesse usando os nomes como identificadores. Você não deveria; eles não são únicos e levantam esse problema de privacidade. Em vez disso, use os números dos alunos, que você pode verificar a partir dos respectivos IDs, armazenados em forma de hash. Use o sobrenome do aluno como um sal, para uma boa medida (forme a string a ser hash concatenando o número de identificação e o sobrenome).

Emre
fonte
Entendi, mas só para esclarecer, parece que você está misturando duas opções. A primeira é a opção de levar a identificação do aluno juntamente com o nome, o que provavelmente seria único e um tanto obscuro para quem obteria os dados da Internet. Além disso, uma segunda opção para pegar esse ID + Lname codificado e também o possui. Além disso, uma medida adicional para usar um sal de seu sobrenome. Em outras palavras, pré-computador, imagino que o ID + Lname possa ser uma ofuscação aceitável?
Xtian
Não, eu não disse para pegar o PIN e o nome; apenas o PIN, pois ele já é único. Usar o sobrenome como sal era apenas uma sugestão; você pode usar qualquer informação específica do usuário.
Emre
2

Uma prática padrão em psicologia (onde você deseja codificar os participantes para vincular diferentes medidas) é fazer com que os participantes escolham as iniciais do nome de solteira de sua mãe e a data de nascimento, por exemplo, no formato XX-YYMMDD.

Este curso ainda pode ter conflitos. Por outro lado, não creio que exista algum algoritmo de anonimização infalível sem conflitos que seus alunos poderiam fazer sem conhecer todos os outros alunos . Os nomes e datas de nascimento das mães podem ser idênticos, datas de nascimento próprias podem ser idênticas, tamanhos de sapatos podem ser, personagens favoritos de super-heróis ... A única coisa que eu conseguia pensar seria em números de Seguro Social (EUA), mas você realmente não quer use-os .

Conclusão: anonimize no back-end. Ou, como sugere o @Emre , pense se você realmente precisa de um identificador. Talvez o índice gerado pelo banco de dados seja suficiente?

Stephan Kolassa
fonte
Eu não estava ciente desses esquemas de nomes alternativos. Obrigado. Na questão do conflito, uma resposta de votação alta no SO sugere isso sobre o SHA-1: "Para resolver o paradoxo do aniversário, um banco de dados com 10 ^ 18 (um milhão de milhão de milhões) de entradas tem uma chance de cerca de 1 em 0,0000000000003 de uma colisão. "
Xtian