加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用来自USB令牌的证书和密钥进行数字签名

发布时间:2020-12-16 10:53:23 所属栏目:百科 来源:网络整理
导读:我想使用用户的密钥和来自USB令牌(加密狗)的证书来签署文件. 我一直在搜索stackoverflow和其他网站,但除了.NET框架中的一些好的功能(我没有使用)之外,它没有得到任何有用的东西. 似乎由于密钥未公开,加密由硬件本身完成.这是否意味着每个硬件制造商都提供自
我想使用用户的密钥和来自USB令牌(加密狗)的证书来签署文件.

我一直在搜索stackoverflow和其他网站,但除了.NET框架中的一些好的功能(我没有使用)之外,它没有得到任何有用的东西.

似乎由于密钥未公开,加密由硬件本身完成.这是否意味着每个硬件制造商都提供自己的API,并且没有通用的方法来解决这个问题?

此外,我读到,一旦将令牌插入计算机,其证书就会被加载到系统存储中.是否可以使用商店的证书?如何在商店中识别和访问此类证书?私钥怎么样?

当证书可以从.p12或.pfx文件中提取时,我已经使用OpenSSL进行数字签名.

如果我在某个地方错了,请纠正我,我是这个话题的新手.

解决方法

有2种选择:

> PKCS#11.几乎每个USB加密令牌和智能卡供应商都为您可以调用的PKCS#11提供驱动程序DLL.我需要注意的是,PKCS#11接口规范非常松散,这导致了不同供应商之间的怪癖和不兼容性.即您可能需要在一个设备中使用一组证书属性,在另一个设备中使用不同的属性集.
> CryptoAPI.大多数供应商都提供了一个CryptoAPI模块(CSP),它将证书“映射”到Windows证书存储中,您可以像在Windows证书存储中使用任何证书一样使用它进行签名.这意味着在Windows API中使用各种Crypt *,Cert *和类似功能.

我不认为OpenSSL可以用于您的任务 – 您需要使用CryptoAPI或PKCS#11.

我们的SecureBlackbox产品提供统一的高级接口,用于根据各种加密标准和使用PKCS#11和/或CryptoAPI对数据进行签名.仍然在PKCS#11的情况下(或完成签名的系统的运算符)需要知道PKCS#11驱动程序DLL的路径. SecureBlackbox可以使用其库版本从C中使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读