Manuelles Überprüfen von Schannel-Anmeldeinformationen
Standardmäßig überprüft Schannel das Serverzertifikat, indem die WinVerifyTrust-Funktion aufgerufen wird. Wenn Sie dieses Feature jedoch mithilfe des ISC _ REQ _ MANUAL _ CRED _ VALIDATION-Flags deaktiviert haben, müssen Sie das vom Server bereitgestellte Zertifikat überprüfen, der versucht, seine Identität herzustellen.
Um das Serverzertifikat manuell zu überprüfen, müssen Sie es zuerst abrufen. Verwenden Sie die QueryContextAttributes (General)-Funktion, und geben Sie den SECPKG _ ATTR _ REMOTE _ CERT _ CONTEXT-Attributwert an. Dieses Attribut gibt eine CERT _ CONTEXT-Struktur zurück, die das vom Server bereitgestellte Zertifikat enthält. Dieses Zertifikat wird als Blattzertifikat bezeichnet, da es das letzte Zertifikat in der Zertifikatkette ist und am weitesten vom Stammzertifikatentfernt ist.
Mithilfe des Blattzertifikats müssen Sie Folgendes überprüfen:
- Die Zertifikatkette ist vollständig, und der Stamm ist ein Zertifikat einer vertrauenswürdigen Zertifizierungsstelle.
- Die aktuelle Zeit liegt nicht über dem Anfangs- und Enddatum für jedes Zertifikat in der Zertifikatkette hinaus.
- Keines der Zertifikate in der Zertifikatkette wurde widerrufen.
- Die Tiefe des Blattzertifikats liegt nicht tiefer als die maximal zulässige Tiefe, die in der Zertifikaterweiterung angegeben ist. Diese Überprüfung ist nur erforderlich, wenn eine Tiefe angegeben ist.
- Die Verwendung des Zertifikats ist richtig. Ein Clientzertifikat sollte beispielsweise nicht zum Authentifizieren eines Servers verwendet werden.
- Bei der Serverauthentifizierung stimmt die im Blattzertifikat des Servers enthaltene Serveridentität mit dem Server überein, den der Client zu kontaktieren versucht. In der Regel stimmt der Client ein Element im Feld Antragstellername des Zertifikats mit der IP-Adresse oder dem DNS-Namen des Servers überein.