Bài 75. Quản lý danh tính (2): MFA, passkeys, backup codes và chính sách mật khẩu
Khóa học CompTIA Security+ SY0-801 · Phần 4: Vận hành bảo mật · Bài 75 · 🎯 Objective 4.5 · ⏱️ Đọc khoảng 18 phút · 🧪 Không cần lab · 📝 5 câu bài tập cuối bài
🎯 Mục tiêu bài học
- Phân biệt các yếu tố xác thực và hiểu vì sao MFA chặn được phần lớn tấn công vào tài khoản.
- Biết ưu và nhược điểm của các loại authenticator: SMS, ứng dụng mã, thông báo đẩy, khóa bảo mật, sinh trắc học.
- Hiểu passkey (FIDO2/WebAuthn) và vì sao nó chống được phishing.
- Nắm backup codes, chính sách mật khẩu hiện đại và vai trò của trình quản lý mật khẩu.
📎 Vị trí trong đề thi: tiếp nối Bài 74 (vòng đời danh tính, SSO), bài này lo cách chứng minh "tôi là tôi". Nó dùng lại các tấn công mật khẩu và vòng qua MFA ở Bài 32, AAA ở Bài 2, mật mã khóa công khai ở Bài 9 và hashing, salting ở Bài 10.
💡 Liên hệ thực tế: mật khẩu bị lộ nhưng tài khoản vẫn an toàn
Một nhân viên của chị Lan nhận email giả mạo "hệ thống bán hàng yêu cầu đăng nhập lại" và nhập mật khẩu vào một trang giả. Kẻ tấn công có mật khẩu và thử đăng nhập thật ngay. Nhưng tài khoản này đã bật mã xác nhận thứ hai gửi tới điện thoại, nên kẻ tấn công bị chặn ở bước hai. Đây là tình huống minh họa, không phải vụ việc có thật.
Nam kể thêm một kịch bản xấu hơn: kẻ tấn công gửi liên tục yêu cầu phê duyệt trên điện thoại lúc nửa đêm; người dùng mệt và bấm "Đồng ý" cho yên. Đó là MFA fatigue. Vì vậy Nam chọn ứng dụng có đối chiếu số cho nhân viên thường và khóa bảo mật hoặc passkey cho quản trị, loại xác thực mà trang giả không thể lừa được.
🔑 Hình 75a. MFA thật sự cần hai yếu tố thuộc hai nhóm khác nhau.
📘 Kiến thức cốt lõi
🧩 Các yếu tố xác thực và MFA
| Nhóm yếu tố | Ví dụ |
|---|---|
| Điều bạn biết (something you know) | Mật khẩu, PIN, câu trả lời bí mật |
| Thứ bạn có (something you have) | Điện thoại, khóa bảo mật, thẻ thông minh, token phần cứng |
| Điều bạn là (something you are) | Vân tay, khuôn mặt, mống mắt (sinh trắc học) |
| Ở đâu hoặc làm gì (somewhere you are / something you do) | Vị trí, mạng quen thuộc, cách gõ phím, hành vi (yếu tố phụ, ngữ cảnh) |
MFA (Multi-Factor Authentication) là yêu cầu ít nhất hai yếu tố thuộc hai nhóm khác nhau. Mật khẩu cộng PIN (cùng nhóm "biết") không phải MFA thật sự. 2FA là trường hợp MFA có đúng hai yếu tố. Nếu mật khẩu bị lộ do phishing, tái sử dụng hay vét cạn (Bài 32) thì yếu tố thứ hai vẫn ngăn kẻ tấn công. Với quyền quản trị, truy cập từ xa (VPN) và dịch vụ đám mây, MFA nên là bắt buộc.
📱 Các loại authenticator
| Loại | Ưu | Nhược |
|---|---|---|
| Mã gửi qua SMS hoặc cuộc gọi | Dễ dùng, ai cũng có | Có thể bị SIM swap (chiếm số điện thoại), chặn tin nhắn, lừa đọc mã; mức bảo vệ thấp nhất trong các loại MFA |
| Ứng dụng tạo mã (TOTP) | Không dùng mạng di động, mã đổi mỗi 30 giây | Vẫn có thể bị lừa nhập mã vào trang giả theo thời gian thực |
| Thông báo đẩy (push) | Tiện, một chạm | Dễ bị MFA fatigue; nên bật đối chiếu số (number matching) và hiển thị ngữ cảnh |
| Khóa bảo mật phần cứng (FIDO2) | Chống phishing, khó bị đánh cắp từ xa | Tốn chi phí, cần giữ thiết bị, cần phương án dự phòng |
| Thẻ thông minh / token phần cứng | Mạnh, dùng nhiều trong tổ chức lớn | Cần hạ tầng (PKI, đầu đọc), quản lý thẻ |
| Sinh trắc học | Tiện, khó chia sẻ | Không thể đổi khi bị lộ; có sai số; vấn đề quyền riêng tư |
Sinh trắc học có hai chỉ số sai: FAR (False Acceptance Rate) là tỷ lệ chấp nhận nhầm người lạ (rủi ro bảo mật), FRR (False Rejection Rate) là tỷ lệ từ chối nhầm người thật (khó chịu cho người dùng). Điểm hai tỷ lệ này bằng nhau gọi là CER/EER; càng thấp thì hệ thống càng chính xác. Sinh trắc học thường được lưu trên thiết bị để mở khóa khóa riêng chứ không gửi đi.
🗝️ Passkey: xác thực không mật khẩu
Passkey (dựa trên chuẩn FIDO2/WebAuthn) thay mật khẩu bằng cặp khóa mật mã khóa công khai (Bài 9):
- Khi đăng ký, thiết bị tạo cặp khóa; khóa công khai gửi cho dịch vụ, khóa riêng ở lại trên thiết bị.
- Khi đăng nhập, dịch vụ gửi một thử thách (chuỗi ngẫu nhiên).
- Người dùng mở khóa khóa riêng bằng vân tay, khuôn mặt hoặc PIN trên thiết bị (không gửi đi).
- Thiết bị ký thử thách; dịch vụ xác minh bằng khóa công khai.
🗝️ Hình 75b. Khóa riêng nằm yên trên thiết bị: không có mật khẩu để bị lừa nhập vào trang giả.
Lợi ích: không có mật khẩu để lộ hay tái sử dụng; chống phishing vì passkey gắn với tên miền thật nên trang giả không dùng được; kẻ tấn công lấy cắp cơ sở dữ liệu của dịch vụ chỉ được khóa công khai vô dụng. Lưu ý: passkey có thể đồng bộ qua tài khoản nền tảng để tiện nhưng cũng cần bảo vệ tài khoản đó; cần phương án khôi phục khi mất thiết bị; và tổ chức cần chính sách cho thiết bị cá nhân.
🔢 Backup codes và khôi phục tài khoản
Backup codes (mã dự phòng) là các mã dùng một lần cấp sẵn để vào tài khoản khi mất yếu tố thứ hai (mất điện thoại, hỏng khóa).
- Lưu ở nơi an toàn, tách khỏi thiết bị chính (trình quản lý mật khẩu hoặc nơi cất vật lý); không lưu chung với mật khẩu ở nơi dễ lộ.
- Mỗi mã chỉ dùng một lần; dùng hết thì phải tạo bộ mới (bộ cũ sẽ bị vô hiệu).
- Quy trình khôi phục là mắt xích yếu nhất: nếu bộ phận hỗ trợ đặt lại MFA chỉ qua một cuộc điện thoại thì kẻ lừa đảo sẽ nhắm vào đó. Cần xác minh danh tính chặt (identity proofing, Bài 74) và thông báo cho người dùng thật khi có thay đổi yếu tố xác thực.
🔐 Chính sách mật khẩu hiện đại
Nhiều khuyến nghị hiện đại (như hướng dẫn của NIST SP 800-63B) khác với thói quen cũ:
| Khuyến nghị hiện đại | Thói quen cũ gây hại |
|---|---|
| Ưu tiên độ dài (cụm từ dài, dễ nhớ) | Ép ký tự phức tạp nhưng ngắn (P@ssw0rd!) |
| Kiểm tra mật khẩu với danh sách đã bị lộ và mật khẩu phổ biến, từ chối nếu trùng | Chấp nhận mật khẩu dễ đoán miễn đủ ký tự |
| Không ép đổi định kỳ nếu không có dấu hiệu bị lộ; đổi ngay khi nghi ngờ bị lộ | Bắt đổi mỗi 90 ngày làm người dùng tạo mật khẩu tăng dần (Password1, Password2...) |
| Cho phép dán và dùng trình quản lý mật khẩu | Chặn dán mật khẩu |
| Không dùng lại giữa các dịch vụ | Một mật khẩu cho mọi nơi |
| Giới hạn số lần thử, làm chậm, cảnh báo (chống brute force, Bài 32) | Cho thử vô hạn |
| Máy chủ băm có muối (salted hash) để lưu (Bài 10) | Lưu mật khẩu rõ hoặc băm không có muối |
Các khái niệm thường gặp trong đề: độ dài (length), độ phức tạp (complexity), tái sử dụng (reuse), hết hạn (expiration), tuổi mật khẩu (age), lịch sử mật khẩu (history). Chính sách cũ thường kết hợp độ phức tạp, hết hạn và lịch sử; xu hướng mới nhấn mạnh độ dài và việc kiểm tra bị lộ, đồng thời giảm phụ thuộc mật khẩu bằng MFA và passkey. Hãy đọc đề kỹ: nếu đề hỏi về "chính sách truyền thống" thì độ phức tạp và hết hạn là câu trả lời; nếu hỏi "khuyến nghị hiện đại" thì ưu tiên độ dài và kiểm tra bị lộ.
🧰 Trình quản lý mật khẩu
Password manager lưu mật khẩu trong kho được mã hóa, mở bằng một mật khẩu chủ mạnh (cộng MFA):
- Cho phép dùng mật khẩu dài, ngẫu nhiên, khác nhau cho từng dịch vụ mà không phải nhớ.
- Nhiều sản phẩm tự điền chỉ khi đúng tên miền, giúp phát hiện trang giả.
- Có thể cảnh báo mật khẩu yếu, trùng, bị lộ; tích hợp tạo mã dự phòng và lưu passkey.
- Rủi ro tập trung: nếu mật khẩu chủ hoặc tài khoản bị chiếm thì mất tất cả; vì vậy cần MFA mạnh, mật khẩu chủ dài và có phương án khôi phục.
- Tổ chức nên dùng bản dành cho doanh nghiệp có chia sẻ an toàn, nhật ký và thu hồi khi nhân viên rời đi (Bài 74).
🚫 Passwordless và xu hướng
Passwordless (không mật khẩu) dùng passkey, khóa bảo mật hoặc thẻ thông minh thay cho mật khẩu. Nó loại bỏ cả một họ tấn công (đoán, nhồi mật khẩu, phishing mật khẩu) nhưng vẫn cần bảo vệ thiết bị, khôi phục tài khoản và hỗ trợ cho ứng dụng cũ chưa dùng được chuẩn mới.
🎯 Mẹo làm bài: "Hai yếu tố thuộc hai nhóm khác nhau" → MFA. "Mật khẩu cộng PIN" → không phải MFA (cùng nhóm biết). "Chiếm số điện thoại để lấy mã" → SIM swap, nhược điểm của SMS. "Gửi liên tục yêu cầu phê duyệt cho tới khi người dùng bấm Đồng ý" → MFA fatigue, chống bằng number matching. "Chống phishing mạnh nhất" → khóa bảo mật FIDO2 hoặc passkey. "Khóa riêng không rời thiết bị, gắn với tên miền" → passkey. "Mã dùng một lần khi mất yếu tố thứ hai" → backup codes. "Chấp nhận nhầm người lạ" → FAR; "từ chối nhầm người thật" → FRR. "Điểm FAR bằng FRR" → CER/EER. "Khuyến nghị hiện đại cho mật khẩu" → ưu tiên độ dài, kiểm tra bị lộ, không ép đổi định kỳ. "Kho mã hóa mật khẩu mở bằng mật khẩu chủ" → password manager.
🧠 Áp vào câu chuyện của Nam
| Vấn đề | Biện pháp |
|---|---|
| Mật khẩu bị lộ qua phishing | Bật MFA cho mọi tài khoản quan trọng |
| Lo SMS bị SIM swap | Dùng ứng dụng mã hoặc khóa bảo mật thay SMS cho tài khoản quan trọng |
| Nhân viên bấm Đồng ý phê duyệt do mệt | Number matching, hiển thị ngữ cảnh, cảnh báo khi có nhiều yêu cầu liên tiếp |
| Quản trị cần mức bảo vệ cao nhất | Khóa bảo mật FIDO2 hoặc passkey |
| Nhân viên mất điện thoại | Backup codes cất an toàn, quy trình khôi phục xác minh chặt |
| Mật khẩu yếu, dùng lại | Password manager, chính sách ưu tiên độ dài, kiểm tra danh sách bị lộ |
📖 Thuật ngữ cần nhớ
| Thuật ngữ | Nghĩa |
|---|---|
| MFA / 2FA | Xác thực nhiều yếu tố / đúng hai yếu tố. |
| TOTP | Mã dùng một lần theo thời gian, đổi mỗi 30 giây. |
| SIM swap | Chiếm số điện thoại bằng cách lừa nhà mạng chuyển SIM. |
| MFA fatigue | Làm phiền bằng yêu cầu phê duyệt cho tới khi nạn nhân đồng ý. |
| FIDO2 / WebAuthn | Chuẩn xác thực dùng khóa công khai, chống phishing. |
| Passkey | Thông tin xác thực không mật khẩu dựa trên FIDO2. |
| Backup codes | Mã dự phòng dùng một lần khi mất yếu tố thứ hai. |
| FAR / FRR / CER | Tỷ lệ chấp nhận nhầm / từ chối nhầm / điểm hai tỷ lệ bằng nhau. |
| Password manager | Kho mật khẩu mã hóa, mở bằng mật khẩu chủ. |
| Passwordless | Xác thực không dùng mật khẩu. |
📌 Tóm tắt nhanh
- MFA cần hai yếu tố thuộc hai nhóm khác nhau; mật khẩu cộng PIN không đủ.
- SMS là loại MFA yếu nhất (SIM swap); push cần number matching chống MFA fatigue; khóa bảo mật FIDO2 và passkey chống phishing.
- Passkey dùng cặp khóa công khai, khóa riêng ở lại thiết bị, gắn với tên miền thật.
- Backup codes dùng một lần, cất an toàn; quy trình khôi phục phải xác minh chặt.
- Mật khẩu hiện đại: ưu tiên độ dài, kiểm tra danh sách bị lộ, không ép đổi định kỳ, không tái sử dụng, dùng password manager.
💬 Hỏi & Đáp nhanh
❓ SMS có đáng bị bỏ hoàn toàn không? Không nên bỏ nếu là lựa chọn duy nhất, vì có SMS vẫn tốt hơn không có MFA. Nhưng với tài khoản quan trọng nên chuyển sang ứng dụng mã, khóa bảo mật hoặc passkey.
❓ Passkey có thay thế hoàn toàn mật khẩu không? Dần dần. Nhiều dịch vụ đã hỗ trợ, nhưng ứng dụng cũ và hệ thống nội bộ vẫn cần mật khẩu. Giai đoạn chuyển tiếp thường là kết hợp passkey, MFA và mật khẩu mạnh.
❓ Vì sao không còn khuyên đổi mật khẩu mỗi 90 ngày? Vì ép đổi định kỳ khiến người dùng chọn mật khẩu dễ đoán theo quy luật. Hướng dẫn hiện đại khuyên chỉ đổi khi có dấu hiệu bị lộ, và bù lại bằng độ dài, kiểm tra danh sách bị lộ và MFA.
📝 Bài tập đánh giá
Tự chọn đáp án cho từng câu, rồi đối chiếu với phần đáp án ở cuối bài.
Câu 1. Cách nào sau đây là xác thực đa yếu tố (MFA) thật sự?
- A. Mật khẩu và PIN
- B. Hai mật khẩu khác nhau
- C. Mật khẩu và mã từ ứng dụng trên điện thoại
- D. Câu hỏi bí mật và mật khẩu
Câu 2. Kẻ tấn công liên tục gửi yêu cầu phê duyệt MFA tới điện thoại nạn nhân lúc nửa đêm cho tới khi họ bấm Đồng ý. Đây là tấn công nào?
- A. SIM swap
- B. Brute force
- C. Pass-the-hash
- D. MFA fatigue
Câu 3. Phương pháp xác thực nào sau đây chống phishing tốt nhất?
- A. Khóa bảo mật FIDO2 hoặc passkey
- B. Mã SMS
- C. Câu hỏi bí mật
- D. Mật khẩu dài
Câu 4. Một hệ thống sinh trắc học chấp nhận nhầm người lạ với tỷ lệ cao. Chỉ số nào bị ảnh hưởng?
- A. FRR
- B. FAR
- C. TOTP
- D. SAML
Câu 5. Theo khuyến nghị mật khẩu hiện đại, biện pháp nào sau đây phù hợp nhất?
- A. Bắt đổi mật khẩu mỗi 30 ngày
- B. Chặn việc dán mật khẩu
- C. Ưu tiên độ dài và từ chối mật khẩu nằm trong danh sách đã bị lộ
- D. Cho phép thử mật khẩu không giới hạn
👉 Đáp án
Câu 1: C — Mật khẩu (điều bạn biết) cộng mã từ điện thoại (thứ bạn có) thuộc hai nhóm khác nhau.
Câu 2: D — Đây là MFA fatigue; chống bằng number matching và cảnh báo khi có nhiều yêu cầu liên tiếp.
Câu 3: A — Khóa FIDO2 và passkey gắn với tên miền thật nên trang giả không thể lừa được.
Câu 4: B — FAR là tỷ lệ chấp nhận nhầm người lạ, rủi ro bảo mật của sinh trắc học.
Câu 5: C — Hướng dẫn hiện đại ưu tiên độ dài, kiểm tra danh sách bị lộ, không ép đổi định kỳ, cho phép dán và giới hạn số lần thử.
📚 Bài viết thuộc khóa học CompTIA Security+ của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Bài 74: Quản lý danh tính (1): provisioning, SSO, federation | Mục lục khóa học CompTIA Security+ | Bài 76: Quản lý danh tính (3): mô hình điều khiển truy cập |