Java 3.0智能卡Servlet可以与Web服务器交互吗?

时间:2017-04-28 15:39:48

标签: java servlets smartcard

根据这个oracle doc,Java 3.0智能卡可以安装servlet而不是传统的Java applet。这是相应的Oracle Doc。

http://www.oracle.com/technetwork/articles/java/javacard-servlets-136657.html

“开发人员不再需要创建单独的客户端应用程序来访问智能卡上的数据和资源。唯一需要的客户端界面是普通的Web浏览器。 智能卡应用程序现在是功能齐全的基于TCP的服务器。这些服务器应用程序是Java servlet,它们具有完整的HTTP堆栈,允许它们处理GET请求,POST请求,标头,cookie,会话等。 您可以使用行业标准SSL(安全套接字层)来保护客户端(浏览器)和服务器(智能卡)之间的数据。“

我的情况是我想从我的网站与用户的智能卡进行互动。不再支持在我网站上的HTML中使用Java Applet的传统方法,Java Web Start效率低下且用户不友好。

一个简单的例子是PIN验证。一个4位数的引脚存储在智能卡上。我的网站将提示用户输入他们的PIN,将他们的智能卡插入他们的读卡器。我的网站将能够将已输入PIN的必要APDU命令发送到卡,并且能够接收响应APDU命令,让Web服务器知道PIN是否正确。

我的问题是,考虑到在智能卡上执行Servlet的功能,是否可以让我的网站与用户的智能卡进行交互?

如果是这样,有人可以给我一些简单的伪或指示来完成这个吗?我没有使用servlet,但我可以学习。

1 个答案:

答案 0 :(得分:0)

您所描述的是API的一部分,称为Java Card Connected 版本。大多数 - 如果不是全部 - 市场上的Java Card实现是Java Card Classic版本。连接版的主要技术问题是它需要具有24至32 KiB内存的智能卡。这可能听起来不是很多,但是片上SRAM非常昂贵。高端“经典”卡具有大约8到12 KiB的RAM。

要与网站进行某种互动,您需要某种连接。不知何故,您需要将此HTTP(S)请求转换为发送到卡并返回的数据包。只要没有安装任何软件,您就无法将浏览器连接到智能卡。

当涉及到将浏览器连接到智能卡时,当然有各种解决方案。专有的浏览器插件,PKCS#11模块,小程序。您已经命名为webstart和逐渐减少的Java(标准版)小程序。一切都有其优点和缺点。在大多数情况下,Java Card Connected不直接适用 - 不幸的是。