密码管理工具
常见的包括但不限于以下几种:
工具 | 付费 | 开源 | 云同步 | 跨平台 | 团队共享 | 自托管 |
---|---|---|---|---|---|---|
1Password | 付费 | 闭源 | 官方云同步 | 支持 | 支持 | 无自托管 |
LastPass | 免费功能有限 | 闭源 | 官方云同步 | 支持 | 支持 | 无自托管 |
KeePass | 免费 | 开源 | 第三方 | 第三方 | 第三方 | 本地数据库,手动同步 |
Bitwarden | 免费 | 开源 | 支持 | 支持 | 付费版 | 自托管版本,数据库存储 |
简述一下原理,KeePass会把密码存在一个加密的.kdbx
数据库中,通过坚果云进行云备份,坚果云WebDAV可以分配第三方应用的账号密码,让多端的KeePass类应用进行访问。
配置完全后,仅需要记忆数据库的主密码,但如果要在没有本地备份数据库的设备上运行,还需要知道坚果云WebDAV分配的第三方应用密码,可以通过登录网页版坚果云查看。
坚果云WebDAV
WebDAV 的全称是 Web-based Distributed Authoring and Versioning,即基于 Web 的分布式创作和版本控制。WebDAV 是一种基于 HTTP 协议的扩展,允许用户通过互联网或局域网与远程服务器上的文件进行管理、编辑和版本控制。
可用的WebDAV服务包括但不限于坚果云、城通网盘、Dropbox、InfiniCLOUD、Yandex、pCloud、Nextcloud(自建)。这里我们使用坚果云提供的WebDAV服务。
创建第三方应用授权
在坚果云的网页端和安卓端均可进行。
网页端注册登录后点击头像,点击账户信息
,选择安全选项
,下拉到底部,可以看到第三方应用管理
,点击添加应用
,填入名称(方便区分)之后,记下应用密码
。
在手机官方应用商店下载坚果云app,注册登录,点击左上角汉堡菜单按钮 ☰ ,打开设置
,选择第三方应用管理
,点击添加应用密码
,填入名称之后,记下应用密码
。
创建同步文件夹
在坚果云的网页端、桌面端和移动端均可进行。但是同步Windows下的文件,需要下载桌面端应用。
网页端登录后点击创建
按钮,根据需求选择创建个人同步文件夹
或者多人同步文件夹
,填入文件夹名称即可,建议使用全英文。
在官网下载坚果云桌面端应用,点击新建同步文件夹
,按照提示进行。
在坚果云app中,点击+
图标,选择新建个人同步文件夹
,输入文件夹名称
,点击右上角完成
按钮即可。
KeePass2Android
在谷歌商店或是GitHub下载KeePass2Android并安装。
创建数据库
安装应用后点击创建新的数据库
,选择更改位置
,使用HTTPS(WebDav)
类型,然后输入坚果云的网址、账号和第三方应用密码,
登录成功后,可以选择保存的文件夹,推荐全英文路径。然后设定安全且好记的数据库的主密码(示例图片中的密码长度过短,这是错误的),手机支持指纹传感器的话,KeePass2Android会进行提示是否使用指纹解锁,建议开启,十分方便。
安卓端操作也还算方便,但是仍然建议在桌面端KeePass中再次整理。
KeePass
注意:请不要下载和使用任何非官方来源的不受信任的KeePass应用程序及第三方插件,包括但不限于各种精简版、增强版、一键安装版等。官网有简体中文翻译。
除了KeePass之外,官网还有列出其他第三方兼容版本,常用的还有KeePassXC。KeePass和KeePassXC基本上互相切换很好切换。个人倾向于使用 KeePass,可以用插件,自定义内容多。以下是KeePass 与 KeePassXC 的对比:
特性 | KeePass | KeePassXC |
---|---|---|
跨平台 | 原生Windows,端口或非官方支持 | 完全跨平台Windows、macOS、Linux |
界面 | UI 风格较为老旧 | 现代化,友好的用户界面 |
加密算法 | AES-256 和 Twofish | AES-256 |
浏览器集成 | KeePassNatMsg + Keepassxc-browser | 支持 KeePassXC-Browser 插件 |
多重身份验证 | 支持 YubiKey(通过插件) | 原生支持硬件密钥(如 YubiKey) |
密码共享 | 通过插件和外部工具支持 | 本地共享密码数据库功能 |
插件支持 | 丰富的插件支持 | 插件较少,但集成度更高 |
汉化
官网下载安装KeePass,过程不再赘述。在官方提供的翻译页面中下载语言包,把解压后的Chinese_Simplified.lngx
放入KeePass的language文件夹,在切换语言页面有文件夹跳转按钮。
重新选择语言后,按照提示点击重启,重启后的界面就是中文了。
创建数据库
点击菜单栏文件
,选择新建
,保存到坚果云WebDAV的同步文件夹,然后输入安全且好记的数据库管理密码,此处还可以点开显示高级选项
,选择多种组合加密方式,可以提高安全性但是相应的解锁时步骤就会相对麻烦。需要注意的是,如果使用了密钥文件
,需要保证密钥文件不被修改,并且保留安全的备份,不然会导致无法打开数据库。
后续数据库配置默认即可,值得一提的是迭代次数
和模板,模板后续再说。软件也给出了提示,迭代次数越多,字典和猜解攻击难度就越大,但数据库加载/保存也越费时
。底下有测试按钮
,可以试一个相对平衡的值出来,或者直接试试1秒延迟
的选项,和当前的设备性能有关。
打开数据库
如果已经使用移动端创建过数据库,或者不想使用本地的备份,可以选择打开远程数据库。点击文件
,选择打开
,打开网址(URL)...
,然后填入网址、用户名和密码。网址是.kdbx
文件在云端的完整路径,例如https://dav.jianguoyun.com/dav/test/password.kdbx
,账号是坚果云账号邮箱,密码则是在坚果云创建的第三方应用密码。
设置
根据现实的使用情况,开启自动锁定的功能。并且养成离开电脑时,WIN
+L
锁定电脑,或者ESC
、CTRL
+L
锁定KeePass数据库的习惯。
插件
WebAutoType
可以全局根据URL而不是浏览器窗口标题匹配记录,同时提供创建记录时,自动输入标题和URL的功能。
点击菜单栏工具
,选择WebAutoType Options...
,在Global hot key
一栏设定自动填写功能的快捷键,还可以修改自动创建记录的默认所属群组。
Yet Another Favicon Downloader
根据网址为数据库中的记录下载网页图标,可以一次选择多条下载。
选中一条或多条记录右键,选择Download Favicons
,
通常只要网址正确,且网址包含可用的图标,就能下载成功,如果失败就修改网址进行尝试。下载成功后记得保存数据库。
KPEnhancedEntryView
增强记录视图:提供颜值更高的查看视图,支持一键查看/隐藏所有加密字段(F9),安装后可在keepass主界面直接添加备注和附件。
把布局改为平铺,
然后右键列名,在设置中隐藏其他列,用户名也可以去掉,
这样结果会相对直观,右半边可以作为预览和编辑使用。
CheckPasswordBox
提供了新的自动输入占位符{PASSWORDBOX}
,用来定位属性为密码的页面输入框,防止输错位置。
输入用户名和密码时,中文输入法会导致输入中断或者异常,需要先切换到英文输入法。为了跳过这一步骤,我们首先打开Windows的设置
>时间和语言
>输入
>高级键盘设置
,点击输入语言热键
,选择要切换的输入法,点击更改按键顺序
设置想要的快捷键。
然后右键想要设置自动输入的群组,选择编辑群组
,然后点击自动输入
,选择替代默认序列为
,然后可以填写自己的自动输入序列,点击魔法棒图标可以查看每个字段的详细设定,例如我设置的是:
1^+9{CLEARFIELD}{UserName}{TAB}{PASSWORDBOX}{Password}^+0
2
3^+9 // Ctrl + Shift + 9 切换到英文输入法
4{CLEARFIELD} // 清空输入框
5{UserName} // 输入用户名
6{TAB} // 切换到下一个输入框
7{PASSWORDBOX} // 检查是否为密码框
8{Password} // 输入密码
9^+0 // Ctrl + Shift + 0 切换到搜狗输入法
KeeTrayTOTP
提供两步验证功能。
虽然KeePass有自带的两步验证功能,但是默认保存的TOTP数据字段,与KeePass2Android不通用(兼容性说明),KeeTrayTOTP插件则支持自定义保存的字段名,而且支持生成Steam的5位带字符的验证码。
Steam令牌TOTP
此处简述一下获取Steam令牌密钥,并设置到KeeTrayTOTP插件的过程。首先需要一部已经root的安卓手机。此处推荐使用爱玩机工具箱管理模块,选择XPOSED专区
,点击Xposed模块仓库
,在云端模块
一栏搜索"steam",可以看到SteamGuardDump
,点击下载
,下载完成后安装
。
安装成功后,在LSPosed
中选中Steam
作为作用域,然后启用模块
,然后打开Steam应用,可以看到一个复制成功的弹窗,不生效就重启一下手机。
打开QQ或者微信之类的软件,粘贴刚刚自动复制的JSON信息,下面是格式化后的结果:
1{
2 "accounts": {
3 "71356789234567893": {
4 "shared_secret": "XaIj3kfxaI3P5DS+H15JXhRO61I=",
5 "identity_secret": "zYq1AJQJeYItz2SXukgH5YACfH9=",
6 "secret_1": "r53UGQwAXV5UD7DVpHQL/On1x3x=",
7 "serial_number": "1919235565391891356",
8 "revocation_code": "R34567",
9 "account_name": "asdfasdfasd",
10 "token_gid": "1b35c1a45ac1v6x",
11 "steamguard_scheme": 2,
12 "steamid": "71356789234567893",
13 "uri": "otpauth://totp/Steam:asdfasdfasd?secret=XFGARHAS1QTI2D7MOU7B62ASDUKE522S&issuer=Steam"
14 }
15 },
16 "uuid_key": "android:1f23562a-d42a-1345-cad1-4adf134c1456"
17}
uri后的secret=XFGARHAS1QTI2D7MOU7B62ASDUKE522S
字段就是我们需要的密钥,在KeePass中选中Steam密码条目,Ctrl + Shift + I
或者右键菜单中打开Tray TOTP Plugin
,选择Setup TOTP
,填入密钥,然后选择TOTP Format
为Steam
,点击Finish
后Ctrl + S
保存数据库,就大功告成了。
KPEntryTemplates
更美观,更简洁,更高效,可全面定制的模板编辑器。
如果使用KeePass2Android创建数据库,会发现多了一个模板
群组,点击菜单栏文件
,查看数据库设置
,高级
,会发现启用了模板功能,模板记录组
中选中的就是这个模板
群组。
在没有安装KPEntryTemplates插件的情况下,查看模板中的记录,插入新的记录时,显示以下结果:
那么安装插件之后,查看模板中的记录,插入新的记录时,显示以下结果: