1

我正在开发需要非常高安全性的 Web 应用程序 - 要求之一是您需要密码和第二个因素才能获得访问权限 - 例如。令牌、指纹扫描仪、磁卡等

我的问题是:网络浏览器是否有任何合理的方式可以从读卡器或指纹扫描仪等设备访问数据并在登录过程中发送数据?Java小程序,浏览器插件?还有什么?还是令牌是唯一的选择?

编辑:我发现了一些关于双向证书身份验证的内容,其中客户端和服务器交换他们的证书 - 客户端证书似乎可以用智能卡保护,因此用户必须在登录过程中将其放入读卡器中。也许有人对此了解更多?

4

4 回答 4

1

我害怕与外部硬件交互,你被困在编写本机浏览器插件或 ActiveX 控件(在 IE 的情况下)。但是,一些磁卡读卡器实际上会像键盘一样工作(即,它们会“键入”从卡中读取的数据,然后是某种控制字符,如 \n) - 所以通过一些 focus() 技巧,你可以想象无需使用纯 JS 即可捕获读者的输入。

于 2011-04-27T22:31:52.293 回答
1

对于网络应用程序,我建议使用手机。当用户尝试登录时,他/她会收到一条短信,除了他的密码外,他还必须输入该短信。

有许多服务提供商通过简单的 REST API 以可承受的费用提供发送文本消息。当安全是一个大问题时,额外的成本不应该是一个大问题。

于 2011-04-27T22:41:54.870 回答
1

我有几个建议:

  • 像一些银行一样,给客户一个包含进入所需信息的文件。然后加密文件并检查它的哈希值。(可能是 sha1 和 md5?)您唯一关心的是文件被盗。
  • 从蒸汽中获取灵感,每当用户从新计算机(和/或浏览器和/或 IP 可能?)登录时发送验证电子邮件
  • 此外,您可以为用户提供预定义密钥的列表(通过邮件、电子邮件或亲自),然后每当用户需要登录时,要求随机密钥,以及在系统中使用时丢弃它. 缺点是当它们用完时你必须分发一个新的清单。(我以前见过这样的系统工作得很好。)

希望这些都是任何灵感。

于 2011-04-27T23:16:51.107 回答
0

您可能会考虑的一件事是实施类似于暴雪的魔兽世界身份验证器。这是一个 8 位代码,每 60 秒更改一次,并与特定的序列号相关联。您将序列号与用户帐户记录一起存储,并根据该记录和当前时间计算预期代码。这是一个对抗名副其实的高度积极的黑客舰队的系统,所以至少它是相当安全的。

主要好处是您不必直接与硬件交互,用户可以从任何地方进行身份验证。缺点是您没有与检查物理硬件相同的安全感。

于 2011-04-27T23:10:50.253 回答