不過最近幾年,聽到 LastPass 有安全泄露問題的消息越來越多,對于一個軟件開發從業者來說,密碼的安全是我非常關注的。

密碼的安全

可沒想到的是,安全帶來的代價,卻讓我最終放棄 LastPass ,可能你無法相信,但事實確實如此。

不知何時開始的,LastPass 經常定期會要求已經授權的設備進行重新授權(事后才知曉的)。

這聽起來是一件好事,但給我帶來了非常糟糕的使用體驗。

有一次印象非常深刻,也是第一次出現這種問題,當時我以為是使用時間太久,輸入主密碼就可以重新登陸使用,但是那次無論我用密碼登陸多少次,都提示我去郵箱重新授權,但死活在 163 郵箱里收不到郵件,我非常的害怕,害怕我這么多年的保險箱就這么沒了。這種狀態給了我非常大的打擊,我非常懊惱當時為什么選擇它,也非常納悶為什么一個產品會越來越用?

直到一次偶然的機會,我登陸了我多年未使用的 QQ ,發現在 QQ 郵箱里有 LastPass 的郵件,原來 LastPass 把郵件發到了這里,但是為什么呢?難道以前設置過安全郵箱?可是過后我在 LastPass 的官網里好像找不到相關的設置(或許是我沒有找到)。

重新授權登陸后,由于工作忙,我沒有繼續跟進這件事了,也沒有進行復盤,怎么會遇到這種事情,下次遇到這種事情該如何處理。

以至于到昨天晚上,我需要登陸一些帳號, LastPass 又在關鍵時刻,罷工了。

是的,它又提示我要重新授權才能使用,可問題是163 郵箱無論如何也收不到授權郵件。由于時間過了太久,不記得之前是發到 QQ 郵箱里去了,我開始又陷入了深深的自責,吃一墊為什么不長智?

幸運的是,由于近期做一些項目,手機上有下載 QQ,經常要登陸 QQ,看到郵箱里的消息,才又回想起之前的種種。

如果不是兩次偶然的機會,讓我有機會在 QQ 郵箱里看到授權郵件,恐怕我積累多年的 200 百多個密碼,就全部丟失了,要知道密碼數據對我來說有多么的重要,因為不是所有的帳號都能使用手機重設密碼的。

經歷了兩次生與死的掙扎,害怕這種事情再次發生在自己的身上,于是我開始尋找市面上其他的解決方案,準備遷移數據到其他更好用的工具上。

在開始之前,先梳理了下自己的需求:

  1. 跨平臺:瀏覽器,手機(Android,iOS)、電腦(Windows、MacOS),而且還要不限制設備數
  2. 免費:能免費就盡量用免費的(前提是安全性滿足),省點錢畢竟還要還房貸

安全:這點最重要了,自不必說跨平臺

綜合考量之下,選定了 Bitwarden 這款工具,相對于LastPass的優勢,Bitwarden有如下幾個優勢:

  1. 開源:Bitwarden是一款開源軟件,這意味著任何人都可以查看并審查其代碼,確保無后門、安全可靠。而LastPass則是一個閉源商業軟件。
  2. 更便宜:Bitwarden提供免費和付費的服務計劃。對于個人用戶來說,它的付費計劃要比LastPass便宜,提供的功能也更豐富。
  3. 更好的隱私:與LastPass不同,Bitwarden不會跟蹤或出售用戶的數據。此外,Bitwarden使用加密技術存儲您的數據,并且只有用戶擁有解密的密鑰。
  4. 跨平臺支持:Bitwarden支持iOS、Android、Windows、macOS、Linux等多個平臺。而LastPass則僅支持較少的平臺。
  5. 無限密碼共享:在Bitwarden中,用戶可以創建任意數量的密碼共享組,并分享其中的密碼給其他人,這是LastPass不支持的一個功能
  6. 社區氛圍:由于Bitwarden使用范圍更廣泛,因此它有一個更大的社區,這意味著更好的支持、反饋和開發。它還提供了各種各樣的瀏覽器插件和應用程序,使得我的體驗更加完美。:

說干就干,從晚上 11 點開始查看文檔,開始部署 Bitwarden,遇到了一些小問題,整到了凌晨一點,終于自己部署了下,以下是自己的部署過程,給有需要的朋友們可以做個參考

1. 前置知識

