【云原生】Docker部署Bitwarden

  • Post author:
  • Post category:其他


我们的日常生活中,会使用到成百上千种软件以及网站,由此,也会产生无数对应的密码。很多人在设置密码的时候,为了选择省事,都会选择使用相同的密码。但这往往会产生很严重的安全问题:一些安全系数较低的网站往往有密码泄露的风险,这会导致使用相同密码的其他平台的信息得不到安全保证。为不同的网站设置不同类别的密码,要么是弱密码很容易被破解,较为复杂的密码往往又会产生许久不用以后,忘记密码的尴尬情况。

或许安全又不容易忘的方式是每个平台背一首诗来创作密码?

因此,在此种情形之下,使用密码管理工具,就是一个可行的,且门槛较低地创建和管理登录账号密码的有效方法。

密码管理工具类别

现有的密码管理工具主要分为三大类,一类是浏览器自带的密码保存功能,一类是系统自带的密码管理功能(iCloud钥匙串、各家安卓系统内置的密码管理功能),最后一类则是第三方的密码管理软件(1password、endpass、keepass、lastpass、bitwarden等)。

但是前两种解决方案或多或少有一些缺憾,如iCloud钥匙串对PC用户不友好,Edge和Chrome等浏览器密码管理使用场景受限(无法保存app的密码),1Password好用,但要钱。因此,需求不高的普通人,最适合使用的就是剩下的免费密码管理软件,通过对密码管理软件设置一个密码,对自己的无数密码进行管理。

在这其中,开源、跨平台做的比较好的主要为lastpass以及bitwarden。但综合考虑使用体验,bitwarden较为推荐。

综合了密码管理软件的特性以及推荐的bitwarden使用上个人觉得很方面的地方进行介绍。

首先是便捷的密码输入能力,不管是浏览器网站的密码输入还是app上的密码输入,通过密码管理软件都能实现很简单的一键输入。方便省事,让自己从绞尽脑汁记忆以及输入密码中解放出来。

由于bitwarden开源的特性,有成千上万双眼睛帮忙盯着这款软件,其出现安全漏洞的概率就会极低。并且软件提供较为详细的指导,能够自行搭建服务器进行数据备份(密码数据完全掌握在自己手里),能极大地避免密码软件公司被攻击,由此产生的密码泄漏事件的发生。

但因为此次推荐主要是针对普通人群(之前对密码安全意识薄弱),所以不会涉及两步验证,或者使用自己的服务器进行密码数据备份进行详细介绍。

对lastpass和bitwarden进行对比:注册的时候lastpass 要求你先点击注册,然后会问你要不要记住密码。然而有些时候哪怕你点了注册,lastpass会有可能没有检测到这个注册,不会弹出是否记住密码的选项,然后你的密码就丢失了。而bitwarden要求你先在其创造一个账号,然后点填充,然后点注册。这样子的话,你完全不会丢失密码。并且基于这种逻辑,手机端也可以很方便的在注册界面跳转到bitwarden设置好账号密码后再回来注册。

使用密码管理软件的朋友也许会遇到这样一种情况:同一个平台有些登录入口并不能被检测到,往往需要重新保存一次密码,这样积累起来,会产生一个网站有好几个密码选项的情况。亦或者是不同的平台使用同一个账号系统。

bitwarden支持在同一个密码记录中输入多个登录界面网络链接,实现all in one,让该平台的所有密码选项用一个来代替,界面会更清爽整洁。

bitwarden支持方便的安全笔记功能,你可以将自己重要的信息记录其中,借助于密码管理软件的安全性对敏感信息进行保护。

bitwarden提供一个“反悔模式”,在自己手贱对某个网站设置了新的密码,但由于原本的浏览器已经保存了旧密码等一系列原因,导致并没有更新成新密码,但密码管理软件已经更新成了新密码。针对这种情况,可以利用bitwarden的密码历史记录功能,找回之前设置的密码。

在这里吐槽一下微软的教育版账号,隔一段时间就让我更新一下密码。有时候就出了这种错

bitwarden的免费用户无法对已保存的密码进行安全检测(lastpass 有一个 security challenge功能可以检查所有泄露的密码),但付费可以解决。

如果忘记了主密码,以及密码提示,貌似就真的找不回来密码了。

针对安全性的疑问,我摘录一段官方的说明

此外,密码库为AES-256非对称加密,要真的想暴力破解,可能得看看以后量子计算机有没有这个可能性了。

bitwarden的推荐是基于我个人的使用体验,写这篇文章的目的也是为了向没有使用密码管理软件习惯进行安利,无论使用什么软件,相比于简单的弱密码或者不同平台使用同一种密码,安全性都提升了很多,所以也不用太拘泥于使用哪一款。

使用起来,这是最重要的。

# docker-compose.yml
version: '3'

services:
  bitwarden:
    image: bitwardenrs/server
    restart: always
    volumes:
      - ./bw-data:/data
    environment:
      WEBSOCKET_ENABLED: 'true' # Required to use websockets
      SIGNUPS_ALLOWED: 'true'   # set to false to disable signups
      WEB_VAULT_ENABLED: "true" #web客户端

  caddy:
    image: abiosoft/caddy
    restart: always
    volumes:
      - ./Caddyfile:/etc/Caddyfile:ro
      - caddycerts:/root/.caddy
    ports:
      - 80:80 # needed for Let's Encrypt
      - 443:443
    environment:
      ACME_AGREE: 'true'              # agree to Let's Encrypt Subscriber Agreement
      DOMAIN: 'bitwarden.example.org' # CHANGE THIS! Used for Auto Let's Encrypt SSL
      EMAIL: 'bitwarden@example.org'  # CHANGE THIS! Optional, provided to Let's Encrypt

volumes:
  caddycerts:
# Caddyfile
{$DOMAIN} {
    tls {$EMAIL}
    gzip

    header / {
        # Enable HTTP Strict Transport Security (HSTS)
        Strict-Transport-Security "max-age=31536000;"
        # Enable cross-site filter (XSS) and tell browser to block detected attacks
        X-XSS-Protection "1; mode=block"
        # Disallow the site to be rendered within a frame (clickjacking protection)
        X-Frame-Options "DENY"
        # Prevent search engines from indexing (optional)
        #X-Robots-Tag "none"
    }

    # The negotiation endpoint is also proxied to Rocket
    proxy /notifications/hub/negotiate bitwarden:80 {
        transparent
    }

    # Notifications redirected to the websockets server
    proxy /notifications/hub bitwarden:3012 {
        websocket
    }

    # Proxy the Root directory to Rocket
    proxy / bitwarden:80 {
        transparent
    }
}



版权声明:本文为qq_44303766原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。