¿Qué tipo de certificado debo obtener si quiero asegurar una conexión entre un servidor web y una base de datos?

8

Sé que la gente compra certificados SSL para proteger sus sitios. ¿Qué tipo de certificado debo obtener si quiero cifrar una conexión entre un servidor de aplicaciones y una base de datos? El servidor de aplicaciones puede no ser accesible a través de una URL pública, por cierto.
Mi pregunta es general, pero la situación real es el entorno de Windows en ambos servidores y RavenDb como base de datos, si eso importa

Nota : controlo ambos servidores y su configuración de seguridad.

    
pregunta chester89 13.01.2016 - 13:34
fuente

3 respuestas

4

Es importante entender que los certificados proporcionan integridad y el cifrado proporciona confidencialidad. En otras palabras; el certificado se asegura de que está hablando con quien cree que es (si forma parte de la cadena de confianza), pero no cifra su conexión. Sin embargo, la integridad y la confidencialidad casi siempre van de la mano, por lo que la clave pública de un cliente está contenida en su certificado. Una vez que se verifica la identidad del activo que sirve el certificado, su clave pública se puede utilizar para cifrar la conexión y negociar más detalles de cifrado.

En teoría, sería suficiente simplemente generar un par de llaves tanto en el servidor de base de datos como en el servidor de aplicaciones, y usarlos para configurar el cifrado entre los dos. El hecho es que muchos sistemas requieren certificados para cifrar la conexión, por lo que también se puede verificar la identidad del otro lado de la conexión. Debido a que su solicitud no es pública, no es necesario que el certificado esté firmado por una CA. Solo necesitaría generar un par de llaves, crear un CSR a partir de él y, por lo tanto, autofirmarlo. No hay que gastar dinero aquí.

Puede usar estos certificados autofirmados para configurar el cifrado entre la base de datos y su aplicación.

    
respondido por el Stef Heylen 13.01.2016 - 14:33
fuente
2

encripta una conexión entre un servidor de aplicaciones y una base de datos

Creo que deberías establecer un túnel IPSEC entre el servidor de la base de datos y el servidor de la aplicación. Esto le proporcionará confidencialidad e integridad. (ESP + AH)

Configuración Referencia

    
respondido por el Ijaz Ahmad Khan 13.01.2016 - 14:52
fuente
0

Si controla ambos servidores, ni siquiera necesitaría usar certificados, simplemente configure en cada lado la clave pública de confianza para el otro lado y utilícela para establecer una conexión de tipo SSL / TLS.

Sin embargo, probablemente la forma más sencilla de hacerlo es realmente utilizando SSL / TLS y certificados, solo porque es la única forma en que podrá configurar una conexión de este tipo protegida en la mayoría de los sistemas. Pero no es necesario comprar un certificado en este caso, está bien usar certificados autofirmados, ya que no tendrá demasiada ventaja real en el uso de una CA de confianza para emitir los certificados. El asunto aquí es cuán bueno protege la clave privada del lado de la base de datos. Si tiene un certificado autofirmado o un certificado firmado por CA para esa clave, pero pierde la clave privada, el efecto es casi el mismo, ya que la forma más rápida de mitigarlo es eliminar la confiabilidad de la clave en la aplicación y reemplazarla por una nueva. uno (en una CA también puede solicitar la revocación del certificado, pero eso tomaría más tiempo para ser efectivo).

Lo que necesita es generar un certificado autofirmado para la base de datos y configurar la base de datos para usarla. Luego ponga este certificado como de confianza en la configuración de conexión de la aplicación.

Tal vez pueda hacerlo aún mejor, si su base de datos admite la verificación del certificado de cliente, también podría tener un certificado en la aplicación de confianza en la base de datos. Por lo tanto, para conectar y establecer una conexión de confianza, uno debería tener claves privadas tanto del cliente como del servidor. Pero no sé si alguna base de datos lo admite. Si proporciona detalles sobre la base de datos que utiliza, uno podría dar una respuesta más detallada.

    
respondido por el CristianTM 13.01.2016 - 13:48
fuente

Lea otras preguntas en las etiquetas