Bitwarden是一個強大的密碼管理工具,它有著豐富的功能和強大的加密保護機制,同時也有易于使用的界面和跨平臺支持。

  1. 加密存儲:Bitwarden將所有的密碼和賬戶信息加密后存儲在云端或本地設備,并使用256位AES加密和PBKDF2 SHA-256哈希算法保護數據安全。每個用戶都有自己的主密碼,這是唯一能夠解鎖其加密數據的密碼。
  2. 跨平臺支持:Bitwarden提供了多種客戶端應用程序,包括Windows、macOS、Linux、iOS和Android,以及瀏覽器擴展程序和Web應用程序,用戶可以在各種平臺上使用Bitwarden。
  3. 密碼生成器:Bitwarden內置了隨機密碼生成器,可以生成更加復雜和安全的密碼,這些密碼包括數字、字母、符號等。
  4. 自動填充:Bitwarden能夠自動填充登錄憑據,用戶無需手動輸入用戶名和密碼。
  5. 分享和協作:Bitwarden允許用戶與家人、朋友和同事共享密碼和敏感信息。同時也可以創建組織并邀請團隊成員進行協作。
  6. 多語言支持:Bitwarden支持多種語言,包括英語、中文、法語、德語、日語、韓語、西班牙語等。用戶可以選擇自己習慣的語言來使用。
  7. 開源授權:Bitwarden是一個開源軟件,采用AGPLv3授權協議,用戶可以自由分發和修改其代碼。同時,Bitwarden使用了透明的開發過程,定期發布安全審計報告以保證安全性。

在搜索 Bitwarden 的使用時,還會經常看到 Vaultwarden 和 bitwarden_rs ,它們與 Bitwarden 是什么關系呢?

Bitwarden

Vaultwarden

對比之下,Vaultwarden 優勢非常的明顯,建議大家和我一樣,無腦使用 VaultWarden即可。

1. 私有部署

部署 Bitwarden 的方法有很多,使用 docker 是最方便的,一條命令即可

“`shell
docker run -d –name vaultwarden \
–restart=always \
-e WEBSOCKET_ENABLED=true \
-e SIGNUPS_ALLOWED=true \
-e DOMAIN=https://vault.youdomain.com \
-e ADMIN_TOKEN=<you_master_password> \
-v /data/bitwarden/:/data/ \
-p 8080:80 \
-p 3012:3012 \
vaultwarden/server:latest

<pre><code class=””>上面用到的參數有

“`shell
# 啟用或禁用新用戶注冊:true啟用,false禁用
SIGNUPS_ALLOWED=false

# 設置web訪問域名,必須使用 https
DOMAIN=https://vault.yourdomain.com

# 是否啟用WebSocket通知:true啟用,false禁用
WEBSOCKET_ENABLED=true

# 啟用管理后臺并設置token,默認為空不啟用,設置token后則啟用
ADMIN_TOKEN=XXXXXXXXXXXX

還有更多的參數,可根據自己的需要進行設置

  1. # 設置日志路徑
  2. LOG_FILE=data/access.log
  3. # 日志級別選項:trace、debug、info、warn、error 以及 off
  4. LOG_LEVEL=warn
  5. EXTENDED_LOGGING=true
  6. # 設置SQLites數據庫存儲路徑及數據庫名
  7. DATABASE_URL=data/vaultwarden.db
  8. # 是否啟用web客戶端:true啟用,false禁用
  9. WEB_VAULT_ENABLED=true
  10. # 修改線程,默認為10,若用戶多可修改為更大,一般默認不需要設置
  11. ROCKET_WORKERS=20
  12. # 顯示密碼提示:true啟用,false禁用
  13. SHOW_PASSWORD_HINT=false
  14. # 設置SMTP
  15. SMTP_HOST=smtp.test.com
  16. SMTP_FROM=test@test.com
  17. SMTP_PORT=465
  18. SMTP_USERNAME=test@test.com
  19. SMTP_PASSWORD=password
  20. # 自v1.25.0起,不再設置SMTP_SSL和SMTP_EXPLICIT_TLS,使用SMTP_SECURITY替代,它有以下選項:starttls、force_tls和off
  21. # 465端口使用force_tls,587端口使用starttls,25端口使用off
  22. SMTP_SECURITY=force_tls
  23. # 啟用或禁用邀請:true啟用,false禁用
  24. INVITATIONS_ALLOWED=false
  25. # 啟用或禁用分享發送功能,默認開啟,啟用true,禁用false
  26. SENDS_ALLOWED=false

