我需要编写一个代码来检查etoken中存在的数字证书的有效性。 我不熟悉etokens。任何人都可以回答我的以下问题,
我需要为此编写C ++程序。我们可以使用Microsoft提供的Cryptographic API(如CrypImportKey()CryptExportKey())来满足上述要求吗?
答案 0 :(得分:3)
“etoken”是阿拉丁生产的首批USB密码架之一的名称。你要求的通常被称为security token。这是一个带有自己内存的硬件设备,其中存储了证书和私钥。
令牌需要安装驱动程序才能正常工作。驱动程序集包括用于CryptoAPI的CSP(加密服务提供程序)的实现。 CSP负责将存储在令牌中的证书呈现给CryptoAPI。回答你的问题:
答案 1 :(得分:0)
关于您的第二个问题,我相信可以访问安全令牌上的私钥。安全令牌必须预先编程并以某种方式加载私钥。此外,我们最后一次更新证书时,我们使用发行人的Web界面在线完成,该界面安装了将新证书上传到设备的ActiveX模块。我不知道这个程序是否也上传了一个新密钥,但可能没有,因为我认为你不需要更改你的私钥来为自己创建一个新的公共证书(需要由发行人签名才能被信任)我相信)。
对不起,我可能没有多大意义,因为我对公钥基础设施的整体想法不熟悉。
如果其他人可以验证/宣告我的声明无效,请分享您的知识。
编辑:我发现了 Alladin 设备的硬件攻击:http://seclists.org/bugtraq/2000/May/48 基本上,可以在eToken上读取日期,但它需要一个直接的硬件接口来连接设备的板载内存。