structure SCHANNEL_CRED (schannel.h)

Notes

La structure SCHANNEL_CRED est déconseillée. Vous devez utiliser SCH_CREDENTIALS à la place.

La structure SCHANNEL_CRED contient les données d’informations d’identification Schannel.

Syntaxe

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;

Membres

dwVersion

Définissez sur SCHANNEL_CRED_VERSION.

cCreds

Nombre de structures dans le tableau paCred .

paCred

Tableau de pointeurs vers CERT_CONTEXT structures. Chaque pointeur spécifie un certificat qui contient une clé privée à utiliser pour l’authentification de l’application. En règle générale, ce tableau contient une structure pour chaque méthode d’échange de clés prise en charge par l’application.

Les applications clientes passent souvent une liste vide et dépendent de Schannel pour trouver un certificat approprié ou créent un certificat ultérieurement si nécessaire.

hRootStore

facultatif. Valide pour les applications serveur uniquement. Gérez dans un magasin de certificats qui contient des certificats racine auto-signés pour les autorités de certification approuvées par l’application. Ce membre est utilisé uniquement par les applications côté serveur qui nécessitent une authentification cliente.

cMappers

Réservé.

aphMappers

Réservé.

_HMAPPER

cSupportedAlgs

Nombre d’algorithmes dans le tableau palgSupportedAlgs .

palgSupportedAlgs

facultatif. Pointeur vers un tableau d’identificateurs d’algorithmes ALG_ID qui représentent les algorithmes pris en charge par les connexions effectuées avec les informations d’identification acquises à l’aide de cette structure. Si cSupportedAlgs est égal à zéro ou si palgSupportedAlgs a la valeur NULL, Schannel utilise les valeurs par défaut du système.

Actuellement, les identificateurs d’algorithme CALG_AES, CALG_AES_128 et CALG_AES_256 ne sont pas pris en charge.

grbitEnabledProtocols

facultatif. DWORD qui contient une chaîne de bits qui représente les protocoles pris en charge par les connexions effectuées avec les informations d’identification acquises à l’aide de cette structure. Si ce membre est égal à zéro, Schannel sélectionne le protocole. Pour le nouveau développement, les applications doivent définir grbitEnabledProtocols sur zéro et utiliser les versions de protocole activées sur le système par défaut.

Ce membre est utilisé uniquement par le package de sécurité du fournisseur de protocole de sécurité unifié Microsoft.

Les paramètres du Registre système global sont prioritaires sur cette valeur. Par exemple, si SSL3 est désactivé dans le Registre, il ne peut pas être activé à l’aide de ce membre.

Ce membre peut contenir l’un des indicateurs suivants.

Valeur Signification
SP_PROT_PCT1_SERVER
0x00000001
Private Communications Technology 1.0 côté serveur.
Note Obsolète.
 
SP_PROT_PCT1_CLIENT
0x00000002
Private Communications Technology 1.0 côté client.
Note Obsolète.
 
SP_PROT_SSL2_SERVER
0x00000004
Côté serveur Secure Sockets Layer 2.0. Remplacé par SP_PROT_TLS1_SERVER.
Important Les indicateurs Secure Sockets Layer 2.0 et Transport Layer Security 1.2 s’excluent mutuellement.
 
Windows 10, version 1607 et Windows Server 2016. : Fin du support.
SP_PROT_SSL2_CLIENT
0x00000008
Côté client Secure Sockets Layer 2.0. Remplacé par SP_PROT_TLS1_CLIENT.
Important Les indicateurs Secure Sockets Layer 2.0 et Transport Layer Security 1.2 s’excluent mutuellement.
 
Windows 10, version 1607 et Windows Server 2016. : Fin du support.
SP_PROT_SSL3_SERVER
0x00000010
Côté serveur Secure Sockets Layer 3.0.
SP_PROT_SSL3_CLIENT
0x00000020
Côté client Secure Sockets Layer 3.0.
SP_PROT_TLS1_SERVER
0x00000040
Côté serveur transport Layer Security 1.0.
SP_PROT_TLS1_CLIENT
0x00000080
Côté client transport Layer Security 1.0.
SP_PROT_TLS1_0_SERVER
SP_PROT_TLS1_SERVER
Côté serveur transport Layer Security 1.0.
SP_PROT_TLS1_0_CLIENT
SP_PROT_TLS1_CLIENT
Côté client transport Layer Security 1.0.
SP_PROT_TLS1_1_SERVER
0x00000100
Côté serveur de la couche de transport 1.1.
SP_PROT_TLS1_1_CLIENT
0x00000200
Transport Layer Security 1.1 côté client.
SP_PROT_TLS1_2_SERVER
0x00000400
Côté serveur transport Layer Security 1.2.
Important Les indicateurs Secure Sockets Layer 2.0 et Transport Layer Security 1.2 s’excluent mutuellement.
 
