从浏览器读取智能卡

3

我正在开发一个PHP / MySQL应用程序,用于存储和详细说明一些数据,接下来,我需要将智能卡读卡器与浏览器(Chrome,Firefox,IE)进行接口,以提取并保存数据到MySQL数据库。

我找不到有用的东西来完成它,所以我在这里寻求帮助。有什么可能性可以做到这一点吗?


你找到了任何解决方案吗? - Ebrahim Ghasemi
2个回答

3
创建一个Java小程序,跳出沙箱并尝试使用javax.smartcardio库是相对可靠的唯一方法。由于这个库在javax中,不确定它是否存在,你可能会遇到额外的访问规则。
这个小程序应该被签名,并且用户需要表明这个小程序是可信任的。当然,计算机上必须安装相对新的Java运行时。javax.smartcardio默认只能使用PCSC智能卡读卡器,所以你必须确保有一个。此外,PCSC和javax.smartcardio假定ISO 7816兼容处理器卡。
之前,有时可以使用Java小程序来安装本地库以与智能卡通信,但在当前操作系统中,我肯定不会相信这种方法会起作用。
准备大量工作和测试。
更新 2016-12-24

小程序即将退出历史舞台 - 它们所依赖的插件在Java 9中已被弃用,但尚未删除。虽然不是直接的答案,但使用Java Web Start可能是解决方案。


目前在浏览器中,比如Web Crypto API,加密技术方面有很多思考。但是关于直接智能卡访问,似乎仍然停留在“思考”阶段而非实施阶段。在撰写本文时,安全令牌的访问权限似乎未被包括在内。


提供智能卡插件给浏览器是一种常见但有些棘手的方法。然而,这需要浏览器支持(对于每个单独的浏览器),管理员权限。许多浏览器试图远离此类插件结构,因此这种解决方案可能不具备未来性。
最后,您可以使用(已签名的)本地应用程序,并从浏览器中引用它。该应用程序可在各种操作系统的应用商店中提供。

亲爱的Maarten,经过3年了,这个答案还有其他解决方案和更新吗?(我的目标是IE9!) - Ebrahim Ghasemi
1
对于IE9???这已经过去3年了,你仍在寻找IE9的答案吗?答案是:不要在不受支持的浏览器上执行与安全相关的操作。小程序也不再受支持,这一点已经改变了。 - Maarten Bodewes
我目前工作的公司已经自主开发了一款产品,它不直接依赖于浏览器。相反,它更类似于Maarten Bodewes的最后一件作品。它可以在Mac、Linux和Windows上运行,从Windows XP到Windows 10 Anniversary都可以使用。如果您仍在寻找解决方案,我相信他们会很乐意与您讨论。如果您有兴趣,请给我发送私信。 - Thibaut Rey

0

很可能您需要开发本地应用程序,以便按需安装到浏览器中,并在完全信任的情况下执行,以访问计算机设备,例如读卡器或至少证书存储或系统API。

然后,您将为浏览器提供脚本接口,例如NPAPI或IE的ActiveX / COM或其他专有脚本技术。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接