Question:
Dois-je changer la clé privée lors du renouvellement d'un certificat?
Commander Keen
2013-01-10 14:17:23 UTC
view on stackexchange narkive permalink

Mon service de sécurité insiste pour que je (l'administrateur système) crée une nouvelle clé privée lorsque je souhaite renouveler un certificat SSL pour nos serveurs Web. Ils prétendent que c'est la meilleure pratique, mais mes tentatives de recherche sur Google n'ont pas réussi à vérifier leur demande. Quelle est la bonne méthode?

La méthode la plus proche que j'ai trouvée est Dois-je régénérer une nouvelle clé privée SSL chaque année?, mais cela n'explique pas vraiment pourquoi il serait nécessaire de changer les clés.

Je sais que ce n'est pas un gros problème de changer les clés pendant que j'y suis, mais je n'ai jamais été du genre à faire ce qu'on me dit sans raison ou explication :)

Personnellement, j'ai été vraiment surpris que les CA autorisent même le renouvellement avec la même clé.
Fait intéressant, comme @Thomas Pornin le mentionne ci-dessous, le même service de sécurité `` n'insistera pas pour générer de nouvelles clés chaque année pour leurs serveurs SSH, même si la situation est similaire, d'un point de vue de la sécurité ''. les fichiers .ssh / known_hosts des clients.
Dix réponses:
Polynomial
2013-01-10 15:07:39 UTC
view on stackexchange narkive permalink

Je dirais que leur suggestion n'est pas très solide, à moins que vous n'utilisiez des tailles de clé horriblement petites - auquel cas vous avez un problème complètement différent.

Une clé de 2048 bits, par la plupart des estimations, vous gardera en sécurité au moins jusqu'en 2020, sinon plus longtemps. Si vous utilisez des clés de 1024 bits ou moins, vous êtes en dessous de la norme et je recommande la mise à jour immédiate vers 2048 bits. Si vous utilisez actuellement des clés de 1536 bits, vous devriez être en sécurité pendant un an ou deux.

Bien sûr, tout cela est académique. La probabilité que quelqu'un soit capable (ou enclin) à déchiffrer votre clé SSL de 1024 bits en un an est extrêmement faible.

Comme mentionné dans la question que vous avez liée, il y a des avantages et des inconvénients.

  • Donne moins de temps à un attaquant pour casser la clé. Un peu discutable si vous utilisez de toute façon des tailles de clé raisonnables.
  • Arrête tous les malfaiteurs qui pourraient avoir compromis votre clé privée. Peu probable, mais inconnu.
  • Vous donne la possibilité d'augmenter la taille de votre clé pour être en avance sur la courbe.

Inconvénients

  • Ne vous donne pas vraiment de protection concrète contre le piratage de clés, sauf si vous utilisez des clés terriblement petites.
  • Les plugins de vérification SSL / anti-MitM pour les navigateurs peuvent alerter l'utilisateur que le la clé a changé. C'est, à mon avis, un faible inconvénient - la plupart des utilisateurs ne l'utiliseront pas.
  • Cela pourrait provoquer des avertissements temporaires en relation avec des politiques et des mises en œuvre HSTS plus strictes.
  • Cela demande du travail. Vous pourriez faire autre chose.

Donc, des deux côtés, il y a des raisons faibles, et quelques cas secondaires que vous devrez peut-être considérer. Je pencherais légèrement vers l'angle «ne le fais pas sauf si tu as besoin de», tant que tu utilises des clés de 2048 bits ou plus.

Le plus important est de leur demander pourquoi ils pensent que c'est nécessaire - il se peut que vous ayez une raison liée à l'infrastructure pour mettre à jour les clés que nous ne connaissons pas. S'ils ne parviennent pas à trouver un argument solide ("pourquoi pas?" N'est pas vraiment valable), ils devraient probablement réévaluer leurs conseils.

