前言
在 CSDN 的密码事件爆发之前,我都是用的一个密码,所以出事之后换了方案一。
方案一
第一批密码的规则是类似这样的
{前缀}#{网站标识}{后缀}
这样的好处是,我只要看下网站,就能知道这个网站的密码是什么了。不好的地方就是,如果是有心人看到,大概能推测出其它网站的密码是长什么样子的。
不同网站的密码规则不同,有的需要必须含有大写字母,有的不允许特殊字符,导致现在有的密码不能简单的推导出来了。于是一些级别较低的网站的密码规则现在是这样子的
{前缀}233{网站标识}
网站标识这里统一第一位字母大写。这样的规则能应付绝大多数的网站了。在这些规则之外,级别最高的几个帐号,Gmail,QQ,淘宝则是独立密码,哪怕别的网站的密码被知道,也可以通过找回密码找回。
方案二
最近在试用 KeePass 这个软件,至于为什么是这个而不是其它的 1Password 或其它的密码管理软件,仅仅是因为这个软件在 ubuntu 官方的源里面有。不过这类软件都是类似的,通过一个密码去保存更多的密码,这些密码软件也提供各种随机密码的生成。
KeePass 本身是不支持同步的,所以需要额外的同步软件去同步这个他的数据文件。这里我用的是 坚果云,它有 ubuntu 的客户端,免费的额度也是够用的。同时,同步的文件夹也放在 Win10 的 onedrive 的同步目录下面,这样就又备份了一份了。
KeePass 官方客户端本身也是支持各种的同步手段的,FTP,webdav 等等。webdav 的方式去连接 onedrive 和坚果云我是没弄成功过,所以只能是知道有这种方式。另外,KeePass 本身是有另外的 key 文件一起进行加密的,这个文件推荐使用别的途径去保存,例如邮件。
我看别人也有一些有趣的用法,就是用互联网上一个公开的不变的文件当作 key(开源协议文档,旧的协议标准文档,某个版本的经典代码),或者一个你能记住的文本当作 key 文件。这样就不用额外去保存这个文件了。
至于手机登录问题,安卓版的 Keepass2Android 本身是支持 onedrive 和 Google Drive 的。这样子整个应用场景基本就行了,至于使用的话,没有自动填充的确很麻烦,但是大多数时候也仅仅是一次而已。
除了几个比较重要的网站以外,其它网站的密码都用 KeePass 来生成随机密码,借助浏览器和 APP 的缓存,在大多数情况下仅仅需要输入一次密码即可。这是目前我觉得比较适合我自己的方案。
理想的状态
无密码,这是最最最理想的状态了,但是基本不可能实现。未来希望能大批量的推广 Google Authenticator 的二次验证,通过手机验证码和这个二次验证,我觉得基本就可以解决大多数问题了。其实每次重新登录重新设一次密码对我来说也是可以接受的。
现在很多时候也借助第三方登录了,这样子就减少了不少的帐号密码的组合。这个国内的话希望更多的渠道借助微信登录,扫码真的挺方便的。
一些想法
我看了下别人的用法,很多时候使用这些密码管理工具的时候,都是设置浏览器不保存密码的。个人感觉没有必要,虽然浏览器的密码是明文保存的,但是还是有加密的,不担心在同步的过程中被看到。如果是说担心被人用你的电脑看到浏览器的保存的话,这个也是怪个人而已,毕竟物理接触到你电脑了,任何安全工具都没什么用了。当然,如果密码管理工具本身就支持自动填充那就最好了。
我觉得密码管理工具更多是用在防止网上的密码泄漏之后导致的其它的密码被人知道。使用者本身的安全意识比工具更重要。