我试图以便宜的方式实现2因素身份验证。我该怎么办?

时间:2010-05-12 21:28:36

标签: security authentication

好的,我需要3个中的2个。

用户知道的东西 用户拥有的东西。
用户的东西。

我有一个暴露在互联网上的系统,我们需要客户以安全的方式连接以满足我们的安全标准。

我正在考虑当用户注册使用我们的系统时,我们会向他们发送一个他们在家庭系统上安装的应用程序。应用程序基于定时随机性算法生成密钥。我们的应用服务器具有相同的算法,因此当用户使用密钥提交其凭据时,我们知道他们是合法用户。

这是2因素身份验证的有效方法吗?

这样做的另一种方式是什么?

我应该注意哪些陷阱?

感谢您的帮助!

8 个答案:

答案 0 :(得分:3)

是的,这是执行双因素身份验证的有效方法。令牌安全性(计算机上的程序)当然只有计算机安全。如果它正在运行Windows,则所有投注均已关闭。

您还可以访问RSA或其他供应商并许可其SecurID(或其他品牌)令牌以及必要的中间件。它是一个经过验证的解决方案,至少还有其他人需要责备。

对于基于时间的系统,通常有一个允许的“窗口”,其中令牌有效(超过翻转点)以允许时间偏斜。您还可以使用NTP服务器(使用SNTP,易于实施)进行检查,以获得准确的时间信息。

与所有安全系统一样,存在许多陷阱。他们很难做对。被警告。买保险;)

答案 1 :(得分:3)

网格卡系统,它也是一种廉价的双向身份验证架构。

enter image description here

您可以使用随机数字或字母生成网格卡,并将值存储在服务器上。然后你给每个用户一张卡并存储卡的序列号。稍后,在登录时,您要求行和列中的令牌,然后检查服务器上的值。

答案 2 :(得分:2)

您可以使用X.509客户端证书吗?他们是免费的。

答案 3 :(得分:2)

为什么不使用手机验证解决方案从互联网上进行身份验证?这证明了更可靠的身份验证。我听说有一家公司Telesign做了这件事,比如阻止VOIP号码。你应该检查一下,它很便宜。

答案 4 :(得分:2)

计算机上的应用程序的“问题”是,它不是某人拥有的东西。这是“任何人”都可以拥有的东西。该应用程序可以(可能)在整个地方安装,重新安装和复制。很快,家用电脑“拥有”它,办公室电脑“拥有它”,笔记本电脑 - 它们刚丢失的那台,就是 - 拥有它等等。

所以,这不是一个单一的事情。发行的证书也是如此。

不是说它完全无效,只是它不是唯一的,这可能是一个潜在的问题。

流行的“廉价”技术是手机的短信息。该人登录,然后计算机向注册的电话号码发送一个带有6位数的短信代码,然后需要输入该号码。显然,这有问题。不是每个人都有手机,许多人都收取短信等费用。但它可以在某些环境中运行良好。

类似地,语音响应系统可以在他们的电话上呼叫用户并“读取”他们的代码。当然,这可能会给公司带来电话费。

答案 5 :(得分:2)

总是可以选择用包含一次性密码列表的纸张替换昂贵的密钥卡。您仍然需要滚动自己的后端以匹配密码生成算法(不要忘记为用户提供一种简单的方法,当他忘记越过最后一个,或者越过一个太多时重新同步),以及作为管理任务,让用户在没有使用任何密码的情况下被困在现场之前收集更多纸张。

这方面的一个例子是Steve Gibson的Perfect Paper Password系统。他使规范和算法开放,并提供了他自己的闭源实现。其他人已经构建了开源实现。他的系统实际上可能并不完美,但对于解决问题的方法来说,这是一个有趣的想法。

无论您选择使用哪种系统,在安全专家的审核中仍然值得花一点钱......

答案 6 :(得分:1)

或者您可以使用像我们这样的开源解决方案:http://www.wikidsystems.com/community-version

答案 7 :(得分:1)

除了登录/密码之外,为什么不为他们分配证书。