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