SCHANNEL_CRED-Struktur (schannel.h)

Hinweis

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;

Member

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, der bei der Authentifizierung der Anwendung verwendet werden soll. In der Regel enthält dieses Array eine Struktur für jede Schlüsselaustauschmethode, die von der Anwendung unterstützt wird.

Clientanwendungen übergeben häufig eine leere Liste und sind entweder von Schannel abhängig, um ein geeignetes Zertifikat zu finden, oder erstellen Sie bei Bedarf später ein Zertifikat.

hRootStore

Optional. Gilt nur für Serveranwendungen. Behandeln Sie einen Zertifikatspeicher, der selbstsignierte Stammzertifikate für Zertifizierungsstellen enthält, die von der Anwendung als vertrauenswürdig eingestuft werden. Dieser Member wird nur von serverseitigen Anwendungen verwendet, die eine Clientauthentifizierung erfordern.

cMappers

Reserviert.

aphMappers

Reserviert.

_HMAPPER

cSupportedAlgs

Anzahl der Algorithmen im PalgSupportedAlgs-Array .

palgSupportedAlgs

Optional. Ein Zeiger auf ein Array von ALG_ID Algorithmusbezeichnern, die die Algorithmen darstellen, die von Verbindungen unterstützt werden, die mit Anmeldeinformationen hergestellt werden, die mithilfe dieser Struktur abgerufen wurden. Wenn cSupportedAlgs null oder palgSupportedAlgsNULL ist, verwendet Schannel die Systemstandardwerte.

Derzeit werden die Algorithmusbezeichner CALG_AES, CALG_AES_128 und CALG_AES_256 nicht unterstützt.

grbitEnabledProtocols

Optional. Ein DWORD , das eine Bitzeichenfolge enthält, die die Protokolle darstellt, die von Verbindungen unterstützt werden, die mit Anmeldeinformationen hergestellt werden, die mithilfe dieser Struktur abgerufen wurden. Wenn dieser Member null ist, wählt Schannel das Protokoll aus. Für die Neuentwicklung 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-Sicherheitspaket verwendet.

Die Einstellungen der globalen Systemregistrierung haben Vorrang vor diesem Wert. Wenn z. B. SSL3 in der Registrierung deaktiviert ist, kann es nicht mit diesem Member aktiviert werden.

Dieses Element kann eines der folgenden Flags enthalten.

Wert Bedeutung
SP_PROT_PCT1_SERVER
0x00000001
Private Communications Technology 1.0 serverseitig.
Hinweis Veraltet.
 
SP_PROT_PCT1_CLIENT
0x00000002
Private Communications Technology 1.0-Clientseite.
Hinweis Veraltet.
 
SP_PROT_SSL2_SERVER
0x00000004
Secure Sockets Layer 2.0-Serverseite. Ersetzt durch SP_PROT_TLS1_SERVER.
Wichtig Secure Sockets Layer 2.0- und Transport Layer Security 1.2-Flags schließen sich gegenseitig aus.
 
Windows 10, Version 1607 und Windows Server 2016.: Der Support endet.
SP_PROT_SSL2_CLIENT
0x00000008
Secure Sockets Layer 2.0-Clientseite. Ersetzt durch SP_PROT_TLS1_CLIENT.
Wichtig Secure Sockets Layer 2.0- und Transport Layer Security 1.2-Flags schließen sich gegenseitig aus.
 
Windows 10, Version 1607 und Windows Server 2016.: Der Support endet.
SP_PROT_SSL3_SERVER
0x00000010
Secure Sockets Layer 3.0-Serverseite.
SP_PROT_SSL3_CLIENT
0x00000020
Secure Sockets Layer 3.0-Clientseite.
SP_PROT_TLS1_SERVER
0x00000040
Transport Layer Security 1.0-Serverseite.
SP_PROT_TLS1_CLIENT
0x00000080
Transport Layer Security 1.0-Clientseite.
SP_PROT_TLS1_0_SERVER
SP_PROT_TLS1_SERVER
Transport Layer Security 1.0-Serverseite.
SP_PROT_TLS1_0_CLIENT
SP_PROT_TLS1_CLIENT
Transport Layer Security 1.0-Clientseite.
SP_PROT_TLS1_1_SERVER
0x00000100
Transport Layer Security 1.1-Serverseite.
SP_PROT_TLS1_1_CLIENT
0x00000200
Transport Layer Security 1.1-Clientseite.
SP_PROT_TLS1_2_SERVER
0x00000400
Transport Layer Security 1.2-Serverseite.
Wichtig Secure Sockets Layer 2.0- und Transport Layer Security 1.2-Flags schließen sich gegenseitig aus.
 
