我现在用的密码 & 多重认证方案(跨平台 + 无生态依赖 + 容灾备份)

平时我的设备比较杂:Mac / iOS 是主力,但工作里又离不开 Windows,偶尔还用 Linux 和安卓。浏览器基本统一用 Edge,一开始只是图个方便同步密码。

但用着用着发现,一个更现实的问题出现了:

密码好管,但跨平台使用多重认证,以及“账号丢了该怎么救回来”才是难点。

我试过不少方案:

  • 全部走 Apple Keychain(体验很好,但有点被苹果生态锁住)
  • Microsoft Authenticator(大厂应用,但和 Edge 同属于微软产品,担心数据被一锅端)
  • 完全依赖 KeePass(安全,但日常用确实有点重)

折腾一圈后,我现在用的是一套不算极致简单,但能够实现跨平台+分布式的密码管理 & 多重认证方案。

账号登录界面

一、我在意的三件事

这套方案不是追求“最便利“,而是平衡下面三点:

  • 跨平台能用(Mac / iPhone / Windows / Android 都能顺滑用)
  • 不被某一个平台“锁死”
  • 真出事(丢设备 / 被锁号)还能恢复

如果你也比较在意这些,那下面这套结构可能对你有参考价值。

二、当前使用的整体结构

我现在是这么分的:

  • 密码 → Edge
  • Passkey(通行密钥)→ Apple Keychain
  • OTP(二次验证码)→ Ente Auth
  • 重要账号、恢复密钥 → KeePass 离线备份
  • KeePass 主密码 + Ente 恢复码 → 手写保存
  • Apple / Microsoft / Google → 开启全部恢复方式

看起来有点多,但其实每一层职责很清晰。如果想了解耕读君为什么这样组合,可以继续往下看。

三、思路解析

之所以这样设计,是为了保证正常状态下可以快速登录,需要验证时能够顺利验证,以及即使我的所有电子产品都丢失了,依然能够找回账号。

1、Edge 保存密码,方便跨平台填充

我选择将密码保存在 Edge 中,因为我的大部分工作都在浏览器上完成。

我需要登录大量的网站,不可能记住所有密码,所以在不同平台上都统一使用 Edge 浏览器。每当我注册一个账号,Edge 就会弹窗询问是否保存密码,我都选择保存。

Edge 密码管理器

Edge 会将密码同步到云端,当我在其他设备上登录网站时,它就可以自动填充密码。

你可能会担心:万一浏览器或微软账号被黑,保存的密码泄露,要怎么办?

对此可以放心。一方面密码管理是 Edge 最主要的一项功能,微软不可能不重视它的安全性;另一方面,大多数网站都有二次验证机制,可以用我接下来要说的 Passkey 和 OTP 来保护登录安全。

2、Apple Keychain 保存 Passkey(通行密钥)

我曾经尝试过用 Edge 同时保存密码和 Passkey,但由于 Passkey 是基于硬件加密来实现的,因此保存在 Edge 里的 Passkey 只能本机使用,无法跨平台。而且,密码和 Passkey 同时存在浏览器里,会降低安全性。

我还尝试过用 Keepass 同时保存密码和 Passkey,因为 Keepass 是离线工具,而且我同时采用主密码+密钥文件来认证,安全性有保证。但毕竟是第三方软件,和系统的集成度不够,使用下来发现,浏览器有时候无法正确调用它,用手机扫码验证 Passkey,也常常出现连接错误,导致登录效率大打折扣。

因为我的主设备是 Mac 和 iPhone,所以最终我选择用 Apple Keychain 保存 Passkey。

macOS 「自动填充与密码」设置

Keychain 会通过 iCloud 同步,也就是说,我在 MaciPhone 上保存的 Passkey,在其他苹果设备上也都能直接使用。而在非苹果设备上,我可以在登录账号时选择通过其他设备来验证,然后用 iPhone 扫码调用 Passkey 即可完成登录。

有了 Passkey,很多时候根本不需要用到密码,账号反而更加安全。这也是为什么微软鼓励删除密码,将微软账号转变成“无密码账号”的原因。

3、Ente Auth 保存 OTP(二次验证码)

此前我一直用 Microsoft Authenticator 来做二次验证,但如今密码保存在同样是微软旗下的 Edge 中,一来是生态绑定了,二来账号风险会增加,所以我选择用 Ente Auth 来保存 OTP。