SP_PROT_TLS1_2_CLIENT
0x00000800
Transport Layer Security 1.2 côté client.
Important Les indicateurs Secure Sockets Layer 2.0 et Transport Layer Security 1.2 s’excluent mutuellement.
 
SP_PROT_TLS1_3_SERVER
0x00001000
Côté serveur de la couche de transport 1.3.
Important Les indicateurs Secure Sockets Layer 2.0 et Transport Layer Security 1.2 s’excluent mutuellement.
 
SP_PROT_TLS1_3_CLIENT
0x00002000
Transport Layer Security 1.3 côté client.
Important Les indicateurs Secure Sockets Layer 2.0 et Transport Layer Security 1.3 s’excluent mutuellement.
 
SP_PROT_DTLS_SERVER
0x00010000
Datagramme Transport Layer Security côté serveur.

Windows 8 et Windows Server 2012 : prise en charge ajoutée.

SP_PROT_DTLS_CLIENT
0x00020000
Datagramme Transport Layer Security côté client.

Windows 8 et Windows Server 2012 : prise en charge ajoutée.

SP_PROT_DTLS1_0_SERVER
SP_PROT_DTLS1_SERVER
Datagramme Transport Layer Security 1.0 côté serveur.

Windows 8 et Windows Server 2012 : prise en charge ajoutée.

SP_PROT_DTLS1_0_CLIENT
SP_PROT_DTLS1_CLIENT
Datagramme Transport Layer Security 1.0 côté client.

Windows 8 et Windows Server 2012 : prise en charge ajoutée.

SP_PROT_DTLS1_2_SERVER
0x00040000
Datagramme Transport Layer Security 1.2 côté serveur.

Windows 10, version 1607 et Windows Server 2016. : prise en charge ajoutée.

SP_PROT_DTLS1_2_CLIENT
0x00080000
Datagramme Transport Layer Security 1.2 côté client.

Windows 10, version 1607 et Windows Server 2016. : prise en charge ajoutée.

SP_PROT_DTLS1_X_SERVER
Datagramme Transport Layer Security toutes les versions prises en charge côté serveur.

Windows 10, version 1607 et Windows Server 2016. : prise en charge ajoutée.

SP_PROT_DTLS1_X_CLIENT
Datagramme Transport Layer Security toutes les versions prises en charge côté client.

Windows 10, version 1607 et Windows Server 2016. : prise en charge ajoutée.

dwMinimumCipherStrength

Force de chiffrement en bloc minimale, en bits, autorisée pour les connexions.

Si ce membre est égal à zéro, Schannel utilise la valeur par défaut du système. Si ce membre a la valeur –1, seules les suites de chiffrement MAC SSL3/TLS uniquement (également appelées chiffrement NULL ) sont activées.

dwMaximumCipherStrength

Puissance maximale de chiffrement de chiffrement en bloc, en bits, autorisée pour les connexions.

Si ce membre est égal à zéro, Schannel utilise la valeur par défaut du système.

Si ce membre a la valeur –1, seules les suites de chiffrement MAC SSL3/TLS uniquement (également appelées chiffrement NULL ) sont activées. Dans ce cas, dwMinimumCipherStrength doit être défini sur –1.

dwSessionLifespan

Nombre de millisecondes pendant lesquelles Schannel conserve la session dans son cache de session. Une fois ce délai écoulé, toutes les nouvelles connexions entre le client et le serveur nécessitent une nouvelle session Schannel. Définissez la valeur de ce membre sur zéro pour utiliser la valeur par défaut de 36000000 millisecondes (dix heures).

dwFlags

Contient des indicateurs de bits qui contrôlent le comportement de Schannel. Ce membre peut être égal à zéro ou à une combinaison des valeurs suivantes.

Valeur Signification
SCH_CRED_AUTO_CRED_VALIDATION
0x00000020
Client uniquement.

Cet indicateur est le contraire de SCH_CRED_MANUAL_CRED_VALIDATION et fait partie du comportement par défaut de Schannel.

SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE
0x00020000
Demandez à Schannel de passer l’indicateur CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL à la fonction CertGetCertificateChain lors de la validation des informations d’identification spécifiées lors d’un appel à AcquireCredentialsHandle (Schannel).

Windows Server 2003 et Windows XP/2000 : Cet indicateur n’est pas pris en charge.

SCH_CRED_DISABLE_RECONNECTS
0x00000080
Serveur uniquement.

Si cet indicateur est défini, les liaisons complètes effectuées avec ces informations d’identification n’autorisent pas les reconnexions. Une entrée de cache est créée, de sorte que la session peut être reprise ultérieurement à l’aide de la fonction ApplyControlToken .