SP_PROT_TLS1_2_CLIENT
0x00000800
Transport Layer Security 1.2-Clientseite.
Wichtig Secure Sockets Layer 2.0- und Transport Layer Security 1.2-Flags schließen sich gegenseitig aus.
 
SP_PROT_TLS1_3_SERVER
0x00001000
Transport Layer Security 1.3-Serverseite.
Wichtig Secure Sockets Layer 2.0- und Transport Layer Security 1.2-Flags schließen sich gegenseitig aus.
 
SP_PROT_TLS1_3_CLIENT
0x00002000
Transport Layer Security 1.3-Clientseite.
Wichtig Secure Sockets Layer 2.0- und Transport Layer Security 1.3-Flags schließen sich gegenseitig aus.
 
SP_PROT_DTLS_SERVER
0x00010000
Datagram Transport Layer Security-Serverseite.

Windows 8 und Windows Server 2012: Unterstützung hinzugefügt.

SP_PROT_DTLS_CLIENT
0x00020000
Datagram Transport Layer Security-Clientseite.

Windows 8 und Windows Server 2012: Unterstützung hinzugefügt.

SP_PROT_DTLS1_0_SERVER
SP_PROT_DTLS1_SERVER
Datagram Transport Layer Security 1.0-Serverseite.

Windows 8 und Windows Server 2012: Unterstützung hinzugefügt.

SP_PROT_DTLS1_0_CLIENT
SP_PROT_DTLS1_CLIENT
Datagram Transport Layer Security 1.0-Clientseite.

Windows 8 und Windows Server 2012: Unterstützung hinzugefügt.

SP_PROT_DTLS1_2_SERVER
0x00040000
Datagram Transport Layer Security 1.2-Serverseite.

Windows 10, Version 1607 und Windows Server 2016.: Unterstützung hinzugefügt.

SP_PROT_DTLS1_2_CLIENT
0x00080000
Datagram Transport Layer Security 1.2-Clientseite.

Windows 10, Version 1607 und Windows Server 2016.: Unterstützung hinzugefügt.

SP_PROT_DTLS1_X_SERVER
Datagram Transport Layer Security alle unterstützten Versionen serverseitig.

Windows 10, Version 1607 und Windows Server 2016.: Unterstützung hinzugefügt.

SP_PROT_DTLS1_X_CLIENT
Datagram Transport Layer Security alle unterstützten Versionen clientseitig.

Windows 10, Version 1607 und Windows Server 2016.: Unterstützung hinzugefügt.

dwMinimumCipherStrength

Minimale Verschlüsselungsstärke für Massenverschlüsselung in Bits, zulässig für Verbindungen.

Wenn dieser Member null ist, verwendet Schannel den Systemstandard. Wenn dieser Member "-1" ist, werden nur die REIN-Verschlüsselungssammlungen SSL3/TLS (auch als NULL-Verschlüsselung bezeichnet) aktiviert.

dwMaximumCipherStrength

Maximale Verschlüsselungsstärke für Massenverschlüsselung in Bits, zulässig für Verbindungen.

Wenn dieser Member null ist, verwendet Schannel den Systemstandard.

Wenn dieser Member "-1" ist, werden nur die REIN-Verschlüsselungssammlungen SSL3/TLS (auch als NULL-Verschlüsselung bezeichnet) aktiviert. In diesem Fall muss dwMinimumCipherStrength auf –1 festgelegt werden.

dwSessionLifespan

Die Anzahl der Millisekunden, mit denen Schannel die Sitzung im Sitzungscache speichert. Nach Ablauf dieser Zeit ist für alle neuen Verbindungen zwischen Client und Server eine neue Schannel-Sitzung erforderlich. Legen Sie den Wert dieses Elements auf null fest, um den Standardwert von 360000000 Millisekunden (zehn Stunden) zu verwenden.

dwFlags

Enthält Bitflags, die das Verhalten von Schannel steuern. Dieser Member kann null oder eine Kombination der folgenden Werte sein.

Wert Bedeutung
SCH_CRED_AUTO_CRED_VALIDATION
0x00000020
Nur Client.

Dieses Flag ist das Gegenteil von SCH_CRED_MANUAL_CRED_VALIDATION und Teil des Standardverhaltens von Schannel.

SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE
0x00020000
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.

SCH_CRED_DISABLE_RECONNECTS
0x00000080
Nur Server.

Wenn dieses Flag festgelegt ist, lassen vollständige Handshakes, die mit diesen Anmeldeinformationen ausgeführt werden, keine erneuten Verbindungen zu. Ein Cacheeintrag wird erstellt, sodass die Sitzung später mithilfe der ApplyControlToken-Funktion fortgesetzt werden kann.

