Freigeben über


Manuelles Überprüfen von Schannel-Anmeldeinformationen

Standardmäßig überprüft Schannel das Serverzertifikat durch Aufrufen der WinVerifyTrust-Funktion . Wenn Sie dieses Feature jedoch mithilfe des ISC_REQ_MANUAL_CRED_VALIDATION-Flags deaktiviert haben, müssen Sie das Zertifikat überprüfen, das vom Server bereitgestellt wird, der versucht, seine Identität festzulegen.

Zum manuellen Überprüfen des Serverzertifikats müssen Sie es zuerst abrufen. Verwenden Sie die Funktion QueryContextAttributes (General), und geben Sie den SECPKG_ATTR_REMOTE_CERT_CONTEXT-Attributwert an. Dieses Attribut gibt eine CERT_CONTEXT-Struktur mit der vom Server bereitgestellten Zertifikatkette zurück. Diese Zertifikatkette enthält das Blattzertifikat. Es wird als Blattzertifikat bezeichnet, da es das letzte Zertifikat in der Zertifikatkette ist und am weitesten vom Stammzertifikat entfernt ist. Die Zertifikatreihenfolge im SSPI-Kontextpuffer impliziert keine Beziehung zur Zertifikatskette.

Mithilfe des Blattzertifikats müssen Sie Folgendes überprüfen:

  • Die Zertifikatkette ist abgeschlossen, und der Stamm ist ein Zertifikat einer vertrauenswürdigen Zertifizierungsstelle (CA).
  • Die aktuelle Uhrzeit liegt nicht über das Anfangs- und Enddatum für jedes der Zertifikate in der Zertifikatkette hinaus.
  • Keines der Zertifikate in der Zertifikatkette wurde widerrufen.
  • Die Tiefe des Blattzertifikats ist nicht tiefer als die in der Zertifikaterweiterung angegebene maximal zulässige Tiefe. Diese Überprüfung ist nur erforderlich, wenn eine Tiefe angegeben ist.
  • Die Verwendung des Zertifikats ist richtig, z. B. sollte ein Clientzertifikat nicht zur Authentifizierung 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 gleicht der Client ein Element im Feld Antragstellername des Zertifikats mit der IP-Adresse oder dem DNS-Namen des Servers ab.