2010-08-10 79 views
4

我们正试图使我们的富客户端C++ Windows应用程序能够使用DoD CAC卡。CAC卡和“通用”智能卡有什么区别?

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

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

具体而言,任何人都可以指出我精简的技术文档,这些文档解释了相关标准要求的内容以及仍定义了哪些实现?我试过看实际规格,但它们太详细了,我发现了非常模糊的文章,不能回答我的问题。我正在寻找之间的东西。

+0

他们可能会说他们有自己的CA?换句话说,如果证书上的供应商证书是可信的,那么这些证书是可读的,但只能是可信的。 – Jay 2010-09-06 18:06:28

回答

2

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

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

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

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

最后但并非最不重要的是,如果您的软件使用PKCS#11,那么只要您的卡有PKCS#11提供程序(有几个CAC模块和“通用”供应商卡通常附带一个也不需要关心实际的卡片,因为PKCS#11将详细信息提取出来。

+0

我们的组件提供商(显然使用PKCS#11)告诉我们他们不支持由“其他”提供者创建的证书。也许这是一个单独的问题......但我们仍然需要了解这应该如何工作。你能指出我们在网上有什么好的文档吗? – 2010-08-12 14:20:41