Por que armazenar o certificado Apache SSL e a chave privada em arquivos separados?

11

A documentação do Apache mod_ssl para as diretivas SSLCertificateFile e SSLCertificateKeyFile afirma que é 'fortemente desencorajado' armazenar uma chave privada e um certificado SSL no mesmo arquivo.

Agora, obviamente, o arquivo de chave privada deve ser mantido seguro, mas assumindo que é esse o caso, existe algum risco específico em armazenar um certificado no mesmo arquivo? Estou curioso para saber por que esse comportamento é suportado e, no entanto, fortemente desencorajado sem explicação.

Vortura
fonte

Respostas:

15

O arquivo de certificado SSL é um bloqueio.
O arquivo de chave do certificado SSL é sua chave.

Armazenar os dois juntos é o equivalente a colocar a chave na fechadura da porta da frente.
Se um invasor comprometer o arquivo único, ele terá tudo o que precisa para representar com sucesso o seu site (o certificado e a chave privada).

Isso é especialmente verdadeiro se você não tiver uma senha na sua chave SSL (muitos servidores da Web não, para permitir que eles sejam iniciados automaticamente no caso de uma falha).


O que você está defendendo ao separar os arquivos é um bug do Apache que faz com que ele despeje o conteúdo do SSLCertificateFile(algo que deve estar disponível ao público) para um cliente da Web.
(Que eu saiba, esse bug não existe ou já existiu, mas o Apache é um software grande e complexo. É totalmente possível.)

Se o Apache despejar esse arquivo e tudo o que ele contém é o certificado SSL (o bloqueio), não há problema: todo mundo obtém uma cópia desse certificado quando faz uma solicitação SSL ao servidor de qualquer maneira.
Se o arquivo também contiver a chave, você terá qualquer chance de segurança - todo o seu modelo de criptografia está comprometido e você precisa alterar as chaves.

voretaq7
fonte
Obrigado, o erro teórico que faz com que o servidor da Web sirva a chave privada junto com o certificado público também foi o meu melhor palpite. Eu realmente não concordo que colocar a chave e o certificado no mesmo arquivo seja equivalente a colocar a chave na porta da frente, mas igualmente, não consigo pensar em um bom motivo para fazê-lo.
Vortura
1
Provavelmente não é tão ruim quanto gravando a chave para a porta - talvez mais perto de furar a chave na parte superior da moldura da porta, ou usar um daqueles Hide-A-key rochas :-)
voretaq7
7

As versões antigas do OpenSSL requeriam dois arquivos separados (público e privado). As versões antigas de outros mecanismos de criptografia exigiam um único arquivo (ambos no mesmo arquivo). No "espírito" da compatibilidade (também conhecido como "o queixoso do administrador sobre a inconsistência e a necessidade de manter dois conjuntos de certificados), a maioria agora suporta os dois.

Armazenar os dois certificados (também o conjunto de chaves) em um único arquivo é desencorajado, pois os diferentes certificados têm escopos diferentes. É mais um problema de consistência do que técnico, onde o certificado público deve ter permissões de arquivo legíveis publicamente e vice-versa para o privado. Não há perigo em manter seu certificado público trancado em seus sistemas, é apenas inconsistente com seu objetivo.

Chris S
fonte