分享我的密码管理技巧,尽量防止泄露密码,被盗号
导读
# 密码管理技巧
## 一、前言
信息时代,每个人都持有了很多的账号密码,上千组账号密码毫不夸张;从安全角度,密码越复杂越好,而且最好每个账号的密码都是唯一的,没有关联性;但人类的脑子实在太弱鸡了,几乎不可能记住这些数量庞大,夹杂着大小写字母、数字、标点符号、特殊符号的密码;于是乎,密码管理的需求产生,这里记录一下我这些年使用过的密码管理方式,技巧。
## 二、曾经使用过的密码管理方式
### 1. 纯靠脑子记或者纸笔记录
毫无疑问这就是最原始的方式,我们的上一辈人至今普遍使用的方式。我大概在小学初中会使用这种方式,优点显而易见:简单,不需要额外工就婊可缺点就太多了:写在纸上很容易泄露给旁人;而且脑子和一张纸或者笔记本都太不可靠了,数据极容易丢失,时间一长你可能就忘了,当初记着密码的那个本子也早就找不到了;还有使用不便,只能对照本子一个个字母数字输入电脑,效率低下。
>我因此丢失了我的第一个QQ号,在我尝试了所有可能的密码都登陆失败的那个下午,我是崩溃的,毕竟上面有我所有小学同学的联系方式,仅仅是因为上了初中不方便接触电脑太久没有登陆,我就再也联系不上他们了;往后的几年我还曾多次尝试搜索登陆那个丢失的QQ号,但均以失败告终,唏嘘不已。
>>~~里面有我曾经喜欢过的女生QQ号可能是更重要的原因,那是一对双胞胎中的妹妹,额,偏题了。~~
后期还使用过电脑TXT文本记录的方式,相比于用写在纸上的方式,这种方式可能稍微不那么容易丢失,但其他缺点还是一个没少。
再之后,我把TXT文本中记录的密码转移到笔记软件中:`OneNote`,并且把记录密码的那个笔记进行了加密,这样多了一道安全保障,同时可以借助OneNote实现云同步;但微软的OneNote同步速度太慢了,手机端使用也不方便,查看或者编辑过程步骤繁琐,我用得并不多。
### 2. 浏览器记住密码功能
随着互联网的发展,各大浏览器都越来越功能完善,出现了记住密码功能。
记得最开始使用的`360/搜狗`等浏览器;然后因为扩展擦件迁移到`Google Chrome`浏览器。再因为网络环境的原因,尝试着使用过一段时间`Microsoft Edge`浏览器(EdgeHTML内核);但因为EdgeHTML内核的`Microsoft Edge`浏览器使用上还是诸多不便,于是迁移回`Google Chrome`浏览器。最后,`Microsoft Edge`浏览器改为使用Chromium内核,使用上和Google Chrome差距很小,而且对网络环境要求没那么竿娆于是直到现在都在使用`Microsoft Edge`浏览器。
浏览器上的记住密码功能使用上很方便,第一次手动输入密码,之后都会自动输入;密码数据会跟随账号同步,几乎不会丢失。
但缺点也很明显:
* 只能记住密码,不能生成密码;
* 密码是明文保存在本地(或者加密但能够被轻易解密),一旦有其他人使用你的电脑或者中木马,所有密码会被人轻易批量获取;
* 更换浏览器需要数据迁移,兼容性堪忧(某些浏览器为了绑定用户,甚至没有导出密码功能);
* 共用电脑或者临时借用电脑的不便,别人可以直接登陆你的账号;外出使用别人的电脑或者网吧公用电脑,需要下载自己常用浏览器并登陆自己账号,不方便也不安全;
* 无法跨平台使用,比如手机上通常体验不佳(Microsoft Edge中保存的密码可以通过`Microsoft Authenticator`在手机上使用,但体验非常一般,可能和网络环境有关);
* 对网络环境要求竿婧这里特指`Google Chrome`浏览器
但由于我是PC端浏览器高强度使用胀娆截至写这篇笔记前,这仍然是我的密码管理主力方式。
### 3. 密码规则
应该是高中时期吧,学习到一种密码规则,`特殊字符`+`固定密码`+`动态密码`。
>固定密码:可以是任何你记得住而又不容易被人猜到的字符,同时还可以进行二次加密;比如你的名字首字母/末字母+你的籍贯首字母转换为九键键盘的数字或者转换为双拼输入法
>
>动态密码:根据每个网站来设置,可以是网站域名、厂商名称首字母等
>
>三者的前后顺序任意,你记住就行
创建一套自己的密码规则以后,就可以套用到不同网站,而无需任何工就娆纯靠脑力。
* 这样可以保证每个网站的密码都不一样,防止某个网站密码泄露后被人撞库
* 所有密码都足够复杂,有特殊字符,防止爆破密码
* 通过记忆规则而不是记忆具体密码,减少大脑记忆的负担,避免遗忘
但这些年使用下来,也遇到了一些头疼的问题:
* 某些网站限制了密码能够使用的特殊字符,比如禁止使用`/`、`@`;或者强制要求必须以大写字母开头、只能使用数字/小写字母之类的,这样打破了我的规则,导致非常容易遗忘这些特殊案例;每当这时我都痛苦不已。(这里特别点名某些银行手机APP登陆密码,限制多,重置找回还不方便,这个年代了,还必须去柜台才能重置手机银行登陆密码)
* 某些时候我暂时把账号借用给朋友,需要暂时把密码告诉他人;由于这种密码具备统一规则,可能被有心人破解,从而泄露你所有的密码。总不能找你借个爱奇艺账号,你当面说等我先改个密码吧;何况某些网站对于改密码有频率限制。(我反而不担心网站方泄露给黑客,这种需要手动破解才能撞库的,一般人没有足够价值吸引黑客这么做,他们一般只使用脚本进行批量撞库)
一位网友对这种密码规则管理方式的总结,十分全面,可以参考:
[我的密码管理最佳实践](https://x.com/kinokoameme/status/1765950237515141363)
### 4. 密码管理器
密码管理器的优点很多:
* 安全性更竿娆所有数据加密存储,供应商也无法轻易获取你的数据;
* 同时支持跨平台使用,不管你用的什么浏览器,什么平台的设备,安装一个擦件,都可以同步使用;
* 部分密码管理器集成支持双因素验证;
* 支持记录一些需要加密保存的文本信息,比如银行卡信息(账户、过期日、安全码、取款密码、网银/手机银行登录密码、交易密码等等)、账号找回一次性密钥等比较敏感的信息;这些信息随处保存不安全,使用也不便,密码管理器可以统一保存;
最早使用的是`Lastpass`;电脑端免费,支持同步,自动填充,使用很方便。后来放弃了这个软件:Lastpass出现过多次安全事故,虽然官方一直不承认密码泄露;更主要的原因是2019年4月中旬,Lastpass应用在中国区下架,官方更是直接取消了中文语言支持,[Lastpass国区下架,疑因国内公司抢注商标](https://zhuanlan.zhihu.com/p/65644737);虽然想想办法能够从社区找到中文语言包补丁,但修改一款密码管理器让我觉得不够放心,而且也不方便,于是放弃了Lastpass,注销了账号。
之后的日子都是`浏览器记住密码`、`密码规则`和`OneNote`混合使用,但由于他们都有各自的缺点,无法完全满足我的需求:比如某些不能使用密码规则的手机APP密码或者手机SIM卡的PIN/PUK码;于是我又增加了一个手机端的密码管理器:`账号本子`
`账号本子`是一个纯本地的应用,连网络权限都没有,更像是替`OneNote`在手机上加密保存信息的替代品。不能同步,手机出了问题数据就报销,这让我一直不够放心;没有自动填充这些功能,一个纯粹的加密笔记本,能记录的信息也非常有限,我的使用频率不竿娆但又不能没有。PS:这个APP在后期更新的版本还开始收费订阅了,不过之前版本的功能也够用。
了解密码管理器可以参考文章:
[密码管理器的进化史(上)](https://www.infoq.cn/article/Jrr56Ufm8h2jCkepI5qG)
### 5. 二次验证/双因素验证
简单来说就是除了主密码,还需要你通过另外一种形式的认证,通常是输入一个验证码。这个验证码可能是通过短信/邮箱发送给你;也可能是通过你手机上提前安装绑定的应用程序:比如`Google Authenticator`、`Microsoft Authenticator`,应用程序会根据当前时间离线计算出一个三十秒有效期的验证码,网站通过相同的算法匹配一致,认证通过。
一开始我使用的是`Google Authenticator`,但谷歌的产品,都会存在网络问题,而且`Google Authenticator`对我来说有个很致命的问题,它不会同步保存数据,一旦卸载应用重装,数据就没了,需要每个网站逐一重新绑定。
于是迁移到`Microsoft Authenticator`,微软产品网络问题会好一些(仍然存在),而且数据会同步绑定到你的微软账号,不会丢失(也丢过,因为网络问题同步出错,很麻烦)
## 三、重构自己的密码管理方式
最近感觉自己的密码管理过于分布,使用不方便,也担心泄露风险,于是重新开始思考密码管理方式。
由于目前用到的互联网服务越来越多,存在各种各样的需求:
* 有些网站可能是临时的,创建账号登陆使用一次后就不再使用;但也有可能在很久以后,突然又需要用到该网站
* 常用网站使用自己的密码规则,但我又不想每次都手动输入密码,我更想自动填充
* 浏览器的记住密码不安全,也不能完全满足我的需求,需要搭配其他方式
* 二次验证会大大增加安全性,但又不想太麻烦
所以一个密码管理器应该是刚需了,只有它才能用一个工具满足更多的需求。
市面上的密码管理器众多,我需要找一个满足`安全`、`开源免费`、`自动填充`、`跨平台使用`、`云同步`、`集成二次验证`的,如果能`私人部署`最好,数据掌握在自己手上。
市面上主流密码管理器:
>* [1Password](https://1password.com):没有免费计划;个人使用收费2.99美元/月!太贵了
>* [Bitwarden](https://bitwarden.com/):开源,个人使用免费,支持私人部署;官方的免费用户不支持集成的双因素验证擦件
>* [LastPass](https://www.lastpass.com/):个人使用免费,中国区应用下架,不支持中文;免费用户只能使用移动端或者桌面端其中之一
>* [mSecure](https://www.msecure.com/):没有免费计划,个人使用收费美元1.66/月
>* [Keepass](https://keepass.info/):开源、免费;它更像是一个本地的密码管理器,同步需要借助网盘或者第三方提供的WebD作品实现;界面非常过时,毕竟它从03年开始更新;很多高级功能需要借助擦件实现
>* [RoboForm](https://www.roboform.com/):免费用户只能使用一台设备
>* [Enpass](https://www.enpass.io/):没有免费计划,个人使用收费2美元/月;没有云同步,同步需要借助网盘或者第三方提供的WebD作品实现
>* [Keeper](https://www.keepersecurity.com/):免费用户只能用移动端,个人使用收费2.92美元/月;
显然,最满足我的需求的是`Bitwarden`;然后是`KeePass+坚果云WebD作品`的解决方案
因为我正好有NAS服务器和域名,所以选择私人部署`Bitwarden`。
[Bitwarden:密码管理器](https://blossom.187231.xyz:24678/blog/#/articles?articleId=20212 "##20212##")
`KeePass+坚果云WebD作品`:KeePass的UI界面非常过时,我并不喜欢,找了一些教程,如果Bitwarden不能满足我的需求,再考虑。
>[KeePass 入门视频教程](https://www.bilibili.com/video/BV1gFaCe1Eiv/)
>[KeePass如何搭配坚果云实现多设备同步?](https://help.jianguoyun.com/?p=3348)
>[坚果云第三方应用授权WebD作品开启方法](https://help.jianguoyun.com/?p=2064)
