根据这份oracle文档,Java3.0智能卡可以安装servlet,而不是传统的Java applet。这是相应的Oracle文档。
http://www.oracle.com/technetwork/articles/java/javacard-servlets-136657.html
开发人员不再需要创建单独的客户端应用程序来访问智能卡上的数据和资源。唯一需要的客户端界面是普通的web浏览器。智能卡应用程序现在是功能齐全的基于TCP的服务器。这些服务器应用程序是Java servlets,它们有一个完整的HTTP堆栈,允许它们处理GET请求、POST请求、标头、cookies、会话等。您可以使用行业标准SSL (安全套接字层)保护客户端(浏览器)和服务器(智能卡)之间的数据。
我的情况是,我想从我的网站与用户的智能卡进行交互。传统的方法,使用Java Applets内的HTML对我的网站不再支持,Java Web Start效率低下,对用户也不友好。
PIN验证就是一个简单的例子。智能卡上存储有一个4位数的pin。我的网站将提示用户输入他们的个人识别码,将他们的智能卡插入他们的读卡器。我的网站将能够发送必要的APDU命令,有他们输入的PIN到卡,并将能够接收响应APDU命令,让网络服务器知道PIN是否正确。
我的问题是,考虑到智能卡上执行的Servlet的功能,是否可以让我的网站与用户的智能卡进行交互?
如果是这样的话,有人能为我提供一些简单的伪或方向来实现这一点吗?我没有使用过servlet,但我可以学习。
发布于 2017-04-30 22:01:51
您所描述的是称为Java Card Connected edition的API的一部分。市场上大多数(如果不是全部) Java Card实现都是Java Card Classic版本。互联版的主要技术问题是,它需要具有24到32 KiB内存的智能卡。这听起来可能不是很多,但片上SRAM非常昂贵。高端“经典”卡的特点是大约8到12 KiB的内存。
要与网站进行某种交互,你需要某种连接。您需要以某种方式将此HTTP(S)请求转换为发送到卡并返回的数据包。只要没有安装相应的软件,您就无法将浏览器连接到智能卡。
当然,当涉及到将浏览器连接到智能卡时,有各种各样的解决方案。专有浏览器插件、PKCS#11模块、小程序。您已经命名了webstart和逐渐减少的Java (Standard Edition)小程序。所有这些都有自己的优点和缺点。在大多数情况下,Java Card Connected不能直接使用--不幸的是。
https://stackoverflow.com/questions/43684045
复制相似问题