如何食用Bitwarden密码管理
引言
我猜测看到这篇文章的朋友,可能很多连什么是bitwarden都不知道。不着急,我们先从密码管理开始讲起。
如今我们每天有大量的时间在网上冲浪,几乎是个网站都会要求你提供一个用户名和密码,基于此为你创建一个账户。在这样的环境背景下,一个人所拥有的网络账户中当然会包括微信、Paypal这类的高价值账户。
假设分析
现在假设某个人的密码管理情况如下:
这个人在几乎所有网站使用同一个密码。
这个人使用不同的密码,并亲自记忆。
这个人使用不同的密码,并通过密码管理器在不同网站随机生成密码并记录。
我们对每一种情况进行分析:
情形1
密码足够复杂。即便大型公司的密码库安全性足够强,仍有可能某一天你在某个不知名小网站上使用的密码出卖了你,让你常用的密码暴露在黑客本人和他售卖密码库的对象手中。而密码库获得者可以通过撞库的方式,利用你在不知名网站上泄露的密码尝试登录你在其他网站的账户,从而窃取个人信息甚至盗窃财产。而这里的“即便”甚至都不一定成立,即使安全如LastPass(后文会讲),仍有密码泄露时间传出。
密码不够复杂。这里的“不够复杂”包括如下可能性:密码过短,密码过于简单,密码使用了个人信息。
密码过短。可以直接用暴力破解方式破解,也就是直接通过足够多次输入取得正确的密码。
密码过于简单。指使用常见词汇来组成密码。如“password”这个次尽管有8位长,但密码破解者只需要几次输入就能得到,因为它是“常见密码榜单”前五的固定客户。请确保你的密码不在常见密码榜单内。
密码使用了个人信息。诸如姓名,生日,甚至你家猫的名字都很容易从公开社交网络和媒体获得,将它们作为数字或者字符应用到密码中会增加被直接猜中的风险。
需要注意的是,试图获取密码的人可能会将上述方法结合使用。
情形2
一种常用的技巧是替换。如密码格式为”#########”,其中#####代表密码前缀,而根据不同网站替换。
例:将”platinum3776NGA”作为NGA论坛账户的密码,将”platinum3776baidu”作为百度账户的密码。
这也是一种较为可行的策略,较单一密码安全。只是一个初步的例子,你可以探索更加高阶的技巧。
如果你足够强大,用脑子记,我没什么可说的。请注意保养头发。请不要忘记重要密码。
情形3
iCloud钥匙串,Edge密码管理,Google Chrome都有密码管理服务,但在诸如Steam、Epic等非浏览器客户端登录时就不太方便了。这也是笔者不全面依靠浏览器进行密码管理的原因。另一方面,浏览器仅保存密码,在保存诸如Matlab、Tableau注册码等方面不够方便。
其他tips
最最重要的是,不要将重要网站的密码和不重要网站(安全性难以保证)的密码混用。
对于不重要的网站,如果只是因为必须要登入账户,密码丢失也几乎没有任何损失,那么完全可以采用毫无防备的密码。
根据密码学,极弱密码比不设密码更加不安全。
为什么手机PIN码足够短却相对安全?通过限制输入次数的方式,如5次失败输入后会锁定30秒,来防止足够多的输入。即便如此,我们仍然建议定期和不定期的更换PIN码。
建议重要密码使用KeePass,或iCloud钥匙串、Google Chrome等加密方式留存一个备份。不要明文存储备份,如果仅用于导入导出,用后就删除。
关于Bitwarden以及其他一些密码管理器
Bitwarden本身是开源项目,托管在GitHub上。但由于Bitwarden采用Microsoft SQL作为后端,对服务器的性能要求较高,小规模部署多采用同样托管在GitHub上的较为轻量化的项目Vaultwarden。笔者的服务器托管也采用Vaultwarden实现。Bitwarden与Vaultwarden使用同样的客户端(包括安卓,IOS,Linux和Windows多系统)和网页版,因此除小部分企业功能外,食用体验并无差别。(具体差别可参考Vaultwarden在Github托管页首页的介绍)
在使用第三方托管服务器部署时,请将左上角的URL替换为托管网址。
Bitwarden官方(疑似被墙)也提供免费的密码托管服务,付费用户(单人$10/year,家庭$3.33/month)可使用高级功能。
最知名且好评率最高的密码管理器当属1password,闭源商业软件,$2.99/month单人的价格(国内好像有¥99/年的代理)让笔者望而却步,流下了贫穷的眼泪。如果有条件欢迎为笔者提供评测。其他较为知名的密码管理还有LastPass,2021年3月16日后不再提供免费跨端同步,现在高级版售价$3/month。LastPass有过泄密传闻,笔者不考虑。
几乎所有密码管理软件都采用或至少包括AES-256算法的加密方式,根据密码学知识,暴力破解是接近不可能的,除非有划时代技术(如量子计算机)出现。所有密码管理器,无论本地还是云端密码数据库,也仅会存储加密数据库,绝对不会存储密码明文。Bitwarden官方文档显示,密码库加解密均在本地进行,服务器仅保存加密后的数据库。因此,即使管理者也同样绝对不可能解密你的密码数据库,除非你提供密钥。这同样意味着,如果你丢失了主密钥(解密数据库密钥),你的数据将会几乎永远永远的丢失。请务必牢记。
如果对于托管在服务器上的密码管理软件不放心,还有一些其他选项留个喜欢折腾的朋友。笔者在搭建Bitwarden服务器之前使用过半年的Keepass,也是开源软件,转到Bitwarden的最大原因是客户端界面太丑。Windows桌面端可以用KeepassXC,界面比较现代,现在笔者将它作为备份使用。安卓端Keepass2Android同样功能完善,但太绿了。Keepass数据库完全存在本地,可以通过Webdev云盘(如微软Ondrive)自行同步多平台数据库。
一些链接
Vaultwarden托管地址:https://github.com/dani-garcia/vaultwarden
Bitwarden托管地址:https://github.com/bitwarden/web
Bitwarden官网:https://bitwarden.com/