usbkey证书认证的原理求解

cjdxzy2010 2013-04-09 08:18:42
以最常用的使用RSA证书、支持标准的CSP的key来说。
通常厂家会提供一个key驱动,安装完后,实际上就是安装注册了一个CSP
到window系统上,而且会在检查到usbkey插入的时候,将key里面的用户证书注册到证书库上,一般这个证书在"个人"下。

然后在自己的客户端应用程序上,利用wininet进行https连接请求,需要验证客户端证书的时候,枚举证书并设置关联的证书为上面那个证书库的用户证书,这个过程在http://www.codeproject.com/Articles/3898/Connecting-to-a-HTTPS-server-with-SSL-using-Winine,有详细介绍。但是始终想不明白的一个地方是
InternetSetOption(hRequest,INTERNET_OPTION_CLIENT_CERT_CONTEXT,(void*)pCert,sizeof(CERT_CONTEXT));
设置好后,winnet中的函数HttpSendRequest如何知道用户证书对应的CSP和usbkey,然后利用到usbkey中的私钥进行签名数据信息等操作。

真不知道这个用户证书如何和对应的usbkey的csp关联起来的,微软那些不开源的库里,究竟做了些什么工作,求高手指点。

...全文
521 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wellscho 2013-05-21
  • 打赏
  • 举报
回复
请问要输入三次才能进入下一级目录? 需要加data在HttpAddRequestHeaders? 谢谢 你能加我QQ么?我想请教你一些事情。41059241
u010440475 2013-04-24
  • 打赏
  • 举报
回复
你能加我QQ么?我想请教你一些事情。Q54452374
na2650945 2013-04-19
  • 打赏
  • 举报
回复
usbkey运行环境安装后会安装一个管理工具。 此工具会监控usbkey插拔。 usbkey插入的话。 会将key内的证书注册都ms的cert store。 此信息就包含csp和容器等信息。 也就是通过证书就可以与csp关联。 cryptapi有函数可以枚举到系统内注册的证书并且读取证书信息。

18,125

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