1

我们希望在适用于 Windows 8 和 10 的 Surface Pro 设备和 Windows Mobile Phone 设备上使用“Microsoft Platform Crypto Provider Key Storage Provider”API。我们需要支持的操作是使用PKCS12 格式化为“blob”并使用 KSP 中的一个或多个密钥作为与服务器进行相互验证的 TLS 1.2 交换的客户端凭据。 

我们需要知道在我们的客户端中使用的正确 API 来导入带有一些名称(别名)的证书密钥,我们可以稍后使用它来引用它 - 我们假设正确的 API 是 CertificateEnrollmentManager.ImportPfxDataAsyn。如果我们使用此 API,生成的凭证是否会受到可信平台模块 (TPM) 的静态保护,或者是否有其他我们必须使用的 API 来导入和使用证书。我们知道 CertificateEnrollmentManager.ImportPfxDataAsyn 会将 pfx 证书导入应用程序容器。我们真的希望我们的凭据受到 TPM 的保护。

我们还需要知道适当的 API,以便在使用 TLS 1.2 协议与服务器建立套接字连接期间通过其友好名称选择证书/密钥。我们知道,在 Windows 10 中,StreamSocket 有一个“Control”属性,而“Control”本身有一个“ClientCertificate”属性,我们可以使用它来传递用于打开 SSL 连接的客户端证书,但在 Windows 8.1 中,StreamSocket 的 Control 属性没有没有“ClientCertificate”属性。在 Windows 8.1 中,StreamSocket.ConnectAsync 将在哪里寻找哪个证书?

任何帮助或评论将不胜感激。

乔什

4

0 回答 0