- Sản phẩm & Dịch vụSản phẩm & Dịch vụ
- Giải phápGiải pháp
- Bảng giáBảng giá
- Công tyCông ty
- Tài liệuTài liệu
vi
vi
Nơi CyStack cung cấp cho bạn những tin tức, xu hướng và cảnh báo mới nhất về ngành công nghệ bảo mật và các sản phẩm, dịch vụ của chúng tôi.
Thảo luận (0)
Đăng nhập để thảo luận
Mỗi lần chuyển khoản hay đăng nhập từ thiết bị lạ, ngân hàng hoặc ví điện tử lại gửi một dãy số và yêu cầu nhập trong vài phút. Phần lớn người dùng gọi chung đó là mã OTP mà không thực sự biết mã xác thực là gì theo đúng nghĩa kỹ thuật.
Trên thực tế, mã xác thực bao gồm mã gửi qua SMS, mã đọc qua cuộc gọi, mã trong ứng dụng authenticator và mã dự phòng dùng khi mất điện thoại. Mỗi loại có cách tạo và mức rủi ro khác nhau.
Bài viết dưới đây phân loại đầy đủ các dạng mã xác thực đang được dùng phổ biến, chỉ ra sự khác biệt giữa các mã 2FA và CAPTCHA, đồng thời hướng dẫn nhận biết chiêu lừa xin mã OTP phổ biến nhất hiện nay.
Mã xác thực là chuỗi số hoặc ký tự được sử dụng trong quá trình xác thực để chứng minh người dùng đang sở hữu hoặc kiểm soát một phương thức xác thực đã đăng ký. Bản thân mã không chứa thông tin định danh của người dùng.
Theo NIST SP 800-63B, mã xác thực có thể thuộc nhóm “something you have” (yếu tố sở hữu), khác với mật khẩu thuộc nhóm “something you know” (yếu tố kiến thức) hay vân tay thuộc nhóm “something you are” (yếu tố sinh trắc học).
NIST phân biệt một số dạng liên quan đến mã xác thực, gồm look-up secret (mã dự phòng dùng một lần từ danh sách đã cấp sẵn), out-of-band secret (mã nhận qua một kênh riêng) và OTP authenticator (thiết bị hoặc phần mềm tạo mã OTP).
Trong đời sống, người dùng thường gọi chung các mã dùng một lần là “mã OTP” (one-time password, mật khẩu dùng một lần). Tuy nhiên, không phải mọi mã xác thực đều giống nhau. Mã có thể được gửi qua SMS, email hoặc tạo trực tiếp trong ứng dụng authenticator. Điểm khác biệt chủ yếu nằm ở cách tạo mã và cách người dùng nhận mã, được trình bày ở phần tiếp theo.
Bốn dạng thường gặp gồm mã dùng một lần qua SMS hoặc cuộc gọi, mã qua email, mã TOTP trong ứng dụng authenticator và mã dự phòng (backup code). Các mã này thường chỉ có hiệu lực trong một khoảng thời gian hoặc cho một lần sử dụng, tùy cơ chế của từng dịch vụ.

