Anonimización de dos fases

3

EDITAR:

[N.B: Reemplazé completamente la pregunta original que no era una muy buena declaración del problema (ver comentarios) con una más adecuada.]

Tengo registros que contienen, entre otras cosas, la ubicación de los usuarios y su ID (es una gran cantidad de datos). Necesito proporcionar a un tercero la ubicación de los usuarios. (El flujo también se filtra en función de otros criterios en el flujo y tal vez incluso se combina con otras fuentes de datos que contienen ID de usuario, si es de interés aquí y ahora).

No debo pasar las ID de usuario a terceros.

Los registros que tiene una salida deben permitir a la tercera parte crear "rutas" y / o mapas de ubicación de los usuarios que varían en el tiempo durante un período de tiempo (por ejemplo, un día pero mucho más de una hora). Para ello, deben ser capaces de identificar los registros que pertenecen al mismo usuario. Por lo tanto, se debe pasar alguna clave.

Una restricción importante que constituye el núcleo del problema:

Para la discusión, permítame definir "ID de usuario anonimizado" un atributo que se deriva de los atributos de los registros de entrada de tal manera que es (casi) exclusivamente derivable de la ID de usuario (por ejemplo, una ID de usuario con sal con hash o una fija asignación aleatoria), y se coloca en los registros de la secuencia de salida para que los registros que pertenecen al mismo usuario puedan ser identificados.

Las regulaciones legales y las normas internas son tales que debo asegurarme de que la "identificación de usuario anonimizada" no se pueda reproducir durante más de una hora. (Solo como un ejemplo ilustrativo: si utilizara un hash con sal del ID de usuario como "ID de usuario anónimo" tendría que usar una nueva sal cada hora).

(Nota: como se mencionó anteriormente, la tercera parte tiene que asignar ubicaciones a los usuarios durante más tiempo. Aún no les importa la identidad del usuario, pero deben saber que es el mismo usuario todo el tiempo).

Y las preguntas son: ¿Hay alguna forma de hacer esto? Si es así, ¿cómo?

    
pregunta fastcatch 04.04.2016 - 13:17
fuente

1 respuesta

0

Para reformular: su sistema tiene usuarios con ID asignados. Recibe datos de ubicación periódicos asociados con estas ID de usuario en tiempo real.

También tiene uno (o más) clientes que desean analizar las ubicaciones de sus usuarios. Cada cliente debe recibir tokens aleatorios que se asignan a un ID de usuario, y los tokens pueden referirse a un ID específico por un período de no más de cierta duración máxima, por ejemplo, 24 horas. El cliente necesita los datos de ubicación. El cliente nunca necesita la ID de usuario real.

Y tiene una política que le prohíbe conservar internamente la ubicación asociada con sus ID de usuario reales.

Aquí hay una posible solución:

Primero, obtenga una clave pública de cada uno de sus clientes. Al comienzo de cada día, para cada cliente, se genera un sal aleatorio y se almacena internamente en la RAM, manteniéndolo en secreto. Al recibir una nueva ID de usuario y un par de ubicación, agregue la sal del cliente a la ID y luego calcule el hash. Después del hash, codifique inmediatamente el hash con la clave pública del cliente, aplique el relleno aleatorio y luego descarte el hash. El hash encriptado con sal ahora es un token encriptado específico del cliente. Conservar solo el ID de cliente, el ID de clave pública, el token cifrado y los datos de ubicación; coloque los datos en la cola de mensajes apropiada. Repita el proceso de tokenización para cada cliente que recibirá los datos; después de tokenizing la ID de usuario para cada uno de sus clientes, descarte la ID de usuario real. A continuación, puede enviar los tokens cifrados con los datos de ubicación a cada cliente receptor. Una vez al día, destruya la sal asegurada de cada cliente y genere una nueva.

Al destruir el hash intermedio y la ID de usuario, elimina los únicos enlaces que tienen vinculando el registro de ubicación a una ID de usuario real. Usted controla la capacidad del cliente para correlacionar los registros destruyendo su sal.

    
respondido por el John Deters 06.04.2016 - 06:27
fuente

Lea otras preguntas en las etiquetas