Ente Auth跨平台开源软件,采用端到端加密,这意味着:

  1. 只需一个账号,我在 Mac / iOS / Windows / Linux / Android 上都能同步使用、管理 OTP;
  2. 端到端加密,就算是云端同步,平台也无法看到我的信息;
  3. 开源软件,代码开放可供任何人审核,安全性有保障。

我们用 OTP,会担心换设备时需要一个个账号重新绑定,也会担心万一验证器本身的账号无法登录,我们会失去所有 OTP 的访问。用 Ente Auth 就不必担心,因为:

  1. 在新设备登录账号后,之前添加的 OTP 都会同步过来;
  2. Ente Auth 可以设置恢复码,将来如果忘记密码,还可以用恢复码登录应用。
  3. Ente Auth 还支持导入/导出备份的数据,这个备份数据是加密的,即使原来的账号完全访问不了,也可以注册新账号,然后导入备份数据,再输入备份密码来解密,实现数据的迁移。
Ente Auth 设置菜单

顺便提一嘴,由于微软采用自己的技术,微软账号仍然需要用 Microsoft Authenticator. 而我所在公司用的是全套微软生态,所以暂时还无法完全弃用。

4、KeePass 保存重要账号的密码、恢复码

KeePass 同样是跨平台开源软件,而且它采用离线数据库保存数据,可以完全脱离网络运行。

KeePass 的安全性完全不用担心,比如我用主密码+密钥文件的形式来访问数据库,除非别人同时拿到这两个东西,否则都无法解密。

KeePassium 截图

哪些数据值得保存在 KeePass 里?

我认为像谷歌、苹果、微软、QQ、微信、支付宝这些类似基础设施的账号,以及各种网银账号、服务器密码等,都可以保存在 KeePass 中。KeePass 支持添加附件,我甚至在里面存了服务器的 SSH 密钥。

还有各个账号的恢复码可以记录在 KeePass 中,当 Passkey 和 OTP 无法使用时,恢复码可以帮我们顺利登录。

既然 KeePass 的数据库文件是离线的,那么要如何实现不同设备之间的同步呢?

很简单,把数据库文件放在 iCloud、OneDrive 或其他能够实时同步的网盘里。如此以来,无论在哪个设备上修改,其他设备都能拿到最新数据。

5、手写记录 KeePass 主密码和 Ente Auth 恢复码

事实上,我的 KeePass 数据库在 2018 年就创建了,一同创建的还有密钥文件和主密码。主密码长度 30 位,因为它有一定的含义,所以到目前为止我还能记住。但为了避免将来搞混,我把它手写记录在一张纸上。

KeePass 密钥文件信息

在纸上记录的还有 Ente Auth 的主密码、备份密码和恢复码。不像其他平台的恢复码只是几位数字,Ente Auth 的恢复码是十几个随机单词的组合,这换谁能背下来并长期记忆啊?所以抄在纸上是最保险的。

6、最重要的账号开启所有恢复方式

密码存在 Edge 中,PassKey 存在 Apple Keychain 上,OTP 用 Ente Auth,重要数据和恢复码保存在 KeePass 中,KeePass 主密码和 Ente Auth 的账号信息手动记录在纸上保管。

KeePass 的数据库用 iCloud 实时同步,定期备份到其他网盘和移动硬盘。除此之外,我还把 KeePass 的密钥文件发送到自己的多个邮箱里,只要有一个邮箱能访问,就还能拿到密钥文件。

这还不够,像谷歌、微软、苹果这种生态地基,务必绑定手机、添加备用邮箱。当其他所有认证机制都失效时,还能帮我们拿回账号控制权。

通过以上操作,即使所有设备丢失,或者微软、苹果的账号被封禁,也不影响我恢复账号。

四、其他可选方案

我采用以上组合方案,主要目的是跨平台、避免单一生态依赖,以及备份容灾。不得不承认,引入的工具以及前期要搭建的框架比较繁杂。

那么,有没有其他轻松点的方案呢?

假如没有跨平台的需求,例如所有设备都是苹果系的,那么可以统一使用「密码」APP 来保存密码、通行密钥、验证码。在 Mac/iOS 上登录网站和应用时,不只是密码,连通行密钥和验证码都可以自动填充,这个方案可以带来极佳的无感体验。

此外,也有不少人选择使用 Bitwarden 来统一管理密码和多重认证。Bitwarden 既可以直接用官方的在线服务,也可以自己部署服务端使用。不过官方维护更专业,理论上用官方服务比自己部署更安全。

最后,市面上还有不少知名的付费产品,有兴趣可以自行了解:

耕读君
耕读君

热爱科技,热爱折腾,有一个可爱的女儿

文章: 401

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注