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
Legen Sie auf SCHANNEL_CRED_VERSION fest.
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 für die 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 werden häufig in einer leeren Liste übergeben und hängen entweder von Schannel ab, 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 vertrauenswürdig sind. 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 mit Anmeldeinformationen unterstützt werden, die mithilfe dieser Struktur abgerufen wurden. Wenn cSupportedAlgs null oder palgSupportedAlgsNULL ist, verwendet Schannel die Systemstandardeinstellungen.
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 0 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.
Dieser Member wird nur vom Microsoft Sicherheitsprotokollanbieter-Sicherheitspaket verwendet.
Die globalen Systemregistrierungseinstellungen haben Vorrang vor diesem Wert. Wenn SSL3 beispielsweise in der Registrierung deaktiviert ist, kann es nicht mit diesem Member aktiviert werden.
Dieses Element kann eines der folgenden Flags enthalten.
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 |
---|---|
|
Nur Client.
Dieses Flag ist das Gegenteil von SCH_CRED_MANUAL_CRED_VALIDATION und 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 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. |
|
Wenn Sie nach widerrufenen Zertifikaten suchen, ignorieren Sie CRYPT_E_NO_REVOCATION_CHECK Fehler. Weitere Einschränkungen finden Sie unter Hinweise. |
|
Wenn Sie nach gesperrten Zertifikaten suchen, ignorieren Sie CRYPT_E_REVOCATION_OFFLINE Fehler. Weitere Einschränkungen finden Sie unter Hinweise. |
|
Nur Client.
Verhindern, dass Schannel die empfangene Serverzertifikatkette überprüft. |
|
Nur Client.
Verhindern Sie, dass Schannel versucht, automatisch eine Zertifikatkette für die Clientauthentifizierung anzugeben. |
|
Nur Client.
Verhindern, dass Schannel den angegebenen Zielnamen mit den Antragstellernamen in Serverzertifikaten vergleicht. |
|
Nur Server.
Verhindern Sie, dass Schannel die integrierten Systemzertifikatzuordnungsfunktionen zum Zuordnen von Clientzertifikaten zu einem Benutzerkonto verwendet. |
|
Überprüfen Sie beim Überprüfen einer Zertifikatkette alle Zertifikate auf Sperrung. Weitere Einschränkungen finden Sie unter Hinweise. |
|
Überprüfen Sie beim Überprüfen einer Zertifikatkette den Stamm nicht auf Sperrung. Weitere Einschränkungen finden Sie unter Hinweise. |
|
Überprüfen Sie beim Überprüfen einer Zertifikatkette nur das letzte Zertifikat auf Sperrung. Weitere Einschränkungen finden Sie unter Hinweise. |
|
Nur Client.
Schannel versucht, automatisch eine Zertifikatkette für die Clientauthentifizierung anzugeben. Dieser Wert ist das Gegenteil von SCH_CRED_NO_DEFAULT_CREDS. |
|
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. |
|
Schannel sendet das Stammzertifikat als Teil der Zertifikatnachricht.
Hinweis Das vom Schannel-Client oder -Server über das Netzwerk gesendete Stammzertifikat ist nicht vertrauenswürdig. Es sollte anhand eines vertrauenswürdigen Hashs des Stammzertifikats überprüft werden.
|
|
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. |
|
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 |
---|---|
|
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. |
|
Das paCred-Element der SCHANNEL_CRED-Struktur verweist auf eine SCHANNEL_CERT_HASH_STORE-Struktur . |
Bemerkungen
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 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 Zertifikatsperrflag festgelegt ist.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8.1 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 R2 [nur Desktop-Apps] |
Header | schannel.h (include Schnlsp.h) |