前言

前两天学习通密码泄露一事闹得沸沸扬扬,密码安全方面应该引起重视了。日常生活中,我们经常要用到各种网站和app,与之对应的,账号密码也是无数个。很多人在设置密码的时候,为了选择省事,都会选择使用相同的密码,而这往往会产生一些非常严重的安全问题:一些安全系数较低的网站往往有密码泄露的风险,这会导致使用相同密码的其他平台的信息得不到安全保证。但是为不同的网站设置不同类别的密码,要么是弱密码非常容易被破解,而较为复杂的密码往往又经常出现忘记密码的尴尬情况。这种时候,一个密码管理器就可以以一个较低的门槛来有效的创建和管理密码。

盗取密码的方式(非专业性)

在聊密码管理工具前先浅谈下盗取密码的大致方式及防范

  • 穷举:通过搜集到的你的个人信息来排列组合,生成海量的密码来一个一个地尝试。建议不要在任何不可信的地方填写个人信息,也可以进行伪造,除了需要实名认证的地方都尽量注意不要暴露个人信息,同时密码设置尽可能复杂
  • 脱库:通过各种手段来入侵服务器以获取保存在服务器里的账号密码。这于我们个人而言,无解,只能尽量不要暴露个人信息,在非大厂的网站或软件上用非常用账号密码,以减少撞库破解的可能,大厂也要注意,服务器都有可能被入侵,各个大厂也都有密码泄露的事故发生
  • 撞库:通过以获取到的账号密码和个人信息来猜测其他网站或软件使用的账号密码,这个同上

最后,密码设置上能复杂就复杂,同时不要常用一个密码,密码中不要包含个人信息相关;个人信息上能不填写就不填,不能填写就伪造

各类密码管理工具

  • 手机系统自带的密码管理工具:如iOS的钥匙链,安卓这边的谷歌自动填充及其他的类似功能。这类密码管理工具缺点在于无法再其他品牌的设备上进行同步和自动填充,谷歌虽然安卓机都可以用,浏览器有谷歌自家的chorme,但是国内由于各种原因,要用谷歌需要一点点手段,并不方便
  • 各个浏览器自带的密码管理,这类呢也和安卓大致相同,无法在其他浏览器里面使用,各种软件app也无法使用
  • 其他第三方密码管理工具:如1password;endpass;keepass;lastpass;bitwarden;Microsoft Authenticator等,这类的问题在于需要给予自启动以及关闭电池优化,对于手机而言会拖累些续航,于电脑呢又会拖累一些电脑启动速度

总的来说吧,其实是更建议使用第三方,虽然有些许影响,但是几乎是微乎其微,这些软件的占用还是比较小的,一个完善的密码软件一般支持主密码和跨平台,只需一个复杂的主密码,就能管理整个密码库。网站密码由软件生成,生成规则可以自己调整,生成的结果复杂而不重复,不用担心撞库。通过手机app,pc客户端,以及浏览器插件,所有密码都可以实现跨平台管理。用这点小代价换来密码管理的安全性和便捷性,个人认为还是不错的。

各个常用第三方密码管理工具简介

1password

         

简单省心且界面美观,但是收费,适合不想折腾愿意付费的养老颜控

keepass

开源且插件众多,但界面较老,适合喜欢折腾会折腾的人

Bitwarden

           

开源,功能越来越完善 ,有付费功能,但免费功能也够用,有密码更改历史记录,主要问题是自动识别保存密码的算法不如其他几家

Lastpass

界面美观,功能足够,但发生过泄露事件

Microsoft Authenticator

微软的作品,可与edge浏览器上保存的密码同步,但是其他浏览器用不了

其他的密码管理工具没用过,也就不提,这几个我也只用过Bitwarden和Microsoft Authenticator。原因嘛,没钱付费,加之Bitwarden是从前端网站到应用程序全部开源,就连后端同步和加密算法也全部开源,很符合柯克霍夫原则:即使密码系统的任何细节已为人悉知,只要密匙(key,又称密钥或秘钥)未泄漏,它也应是安全的。这样开源的加密算法可以使所有人都参与进算法的完善中来,同时一旦出现问题也能第一时间去解决。

用云服务器搭建Bitwarden私有密码管理器

由于官方云可能存在从删库到跑路的可能性,加之自己的密码还是放在自己手中放心,所以我选择了自己搭一个库。

根据官方文档的建议,使用Docker进行部署,这里图方便就用宝塔面板和Docker来部署,不需要命令。

 准备工作

一台云服务器,国内国外的都可以,但是由于Bitwarden安全策略,不开启https的话无法登录注册,所以国内你还得备案,建议能国外就国外。服务器安装宝塔面板,如何安装建议自行百度,这里不过多赘述。

一个域名,国内记得备案,已经有域名且已使用的可以开个子域名来弄,域名记得解析到服务器,如何解析同样不过多赘述。

创建网站

打开宝塔侧边栏中的网站,然后添加站点,如图所示设置,域名就填自己刚刚准备好的,FTP和数据库都不用创建,PHP版本选择纯静态,根目录这里为了后期方便备份,默认是啥就给他复制下来备用

安装Docker

打开宝塔面板侧边栏中的软件商店,搜索Docker并安装

获取Bitwarden镜像

打开Docker设置,点击镜像管理--获取镜像,搜索vaultwarden/server,然后点击获取镜像,等待他拉取完成

创建Bitwarden容器

点击容器列表--创建容器

端口映射这里容器端口填80,不可自定义,服务器端口可以自定义,然后点后面的加号

目录映射这里容器目录将前面创建网站时复制的网站根目录粘贴过来即可,服务器目录填/data,同样要点后面的加号

内存配额根据个人情况来选择

然后就可以提交了

容器名称建议改一下,免得以后如果有其他容器混淆

开启SSL和反向代理

打开宝塔侧边栏的网站,找到刚刚创建的站点,点击设置

点击侧边SSL,这边的几种SSL证书都可以选择,我这里选择Let's Encrypt,域名这里选择你的域名,然后申请,然后打开强制https

点击侧边反向代理--添加反向代理,代理名称随意,目标URL填http://127.0.0.1:xxxx,这里的xxxx是和我们上面设置的容器服务器端口一致,最后提交就可以了

访问域名,Bitwarden注册账号

直接访问你的域名,然后注册账号即可使用,浏览器插件,安卓或iOS端app下载应该不用多说

插件及软件登录

插件或软件打开后先点击设置然后在自托管环境下面服务器URL那填写上你的Bitwarden域名,否则无法登录

写在最后

主要是为了让不习惯使用密码管理工具的人了解这东西,推bitwarden主要是我自己这些东西用的也比较少,见识不足,可能有更好用的我也不知道。不过嘛无论使用什么密码管理工具,其安全性都可以提升很多,只要用起来都是好的。