SCHANNEL_CRED Struktur (schannel.h)
Anmerkung
Die SCHANNEL_CRED-Struktur ist veraltet. Sie sollten stattdessen SCH_CREDENTIALS verwenden.
Die SCHANNEL_CRED Struktur enthält die Daten für schannel-Anmeldeinformationen.
Syntax
typedef struct _SCHANNEL_CRED {
DWORD dwVersion;
DWORD cCreds;
PCCERT_CONTEXT *paCred;
HCERTSTORE hRootStore;
DWORD cMappers;
_HMAPPER **aphMappers;
struct _HMAPPER;
DWORD cSupportedAlgs;
ALG_ID *palgSupportedAlgs;
DWORD grbitEnabledProtocols;
DWORD dwMinimumCipherStrength;
DWORD dwMaximumCipherStrength;
DWORD dwSessionLifespan;
DWORD dwFlags;
DWORD dwCredFormat;
} SCHANNEL_CRED, *PSCHANNEL_CRED;
Angehörige
dwVersion
Auf SCHANNEL_CRED_VERSION festgelegt.
cCreds
Die Anzahl der Strukturen im paCred- Array.
paCred
Ein Array von Zeigern auf CERT_CONTEXT Strukturen. Jeder Zeiger gibt ein Zertifikat an, das einen privaten Schlüssel enthält, für die Authentifizierung der Anwendung verwendet werden soll. In der Regel enthält dieses Array eine Struktur für jede von der Anwendung unterstützte Schlüsselaustauschmethode.
Clientanwendungen übergeben häufig eine leere Liste und hängen entweder von Schannel ab, um ein entsprechendes Zertifikat zu finden oder später bei Bedarf ein Zertifikat zu erstellen.
hRootStore
Wahlfrei. Nur für Serveranwendungen gültig. Behandeln Sie einen Zertifikatspeicher, der selbstsignierte Stammzertifikate für Zertifizierungsstellen (CAs) enthält, die von der Anwendung als vertrauenswürdig eingestuft werden. Dieses Mitglied wird nur von serverseitigen Anwendungen verwendet, die eine Clientauthentifizierung erfordern.
cMappers
Reserviert.
aphMappers
Reserviert.
_HMAPPER
cSupportedAlgs
Anzahl der Algorithmen im palgSupportedAlgs Array.
palgSupportedAlgs
Wahlfrei. Ein Zeiger auf ein Array von ALG_ID Algorithmusbezeichnern, die die algorithmen darstellen, die von Verbindungen mit mithilfe dieser Struktur erworbenen Anmeldeinformationen unterstützt werden. Wenn cSupportedAlgs null oder palgSupportedAlgsNULL-ist, verwendet Schannel die Systemstandardwerte.
Derzeit werden die Algorithmusbezeichner CALG_AES, CALG_AES_128und CALG_AES_256 nicht unterstützt.
grbitEnabledProtocols
Wahlfrei. Ein DWORD-, das eine Bitzeichenfolge enthält, die die protokolle darstellt, die von Verbindungen mit mithilfe dieser Struktur erworbenen Anmeldeinformationen unterstützt werden. Wenn dieses Element null ist, wählt Schannel das Protokoll aus. Für die neue Entwicklung sollten Anwendungen grbitEnabledProtocols auf Null festlegen und standardmäßig die auf dem System aktivierten Protokollversionen verwenden.
Dieses Mitglied wird nur vom Microsoft Unified Security Protocol Provider Sicherheitspaketverwendet.
Die globalen Systemregistrierungseinstellungen haben Vorrang vor diesem Wert. Wenn beispielsweise SSL3 in der Registrierung deaktiviert ist, kann es nicht mithilfe dieses Mitglieds aktiviert werden.
Dieses Element kann eine der folgenden Flags enthalten.
dwMinimumCipherStrength
Minimale Verschlüsselungschiffrestärke in Bits, die für Verbindungen zulässig sind.
Wenn dieses Element null ist, verwendet Schannel den Systemstandard. Wenn dieses Mitglied –1 ist, sind nur die NUR SSL3/TLS MAC-Verschlüsselungssammlungen (auch bekannt als NULL Chiffre) aktiviert.
dwMaximumCipherStrength
Maximale Verschlüsselungschiffrestärke in Bits, die für Verbindungen zulässig ist.
Wenn dieses Element null ist, verwendet Schannel den Systemstandard.
Wenn dieses Mitglied –1 ist, sind nur die NUR SSL3/TLS MAC-Verschlüsselungssammlungen (auch bekannt als NULL Chiffre) aktiviert. In diesem Fall muss dwMinimumCipherStrength- auf -1 festgelegt werden.
dwSessionLifespan
Die Anzahl der Millisekunden, die Schannel die Sitzung im Sitzungscache speichert. Nach ablauf dieser Zeit benötigen alle neuen Verbindungen zwischen dem Client und dem Server eine neue Schannel-Sitzung. Legen Sie den Wert dieses Elements auf Null fest, um den Standardwert von 360000000 Millisekunden (zehn Stunden) zu verwenden.
dwFlags
Enthält Bitkennzeichnungen, die das Verhalten von Schannel steuern. Dieses Element kann null oder eine Kombination der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Nur Client.
Diese Kennzeichnung ist das Gegenteil von SCH_CRED_MANUAL_CRED_VALIDATION und ist Teil des Standardverhaltens von Schannel. |
|
Weisen Sie Schannel an, das CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL Flag an die CertGetCertificateChain--Funktion zu übergeben, wenn die angegebenen Anmeldeinformationen während eines Aufrufs von AcquireCredentialsHandle (Schannel)überprüft werden.
Windows Server 2003 und Windows XP/2000: Dieses Flag wird nicht unterstützt. |
|
Nur Server.
Wenn diese Kennzeichnung festgelegt ist, lassen vollständige Handshakes, die mit diesen Anmeldeinformationen ausgeführt werden, keine erneute Verbindung zu. Es wird ein Cacheeintrag erstellt, sodass die Sitzung später mithilfe der ApplyControlToken--Funktion fortgesetzt werden kann. |
|
Ignorieren Sie bei der Überprüfung auf widerrufene Zertifikate CRYPT_E_NO_REVOCATION_CHECK Fehler. Weitere Einschränkungen finden Sie in den Anmerkungen. |
|
Ignorieren Sie bei der Überprüfung auf widerrufene Zertifikate CRYPT_E_REVOCATION_OFFLINE Fehler. Weitere Einschränkungen finden Sie in den Anmerkungen. |
|
Nur Client.
Verhindern, dass Schannel die empfangene Serverzertifikatkette überprüft. |
|
Nur Client.
Verhindern Sie, dass Schannel versucht, automatisch eine Zertifikatkette für die Clientauthentifizierung bereitzustellen. |
|
Nur Client.
Verhindern Sie, dass Schannel den angegebenen Zielnamen mit den Antragstellernamen in Serverzertifikatenvergleicht. |
|
Nur Server.
Verhindern, dass Schannel die integrierten Systemzertifikatzuordnungsfunktionen verwendet, um Clientzertifikate einem Benutzerkonto zuzuordnen. |
|
Überprüfen Sie beim Überprüfen einer Zertifikatkette alle Zertifikate auf sperrung. Weitere Einschränkungen finden Sie in den Anmerkungen. |
|
Überprüfen Sie beim Überprüfen einer Zertifikatkette nicht den Stamm auf sperrung. Weitere Einschränkungen finden Sie in den Anmerkungen. |
|
Überprüfen Sie beim Überprüfen einer Zertifikatkette nur das letzte Zertifikat auf sperrung. Weitere Einschränkungen finden Sie in den Anmerkungen. |
|
Nur Client.
Schannel versucht, automatisch eine Zertifikatkette für die Clientauthentifizierung bereitzustellen. Dieser Wert ist das Gegenteil von SCH_CRED_NO_DEFAULT_CREDS. |
|
Weisen Sie Schannel an, Daten aufzuteilen, die in zwei separaten Datensätzen verschlüsselt werden sollen, um Schwäche zu bekämpfen, die im SSL/TLS-Protokoll vorhanden sind, wenn sie mit symmetrischen Chiffrechiffre-Suite mithilfe des Verschlüsselungsblockverkettungsmodus verwendet werden. Weitere Informationen finden Sie unter Sicherheitsanfälligkeit in SSL/TLS könnte die Offenlegung von Informationenzulassen.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP und Windows XP/2000: Dieses Flag wird nicht unterstützt. |
|
Schannel sendet das Stammzertifikat als Teil der Zertifikatnachricht.
Hinweis Das über das Netzwerk gesendete Stammzertifikat vom Schannel-Client oder -Server ist nicht vertrauenswürdig. Es sollte anhand eines vertrauenswürdigen Hashs des Stammzertifikats überprüft werden.
|
|
Weist Schannel an, bekannte schwache kryptografische Algorithmen, Verschlüsselungssammlungen und SSL/TLS-Protokollversionen zu deaktivieren, die andernfalls für eine bessere Interoperabilität aktiviert werden können. |
|
Weist Schannel an, nur PSK-Verschlüsselungssammlungen auszuwählen und alle anderen Verschlüsselungssammlungen zu deaktivieren. |
dwCredFormat
Kernelmodus Schannel unterstützt die folgenden Werte.
Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP und Windows XP/2000: Dieses Flag wird nicht unterstützt und muss null sein.
Wert | Bedeutung |
---|---|
|
Das paCred Element der übergebenen SCHANNEL_CRED Struktur muss ein Zeiger auf ein Bytearray mit der Länge 20 sein, das den Zertifikatfingerabdruck enthält. Das Zertifikat wird angenommen, dass es sich im Speicher "MY" des lokalen Computers befindet. |
|
Das paCred- Element der SCHANNEL_CRED-Struktur verweist auf eine SCHANNEL_CERT_HASH_STORE Struktur. |
Bemerkungen
Die folgenden Zertifikatsperrkennzeichnungen schließen sich gegenseitig aus.
- SCH_CRED_REVOCATION_CHECK_CHAIN
- SCH_CRED_REVOCATION_CHECK_END_CERT
- SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Verwenden Sie die folgenden Flags, um die Zertifikatsperrfehlerberichterstattung für Schannel anzupassen:
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK
- SCH_CRED_IGNORE_REVOCATION_OFFLINE
Wenn Schannel den Sperrstatus einer Zertifikatkette überprüft, weisen diese Flags an, alle CRYPT_E_NO_REVOCATION_CHECK bzw. CRYPT_E_REVOCATION_OFFLINE Fehler zu ignorieren. Diese Flags werden ignoriert, wenn kein Zertifikatsperrflagge festgelegt ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8.1 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2012 R2 [nur Desktop-Apps] |
Header- | schannel.h (include Schnlsp.h) |