2.?反向代理

2.1 域名解析

后端的 Bitwarden 服務已經成功運行,前端如何訪問呢?

有兩種方法:

  1. 直接使用?https://{ip}:{password}? 訪問 web
  2. 申請個域名,使用?https://{domain}? 訪問 web

使用 ip 訪問,記得去設置安全組,開放端口

使用域名訪問,可以使用子域名,省得再申請域名,個人推薦使用域名,使用上更方便。

在云廠商上設置好 DNS 解析后,還需要設置下 nginx 的反向代理,才可以使用域名進行訪問。

2.2 反向代理

找到你的 nginx 配置文件路徑,假設是 /usr/local/nginx/conf/nginx.conf,添加如下配置,并重啟 nginx 服務。

  1. # ‘upstream’ 指令確保你有一個 http/1.1 連接
  2. # 這里啟用了 keepalive 選項并擁有更好的性能
  3. #
  4. # 此處定義服務器的 IP 和端口。
  5. upstream vaultwarden-default {
  6. zone vaultwarden-default 64k;
  7. server 127.0.0.1:8080;
  8. keepalive 2;
  9. }
  10. upstream vaultwarden-ws {
  11. zone vaultwarden-ws 64k;
  12. server 127.0.0.1:3012;
  13. keepalive 2;
  14. }
  15. # 將 HTTP 重定向到 HTTPS
  16. server {
  17. listen 80;
  18. listen [::]:80;
  19. server_name pwd.iswbm.com;
  20. return 301 https://hostrequest_uri;
  21. }
  22. server {
  23. listen 443 ssl http2;
  24. listen [::]:443 ssl http2;
  25. server_name pwd.iswbm.com;
  26. # 根據需要指定 SSL 配置
  27. ssl_certificate /etc/letsencrypt/live/iswbm.com/cert.pem;
  28. ssl_certificate_key /etc/letsencrypt/live/<you_domain>/privkey.pem;
  29. ssl_trusted_certificate /etc/letsencrypt/live/<you_domain>/cert.pem;
  30. client_max_body_size 128M;
  31. location / {
  32. proxy_http_version 1.1;
  33. proxy_set_header “Connection” “”;
  34. proxy_set_header Host host;
  35. proxy_set_header X-Real-IPremote_addr;
  36. proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
  37. proxy_set_header X-Forwarded-Protoscheme;
  38. proxy_pass http://vaultwarden-default;
  39. }
  40. location /notifications/hub/negotiate {
  41. proxy_http_version 1.1;
  42. proxy_set_header “Connection” “”;
  43. proxy_set_header Host host;
  44. proxy_set_header X-Real-IPremote_addr;
  45. proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
  46. proxy_set_header X-Forwarded-Protoscheme;
  47. proxy_pass http://vaultwarden-default;
  48. }
  49. location /notifications/hub {
  50. proxy_http_version 1.1;
  51. proxy_set_header Upgrade http_upgrade;
  52. proxy_set_header Connection “upgrade”;
  53. proxy_set_header Hosthost;
  54. proxy_set_header X-Real-IP remote_addr;
  55. proxy_set_header Forwardedremote_addr;
  56. proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
  57. proxy_set_header X-Forwarded-Protoscheme;
  58. proxy_pass http://vaultwarden-ws;
  59. }
  60. # 除了 ADMIN_TOKEN 之外,還可以選擇添加額外的身份驗證
  61. # 刪除下面的 ‘#’ 注釋并創建 htpasswd_file 以使其處于活動狀態
  62. #
  63. #location /admin {
  64. # # 參閱: https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/
  65. # auth_basic “Private”;
  66. # auth_basic_user_file /path/to/htpasswd_file;
  67. #
  68. # proxy_http_version 1.1;
  69. # proxy_set_header “Connection” “”;
  70. #
  71. # proxy_set_header Host host;
  72. # proxy_set_header X-Real-IPremote_addr;
  73. # proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
  74. # proxy_set_header X-Forwarded-Protoscheme;
  75. #
  76. # proxy_pass http://vaultwarden-default;
  77. #}
  78. }

3. 創建帳號

