Actualmente estoy trabajando en una aplicación donde recibimos información de salud privada. Una de las mayores preocupaciones es con el SSN. Actualmente, no usamos el SSN para nada, pero en el futuro nos gustaría poder utilizarlo para identificar de manera única a un paciente en múltiples instalaciones. La única forma en que puedo ver hacer eso de manera confiable es a través del SSN. Sin embargo, nosotros (además de nuestros clientes) REALMENTE no queremos almacenar el SSN.Hashing SSNs y otra información de dominio limitado
Así que, naturalmente, pensé en solo SHA hashing it ya que solo lo usamos para identificación. El problema con eso es que si un atacante conoce el dominio del problema (un SSN), entonces puede enfocarse en ese dominio. Por lo tanto, es mucho más fácil calcular los mil millones de SSN en lugar de una cantidad virtualmente ilimitada de contraseñas. Sé que debería usar una sal de sitio y una sal por paciente, pero ¿hay algo más que pueda hacer para evitar que un atacante revele el SSN? En lugar de SHA, estaba planeando usar BCrypt, ya que Ruby tiene una buena biblioteca y maneja la complejidad escalable y el salazón automágicamente.
No se utilizará como contraseña. Básicamente, recibimos mensajes de muchas instalaciones y cada uno describe a un paciente. Lo único cerca de un identificador global único para un paciente es el número de SSN. Vamos a usar el hash para identificar al mismo paciente en múltiples instalaciones.
Puede que no desee utilizar el SSN de esta manera: las personas pueden escribirlo incorrectamente en los formularios, o puede [cambiar con el tiempo] (http://www.ssa.gov/pubs/10064.html) . – sarnold
I segundo sarnold. He visto que este uso de la información del SSN simplemente falla horriblemente; otro escenario es cuando no hay SSN (inmediatamente) disponible. –
Ese es un buen punto, pero esta es una solución más confusa, no tiene que ser correcta el 100% del tiempo. Además, cuando no hay ningún SSN disponible, entonces la función simplemente no funcionará para ese paciente. La única otra opción propuesta es usar su información de seguro, que tiene sus propios problemas con la precisión y la disponibilidad. –