¿Cómo almacenar de forma segura los detalles del SSN en una base de datos mientras se mantienen las búsquedas?

2

Mi pregunta es muy similar a éste , pero en mi situación no necesito recuperar el valor real. Mi preocupación con solo agregar hash al valor es que, dado que hay un número finito y (relativamente) pequeño de números de Seguro Social posibles, es que sería demasiado fácil imponer los SSN de fuerza bruta.

El SSN realmente solo se usará como valor de búsqueda para los registros múltiples . Mi idea es tener el servidor de aplicaciones hash del SSN de texto simple usando un algoritmo lento como PBKDF2 con un sal estático. El servidor de aplicaciones envía estos datos al servidor criptográfico, que cifra los datos con AES-256 en modo CBC con un IV estático. Los datos encriptados se procesan con SHA-256 y se insertan en la base de datos como una cadena hexadecimal.

Aquí hay un diagrama de flujo:

Creoqueesteesunmodelomuyseguroyaqueelatacantenecesitaríafuerzabruta:

  1. Losdatoscifrados(¡256bitscomomínimo!)
  2. ElIV(mínimode128bits.Estopuedeserarbitrariamentegrandesiemprequesulongitudseaunmúltiplodeltamañodebloque(16))
  3. Laclave(otros256bits)
  4. LasalSSN(puedeserarbitrariamentegrande)
  5. ElSSN(1000000000opciones:muyrápidodecalcularperoconunalgoritmodehashinglentotomaráuntiempoobtenerlastodas)

Comoalgoasícomoalgoaparte,micompañerodetrabajotienedospreocupacionespropias:

  1. Quiereasegurarsedequenohayatextoscifradosduplicadosenlabasededatos
  2. Búsquedas.Habíaexaminadoalgunosartículosquedescribíanelcifradosimétricoconcapacidaddebúsqueda( enlace 1 , < a href="http://outsourbits.org/2014/08/21/how-to-search-on-encrypted-data-searchable-symmetric-encryption-part-5/"> link 2 , < a href="http://bristolcrypto.blogspot.com/2013/11/how-to-search-on-encrypted-data-in.html"> link 3 ).

Mi respuesta al número 1 es que esto requeriría poder recuperar el SSN de texto simple, que un atacante también podría hacer.

Y para el # 2, no soy criptógrafo, pero mi razonamiento para cerrar estas ideas es que, por mi parte, no conozco ningún algoritmo / biblioteca implementado y probado exhaustivamente que respalde esto, y esto permite la búsqueda de "palabras clave". Dependiendo de cómo funcione, la palabra clave en este contexto sería el SSN y realmente no puedo ver cómo complicaría las cosas al consultar la base de datos.

Esta es una pregunta bastante cargada, pero ¿mi modelo es seguro y mis puntos son precisos?

    
pregunta Lander 19.12.2014 - 05:37
fuente

0 respuestas

Lea otras preguntas en las etiquetas