如何在 Web 浏览器上使用智能卡

Posted

技术标签:

【中文标题】如何在 Web 浏览器上使用智能卡【英文标题】:How to use smart cards on web browser 【发布时间】:2018-07-11 08:15:56 【问题描述】:

我想从智能卡中获取信息。我想在浏览器上做。我已经有一个本地解决方案,我主要使用 python 和 pyscard 库。如何从浏览器上的智能卡中获取信息?浏览器无所谓,我只需要基于浏览器或基于 Web 的解决方案

谢谢

【问题讨论】:

这很复杂,因为浏览器通常使用 PKCS#11 接口,它的功能非常有限。有关粗略的想法,请参阅this question。 您可能想探索FortifyApp Architectures to access Smart Card from a generic browser? Or: How to bridge the gap from browser to PC/SC stack?的可能重复 【参考方案1】:

据我了解,本地解决方案有效,因为 Pyscard 可以访问主机并且可以执行一些低级操作。 浏览器访问受限,无法执行这些操作。

I found some relevant info here

【讨论】:

您认为这应该是评论(您还没有权限)。在这种情况下,请不要滥用 cmets 的答案帖子。但是,我认为这篇文章是部分答案,即在不存在完整答案的情况下对回答过程做出了一些贡献。这是一个值得赞赏的贡献。这就是为什么我尽力把它打磨成一个更明显的部分答案——它没有被删除。区别并不容易,但是这个已经足够好了。玩得开心。【参考方案2】:

要从读卡器获取信息,这些是可用的选项

1-ActiveX(不推荐)

在 Internet Explorer 中加载并包含的 ActiveX 组件 可以使用 javascript 代码使用的 API

它仅在 IE 浏览器中受支持,Microsoft 停止对 Internet Explorer 的支持 意味着IE会在短时间内死掉

2-Applet(不推荐)

开发与本地设备通信并使用 javascript 与小程序交互的小程序 需要在浏览器中配置 java 运行时。

3-创建在本地运行以与设备通信并通过 Web 套接字向浏览器发送响应的主机应用程序(推荐)

首选此方法,因为所有浏览器版本都支持 Web 套接字,并且不需要任何额外配置 您还可以在宿主应用程序中执行任何复杂的操作,没有任何限制。 我已在此repository 上附加了主机应用程序 C# 示例的示例

【讨论】:

以上是关于如何在 Web 浏览器上使用智能卡的主要内容,如果未能解决你的问题,请参考以下文章

如何使用HTML5改进移动Web应用开发

通过网络将系统音频流式传输到 Web 浏览器 (javascript)

如何在智能电视浏览器上对我的网站进行故障排除?

Java Web 应用程序可以访问远程工作站上的智能卡读卡器吗?

如何在移动 Android 智能手机上的 Chrome 浏览器中进行“硬页面重新加载”

响应式布局