Ich benutze eine Smartcard, um den Benutzer zu authentifizieren. Ich habe einen Authentifizierungsdienst (SecurityTokenService), der die Authentifizierungslogik auf dem Server behandelt.Benötigen wir immer ein Stammzertifikat, das auf der Maschine installiert ist?
Ich verwende X509Certificate2.Verify(), um das Zertifikat zu validieren. Da diese API überprüfen kann, ob das Zertifikat gültig/widerrufen ist, indem Sie online gehen und die Zertifizierungsstelle kontaktieren, benötige ich ein Stammzertifikat auf dem Server?
Können wir vermeiden, ein Stammzertifikat auf unserem lokalen Computer zu haben? Oder Root-Zertifikat ist immer obligatorisch?
Seltsame Antwort CSharpLearner: In den meisten Fällen müssen Sie nicht explizit auf ein * root * -Zertifikat überprüfen, was Sie brauchen, ist eine Kette, die * explizit vertrauenswürdig ist *. Normalerweise vertrauen Sie nur Rootzertifikaten auf einem System, aber Sie können stattdessen auch jedem Zwischenzertifikat oder Endbenutzerzertifikat vertrauen. Das bedeutet nicht, dass diese Antwort für dieses spezielle Framework * falsch ist, aber es gilt sicherlich nicht für andere Frameworks ... –
@owlstead: Danke für deinen Kommentar; es ist hilfreich. Was ich geschrieben habe, ist meine Beobachtung nach ein paar Versuchen. Wenn das gültige Root-Zertifikat auf Ihrem Rechner vorhanden ist, erhalten Sie eine absolut korrekte Validierung ohne Nachrichten/Status wie 'PartialChain'. Nachdem dies gesagt wurde, ob jemand die gesamte Kette (einschließlich Stammzertifikat) validieren möchte oder nicht, ist eine Frage der Anforderung und der Wahl. Nur aus Neugier: Was, wenn das Root-Zertifikat selbst widerrufen wird? Oder ist es etwas, das unmöglich ist? Wenn nein, sollten wir nicht auch root cert validieren? – Learner
Normalerweise widerrufen Sie nur Zertifikate mit der Seriennummer; Selbstsignierte (Root-) Zertifikate werden normalerweise "Out-of-Band" behandelt - dazu gehört auch das Entziehen des Zertifikats. In einer guten CA-Struktur wird der private Schlüssel des Stammzertifikats nur hin und wieder verwendet, um neue CAs zu erstellen und für diese hin und wieder eine CRL zu erstellen. irgendwo. Die Wahrscheinlichkeit, dass es kompromittiert wird, sollte also ziemlich gering sein. –