Asegurar las credenciales de conexión en un servidor web

2

Estoy en proceso de crear una pequeña plataforma de blogs y he encontrado un tema bastante controvertido sobre el almacenamiento seguro de una cadena de conexión en una base de datos en un host. Aquí hay una pregunta de referencia: Cómo cifrar la base de datos ¿Credenciales de conexión en un servidor web? .

A partir de mi pregunta: pensé en almacenar las credenciales en un archivo cifrado en gpg en algún lugar de la carpeta /etc del host Ubuntu 14.04. Cada vez que el servidor se inicia, le pedirá a un administrador del sistema (yo) que descifre un archivo y luego se necesita un servicio que se ejecute en segundo plano a la espera de que un back-end del sitio le solicite una cadena de conexión. Luego devolvería todo lo necesario para la información de conexión de la base de datos y el back-end procederá a consultar la base de datos en sí.

Con este enfoque, el único lugar donde se almacena una contraseña en el servidor en funcionamiento es la RAM. Cada vez que el servidor se bloquea debido a un ataque malicioso o los atacantes logran volcar la raíz web, aún no pueden obtener la contraseña, ya que el servicio de concesión de contraseña funciona a nivel del sistema.

¿Es un buen esquema de seguridad? ¿Qué alternativas propondría (Python Flask, MySQL y peewee)? Además, si mi idea no es tan mala, ¿cómo puedo implementar ese "servicio" para ejecutarlo en segundo plano y esperar una consulta de credenciales (preferiblemente algún tipo de script de bash)?

Gracias de antemano!

    
pregunta ddnomad 11.02.2017 - 19:45
fuente

1 respuesta

2
  

¿Es un buen esquema de seguridad?

Sí, es razonable. Por lo general, las personas no hacen esto porque desean sistemas automatizados, y el tiempo de inactividad causado por la necesidad de ingresar manualmente una contraseña cada vez que se reinicia la aplicación va más allá de lo que consideran aceptable.

  

¿Qué alternativas propondría (Python Flask, MySQL y peewee)?

Básicamente, todo lo que se menciona en la pregunta a la que enlazó . Personalmente, soy un fan de Vault , que es un servidor HTTP separado que almacena tus secretos. No es en absoluto una solución perfecta: todavía tiene que autenticarse en it , lo que prácticamente significa que usted termina con un token de sesión temporal que almacena en texto sin formato en su servidor.

  

Además, si mi idea no es tan mala, ¿cómo puedo implementar ese "servicio" para ejecutarlo en segundo plano y esperar una consulta de credenciales (preferiblemente algún tipo de script bash)?

¿Con programación? Probablemente solo querrá hacer esto en el código de su aplicación como parte de su proceso de inicio.

    
respondido por el Xiong Chiamiov 11.02.2017 - 20:39
fuente

Lea otras preguntas en las etiquetas