代码之家  ›  专栏  ›  技术社区  ›  Biff MaGriff

我正在尝试廉价地实现双因素身份验证。我该怎么做?

  •  1
  • Biff MaGriff  · 技术社区  · 16 年前

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


    用户拥有的东西。
    用户就是这样。

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

    我在想,当一个用户注册使用我们的系统时,我们会给他们发送一个应用程序,让他们安装在自己的家庭系统上。应用程序基于定时随机算法生成密钥。我们的应用服务器有相同的算法,所以当用户提交他们的凭据和密钥时,我们知道他们是合法用户。

    这是一种有效的双因素身份验证方法吗?

    另一种方法是什么?

    有什么我应该注意的陷阱吗?

    谢谢你的帮助!

    8 回复  |  直到 16 年前
        1
  •  3
  •   Yann Ramin    16 年前

    是的,这是执行双因素身份验证的有效方法。令牌安全(计算机上的程序)当然只和计算机一样安全。如果它运行的窗口,所有的赌注都结束了。

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

        2
  •  3
  •   Eduardo Molteni    14 年前

    网格卡系统也是一种廉价的双向认证模式。

    enter image description here

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

        4
  •  2
  •   Sean Whitley    16 年前

    为什么不使用电话验证解决方案来取消互联网上的身份验证呢?这证明了更可靠的身份验证。我听说一家公司的电信号做过类似的事情,比如屏蔽VOIP号码。你应该去看看,而且很便宜。

        5
  •  2
  •   Will Hartung    16 年前

    所以,这不是一件奇怪的事。颁发的证书也是如此。

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

    一种流行的“廉价”技术是给手机发短信。用户登录后,计算机会向注册的电话号码发送一个短信代码,比如说,6位数字,然后需要输入该号码。显然,这是有问题的。并不是每个人都有手机,很多手机都是收短信费的,但在某些环境下它可以正常工作。

    类似地,语音应答系统可以给用户打电话,并向他们“读取”代码。当然,这会给公司带来电话费。

        6
  •  2
  •   RBerteig Keith Adler    16 年前

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

    史蒂夫·吉布森就是一个例子 Perfect Paper Password 系统。他开放了规范和算法,并提供了自己的封闭源代码实现。其他人已经构建了开源实现。事实上,他的系统可能并不完美,但对于解决问题的一种方法来说,这是一个有趣的想法。

    不管您选择实现什么系统,花一点钱让安全专家进行审查还是值得的。。。

        7
  •  1
  •   Zachary    16 年前