Partager via


structure SCH_CREDENTIALS (schannel.h)

La structure SCH_CREDENTIALS contient des informations d’initialisation pour les informations d’identification Schannel.

Syntaxe

typedef struct _SCH_CREDENTIALS {
  DWORD           dwVersion;
  DWORD           dwCredFormat;
  DWORD           cCreds;
  PCCERT_CONTEXT  *paCred;
  HCERTSTORE      hRootStore;
  DWORD           cMappers;
  _HMAPPER        **aphMappers;
  struct          _HMAPPER;
  DWORD           dwSessionLifespan;
  DWORD           dwFlags;
  DWORD           cTlsParameters;
  PTLS_PARAMETERS pTlsParameters;
} SCH_CREDENTIALS, *PSCH_CREDENTIALS;

Membres

dwVersion

Défini sur SCH_CREDENTIALS_VERSION.

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 paCred membre de la structure SCH_CREDENTIALS 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 paCred membre de la structure SCH_CREDENTIALS pointe vers une structure SCHANNEL_CERT_HASH_STORE.

cCreds

Nombre de structures dans le tableau paCred.

paCred

Tableau de pointeurs vers des structures CERT_CONTEXT. Chaque pointeur spécifie un certificat qui contient une clé privée à utiliser pour authentifier l’application.

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

hRootStore

Optionnel. Valide uniquement pour les applications serveur. Gérez vers un magasin de certificats qui contient des certificats racines 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

dwSessionLifespan

Nombre de millisecondes que Schannel conserve la session dans son cache de session. Une fois cette période passée, 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 l’opposé 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 négociations complètes effectuées avec ces informations d’identification n’autorisent pas les reconnexions. Une entrée de cache est créée afin que la session puisse ê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 les erreurs CRYPT_E_NO_REVOCATION_CHECK. Pour obtenir des restrictions supplémentaires, consultez Remarques.
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
Lors de la vérification des certificats révoqués, ignorez les erreurs CRYPT_E_REVOCATION_OFFLINE. Pour obtenir des restrictions supplémentaires, 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 certificats de serveur.

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
Serveur uniquement.

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

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
Lors de la validation d’une chaîne de certificats, vérifiez tous les certificats pour révocation. Pour obtenir des restrictions supplémentaires, consultez Remarques.
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
Lors de la validation d’une chaîne de certificats, ne vérifiez pas la racine pour la révocation. Pour obtenir des restrictions supplémentaires, consultez Remarques.
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
Lors de la validation d’une chaîne de certificats, vérifiez uniquement le dernier certificat pour la révocation. Pour obtenir des restrictions supplémentaires, 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’inverse de SCH_CRED_NO_DEFAULT_CREDS.

SCH_SEND_AUX_RECORD
0x00200000
Demandez à Schannel de fractionner les données à chiffrer en deux enregistrements distincts afin de contrer la faiblesse présente dans le protocole SSL/TLS lorsqu’il est utilisé avec une suite de chiffrement symétrique à l’aide du mode de chaînage de blocs de chiffrement. Pour plus d’informations, consultez vulnérabilité dans SSL/TLS pourrait autoriser la divulgation d’informations.

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.
Remarque Le certificat racine envoyé sur le réseau par le client ou le serveur Schannel n’est pas approuvé. Elle doit être validée 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.

cTlsParameters

Nombre d’entrées dans le tableau pTlsParameters.

Il s’agit d’une erreur pour spécifier plus de SCH_CRED_MAX_SUPPORTED_PARAMETERS.

pTlsParameters

Tableau de pointeurs vers les structures TLS_PARAMETERS qui indiquent les restrictions de paramètre TLS, le cas échéant. Si aucune restriction n’est spécifiée, les valeurs par défaut du système sont utilisées. Il est recommandé que les applications s’appuient sur les valeurs par défaut du système.

Il s’agit d’une erreur d’inclure plusieurs structures TLS_PARAMETERS avec cAlpnIds == 0 et rgstrAlpnIds == NULL.

Remarques

Pour utiliser la structure SCH_CREDENTIALS, définissez SCHANNEL_USE_BLACKLISTS avec UNICODE_STRING et PUNICODE_STRING. Vous pouvez également inclure Ntdef.h, SubAuth.h ou Winternl.h.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10 1809 [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 1809 [applications de bureau uniquement]
d’en-tête schannel.h

Voir aussi

CRYPTO_SETTINGS

TLS_PARAMETERS