SCH_CRED_IGNORE_NO_REVOCATION_CHECK
0x00000800
Lors de la vérification des certificats révoqués, ignorez CRYPT_E_NO_REVOCATION_CHECK erreurs. Pour obtenir d’autres restrictions, consultez Remarques.
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
Lors de la vérification des certificats révoqués, ignorez CRYPT_E_REVOCATION_OFFLINE erreurs. Pour obtenir d’autres restrictions, consultez Remarques.
SCH_CRED_MANUAL_CRED_VALIDATION
0x00000008
Client uniquement.

Empêcher Schannel de valider la chaîne de certificats de serveur reçue.

SCH_CRED_NO_DEFAULT_CREDS
0x00000010
Client uniquement.

Empêcher Schannel de tenter de fournir automatiquement une chaîne de certificats pour l’authentification du client.

SCH_CRED_NO_SERVERNAME_CHECK
0x00000004
Client uniquement.

EmpêcheZ Schannel de comparer le nom cible fourni avec les noms d’objet dans les certificats de serveur.

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
Serveur uniquement.

Empêcher Schannel d’utiliser les fonctions de mappage de certificats système intégrées pour mapper les certificats clients à un compte d’utilisateur.

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
Lors de la validation d’une chaîne de certificats, case activée tous les certificats à des fins de révocation. Pour obtenir d’autres restrictions, consultez Remarques.
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
Lors de la validation d’une chaîne de certificats, ne case activée pas la racine pour révocation. Pour obtenir d’autres restrictions, consultez Remarques.
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
Lors de la validation d’une chaîne de certificats, case activée uniquement le dernier certificat pour révocation. Pour obtenir d’autres restrictions, consultez Remarques.
SCH_CRED_USE_DEFAULT_CREDS
0x00000040
Client uniquement.

Schannel tente de fournir automatiquement une chaîne de certificats pour l’authentification du client. Cette valeur est l’opposé de SCH_CRED_NO_DEFAULT_CREDS.

SCH_SEND_AUX_RECORD
0x00200000
Demandez à Schannel de fractionner les données à chiffrer en deux enregistrements distincts pour contrer les faiblesses présentes dans le protocole SSL/TLS lorsqu’elles sont utilisées avec la suite de chiffrement symétrique à l’aide du mode de chaînage de blocs de chiffrement. Pour plus d’informations, consultez « Une vulnérabilité dans SSL/TLS pourrait autoriser la divulgation d’informations » dans la base de connaissances Aide et support à l’adresse http://support.microsoft.com/kb/2643584.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP et Windows XP/2000 : Cet indicateur n’est pas pris en charge.

SCH_SEND_ROOT_CERT
0x00040000
Schannel envoie le certificat racine dans le cadre du message de certificat.
Note Le certificat racine envoyé sur le réseau par le client ou le serveur Schannel ne doit pas être approuvé. Il doit être validé par rapport à un hachage approuvé du certificat racine.
 
SCH_USE_STRONG_CRYPTO
0x00400000
Indique à Schannel de désactiver les algorithmes de chiffrement faibles connus, les suites de chiffrement et les versions de protocole SSL/TLS qui peuvent être activées pour une meilleure interopérabilité.
SCH_USE_PRESHAREDKEY_ONLY
0x00800000
Indique à Schannel de sélectionner uniquement les suites de chiffrement PSK et de désactiver toutes les autres suites de chiffrement.

dwCredFormat

Schannel en mode noyau prend en charge les valeurs suivantes.

Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP et Windows XP/2000 : Cet indicateur n’est pas pris en charge et doit être égal à zéro.

Valeur Signification
SCH_CRED_FORMAT_CERT_HASH
0x00000001
Le membre paCred de la structure SCHANNEL_CRED passée doit être un pointeur vers un tableau d’octets de longueur 20 qui contient l’empreinte numérique du certificat. Le certificat est supposé être dans le magasin « MY » de l’ordinateur local.
SCH_CRED_FORMAT_CERT_HASH_STORE
0x00000002
Le membre paCred de la structure SCHANNEL_CRED pointe vers une structure SCHANNEL_CERT_HASH_STORE .

Remarques

Les indicateurs de révocation de certificat suivants s’excluent mutuellement.

  • SCH_CRED_REVOCATION_CHECK_CHAIN
  • SCH_CRED_REVOCATION_CHECK_END_CERT
  • SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT

Pour personnaliser le rapport d’erreurs de révocation de certificats pour Schannel, utilisez les indicateurs suivants :

  • SCH_CRED_IGNORE_NO_REVOCATION_CHECK
  • SCH_CRED_IGNORE_REVOCATION_OFFLINE

Lorsque Schannel vérifie la status de révocation d’une chaîne de certificats, ces indicateurs lui indiquent d’ignorer les erreurs CRYPT_E_NO_REVOCATION_CHECK et CRYPT_E_REVOCATION_OFFLINE, respectivement. Ces indicateurs sont ignorés si aucun indicateur de révocation de certificat n’est défini.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 R2 [applications de bureau uniquement]
En-tête schannel.h (include Schnlsp.h)

Voir aussi

QuerySecurityContextToken