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:
- ¿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?
- 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?