使用插入客户端PC的USB令牌在Java Web应用程序中进行数字签名验证

时间:2016-05-14 06:54:21

标签: digital-signature

所有 我是Sumit,我正在使用基于Java的Web应用程序,该应用程序首先需要使用用户名,密码进行两级身份验证,然后使用CA颁发的用户数字签名(存储在USB令牌上)。 因此,基于Java的Web应用程序可以在服务器上运行,并且可以通过客户端Web浏览器访问。并且Web用户在他/她的PC上插入他/她的USB令牌以进行身份​​验证,因此Web应用程序如何能够从USB令牌读取公钥并将其发送到服务器以通过浏览器进一步验证。是否有用于执行此操作的JavaScript库?浏览器如何访问USB令牌事件并从该USB令牌获取公钥?任何人有任何想法或例子请帮助我。自从过去15天以来,我一直在谷歌搜索这么多,但没有找到任何更好的解决方案。

非常感谢您的帮助。

提前感谢。

1 个答案:

答案 0 :(得分:1)

USB令牌是智能卡类型PKCS#11吗?你有适合你的操作系统的驱动程序吗?

在这种情况下,您可以配置需要客户端身份验证的服务器SSL / TLS连接。例如,使用Apache和mod_ssl使用该指令 SSLVerifyClient需要

用户连接到https URL后,浏览器将请求用户证书,执行电子签名,并将其与证书的公共部分一起发送。在服务器中,您可以获取内容

您无法使用javascript执行此操作,因为不允许javascript访问PC资源。在好的时候你可以使用Java,但现在Chrome,Edge或新版本的JDK都没有支持。在其他浏览器中是一个挑战