Pourquoi stocker le certificat SSL Apache et la clé privée dans des fichiers séparés?

11

La documentation Apache mod_ssl pour les directives SSLCertificateFile et SSLCertificateKeyFile indique qu'il est «fortement déconseillé» de stocker une clé privée et un certificat SSL dans le même fichier.

Désormais, le fichier de clé privée doit être conservé en toute sécurité, mais en supposant que ce soit le cas, y a-t-il des risques spécifiques à stocker un certificat dans le même fichier? Je suis curieux de savoir pourquoi ce comportement est pris en charge, et pourtant fortement découragé sans explication.

Vortura
la source

Réponses:

15

Le fichier de certificat SSL est un verrou.
Le fichier de clé de certificat SSL est sa clé.

Stocker les deux ensemble équivaut à coller votre clé sur la serrure de votre porte d'entrée.
Si un attaquant compromet le fichier unique, il dispose de tout ce dont il a besoin pour usurper l'identité de votre site Web (le certificat et la clé privée).

Cela est particulièrement vrai si vous n'avez pas de phrase secrète sur votre clé SSL (de nombreux serveurs Web n'en ont pas, pour leur permettre de démarrer automatiquement en cas de panne).


Ce que vous défendez en séparant les fichiers est un bogue Apache qui le fait vider le contenu de SSLCertificateFile(quelque chose qui devrait être accessible au public) à un client Web.
(À ma connaissance, un tel bogue n'existe pas, ou n'a jamais existé, mais Apache est un gros logiciel complexe. C'est tout à fait possible.)

Si Apache vide ce fichier et qu'il ne contient que le certificat SSL (le verrou), il n'y a pas de problème: tout le monde obtient une copie de ce certificat lorsqu'il fait une demande SSL au serveur de toute façon.
Si le fichier contient également la clé, vous avez perdu toute chance à la sécurité - votre modèle de cryptage entier est compromis et vous devez changer de clé.

voretaq7
la source
Merci, le bogue théorique qui fait que le serveur Web sert la clé privée avec le certificat public était aussi ma meilleure estimation. Je ne suis pas vraiment d'accord pour dire que mettre la clé et le certificat dans le même fichier équivaut à coller la clé sur la porte d'entrée, mais je ne peux pas non plus penser à une bonne raison de le faire.
Vortura
1
Ce n'est probablement pas aussi mauvais que de coller la clé à la porte - peut-être plus près de coller la clé sur le cadre de la porte, ou d'utiliser l'une de ces pierres à cacher :-)
voretaq7
7

Les anciennes versions d'OpenSSL nécessitaient deux fichiers distincts (public et privé). Les anciennes versions d'autres moteurs de chiffrement nécessitaient un seul fichier (les deux dans le même fichier). Dans un "esprit" de compatibilité (alias "les gémissements d'Admin au sujet de l'incohérence et de devoir maintenir deux ensembles de certificats), la plupart prennent désormais en charge les deux.

Le stockage des deux certificats (également la chaîne de clés) dans un seul fichier est déconseillé car les différents certificats ont des étendues différentes. Il s'agit davantage d'un problème de cohérence que d'un problème technique, où le certificat public doit avoir des autorisations de fichiers lisibles par le public, et vice versa pour le privé. Il n'y a aucun danger à garder votre certificat public sous clé sur vos systèmes, c'est simplement incompatible avec son objectif.

Chris S
la source