密码管理是个老生常谈的话题了,从二十一世纪以来,随着网络在人们生活中的比重不断增加,每天我们都要和大量的网络账号打交道,网络安全也随之越来越受到大家的重视。
很久之前我也是一个密码走天下,后来在多次黑客撞库攻击中幸存下来的我觉得不能在心存侥幸了,于是经过多方调研,最后确定了使用 1Password 作为自己的密码管理系统,如今使用 1Password 三年多,从一开始的独立版本到现在和朋友一起订阅团队账号。感觉 1Password 做得越发的顺手、方便。与此同时, 1Password 的安全性给我带来的放心感和跨平台的软件、插件在密码生成、管理和自动填充方面的给我带来的便捷让我已经完完全全离不开它了( 现在基本上不管什么平台的新设备,我第一个要安装的软件必定是 1Password )。
说起来,其实 1Password 一直都是我派的宠儿,很多作者都对它有过详细的评测和介绍,例如:
- @Alex和创 的「一个密码的另一种生活:1Password 完全评测」
- @JailJT 的「是时候在 iPhone 上忘掉密码了:1Password 5.0 for iOS 上手完全指南」
- @Astrian 的「填充密码比 iOS 版还方便:1Password for Android 新版体验」
- 以及 @JailbreakHum 大神的「1Password for Mac 使用指南」
- 等等 10+ 篇优秀的文章
但是 iOS 11 之后,苹果对自家的 Key Chain 「钥匙串」进行了大量的升级,最重要的就是引入了 Auto Fill 功能,也就是在应用内快速填充你存在「钥匙串」中的对应网站密码。也是 iOS 首次实现应用内密码的自动填充,以往这样的功能只会在 Safari 浏览器中出现。Auto Fill 刚出来时,坊间一度传出 1Password 要死、官方逼死同人的声音和论调。可我觉得「钥匙串」主要实现的还是一个平台级别的密码记住和填充功能,密码管理、生成和跨平台使用的重则依旧落在 1Password 身上。有兴趣的读者可以扩展阅读 @sainho93 写的 「iOS 11 升级后的 iCloud 钥匙串,能够替代 1Password 吗?| 具透」。
相较于钥匙串, 1Password 躬耕于最安全的个人密码和数据加密,用多重加密技术层层保护我的数据。其中有两个东西是你要密切注意的,它们也是 1Password 保障你数据安全的核心:主密码( Master Password )和个人私钥( Secret Key )。
在 1Password 里面解密你的数据需要以下这三样东西,缺一不可:
- 主密码
- 个人私钥
- 加密数据
针对不同的人面临的不同安全威胁,这三者中的任何一个都从不同的方面你保护你的数据安全,通过三者合一,你的数据可以享受到各方面的最佳保护。其中主密码和个人私钥用以完成双重密钥推导过程:
主密码
主密码是双重密钥推导( 2SKD )的其中一个密钥,它的特性是只会保存在人的大脑中,所以任何物理手段都很难窃取到这个密码。
不过主密码也有一个很大的缺陷,那就是凡是主密码都需要可被人记忆,不然你设置一个自己也记不住的密码显然是最不靠谱的,可只要是可被记忆的密码,都很容易被现在的各种密码暴力破解系统穷举猜出来,更遑论很多人设置的密码不仅好记,而且规则简单到已经对犯罪分子十分友好了。尽管 1Password 在对主密码的处理上使用到了慢哈希和增强型用户主密码等技术手段来提高主密码的安全性,可是这些手段也很难抵御住一个训练有素的黑客在资源充足情况下的猛烈攻击。
其实在你创建 1Password 账号的时候,系统会向你建议一个相对安全的主密码。这个主密码是从 18000+ 个英文单词列表中随机抽取 4 个单词组成,这样四个单词组成的密码大概有 18000^4 将近 10 亿亿种可能,等效于 56 位的数字加密。这个建议的密码是通过一个密码学的近似随机数生成器在你的设备本地生成的,除了你之外别人无从得知,当然你可以替换掉其中的部分从而生成一个更加值得信赖的主密码供自己使用。
因为主密码是唯一一个需要自己独立记忆,完全受自己掌控和保护的密码。我强烈建议大家好好花时间设计一个足够复杂强大而自己又能够记忆的主密码,并把这个主密码存放在你认为安全的地方。
不过,尽管 1Password 做了大量的工作来提高你的主密码安全性,一个能够拿到你的加密数据的黑客任然有办法拿到建议密码库的密码表,然后通过暴力破解系统猜测你的密码。因此,为了进一步防止「钥匙」落入坏人之手,1Password 在密钥推导中又引入了一个完全不可猜测的私钥——你的个人私钥。
个人私钥
主密码是你进行双重密钥推导的其中一个元素,而另一个就是个人私钥。个人私钥是你首次注册 1Password 的时候在你本地计算机上生成的,它由一个不保密的版本号开头(「A3」),接着是一个不加密的账户 ID,最后是 26 位的随机字符。下图是一个个人私钥的样例:
这个个人私钥是基本无法破解的,但是它不像你的主密码那样,是一个人可以记忆或者是在键盘上经常会键入的密码组合。
上面的连词符号其实并不是个人私钥的一部分,只是为了增强可读性做分割使用的。版本号既不随机也不保密,用户 ID 倒是随机的,可是并不保密,而剩下的部分既是随机的也是保密的。
综合上面的随机性来看,总共可能的个人私钥大概超过 2^128 个( 约等于 10^118 个,这是一个天文数字了),所以任何的猜测手段对这种强度的密钥都是无能为力的。也正是由于这种不可猜测性,导致个人私钥很难于被人记忆,所以与其让你记忆这个密钥,1Password 决定倒不如帮你把它保存在你的本机客户端里。
急救包
看到这里想必你已经清楚,1Password 服务器上是不会保存你的主密码或者个人私钥的,所以你一旦忘记或者遗失了两者中的任意一个,没有任何人或机构能够帮你找回来,更不可能重置或者恢复( 唯一的特列是家庭或团队用户,这个我们后文再说 )。还是那句话,一旦有了修改或找回你的密码的可能,相应地就大大增加了攻击者获取你的敏感数据的可能,为了你的安全,1Password 决定放弃一切权力。这同时也意味着,你千万不能弄丢你的密码。这就是为什么 1Password 强烈建议你在第一次创建用户时保存、打印并妥善保管你的急救包( Emergency Kit )。
你的急救包其实就是一张纸( 如果你把它打印出来的话 ),它包含了你的账户详情以及个人私钥,如下图所示:
可以看到,急救包还留出了一部分空白供你填写自己的主密码。如果你对同时把主密码和个人私钥放在同一个地方感到不放心的话,你也可以把主密码单独保存在别的地方。
有的同学可能当时忘记保存自己的急救包,或者没有妥善保管已经遗失,我强烈建议大家现在就重新生成一个急救包。重新生成急救包的方法有两种,第一种是在 1Password.com 网站上生成:
- 在 1Password.com 上登录你的账户;
- 点击窗口右上角的用户名,并选择「My Profile」;
- 选择「Manage > Generate Emergency Kit」并根据屏幕上的指引导出急救包的 PDF。
另外一种是从 1Password for Mac 上导出:
- 从「账户」菜单中选择「获取急救包...」;
- 单击「保存」或者「打印」。
已经打印出来的急救包记得要妥善保存,删除本地电子档的同时你也可以保存一份在其他的 USB 设备中,但是切莫放在当前使用 1Password 的设备上:
对于那些并不需要保存或打印完整急救包,只想获悉自己的个人私钥另行存放的同学,你可以在官网获取到包括 macOS、Windows、iOS、Android 在内的各个平台的个人私钥查看方法。
账户恢复
前面讲到一旦忘记或者遗失了主密码或个人私钥两者中的任意一个,没有任何人或机构能够帮你找回来,更没有重置或者恢复,但这并不包括团队用户和家庭用户。
如果你是 1Password 家庭版或者团队版的用户,而你真的不慎丢失或遗忘了自己的个人私钥或主密码,你可以向家庭或团队组织者申请账户恢复( Account Recovery )。当你为成员恢复账户时,他们:
- 会收到新的个人私钥并创建新的主密码;
- 可以访问他们之前所拥有的数据;
- 需要在所有设备上重新登录一遍。
如果你想为他人恢复账户,那么你:
- 必须是一个家庭账户的组织者;
- 或者是一个团队账户的管理员或拥有者;
- 或者归属于一个团体账户中拥有「恢复账户」权限的用户组。
注意:你不可以恢复你自己的账户,哪怕你是组织者/管理员/拥有者,所以,尽量确保一个团队中拥有两个具有「恢复账户」权限的成员,当你不能登录的时候,还有别人可以救你一把!
你可以在任何时候进行账户恢复,但是在恢复完成之前,该账户都不能访问到当前数据库:
- 在 1Password.com 上登录你的账户;
- 在侧边栏中点击「Members」;
- 点击需要恢复的账户名,并点击「Manage > Begin Recovery」进行恢复。
之后记得通知该用户完成账户恢复流程。
总结
最后我总结一下,如果你要安全的使用 1Password,保护你的个人数据「( 相对 )绝对」的安全,一定要谨记:
保护好你的主密码:
- 设置足够复杂的主密码;
- 只在 1Password 上使用这个主密码,切勿多号共用这个密码;
- 确保你的主密码安全,不要告诉任何人。
准备好你的急救包
- 把急救包从你当前的电脑上移除;
- 在急救包里填写好你的主密码;
- 把急救包妥善地放在安全的地方。
让 1Password 做它该做的事情
- 用「保险柜」来存储重要的数据;记住 1Password 不仅可以保存你的密码,还有你的重要数据资料,例如银行卡号、电子收借据、账单等等。
- 当你注册新的账号时使用软件自带的密码生成器来生成密码,而不是自己构造;(一般情况下使用 Safari 自带的密码生成器也不错,只是 Safari 的密码生成器不可以自定义密码的组成和长度)
- 使用 1Password 来和你的队员或者家庭成员分享重要数据或密码,而不是在其他工具上传输;
- 丢失密码时记得向你的团队组织者或者家庭负责人申请账号恢复;
- 在跨设备上使用 1Password,全面保障数据免受入侵。
如果有同学对 1Password 的加密机制想有更深入的了解,可以去其官网下载白皮书研究。希望大家都能加强数字安全保护意识,不要到了悲剧发生才追悔莫及!
密码简单怕被破解、密码太多太复杂又记不住,怎样管理密码最安全?欢迎订阅《用 1Password 做好密码管理》付费栏目,一劳永逸地解决密码的种种问题。