是否可以从运行在同一台计算机上的Web浏览器访问连接到计算机的智能卡读卡器,即从ActionScript,JavaScript或其中运行的任何脚本?
例如,我在ActionScript中阅读了有关flash.external.ExternalInterface
类的内容。它可以用于访问智能卡读卡器还是Sandbox难以穿透?
答案 0 :(得分:9)
为什么选择java?我使用的智能卡读卡器已经有一个JAVA API,它也有使用java访问它的例子。但这些例子是以摆动的方式编码的。 (就像一个独立的桌面应用程序)我所做的只是将java swing代码移植到浏览器上的applet。我成功地使用此applet进行登录并通过要求智能卡,用户名和密码登录网站/ webapp。我会说非常安全。
源代码?尽管我想分享它,但我必须遵守公司合同才能不共享代码。只需使用java查找示例智能卡访问,然后将其移植到applet(用于Web)
我希望这会有所帮助
答案 1 :(得分:5)
您还可以查看此测试版原生插件:
https://github.com/ubinity/webpcsc-firebreath
它是基于firebreath框架的跨浏览器/跨pltaform插件,展示了PCSC API的一个子集。
答案 2 :(得分:4)
当此提案“Smart cards in browsers”生效后,我们也可以使用JavaScript。
答案 3 :(得分:3)
我大约在2012年做了同样的工作,那时候,我在之前提供Java Applet的工作上工作过。
如今[2015年12月],由于“最近”的安全问题,以及在解除对Java Applet的支持后使用Java Applet更不合理,并且本机插件技术也将停止使用。
无论Java Applet当前有用,接受@Glen Allen的答案,我不受合同约束,这里是一个示例Applet的开源代码: https://github.com/ist-dsi/signature
它建立在论文工作的基础上,它以这种格式生成文档:http://www.w3.org/TR/xmldsig-core/有关为什么可以在MsC论文的摘要中找到的更多信息https://fenix.tecnico.ulisboa.pt/downloadFile/395139415358/resumo.pdf(作者是一位更好的工程师但是,与论文作者相比,如果你想知道事物的艺术状态,它可能是一个很好的开始,虽然很旧)
事后看来还有更多的要求,不知道在我给你的代码上做了一些奇怪的技术选择,只是忽略那部分:)
其中一个答案暗示了PKCS_11和开放标准。也许这个技巧存在于智能卡读卡器驱动程序中,该驱动程序在客户端自动设置证书基础设施,我记得要通过大量的箍来设置我的ID卡的智能卡与Mac OS X上的读卡器与Chrome [AFAIK使用Apple的密钥库设置智能卡读卡器并不容易,也许当时也不容易配置Chrome以便它使用客户端身份验证并请求访问Apple的密钥库]。
也许NFC +智能卡和移动应用程序将是您的最佳选择。
让整个国家拥有带智能卡的身份证,许多政府服务已经使用网络应用程序,以及没有简单的方法来连接两者,这是一种浪费。
干杯。
答案 4 :(得分:2)
您可以使用已签名的Java小程序来访问阅读器。允许签名的小程序访问硬件外围设备,可以通过Java Crypto API访问智能卡读卡器。
希望这有帮助。
答案 5 :(得分:0)
如果您可以访问文件系统上的智能卡,例如连接USB驱动器并显示为单独的磁盘,则只需使用flash.net.FileReference
。
答案 6 :(得分:0)
如果您要坚持使用浏览器,则无法使用ActionScript / Flash实现此目的。
Adobe AIR可以执行此操作,但之后您必须构建一个用户在使用之前必须安装的应用程序。
像这样(AIR): http://cookbooks.adobe.com/post_Mass_Storage_Device_Detection_AIR_2_0-16747.html