0

所以我使用 Yubikey 已经有一段时间了,现在想将它集成到我的管理部分。

我在这里找到了一个很棒的课程:http ://code.google.com/p/yubikey-php-webservice-class

唯一的问题是,它会检查:

[yubikeytest.php]

if (md5 (substr ($otp, 0, 12).":".$_POST['username']) != $token_id)

这意味着 i 必须已经在数据库中有一个令牌 ID。

但我不知道如何创建原始令牌并将其放入数据库中,因为 $token_id 必须 = OTP 和用户名的 md5 哈希,但我们都知道 otp 是一次,因此永远不会 = 原始令牌。

我是不是做错了什么,我如何才能以尽可能少的麻烦来实现这一点?

我想要做的是保留我当前的身份验证,但是对于那些拥有/想要使用 yubiekey 进行身份验证的用户,他们可以向我们注册他们的密钥 <- 我想知道如何以及每次登录,这些用户在登录期间将被要求输入 yubiekey OTP。

请帮助,一旦我得到一个合适的解决方案,我会让任何其他用户都可以访问它,以使这个过程更容易,因为这个主题没有太多信息。

PS。另外,如果我正在寻找的内容已经在脚本中,请告诉我。

4

1 回答 1

4

YubiKey OTP 由两部分构成,最后 32 个字符是加密的 OTP,之前的字符(默认为 12 个)是静态公共 id,用于标识密钥。所以上面的代码只对公共 id 进行 md5 处理,您可以从给定密钥的任何 OTP 中获取。

对于 php 解决方案,还有 Yubico 维护的 php-yubico 项目:http ://code.google.com/p/php-yubico/

于 2012-04-26T08:19:04.793 回答