La connaissance d'une clé privée CA permettrait aux attaquants MitM de remplacer de manière transparente tous les certificats signés par cette clé privée. Cela permettrait également aux cybercriminels de commencer à forger leurs propres certificats de confiance et à les vendre sur le marché noir.
Étant donné les énormes bénéfices qui pourraient être réalisés avec de telles connaissances et le fait qu'un certificat hautement fiable et omniprésent (comme l'une des principales clés Verisign) serait une chose très difficile à révoquer rapidement, il va de soi qu'il y aurait des éléments criminels très motivés et bien financés qui tentent régulièrement de mettre la main sur de telles clés.
Comment les autorités de certification gèrent-elles cette menace? Cela ressemble à un vrai cauchemar, avoir à boucler les clés loin de tous les yeux humains, même les administrateurs système. Pendant ce temps, les clés doivent être utilisées quotidiennement, souvent par des services de signature connectés à Internet.
Les autorités de certification sérieuses utilisent des procédures lourdes. Au cœur, la clé CA sera stockée dans un Hardware Security Module ; mais ce n'est qu'une partie du problème. L'AC elle-même doit être physiquement protégée, ce qui inclut les mesures proactive et rétrospective.
Les mesures proactives visent à empêcher les attaques de réussir. Par exemple, l'AC sera stockée dans une chambre forte, avec des portes et des gardes en acier. Les machines elles-mêmes sont verrouillées, avec plusieurs cadenas, et personne ne détient plus d'une clé de cadenas. La sécurité physique est d'une importance capitale; le HSM n'est que la couche la plus profonde.
Les mesures rétrospectives concernent la récupération après un incident. Le HSM log toutes les signatures. La machine est sous surveillance vidéo 24/7, avec enregistrement hors site. Ces mesures consistent à savoir ce qui s'est passé (si vous préférez, savoir a priori que, si un problème survient, nous pourrons l'analyser a posteriori ). Par exemple, si des certificats "illégaux" ont été émis mais que la liste complète de ces certificats peut être reconstruite, la récupération est aussi "facile" que la révocation des certificats incriminés.
Pour une récupération supplémentaire, l'autorité de certification est souvent divisée en une autorité de certification racine longue durée maintenue hors ligne et une autorité de certification intermédiaire de courte durée. Les deux machines sont dans la cage et le bunker; l'autorité de certification racine n'est jamais connectée à un réseau. L'autorité de certification racine est physiquement accessible, avec un double contrôle (au moins deux personnes ensemble et un enregistrement vidéo) sur une base régulière, pour émettre le certificat pour l'autorité de certification intermédiaire et la CRL. Cela autorise révocation une autorité de certification intermédiaire si elle a été complètement piratée (au point que sa clé privée a été volée ou que la liste des certificats émis frauduleusement ne peut pas être reconstruite).
La configuration initiale d'une autorité de certification racine sérieuse implique une Key Ceremony avec des troupeaux d'auditeurs aux regards indiscrets et un formalisme qui ne ont été méprisés par un empereur chinois de la dynastie Song. Aucun volume d'audit ne peut garantir l'absence de vulnérabilités; cependant, ce genre de cérémonie peut être utilisé pour savoir ce qui a été fait, pour montrer que les problèmes de sécurité ont été réfléchis, et, quoi qu'il arrive, pour identifier le coupable en cas de problème. J'ai participé à plusieurs de ces cérémonies; ils sont vraiment un grand "théâtre de sécurité" mais ont des mérites au-delà de la simple présentation d'activités: ils forcent les gens à avoir des procédures écrites pour tout.
La question est maintenant: est existant CA vraiment sérieux, de la manière décrite ci-dessus? D'après mon expérience, ils le sont principalement. Si l'AC a quelque chose à voir avec VISA ou MasterCard, alors vous pouvez être sûr que HSM, acier et pitbulls de mauvaise humeur font partie de l'installation; VISA et MasterCard sont de l'argent et le prennent très au sérieux.
Pour l'autorité de certification incluse dans les navigateurs Web et les systèmes d'exploitation, le navigateur ou le fournisseur du système d'exploitation a tendance à exiger beaucoup d'assurance. Là encore, c'est une question d'argent; mais la compagnie d'assurance exigera alors toutes les mesures physiques ainsi que la comptabilité et l'audit. Formellement, cela utilisera des certifications telles que WebTrust .
Cela est vrai même pour les infâmes AC comme DigiNotar ou Comodo: notez que même s'ils ont été piratés et que de faux certificats ont été émis, lesdits certificats sont connus et révoqués (et Microsoft les a ajoutés à une liste de "certificats interdits" qui peuvent être vus comme une sorte de "révoqué, et nous le pensons vraiment" - le logiciel doit tout faire pour les accepter quand même).
Les AC "faibles" sont principalement les AC racines contrôlées par l'État. Microsoft peut refuser d'inclure une clé racine d'une entreprise privée, si Microsoft estime que suffisamment d'assurance n'a pas été fournie (ils veulent être sûrs que l'AC est financièrement solide, afin que les opérations puissent être maintenues); Je connais une banque avec des millions de clients qui ont essayé de faire inclure leur clé racine dans Windows, et ont été licenciés parce qu'ils étaient "trop petits". Cependant, Microsoft est beaucoup plus faible contre l'AC officiel des États souverains; s'ils veulent faire des affaires dans le pays X, ils ne peuvent pas vraiment se permettre de rejeter la clé CA racine du gouvernement X. Malheureusement, tous les gouvernements ne sont pas "sérieux" en ce qui concerne la protection de leurs clés CA ...
Sur le plan physique, ils gardent d'abord l'AC racine complètement hors ligne. En règle générale, ce qui se passe est qu'ils configurent l'autorité de certification racine, font des subordonnés, puis la mettent complètement hors ligne et mettent les disques durs et les HSM (parfois même l'ensemble du serveur) et les verrouillent essentiellement dans un coffre-fort.
Ensuite, ils segmentent le réseau pour sécuriser ces autorités de certification subordonnées/émettrices.
Enfin, sur ces subordonnés, ils utilisent des HSM pour stocker les certificats.
OCSP et CRL sont utilisés pour révoquer les certificats, mais ce n'est pas aussi simple que cela.
Du côté procédural, ils ont une quantité folle de couches, y compris des pièces verrouillées qui nécessitent plusieurs personnes en même temps pour révoquer/signer des subordonnés ou des racines (Une cérémonie de signature des clés). Ceux-ci sont enregistrés 24h/24 et 7j/7 (audio et vidéo) et nécessitent une personne de confiance de l'AC, en plus des administrateurs et des cadres. C'est énorme. Voici la vidéo .
Edit: Contrairement à ce que Polynomial a dit, d'après ce que j'ai vu, les HSM sont monnaie courante pour les autorités de certification, et même pour les grandes implémentations d'autorités de certification internes.
Toutes les autorités de certification (gouvernementales, commerciales ou privées) ne stockent pas les clés privées de la même manière. La plupart des opérateurs légitimes utilisent un HSM. Il est possible que le fournisseur publie des listes de révocation de CRL à l'aide d'un lien unidirectionnel de la racine vers le SubCa . (Câbles série à transmission uniquement, câbles audio, codes QR, Ethernet avec seulement quelques broches connectées .... etc.)
Pour être précis, cela dépend vraiment du produit dont vous parlez.
Par exemple, chaque téléphone (Android, iPhone, Blackberry), système d'exploitation (Linux, Windows, etc.) et même certains navigateurs Web (Firefox) disposent de magasins de confiance indépendants.
Chacun de ces fournisseurs a des normes différentes quant aux AC qui sont qualifiées pour être des "AC racine" dans ce produit donné. Plus précisément, chaque fournisseur a différentes certifications, processus et procédures (telles que les exigences de stockage à froid) auxquelles chaque autorité de certification doit adhérer avant d'être incluse dans cette liste de confiance racine.
Microsoft a le Root Certificate Program et qui exige que chaque autorité de certification respecte les normes d'audit suivantes (qui devraient répondre à toutes vos questions techniques et procédurales)
Plus précisément, l'autorité de certification doit effectuer un audit et soumettre les résultats de l'audit à Microsoft tous les douze (12) mois. L'audit doit couvrir l'intégralité de la hiérarchie PKI qui sera activée par Microsoft via l'attribution des utilisations de clés étendues (EKU). Toutes les utilisations de certificats que nous activons doivent être auditées périodiquement. Le rapport d'audit doit documenter l'étendue complète de la hiérarchie PKI, y compris toute sous-autorité de certification qui délivre un type spécifique de certificat couvert par un audit. Les audits éligibles comprennent:
WebTrust for Certificate Authorities v1. ou ultérieur, complété par un auditeur WebTrust for CA agréé,
ETSI TS 101 456 v1.2.1 ou version ultérieure,
ETSI TS 104042 V1.1.1 ou ultérieur, ou
ISO 21188: 2006, "Infrastructure à clé publique pour les services financiers - Pratiques et cadre stratégique", complétée soit par un auditeur WebTrust pour CA agréé, soit par une autorité d'audit fonctionnant conformément aux lois et politiques des évaluateurs dans la même juridiction que l'AC.
(Notez que ces exigences d'audit ne s'appliquent pas aux autorités de certification du gouvernement et peuvent être différentes)
En savoir plus sur les directives techniques et d'audit pour les racines MSFT ici
À part:
Il est certainement possible de stocker une clé privée dans un HSM qui n'expose jamais la clé privée (décharge les demandes vers cette clé) et de suivre en permanence chaque utilisation de cette clé privée. Je ne me souviens pas si l'une de ces normes nécessite un HSM, mais étant donné le coût relativement mineur d'un HSM, je ne peux pas imaginer pourquoi cela ne se fait pas.
Bien que je sois d'accord avec @ Thomas's réponse très approfondie ci-dessus, je voudrais ajouter que j'ai installé le système d'autorité de certification racine pour le système de carte de débit d'une banque britannique (chaque petite puce sur la carte est en fait un certificat).
Nous avons utilisé des appareils Thales HSM (6 chiffres £) qui avaient des systèmes d'inviolabilité appropriés pour l'inclinaison, la température, les attaques physiques, etc.
En termes de cérémonie clé, qui (comme Thomas le décrit) a des troupeaux d'auditeurs debout autour des salles de machines froides - c'est plus compliqué que cela. Vous devez vous assurer que l'activité de génération de clés et le transport de clés vers le HSM sont des activités séparées et que la clé ne peut pas être compromise par une collusion. Les outils Thales HSM permettent de diviser la clé en segments, chacun chiffré avec une clé de transport, afin que les détenteurs de clés individuels puissent se rendre séparément à la cérémonie de remise des clés, par différents moyens de transport (pour l'amour du ciel, pas de partage de voiture) vers le emplacement, généralement au HSM dans la salle des serveurs de production.
Veuillez ne pas considérer qu'être une autorité de certification racine est simple - oui, je sais que vous pouvez créer une autorité de certification racine à l'aide d'outils gratuits - vous vous devez déterminer votre propre appétit pour le risque et déterminer si vous pouvez créer une autorité de certification racine correspondant au modèle de menace. par exemple. pour les certificats de carte de débit (où la perte consécutive pourrait être "la banque entière"), le montant total dépensé était énorme et il y avait beaucoup de gens qui couraient pour s'assurer qu'aucune personne ne pouvait se connaitre ou avoir le contrôle de la clé.
Si vous créez simplement une autorité de certification racine en tant que système de test local, le modèle de risque est clairement différent.
Mon conseil serait qu'à moins que vous ayez la taille d'une grande organisation (Fortune 500) ou que ce soit votre entreprise réelle d'être une autorité de certification racine, alors externalisez.
Plutôt que de faire tout l'effort de pénétrer dans un bunker et de voler le style impossible de la mission de clé privée, on pourrait simplement casser la clé privée. Tout cela peut être fait dans le confort de votre foyer. Tout ce dont vous avez besoin est la clé publique CA, certaines données signées, un exemple de signature et un ordinateur quantique. J'ai déjà 75% des trucs, si quelqu'un a le dernier morceau, je suis heureux de partager le butin 50/50.
Beaucoup de choses utilisent des sous-certificats et des listes de révocation. Cela ne signifie pas que des problèmes ne se produisent pas et que des clés privées ont été volées aux autorités de certification de confiance, mais si l'autorité de certification ne rend jamais leur clé privée accessible, elles bénéficient d'un certain degré de protection. Ils peuvent à la place utiliser leur clé privée pour signer un certificat CA dérivé, puis utiliser ce certificat CA (avec une période de validité beaucoup plus limitée) pour signer des certificats à distribuer. Ensuite, la clé privée principale ne doit jamais être exposée au réseau.
Si une violation se produit, car ils savent que le sous-certificat devra spécifier la liste de révocation qu'ils contrôlent pour être valide, ils peuvent également révoquer un sous-certificat compromis.
Un moyen simple de vérifier si une autorité de certification particulière le fait est de vérifier la chaîne de confiance sur le certificat. Souvent, il y aura un ou même plusieurs certificats CA entre le certificat donné et le certificat CA de confiance racine.
La réponse simple (et plutôt malheureuse) est qu'ils ne le font pas vraiment. Les administrateurs système sont réputés sûrs et sécurisent leurs zones de signature de la même manière que vous sécuriseriez n'importe quel serveur d'entreprise sensible. Dans le cas de l'exécution de CSR, une étape humaine peut être requise, mais rien n'empêche un attaquant déterminé de compromettre un réseau d'autorité de certification s'il y consacre suffisamment de temps et d'efforts. Au plus, il utilise un HSM pour stocker les clés privées, même si je parie que ce n'est pas banal.