从Web浏览器访问智能卡读卡器?

问题描述 投票:22回答:7

是否可以从运行在同一台机器上的Web浏览器访问连接到计算机的智能卡读卡器,即从ActionScript,JavaScript或其中运行的任何脚本?

例如,我在ActionScript中阅读了有关flash.external.ExternalInterface类的内容。它可以用于访问智能卡读卡器还是Sandbox难以穿透?

javascript actionscript-3 browser smartcard smartcard-reader
7个回答
9
投票

问:是否可以从运行在同一台计算机上的Web浏览器访问连接到计算机的智能卡读卡器?

答:是的,这是可能的。我能够通过使用签名的JAVA小程序来做到这一点。 java applet需要签名,因为它需要用户授予访问系统文件/硬件的权限(就像让applet为你编写/编辑/删除文本文件一样)。

为何选择java?我使用的智能卡读卡器已经有一个JAVA API,它也有使用java访问它的例子。但这些例子是以摆动的方式编码的。 (就像一个独立的桌面应用程序)我所做的只是将java swing代码移植到浏览器上的applet。我成功地使用此applet进行登录并通过要求智能卡,用户名和密码登录网站/ webapp。我会说非常安全。

源代码?尽管我想分享它,但我必须遵守公司合同才能不共享代码。只需使用java查找示例智能卡访问,然后将其移植到applet(用于Web)

我希望这有帮助


5
投票

您还可以查看此测试版原生插件:

https://github.com/ubinity/webpcsc-firebreath

它是基于火呼吸框架的跨浏览器/跨平台插件,暴露了PCSC API的子集。


4
投票

当这个提议“Smart cards in browsers”实现时,我们也可以使用JavaScript。


3
投票

我在大约2012年做了同样的工作,那时候,我曾在之前提供Java Applet的工作上工作过。

如今[2015年12月],由于“最近”的安全问题而使用Java Applet,以及在解除对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 +智能卡和移动应用程序可能会成为现实。

让整个国家拥有带智能卡的ID,许多政府服务已经使用webapps,并且没有简单的方法来连接这两者,这是一种浪费。

干杯。


2
投票

您可以使用签名的Java小程序来访问阅读器。允许签名的小程序访问硬件外围设备,可以通过Java Crypto API访问智能卡读卡器。

希望这可以帮助。


0
投票

如果您可以访问文件系统上的智能卡,例如连接USB驱动器并显示为单独的磁盘,那么您只需使用flash.net.FileReference即可。


0
投票

如果您要坚持使用浏览器,则无法使用ActionScript / Flash实现此目的。

Adobe AIR可以执行此操作,但是您必须构建一个用户在使用之前必须安装的应用程序。

像这样的东西(AIR):http://cookbooks.adobe.com/post_Mass_Storage_Device_Detection_AIR_2_0-16747.html

© www.soinside.com 2019 - 2024. All rights reserved.