Freigeben über


CryptoAPI 2.0 Private Schlüssel

Schannel-Anmeldeinformationen werden intern als CERT_CONTEXT Strukturen dargestellt. Schannel sucht den privaten Schlüssel, der einem bestimmten Zertifikatkontext zugeordnet ist, mithilfe der CERT_KEY_PROV_INFO_PROP_ID-Eigenschaft des Zertifikats. Mit dieser Eigenschaft greift Schannel auf den privaten Schlüssel zu, indem die CryptAcquireContext--Funktion aufgerufen wird. Weitere Informationen finden Sie unter Public/Private Key Pairs.

Jede Schannel-Anmeldeinformation enthält einen Verweis auf einen oder mehrere private Schlüssel, die jeweils einem bestimmten Zertifikat zugeordnet sind. Die privaten Schlüssel werden unterschiedlich behandelt, je nachdem, ob sich die Anmeldeinformationen für einen Client oder einen Server befinden.

Private Clientschlüssel

Clientprivate Schlüssel werden vom verwendeten kryptografischen Dienstanbieter (CSP) verwaltet. Private Clientschlüssel werden in der Regel von CSPs vom Typ PROV_RSA_FULL oder PROV_RSA_SIGNATURE gespeichert.

Wenn die Clientanwendung den CryptAcquireContext manuell aufruft, muss der Client vor dem Aufrufen AcquireCredentialsHandle-das Handle des CSP mithilfe der CERT_KEY_PROV_HANDLE_PROP_ID-Eigenschaft an den Zertifikatkontext binden. Wenn Schannel diesen Eigenschaftensatz findet, wird die CERT_KEY_PROV_INFO_PROP_ID-Eigenschaft nicht verwendet.

Private Serverschlüssel

Private Serverschlüssel werden von einem der folgenden CSPs gespeichert:

  • PROV_RSA_SCHANNEL
  • PROV_DH_SCHANNEL
  • PROV_FORTEZZA CSP

Die Wahl des CSP hängt vom ausgewählten Schlüsselaustauschalgorithmusab. Private Serverschlüssel müssen vom Typ AT_KEYEXCHANGE sein.