2015-06-18 38 views
0

我的老板给了我一张空白支票,以便开发一个极其安全的登录表单。我一直在研究如何使用用户名,密码和验证码来做到这一点。这个问题涉及到密码输入。我相信这样做是实现虚拟键盘的最佳方式如何实现安全登录表单的虚拟键盘?

虚拟键盘 其余发送到前端有10号的数组,该数组中的每个数字表示为将要呈现在关键的位置风景。用户将使用此生成的键盘键入他的密码,然后按Login。发布请求会将在虚拟键盘中按下的键的位置发送到后端。后端将把位置与实际引脚使用数字相匹配。

我的问题:

  1. 这是实现此组件的正确方法,我失去的东西吗?
  2. 有没有人有这样的经验来分享一些有关良好实践,链接或任何技术知识的知识?

也许不是一个确切的问题,但我认为这可能有助于了解这个组件在银行应用程序中非常常用的知识。

注意:显然,所有请求和响应都会与令牌一起使用以确保安全。

+0

您可能想要通过CertiVox查看M-Pin。这是一个LOA 3解决方案,可以摆脱您存储凭据的需要,在JavaScript中使用PIN提供2FA,因此无需插件,并正在被益百利,NTT和其他公司使用。它也是开源的,还有一个社区增加。 –

+0

注意:完全披露我是CertiVox的首席洗瓶机。 –

回答

1

这会损害最简单的通用键盘记录木马,但它不能阻止:

一个。更复杂的现代木马程序,例如,在登录页面上每次点击时对鼠标下的内容进行迷你屏幕截图,特别是默认虚拟键盘;

b。任何关心你的网站的东西都可以专门针对它并解决你的代码。

最终你不能赢得客户端木马(man-in-the-browser)攻击。攻击者的代码是从更高级别的特权开始工作的,而不是你可以做的任何事情来防御,攻击者可以解决问题。

充其量你可以让它变得更加恼人,而不是对攻击者来说是值得的。这很容易成为军备竞赛。但是,您采取的任何措施都会伤害您网站的可用性和可访问性。对于大多数网站来说,虚拟键盘所提供的有限保护远远超出了客户的不便。

+0

我同意你的看法,而且这对密码管理员也不太合适。为了防止密码被键盘记录器窃取,您可能会削弱所使用的密码,这是一个更大的风险。 – haxim