Background
El equipo de desarrollo está recibiendo datos de producción (como archivos de copia de seguridad de la base de datos) para corregir errores y mejoras de la aplicación. El equipo de desarrollo restaura estas copias de seguridad en su entorno y realiza el trabajo de desarrollo de la aplicación / corrección de errores, etc.
Problema
El cliente está preocupado por exponer datos de producción confidenciales, como PII (Información de identificación personal) al equipo de desarrollo. El cliente debe analizar estos datos confidenciales mientras conserva sus propiedades donde el equipo de desarrollo puede realizar el trabajo diario sin interrupción.
No hay ningún requisito de revertir los datos filtrados.
Solución probable 1: enmascaramiento de datos
Como veo, la solución más correcta para este problema es identificar los campos de la base de datos de PII y realizar el enmascaramiento de datos. Un problema al que nos enfrentamos es que debemos preservar las propiedades de los datos en la base de datos, como se indica a continuación.
- La longitud de los datos enmascarados no puede ir más allá de la longitud del campo en particular.
- Los datos enmascarados deben estar en el mismo tipo de datos que los datos originales: por ejemplo, si el tipo de campo DB es int, los datos enmascarados también deben ser int
- Si el resultado enmascarado del valor ABC es XYZ, todas las instancias de datos ABC deberían enmascararse a XYZ (Esto se debe a que algunos PII se están utilizando como claves DB)
Preguntas
-
Ya que no necesitamos revertir los datos enmascarados, ¿podemos usar el hash para lograr esto? Si es así, ¿cómo mantener las propiedades de datos que describí anteriormente?
-
Si vamos a utilizar el cifrado, ¿podemos conservar las propiedades de los datos? ¿Cuáles son los mejores algoritmos que tenemos?
-
¿Hay alguna otra técnica que tengamos para lograr este objetivo?
-
¿Podemos evitar la inferencia de datos usando el enmascaramiento de datos?