我的密码管理方案(或:Poor man's Password Manager)

最后更新日期:2015-10-10

  使用 LastPass 或 1Password 的最大问题是:你必须信任软件的开发者。

  但我为什么要信任一个几万行的闭源软件呢?

  同理,把密码交给任何云服务商,问题更大。

  现在随着使用的网站越来越多,光靠脑子记住各种密码恐怕是不可能的了。所以我们还是需要把密码记录在一个文本文件里。

  然后的问题就是这个文本文件怎么存,直接明文保存到硬盘上肯定是有安全隐患的。比如电脑丢失,或者电脑废旧处理。即使你把这个文件删除,现在的各种恢复软件还是有可能恢复出来。

  要知道 FBI 的专用设备,即使在磁盘被反复擦写 7 次之后仍然能恢复出之前的数据,但对嫌疑犯用 TrueCrypt 加密的硬盘却束手无策。所以保存在硬盘的形式应该是加密的。

  当然如果你不会用命令行,直接 WinRAR 压缩加密也就可以了。

  我个人当然更信任 OpenSSL 或 GnuPG 实现的加密算法:

openssl enc -aes-256-cfb -in passwords.txt -out passwords.bin

  为确保完整性可以再来个 sha256sum 。

  解密时结果应放在内存盘,使得明文的形式永远不出现在硬盘。

P.S. WinRAR 解压的时候要注意:如果你直接双击打开那个文件,WinRAR 可能会自动给你解压到 %tmp% ,会写入硬盘的。

P.S.2 这个方案的优点是只依赖 OpenSSL 和内存盘,且加密后的文件在 Linux 和 Windows 都可以解密,轻松跨平台。缺点是修改文件的时候要重新加密。

P.S.3 内存盘就是将一部分内存虚拟成磁盘。Linux 可以用 tmpfs ,Windows 可以用 http://www.ltr-data.se/opencode.html/ 的 ImDisk Virtual Disk Driver 。以后我再写一篇介绍一下内存盘?

P.S.4 后续更新:内存盘简介