TOTP là viết tắt của “mật khẩu dùng một lần dựa trên thời gian” (time-based one-time password). Đây là công nghệ đằng sau nhiều mã gồm sáu chữ số được hiển thị bởi các ứng dụng xác thực. Mã TOTP được tính toán dựa trên khóa thiết lập riêng tư và thời gian hiện tại, sau đó sẽ hết hạn sau một khoảng thời gian ngắn.

TOTP thường được sử dụng làm bước thứ hai trong xác thực hai yếu tố. Công nghệ này có thể hoạt động ngay cả khi không có tín hiệu di động vì ứng dụng xác thực sẽ tính toán mã ngay tại thiết bị thay vì chờ nhận tin nhắn.

Thông tin nào tạo ra mã TOTP?

Có hai yếu tố đầu vào quan trọng: một khóa bí mật chung và bộ đếm thời gian. Nhà cung cấp tài khoản tạo ra khóa bí mật trong quá trình thiết lập và cung cấp nó cho ứng dụng xác thực của bạn thông qua mã QR hoặc khóa nhập tay. Cả hai bên sau đó chia thời gian thành các khoảng thời gian bằng nhau và thực hiện cùng một phép tính mã hóa.

Nếu khóa bí mật, thuật toán và khoảng thời gian trùng khớp, cả hai bên sẽ tạo ra cùng một mã ngắn. Bản thân khóa bí mật không cần phải được truyền đi trong mỗi lần đăng nhập.

Four-stage TOTP process from secret and time to code validation
Ứng dụng xác thực và dịch vụ tính toán độc lập một giá trị từ cùng một khóa bí mật và khoảng thời gian.

TOTP hoạt động như thế nào?

  1. Nhà cung cấp tạo ra một khóa bí mật duy nhất để đăng ký thiết bị xác thực.
  2. Bạn quét mã QR thiết lập hoặc nhập khóa bí mật thủ công trên một thiết bị đáng tin cậy.
  3. Thiết bị xác thực kết hợp khóa bí mật với khoảng thời gian hiện tại.
  4. Kết quả được rút gọn thành một mã số ngắn, thường là sáu chữ số.
  5. Nhà cung cấp tính toán mã dự kiến của họ và so sánh với mã bạn nhập.

RFC 6238 định nghĩa TOTP là một biến thể dựa trên thời gian của HOTP. Cấu hình phổ biến sử dụng khoảng thời gian 30 giây, sáu chữ số và HMAC-SHA-1, mặc dù vẫn có các thuật toán và cài đặt khác được hỗ trợ.

Tại sao mã TOTP lại hết hạn?

Thời gian hiệu lực ngắn giúp hạn chế thời gian mã đã sao chép có thể được sử dụng lại. Khi khoảng thời gian thay đổi, trình xác thực sẽ tạo ra một giá trị khác. Các dịch vụ có thể chấp nhận một khoảng thời gian gần đó để bù đắp độ trễ mạng và sự chênh lệch nhỏ về thời gian, nhưng độ dung sai rộng hơn cũng làm tăng khoảng thời gian chấp nhận.

Nhập mã mới khi thời gian đếm ngược còn gần hết. Nếu mã liên tục bị từ chối, hãy làm theo hướng dẫn của chúng tôi để khắc phục mã 2FA không hoạt động.

TOTP so với HOTP

TOTP và HOTP sử dụng các phép tính liên quan nhưng tiến triển theo cách khác nhau:

  • TOTP thay đổi theo từng bước thời gian, do đó đồng hồ của các thiết bị xác thực phải được đồng bộ hóa.
  • HOTP thay đổi khi bộ đếm tiến lên, chẳng hạn như sau khi nhấn nút hoặc sử dụng thành công.

TOTP phổ biến trong các ứng dụng xác thực phần mềm vì thời gian cung cấp một yếu tố thay đổi tự động. HOTP vẫn được sử dụng bởi một số mã thông báo phần cứng và các hệ thống chuyên dụng.

TOTP so với mã SMS

