Keepass有很多已经开源的插件,生态良好,在官网有专门的插件推荐区。安装插件的方法很简单,直接把下载好的插件文件放在plugins文件夹内,重启软件即可。下面我以几大功能推荐一些keepass插件或搭配使用的浏览器扩展,以求实现更方便、美观、安全的密码管理工作流!!!
一、自动填充类
该章节请参考本作者写的另一篇文章,里面详细介绍了keepass的典型网页自动填充方案。
【keepass】利用keepassxc-browser浏览器扩展和keepassnatmsg插件实现密码自动填充(KeePassHttp-Connector/KeePassHttp)
1.1 keepasshttp插件 + KeePassHttp-Connector浏览器扩展
注意:前几年有很多文章推荐的PasslFox或者chromelPass,现在已经不再维护了,替代的是KeePassHttp-Connector浏览器扩展。虽然这个方案可以用,但是最近KeePassHttp-Connector也被爆出不再维护,开发者推荐使用下文的第(2)个方案。
1.2 KeePassNatMsg插件 + keepassxc-browser浏览器扩展
因为第(1)个方案中涉及的keepasshttp插件有安全问题,以及相关维护人员决定不再修补BUG,所以KeePassHttp-Connector浏览器扩展的开发人员决定转向(2)。
1.3 Keepassrpc插件 + Kee - Password Manager浏览器扩展
这个我不太了解,没有上面的知名度高;不过确定是可用的,并且也正在维护。
1.4 软件自带的自动填充功能 + Autotypesearch
1.5 从软件中选择记录后打开右键菜单——执行自动填充
二、美化界面类
2.1 KPEnhancedEntryView
知乎的Waye在他的一劳永逸:KeePass全网最详使用指南中对此做了对比。
但我还要补充几点:这个插件除了可以让记录整体看起来更美观(一条白色一条蓝色+小标题粗体+类似表格那样的对齐排版),也可以在工具菜单里设置【是否隐藏没有填过的标准域】、【是否只读】(意思是如果你不设置只读,你是可以直接在预览窗口中对记录进行编辑的,所以这个插件不仅有美观效果,也方便了用户的操作)、【是否显示保护域】(啥是保护域呢?密码就是,如果你选择是就会显示成星号,快捷键是F9)。。。
2.2 YetAnotherFaviconDownloader
这款插件就是用来给每一条记录添加图标用的。例如你添加了一条CSDN的密码记录,然后你觉得软件内置的记录图标都太丑,你可以用这款插件根据你输入在记录中的网址自动获取图标。
右键记录(可以选一个或多个记录)——download favicons。
同类的【Favicon Downloader】比较受欢迎,然而“听说”(我没体验过哈哈哈)经常容易出错和卡死,所以推荐使用YetAnotherFaviconDownloader来美化记录。
对记录添加网址时,推荐不要写http协议和www域名前缀,比如CSDN就写成「csdn.net」,而不要写成「www.csdn.net」或「https://www.csdn.net/」,因为CSDN的密码输入页面的域名是「passport.csdn.net」,如果你写成后者就会在自动输入中识别不到。
但是网址写成不要http协议和www域名前缀也有要注意的地方,那就是在使用YetAnotherFaviconDownloader查找图标前,要在插件设置中勾选「Automatic prefix URLs with http(s)😕/」,这样才不会出现搜不到的情况。
三、快速添加记录类
因为很多人以前不是使用密码管理软件的,刚开始使用的时候可能需要添加大量记录,如果不凭借插件辅助高效添加,可能事半功倍。
3.1 MSWifiPlugin
MSWifiPlugin开源地址:https://github.com/elgesl/keepass-mswifiimport
当时我在谷歌上直接搜mswifiimport是搜不到的,还必须加上keepass的关键词。
我们去开源地址可以看到该插件的官方下载页面:https://elgesl.github.io/keepass-mswifiimport/install.html
下载好dll文件后,我们可以发现严格来说其实这不是一个插件,只是一个动态链接库(dll后缀),安装方法和插件略有不同,只是路径变为和keepass.exe程序所在路径一样的,然后重启软件即可。
在keepass软件中,文件菜单——导入。
而后,翻到最下面,我们可以看到【Wifi Connection manager】。
单击【Read from system】,接着单击左边的【Ja】。(本人也不知道这是啥语言哈哈哈,但左边一般都是确定吧!!)
而后,最下面会自动创建一个名称为WLAN的记录文件夹,里面全是电脑上记录的WIFI名称及其密码。
从电脑中往keepass导入WIFI记录很方便,其实如果你以后换电脑或者重装系统,从数据库里导出WIFI记录到电脑上也很方便。(这句话我收回,从插件的github网页中可以看到作者导出wifi记录的方法是:选中wlan记录——右键——单击In Windows einfügen,然而我没有看到In Windows einfügen选项,我猜想是随着keepass的迭代,这个导出功能已经失效了吧,而且这个插件好久都没更新了,不知道他还打算维护不)。
3.2 KPEntryTemplates
此插件用于创建记录模板,因为不同网站、平台需要记录和保存的信息不同,要不要手机号、要不要邮箱、如果是银行卡就是卡号和取款密码/登陆密码等等。
此处还是推荐上面的知乎Waye大牛的文章,他在文章中推荐了六个模板,特别详细。
另外我在这里强调几点比较有用的认知和概念。
- 你需要创建一个模板文件夹专门放模板记录,并且把这个文件夹定义为模板文件夹。你不要在这个模板文件夹中添加日常记录,因为在工具栏的添加记录工具下拉框中会显示所有模板文件夹的模板,你添加太多日常记录进去会显得很杂乱。
- 设置模板过程中,Tamplate模板标签栏中各个字段之间的排序是通过“拖拽”进行的;而高级标签栏中不需要设置,因为Title、Username、Password、Password Conformation、URL、Notes、Expiry Date这些就是对应到高级标签栏的用户名、密码、确认密码、网址、备注和过期时间。
- 除了Custom字段可以有多个,其他字段都只能有一个,不然就会报冲突。而也只有选择Custom字段,才可以进行后续Field Name和Type、Opt/Npt的设置,对于Field Name直接和前面的Title相同即可。type有好几种,常用的就“Protected Inline受保护文本行”和“Listbox多选列表框”这两种类型。前者表示这种字段在预览窗口中需要用星号隐藏,后者常用在手机号、邮箱地址上,因为正常人类的手机号和邮箱地址就那么几个,每次新建记录都要手动输入太麻烦,直接设置为“Listbox多选列表框”类型,也就可以直接选择。设置成“Listbox多选列表框”后,在Opt中可以输入各个选项的信息,每条选项之间用英文逗号隔开。
- 如果你添加的记录中用到了“Listbox多选列表框”类型,那么后续你删除listbox中某一个选项时,你选择这条记录时预览窗口仍然会显示相关选项的信息,也就是说信息是没有被清除的,但是你编辑这条记录时会发现这条字段为空(不代表这个字段真的没数据)。
- 如果你在添加记录的时候没有选择任何模板,那么你这条记录就是一条标准记录;但是你仍然可以之后在编辑记录时在模板标签栏中再设置模板进去。
3.3 WebAutoType
据称这个插件可以将软件的全局自动填充匹配规则从标题模式变为URL模式。但我觉得这个其实完全是可以被本文在4.3.1节中提到的任一个方案代替,并且功能稳定性也会更好。
因为标题模式匹配有一定弊端——一些大型网站的登录页面标题是动态变化的,如果你标题设置得很精细,那么网页标题一旦变化了就匹配不到。而URL模式,因为域名具有更明显的独特性,域名不会乱变,你只要给记录加上一个二级域名,就可以精准匹配到99%的网站。
设置方法如下:工具菜单——WebAutoType Options——勾选Use the URL field value for matching使用URL字段来做自动填充功能的匹配依据。
Automatically skip user name for password表示自动跳过用户名而转向密码,也即仅填充密码。开启这个选项的时候,自动输入规则里的SHIFT、CLEARFIELD和TAB都失效了,BUG(我测试的是6.8.2版本,不知道后面版本会不会修复)很多,所以建议大家不要开启这个选项。
这个插件除了它名字中所言对“自动填充”有贡献外,还对便捷添加记录有贡献。当你在Create Entry from Web Page中设置快捷键,随后在某个网页下单击网址框(其他可输入文本框也可以)后按下这个快捷键,会在keepass中自动弹出记录创建窗口并填充网页标题和URL。
弹出如下创建记录窗口,标题、密码、URL全部都不用手动输入了,直接把标题的冗余部分删除,以及URL只保留到二级域名,就OK啦,方不方便???!!!
3.4 利用上述自动填充方案进行快速添加记录
本文第一章节提到的前两个方案,都是基于最初的【keepasshttp插件+chromelpass浏览器扩展/PassIFox浏览器扩展】方案进行开发,因为这个鼻祖方案具有一个特点——如果没有检测到数据库中保存有对应网页的记录,那么当用户输入账户名和密码后单击登录时会提示是否保存成一条记录到数据库中。所以这两个方案也具有这个特性,从而能很方便地在网页中新建记录。
如下图所示,只要keepassxc-browser浏览器扩展检测到这个网站你数据库中没有URL匹配到、或者用户名/密码有不同,那么就会弹出下面这个横幅。
点击新增或者更新,会自动在keepass数据库中做出更改。
建议在keepassxc-browser浏览器扩展中勾选只保存域名,因为保留http和www不利于未来的匹配。
另外不得不提到的一点,有些网站(比如网易163邮箱网站)感觉存在BUG,你在里面输入用户名和密码登上去,并不会有横幅提示,即使你这个是一个新号。
四、安全增强类
4.1 KeePassQuickUnlock
该插件按理来说应该是快速解锁,用来便捷操作的呀!为何会归入安全增强类呢?
其实是因为如果我们设置一个复杂(更长)的主密码和添加一个密钥文件,安全性确实可以提高,但是日常解锁时麻烦程度会提高很多,这时候如果我们能借助KeePassQuickUnlock使日常解锁过程用一个稍微简单点的密码,不就使我们更愿意使用这么长的主密码(管理密钥)和使用密钥文件了吗?
这个插件有两种工作模式。
第一种:管理密钥的前几个或后几个作为快速解锁密钥。这时,keepass的解锁模式是循环往复式的,也即你使用了一次快速解锁,下一次就必须要输入完整密钥。你这一次输了完整密钥,下次就要输入快速密钥;你这次输了快速密钥,下一次就要输完整密钥。开发这款插件的JanisEst不推荐此模式,我实在想不出为啥。
配置方法如下图,进入keepass软件选项窗口——QuickUnlock标签栏——选择【“QuickUnlock” Entry Part of Master Password】——在Part of Master Password中,选择是从前开始截取还是从后,以及输入截取的字符数量。
如下图所示,配置好后,这次输入快速解锁密码。
下次就要输入完整密钥以及确定密钥文件。
第二种:快速解锁密钥和管理密钥独立开。这种情况,你需要新建一个名称为【QuickUnlock】的记录,以及至少填写上密码(这个就是快速解锁密码)。当你启动keepass软件后用完整管理密钥(以及选择密钥文件-如果有的话)解锁数据库文件后,之后你只需要用快速解锁密码;除非有一次你不小心输错了,就需要重新输完整管理密钥(以及选择密钥文件-如果有的话)。
运行逻辑:在启动keepass软件时将数据库文件用完整密钥和密钥文件的方法解锁后,KeePassQuickUnlock插件会将解锁用到的完整密钥和密钥文件信息记录入内存中。之后如果数据库被锁定了,直接用快速解锁密码提取内存中的完整密钥和密钥文件信息,用于数据库的解锁。当数据库锁定后,如果用户输入一个错误的快速解锁密码,内存中存储的完整解锁信息就会被拭除,从而只能由用户自己再输入完整解锁信息。
以下几种情况你需要输入完整的管理密钥(以及选择密钥文件-如果有的话):a. 启动keepass软件然后加载某一个数据库;b. 输入了错误的快速密钥导致在内存中的完整管理密钥数据被销毁。
配置方法如下图所示,进入keepass软件选项窗口——QuickUnlock标签栏——选择【“QuickUnlock” Entry only】——设置生效时间——确定。
新建一条名为【QuickUnlock】的记录,填上快速解锁密码,随便把记录放在哪个文件夹里。
如下图所示,配置好后,常规解锁数据库(不是第一次解锁)只需要输入快速解锁密码。
如果快速解锁密码输错了,会弹出和完整管理密钥输错一模一样的错误窗口。之后就会弹出让你输入完整管理密钥的窗口。
另一个可以增强安全性的理由(使用第二种模式)——当你在公司或其他开放场合办公,你可以趁旁边没人时赶紧把数据库用完整密钥解锁,然后在常规使用时只需要用快速密钥解锁,这两个密钥不一样,即使你的”身边人“知道了你的快速解锁密钥,也没办法进行导出、打印和更换管理密钥。
顶多通过“翻查”知道你的某些重要记录,所以快速解锁密钥也要定期更换,也不能太简单了。
4.2 过期设置PEDCalc——定期更改密码
PEDCalc开源下载地址:https://github.com/Rookiestyle/PEDCalc/releases
想必大家在创建或编辑记录时在最后一行经常看到过期的字眼,心想为啥要设置过一段就“过期”呢?网站或平台的账户又不会过一段时间就自动销户(有些游戏、软件过一段时间不登录才销户)。
其实这是另一项管理密码的好习惯牵引出来的软件功能——定期修改账户密码。
当你准备定期给一个很重要的账户(比如银行卡)定期修改密码时,为了避免忘记,你可以设置过期属性,使其在一段时间后就过期。
记录一旦过期,外观上会存在删除线,并且图标变成了红叉叉。
过期功能常常和keepass上的已过期查询工具搭配使用,使得用户可以方便地筛选出所有的已过期记录,从而进行后续的密码更新和过期时间再设定。
另外过期时间查询工具的意思是筛选出1天/2天/3天/1周/2周/1月/2月之后或将来会过期的记录。
由于keepass自带的过期功能无法实现更改密码后自动重新设置下一次的过期时间。
如果不加插件PEDCalc,那么工作流是怎样的?首先给记录设置一年的过期时间,下一年的同一天过期了,于是你利用查找菜单——已过期查询工具找到所有已经过期的记录,接着一条一条地修改密码,然后全选(Ctrl+A)和设置过期时间。
如果你打算取消一定数量记录的过期,可以用查找工具筛选出符合条件的所有记录,然后选中这些记录——右键——编辑记录——取消勾选过期。
而如果用插件PEDCalc;即使你不习惯一次性更新很多密码,你喜欢一次更新一两个密码,操作也不会有很多重复的。
因为这时候你的工作流变成这样——每更改一个记录的密码,插件PEDCalc自动帮你计算过期时间。
但是需要你安装PEDCalc插件以及做一些设置。方法如下:
安装好插件后,在选项附近可以看到PEDCalc插件的设置。PEDCalc is inactive表示插件的总开关,如果显示为inactive表示禁用插件的自动计算过期时间功能,相反如果显示为active表示启用。一般来说,既然我们要用这个插件,当然要调为active状态啦!
就跟我们每家每户的电闸一样,一个小区有一个电闸总开关,每家每户也有一个电闸开关,然后里面每个房间又有一个电闸子开关。
PEDCalc插件也是如此,所有记录有一个总开关(不过这个开关比较简单,只能设置插件是否禁用,不能设置过期时间),每一个群组(或子群组)也有一个开关,每一个记录也有一个开关。子群组默认继承父群组的开关状态和过期时间,而子群组里的记录默认继承子群组的开关状态和过期时间。
如果你对数据库总群组设置一个一年的过期时间,那么数据库所有记录的过期时间都会被计算为一年。如果你对数据库某个子群组设置一个月的过期时间,那么这个子群组里所有记录过期时间都被计算为一个月。
除了对群组用PEDCalc工具外,也可以对单个或多个记录用PEDCalc工具。如果你用查找工具筛选出很多记录,然后选中它们——右键——PEDCalc。对记录的PEDCalc操作选项有四种,inactive表示对这些记录禁用插件功能,inherit表示对这些记录的PEDCalc开关状态和过期时间采用继承设置(这是默认选项),expire entries表示使这些记录立即过期掉,永不过期表示清除这些记录的过期时间设定。
对于上面对群组可以用的PEDCalc操作,我们可以发现当我们对群组中的记录设定一个过期时间后,无法直接通过群组来取消过期设定,而只能对记录进行操作。具体方法为:选中群组——选中所有记录——右键——PEDCalc——永不过期。
4.3 评估数据库中的密码质量以及是否泄露
关于查询密码是否泄露的功能,虽然网上有诸如Firefox Monitor、haveibeenpwned等提供输入邮箱地址或用户名查询密码是否泄露的工具,但仍然不能方便地一键对数据库中所有记录进行查询。
我记得以前在一篇文章的评论区看到过keepass有一款插件可以直接查询数据库中有没有账户信息被泄露。但是突然找不到了,如果找到了我会在本文进行更新。
五、软件和数据库维护类
5.1 SourceForgeUpdateChecker
该插件可以辅助keepass查询keepass软件及其插件在sourceforge站中是否存在更新的版本。
但是这个插件并没有被keepass官方推荐,不知道为啥哈(难道有安全风险,不知道呢)。很多开发者其实是很推荐的,所以我在这里也推荐一下。
keepass自带的检查更新只能检查github站点上的资源,而有些插件只在sourceforge上面更新,所以SourceForgeUpdateChecker刚好弥补了keepass软件的短板。
在安装插件前,检查更新结果如下:
安装插件后,检查更新结果如下:
5.2 数据库webdav同步工具——坚果云
相关设置在网上一搜一大把,我这里就不啰嗦了,仅仅总结一下重点。
- 你需要将数据库文件放在某个文件夹内,然后在应用管理中启用一项服务,每一项服务对应一个终端,也即PC端、手机端、平板端要各申请一项。
- 地址不是坚果云应用地址,而是你放置keepass数据库的地址。
- 用户名就是你坚果云的邮箱账户,而密码是应用密码。