可以编写谷歌验证码脚本

问题描述 投票:0回答:1

我有一个 Okta 用户在我的手机上使用谷歌验证器应用程序进行 2FA,我一直在研究一些代码来自动执行此操作,因此我不必检查我的手机。我希望这可以通过 cmd 行脚本来完成。

我看到这个脚本https://github.com/grahammitchell/google-authenticator但是我需要知道用户(我相信这是我的okta用户名)和秘密(我不确定我可以在哪里拉这个,也许我可以生成一个新的?)

我想我的问题是这可能吗?

okta google-authenticator
1个回答
0
投票

是的,你可以(但你可能不应该)。当您在 Google Authenticator(或任何 TOTP 代码生成器)中添加代码/站点时,它需要一个对称秘密(即密码)并使用它 + 时间来生成 6 位代码。 IdP 保存相同的秘密并使用相同的 TOTP 协议来生成代码。

如果时间相同,IdP 生成的代码与您手机生成的代码相同,证明您知道秘密。

诀窍是在将设备注册到 MFA 时获取底层秘密并将其保存在您可以使用它生成代码的地方。

一旦你有了二维码,你就可以使用 python 从中读取秘密,例如:How to decode a QR-code image in (preferably pure) Python?

然后您链接的脚本可以生成代码。

你什么时候做这个?

我过去这样做是为了自动测试各种 IdP 功能,例如注册 MFA、身份验证等。

你什么时候不会这样做?

如果这是一个普通帐户,比如你的 gmail/你用于工作的一些 SaaS/一些重要的东西,那么这种方法是一个糟糕的主意。 MFA 背后的想法是你有:

  • 你知道的东西,比如你的密码
  • 你拥有的东西,比如你的手机/yubi key/除了你常用的笔记本电脑、个人电脑或其他任何东西。

它正在破坏第二个因素提供的安全性。如果他们窃取了您的密码或以某种方式访问了您的设备,他们仍然需要接管其他因素才能访问重要服务,但如果您将这个秘密保存在他们刚刚访问的同一台设备上,那么您还不如把手机交给他们也是。

© www.soinside.com 2019 - 2024. All rights reserved.