Ban đầu mình chỉ tính viết về vấn đề two-step login, nhưng sau thời gian sử dụng Vaultwarden, đặc biệt thích, nên muốn nói thêm 1 chút về toàn bộ công đoạn bảo mật cho tài khoản này
Các bước bao gồm Email, Master Password, Two-step login và Encryption key mà Bitwarden đang hỗ trợ
Tùy thuộc nhu cầu và sở thích mà bạn có thể chọn lựa các hình thức cho phù hợp
1. Email sử dụng
Khi đăng kí các dịch vụ password manager, xác định dùng lâu dài, nên sử dụng 1 email mới hoàn toàn, không dùng nó ở bất cứ dịch vụ nào, về cơ bản thế là đủ
Nếu đang dùng Gmail, Skiff, có thể thêm +thi71jq1
vào email, thành email+thi71jq1@gmail.com
, gần như không ai có thể đoán ra
Cũng có thể dùng email ảo từ các dịch vụ dạng iCloud Hide My Email, email sử dụng sẽ có dạng taper_cobs.0b@icloud.com
, sau đó chuyển tiếp tới email thực của bạn, lượng thông tin lộ ra quá ít, gần như không ai có thể hack các email này
Email này có thể ghi chú ở đâu đó để khỏi quên là được
2. Master Password
Master Password là password đầu tiên khi bạn đăng kí tài khoản, mọi thao tác sau này, từ đổi lại Master Password, Email, Two-step login hay Encryption key … đều sẽ yêu cầu nhập Master password
Nếu bạn có thể nhớ, quản lý được password này ở cấp độ tương tự fingerprint phrase mà Bitwarden đang sử dụng thì gần như không ai có thể giải mã thành công được, Apple khi mình xem, thì họ cũng chỉ dùng một cụm mật khẩu 3 từ faxzoz-risqEz-3manxe
Ban đầu thì mình không quá thích phong cách password như này, nhưng sau này thấy Apple dùng password dạng này, dùng dần thì thấy khá dễ học và làm quen, cấu trúc cũng rất dễ để nhớ, đại khái là gồm nhiều từ, các từ cách nhau bằng dấu gạch ngang, lấy thơ văn gì đó ra dùng cho khỏi quên cũng được
Password dạng này nó đủ dài, đủ phức tạp, so với cách đặt random khoảng 15-18 kí tự ngẫu nhiên (j@4LqBS6e6D7!dJ
) như trước đây thì dễ nhớ hơn nhiều
Master Password nên đặt dài và mạnh thêm 1 chút, nếu chẳng may Vaultwarden - Bitwarden bị lộ database, sẽ giảm nguy cơ xuống mức tối thiểu
Cá nhân thì sau 1 thời gian sử dụng, mình chọn phương pháp cọc hơn, là không nhớ Master Password luôn, sử dụng 1 password random siêu dài, cỡ 50 kí tự, sau đó lưu trữ password này vào 1 file text để lên Gmail, hoặc Notes trên Apple ….
Tất nhiên cũng sẽ có xác xuất ai đó vô tình đọc được, nhưng họ sẽ không biết mình dùng password này cho tài khoản nào, dịch vụ nào, cơ bản cũng khá an toàn
3. Two-step login
Bitwarden hỗ trợ rất đa dạng các tùy chọn cho Two-step login
1. Authenticator app
Hình thức 2FA căn bản, thông dụng nhất, thêm 1 lớp bảo mật cho tài khoản bằng cách sử dụng các ứng dụng như Authy hoặc Google Authenticator để tự sinh ra các đoạn code theo thời gian thực
Đủ an toàn cho phần lớn các nhu cầu sử dụng thông thường
- Chọn lựa Authenticator 2FA thì theo công thức chung là chọn sản phẩm mã nguồn mở, có thể import, export data ra là được
Nếu bạn có dùng iPhone, có thể dùng iCloud Keychain làm 2FA cho tài khoản Bitwarden
2. YubiKey OTP security key
Trên Bitwarden bạn cần tài khoản Premium để mở tính năng này (trên Vaultwarden thì mặc định đã được mở), về cơ bản nó cũng tương tự như hình thức 1, nhưng thay vì sử dụng các app tạo code, thì Yubico sử dụng khóa cứng dạng vật lý để tạo code, lý thuyết nó sẽ an toàn hơn, vì gần như không thể giải
Sử dụng khóa cứng có lẽ là hình thức two-step login cho hệ số an toàn cao nhất
Tuy thế sử dụng khá bất tiện, mỗi lần sử dụng, bạn cần cầm hoặc chạm thiết bị để lấy code, rủi ro mất, hư hỏng cao, giá thành cũng không rẻ, đa phần loanh quanh $20-$50 cho 1 thiết bị
- Thông thường mọi người sử dụng YubiKey sẽ mua khoảng 2-3 thiết bị, dùng trên các tài khoản quan trọng nhất, 1 thiết bị dùng hàng ngày, 1-2 thiết bị sơ cua phòng khi thiết bị đầu bị lỗi
3. Duo
Trên Bitwarden bạn cần tài khoản Premium để mở tính năng này (trên Vaultwarden thì mặc định đã được mở), mình hoàn toàn không biết gì về Duo, cho tới khi thấy trên Bitwarden
Google thì Duo là 1 sản phẩm đến từ Cisco, chuyên dành cho các doanh nghiệp, tổ chức, nó là hình thức Two-step login khá đa năng khi vừa có thể gửi 2FA qua app, vừa có thể dùng khóa cứng vật lý, vừa có thể gửi SMS, vừa có thể gửi email, dễ hình dung thì 5 hình thức Bitwarden đang hỗ trợ, tương tự 1 mình Cisco Duo
Mình có thử sử dụng Duo thì nó có 1 tính năng khá hay, là push trực tiếp thông báo lên, bạn chỉ cần ấn đồng ý hoặc từ chối là được, không phải nhập code thủ công như các hình thức 2FA khác
Mỗi cái công đoạn restore, backup lại nếu mất thiết bị khá lằng nhằng, mình thử nghiệm sơ bộ giả lập tình huống bị mất điện thoại, phục hồi lại backup cũ ra làm sao, thì thấy nó loạn hết cả lên, code sau khi phục hồi lại …. không hoạt động
- Bạn có thể dùng Duo làm hình thức Two-step login chính để dùng push cho tiện, sử dụng Authenticator app làm hình thức phụ, để phòng trường hợp Duo gặp lỗi cũng khá ổn
4. FIDO2 WebAuthn
Mình không quá hiểu về FIDO2 WebAuthn, đọc lượt thì cảm giác nó khá giống hình thức passkey, đại để thiết bị của bạn và trang đăng kí, 2 thèng tự nói chuyện, tạo thành cặp khóa public và private, đúng khóa thì cho vào, sai thì cút 😅
Bạn có thể dùng chính Windows hoặc iPhone, YubiKey để tạo các khóa cứng cho FIDO2 WebAuthn
Hình dung một cách nôm na, thì hình thức này độ an toàn sẽ cao hơn so với hình thức 1 là Authenticator app, nó cũng tiện lợi và rẻ hơn so với hình thức 2 YubiKey OTP security key
Cũng có thể coi như đây là 1 hình thức dùng phần cứng làm các thiết bị tin tưởng, khi các thiết bị khác kết nối, thì dùng thiết bị tin tưởng này để xác nhận
- FIDO2 WebAuthn là hình thức two-step login mà phần đông mọi người dùng khuyên dùng, trước đây cần tài khoản Premium mới dùng được, hiện tại Bitwarden đã miễn phí tính năng này cho tất cả mọi người
Mình có thử cái trên Windows, nó dùng Windows Hello để mở khóa, trên iOS thì nó lưu vào iCloud Keychain, hình thức này khá phù hợp với cá nhân mình, vì có thể dùng được trên cả Windows, iOS
Dễ hiểu thì thay vì phải lệ thuộc, dùng 1 ứng dụng 2FA từ 1 hãng thứ 3, dù nó có tốt và tiện ra làm sao cũng sẽ không tạo cho bạn sự tự tin hoàn toàn, so với việc dùng chính thiết bị bạn đang sử dụng để mở khóa
Khuyết điểm của FIDO2 WebAuthn là tính tương thích hơi kém 1 chút, đôi khi ở 1 trình duyệt, hệ điều hành, nó chưa được hỗ trợ, các bản Firefox cũ quá có khi không chạy
5. Email
Email xác nhận có lẽ là hình thức Two-step login đời Tống nhất còn được duy trì
Hơi khó để bàn là nó an toàn hay không, ở 2024 mình nghĩ không nên dùng hình thức này, code sinh ra thường có thời gian nhập vào khá dài, 2FA thông thường tối đa là 30s, email thì code có thể 15 thậm chí 60 phút nhập vào vẫn được, chưa kể rủi ro server gửi thư không tới ….
Nói chung là không nên dùng email làm hình thức two-step login
1 vài password manager mình từng thử qua, khi login trên thiết bị mới hoàn toàn, ngay bước điền email, nó tự gửi code về email, qua bước này thì mới tới bước điền password và 2FA, tăng thêm 1 tầng bảo mật cho tài khoản
Khá thích cách hoạt động như này, có điều nó lên là 1 tùy chọn để user tự lựa chọn, chứ không nên bắt buộc 100%, chứ buồn buồn dịch vụ gửi email bị lỗi, không login được vào tài khoản thì buồn cười lắm
TWO-STEP LOGIN Recovery code
Đây là biện pháp sơ cua, phòng khi bạn mất điện thoại, mất YubiKey OTP, không lấy được code TWO-STEP LOGIN để đăng nhập, có thể tạo 1 mã recovery để dự phòng, cá nhân mình đánh giá hình thức recovery code này không an toàn, vì nó thuần túy chỉ là 1 đoạn text, nên sau khi tạo ra, bạn bắt buộc phải quản lý thật kĩ dãy số này
Trên reddit vài thành viên có ý tưởng quản lý recovery code khá hay, là từ recovery code họ tạo sang thành QR Code, sau đó in mã QR này ra, cất hay dán ở đâu đó là được,
Cá nhân mình không dùng Recovery code, vì không có thời gian nhớ hay quản lý dãy số này, lý do chính nhất recovery code theo mình là không an toàn, không nên dùng TWO-STEP LOGIN dạng Recovery code
4. Encryption key
Bạn có thể sử dụng mặc định PBKDF2 SHA-256 với KDF iterations 600.000 đã rất an toàn rồi, trong trường hợp thích vững tâm lý hơn, nên đổi sang dùng thuật toán Argon2id
Argon2id là thuật toán mà 100% mọi người khuyên là nên sử dụng, nó cân bằng tốt giữa an toàn và hiệu suất, bạn có thể dùng cấu hình mặc định của Argon2id, hoặc set chính xác như ảnh đều ổn, trong trường hợp các thiết bị đang dùng như điện thoại cấu hình yếu quá, chạy Argon2id có thể hơi đơ lag 1 tẹo lúc vào xem password thì có thể dùng lại PBKDF2 SHA-256 mặc định là được
Phần này mình bổ xung cho vui là chính, miễn là Master Password của bạn đủ tốt thì cứ an tâm sử dụng, không cần quan tâm thêm làm gì cho mệt
Kết luận
Cơ chế bảo mật của Bitwarden theo mình là thừa tốt, được thì mình mong muốn họ làm thêm 1 tùy chọn, xác nhận email khi đăng nhập trên thiết bị mới, khi khi điền email vào ở 1 thiết bị mới, nó lập tức gửi code xác nhận về email, điền 6 kí tự này vào thì mới tới bước gõ mật khẩu, 2FA …. có thêm bước này thì an toàn hơn nhiều
Nếu bạn dùng 1 email hoàn toàn ngẫu nhiên, không ai biết, nên ngay thời điểm ai đó điền email của bạn vào các dịch vụ password manager, bạn sẽ biết ngay là có vấn đề
Các dịch vụ khác đang duy trì, đa phần chỉ thông báo khi sau khi có thiết bị mới đăng nhập vào tài khoản (thành công hoặc không thành công)
Với email dạng Hide My Email + Master Password khoảng 5 từ + Argon2id + YubiKey OTP, có thể nói là bạn đã làm hết mức có thể từ một end user khi sử dụng password manager rồi, ở cấp độ này thì mình chưa nghe ai đủ thời gian và tiền bạc để có thể ngồi giải mã đống dữ liệu của bạn, chưa kể việc đầu tiên cũng phải hack được vào server Bitwarden hoặc server cá nhân chạy Vaultwarden …. nghe thôi đã thấy chán, chẳng buồn nghĩ
YubiKey OTP giá khá chát, nếu có điều kiện sử dụng thì tuyệt, còn không dùng FIDO2 WebAuthn, bạn có thể dùng điện thoại để lưu lại các khóa này
Thậm chí, để tăng tính tương thích, bạn có thể dùng bất cứ Authenticator app nào khác đang có mặt ngoài thị trường, cũng thừa tốt, cá nhân nếu dùng Authenticator qua app thì mình đề xuất dùng iCloud Keychain từ Apple, có mất, hư hỏng điện thoại, vẫn có thể truy cập lại được
Two-step login trên Bitwarden có thể lưu lại khoảng 30 ngày trên PC, trên điện thoại thì khoảng 90 ngày, nên số lần bạn cần dùng tới 2FA để mở khóa sẽ rất ít
1. Email: duy nhất, chưa dùng ở bất cứ đâu (đề xuất dùng Hide My Email)
2. Master Password: tối thiểu khoảng 5 từ (15-18 kí tự), được thì càng dài càng tốt
3. Two-step login: FIDO2 WebAuthn hoặc Authenticator 2FA iCloud Keychain
4. Encryption key: Argon2id
Cá nhân để cân bằng giữa tiện lợi và bảo mật thì mình đang dùng iCloud Keychain để lưu trữ tài khoản Bitwarden, sau đó dùng Bitwarden lưu trữ tất cả tài khoản ở các dịch vụ khác (username, password, 2FA, passkey, notes ….)
Mục đích của 2FA là two-step login, thêm 1 lớp password khác để đảm bảo an toàn cho tài khoản, nên nếu dùng 2FA từ chính Vaultwarden - Bitwarden (nơi chứa password đầu tiên) thì hơi ngược với ý tưởng ban đầu khi người ta sinh ra 2FA
Mình rất đồng tính với quan điểm này, thiết bị login thứ 2, dạng khóa cứng như YubiKey OTP theo mình mới đúng ý nghĩa của 2FA, nó là 1 thiết bị bên ngoài, hoạt động độc lập, riêng biệt
Vấn đề là hiện tại, phần lớn chúng ta, thường cài Vaultwarden - Bitwarden và 2FA, đều nằm trên 1 thiết bị là điện thoại, máy tính … nói dễ hiểu là chúng ta đã bỏ hết trứng vào 1 rổ ngay từ đầu rồi 👀
Thế nên dùng 1 ứng dụng 2FA khác, hay dùng 2FA trên Vaultwarden - Bitwarden, nó không khác nhau là mấy về ý nghĩa
Tất nhiên, các bước này chỉ là bảo vệ tài khoản password manager của bạn, nó cũng không nói lên cái gì, kiểu bạn dùng trên PC, laptop, điện thoại, máy tính bảng, các thiết bị này bị mất, hoặc vợ/ chồng /con cháu …. mở ra xem thì chịu thôi, không đỡ được 😹