目标:不依赖第三方服务
使用 gopass 管理密码,gopass 是 https://www.passwordstore.org/ 的 go 语言实现。密码会被加密之后存储到 git repo 里,多个设备间使用 git 进行同步。
使用 https://github.com/gopasspw/gopassbridge, 采用 Chrome/Firefox 提供的 stdin/stdout rpc 和本地文件系统的 gopass binary 进行交互,配置简单,可以自动填充密码,支持 Basic Auth
使用 OpenKeyChain + Password Store 需要单独生成一个 ssh keypair 给安卓手机同步 git repo, 同时需要想办法把 GPG key 放到手机上。已知的方法:
- 直接把私钥丢上去,如果手机丢了就依靠 Google 远程抹手机
- OTG 插上一个 Type C 的 yubikey. 有点丑但是安全
使用 pass for ios。iOS 目前对 USB 外设支持较差,但是系统安全性感觉还行,可以考虑丢秘钥上去。
- Yubikey NFC 很香,但是 GPG Card 这个功能不能走 NFC ,暂时没标准。
- GPG2 会独占 Yubikey,所以如果要用 PIV 功能,得 patch GPG2
- 不依赖任何 Vendor
- 以上方案都支持 TOTP (比如 Google Authenticator 用的)(但是不支持 SteamGuard)
- 你可以在密码加密中写 user 等元信息,一部分工具支持自动填充。
- 使用 GPG 时可以生成一个 subkey 来专门用来 ssh.