2022 年 12 月 22 日,圣诞节前三天——掩埋坏消息的好日子。LastPass 更新了它在当年 8 月首次披露的一起安全事件。

8 月的版本很让人安心。有人溜进了公司的开发环境,顺走了源代码和一些技术资料。LastPass 说,没有客户数据被动过,没有密码库被碰。

观看 · 29 秒

几乎每个人都有秘密,几乎没人有一个真正安全的地方放它。

看看 Everkeep 如何把你最私密的数据离线保管——编号、封存、专人看护。

开始保护 — $199/年

12 月的版本,读起来完全不一样。入侵者用 8 月拿到的东西又回来了一次——这一次,他们拷走了客户密码库的备份。不是邮件列表,不是账单数据库,是密码库:这个产品存在的全部理由,就是永远不落到别人手里。

第一次入侵是踩点

2022 年 8 月,攻击者拿到了一名开发者的账号凭证,在 LastPass 的开发环境里待了好几天,带走了部分源代码和专有技术资料。LastPass 请了外部调查团队,控制了入侵,并告诉客户:你们的数据和密码库没有被访问。就当时能看到的,这话是真的——但这根本不是重点。

拿着第一次入侵得来的技术信息,攻击者盯上了另一名员工,拿到了凭证,进了一家第三方云存储服务——LastPass 的备份就放在那里。从那里,客户账号信息和密码库备份被拷走。

8 月那次从来不是正事,是踩点。12 月才是动手。

这个套路我们见得够多,多到事后能给它起个名字:第一次事故很少是灾难本身,它是为第二次画的地图。

内容加密了,目录是明文

先替密码学说句公道话:LastPass 密码库里的敏感字段——用户名、密码、安全笔记、表单数据——用的是 256 位 AES 加密,密钥从每个用户的主密码派生。LastPass 自己也读不了。这部分设计是过硬的,就公开报道看,加密本身没有被攻破。

但密码库备份里还有一批数据,从来就没加密过:每个登录条目附带的网站 URL,全是明文躺着。旁边还有客户姓名、邮箱、账单地址、电话,以及用户登录时的 IP 地址。

想想这意味着什么。攻击者拿到了两样东西:上了锁的箱子,和——分开存放、完全明文的——一份"箱子里装了什么、归谁"的完整索引。一个人的密码库 URL,就是他的人生地图:他的银行,他的邮箱,他的券商和币所,他公司的系统,他诊所的患者门户,还有那些他不愿多谈的账号。不用打开任何一个密码库,这份地图本身就值钱:它精确告诉钓鱼者,这个人用哪些机构,一封像样的钓鱼邮件该冒充谁。LastPass 自己都警告客户:准备好迎接这类钓鱼。

他们加密了日记,却把目录印出来贴在了墙上。

一把钥匙,和无限的时间

加密部分的安全,全系在主密码上——设计如此。12 月事件改变的是猜密码的战场:被偷走的备份,现在是个离线问题。拷贝躺在攻击者自己的硬盘上,没有登录页面数失败次数,没有试错十次就锁定,没有告警邮件发到谁的邮箱。每一次猜测都免费、无声、不赶时间——永远。

又长又独一无二的主密码,加上新版账号,密码库确实难啃,数学上站得住。但又短又顺手、还到处复用的主密码,就是另一回事了——变成算力和耐心的问题。而且账号设置千差万别:老账号的密钥派生强度,常常远低于公司后来的推荐标准。两个用同样密码的客户,防护等级可能天差地别,自己还无从知道。

于是整个档案馆的安全,落在了客户看不见的两样东西上:一句记在脑子里的话有多结实,以及一家开发环境当年已经被进过一次的公司的运维纪律。好大的分量,压在一个单点上。而单点,正是系统垮掉的地方。

真正属于你的,是"放哪"的决定

塞内卡的信里翻来覆去就一句话:有些事由得你,有些事由不得你,心安来自于分得清。你管不了供应商的开发环境,审查不了他们的员工,审计不了他们的存储服务商,也改不了他们选在 12 月披露。只要你最敏感的东西住在别人的产品里,它的安全就有一部分系在别人的本事上——你永远见不到的人,在你永远看不见的系统上。

你能管的,是更底下那个决定:什么东西放哪。密码管理器是日常登录的好工具,日常生活的大部分也承受得起这个风险。但登录之下的那个档案馆——日记、照片、打死不能给人看的记录——不必是某家公司的某个功能,不必躺在他们的备份存储里复制来复制去,等着他们的"坏十二月"。

一块你自己加密的硬盘,在供应商的云里没有拷贝,没有明文的索引。它只有一个位置,一枚封条,和一把只存在你脑子里的钥匙。我们这些年学到:人们说的"安全",从来不是"大公司更用力的承诺",而是"我和那些丢不得的东西之间,站的陌生人越少越好"。

Everkeep 为你自己拥有、自己加密的硬盘提供离线保管。我们编号、贴封条、拍照、存放——两份拷贝,两个地点——我们永远看不到里面。每个设备槽位 199 美元/年。