Est-il possible de faire confiance à un certificat dans Windows, sans faire confiance à son autorité de certification racine?

13

Est-il possible d'obtenir que Windows approuve un certificat, sans l'obliger à approuver l'autorité de certification racine en tant qu'autorité de certification racine approuvée?

dis que j'ai la chaîne de certificats suivante,

Dept-Root-CA
Dept-Intermediate-1
Server-Certificate

Je veux faire confiance au Server-Certificate, mais je ne veux pas faire confiance à Dept-Root-CA car il pourrait alors signer n'importe quel certificat et mes serveurs lui feraient confiance. Ce n'est pas parce que je suis prêt à faire confiance au certificat sur Server-Certificate pour une opération spécifique que je suis prêt à croire que Dept-Root-CA a été correctement sécurisé.

Merci

bkr
la source
Pourquoi voulez-vous lui faire confiance exactement? HTTPS? Ou autre chose? Il existe des moyens d'indiquer que vous souhaitez accepter un seul certificat sans accepter quoi que ce soit d'autre de l'autorité de certification racine, mais cela dépend de ce que vous faites. (Vous obtiendrez quand même des erreurs si vous essayez de valider le certificat)
Mark Henderson
Essentiellement oui. S'il s'agissait d'un code personnalisé, ce ne serait pas un problème - mais cela utilise ADFS 2 et la seule chose que je puisse faire en ce qui concerne la façon dont il traite les certificats est de changer la façon dont le serveur approuve ce certificat. Il existe également d'autres cas, mais ce n'est que l'exemple actuel.
bkr

Réponses:

5

Non. Tant que le certificat indique "délivré par: xxx", vous devez également faire confiance à xxx, tout au long de la chaîne. S'il s'agit d'un certificat auto-signé, vous pouvez le placer dans le magasin des autorités de certification racines de confiance, et puisqu'il est émis vers et émis par la même entité, il doit alors être approuvé.

Mais non, il n'est généralement pas possible ou conseillé de contourner complètement l'objectif de la sécurité basée sur des certificats.

Ryan Ries
la source
5
J'avais peur de ça. Je ne dirais pas que ce soit un contournement. Ce n'est pas parce que je veux un canal sécurisé pour parler à une machine d'un groupe organisationnel différent que je veux faire confiance à leur autorité de certification.
bkr
D'accord ... mais l'AC a signé ce certificat, et sans ce certificat, l'autre extrémité peut continuer à changer son certificat.
SpacemanSpiff
6
Je ne suis pas sûr de comprendre ce que vous dites. Je veux faire explicitement confiance à leur certificat. S'il a été modifié, je voudrais avoir à nouveau explicitement confiance en lui. Je veux essentiellement le modèle de confiance de certificat comme il en existe dans Firefox. Dans Firefox, si le certificat n'est pas valide sous les autorités de certification de confiance existantes, vous pouvez choisir de lui faire confiance de toute façon - s'il change, vous devrez choisir de faire confiance au nouveau certificat car il n'a pas été explicitement approuvé.
bkr
2
just keep changing their certificateSi l'extrémité distante a changé son certificat, cela ne correspondra pas à celui que vous avez enregistré. Si vous ignorez toutes les activités de CA, ne le traitez-vous pas simplement comme une clé d'hôte SSH.
Zoredache
5
de façon réaliste, ils ne le changeront qu'une fois tous les 2 ans. le produit MS que j'utilise nécessite que la connexion soit sécurisée via https. il faut donc lui faire confiance. parce qu'il est signé avec leur autorité de certification, je devrais faire confiance à leur autorité de certification - je ne veux pas le faire parce que cela leur permettrait d'usurper n'importe quel certificat sur mon serveur, au lieu de leur permettre une interaction limitée avec un nom d'hôte spécifique.
bkr
5

Eh bien ... Vous pouvez capturer ces informations de confiance d'une autre manière.

C'est malheureusement un peu compliqué.

Créez votre propre autorité de certification, puis créez votre propre émetteur de signature croisée pour Dept-Intermediate-1 (ou Dept-Root-CA) en signant leur certificat avec votre autorité de certification, en ajoutant éventuellement des restrictions de domaine. Si le "vrai" Dep-Intermediate-1 est désactivé (de préférence) ou inconnu, Windows utilisera votre chaîne de confiance à la place.

Voir mon autre réponse ici: Restreindre un certificat racine à un domaine

C'est ainsi que les certificats sont censés fonctionner, en utilisant des signatures numériques pour représenter une affirmation de propriété des clés. Puisque vous voulez affirmer que le certificat et la clé appartiennent au serveur, vous le signez vous-même, sous votre autorité, puis dites au système de vous faire confiance.

Il y a encore beaucoup d'utilité dans un certificat sans hiérarchie CA, au-dessus de ce que les clés SSH fournissent; cela tient en partie aux restrictions qui leur sont imposées. Utilisation des clés, dates de validité, informations de révocation, restrictions de domaine, etc. L'autre partie concerne les informations d'identification; serveur propriétaire de la clé, identité de l'émetteur, politiques de l'autorité de certification appliquées, informations de stockage des clés, etc.

davenpcj
la source
C'est intéressant. Je vais devoir trouver du temps pour essayer de travailler à travers ce processus et voir si je peux le faire fonctionner.
bkr