| Loại mã xác thực | Cách tạo và gửi | Ưu điểm | Rủi ro chính |
| OTP qua SMS/cuộc gọi | Máy chủ tạo mã và gửi qua mạng điện thoại | Không cần cài thêm ứng dụng, dễ sử dụng | NIST xem việc sử dụng mạng điện thoại công cộng cho xác thực out-of-band là phương thức bị hạn chế do các rủi ro liên quan |
| OTP qua email | Máy chủ tạo mã và gửi vào hộp thư | Dễ triển khai, không cần số điện thoại | Nếu tài khoản email hoặc kênh truyền bị xâm phạm, kẻ tấn công có thể lấy được mã |
| TOTP qua ứng dụng authenticator | Thiết bị tự tạo mã theo RFC 6238, dựa trên khóa bí mật dùng chung và thời gian | Không cần mạng viễn thông hay Internet khi tạo mã, mã thay đổi theo chu kỳ | Mất thiết bị và không còn phương thức khôi phục có thể khiến người dùng không tạo được mã |
| Mã dự phòng (backup code) | Hệ thống cấp trước một danh sách mã dùng một lần khi thiết lập tài khoản | Có thể dùng khi không truy cập được phương thức xác thực chính | Người dùng phải bảo quản cẩn thận; nếu danh sách bị lộ, người khác có thể sử dụng những mã chưa dùng |
Mã xác thực là một yếu tố dùng trong quá trình xác thực, còn 2FA (xác thực hai yếu tố) là cơ chế kết hợp hai loại yếu tố khác nhau. Trong đó, mã xác thực có thể được dùng làm yếu tố thứ hai.
Theo OWASP Multifactor Authentication Cheat Sheet, các yếu tố xác thực gồm:
Vì vậy, mật khẩu kết hợp mã xác thực có thể tạo thành 2FA khi hai phương thức thuộc hai nhóm yếu tố khác nhau. Ngược lại, mật khẩu kết hợp câu hỏi bảo mật không được xem là MFA vì cả hai đều thuộc nhóm “điều bạn biết”. Muốn tìm hiểu sâu hơn về cơ chế này, xem thêm bài mã 2FA là gì.
CAPTCHA hoàn toàn khác mã xác thực. Theo Cloudflare, CAPTCHA là viết tắt của “Completely Automated Public Turing test to tell Computers and Humans Apart” (bài kiểm tra Turing công khai, tự động, để phân biệt máy tính và con người). CAPTCHA dùng để phân biệt người dùng với bot, không nhằm xác minh người đang thao tác có phải chủ tài khoản hay không.
Một trang đăng nhập có thể yêu cầu người dùng vượt CAPTCHA trước khi nhập mã xác thực. Tuy nhiên, đây là hai bước kiểm tra khác nhau: CAPTCHA giúp nhận biết người dùng hay bot, còn mã xác thực phục vụ quá trình xác minh người dùng.
Có hai cách chính để tạo mã xác thực. Máy chủ có thể sinh mã ngẫu nhiên rồi gửi qua một kênh phụ như SMS, cuộc gọi hoặc email. Ngoài ra, thiết bị của người dùng có thể tự tạo mã bằng thuật toán mà không cần nhận mã từ máy chủ.

Cách thứ hai gọi là TOTP (time-based one-time password), được chuẩn hoá trong RFC 6238 của IETF từ năm 2011.
Khi thiết lập, máy chủ và ứng dụng authenticator cùng lưu một khóa bí mật dùng chung, thường được truyền qua mã QR. Sau đó, cả hai bên tính mã theo cùng công thức:
TOTP = HOTP(khóa bí mật, T).
*Trong đó, T là số bước thời gian đã trôi qua kể từ một mốc cố định và mỗi bước mặc định kéo dài 30 giây.
Nghĩa là:
Khóa bí mật + T (giá trị tính từ thời gian hiện tại) → thuật toán → mã TOTP 6 số
Sau khoảng 30 giây, T thay đổi, nên kết quả tính toán cũng thay đổi và ứng dụng tạo ra mã TOTP mới.
Nhờ sử dụng cùng khóa bí mật và thời gian, hai bên có thể tạo ra mã khớp nhau mà không cần truyền mã qua mạng khi xác thực.
NIST SP 800-63B yêu cầu mã dựa trên đồng hồ thời gian thực phải đổi ít nhất mỗi 2 phút, còn RFC 6238 chọn mặc định 30 giây để cân bằng giữa bảo mật và trải nghiệm sử dụng.
Tuy nhiên, NIST cũng nêu rõ OTP không có khả năng chống phishing. Mã OTP chỉ chứng minh người dùng đang có mã hợp lệ, chứ không kiểm tra được trang web nhận mã có phải trang thật hay không.
Vì vậy, nếu người dùng nhập OTP vào một trang đăng nhập giả, kẻ tấn công có thể lấy mã đó và nhập ngay vào trang thật trước khi mã hết hạn.
Rủi ro lớn nhất không nằm ở bản thân thuật toán mà ở việc mã bị lộ qua lừa đảo hoặc bị đánh chặn trên đường truyền.
Chiêu phổ biến là kẻ gian giả danh ngân hàng hoặc sàn thương mại điện tử, sau đó gọi điện hoặc nhắn tin yêu cầu nạn nhân đọc mã xác thực vừa nhận. Chúng có thể viện lý do như “xác minh giao dịch” hoặc “hủy đăng ký gói dịch vụ”. Trong khi đó, kẻ gian có thể đã lấy được mật khẩu qua tấn công phishing và chỉ còn thiếu mã xác thực để chiếm tài khoản.
Một rủi ro khác là SIM swap (đổi SIM) và number porting (chuyển số). Kẻ tấn công có thể thuyết phục hoặc lợi dụng sơ hở của nhà mạng để cấp lại SIM mang số điện thoại của nạn nhân. Khi đó, chúng có thể nhận mã OTP gửi qua SMS thay cho chủ thuê bao.
Vì những rủi ro này, NIST hạn chế sử dụng mã xác thực gửi qua mạng điện thoại công cộng. OWASP cũng đề cập các rủi ro như chặn tín hiệu SS7, đổi SIM và chuyển số.

