论密码管理

这个月16号,知名密码管理软件Lastpass的免费用户,将不能同时使用桌面端和移动端了:

LastPass

消息来源:http://aciano.top/redirect/?target=https://support.logmeininc.com/lastpass/help/what-can-i-expect-to-change-for-lastpass-free-on-march-16-2021


应该如何设置密码

谈到密码管理,就不得不先讲密码安全

对密码进行分级

多数情况下,你的密码都不是被暴力破解的,而是因为你在许多网站上都使用了同一个密码!!

毕竟现在国内黑客破解密码的常用手段之一,就是攻入一些“小”网站的后台,获取到数据库内的ID+密码后,到其他各大网站尝试相同ID+密码能否登录(撞库)

所以实际不是密码复杂度的问题,而是你不要在那些不安全的小网站上使用和你重要网站一样密码的问题

这里最简单的解决方案就是密码分级,一般来说可以按3个梯度来进行设置:

1.一般的密码(如屏保密码等)

2.社交隐私类(如QQ。微信、微博、邮箱)

3.涉及到金钱的一类(如支付宝、微信、paypal)

让密码复杂但又不难记

实现让密码复杂但又不难记,就需要有自己的一套密码规则,

这里采用的方法是:固定密码 + 根据网站来生成额外密码

例如我的固定密码是:@Amnesia=000!

建议这个固定密码要包含英文、数字、符号,另外最好是首字母大写,这样能适用于绝大多数网站的密码设置要求。

然后就比方说:

  • 对于QQ,我的密码就是@Amnesia=000!qq
  • 对于微博,我的密码则是:@Amnesia=000!weibo

这里只是举例,因为如果你不小心同时被人获取到了2个以上网站的密码,就很容易被猜出规律

所以你最好加上更多的密码变化规则:

  • 比如缩写不足3位的,就与666进行替换,那QQ的密码就是@Amnesia=qq!000,微博的密码则还是@Amnesia=000!weibo

  • 比如根据缩写的长度改为在末尾增加数字,那QQ的密码就是@Amnesia=000!12,微博的密码则是@Amnesia=000!12345

  • 再或者是能映射到键盘上,根据网站缩写的长度,在键盘上依次按qwer…,那QQ的密码就是@Amnesia=000!qw,微博的密码则是@Amnesia=000!qwert

以上只是举例子,大家可根据自己发挥想象来设计一套自己的密码规则

如果你觉得自己想不出来,可以到知乎相关问题下借鉴一下。

我的密码管理方案

基本上只要做到了前文所述,再加上自己不要上钓鱼网站的当,就很难出现密码被盗的情况了

然后就该谈今天的主题了:密码管理

可能部分人觉得浏览器自带的「保存密码」功能就足够了啊

但说实话,单纯用浏览器来记录密码,缺点很多:

  1. PC端与手机端用的不是同一个浏览器,那就会很麻烦
  2. 不支持对软件、APP自动输入密码
  3. 不能记录除了网站以外的密码
  4. 无法给密码加上备注
  5. ……

用密码管理器除了能解决以上的问题,另外还有个好处是:你只需要记住密码管理器的一个密码就够了,其他的密码,全交由密码管理器来记

除了文章开头提到的 Lastpass,密码管理软件其实还有不少,1Password、Bitwarden、Dashlane、Enpass、Keepass、Keeper、RememBear

付费方案解决起来自然简单,而想必多数人还是更喜欢免费方案的

那在这些工具中,再除掉免费版有密码数量限制&设备限制的,其实就剩下 Bitwarden、KeePass 可以选择了

而本文要推荐的是我一直在用的 KeePass

Keepass 的优点是开源,全平台支持,完全免费,数据本地加密,完全不会有那种密码始终是交给别人存放的顾虑,也不用担心别人的服务挂掉

KeePass 还有个最容易被忽略的优势:其加密方式和加密算法,处于密码管理软件的最前沿,至今都没有暴露过任何安全风险(要知道LastPass可是曝出过有严重漏洞的)

但其最大缺点就是工具链比较长,配置略显麻烦,没有详细的教程的话,很多人入不了门

