两步验证的备份与恢复

2017/01/08 IT&数码

前几天老婆的 iPhone 6S 被盗,我也突然意识到需要把我的 Google Authenticator 和里面的数据备份一下。却猛然发现,居然没有任何途径可以备份,如果是 Android 的话,root 后还是有办法的,偏偏我是 iPhone,于是就开始了如下的折腾。

关于两步验证

由于前面的文章已经提及过很多次两步验证了,这里简单的科普一下。一般的安全验证是基于用户名和密码,由于字典,撞库,中间人攻击等常见方法都可以破解,使得一般的密码安全性大大降低。两步验证就应运而生的。一般见得比较多的是短信验证码作为两步验证手段,但是鉴于国内恶劣的环境,短信接收也已经不是那么安全了,生物识别技术似乎还有点遥远,加密硬件的应用也还不够普及,APP 的发展却正好如日中天,因此基于 APP 的虚拟硬件便成了绝佳的验证方式。

一般的两步验证有 OTP,即一次性密码,用完就没有了。还有某些网站给出一系列数字验证码,需要个人打印后随身携带,用一个划掉一个。

Google 的验证器,也即 Google Authenticator 支持的是 TOTP,是基于时间的一次性密码,每隔固定的 30 秒就更换一个验证码,只要时间校对准,验证码就一定是正确的。我现在用的就是这个。

备份

备份方式

最理想的备份方式其实 GA (Google Authenticator) 是支持的,需要使用 iTunes 进行手机的整体备份,这样一来,备份的容量就上去了,总不能增加一个网站就备份一次吧。如果只备份一条数据那可以少到以字节来记。

一般的增加两步验证的方式是扫描二维码,V2EX 上有人提出保存并单独备份图片,这当然也是一个不错的办法,不过现在手机,电脑上图片那么多,整理也是个问题。

所以最理想的备份方式就是把相关网站的这些数据,其实稍微了解下之后就会发现,这些数据其实就是一串字符,叫做 Secret Key,只要把这些 key 备份了就好了。你可以用 key 生成相应的二维码,也可以复制粘贴进相应的 app 里面。效果是一样的。保存 key 的方式就有很多了,可以用记事本,可以用 1Password 等 app,也可以打印或抄写下来等等,便利性比图片要好的多。

Google Authenticator

mMBasO.png

GA 应该算是用的比较多的了,我也在用,操作简单,界面简洁,一眼就能看到多个网站的验证码,很是方便。

唯一不好的是 iPhone 版不好备份。各种搜索后也没找到相应的方法,即使我手机是越狱的,进入 app 里面也没有找到数据库,没办法进行单独备份。

除了这一个缺点之外,这个软件堪称完美了。

Authy

mMxzmd.png

推荐 authy 的也很多,我也安装了一下,自动备份到云上,可以多设备自动同步。是一个很不错的替代选择。界面设计的也很时尚。如果不是先知道 GA 可能我就 authy 用下去了。

唯一的不足就是偶尔会有些 bug,比如我在添加一个网站时,这个 app 一直不停的添加同一个网站,也没有要停下来的意思。而且,不知道后面会不会收费,不收费的话存在云上的 key 够不够安全。总体上来说,如果要考虑备份,authy 是个不二之选。

gauth

gauth 是 github 上的一个开源项目。地址在这里 gauth,可以 clone 下来放在自己的局域网或者广域网的网站上,他们还有一个网站,gauth,可以自由使用。

各处还找不到具体的使用方法,一开始为了安全,我 clone 到本地后,传到了黑群辉的 web 文件夹里,既可以使用局域网的 192.168.1.XXX/gauth 的地址访问,也可以通过 XXX.eicp.net/gauth 这样的花生壳地址访问,安全性是有了保证了。但是如果我更换电脑或者更换浏览器,那么我保存在里面的 key 就都看不到了。后面要做的就是进入网站文件,把这些数据存储进去,这样就不受浏览器和电脑端的限制了,key 放在自己手里,安全性大大提高。

没有办法搭建的就可以使用上面给出的网站,因为测试过,所以了解。你存上去的 key 别人是看不到的,他只存在你浏览器的缓存里。

gauth 最大的优点是存在里面的所有 key 都可以一键导出为 key.json 文件保存,导入按钮没有找到。但是能够导出不就是最好的备份了吗?!

开始备份吧

在设备丢失之前,做个备份相对来说难度小了很多。基本流程就是进入网站,选择更换设备,然后用 authy 扫描二维码,之后点击看不到二维码或者二维码无法使用,就能看到 key,复制下来,存在相应的记事本或 1Password 等软件里,key 也能直接在 gauth 里面添加。对于那些不提供更换设备的网站,可以选择关闭两步验证然后重新开启,看到二维码后的步骤就完全一样了。

现在我主用 GA,备用 authy,局域网内也保存在 gauth 上,1Password 里保存所有的 key。基本可以确保万无一失了。现在只有 15 条记录,后面随着各大网站支持,数量应该会持续增加。基本告别了以前的各种异地登录信息。

Search

    Post Directory