Quiero compartir conjuntos de datos entre dos organizaciones de forma seudonimizada, de modo que se vinculen entre sí a través de entidades mutuas (por ejemplo, personas) pero para que las entidades no puedan ser identificadas. Por ejemplo:
La organización A tiene el conjunto de datos A. La organización B tiene el conjunto de datos B. La persona C aparece en ambos conjuntos de datos, identificados por su ID única 12345. Quiero almacenar ambos conjuntos de datos juntos (en un almacén de datos fuera de ambas organizaciones), vinculando la actividad para la persona C en el conjunto de datos A con actividad para la persona C en el conjunto de datos B. Sin embargo, para garantizar que no se pueda identificar a la persona C, quiero almacenar su ID única (en ambos conjuntos de datos) de forma aleatoria, de manera que no se pueda revertir (por ejemplo, que 12345 se convierte en 29CX9).
Opción 1
Simplemente podría marcar el identificador único a través de SHA2 512 (u otro algoritmo) y almacenarlo en el almacén, por lo tanto, proporcionar un seudónimo que siempre se asigna a la misma salida para una entrada determinada. Sin embargo, a diferencia de las contraseñas en las que el hash unidireccional es efectivo, cualquiera (que conozca el algoritmo de hash) podría ejecutar un identificador único conocido a través del algoritmo de hash y obtener el seudónimo de hash. Este método evita que las personas inviertan el hash, pero como los identificadores no son secretos de la misma manera que lo son las contraseñas, realmente no proporciona ninguna seguridad.
Opción 2
Cree una tabla que asigne un nuevo identificador único generado aleatoriamente para cada identificador para el que deseamos crear un seudónimo y luego bloquee esta tabla para que nadie tenga acceso. Esto nos da un identificador único que no está relacionado con el identificador de origen, por lo que alguien que conozca un identificador de origen no puede descubrir cuál sería el seudónimo en el almacén compartido, sin embargo, eso significa que si alguna vez se infringe la tabla, un atacante tiene todo lo que necesita para identificar todas las entidades en el almacén.
¿Más opciones ...?
¿Hay más opciones? ¿Esencialmente, se reduce a una de estas dos opciones: o podemos proteger un identificador de origen para que no se convierta a su seudónimo o podemos proteger un seudónimo para que no se invierta a su identificador de origen pero no a ambos? ¿La mejor apuesta sería un híbrido si el identificador de la fuente es un hash (SHA2 512) y luego se crea una tabla de búsqueda bloqueada que mapea los identificadores de la hash con identificadores únicos generados al azar ...?