Pourquoi l'utilisation d'une nouvelle paire de clés dans le certificat nécessitait-elle beaucoup plus de travail qu'un renouvellement avec la même clé?
@CodesInChaos Ce n'est pas le cas, mais la mise à jour des certificats clients associés est certainement beaucoup plus de travail. Si je me souviens bien, lorsque vous mettez à jour le certificat du serveur sans changer la clé, vous pouvez conserver tous les certificats client sans problème. Mais si vous modifiez la clé, vous devez également renouveler tous les certificats client.
De plus, vous aurez souvent besoin d'un redémarrage complet de votre serveur Web (en référence à Apache, mais en supposant que d'autres nécessiteraient la même chose) si vous modifiez votre clé, mais vous pouvez faire un redémarrage progressif (pas de temps d'arrêt) si vous ne modifiez que le certificat . Bien sûr, tout cela pourrait être atténué par un environnement HA, mais quand même ...
@SteelCityHacker Cela ne devient un problème que si vous exécutez un site avec des milliers de visites par minute. Dans la plupart des cas, vous pourriez être malchanceux et recevoir une seule requête lors du redémarrage du service Apache, car il est si rapide.
Il est important de noter que la perte silencieuse de contrôle de la clé est un autre risque. Êtes-vous certain que personne n'a mal géré un serveur au cours des dernières années d'une manière qui aurait pu divulguer une clé? Que personne n'a de copie? Nouveau certificat, nouvelle clé. Redémarrer cette horloge est généralement ** plus ** que le risque que quelqu'un factorise votre clé, quelle que soit la taille de la clé.
Dans la plupart des cas, personne ne se soucie si vous redémarrez votre serveur au milieu de la nuit
Thomas Pornin
2013-01-10 18:10:13 UTC
view on stackexchange narkive permalink

Changer la clé privée n'est pas une meilleure pratique, c'est une pratique répandue ; cela a en fait très peu à voir avec la sécurité, et beaucoup à voir avec la manière dont les autorités de certification gèrent les renouvellements de certificats, c'est-à-dire la plupart du temps comme un nouveau certificat, avec une nouvelle génération de clé privée. Il est plus simple, côté CA , de ne rien faire de spécial pour un renouvellement. D'où l'habitude de changer les clés.

Les mêmes administrateurs système n'insisteront pas pour générer de nouvelles clés chaque année pour leurs serveurs SSH, même si la situation est similaire, à partir d'un point de sécurité de vue. Ou, plus précisément, changer une clé de serveur SSH est un peu gênant car cela casse les fichiers .ssh / known_hosts des clients. Par conséquent, il est habituel d'éviter de modifier les clés du serveur SSH. Ainsi, les clés de serveur SSH ont une longue durée de vie. Personne ne manque vraiment un battement de cœur à ce sujet. Pourquoi devraient-ils s'inquiéter des clés SSL de puissance cryptographique similaire?

La meilleure pratique consiste à changer la clé lorsque les progrès technologiques ont rendu votre clé quelque peu vulnérable, en tenant compte de la paranoïa générale (souvent appelé «pour des raisons de conformité»); vous considérez donc que pour le moment, en 2013, une clé RSA de 1024 bits devrait être remplacée par une clé plus longue, même si nous sommes encore loin de pouvoir casser une telle clé. Si votre clé RSA est de 1536 bits ou plus, il n'y a aucune raison cryptographique d'en créer une nouvelle (mais, là encore, il est peut-être juste plus pratique de la changer, côté CA).

Le renouvellement d'un certificat CA (vs la création d'un nouveau) complique-t-il la construction ou la validation du chemin?
Nous parlons ici du certificat serveur, c'est-à-dire d'un certificat d'entité finale, pas d'un certificat CA. Le renouvellement d'un certificat _CA_ tout en conservant la même clé a l'avantage de le rendre immédiatement applicable aux certificats qui ont été émis avec le certificat CA précédent, il est donc nominalement _ bon_ et rend les transitions plus fluides. Cela rend la construction des chemins un peu plus complexe, mais les implémentations y font généralement face sans aucun problème (cependant, cela déroute certains administrateurs réseau).
@ThomasPornin SSH a des échanges de clés entièrement secrets, mais pas SSL.Pensez-vous que cela fait une différence dans cet argument?
@AlexWebr Cela ne devrait pas faire de différence.Dans les réseaux modernes, les attaquants qui peuvent espionner sont également bien placés pour lancer une attaque MitM, ce qui rend l'avantage du secret de transmission plutôt mineur.
Bob Jones
2013-01-11 21:08:51 UTC
view on stackexchange narkive permalink

La réponse n'est ni technique ni cryptographique, elle concerne les personnes. Avec des choses comme les changements de travail (entendu parler d'administrateurs mécontents?), Les migrations de serveurs, les tests DR, les sauvegardes et autres clés privées peuvent devenir un peu exposées.

Compte tenu de ce qui précède, le renouvellement des clés est une bonne pratique de sécurité.

C'est en fait un bon point, qui n'est soulevé dans aucune autre réponse. Beaucoup de gens ont accès à la clé au fil du temps, pourquoi ne pas la changer? Comme vous changez un code de porte quand un employé part? (Tu fais ça, non?)
CodesInChaos
2013-01-10 15:33:19 UTC
view on stackexchange narkive permalink

