【问题标题】:Understanding How Google Authenticator app works了解 Google Authenticator 应用程序的工作原理
【发布时间】:2015-11-18 06:14:07
【问题描述】:

我见过很多两因素身份验证应用程序,例如 google 身份验证应用程序。

该应用离线工作,每 30 秒重置一次手机上的密钥。

那么服务器如何知道哪些密钥是有效的?

我无法理解这个?

如果我要自己创建这样的应用程序。我该怎么做?

【问题讨论】:

  • 将当前时间作为输入,然后将其散列成代码。您可以通过故意将手机设置为错误的时间来测试它:身份验证器停止工作。

标签: android ios cordova phonegap-build google-authenticator


【解决方案1】:

Google 身份验证器使用Time-based One-time Password Algorithm。它使用当前时间和共享密钥来计算代码。只要设备和服务器的时间设置正确,生成的代码就会生效。

【讨论】:

    【解决方案2】:

    Google Authenticator 使用 2 种不同的方法:

    1...

    “基于时间”的版本 (TOTP) 很容易保持同步。 (您的设备......和远程服务器......必须具有相同/正确的时间。)

    2...

    “基于计数器”的版本 (HOTP) 保持同步(即使您的移动设备处于飞行模式)并以某种方式每 30 秒更新一次其内部计数器......远程服务器也会这样做。

    我只使用过 #1... 因为 Google 不太清楚 #2 计数器如何在移动设备和远程服务器之间没有任何通信的情况下保持“同步”(每 30 秒变化一次)。

    【讨论】:

    • 您可能应该为您的声明提供来源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2012-12-11
    • 2011-02-18
    • 2018-02-17
    相关资源
    最近更新 更多