Claves privadas de CryptoAPI 2.0
Las credenciales de Schannel se representan internamente como estructuras CERT_CONTEXT. Schannel busca la clave privada asociada a un contexto de certificado determinado mediante la propiedad CERT_KEY_PROV_INFO_PROP_ID del certificado. Con esta propiedad, Schannel accede a la clave privada llamando a la función CryptAcquireContext. Para obtener más información, consulte pares de claves públicas y privadas.
Cada credencial de Schannel contiene una referencia a una o varias claves privadas, cada una asociada a un certificado determinado. Los claves privadas se controlan de forma bastante diferente en función de si la credencial es para un cliente o un servidor.
Claves privadas de cliente
El proveedor de servicios criptográficos(CSP)administra las claves privadasclaves privadas en uso. Las claves privadas de cliente normalmente se almacenan mediante CSP de tipo PROV_RSA_FULL o PROV_RSA_SIGNATURE.
Si la aplicación cliente realiza la llamadadeCryptAcquireContext manualmente antes de llamar a AcquireCredentialsHandle, el cliente debe enlazar el identificador del CSP al contexto de certificado mediante la propiedad CERT_KEY_PROV_HANDLE_PROP_ID. Si Schannel encuentra este conjunto de propiedades, no usa la propiedad CERT_KEY_PROV_INFO_PROP_ID.
Claves privadas del servidor
Las claves privadas del servidor se almacenan mediante uno de los siguientes CSP:
- PROV_RSA_SCHANNEL
- PROV_DH_SCHANNEL
- PROV_FORTEZZA CSP
La elección de CSP depende del algoritmo de intercambio de claves de seleccionado. Las claves privadas del servidor deben ser de tipo AT_KEYEXCHANGE.