¿Por qué almacenar el certificado SSL Apache y la clave privada en archivos separados?

11

La documentación de Apache mod_ssl para las directivas SSLCertificateFile y SSLCertificateKeyFile establece que se 'desaconseja encarecidamente' almacenar una clave privada y un certificado SSL en el mismo archivo.

Ahora, obviamente, el archivo de clave privada debe mantenerse seguro, pero suponiendo que ese sea el caso, ¿existe algún riesgo específico al almacenar un certificado en el mismo archivo? Tengo curiosidad por saber por qué este comportamiento es compatible y, sin embargo, se desaconseja sin explicación.

Vortura
fuente

Respuestas:

15

El archivo de certificado SSL es un candado.
El archivo de clave de certificado SSL es su clave.

Almacenar los dos juntos es el equivalente a pegar la llave en la cerradura de la puerta principal.
Si un atacante compromete el archivo único, tiene todo lo que necesita para hacerse pasar por su sitio web (el certificado y la clave privada).

Esto es especialmente cierto si no tiene una frase de contraseña en su clave SSL (muchos servidores web no la tienen, para permitir que se inicien automáticamente en caso de bloqueo).


De lo que estás defendiendo al separar los archivos es un error de Apache que hace que descargue el contenido del SSLCertificateFile(algo que debería estar disponible públicamente) a un cliente web.
(Que yo sepa, no existe tal error, o ha existido alguna vez, pero Apache es un software grande y complejo. Es completamente posible).

Si Apache volca este archivo y todo lo que contiene es el Certificado SSL (el bloqueo), no hay problema: de todos modos, todos obtienen una copia de ese certificado cuando hacen una solicitud SSL al servidor.
Si el archivo también contiene la clave, ha perdido toda posibilidad de seguridad: todo su modelo de cifrado se ve comprometido y debe cambiar las claves.

voretaq7
fuente
Gracias, el error teórico que hace que el servidor web entregue la clave privada junto con el certificado público también fue mi mejor suposición. Realmente no estoy de acuerdo en que poner la llave y el certificado en el mismo archivo es equivalente a pegar la llave en la puerta principal, pero igualmente, no puedo pensar en una buena razón para hacerlo.
Vortura
1
Probablemente no sea tan malo como pegar la llave de la puerta, tal vez más cerca de pegar la llave en la parte superior del marco de la puerta o usar una de esas rocas de esconder una llave :-)
voretaq7
7

Las versiones anteriores de OpenSSL requerían dos archivos separados (público y privado). Las versiones anteriores de otros motores de cifrado requerían un único archivo (ambos en el mismo archivo). En el "espíritu" de compatibilidad (también conocido como "El administrador se queja de la inconsistencia y tiene que mantener dos conjuntos de certificados), la mayoría ahora admite ambos.

No se recomienda almacenar ambos certificados (también el llavero) en un solo archivo, ya que los diferentes certificados tienen diferentes ámbitos. Es más un problema de coherencia que técnico, donde el certificado público debe tener permisos de archivo legibles públicamente, y viceversa para el privado. No hay peligro en mantener su certificado público bajo llave en sus sistemas, es simplemente inconsistente con su propósito.

Chris S
fuente