¿Cómo almacenar la clave secreta utilizada para el hashing?

2

Estoy tratando de encontrar una manera segura de almacenar las claves secretas utilizadas en el hashing de los números de seguridad social.

La idea es la anulación de la identificación de los sujetos de investigación, pero aún así permite realizar seguimientos a través del hash de una clave secreta concatenada con el SSN y usarla como identificador único.

Los pasos que he concebido son los siguientes:

  1. En el momento 0, cuando se recopilan datos sobre el sujeto A, genere aleatoriamente una clave secreta y concaténela con el SSN antes de codificarla.
  2. Reemplace el SSN con el valor de hash. Este registro no identificado se utilizará para fines de investigación.
  3. Almacena el SSN y la clave secreta generada de alguna manera.

  4. En el momento 1, cuando se recopilan más datos del sujeto A, queremos agregar estos nuevos datos a los datos recopilados anteriormente. Busque la clave secreta usando el SSN y luego vuelva a aplicar hash para obtener el valor de hash requerido.

Estoy luchando en el Paso 3 y buscando las mejores prácticas en este escenario. Parece que si simplemente almacenara el SSN junto con la clave secreta en un archivo de texto, entonces el riesgo de reidentificación es alto una vez que el intruso tenga acceso al archivo.

Cualquier ayuda es muy apreciada!

    
pregunta GAN 06.06.2018 - 09:37
fuente

1 respuesta

1

Todo lo que puedo pensar es ...

1) Use una tabla de búsqueda para asignar SSN a sales (o identificadores aleatorios para los datos anónimos persistentes) pero manténgalo alejado de los datos persistentes y anónimos. Ambos conjuntos de datos deben comprometerse para resolver los datos.

2) según 1, pero introduzca el valor aleatorio / sal aleatoria mediante un hash del SSN (y mantenga la tabla de búsqueda separada). Esto agrega algo de valor de seguridad por encima de 1, pero no mucho. Ambos conjuntos de datos deben comprometerse para que los datos se resuelvan.

3) como en 2, pero hash la clave SSN usando una sal estática (es decir, almacenando hash ($ ssn, "staticsalt") - > secreto). Lo ideal es mantener la sal satic en un lugar diferente a los 2 almacenes de datos existentes. Una vez más, esto solo agrega un poco de valor de seguridad

4) use otra información sobre el tema (si está disponible) para aumentar la cantidad de entropía en los datos utilizados para crear el hash. Esto haría que sea más difícil desanimar los datos, pero no afecta la capacidad de encontrar a una persona en el conjunto de datos si se conocen sus detalles.

    
respondido por el symcbean 06.06.2018 - 18:02
fuente

Lea otras preguntas en las etiquetas