設置好反向代理后,就可以使用域名直接登陸 BitWarden,首次登陸,要先創建帳戶

創建帳號

輸入郵箱 等其他相關信息,密碼千萬記住,主密碼提示最好寫下,省得忘記主密碼。

帳號創建完成后,跳轉到登陸界面輸入主密碼進行登陸

輸入主密碼進行登陸

登陸后的界面如下

登陸后的界面如下

4. 數據遷移

萬事具備,只剩遷移,VaultWarden 對于市面上的幾乎所有的密碼管理器都提供數據導入功能,你聽過的沒聽過的都支持,應該有幾十種,包括:

我之前的主要平臺是 LastPass ,在如下位置就可以將密碼導出為 csv 格式

將密碼導出為 csv 格式

 

回到 https://vault.youdomain.com 選擇工具 – 導入數據

選擇工具 – 導入數據

5. 客戶端

Bitwarden 提供了全平臺的客戶端軟件,以下是常用的一些平臺客戶端,附上了鏈接,可以直接下載

未在此列的平臺,可前往官網進行下載:https://bitwarden.com/download

以 Chrome 插件和 iOS 為例,介紹下用法

Chrome 插件

安裝完成后,先點擊左上角的設置私人服務器(https://vault.youdomain.com)后

設置私人服務器

再使用郵箱登陸,就能連接到自己的密碼庫啦~

連接自己的密碼庫

 

iOS 客戶端

在 App Store 安裝后,也是和上面一樣,先設置私人服務器,也就是前面設置的域名。再輸入主密碼,就可以登陸上自己的密碼管理器。

為了在手機上有更好的體驗,需要設置一下,開啟自動填充。

在?設置? ->?密碼? ->?密碼選項?,允許 BitWarden 做為密碼的填充源

密碼的填充源

其他平臺

若你手上有其他的設備,方法都是類似的,可自行設置。

?6. 高級功能

安全報告

Bitwarden 還會生成一系列的安全報告,以保護用戶密碼的安全。

安全報告

它會將密碼以及郵箱地址與已經公開的,被泄露的數據庫中的內容進行對比,并找出這些不安全的密碼,另外也會與你自己的密碼庫中的密碼進行對比,防止一個密碼被重復使用多次。它能夠找到那些非常容易被破解的密碼,在自動填寫的域名中未使用 https 的,以及網站有兩步驗證但并未被啟用的,并進行提醒,增加密碼的安全程度。

測試了下自己的密碼,有很多都是有高危風險,這兩天就要統一整改下。

高危風險

賬戶保護

除了普通的賬號密碼,以及兩步驗證(必須通過網頁端開啟)外,Bitwarden 還通過 “指紋短語”(fingerprint phrase)來保護帳號安全。每個帳號都有一個固定的,由 5 個英語單詞組成的指紋短語,且不會改變。可以通過驗證指紋短語,來判斷所連接到正確的的 Bitwarden 服務器。或用來驗證添加到組織中的帳號是否為正確的帳號。

賬戶保護

它還支持通過修改 KDF 迭代來防止主密碼遭到暴力破解。

防止主密碼遭到暴力破解

其他一些安全措施,別的密碼管理軟件也具有,像后臺自動鎖定,禁止截圖等等,這里就不展開細說了。

總而言之,它所提供的功能非常豐富,在生成管理密碼外,還有一系列保護賬戶安全的功能,

7. 說在最后

私有部署 BitWarden ,不僅自己可以用,也可以給家里人使用,但注冊好后,請及時將關閉 web 功能,或者關閉注冊功能。

雖然數據和隱私完全掌握在自己的手里,但這一切的前提是安全,服務器的安全需要自己維護,若有沒有安全方面的經驗,最好去學習一下,明哥這邊給一些基本的建議:

總之,便利與安全是兩個是相互對抗,只能平衡,不能消除,使用 BitWarden 一定要注意做好安全措施。

8. 參考文檔

 

-=||=-收藏贊 (0)
保貝狗是一款個人信息保護產品。 » 使用 VaultWarden 搭建個人密碼管理器 原先Bitwarden
分享到

相關推薦

評論 搶沙發

保貝狗

保貝狗是一款免費的個人信息保護產品
大家都在用的隱私保護軟件
保貝狗專注于個人信息保護的研究
實用、簡單、方便、快捷

QQ聯系我們微信聯系我們