如何设置一次性密码验证?

时间:2009-02-12 06:01:56

标签: authentication one-time-password

我有一个家庭网络,我远程访问了很多。但我担心安全问题。虽然我有强密码,但我担心有人会获取我的密码并使用它来获取访问权限。

我听说过“一次性密码”,甚至在我的大学里使用它们。我们只需按下设备上的按钮(或在手机上运行应用程序),即可获得生成的密码,该密码可在下一分钟左右使用。

  • 我怎样才能设置类似的东西?
  • 是否有易于使用和设置的系统?
  • 有没有人玩过其中一个系统的SDK?
  • 我在哪里可以获得入门套件?

编辑:我正在运行一个混合的Linux和Windows网络,我模糊地希望在两个操作系统上使用它进行身份验证。 (不,没有域控制器,但我想可以使用Samba设置一个。)

5 个答案:

答案 0 :(得分:3)

S / Key适用于低成本OTP实施。 但是,如果你真的很担心它,那么你也会担心你的会话在被启动后被劫持。在这种情况下,您可能会考虑使用SSH隧道来加密流量。一旦您设置了访问权限,SSH还可以更好地通过它挖掘其他应用程序。最后,你没有一个简单的方法随身携带SSH客户端(或者不信任其他人的SSH客户端),你可以从自己的服务器上提供一些基于Web的SSH客户端 - 所以它在你的控制之下,但可以从任何浏览器获得。

答案 1 :(得分:2)

在Linux上,它叫做S / Key:here

不是按钮Gizmo,而是您播种它并打印出一次性密码列表随身携带。要使它与混合环境一起工作,你需要让它在你的Windows机器上工作,然后让Linux机箱从那里获得认证,或者(更容易)让它在Linux上运行然后将它链接到Samba,以便Windows可以对其进行授权。

Google是你的朋友。

答案 2 :(得分:0)

一种方法可以如下: -

您需要制作一个程序,该程序将生成一个密码,该密码仅在特定时间范围内由您的家庭系统接受。

对于前。运行程序时,输出将在特定的持续时间内有效 将被您的家庭安全系统接受,因为系统也会在匹配哈希时生成相同的输出,诀窍是在两个位置获得相同的哈希值。

我想这需要更多头脑风暴!!!!

答案 3 :(得分:0)

作为renegadeMind帖子的附录,一种方法是在两端创建一个生成一系列随机数的程序。伪随机数生成器(PRNG)的一个属性是,如果用相同的种子启动它们,它们将继续生成相同的随机数序列。因此,根据您的经验(或技术可用性),您可以将网络设置为每x分钟生成一个新密码。然后你可以携带一个可以在手机或其他嵌入式硬件上运行的软件来计算PRNG的顺序中的哪一步,然后为你列出当前的密码。

说过系统的安全性将仅限于您选择的种子以及您选择每个密钥有效的时间。

除此之外,可能还有一个软件解决方案可以帮到您。恕我直言,最好采用现有的实施方案,然后重新发明轮子。

编辑:维基百科有一篇好文章here。关于特定OTP技术的部分可能是最相关的。

祝你好运!

wiki article on PRNG

答案 4 :(得分:0)

您需要确定的第一件事是认证协议将成为您的标准。我推荐Radius,特别是对于企业中的双因素身份验证。所有主要的VPN&都支持Radius。网络提供商以及所有主要的2FA提供商。

然后,考虑您要保护的服务。对于linux,这通常意味着PAM。幸运的是,通过pam将2FA添加到linux是非常轻松的:http://www.wikidsystems.com/support/wikid-support-center/how-to/pam-radius-how-to/。对于Windows服务,您需要通过ISA或VPN路由它们。

您可以使用MS radius插件IAS / NPS配置所有半径请求以通过AD。 http://www.networkworld.com/news/2010/050710-two-factor-authentication-through-windows-server.html?source=nww_rss

最后,在选择2FA解决方案时,请确保它们支持半径。

对于SDK,这是每个供应商的情况。这是我们的链接:http://www.wikidsystems.com/downloads/network-clients

hth,尼克