1

我在我的网站中使用两步验证,使用Google Authenticator. 我将这个 php 库用于Google Authenticator. 它工作正常,但现在我想生成backup codes以供以后使用,但该库中没有生成backup codes.

我想知道它的算法backup codes以及如何在 php 中实现它。

4

1 回答 1

2

无法复制算法

目前不支持此功能,以减少攻击面。目前,谷歌没有计划增加这个功能。

实际上,这不仅仅是复制算法的问题(这很容易)。您还需要获取算法生成代码的密钥。目前,Google Authenticator 没有提供获取此密钥的方法,也没有计划这样的功能。

第 235 期的更多信息:Is there an api to get the current TOTP from another app

解决方案 1:PAM 模块

PAM 模块可以向任何启用 PAM的应用程序添加双因素身份验证步骤。此模块中支持紧急刮码。你将不得不做一些 shell 脚本并用你的 php 代码调用它们。

解决方案 2:使用另一个为您工作的 php API

如果您使用的是 Apache 服务器,请下载实现 HOTP 和 TOTP 的免费 LGPL PHP 库,称为 multiOTP。这个库包括一个可以集成到 FreeRadius 中的命令行版本。

  • 在您的服务器上安装 FreeRadius
  • 按照 multiOTP 提供的说明将 multiOTP 集成到 FreeRadius
  • 使用 Apache 中的 mod_auth_radius 进行半径身份验证

MultiOTP 与支持 TOTP 和 HOTP 的 Google Authenticator 完全兼容。它支持带有 10 个代码的紧急临时密码。

于 2014-06-12T08:21:43.517 回答