Xác thực (Authentication) là gì?
Xác thực là quá trình **xác minh danh tính** của một thực thể (người dùng, thiết bị, dịch vụ) trước khi cấp quyền truy cập tài nguyên. Khác với **Authorization (Phân quyền)** - quyết định "được làm gì" sau khi đã xác thực.
3 Yếu tố xác thực (Authentication Factors)
| Yếu tố (Factor) | Mô tả | Ví dụ |
|---|---|---|
| Knowledge (Cái bạn BIẾT) - Type 1 | Thông tin bí mật chỉ chủ thể biết | Mật khẩu (Password), PIN, Passphrase, Câu hỏi bảo mật, Pattern |
| Possession (Cái bạn CÓ) - Type 2 | Vật lý hoặc thiết bị logic do chủ thể kiểm soát | Security Key (YubiKey, Feitian), Smart Card, OTP Token (RSA SecurID), Điện thoại (Authenticator App, SMS/Email OTP), Certificate/Private Key |
| Inherence (Cái bạn LÀ) - Type 3 | Đặc điểm sinh trắc học cố hữu | Vân tay (Fingerprint), Nhận diện khuôn mặt (Face ID), Mống mắt (Iris), Giọng nói, Static/Dynamic Signature, Keystroke dynamics |
Yếu tố bổ sung: Location (Cái bạn Ở - GPS, IP, Geo-fencing), Time (Cái bạn KHI - giờ làm việc), Behavior (Cái bạn LÀM - User Behavior Analytics).
Các mô hình xác thực phổ biến
1. Single-Factor Authentication (SFA - 1FA)
- Chỉ dùng **1 yếu tố** (thường là Password).
- Yếu, dễ bị tấn công: phishing, keylogger, brute-force, credential stuffing, reuse.
- Không còn đủ an toàn cho môi trường doanh nghiệp/nhạy cảm.
2. Two-Factor Authentication (2FA) - 2 BƯỚC XÁC THỰC PHỔ BIẾN NHẤT
Định nghĩa: Kết hợp **2 yếu tố khác nhau** trong 3 loại (Knowledge + Possession, hoặc Knowledge + Inherence, hoặc Possession + Inherence).
Hai bước (Two Steps) điển hình:
- Bước 1 - Knowledge Factor: Nhập **Username + Password** (hoặc PIN). Hệ thống verify.
- Bước 2 - Possession/Inherence Factor: Cung cấp yếu tố thứ 2:
- Authenticator App (TOTP): Google Authenticator, Microsoft Authenticator, Authy, 1Password → mã 6 số đổi 30s (RFC 6238). Khuyên dùng nhất.
- Push Notification: Duo, Microsoft Authenticator, Okta Verify → bấm "Approve" trên điện thoại. Tiện, chống phishing tốt (number matching).
- Hardware Security Key (FIDO2/WebAuthn/U2F): YubiKey, Feitian, Google Titan, OnlyKey → cắm USB/NFC/Bluetooth → chạm/nút. An toàn nhất (chống phishing, MITM).
- SMS/Email OTP: Mã 6 số gửi qua SMS/Email. Yếu (SIM swap, SS7 intercept, email compromise). Nên tránh nếu có lựa chọn tốt hơn.
- Biometric: Vân tay, Face ID, Windows Hello. Thường dùng làm Bước 2 trên thiết bị cá nhân.
3. Multi-Factor Authentication (MFA)
- Yêu cầu **≥ 2 yếu tố** (có thể 3 yếu tố: Pass + YubiKey + Fingerprint).
- Adaptive/Risk-based MFA (Step-up): Chỉ yêu cầu yếu tố thêm khi rủi ro cao (đăng nhập nơi mới, thiết bị mới, hành vi bất thường, giờ lạ, IP đen).
4. Single Sign-On (SSO)
- Đăng nhập **một lần** → truy cập nhiều ứng dụng/hệ thống (SAML 2.0, OIDC/OAuth2, Kerberos).
- Identity Provider (IdP): Entra ID (Azure AD), Okta, Ping Identity, Keycloak, Auth0.
- Kết hợp với MFA tại IdP → bảo vệ tất cả app downstream.
5. Passwordless Authentication (Không mật khẩu)
- Loại bỏ Knowledge factor (password) hoàn toàn.
- Dùng: FIDO2 Security Key, Windows Hello (Biometric/PIN), Authenticator App (Phone Sign-in), Magic Link, Certificate-based auth.
- An toàn hơn (không có pass để phish/leak/reuse), UX tốt hơn.
So sánh phương pháp Bước 2 (Possession/Inherence)
| Phương pháp | Độ an toàn | UX | Chi phí | Chống Phishing | Khuyến nghị |
|---|---|---|---|---|---|
| FIDO2 Security Key (YubiKey) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | $25-70 | ✅ Tuyệt đối (origin-bound) | Best cho Admin/High-value |
| Authenticator App (TOTP) | ⭐⭐⭐⭐ | ⭐⭐⭐ | Free | ⚠️ Có thể phish (real-time proxy) | Best cho User thường |
| Push Notification (Number Matching) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Free (App) | ✅ Tốt (number matching) | Best cho Enterprise (Duo, Entra ID) |
| Windows Hello / Touch ID / Face ID | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Built-in | ✅ Device-bound | Best cho Consumer/Endpoint |
| SMS/Email OTP | ⭐⭐ | ⭐⭐⭐ | Low | ❌ Dễ bypass (SIM swap) | Chỉ khi không có lựa chọn khác |
Tiêu chuẩn & Giao thức kỹ thuật
- FIDO2 / WebAuthn / CTAP2: Passwordless, Public Key Crypto, Origin-bound (chống phishing). YubiKey, Windows Hello, Passkeys (Apple/Google/Microsoft sync).
- OATH TOTP (RFC 6238): Time-based OTP (Google/MS Authenticator). Shared secret.
- OATH HOTP (RFC 4226): Counter-based OTP (RSA SecurID hardware token).
- SAML 2.0: Enterprise SSO, IdP → SP assertion (XML).
- OIDC / OAuth 2.0: Modern SSO, Delegated auth, JWT ID Token + Access Token.
- Kerberos: Windows AD Domain auth, Ticket-based (TGT, Service Ticket).
- RADIUS / 802.1X: Network Access Control (Wi-Fi, VPN, Switch port). EAP-TLS, PEAP-MSCHAPv2, EAP-TTLS.
Best Practices triển khai 2FA/MFA
- Bắt buộc MFA cho tất cả: Admin, Remote access (VPN), Email, Cloud Console, Git, CI/CD, SaaS critical.
- Ưu tiên FIDO2 / WebAuthn / Passkeys cho admin & high-value target.
- Authenticator App (TOTP) làm baseline cho all users.
- Tắt SMS/Email OTP nếu có thể (hoặc chỉ dùng fallback).
- Number Matching cho Push (Duo, Microsoft Authenticator, Okta Verify).
- Backup Codes (in an toàn) + **Recovery Key** (Apple/Google/Microsoft) cho account recovery.
- Device Registration / Trusted Device giảm friction cho user hợp pháp.
- Conditional Access / Adaptive MFA: Risk-based (IP, Device, Location, App sensitivity, User risk score).
- Monitor & Alert: MFA fatigue attack (push spam), token replay, impossible travel.
- User Education: "Không bao giờ share OTP/approve push không phải bạn yêu cầu".
Kết luận
Hai bước xác thực phổ biến nhất = Password (Knowledge) + Authenticator App TOTP / Push / FIDO2 Key (Possession/Inherence). Xu hướng 2024: **Passwordless (Passkeys/FIDO2) + Adaptive MFA** để vừa an toàn vừa trải nghiệm tốt. MFA không phải "cài xong quên" - cần quản trị vòng đời, monitoring, và user training liên tục.