Clés privées CryptoAPI 2.0
Les informations d’identification Schannel sont représentées en interne sous forme de structures CERT_CONTEXT . Schannel localise la clé privée associée à un contexte de certificat particulier à l’aide de la propriété CERT_KEY_PROV_INFO_PROP_ID du certificat. À l’aide de cette propriété, Schannel accède à la clé privée en appelant la fonction CryptAcquireContext . Pour plus d’informations, consultez Paires de clés publiques/privées.
Chaque informations d’identification Schannel contient une référence à une ou plusieurs clés privées, chacune associée à un certificat particulier. Les clés privées sont gérées très différemment selon que les informations d’identification concernent un client ou un serveur.
Clés privées clientes
Les clés privées clientes sont gérées par le fournisseur de services de chiffrement (CSP) en cours d’utilisation. Les clés privées clientes sont généralement stockées par les fournisseurs de solutions cloud de type PROV_RSA_FULL ou PROV_RSA_SIGNATURE.
Si l’application cliente effectue manuellement l’appel CryptAcquireContext , avant d’appeler AcquireCredentialsHandle, le client doit lier le handle du fournisseur de solutions cloud au contexte de certificat à l’aide de la propriété CERT_KEY_PROV_HANDLE_PROP_ID. Si Schannel trouve ce jeu de propriétés, il n’utilise pas la propriété CERT_KEY_PROV_INFO_PROP_ID.
Clés privées du serveur
Les clés privées du serveur sont stockées par l’un des fournisseurs de solutions cloud suivants :
- PROV_RSA_SCHANNEL
- PROV_DH_SCHANNEL
- PROV_FORTEZZA CSP
Le choix du csp dépend de l’algorithme d’échange de clés sélectionné. Les clés privées du serveur doivent être de type AT_KEYEXCHANGE.