我正在开发需要非常高安全性的Web应用程序 - 其中一个要求是您需要密码和第二个因素来获取访问权限 - 例如。令牌,指纹扫描仪,磁卡等。
我的问题是:webbrowser是否有任何合理的方式从读卡器或指纹扫描仪等设备访问数据并在登录过程中发送? Java applet,浏览器插件?别的什么?或者令牌只是选项?
编辑: 我发现了一些关于双向证书身份验证的东西,其中客户端和服务器交换了他们的证书 - 似乎客户端证书可以用智能卡保护,因此用户必须在登录过程中将其放入读卡器。也许有人知道更多关于它的事情?
答案 0 :(得分:1)
我害怕与编写本机浏览器插件或ActiveX控件(在IE的情况下)的外部硬件进行交互。然而,一些磁卡读卡器实际上会像键盘一样(即他们将“键入”他们从卡中读取的数据,然后是某种控制字符,如\ n) - 所以有了一些焦点()技巧,你可以想象捕获阅读器的输入,而不使用纯JS。
答案 1 :(得分:1)
对于网络应用程序,我建议使用手机。 当用户尝试登录时,除了他的密码之外,他/她还会收到他必须输入的短信。
有许多服务提供商通过简单的REST API提供发送文本消息,价格合理。当安全性成为一个大问题时,额外的成本不应该是一个大问题。
答案 2 :(得分:1)
我有一些建议:
希望这有任何启发。
答案 3 :(得分:0)
你可能会考虑的一件事就是实施类似于暴雪的魔兽世界认证者。它是一个8位数的代码,每60秒更改一次,并与特定的序列号相关联。您将序列存储在用户帐户记录中,并根据该值和当前时间计算预期的代码。这是一个反对真正具有高度积极性的黑客的军队的系统,所以至少它是相当安全的。
主要好处是您不必直接与硬件接口,用户可以从任何地方进行身份验证。缺点是你没有像检查物理硬件一样的安全感。