如何在没有PIN提示的情况下通过智能读卡器访问PKI证书的私钥

本文关键字:智能 读卡器 访问 私钥 证书 PKI 情况下 提示 PIN | 更新日期: 2023-09-27 18:27:24

我需要访问存储在卡中的PKI证书的私钥。我可以通过智能卡读卡器访问它。每当我尝试使用私钥时,第一次我总是要在PIN提示中输入PIN号码。

是否可以通过程序输入PIN并在没有PIN提示的情况下使用私钥?我需要创建WCF服务,该服务将使用PKI证书对输入数据进行签名,并将其重新签名给用户。

通过这种方式,我目前尝试使用C#:使用PKI证书对数据进行签名

var cmsSigner = new CmsSigner(x509certificate2); // certificate fetched from store
var contentInfo = new ContentInfo(dataToSign);
var signedCms = new SignedCms(contentInfo, true);
signedCms.ComputeSignature(cmsSigner, false);

PIN提示始终在第一次ComputeSignature方法调用时打开。如何通过PIN直接访问私钥,避免通过提示手动输入PIN?

如何在没有PIN提示的情况下通过智能读卡器访问PKI证书的私钥

归结为两种情况:

  1. 硬件CSP(加密服务提供商)保持Microsoft定义的API,并正确实现CspParameters
  2. 当需要私钥操作时,硬件CSP本身生成用于PIN的弹出窗口

在第一种情况下,您应该阅读如何:访问硬件加密设备,然后尝试将KeyPassword传递给CSP。

在后一种情况下,可能相当于联系创建CSP的公司,询问哪些选项可用。幸运的是,这个选项通常不再实现。