考虑以下情况
- 我有一个帐户https://www.mercadolibre.com.ar。根据新的登录政策,我被要求提供一个六位数的 Google Authenticator 代码;
- 我已经在我的 Linux(Fedora)机器上安装了 google-authenticator;
- 我不想使用任何智能手机或任何 Android/IOS 应用程序。
我有办法生成六位数代码吗?
答案1
答案2
答案3
无需在系统上安装程序即可生成 OTP。这是一个漂亮的网页,您可以使用它来生成 OTP(HOTP 或 TOTP),只需使用您的 Web 浏览器即可。加密是在客户端(或浏览器内)使用 javascript 完成的,因此密钥永远不会离开您的浏览器:
答案4
我曾经遇到过类似的情况:我的雇主出于某些目的需要 TOTP,而我拒绝买一部智能手机来处理这件事。我找到了一个解决办法。这个办法不太好,如果安全主管知道了,肯定会大发雷霆,但幸运的是他们没有这样做。下面是解决办法:
- 记住你的秘密
- 用你喜欢的语言编写一个 TOTP 代码程序
- 当你需要一次性密码时,输入密钥
我的密码只有 32 个字符,所以这只是另一个需要记住的密码。至于一次性密码,TOTP 的算法相当简单,可以用 C 或类似语言轻松实现。但是,如果你想要它真的简单,那么您甚至可以使用可用的库在 python shell 中以交互方式执行此操作:
In [1]: import pyotp
In [2]: key = 'reallysecretkeygoeshere'
In [3]: totp = pyotp.TOTP(key)
In [4]: totp.now()
Out[4]: '123456'
就是这样!现在,我觉得有必要强调,这是一个糟糕的解决方案,它绕过了 TOTP 方案的整个目的:如果有人在你的电脑上安装了键盘记录器,观察你输入的内容,折磨你,甚至只是浏览你的机器(如果他们能访问它的话),那么他们就会得到这个秘密——就像它是一个普通的密码一样,这基本上就是上面例子中秘密的简化。但是,如果秘密被正确安装在 yubikey 或类似设备上,那么它不能永远无法恢复。在这些情况下,正确的代码绝对需要对密钥进行物理控制。理想情况下,您永远不应该看到您的秘密,当然也不应该将其限制在记忆中(或者更糟的是,写下来)。我这样做了,而且我这样做肯定违背了雇主的信任。这可能是解雇我的充分理由,但我并不特别在意,而且我从未被抓住。我不能说我推荐我的解决方案,但它确实有效。