利用Google两步验证来增强你网站的安全性

密码学当中最安全的密码是一次性密码OTP(One Time Password),即每次使用的密码都不同。目前安全性要求比较高的系统,比如网上银行或公司vpn、财务等系统都使用了一些一次性密码方案,比较多的是RSA的token卡,它上面显示六位数字,每一分钟变化一次。YubiKey、短信验证等都算是OTP的实现。

但是这些方案都需要单独一种硬件支持。对于有大量用户的网站不太实惠,要增强安全性,还需要用户花钱买一个token卡,于是Google搞了一个”身份验证器”(Google Authentication)。Google公开算法,于是我们 就可以利用它来增加我们网站的安全性了。

312

wordpress可能通过这个插件来实现两步验证: http://wordpress.org/extend/plugins/google-authenticator/ ,但是rpc发布没有实现这样的功能,因为像live writer这样的工具并无这样的功能。

找到了一个类:google2fa ,可以很方便地在PHP中验证Google Authenticator用法如下:

$InitalizationKey = "WOLEGEQUXXXXXXXXXX";// Set the inital key

$TimeStamp	  = Google2FA::get_timestamp();
$secretkey 	  = Google2FA::base32_decode($InitalizationKey);// Decode it into binary
$otp       	  = Google2FA::oath_hotp($secretkey, $TimeStamp);// Get current token

echo("Init key: $InitalizationKey\n");
echo("Timestamp: $TimeStamp\n");
echo("One time password: $otp\n");

// Use this to verify a key as it allows for some time drift.

$result = Google2FA::verify_key($InitalizationKey, "123456");

var_dump($result);

© 2011, kangzj. 版权所有.

6 Responses to “利用Google两步验证来增强你网站的安全性”

  1. 帅哥 Says:

    我擦,终于更新了,不容易哇。

    [回复]

  2. qq头像 Says:

    是呃,嘎,一直没用过呃

    [回复]

  3. {$随机} Says:

    新年快乐.

    [回复]

  4. Louis Han Says:

    安全性有保证了 便利性没了

    [回复]

  5. 袋鼠精 Says:

    一个小博客而已,不怕黑,不用弄这么复杂的验证,嘿嘿!

    [回复]

  6. 高速香港空间 Says:

    稳定高速免备案香港空间,即买即用,仅售98/年 http://www.7e.hk/#gutou

    [回复]

Leave a Reply