gpt4 book ai didi

java - 使用 Java 的通用访问卡 (CAC) 身份验证

转载 作者:IT老高 更新时间:2023-10-28 21:15:56 26 4
gpt4 key购买 nike

我基本上是在找地方开始学习如何使用 java 与政府 CAC 卡进行交互。

最终,我的目标是了解如何使用 CAC 卡身份验证(通过 PIN 码)来授权访问使用 Tomcat/J2EE 服务器托管的网站。

但我需要从某个地方开始。所以我想我会先编写一个小型 java 程序来简单地从插入我键盘上的读卡器的 CAC 卡中读取 CAC 卡信息(DELL 键盘,数字键盘上方有 CAC 读卡器)。

通过谷歌搜索,我找到了 cacard java 项目 (https://cacard.dev.java.net/ ),它被 OpenSSO 项目所取代。但我似乎找不到如何使用它连接到卡、从卡中读取等的示例代码。

有谁知道我在哪里可以找到一些示例代码,以便我可以开始学习如何使用 java 与 CAC 卡进行交互?

谢谢

编辑:

在研究了更多之后,我在想,我可以在 server.xml 文件的连接器元素中设置 clientAuth="true" 吗?

http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

clientAuth:如果您希望 Tomcat 要求所有 SSL 客户端提供客户端证书才能使用此套接字,请将此值设置为 true。

最佳答案

您是在创建 Web 应用程序,还是尝试编写在客户端运行的软件(有点像您自己的 Web 浏览器)?

如果您正在创建一个 Web 应用程序,它几乎只是标准的客户端认证身份验证。证书来自硬件 token 这一事实对服务器而言并没有太大变化。如果您想接受 CAC 证书,您可以在服务器验证客户端证书时指定一组可接受的证书策略。 (策略验证是 PKIX 验证的标准部分。)如果此应用程序是针对政府客户的,您需要与他们的安全团队密切合作,以确保您的解决方案满足他们的要求,这可能是严格的。如果这是您的情况,请告诉我,我会用我们遇到的一些问题更新我的答案。

如果您正在编写客户端,并且需要访问物理阅读器,您可以使用 Sun PKCS #11 provider ,从 Java 1.5 开始。我已经尝试过这个提供程序,您可以在 another answer. 中了解更多信息。


在服务器上,您应该检查证书是否未被吊销。但是,其中一些 CRL巨大——我们有超过 100 Mb 的 CRL 文件,内置的 Sun 吊销检查器无法很好地扩展到这个大小。

您还需要确保在 Tomcat 的“信任” keystore 中拥有正确的根 CA 证书(政府根 CA 证书更难找到,因为他们希望确保用户正确验证它们)。我们还发现,除非用户手动将中间证书导入浏览器,否则 Firefox 不会发送整个证书链。

关于java - 使用 Java 的通用访问卡 (CAC) 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com