KeePass PC端食用指南

KeePass 唯一的缺点可能就是设置起来麻烦

但是麻烦并不代表着复杂,跟着下面的教程一步步操作,还是没有难度的

以下教程很长,非常硬核!

获取主程序

前往网址 http://aciano.top/redirect/?target=https://keepass.info/download.html 下载PC版KeePass:

推荐下载最新的2.x Portable 版(即绿色版)

download

下载后解压,可以得到以下文件:

文件夹

手动汉化

KeePass 虽然支持多语言,但并没有内置到软件中,需要自己手动下载最新的汉化包进行汉化: http://aciano.top/redirect/?target=https://keepass.info/translations.html

因为上面下载的 2.x 版的主程序,所以要下载对应版本的汉化包:

language

将下载下来的 .lngx 文件放到 KeePass 的Languages文件夹中:

汉化

运行 KeePass.exe 启动程序,点击View » Change Language »双击简体中文即可更改语言:

Change Language

Select Language

创建数据库

汉化好之后,你就可以创建属于你的密码数据库了

在 KeePass 内点文件 » 新建,然后选择一个地方存放你的数据库.kdbx(这个文件存放的就是你的密码,名称可以随意)

新建数据库

创建管理密码&密钥

接下来是比较关键的一步:设置你的数据库密码

如果你觉得你的电脑使用习惯很好,可以像阿虚一样只设置管理密码

而如果你觉得你存放的密码对你非常重要,建议勾选「显示高级选项」,然后自己新增一个密钥文件:

创建密钥


密钥文件是打开数据库的第二把钥匙,以2个常见的应用场景来说下它的用处:

1.你想在公司的电脑上用 KeePass,但又怕你不在工位的时候被人盗取密码,那你就可以把密钥文件存放在你的U盘上,打开数据库的时候,必须键入管理密码+读取你U盘中的密钥文件才能打开

2.你可以创建任意格式的密钥文件,比如一张jpg格式的图片,然后设置一个非常普通的文件名,这样就算电脑被黑,黑客也无从得知你的密钥文件是哪一个,进而也获取不了你的密码数据库

这里说一点,如果你创建了密钥文件,后面在移动端使用的话,会稍显麻烦(因为需要额外拷贝密钥文件到手机上)

设置数据库

你的管理密码与密钥设置好之后,接下来是设置一个数据库名称

然后设置「安全」选项卡中的「迭代次数」

迭代次数越高数据库越难被暴力破解,但每次打开数据库的耗时也越长,你可以根据自己的需要来进行设置(我这里保持默认):

数据库1

数据库2

设置完之后,点击「OK」,会弹出一个打印应急表单的窗口,点击「跳过」即可:

打印应急菜单

进一步设置

然后终于进入软件主界面了,但我们还有需要对软件本身进行一点设置,点击工具 » 选项

选项

如果你是公共电脑,建议在「安全」与「高级」选项卡下做如下设置:

这里其中一些设置是为后面一些插件服务的,你不太懂也没关系

选项-安全

选项-高级1

选项-安全2

安装插件

KeePass 的另一大优势还在于,由于软件本身开源,所以它拥有非常多强大的插件。

点击工具 » 插件管理器 » 获取更多的插件

你也可以直接打开:http://aciano.top/redirect/?target=https://keepass.info/plugins.html

然后你便能看到琳琅满目的插件可供选择了,按键盘Ctrl+F,即可在页面内进行搜索:

Plugins

你可以后续自行去发掘这些插件,这里仅推荐一些常用(自用)插件:

插件名称 下载地址 插件作用 备注
KPEnhancedEntryView http://aciano.top/redirect/?target=https://sourceforge.net/projects/kpenhentryview/files/ 提供更方便的主页面视图,同时按 F9 就可以一键查看/隐藏所有加密字段,同时也能在主界面直接修改用户名、密码、添加备注和附件 默认是层叠显示,可以自己点击显示 » 窗口布局 » 改为平铺,达到更好的视觉效果
AutoTypeSearch http://aciano.top/redirect/?target=https://sourceforge.net/projects/autotypesearch/ 用于在 KeePass 未能成功匹配的时候,快速搜索你的密码数据库 你可以在 KeePass 的工具 » 选项 » AutoTypeSearch中设置一个呼出快捷键
CheckPasswordBox http://aciano.top/redirect/?target=https://sourceforge.net/projects/checkpasswordbox/ 在使用自动输入时防止误输密码到非密码框 具体用法见后文的3.11,这里不多介绍
RDCAutoTypeAndTCATO http://aciano.top/redirect/?target=https://rdc-keepass-plugin.appspot.com/ 增加了对远程桌面连接 (RDC) 窗口自动输入的支持,对于QQ这类窗口也需要此插件才能正常进行自动输入 设置方法是:点击工具 » RDCAutoTypeTCATO » Programs List
KeePassHttp http://aciano.top/redirect/?target=https://github.com/pfn/keepasshttp/ 连接浏览器与 KeePass 没有什么需要设置的,下载后放到 Plugins 文件夹中即可

安装插件的方法:

插件下载后,把解压出来的 .plgx 文件,放于 KeePass 的 Plugins 文件夹中,就完成安装了:

添加插件

浏览器扩展

单给 KeePass 加上了 KeePassHttp 插件还没完,主要是要与浏览器扩展搭配才可

在浏览器上安装 KeePassHttp-Connector 这款扩展:

确保你的 KeePass 已经启动,然后点击浏览器扩展栏的 KeePassHttp-Connector 扩展图标,并进行连接,首次连接需要你设置一个 Key name(这个看自己喜欢随意设置即可),然后你就能看成功的将浏览器与 KeePass 关联起来了

连接

然后你就能很方便的将在浏览器输入的密码,新建并保存到 KeePass 了

在你输入完密码后,在密码框右键,选择 KeePassConnect 的保存登录信息(save credentials)

右键菜单

然后右上角的 KeePassConnect 的扩展图标将会闪动,点击一下,将可以将密码新建或者更新到 KeePass 中:

保存密码

WebDAV同步

KeePass 实现全平台同步的办法基本都是使用的坚果云:http://aciano.top/redirect/?target=https://www.jianguoyun.com/`(主要是国内也就这家的WebDav服务免费且好用)`

免费用户每月也有1G的上传流量,这对才几百KB的数据库文件来说是完全足够的

把你的 .kdbx数据库文件,上传到坚果云的一个新建文件夹(文件夹名需要是英文)

上传文件

然后在网页右上角账户 » 账户信息 » 安全选项中,添加一个应用:

添加应用

应用名称

接着回到 KeePass 中,点击文件 » 打开 » 打开网址

打开网址

比如我的情况是:在 Keepass 文件夹下,密码库的文件名是:password.kdbx,所以我的地址是:http://aciano.top/redirect/?target=https://dav.jianguoyun.com/dav/Keepass/password.kdbx

而用户名是坚果云账号,密码是上面在坚果云中生成的应用密码

添加触发器实现自动保存

虽然目前你已经可以直接通过 KeePass 原生的同步功能进行同步了,但每次同步都需要自己手动点击保存,这可能对于某些人来说太麻烦了

当然,你要是能养成每次添加、修改数据库密码后就手动Ctrl+S保存的好习惯,也不用下面这些设置

但对于部分人来说,有修改后就自动保存还是挺重要的,所以这里就介绍一下方法:点击工具 » 触发器进入触发器设置界面后,

