structure SCHANNEL_CRED (schannel.h)
Note
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éfini sur SCHANNEL_CRED_VERSION.
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. 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é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 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
Optionnel. 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 palgSupportedAlgs est NULL, Schannel utilise les valeurs par défaut du système.
Actuellement, les identificateurs d’algorithme CALG_AES, CALG_AES_128et les CALG_AES_256 ne sont pas pris en charge.
grbitEnabledProtocols
Optionnel. Un 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 fournisseur de protocole de sécurité unifié Microsoft package de sécurité.
Les paramètres globaux du Registre du système 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.
dwMinimumCipherStrength
Force minimale 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 est –1, seules les suites de chiffrement SSL3/TLS MAC uniquement (également appelées chiffrement NULL) sont activées.
dwMaximumCipherStrength
Force maximale 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 est –1, seules les suites de chiffrement SSL3/TLS MAC uniquement (également appelées chiffrement NULL) sont activées. Dans ce cas, dwMinimumCipherStrength doit être défini sur –1.
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 |
---|---|
|
Client uniquement.
Cet indicateur est l’opposé de SCH_CRED_MANUAL_CRED_VALIDATION et fait partie du comportement par défaut de Schannel. |
|
Demandez à Schannel de passer l’indicateur CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL à la fonction CertGetCertificateChain Windows Server 2003 et Windows XP/2000 : Cet indicateur n’est pas pris en charge. |
|
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. |
|
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. |
|
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. |
|
Client uniquement.
Empêcher Schannel de valider la chaîne de certificats de serveur reçue. |
|
Client uniquement.
Empêcher Schannel de tenter de fournir automatiquement une chaîne de certificats pour l’authentification du client. |
|
Client uniquement.
Empêchez Schannel de comparer le nom cible fourni avec les noms d’objet dans certificats de serveur. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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.
|
|
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é. |
|
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 |
---|---|
|
Le paCred membre 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. |
|
Le paCred membre de la structure SCHANNEL_CRED pointe vers une structure SCHANNEL_CERT_HASH_STORE. |
Remarques
Les indicateurs de révocation de certificats 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 l’état 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 8.1 [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2012 R2 [applications de bureau uniquement] |
d’en-tête | schannel.h (include Schnlsp.h) |