¿Cuáles son las mejores prácticas para anonimizar nombres de usuario en los datos?

8

Estoy trabajando en un proyecto que les pide a otros estudiantes que compartan sus datos de texto originales para un análisis posterior utilizando técnicas de minería de datos, y creo que sería apropiado anonimizar los nombres de los estudiantes con sus presentaciones.

Dejando a un lado las mejores soluciones de una url donde los estudiantes envían su trabajo y un script de backend inserta la identificación anónima, ¿qué tipo de soluciones podría ordenar a los estudiantes que implementen por su cuenta para anonimizar sus propios nombres?

Todavía soy un novato en esta área. No sé cuáles son las normas. Estaba pensando que la solución podría ser un algoritmo hash. Eso suena como una mejor solución que inventar un nombre falso ya que dos personas podrían elegir el mismo nombre falso. Las personas posibles podrían elegir el mismo nombre falso. ¿Cuáles son algunas de las preocupaciones que debo tener en cuenta?

xtian
fuente
2
¿Por qué coleccionar los nombres?
Emre
Los registros deben ser únicos, y todos conocen su propio nombre (eso suena sarcástico, pero es solo simplicidad).
xtian

Respuestas:

5

Sospeché que estabas usando los nombres como identificadores. No deberías no son únicos y plantean este problema de privacidad. Utilice en su lugar sus números de estudiantes, que puede verificar a partir de sus ID, almacenados en forma hash. Use el apellido del estudiante como sal, como medida (forme la cadena que se va a dividir concatenando el número de identificación y el apellido).

Emre
fuente
Entiendo el punto, pero para ser claros, parece que estás mezclando dos opciones. La primera es la opción de llevar la identificación del estudiante junto con el nombre, lo que probablemente sea único y algo oscuro para cualquiera que obtenga los datos de Internet. Además de una segunda opción para tomar este ID codificado + Lname y también tiene eso. Además de una medida adicional para usar una sal de su apellido. En otras palabras, ¿antes de la computadora imagino que ID + Lname podría ser una ofuscación aceptable?
xtian
No, no dije que tomara el PIN y el nombre; solo el PIN, ya que es único. Usar el apellido como sal era solo una sugerencia; puede usar cualquier información específica del usuario.
Emre
2

Una práctica estándar en psicología (donde desea codificar a los participantes para vincular diferentes mediciones) es hacer que los participantes elijan las iniciales del apellido de soltera de su madre y la fecha de nacimiento, por ejemplo, en el formato XX-YYMMDD.

Esto si el curso todavía puede encontrarse con conflictos. Por otra parte, no creo que haya un algoritmo de anonimización seguro y sin conflictos que sus estudiantes puedan hacer sin conocer a todos los demás estudiantes . Los nombres y las fechas de nacimiento de las madres pueden ser idénticos, las fechas de nacimiento propias pueden ser idénticas, los tamaños de zapatos pueden ser, los personajes favoritos de superhéroes ... Lo único que se me ocurre son los números de Seguro Social (de EE. UU.), Pero realmente no quieres úsalos .

En pocas palabras: anonimizar en el backend. O, como sugiere @Emre , piense si realmente necesita un identificador. ¿Quizás el índice generado por DB es suficiente?

Stephan Kolassa
fuente
No estaba al tanto de esos esquemas de nombres alternativos. Gracias. Sobre el tema del conflicto, una respuesta de alto voto en SO sugiere esto sobre SHA-1: "Para abordar la paradoja del cumpleaños, una base de datos con 10 ^ 18 (un millón de millones de entradas) tiene una probabilidad de aproximadamente 1 en 0.0000000000003 de una colisión. "
xtian