复制以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="utf-8"?>
<TriggerCollection xmlns:xsd="http://aciano.top/redirect/?target=http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://aciano.top/redirect/?target=http://www.w3.org/2001/XMLSchema-instance">
<Triggers>
<Trigger>
<Guid>L2euC7Mr/EKh7nPjueuZvQ==</Guid>
<Name>SaveSync</Name>
<Events>
<Event>
<TypeGuid>s6j9/ngTSmqcXdW6hDqbjg==</TypeGuid>
<Parameters>
<Parameter>1</Parameter>
<Parameter>kdbx</Parameter>
</Parameters>
</Event>
</Events>
<Conditions />
<Actions>
<Action>
<TypeGuid>tkamn96US7mbrjykfswQ6g==</TypeGuid>
<Parameters>
<Parameter>SaveSync</Parameter>
<Parameter>0</Parameter>
</Parameters>
</Action>
<Action>
<TypeGuid>Iq135Bd4Tu2ZtFcdArOtTQ==</TypeGuid>
<Parameters>
<Parameter>http://aciano.top/redirect/?target=https://dav.jianguoyun.com/dav/keePass/passwordSync.kdbx</Parameter>
<Parameter>123456</Parameter>
<Parameter>123456</Parameter>
</Parameters>
</Action>
<Action>
<TypeGuid>tkamn96US7mbrjykfswQ6g==</TypeGuid>
<Parameters>
<Parameter>SaveSync</Parameter>
<Parameter>1</Parameter>
</Parameters>
</Action>
</Actions>
</Trigger>
</Triggers>
</TriggerCollection>

复制好以上代码后,在触发器这里,点击「从剪贴板粘贴触发器」:

触发器

接着会多出一个 SaveSync 的触发器,选中它 » 点击编辑

在动作选项卡中,选中第二个动作,点击编辑,修改其中的网址、用户名、密码设置为你自己的(和上一步WebDAV同步的网址、账户、密码相同)

编辑动作

自动输入

KeePass 搭配上面的 KeePassHttp-Connector 浏览器扩展就已经能很好的实现密码自动输入了,但如果你想在一些软件上也实现密码自动输入,就需要额外进行一些设置了

在KeePass主页面选中你的数据库并右键 » 编辑群组 » 自动输入 » 替代默认规则为:+{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORDBOX}{PASSWORD}{ENTER}

编辑群组按钮

这样设置的前提是你安装了 CheckPasswordBox 这款插件

编辑群组

然后在工具 » 选项 » 集成中设置自动输入的快捷键(另外如果你需要KeePass开机启动,也可以在这里进行设置)

全局输入

KeePass 手机端

KeePass 的手机端其实就简单很多了,基本上是导入你 WebDAV 中的数据库就能用了

而且密码自动填充如今在手机端都能很好的实现了

iOS

iOS端 KeePass 的客户端选择就很多了,因为没有苹果手机,所以无法作演示,这里只推荐两个软件,具体使用方法还请自己摸索。

FantasyPass(奇密),不过这款软件收费12块钱:

FantasyPass

你也可以用免费的 Strongbox:

Strongbox

安卓

安卓端大家普遍推荐的都是 Keepass2Android,算是同类APP中最好用的那个

你可以在SOFTPEDIA上下载:http://aciano.top/redirect/?target=https://mobile.softpedia.com/apk/keepass2android-password-safe/

安装好之后,首次打开 Keepass2Android,选择打开文件 » 选择HTTPS格式的WebDav

然后就是输入你数据库的坚果云 WebDAV 地址,填写你的坚果云账号,与坚果云中设置的第三方应用密码

将数据库导入进来之后,再输入你的数据库管理密码进行打开(如果你有设置密钥,需要把密钥文件拷贝到你的手机上)

新版的 Keepass2Android 已经支持自动识别与填充,甚至部分APP内的登录都是支持的(如酷安)

结语

最后如果你要问密码迁移方案,抱歉,我也没有…

我的做法是浏览器自带的密码管理和 KeePass 同时使用,平常登录的时候,就在网页上手动操作把密码一条条的记录到 KeePass

就这样用了一段时间后,基本上常用的账号密码就都完成了迁移,这也没多消耗自己额外的什么时间

可能很多人会被映入眼帘如此大的工作量给劝退,但实际上,照着操作花不了你15分钟

另外也诚心劝戒大家,不要因为工程量大,就放弃去做一件你应该做的事!

就比如,我很早之前就学会利用GitHub+jsDelivr搭建图床了,但是一直没有实际运用到文章中,而这篇文章是我第一次使用jsDelivr图床,图片速度的确快很多,虽然过程很麻烦,但是很值得!不要因为工程量大,就放弃去做一件你应该做的事!

结语

End