Gestión de claves: almacenamiento de claves cifradas en la base de datos y claves descifradas en la variable de sesión

3

Editar: Título reformulado para, con suerte, obtener algún interés en lo que habría pensado que era un problema común?

Estoy desarrollando un sitio web que usa php / mySQL para almacenar datos no comerciales y estará claramente etiquetado como información no confidencial. El sitio se alojará en un servidor de Internet compartido.

Ya que estoy usando un servidor compartido, ya he aceptado que este sitio web será muy limitado en términos de seguridad absoluta de datos, pero deseo al menos ofrecer la opción de una solución creíble a los riesgos de cualquier administrador de servidor, simplemente pudiendo para leer los campos de texto sin formato en la base de datos directamente oa través de una copia de seguridad y, de manera similar, se debe hackear el servidor y acceder a la base de datos. No hay una amenaza percibida de piratas informáticos determinados ya que los datos tendrían poco valor.

Mis preocupaciones están principalmente relacionadas con la administración de claves: almacenar la clave secreta encriptada en la base de datos y almacenar la clave secreta desencriptada en una variable de sesión. Todos los comentarios serán bienvenidos.

Mi propuesta es la siguiente:

  • use cifrado / descifrado simétrico con php mcrypt_encrypt (MCRYPT_RIJNDAEL_256)
  • Almacene la clave secreta simétrica encriptada en la base de datos usando un hash de una frase secreta
  • la frase secreta se asignará a la organización donde podría haber hasta 10 personas que necesiten usarla
  • Después de que un usuario inicie sesión con su nombre de usuario y contraseña únicos, se le pedirá la frase secreta: si se ingresa correctamente, los datos de texto se descifran y se muestran. Si no ingresan la frase correcta, no se envía al navegador web.
  • la clave secreta se almacena en una variable de sesión, que se destruye cuando el usuario cierra la sesión o después de un tiempo de espera de sesión.
  • el sitio también está protegido usando Apache htaccess ya que no es para uso público
  • el php está incorporando métodos para defenderse de xss, inyección, etc.
pregunta user34252 15.11.2013 - 12:13
fuente

1 respuesta

1

Estaba pensando en hacer algo similar. Encontré esta respuesta durante la búsqueda, lo que parece implicar que esta es una práctica aceptable siempre y cuando no esté utilizando contraseñas o hashes de contraseña en la clave. enlace

    
respondido por el JadedCore 06.02.2014 - 21:25
fuente

Lea otras preguntas en las etiquetas