¿Cuál es la práctica común para cifrar la información de identificación personal del usuario?

1

Estoy tratando de proteger los datos mediante el uso de AES para cifrar todos los datos de PII antes de que se guarden en la base de datos, y creo que el mecanismo general es algo como el siguiente.

(Esto es lo que pienso, no necesariamente correcto)

Datos de entrada del usuario - > html envía datos al servicio web a través de https - > el servicio web cifra los datos mediante una clave privada que es distinta para cada usuario - > El servicio web guarda los datos en la base de datos

y por otro lado:

Datos de solicitud del usuario - > el servicio web obtiene datos de la base de datos - > servicio web descifrar los datos - > El servicio web envía los datos al usuario a través de https

Por ejemplo, el correo electrónico es un campo PII que está protegido por cifrado. Decir cuando el usuario se está registrando, proporciona un correo electrónico y una contraseña. El servicio web calcula una clave privada aleatoria y la utiliza para cifrar el correo electrónico (pregunta I aquí) y guarda el correo electrónico cifrado en la base de datos. Cuando el usuario desea iniciar sesión utilizando la combinación de correo electrónico y contraseña, nuevamente envía el correo electrónico al servicio web (pregunta II aquí).

Sin embargo, surgen las dos preguntas:

  1. ¿Debo almacenar la clave privada en la base de datos? ¿Debería esto estar encriptado? Si es así, ¿cómo puede ser recuperado y descifrado? De lo contrario, ¿qué deberíamos hacer con la clave privada?
  2. Suponiendo que en la pregunta 1, guardamos la clave privada en algún lugar con ID de usuario como PK. En el momento en que el usuario intenta iniciar sesión con el correo electrónico y la contraseña, la aplicación web recibe un correo electrónico de texto sin el nombre de usuario. ¿Cómo debería descifrar el correo electrónico sin el ID de usuario que se utiliza para localizar la clave privada? Sin la clave privada, ¿cómo puede el sistema confirmar que el correo electrónico es un correo electrónico válido?

Estas pueden ser preguntas básicas, pero simplemente no puedo entender ... ¿Me pregunto qué está usando la industria para resolver los problemas, o incluso estoy en el camino correcto?

    
pregunta jamesdeath123 04.01.2015 - 00:50
fuente

2 respuestas

1

La encriptación de la clave privada tampoco agrega mucha más seguridad; en última instancia, es necesario almacenar alguna sin encriptar, por lo tanto, tiene sentido que sea la PK.

Dado que la dirección de correo electrónico está encriptada (firmada con el PK), necesitará información adicional para realizar la búsqueda. La solución recomendada es usar un public key . La clave pública se distribuye a los clientes y se envía como parte de las solicitudes y se utiliza para buscar el PK y descifrar los datos.

    
respondido por el James 04.01.2015 - 15:01
fuente
0

Puede almacenar la clave en su base de datos sin cifrar. Puede cifrarlo con una clave simétrica que usted y solo usted sabrán. Debe descifrar la contraseña que obtiene y comparar el valor con sus contraseñas cifradas en la base de datos. Nunca debe almacenar dicha información en texto sin formato en su base de datos.

    
respondido por el Yakov Mor 04.01.2015 - 09:16
fuente

Lea otras preguntas en las etiquetas