Compartilhar via


Chaves privadas cryptoAPI 2.0

As credenciais do Schannel são representadas internamente como estruturas de CERT_CONTEXT. O Schannel localiza a chave privada associada a um contexto de certificado específico usando a propriedade CERT_KEY_PROV_INFO_PROP_ID do certificado. Usando essa propriedade, o Schannel acessa o de chave privada chamando a funçãoCryptAcquireContext. Para obter detalhes adicionais, consulte pares de chave pública/privada.

Cada credencial Schannel contém uma referência a uma ou mais chaves privadas, cada uma associada a um certificado específico. As chaves privadas são tratadas de forma bem diferente, dependendo se a credencial é para um cliente ou um servidor.

Chaves privadas do cliente

As chaves privadas cliente são gerenciadas pelo CSP ( provedor de serviços criptográficos) em uso. As chaves privadas do cliente normalmente são armazenadas por CSPs do tipo PROV_RSA_FULL ou PROV_RSA_SIGNATURE.

Se o aplicativo cliente fizer a chamada CryptAcquireContex t manualmente antes de chamar AcquireCredentialsHandle, o cliente deverá associar o identificador do CSP ao contexto do certificado usando a propriedade CERT_KEY_PROV_HANDLE_PROP_ID. Se o Schannel encontrar esse conjunto de propriedades, ele não usará a propriedade CERT_KEY_PROV_INFO_PROP_ID.

Chaves Privadas do Servidor

As chaves privadas do servidor são armazenadas por um dos seguintes CSPs:

  • PROV_RSA_SCHANNEL
  • PROV_DH_SCHANNEL
  • PROV_FORTEZZA CSP

A escolha do CSP depende do algoritmo de troca de chaves selecionado. As chaves privadas do servidor devem ser do tipo AT_KEYEXCHANGE.