Dù sử dụng phương thức nào, xác thực đa yếu tố vẫn giúp giảm đáng kể nguy cơ tài khoản bị xâm nhập do lộ mật khẩu. Theo phân tích của Microsoft được OWASP trích dẫn, MFA có thể ngăn tới 99,9% các vụ xâm nhập tài khoản liên quan đến mật khẩu bị lộ.
Rủi ro vẫn có thể xảy ra nếu người dùng tự cung cấp mã cho kẻ gian hoặc mã bị đánh chặn trước khi đến đúng người nhận.
Nguyên tắc quan trọng nhất là không cung cấp mã xác thực cho bất kỳ ai và chỉ nhập mã trên đúng dịch vụ đang yêu cầu xác minh. Ngân hàng hoặc tổ chức hợp pháp sẽ không yêu cầu người dùng đọc mã xác thực qua điện thoại.
Từ nguyên tắc này, có 5 việc cụ thể nên làm:
CyStack không trực tiếp cung cấp hay tạo mã xác thực. Thay vào đó, giải pháp hỗ trợ doanh nghiệp thực thi chính sách xác thực trước khi nhân sự truy cập dữ liệu. Việc tạo mã OTP hoặc TOTP vẫn do dịch vụ đăng nhập hoặc ứng dụng authenticator đảm nhiệm, CyStack không thay thế bước này.
CyStack Endpoint cho phép quản trị viên bắt buộc xác thực đa yếu tố theo vai trò và kiểm soát quyền truy cập dữ liệu theo mô hình Zero Trust. Doanh nghiệp có thể giới hạn quyền truy cập ở mức cần thiết, xác minh lại theo ngữ cảnh thiết bị và vị trí đăng nhập, đồng thời quản lý thống nhất trên các nền tảng thiết bị mà nhân viên sử dụng.
Nói cách khác, CyStack Endpoint không dùng để tạo mã xác thực. Giải pháp giúp doanh nghiệp áp dụng chính sách MFA nhất quán và hạn chế tình trạng tài khoản quản trị thiếu lớp xác thực thứ hai.
Không. CAPTCHA chỉ kiểm tra xem người dùng có phải là con người hay không, còn mã xác thực dùng để xác minh người đang thao tác là chủ tài khoản. Hai lớp kiểm tra này độc lập và có thể xuất hiện lần lượt trong cùng một quá trình đăng nhập.
Không hoàn toàn. OTP là một dạng mã xác thực chỉ có giá trị cho một lần sử dụng, trong khi “mã xác thực” là cách gọi rộng hơn và có thể bao gồm OTP, TOTP, mã dự phòng hoặc các loại mã xác minh khác tùy hệ thống.
Vì mã TOTP được tạo ngay trên thiết bị và không truyền qua mạng điện thoại công cộng. Nhờ đó, phương thức này tránh được rủi ro chặn tín hiệu SS7 và SIM swap mà NIST đề cập đối với mã gửi qua SMS.
Dùng mã dự phòng đã lưu khi thiết lập tài khoản hoặc thực hiện quy trình khôi phục MFA của dịch vụ. Quy trình này thường yêu cầu người dùng xác minh danh tính qua kênh khác trước khi gỡ thiết bị cũ.
Mã 6 số ngân hàng gửi qua SMS khi chuyển khoản, mã 6 số hiển thị trong Google Authenticator khi đăng nhập Gmail trên thiết bị lạ và danh sách mã dự phòng dùng một lần mà Google cấp khi bật 2-Step Verification đều là những ví dụ về mã xác thực.
Mã xác thực là chuỗi số hoặc ký tự dùng một lần để xác minh người đang thao tác có quyền truy cập tài khoản, thiết bị hoặc kênh liên lạc đã đăng ký.
Các dạng phổ biến gồm:
Mã xác thực cũng khác với 2FA và CAPTCHA. 2FA là cơ chế kết hợp hai loại yếu tố xác thực, trong đó mã xác thực có thể là yếu tố thứ hai. CAPTCHA dùng để phân biệt người dùng với bot, không dùng để xác minh danh tính.
Rủi ro lớn nhất đến từ lừa đảo nhằm lấy mã và SIM swap, không phải từ lỗ hổng của thuật toán.