Authy:多设备模式是否意味着所有密钥都存储在他们的服务器上?

信息安全 验证 服务器 多因素
2021-08-30 04:37:17

我的理解是,如果您使用 Authy,没有备份/多设备选项,您的任何帐户密钥都不会存储在他们的服务器上。这一切都驻留在您的单个设备上。

即,即使 Authy 服务器被黑客入侵并且所有数据都被泄露,并且攻击者知道您的 gmail 密码,他仍然无法访问您的 gmail 帐户,因为他不知道您的“Google 2FA 密钥”。

如果您在 Authy 上使用多设备模式,这仍然是真的吗?

阅读他们的博客文章(http://blog.authy.com/multi-device)和功能描述,我怀疑不是。为了让您的多台设备相互同步,他们的后端服务器需要知道您的 gmail 2FA 密钥,并根据需要将其重新分发到您的所有设备。这意味着如果他们的服务器被黑客入侵并且他们的数据被泄露,您的 gmail 帐户也将被泄露。

我的假设准确吗?如果攻击者知道我的 gmail 密码,并且还能够侵入 Authy 的服务器/数据库,并且我正在使用多设备选项,那么黑客是否能够访问我的 gmail 帐户?

4个回答

至少在最新版本的 Authy 的 Android 应用程序身份验证器令牌中,例如您的 Gmail TOTP,api.authy.com只有在使用从您的备份密码派生的 AES 密钥和使用 PBKDF2 随机生成的盐进行加密后才会发送到。

根据此来源,从 API 发送到您手机的信息具有以下格式:

 {
 "account_type": "gmail", 
 "encrypted_seed": "UZNL+UPVK+5RYUoBlhkuQzCcOb3nMdYxKGFmHEZ4TMxTX7MOPJUayQAMDVJ", 
 "name": "My Gmail Account", 
 "original_name": "Google:someaccount@gmail.com", 
 "salt": "N2QqyJrn7cOHBqTY32uY1cL4IHCANm", 
 "unique_id": "0000000000"
 }, 

换句话说,您的 Gmail TOTP 秘密种子对于 Authy 来说应该是安全的,即使它们受到威胁并且数据库被泄露。

首先,请记住 Authy 允许您使用任何 TOTP 令牌(如 Google 身份验证器),但它们也提供自己专有的 2FA 方法。在 Authy 的方法中,帐户提供者必须将 Authy 集成到他们的身份验证机制中,而不仅仅是实现 TOTP 标准。在这种方法中,Authy 发出种子,这也允许它们在您尝试登录使用此方法的帐户之一时支持推送通知。

因此,对于使用 Authy 方法的多设备,种子不必共享,因为它们可以发布一个新的。但是对于 TOTP 帐户,他们不能发行新种子——帐户提供者必须这样做。因此,他们的解决方案是将这些信息存储在他们的服务器中,并通过他们所谓的备份密码进行加密。

(如果您丢失了设备,这也可以让您恢复您的令牌。)

所以看,如果你启用了备份,他们无论如何都会存储这些。如果您不希望他们存储这些种子,那么您可以关闭备份和多设备,但是使用 Authy 而不是 Google Authenticator 又有什么意义呢?即使 Authy 的服务器遭到入侵,您仍然是唯一知道您的备份密码(希望是唯一的)的人。这是一个非常好的系统IMO。

他们从博客文章本身中指出,与 Google Authenticator 不同,Authy 系统实际上会为每个设备生成新的、单独的密钥。因此,我认为他们没有任何理由需要存储它们,因此破坏其数据库的攻击者应该无法访问它们。

入侵您的一个设备的攻击者将有权访问该设备独有的一组密钥。一旦您撤销了这些密钥,他们就不应该拥有访问权限。

请参阅他们的博客文章以了解这一点。显然,所有加密和解密都发生在设备上,而不是云端。加密的种子密钥、用于加密每个密钥的不同 IV 和用于散列备份密码的 Salt(以及可能有关所使用的散列机制的其他信息)被中继到服务器。如果用户忘记了备份密码,他们将无法解密在新设备上导入的密钥。