什么是 1Password
1Password 是由加拿大开发商 AgileBits 开发的一款密码管理软件。除了用来存放账号密码,你还可以存放包括信用卡、身份证件之类的敏感信息。根据官方的发行公告(Release Notes),第一个正式版的 1Password 1.0.0 客户端发行于2006年,距今14年。
我们储存在 1Password 中的信息都是被加密的,任何数据在被传输前,1Password 都会使用 AES 256-bit 算法加密3次,即便是开发商 AgileBits 也无法获取。客户端和 1Password 服务器的认证和通信通过零知识证明协议加密。
2014年 OpenSSL 暴露的心脏滴血漏洞(Heartbleed)漏洞对整个互联网造成了难以估量的影响,所有依赖 SSL/TLS 协议的网站或客户端,都可能因此受到攻击。当时很多使用 OpenSSL 服务的科技巨头(e.g. Google, Facebook, Amazon 以及国内各梯队的互联网公司等…)的用户敏感数据被大量 Dump,其中有不少公司甚至明文保存用户密码。如果你愿意了解更多细节,可以搜下 “Akamai secure heap “,Alex Clemmer 专门写了文章来分析这件事,过程很是曲折。
所幸 1Password 并不建立在 SSL/TLS 之上,因此并未受到波及,官方不久后还推出暸望塔(Watchtower)功能,用来检查你使用过的哪些网站遭到数据泄露,这个功能不久后就集成到客户端中。
1Password 的盈利模式完全来自用户付费,因此他们没有任何第三方广告业务,也不使用、分享或出售用户数据。1Password 严格遵守欧盟数据保护通用条例 GDPR,他们在官网隐私介绍页面详细说明了隐私策略。
苹果在2018年为全球超过123,000员工部署企业版1Password。
为什么要用 1Password
这个问题可以拆成两部分:
1)为什么要使用「密码管理器」;
2)为什么要在众多密码管理器中选择 1Password?
对问题1,很多人习惯在所有网站都使用相同密码,而且通常包含生日年月这样非常容易被外人获得的信息。一旦其中某个网站发生数据泄露,你所有的账户都会受到牵连。即便能做到不同账号不同密码,我们为了方便记忆,设定的密码也往往强度不足。
通常,高强度的好密码要满足:
- – 长度8位及以上;
- – 同时包含大写字母和小写字母;
- – 包含1及以上的特殊符号(e.g. *^%$=…);
- – 自己能记住。
在使用密码管理器之前,我曾一直用「基本密码」+「特征码」来设置密码,并为此感到洋洋得意。以 Gmail 账户举例,我以基本密码 “Yishi123+-/” + 特征码 “GL”(网站域名的首尾大写字母)作为密码 “Yishi123+-/GL”;如果账户涉及财产,就换个更长的基本密码。
乍一看符合好密码的要求,自己也能记住,看起来比所有网站同用一个密码要强多了不是么。但这样做最多在黑客批量撞库时躲过一劫,实则没什么作用。
因为只要黑客通过社工手段定位到你个人,不管你以什么方式组合特征码、特征码有多复杂,只要规则一致的,那么其中一个账号被盗,其他的就都能顺藤摸瓜推理出来。
因此,所谓基本密码+特征码,在安全性上形同虚设。
有人说,那我每个网站都使用毫无规律的随机长密码。拿小本子把账号密码都记下来,按字母 a-z 给网站排序,每次登录时查下不就行了。除非本子遗失或黑客到家里盗走,我的密码都是万无一失的,也不怕撞库。
这个办法安全系数确实最高。某种程度上,小本子就是你自制的密码管理器,但是用起来麻烦。
小本子丢了或损坏怎么办,人在公开场所怎么办,每天登N个网站就要手动敲N遍毫无规律的密码,诸如此类的缺点很多,余不一一…
而一个专业的密码管理器,就是用来解决这个问题的。
它本质上做了两件事:
- 1. 帮你生成足够强的随机密码;
- 2. 帮你管理好这些账户,要用时出现,不用时消失。
对问题2,我亲身使用过的密码管理器有 1Password、LastPass,、KeePass,除此之外还有一大票优秀产品如 DashLane, RoboForm … 等,虽然没用过,但它们都有各自粉丝拥簇。
如果你喜欢彻底开源、轻量、免费,那么我强烈推荐 KeePass,它的开发社区很活跃,光是在 macOS 上,开发者们就贡献了 KyPass,MacPass,KeePassX 等多个客户端的实现,并且功能十分强大。
但如果你和我一样,除了安全性,同样在意使用体验、灵活性和便利性,本着「能力范围内选择综合素质最好的」原则,那么我推荐 1Password。
1Password 并非开源,但它遵循公开规范(安全模型的白皮书),任何开发者都可以对其进行黑箱测试。
David Schuetz 在他的博客对 1Password 的工作机制进行了极为详尽的探索,下图便是他总结的核心:
我们只需明白,1Password 最关键的安全要素,便是我在图中红框标出的 2SKD(two-secret key derivation)。而这两个所谓的 “Secret key”,分别是主密码(Master password)和 私钥(Secret key)。
你不用看懂这套复杂的流程,只要抓住核心点,即,如何确保「我的密码只有我知道,即便1Password 也无法查看我的敏感信息」即可。关于这点,我会在下文设置主密码的步骤中,详细跟你解释。
开源是个很大的话题,它也并非一切事物的银弹。
受制于篇幅,本文我们主要讲解 1Password 的使用,如果你对开源感兴趣,以后可以单独写一篇文章。
准备就绪,接下来就开始我们的 1Password 之旅。