Ne vous inquiétez pas si quelqu'un factorise votre clé RSA. La factorisation d'une clé RSA de 1024 bits peut être possible pour les adversaires au niveau de l'état, mais même pour eux, ce n'est probablement pas rentable. La factorisation des clés 2048 bits ne sera probablement pas possible avant quelques décennies.

Je m'inquiéterais principalement du vol de votre clé privée lors d'un compromis de serveur. Le gain en cas de compromis passés n'est pas clair, car l'attaquant peut avoir des logiciels malveillants persistants sur votre serveur. Vous devrez donc réinstaller le serveur pour sécuriser la nouvelle clé.

Un autre problème est que certaines suites SSL faibles (principalement la famille de chiffrement RSA ) utilisent votre long terme clé pour la confidentialité, et pas seulement pour l'authentification. Avec ceux-ci, un compromis de la clé de votre serveur permet le décryptage de toutes les communications SSL passées avec votre serveur qui utilisait une suite aussi faible. L'utilisation d'une nouvelle clé et la suppression sécurisée de l'ancienne limite l'impact d'une telle attaque.

Donc, si votre serveur a toujours ces suites activées, je recommande fortement de changer la clé régulièrement.

Bien que je n'utilise pas de clés RSA 1024 bits, ce point est tout à fait exact.Le vrai danger ne réside pas dans la faiblesse cryptographique des algorithmes standards, mais dans les vulnérabilités logicielles exploitables et les personnes qui gèrent le serveur.
jorfus
2016-02-17 01:50:38 UTC
view on stackexchange narkive permalink
  • Avez-vous changé vos clés après HeartBleed?
  • Que font les techniciens de votre centre de données avec des disques durs défectueux?
  • Quelqu'un a-t-il quitté l'organisation opérationnelle au cours de la dernière année ?
  • À quand remonte la dernière rotation des mots de passe administrateur et des clés ssh?

Toutes ces questions devraient vous amener à réfléchir à l'intégrité de vos clés. Je ne dis pas qu'il est probable qu'ils soient compromis ou que quiconque pourra en abuser. J'essaie de vous amener à réfléchir aux raisons pour lesquelles vous pourriez vouloir les faire pivoter.

La rotation des clés devrait être très facile et constitue une bonne hygiène de sécurité. Si vous ne le faites pas parce que c'est difficile, c'est un problème sérieux. Construisez les outils et les processus pour vous faciliter la tâche. Si vous ne le faites pas, vous finirez par échouer dans la rotation des choses beaucoup plus importantes.

Dinu
2013-01-10 14:55:57 UTC
view on stackexchange narkive permalink

Plus vous utilisez une clé, plus vous donnez de temps à un attaquant. Même si la rupture de 2048 bits n'est pas considérée comme possible avec la technologie actuelle, être extrêmement prudent et remplacer la clé n'est pas du tout une mauvaise chose.

De plus, quelqu'un aurait pu obtenir votre clé privée, sans que vous ayez pu la détecter. S'il ne peut pas répéter l'action, alors l'avantage du renouvellement est très clair.

Tim X
2013-01-11 13:00:10 UTC
view on stackexchange narkive permalink

Bien que je reconnaisse qu'il y a peu de raisons techniques de générer de nouvelles clés chaque fois que vous renouvelez un certificat, je ne mettrais pas immédiatement au défi votre équipe / responsables de sécurité et ne les appellerais pas.

Il peut y avoir des raisons non techniques qui sont tout aussi valables pour générer de nouvelles clés. Par exemple, dans une grande organisation où il existe différents niveaux de centralisation informatique, de compétences, de procédures et de bonnes pratiques, une zone de gestion de la sécurité centralisée peut exiger de telles pratiques pour aider à atténuer certains des risques. maniable. Si des procédures plus complexes peuvent être plus correctes d'un point de vue technique, elles sont plus difficiles à documenter et font qu'il est plus difficile pour le personnel de savoir qu'il les suit correctement. À condition que la pratique ne crée pas de frais généraux importants, il peut être plus facile d'adopter et de maintenir l'approche plus simple toujours X.

Pensez-y sous un autre angle. Tous les membres de votre organisation qui ont la responsabilité de gérer les certificats ont-ils la même conscience et la même compréhension des problèmes que vous et sont-ils aussi consciencieux / dévoués? Quel est le niveau de rotation du personnel et dans quelle mesure faut-il s'inquiéter de la quantité de données sensibles auxquelles les anciens employés peuvent avoir accès, etc.