Ứng dụng TOTP tính toán mã trên thiết bị và thường hoạt động ngoại tuyến. SMS dựa vào mạng điện thoại để gửi mã. SMS tiện lợi nhưng có thể bị ảnh hưởng bởi việc đổi SIM, tái phân bổ số điện thoại, việc chặn tin nhắn và lỗi gửi mã.

Cả TOTP thông thường lẫn SMS đều không hoàn toàn chống được lừa đảo: một trang đăng nhập giả mạo thuyết phục có thể thu thập và chuyển tiếp mã hiện tại. Đối với các tài khoản quan trọng, khóa mật khẩu hoặc khóa bảo mật FIDO thường mạnh hơn nếu được hỗ trợ. Xem so sánh chi tiết của chúng tôi giữa các ứng dụng xác thực và SMS.

Mật mã TOTP là gì?

Mật khẩu bí mật là thông tin xác thực có hiệu lực lâu dài, là cơ sở để tạo ra tất cả các mã trong tương lai cho lần đăng ký đó. Bất kỳ ai có được mật khẩu này đều có thể cấu hình một ứng dụng xác thực khác và tạo ra các giá trị trùng khớp. Ảnh chụp màn hình mã QR thiết lập là thông tin nhạy cảm vì nó thường chứa mật khẩu bí mật đó.

Hướng dẫn của chúng tôi giải thích nơi tìm chìa khóa thiết lập 2FA thủ công và cách phân biệt nó với mật khẩu hoặc mã khôi phục.

TOTP có thể hoạt động ngoại tuyến không?

Có. Sau khi được cấu hình, ứng dụng xác thực chỉ cần khóa bí mật và đồng hồ chính xác, không cần kết nối internet hoạt động. Dịch vụ xác minh đăng nhập vẫn cần truy cập vào thông tin đăng ký được lưu trữ của mình.

Cách sử dụng trình tạo mã TOTP một cách an toàn

  • Chỉ sử dụng các khóa bí mật thuộc về các tài khoản mà bạn được ủy quyền quản lý.
  • Kiểm tra địa chỉ trang web và thiết bị trước khi nhập khóa bí mật.
  • Không bao giờ gửi khóa bí mật hoặc mã QR thiết lập qua tin nhắn trò chuyện hoặc biểu mẫu hỗ trợ.
  • Lưu trữ các mã khôi phục riêng biệt với ứng dụng xác thực hàng ngày.
  • Tạo lại mã đăng ký nếu mã bí mật có thể đã bị lộ.

Đối với các thử nghiệm được ủy quyền, trình tạo mã TOTP của Get2FA.dev sẽ tính toán các mã tiêu chuẩn trong trình duyệt của bạn. Đối với việc sử dụng hàng ngày trên các tài khoản quan trọng, hãy ưu tiên sử dụng ứng dụng xác thực uy tín hoặc phương pháp dựa trên phần cứng.

Câu hỏi thường gặp

Mã TOTP có hiệu lực trong bao lâu?

Thời gian mặc định phổ biến là 30 giây, nhưng nhà cung cấp có thể thiết lập khoảng thời gian khác. Quá trình đếm ngược thuộc về một khoảng thời gian nhất định; nó sẽ không bắt đầu lại khi bạn xem hoặc sao chép mã.

Tại sao mã TOTP thường có sáu chữ số?

Sáu chữ số tạo sự cân bằng giữa tính tiện dụng và số lượng giá trị có thể có hạn chế. Giới hạn tốc độ và khoảng thời gian hiệu lực ngắn là rất quan trọng vì không gian mã không lớn.

Hai thiết bị có thể hiển thị cùng một mã TOTP không?

Có, nếu cả hai đều có cùng một mật khẩu, sử dụng cùng một cài đặt và đồng hồ đã được đồng bộ hóa. Việc sao chép đăng ký có phù hợp hay không phụ thuộc vào chính sách bảo mật của bạn.

TOTP có giống với 2FA không?

Không. TOTP chỉ là một trong các phương thức xác thực có thể áp dụng. Hãy tìm hiểu 2FA là gì và các phương thức khác của nó hoạt động như thế nào.