用于签名数据的强制引脚(SignedXml)?

Posted

技术标签:

【中文标题】用于签名数据的强制引脚(SignedXml)?【英文标题】:Force pin for signing data(SignedXml)? 【发布时间】:2014-06-19 13:03:37 【问题描述】:

我正在测试这个示例:http://msdn.microsoft.com/en-us/library/ms148731(v=vs.110).aspx,效果很好。

我正在使用从智能卡加载到证书存储 (MY) 的证书。

问题是这个代码永远不会要求输入密码?如何强制检查 PIN 码?

编辑:也尝试过使用此代码,它与第一个代码一样工作:http://ianreddy.wordpress.com/2011/02/14/sign-data-using-certificates-in-c/(无密码要求)

【问题讨论】:

【参考方案1】:

CSP 提供商通常会要求提供 PIN,即由硬件供应商开发的模块,它将证书从您的硬件映射到 Windows 证书存储。有可能此模块缓存了进程的 PIN,或者您没有为硬件设置 USER PIN(仅设置“管理员”PIN)。

【讨论】:

我有一个名为 NETID 的软件,它正在与硬件(读卡器)进行通信,您是否建议是这个软件阻止了 pin 码?当使用身份验证证书通过 WCF 进行通信时,NETID 将提示我一个 pin 码对话框。这是在使用 WCF 通道时首先完成的。我在签名时使用了不同的证书,这仅在客户端上完成(如您在代码中所见)。 @Banshee 如果我没听错的话,您的读卡器中有两个证书,并且在首次访问时会提示您输入 PIN。我猜驱动程序会缓存此 PIN,以便从同一进程进行后续访问。检查驱动程序的设置(许多供应商提供 UI 应用程序来配置驱动程序)-也许您可以关闭 PIN 缓存。 没错,我有几个证书可供选择,它们是从卡复制到证书存储的。我的印象是不同的证书也意味着不同的别针。我知道 NETID(即复制和要求密码)也有一个密码缓存。我会检查两个证书上的 pin 码是否相同,但我不这么认为(几乎可以肯定,身份证随附的文件有 2 个 pin 码(一个用于认证,一个用于签名))。 @Banshee 在硬件设备中,每个设备通常有一个或两个引脚,而不是每个数据对象(证书、密钥等)。例如。 PKCS#11 标准只为 设备 本身定义了 uesr pin 和 admin pin。

以上是关于用于签名数据的强制引脚(SignedXml)?的主要内容,如果未能解决你的问题,请参考以下文章

我在用命令禁用驱动强制签名提示设置元素数据出错。该值受安全策略保

win10需要禁用驱动强制签名才能开机,但是改的时候出现了问题

系统测试模式是啥意思,怎么取消Win10测试模式

系统测试模式是啥意思,怎么取消Win10测试模式

Win10内核驱动强制签名,申请沃通 EV代码签名证书

windows10怎么禁用签名