Chaque fois que l'on considère la sécurité, le facteur humain est presque toujours aussi important ou plus important que les seuls aspects techniques. Les politiques et procédures doivent tenir compte de l'élément humain et essayer de garantir que ces politiques et procédures sont structurées de manière à permettre au personnel de faire ce qu'il faut, même s'il ne comprend pas parfaitement pourquoi il doit le faire.

Jason
2017-11-16 23:27:03 UTC
view on stackexchange narkive permalink

SP 800-57, partie 1 révisée, recommandation pour la gestion des clés

Les recommandations du NIST sur les cryptopériodes RSA semblent durer de 1 à 2 ans.

Juste au cas où pour les futures personnes, dans la 4ème révision, un tableau astucieux peut être trouvé à la page 45 (ou section 5.3.6) avec diverses informations sur les cryptopériodes
Luc
2013-01-10 14:48:23 UTC
view on stackexchange narkive permalink

C'est vraiment la même chose que de changer de mot de passe. Si quelqu'un est en train de déchiffrer votre mot de passe lorsque vous le modifiez, il devra recommencer. Ou si le mot de passe, ou la clé privée, a été volé, le renouvellement invaliderait leur clé volée (en supposant qu'ils ne peuvent pas facilement la voler à nouveau).

Cela pourrait être une bonne habitude de changer la clé privée chaque année ou toutes les quelques années juste pour que vous sachiez qu'il ne cassera rien lorsque vous aurez besoin de le changer, mais ce n'est pas nécessaire pour la sécurité du certificat en soi.

Il y a des raisons * de ne pas * le faire, cependant.
jorfus
2016-02-18 07:19:43 UTC
view on stackexchange narkive permalink

Plusieurs personnes ont évoqué le fait que les clés d'hôte ssh sont rarement tournées comme argument pour ne pas faire pivoter les clés ssl. Cela semble être un autre problème à résoudre. (Je m'excuse pour une réponse légèrement hors sujet, mais plusieurs personnes ici l'ont mentionnée, donc cela semble approprié)

Voir ma réponse ci-dessus pour pourquoi on pourrait souhaiter faire pivoter les clés.

Ce qui suit sera particulièrement utile pour tous ceux qui, pour des raisons de conformité, doivent faire pivoter les clés d'hôte ssh, mais qui s'inquiètent de l'impact de la convivialité sur les utilisateurs finaux.

1) Déployez un ssh_ca (Instructions remarquablement complètes dans man ssh-keygen)

  ssh-keygen -f ssh_ca -b 4096  

2) Distribuez le certificat à vos utilisateurs: Ajoutez une ligne d'autorité de certification à ~ / .ssh / known_hosts

  @ cert-authority * .domain.name ssh-rsa AAAAB3 [...] == Comment  

3) Signez vos clés d'hôte (assurez-vous de limiter chacune à un hôte individuel)

  ssh-keygen -s ssh_ca -I host.domain.name -h -n host.domain .name -V + 52w /etc/ssh/ssh_host_rsa_key.pub  

4) Configurer le (s) serveur (s) pour présenter le certificat (/ etc / ssh / sshd_config):

  HostCertificate / etc / ss h / ssh_host_rsa_key-cert.pub  

Toute clé d'hôte signée par l'AC est désormais approuvée par le client (plus d'accepter aveuglément une clé sig la première fois que vous vous connectez)

Le roulement de la clé d'hôte peut désormais être effectué sans interruption pour les clients. La signature de clé peut être intégrée au processus de compilation / orchestration de l'hôte.

Ceci est une bonne référence. Ce projet a créé des outils utiles pour l'utilisation de ssh_ca pour un accès utilisateur à expiration automatique.

Si je comprends bien, vous faites pivoter les clés d'hôte, mais pas l'autorité de certification ...?Qu'est-ce que cela résout exactement?
Cela crée une chaîne de confiance par laquelle l'utilisateur n'a plus simplement à faire confiance aveuglément aux nouvelles clés d'hôte.Dans un environnement où les hôtes sont constamment tournés de haut en bas, la vérification de la clé d'hôte est inutile car les utilisateurs sont formés à ignorer simplement l'avertissement.Cette solution permet à un gestionnaire de configuration de signer les clés de nouveaux hôtes autorisés permettant à l'utilisateur de faire confiance aux clés signées par l'autorité de certification.Un hôte non autorisé présentera un avertissement exploitable.Si vous devez remplacer l'autorité de certification ou faire pivoter la clé, vous devez mettre à jour l'identité de l'autorité de certification signataire sur chaque client.(avec votre MDM peut-être)


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...