Xác Thực Hai Yếu Tố Là Gì? Hướng Dẫn Dễ Hiểu
Xác thực hai yếu tố (2FA) là một cách đăng nhập yêu cầu hai loại bằng chứng khác nhau để chứng minh bạn đúng là người bạn nói — thường là điều bạn biết, như mật khẩu, cộng với điều bạn có, như điện thoại hoặc khóa bảo mật. Nếu kẻ xấu đánh cắp hoặc đoán được mật khẩu của bạn, chúng vẫn không thể vào nếu thiếu yếu tố thứ hai. Đây là một trong những cách đơn giản nhất để bảo vệ những tài khoản quan trọng.
Vì sao điều này quan trọng khi bạn xây dựng bằng AI
Khi bạn yêu cầu trình xây dựng AI tạo chức năng “đăng nhập”, bạn thường nhận được email và mật khẩu. Đó là một khởi đầu ổn, nhưng mật khẩu thường bị dùng lại, bị lừa đảo hoặc bị rò rỉ. Nếu ứng dụng của bạn lưu bất cứ thứ gì có giá trị — hồ sơ khách hàng, hóa đơn, quyền quản trị, cài đặt thanh toán — thì một mật khẩu bị đánh cắp có thể làm lộ toàn bộ.
2FA cũng ảnh hưởng đến những quyết định mà bạn có thể chưa nghĩ tới ngay từ đầu:
- Ai phải dùng. Tùy chọn cho tất cả mọi người, bắt buộc cho quản trị viên, hay bắt buộc cho tất cả?
- Những phương thức nào được hỗ trợ. Mã từ ứng dụng, tin nhắn văn bản, passkey, khóa bảo mật.
- Điều gì xảy ra khi ai đó bị khóa tài khoản. Điện thoại bị mất là yêu cầu hỗ trợ phổ biến nhất đối với mọi ứng dụng có 2FA.
- Nơi áp dụng kiểm tra. Việc kiểm tra phải diễn ra trên máy chủ. Một màn hình 2FA chỉ ẩn trang trong trình duyệt thì có thể bị bỏ qua.
Bạn không cần tự xây dựng phần mật mã — các thư viện đã được kiểm chứng kỹ và các nhà cung cấp dịch vụ xác thực sẽ lo việc đó. Nhưng bạn cần biết mình nên yêu cầu những gì.
Một ví dụ đời thường
Hãy nghĩ đến một két bảo quản đồ trong ngân hàng. Để mở nó, bạn cần giấy tờ tùy thân (thứ mà ngân hàng kiểm tra bạn là hoặc biết) và chìa khóa vật lý (thứ bạn có). Kẻ trộm sao chép được chữ ký của bạn vẫn không có chìa khóa. Kẻ móc túi lấy được chìa khóa vẫn không qua được bước kiểm tra giấy tờ.
2FA hoạt động theo cách đó. Mật khẩu là chữ ký; điện thoại hoặc khóa bảo mật là chìa khóa vật lý. Mỗi thứ riêng lẻ đều không đủ.
Ba loại yếu tố
Các chuẩn bảo mật, chẳng hạn hướng dẫn về danh tính số của Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST), chia yếu tố thành ba loại:
| Yếu tố | Ví dụ |
|---|---|
| Điều bạn biết | Mật khẩu, mã PIN |
| Điều bạn có | Điện thoại có ứng dụng xác thực, khóa bảo mật, thiết bị giữ passkey |
| Điều bạn là | Vân tay, khuôn mặt — thường dùng để mở khóa thiết bị, rồi thiết bị đó thực hiện bước kiểm tra thật sự |
Từ khóa là khác nhau. Mật khẩu cộng với câu hỏi bảo mật là hai thứ bạn biết, nên đó không phải xác thực hai yếu tố thực sự. Nếu một lần rò rỉ có thể làm lộ cả hai, thì nó chỉ được tính là một yếu tố.
So sánh các phương thức 2FA phổ biến
| Phương thức | Cách hoạt động | Độ mạnh | Ghi chú |
|---|---|---|---|
| Mã SMS | Mã được gửi qua tin nhắn tới số điện thoại của bạn | Yếu nhất | Dễ bị tấn công SIM swapping và lừa đảo, nhưng vẫn tốt hơn nhiều so với không có 2FA |
| Mã email | Mã được gửi qua email | Yếu | Chỉ an toàn bằng tài khoản email |
| Ứng dụng xác thực (TOTP) | Một ứng dụng như Google Authenticator tạo mã 6 chữ số mới, thường mỗi 30 giây | Tốt | Hoạt động không cần mạng; vẫn có thể bị lừa đảo nếu một trang giả yêu cầu mã |
| Phê duyệt đẩy (push) | Ứng dụng hỏi “Có phải bạn không?” và bạn bấm chấp nhận | Tốt | Lưu ý “mệt mỏi vì phê duyệt”, khi người dùng bấm đồng ý chỉ để dừng các yêu cầu lặp lại |
| Passkey hoặc khóa bảo mật | Một khóa mật mã trên thiết bị chứng minh bạn đang ở đúng trang web | Mạnh nhất | Chống lừa đảo vì không phản hồi với tên miền giả mạo |
Hướng dẫn của NIST coi các phương thức mà bạn phải gõ mã (SMS, email, ứng dụng xác thực) là không chống lừa đảo được, và đánh dấu việc gửi mã qua mạng điện thoại là “hạn chế”. Passkey và khóa bảo mật phần cứng, dựa trên các chuẩn WebAuthn/FIDO2, là những phương thức được xem là chống lừa đảo.
Kết luận thực tế: ứng dụng xác thực là lựa chọn mặc định mạnh và dễ dùng cho hầu hết ứng dụng, và nên cân nhắc cung cấp passkey nếu người dùng của bạn quen với chúng.
Ví dụ minh họa: 2FA cho cổng khách hàng
Giả sử bạn đã xây một cổng nơi một công ty kế toán nhỏ chia sẻ tài liệu thuế với khách hàng. Đây là cách thiết lập 2FA hợp lý, từng bước.
Bật tính năng (đăng ký). Priya, một khách hàng, mở phần Cài đặt và bấm “Bật xác thực hai yếu tố”. Ứng dụng tạo một bí mật và hiển thị dưới dạng mã QR. Cô quét bằng ứng dụng xác thực, và ứng dụng bắt đầu hiển thị các mã 6 chữ số. Cô nhập lại mã hiện tại vào cổng để chứng minh thiết lập đã hoạt động. Ứng dụng hiển thị mười mã khôi phục và yêu cầu cô lưu chúng ở nơi an toàn.
Đăng nhập sau đó.
- Priya nhập email và mật khẩu. Máy chủ kiểm tra chúng.
- Thay vì đăng nhập cô ngay, máy chủ đánh dấu phiên là “mật khẩu đúng, đang chờ yếu tố thứ hai” và hiển thị màn hình nhập mã.
- Cô nhập mã từ ứng dụng. Máy chủ kiểm tra mã với bí mật đã lưu, có cho phép một chút lệch đồng hồ.
- Chỉ đến lúc này máy chủ mới tạo phiên đầy đủ và cho cô xem tài liệu.
Kẻ tấn công thấy gì. Nếu mật khẩu của Priya bị rò rỉ từ một trang khác, kẻ tấn công sẽ bị kẹt ở bước 3. Mỗi lần nhập mã sai đều được đếm, và sau vài lần thử sai, tài khoản bị khóa tạm thời và Priya nhận được email.
Khi mất điện thoại. Priya dùng một trong các mã khôi phục để đăng nhập, tắt rồi bật lại 2FA với điện thoại mới, và nhận mã khôi phục mới. Mã đã dùng sẽ không bao giờ dùng lại được.
Với nhân viên. Kế toán viên của công ty có thể xem mọi tệp của mọi khách hàng, nên cổng bắt buộc 2FA cho tài khoản nhân viên; họ không thể vào bảng điều khiển cho đến khi đã đăng ký.
Giải thích các thuật ngữ thường gặp
| Thuật ngữ | Ý nghĩa |
|---|---|
| 2FA / MFA | Xác thực hai / đa yếu tố: đăng nhập bằng nhiều hơn một loại bằng chứng. |
| Yếu tố (factor) | Một loại bằng chứng: điều bạn biết, có hoặc là. |
| TOTP | Mật khẩu một lần dựa trên thời gian — các mã xoay vòng trong ứng dụng xác thực. |
| Bí mật dùng chung (shared secret) | Giá trị ẩn, được thiết lập qua mã QR, mà cả ứng dụng và điện thoại dùng để tạo các mã khớp nhau. |
| Mã khôi phục (mã dự phòng) | Mã dùng một lần để vào khi bạn làm mất yếu tố thứ hai. |
| Passkey | Thông tin đăng nhập lưu trên thiết bị, dùng mật mã khóa công khai thay vì mật khẩu. |
| Khóa bảo mật | Thiết bị vật lý nhỏ (USB hoặc NFC) làm cùng việc với passkey. |
| SIM swapping | Lừa nhà mạng chuyển số của ai đó sang một SIM mới, để tin nhắn đi tới kẻ tấn công. |
| Lừa đảo (phishing) | Trang hoặc tin nhắn giả lừa người dùng đưa mật khẩu hoặc mã. |
| Step-up authentication | Yêu cầu yếu tố thứ hai một lần nữa trước một hành động nhạy cảm, như đổi thông tin nhận thanh toán. |
Những lầm lẫn và hiểu nhầm thường gặp
- “2FA khiến tài khoản không thể bị hack.” Nó làm việc đó khó hơn rất nhiều. Các trang lừa đảo vẫn có thể thu thập mã người dùng nhập theo thời gian thực, đó là lý do passkey ra đời.
- Chỉ kiểm tra mã trong trình duyệt. Nếu máy chủ cấp phiên đầy đủ ngay sau mật khẩu, màn hình mã chỉ là để trang trí. Máy chủ phải từ chối truy cập cho đến khi yếu tố thứ hai được xác nhận.
- Không giới hạn số lần đoán mã. Mã sáu chữ số có một triệu khả năng. Nếu không có giới hạn tần suất và khóa tạm thời, kẻ tấn công chỉ cần cứ đoán tiếp.
- Quên việc khôi phục. Không có mã khôi phục nghĩa là mỗi lần mất điện thoại đều thành một yêu cầu hỗ trợ, hoặc một khách hàng bị khóa ngoài.
- Lưu bí mật TOTP một cách cẩu thả. Bí mật dùng chung nên được mã hóa trong cơ sở dữ liệu, và không bao giờ hiển thị lại sau khi thiết lập.
- Cho phép người dùng tắt 2FA mà không kiểm tra lại. Việc tắt 2FA hoặc đổi email tài khoản nên yêu cầu mật khẩu và một mã hiện tại.
- Mật khẩu cộng câu hỏi bảo mật được tính là 2FA. Không phải — cả hai đều là điều bạn biết.
Nên yêu cầu gì với trình xây dựng AI của bạn
- “Thêm xác thực hai yếu tố tùy chọn bằng ứng dụng xác thực (TOTP), có mã QR để thiết lập và mã xác nhận trước khi bật.”
- “Khi bật 2FA, hiển thị mười mã khôi phục dùng một lần. Lưu chúng dưới dạng băm, như mật khẩu.”
- “Bắt buộc 2FA ở phía máy chủ: không cấp phiên đầy đủ cho đến khi yếu tố thứ hai đạt yêu cầu.”
- “Giới hạn số lần nhập mã và khóa đăng nhập 15 phút sau nhiều lần thất bại. Gửi email cho người dùng khi điều đó xảy ra.”
- “Bắt buộc 2FA cho tài khoản quản trị viên.”
- “Yêu cầu mật khẩu và một mã hiện tại trước khi tắt 2FA hoặc đổi email tài khoản.”
- “Dùng một thư viện nổi tiếng hoặc tính năng 2FA có sẵn của nhà cung cấp xác thực của chúng ta — đừng tự viết phần mật mã.”
- “Giải thích phương thức bạn đã dùng và các bí mật được lưu ở đâu.”
Nếu bạn dùng một nhà cung cấp xác thực được lưu trữ sẵn, hãy kiểm tra xem họ đã có 2FA hoặc passkey chưa; bật một tính năng có sẵn thường an toàn hơn mã tự viết. Phiên bản từng bước nằm trong cách thêm xác thực hai yếu tố, và xác thực là gì trình bày các kiến thức đăng nhập cơ bản bên dưới nó.
Xác thực hai yếu tố trong Mythex
Mythex không có sẵn hệ thống đăng nhập tích hợp cho người dùng ứng dụng của bạn, nên 2FA là một phần của cách xác thực bạn chọn — đăng nhập bằng email và mật khẩu riêng của bạn, được hỗ trợ bởi cơ sở dữ liệu của dự án, hoặc một nhà cung cấp được lưu trữ có hỗ trợ 2FA. Bạn yêu cầu agent thêm tính năng này trong chat, và mọi khóa của nhà cung cấp đều được đặt trong bí mật của dự án chứ không phải trong chính cuộc trò chuyện. Công thức trong tài liệu về thêm đăng nhập cho ứng dụng có một prompt khởi đầu để bạn điều chỉnh, và bảo mật cho ứng dụng bạn xây dựng bao gồm các thói quen quanh khóa. Trước khi ra mắt, hãy làm theo danh sách kiểm tra bảo mật cho ứng dụng xây bằng AI.
Câu hỏi thường gặp
Xác thực hai yếu tố là gì, nói đơn giản?
Xác thực hai yếu tố (2FA) nghĩa là đăng nhập cần hai loại bằng chứng khác nhau, thường là mật khẩu cộng với một mã từ điện thoại hoặc khóa bảo mật. Người chỉ đánh cắp được mật khẩu thì vẫn không thể vào được.
2FA có giống MFA không?
Gần như vậy. Xác thực đa yếu tố (MFA) nghĩa là hai hoặc nhiều yếu tố; xác thực hai yếu tố là trường hợp phổ biến nhất với đúng hai yếu tố. Trong cách dùng hằng ngày, hai thuật ngữ này được dùng thay thế cho nhau.
Xác thực hai yếu tố qua SMS có an toàn không?
Nó tốt hơn nhiều so với chỉ có mật khẩu, nhưng là lựa chọn phổ biến yếu nhất. Tin nhắn SMS có thể bị chặn hoặc chuyển hướng qua kỹ thuật SIM swapping, và một trang đăng nhập giả có thể lừa người dùng nhập mã. Ứng dụng xác thực mạnh hơn, còn passkey hoặc khóa bảo mật thì mạnh hơn nữa.
Ứng dụng của tôi có cần xác thực hai yếu tố không?
Nếu tài khoản giữ tiền, dữ liệu riêng tư, hoặc quyền quản trị đối với người dùng khác, thì nên cung cấp 2FA, và yêu cầu bắt buộc cho quản trị viên là phổ biến. Với một ứng dụng sở thích đơn giản, 2FA có thể là tùy chọn hoặc để sau.
Điều gì xảy ra nếu người dùng làm mất điện thoại?
Đó là lúc mã khôi phục được dùng đến: một danh sách ngắn các mã dự phòng dùng một lần, hiển thị khi bật 2FA. Nếu không có chúng, việc khôi phục thường cần chủ ứng dụng xác minh danh tính thủ công, nên hãy lên kế hoạch trước khi ra mắt.