我需要开发一个java applet,用于Tomcat 6(服务器)和SmartCard“ IDGo 300 ”(客户端)之间的相互身份验证。
为了做到这一点,我想到了以下方案:
我有一些问题:
答案 0 :(得分:0)
可行吗?是。这是实用的吗?不,我会争论一个厚厚的Java应用程序。
首先,您只需发送证书即可进行身份验证。您还需要一些挑战响应(在输入PIN后,智能卡上的私钥创建的签名)。
其次,您需要特殊权限才能使用Applet中的任何硬件。这意味着您必须更改客户端的权限,或者您可能必须对Applet进行签名,之后用户必须接受该特定任务的Applet。
小程序具有非常特定的生命周期。您可能不希望将卡的删除与Applet的生命周期同步。用户可能会阻止断开连接时发送的响应。您可以在单独的帖子中使用waitForCardAbsent()
测试卡是否已被删除。
如果您不能信任连接(没有SSL的HTTP),那么您就不能信任Applet代码。用户可能不希望将其PIN输入不受信任的代码。
如果您想支持多个浏览器和Java运行时,您将遇到无数问题。
作为一个小问题,javax.smartcardio
包可能并不总是可用;它不在javax
没有。