我们正在尝试使我们的富客户端C ++ Windows应用程序能够利用DoD CAC卡。
我们正在使用第三方库来使用SSL保护我们的客户端/服务器通信,并且它可以识别/处理通用智能卡,但前提是证书是由其自己的捆绑应用程序创建的。
为什么?证书不是证书吗?它们如何变化?
具体地说,有人能指出我简明扼要的技术文档,这些文档解释了相关标准规定的内容以及实现定义的内容吗?我尝试查看实际的规格,但是它们太详细了,并且发现非常模糊的文章,无法回答我的问题。我正在寻找介于两者之间的东西。
最佳答案
我没有足够的意见要发表,但我想同意@Jay。您可能需要配置此第三方库以信任DoD根证书,以便当CAC用户提供其客户端证书时,您的应用程序可以信任它。
DoD根证书可公开获得:
http://dodpki.c3pki.chamb.disa.mil/rootca.html
同样,如果您观察到的行为是什至没有提示客户端选择客户端证书,或者您没有观察到数据包跟踪中发送的客户端证书,则这也可能是因为您的服务器不信任客户端证书。国防部当行为良好的服务器请求客户端证书时,它还会通告其信任的CA的专有名称(dn)。行为良好的客户将检查该列表,并将这些名称与可用的cleint证书的发行者进行比较。如果没有匹配项,则客户端将发送“空”证书。我知道IIS / Apache和Firefox / IE / Chrome就是这种方式。但是,Opera似乎并没有根据广告发布者进行区分,而是会发送客户所拥有的任何证书。
关于security - CAC卡和“通用”智能卡有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3449153/