CAC卡与“通用”智能卡有什么区别?

时间:2010-08-10 13:00:25

标签: security smartcard pkcs#11 cac

我们正在努力使我们的富客户端C ++ Windows应用程序能够使用DoD CAC卡。

我们使用第三方库来保护我们使用SSL的客户端/服务器通信,它识别/处理通用智能卡,但前提是证书是由自己的捆绑应用程序创建的。

为什么呢?证书不是证书吗?它们如何变化?

具体来说,任何人都可以向我指出精简的技术文档,该文档解释了相关标准规定的内容以及实施定义的内容吗?我已经尝试过查看实际的规范,但它们太详细了,而且我发现了非常模糊的文章,但没有回答我的问题。我正在寻找介于两者之间的东西。

2 个答案:

答案 0 :(得分:2)

我没有足够的评论意见,但我想同意@Jay。您可能需要配置此第三方库以信任DoD根证书,以便在CAC用户提供其客户端证书时,您的应用程序可以信任它。

DoD根证书是公开的: http://dodpki.c3pki.chamb.disa.mil/rootca.html

此外,如果您观察到的行为是客户端甚至没有被提示选择客户端证书,或者您没有观察到在数据包跟踪中发送的客户端证书,那么这也可能是因为您的服务器确实不相信国防部CA.当行为良好的服务器请求客户端证书时,它还会通告其信任的CA的可分辨名称(dn)。然后,行为良好的客户端将检查该列表,并将这些名称与它可用的cleint证书的颁发者进行比较。如果没有匹配,则客户端将发送“null”证书。我知道IIS / Apache和Firefox / IE / Chrome就是这样的。然而,Opera似乎没有基于广告发行人的歧视,并且会发送客户所在的任何证书。

答案 1 :(得分:0)

  • 证书是证书。证书通常由CA“创建”,而不是由智能卡供应商个性化软件“创建”。使用智能卡时,访问密钥非常重要。
  • 将智能卡视为CD-s。它们看起来都一样,但你需要知道磁盘上的格式。是的,大多数计算机都可以读取“通用”格式,但有些特殊软件可以在磁盘上写入特殊内容,有些则无法读取。

最后但并非最不重要的是,如果您的软件使用PKCS#11,那么只要您的卡有一个PKCS#11提供商(有几个CAC模块和“通用”供应商卡通常也附带一个)你不需要关心实际的卡片,因为PKCS#11抽象了细节。