我现在开始将Google Authenticator用于越来越多的事情,但是我刚刚意识到,如果我丢失了手机,或者需要擦除并还原它以安装新的固件,将会丢失所有代码。
反正有备份吗?还是某种后备方式,意味着我可以将其还原到新设备上?
谢谢
我现在开始将Google Authenticator用于越来越多的事情,但是我刚刚意识到,如果我丢失了手机,或者需要擦除并还原它以安装新的固件,将会丢失所有代码。
反正有备份吗?还是某种后备方式,意味着我可以将其还原到新设备上?
谢谢
Answers:
以下方法仅适用于根植的Android设备。
Linux:
adb pull /data/data/com.google.android.apps.authenticator2/databases/databases /AFolderOnPC
视窗:
adb pull /data/data/com.google.android.apps.authenticator2/databases/databases C:\AFolderOnPC
请注意,PC上的文件夹必须已经存在。
这会将带有主密钥的身份验证器数据库文件复制到PC,该主密钥从中生成一次密码。然后可以将该文件还原到Android设备上的相同位置,或使用sqlite数据库查看器读取以提取密钥。
databases
文件夹和databases
文件都具有755权限。我尝试了700,而GA一直崩溃。有点担心,它需要完全的权限。也许这就是NSA的要求。
adb root
要这样做之前,否则您会得到remote object '/data/data/com.google.android.apps.authenticator2/databases' does not exist
您无需备份Google Authenticator应用程序/数据,因为您可以创建“备份代码”列表,而无需在配置两步验证的同一页面上输入验证码,即可用于登录。
为什么要打印或下载备用代码?
备份代码对于出行,接收短信或语音电话有问题或无法使用Google Authenticator移动应用的人们特别有用。
建议:您应该打印或下载备用代码
将它们存储在安全的地方(或打印出来),如果您丢失了手机,则可以使用以下代码之一登录您的帐户,并通过Authenticator应用设置新设备。
尽管这适用于Google的两步身份验证,但您配置为使用Google Authenticator应用程序的任何其他网站都应提供类似的选项或另一种接收代码的方式(例如,Facebook支持Google Authenticator,他们自己的应用程序和短信作为以下方法:接收代码)。
Titanium Backup(链接到Google Play商店)将备份任何Android应用,包括Google Authenticator。但是,您必须先扎根手机,才能使其成为可行的选择。
我也建议您也打印Google备用代码。这并不是完全备份Google Authenticator应用程序,但是如果需要,它们将允许您重置身份验证器。不过,这只会有助于重新获得对您的Google帐户的访问权限。
我认为,使用Titanium Backup备份应用程序是最完整的选择。它在很多场合为我节省了时间。
backup/restore
选项卡->选择Authenticator
应用程序->向右滑动special features
选项卡->选择Explore
-> accounts
在下选择[DATABASE]
。那么您将以.csv文件的形式获取应用程序中的所有帐户。使用该secret
列将帐户还原到新手机。
我有同样的问题。
原来,原始令牌(通常以qrcode表示给用户)存储在/data/data/com.google.android.apps.authenticator2/databases文件夹内的sqlite数据库中,并且可以从设备中提取。
我在这里自动化并解释了恢复过程:https : //github.com/dchapkine/extract-google-authenticator-credentials
该项目提取原始令牌,然后生成一个带有qrcode的网页,您可以在新设备上重新扫描。
随时贡献。
解决此问题的最简单方法是,每当您为站点设置新的Authenticator并将其保存在加密位置时,都要拍摄QR码的屏幕快照。
如果您需要重新安装该站点的身份验证器或将该站点的身份验证器添加到另一部手机,只需通过扫描屏幕快照中的QR码,就可以在身份验证器中添加帐户,就像您要建立一个新站点一样。
在您毫不犹豫地说这是行不通之前,是的,您可以在多个设备上使用相同的Authenticator。
试试Authenticator Plus,它支持备份/还原功能,并且可以跨设备同步,如果您有手机/平板电脑,此应用程序可以完美同步它们之间的所有帐户,甚至还支持Android Wear。
它也有徽标支持
作为序言,这是一种用于提前配置MFA的方法,以便始终对其进行备份,而不是恢复或备份现有代码。
Nexus 6P停止连接数据后,我才经历了这一过程,因此必须在Pixel上重新设置所有MFA。我意识到,如果我丢失了手机或重置了出厂数据,那我将完全无聊。
我想到的最简单的解决方案是忽略基于QR码的设置,而仅使用基于令牌的设置本身(这是大多数身份验证器应用程序中的“手动”选项)。到目前为止,我使用的每项服务都允许您选择基于令牌的设置,而不是QR。
与其花麻烦地拍摄QR码的屏幕快照,对其进行适当的标记,然后由GPG对其进行加密并将其安全地存储在某个地方,我只是将令牌存储在加密的保管库中,然后手动设置我的MFA。
我验证了您可以在同时运行的独立设备上使用相同的密钥来设置身份验证器的克隆。因此,只要您安全地控制令牌,就可以在任何设备上配置MFA。
我对这个结果感到满意,因为除了重新配置MFA(我在任何情况下都必须这样做)外,我只需要将所有令牌添加到lastpass即可。现在,我可以解决电话丢失的情况,并且可以根据需要配置其他设备。
对于有根电话,有很多建议。但是,如果您不想使设备易受攻击,则不建议您将其植根。两因素身份验证提供了额外的保护层,并且通过扎根将其变为零,因为不同的病毒可以访问受保护的内存区域。
只有少量服务提供备份代码(尤其是Google)。对于这些服务,您应该保存备份代码。
最好的解决方案是在注册令牌时保存QR码(或秘密密钥)并将其保存在安全的地方。然后,如果您丢失了手机,则可以在新设备上的Google Authenticator中恢复令牌。
另外,您可以使用硬件令牌。它们可以采用密钥卡或信用卡的形式。在Protectimus(我工作的公司)的博客上查看这篇文章,以获取更多有关如何备份Google Authenticator的信息:如何备份Google Authenticator或将其转移到新手机。
* 披露:我在上面链接的网站上工作。
以下方法仅适用于根植的Android设备。这种方法对于不太精通技术的人或像我这样的人来说更有用,他们不想浪费时间从头开始安装Android SDK + JDK只是为了运行adb命令。
所以这里是:
从Google Play商店下载并安装任何“ Root Explorer”应用。我使用流行且免费的FX文件浏览器及其免费的FX根目录访问插件。您也可以使用其他人。这个应用程序使我们能够以root用户身份访问Android系统。
在“系统根目录”中打开文件资源管理器后,单击“数据”文件夹>单击“数据”文件夹(在另一个数据文件夹内)>复制名为com.google.android.apps.authenticator2
>退出系统根文件夹的文件夹>打开普通的主存储/ SD存储空间并粘贴文件夹在这里。
将您的android设备连接到PC,然后将文件夹备份到安全的USB /外部HDD。
而已。现在,每当您需要重新安装固件/购买新手机时,请按照上述步骤操作,并在安装Google身份验证器应用程序后将该文件夹复制到完全相同的目录中。
或者,您可以使用免费的开源SQLite GUI编辑器(如“ SQLite数据库浏览器可移植”)打开“ com.google.android.apps.authenticator2”文件夹中的“数据库”文件。在“浏览数据”标签中,您可以查看密钥和与该密钥相对应的名称,以便可以将密钥手动输入到Google Authenticator应用中。
adb
可执行文件(在Windows上,另外.dll
需要两个文件)。有关详细信息,请参阅是否有ADB的最小安装?
-rw-rw--
(所有者和组的读/写,其他没有)。因此,如果所有权不匹配,您可能会遇到麻烦(并且该应用可能行为不当)。
/data/data/com.google.android.apps.authenticator2
,ls -l
对其进行检查,然后检查所有权/权限。复制后,使用chown
和chmod
修复它。
在有根电话上,您可以使用“ Amaze”文件管理器(https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=zh-CN)。转到根目录/data/data/com.google.android.apps.authenticator2/database。打开数据库文件作为数据库。选择帐户。您将有3列_id,电子邮件和密码。复制“秘密”值。当您需要恢复时,只需添加,请选择“输入提供的密钥”,为其命名并粘贴值。
这是我网站上简单Python脚本的链接:http : //usefree.com.ua/google-authenticator-backup/
您只需粘贴代码并在Python环境中运行它们。
这个怎么运作:
在使用Google Authenticator设置和配置两因素身份验证期间,不仅可以扫描QR码,还可以获得代码,例如,对于Google Mail,我们得到:csnji4rfndisoh323fdsioah3u2iodso
。为了使用Python IDLE在计算机上生成TOTP,您可以定义以下函数:
def totpgen ():
import time
import hmac
import hashlib
import base64
### TOTP-key for Google
#secret = base64.b32decode("csnji4rfndisoh323fdsioah3u2iodso", True)
#totp for btc-e
#secret = base64.b32decode("DHSJHDW89E8DFUS98RIO23J390EFU234IR90WEUIF903DMSKAKDS====")
### Calc counter from UNIX time (see RFC6238)
counter = long(time.time() / 30)
### Use counter as 8 byte array
bytes=bytearray()
for i in reversed(range(0, 8)):
bytes.insert(0, counter & 0xff)
counter >>= 8
### Calculate HMAC-SHA1(secret, counter)
hs = bytearray(hmac.new(secret, bytes, hashlib.sha1).digest())
### Truncate result (see RFC4226)
n = hs[-1] & 0xF
result = (hs[n] << 24 | hs[n+1] << 16 | hs[n+2] << 8 | hs[n+3]) & 0x7fffffff
### Print last 6 digits
return str(result)[-6:]
插入行
secret = base64.b32decode("csnji4rfndisoh323fdsioah3u2iodso", True)
您的代码而不是 "csnji4rfndisoh323fdsioah3u2iodso"
取消注释行,然后拨打IDLE
totpgen ()
您将获得TOTP!)对于服务btc-e,请尝试使用line
secret = base64.b32decode("DHSJHDW89E8DFUS98RIO23J390EFU234IR90WEUIF903DMSKAKDS====")
对于其他服务-如上所述。