SCH_CRED_IGNORE_NO_REVOCATION_CHECK
0x00000800
Wenn Sie nach widerrufenen Zertifikaten suchen, ignorieren Sie CRYPT_E_NO_REVOCATION_CHECK Fehler. Weitere Einschränkungen finden Sie unter Hinweise.
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
Wenn Sie nach gesperrten Zertifikaten suchen, ignorieren Sie CRYPT_E_REVOCATION_OFFLINE Fehler. Weitere Einschränkungen finden Sie unter Hinweise.
SCH_CRED_MANUAL_CRED_VALIDATION
0x00000008
Nur Client.

Verhindern, dass Schannel die empfangene Serverzertifikatkette überprüft.

SCH_CRED_NO_DEFAULT_CREDS
0x00000010
Nur Client.

Verhindern Sie, dass Schannel versucht, automatisch eine Zertifikatkette für die Clientauthentifizierung anzugeben.

SCH_CRED_NO_SERVERNAME_CHECK
0x00000004
Nur Client.

Verhindern, dass Schannel den angegebenen Zielnamen mit den Antragstellernamen in Serverzertifikaten vergleicht.

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
Nur Server.

Verhindern Sie, dass Schannel die integrierten Systemzertifikatzuordnungsfunktionen zum Zuordnen von Clientzertifikaten zu einem Benutzerkonto verwendet.

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
Überprüfen Sie beim Überprüfen einer Zertifikatkette alle Zertifikate auf Sperrung. Weitere Einschränkungen finden Sie unter Hinweise.
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
Überprüfen Sie beim Überprüfen einer Zertifikatkette den Stamm nicht auf Sperrung. Weitere Einschränkungen finden Sie unter Hinweise.
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
Überprüfen Sie beim Überprüfen einer Zertifikatkette nur das letzte Zertifikat auf Sperrung. Weitere Einschränkungen finden Sie unter Hinweise.
SCH_CRED_USE_DEFAULT_CREDS
0x00000040
Nur Client.

Schannel versucht, automatisch eine Zertifikatkette für die Clientauthentifizierung anzugeben. Dieser Wert ist das Gegenteil von SCH_CRED_NO_DEFAULT_CREDS.

SCH_SEND_AUX_RECORD
0x00200000
Weisen Sie Schannel an, die zu verschlüsselnden Daten in zwei separate Datensätze aufzuteilen, um Schwäche im SSL/TLS-Protokoll zu beheben, wenn sie mit symmetrischen Verschlüsselungssammlungen mithilfe des Verschlüsselungsblockverkettungsmodus verwendet wird. Weitere Informationen finden Sie unter "Sicherheitsrisiko in SSL/TLS kann die Offenlegung von Informationen ermöglichen" in der Hilfe- und Support-Wissensdatenbank unter http://support.microsoft.com/kb/2643584.

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.

SCH_SEND_ROOT_CERT
0x00040000
Schannel sendet das Stammzertifikat als Teil der Zertifikatnachricht.
Hinweis Das Vom Schannel-Client oder -Server über das Netzwerk gesendete Stammzertifikat ist nicht zu vertrauenswürdig. Es sollte anhand eines vertrauenswürdigen Hashs des Stammzertifikats überprüft werden.
 
SCH_USE_STRONG_CRYPTO
0x00400000
Weist Schannel an, bekannte schwache Kryptografiealgorithmen, Verschlüsselungssammlungen und SSL/TLS-Protokollversionen zu deaktivieren, die andernfalls für eine bessere Interoperabilität aktiviert werden können.
SCH_USE_PRESHAREDKEY_ONLY
0x00800000
Weist Schannel an, nur PSK-Verschlüsselungssammlungen auszuwählen und alle anderen Verschlüsselungssammlungen zu deaktivieren.

dwCredFormat

Der 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
SCH_CRED_FORMAT_CERT_HASH
0x00000001
Das paCred-Element der übergebenen SCHANNEL_CRED-Struktur muss ein Zeiger auf ein Bytearray der Länge 20 sein, das den Zertifikatfingerabdruck enthält. Es wird davon ausgegangen, dass sich das Zertifikat im Speicher "MY" des lokalen Computers befindet.
SCH_CRED_FORMAT_CERT_HASH_STORE
0x00000002
Das paCred-Element der SCHANNEL_CRED-Struktur verweist auf eine SCHANNEL_CERT_HASH_STORE-Struktur .

Hinweise

Die folgenden Zertifikatsperrflags 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 die Sperrung status 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 Zertifikatsperrflag festgelegt ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Kopfzeile schannel.h (include Schnlsp.h)

Weitere Informationen

QuerySecurityContextToken