Validation manuelle des informations d’identification Schannel
Par défaut, Schannel valide le certificat de serveur en appelant la fonction WinVerifyTrust ; Toutefois, si vous avez désactivé cette fonctionnalité à l’aide de l’indicateur ISC_REQ_MANUAL_CRED_VALIDATION, vous devez valider le certificat fourni par le serveur qui tente d’établir son identité.
Pour valider manuellement le certificat de serveur, vous devez d’abord l’obtenir. Utilisez la fonction QueryContextAttributes (General) et spécifiez la valeur d’attribut SECPKG_ATTR_REMOTE_CERT_CONTEXT. Cet attribut retourne une structure CERT_CONTEXT avec la chaîne de certificats fournie par le serveur. Cette chaîne de certificats contient le certificat feuille. Il est appelé certificat feuille, car il s’agit du dernier certificat de la chaîne de certificats et est le plus éloigné du certificat racine. L’ordre des certificats dans la mémoire tampon de contexte SSPI n’implique aucune relation de chaînage de certificats.
À l’aide du certificat feuille, vous devez vérifier les éléments suivants :
- La chaîne de certificats est terminée et la racine est un certificat d’une autorité de certification approuvée.
- L’heure actuelle n’est pas au-delà des dates de début et de fin de chacun des certificats dans la chaîne de certificats.
- Aucun des certificats de la chaîne de certificats n’a été révoqué.
- La profondeur du certificat feuille n’est pas supérieure à la profondeur maximale autorisée spécifiée dans l’extension de certificat. Cette case activée n’est nécessaire que si une profondeur est spécifiée.
- L’utilisation du certificat est correcte, par exemple, un certificat client ne doit pas être utilisé pour authentifier un serveur.
- Pour l’authentification du serveur, l’identité du serveur contenue dans le certificat feuille du serveur correspond au serveur que le client tente de contacter. En règle générale, le client fait correspondre un élément dans le champ Nom de l’objet du certificat à l’adresse IP ou au nom DNS du serveur.