Tạo mã TOTP

Tạo mã 2FA (RFC 6238) từ khóa bí mật Base32, có đếm ngược trực tiếp.

Đừng dán khóa bí mật của tài khoản thật vào một trang web mà bạn không kiểm chứng được. Trang này chạy trong trình duyệt và không lưu khóa, nhưng bạn vẫn phải tin nó.

Mã hiện tại

Nhập khóa bí mật để xem mã.

Công cụ này làm gì

Phần lớn mã đăng nhập hai bước là mã TOTP: sáu chữ số đổi mỗi 30 giây, tạo từ một khóa bí mật chung và thời gian hiện tại. Công cụ này tạo đúng những mã đó ngay trong trình duyệt. Dán khóa bí mật (viết bằng Base32, gồm chữ A đến Z và chữ số 2 đến 7) hoặc cả liên kết otpauth://, bạn sẽ thấy mã hiện tại cùng vòng đếm ngược đến mã kế tiếp, kèm mã trước và mã sau. Công cụ dành cho lập trình viên xây dựng hoặc kiểm thử đăng nhập hai bước, để kiểm tra khóa đã chép đúng chưa, và cho ai đã lưu khóa và cần một mã.

Cách dùng

  1. Gõ hoặc dán khóa bí mật. Dấu cách, gạch ngang, chữ thường và dấu = cuối đều được. Nếu có ký tự sai, công cụ chỉ rõ ký tự và vị trí.
  2. Hoặc dán liên kết otpauth://totp/... vào ô thứ hai. Công cụ điền khóa, thuật toán, số chữ số và chu kỳ, rồi xóa liên kết khỏi màn hình.
  3. Giữ nguyên thiết lập trừ khi dịch vụ yêu cầu khác: SHA-1, 6 chữ số, 30 giây là mặc định của hầu hết dịch vụ.
  4. Bấm Sao chép để lấy mã không có dấu cách ở giữa.

Mã được tạo thế nào

Khóa được đổi thành byte. Số chu kỳ trọn vẹn kể từ 1/1/1970 (UTC) thành bộ đếm 8 byte. HMAC của bộ đếm với khóa cho giá trị 20 byte (SHA-1). Bốn bit cuối chọn vị trí, bốn byte từ đó được đọc thành một số bỏ bit cao nhất, và phần dư khi chia cho một triệu (với sáu chữ số) là mã, thêm số 0 ở đầu nếu cần. Ví dụ kiểm tra: khóa thử của RFC 6238 là chuỗi 12345678901234567890, viết Base32 là GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. Ở giây thứ 59 bộ đếm là 1, với SHA-1 và tám chữ số mã là 94287082; với sáu chữ số là 287082.

Thuật toán, số chữ số, chu kỳ và liên kết otpauth

Dịch vụ mô tả khóa bằng liên kết otpauth, chính là nội dung mã QR ở màn hình cài đặt. Liên kết có thể mang nhà cung cấp, tên tài khoản, thuật toán, số chữ số (6 đến 8) và chu kỳ. Một số ứng dụng bỏ qua các tùy chọn này và luôn dùng SHA-1, sáu chữ số, 30 giây; nếu mã khác với ứng dụng, hãy thử mặc định đó. Để đọc liên kết từ ảnh QR, dùng công cụ quét mã QR rồi dán vào đây. Liên kết cho mã theo bộ đếm (HOTP) bị từ chối.

An toàn

Khóa TOTP quý như mật khẩu: ai có nó sẽ tạo được mã của bạn mãi mãi. Đừng dán khóa của tài khoản thật, như ngân hàng hay email chính, vào bất kỳ trang web nào, kể cả trang này. Trang chạy trong trình duyệt, không gửi khóa đi, không lưu vào bộ nhớ hay thanh địa chỉ và quên khóa khi bạn đóng tab, nhưng bạn không thể tự kiểm chứng điều đó từ bên ngoài. Hãy dùng cho tài khoản thử nghiệm; khóa thật nên để trong ứng dụng xác thực hoặc trình quản lý mật khẩu. Xem thêm công cụ tạo mật khẩu và mã hóa văn bản.

Khi mã bị từ chối

Mã phụ thuộc vào đồng hồ thiết bị. Nếu đồng hồ lệch một phút, mã thuộc chu kỳ khác và dịch vụ từ chối; hãy bật giờ tự động. Mã trước và mã sau được hiển thị để bạn thấy dịch vụ có chấp nhận chu kỳ lân cận không. Hãy kiểm tra khóa có sót ký tự: khóa sai vẫn cho ra mã, chỉ là mã không đúng.

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

Dán khóa 2FA vào đây có an toàn không?

Với tài khoản thật, không trang web nào là nơi tốt cho việc này. Trang chạy hoàn toàn trong trình duyệt và không lưu hay gửi khóa, nhưng bạn không thể tự chứng minh điều đó, và khóa bị lộ cho phép người khác tạo mã của bạn. Hãy dùng cho khóa thử nghiệm.

Vì sao mã không khớp với ứng dụng?

Kiểm tra lần lượt: đồng hồ thiết bị (đặt giờ tự động), khóa (sai một ký tự là mã sai) và thiết lập. Một số ứng dụng bỏ qua thuật toán, số chữ số và chu kỳ trong liên kết và luôn dùng SHA-1, sáu chữ số, 30 giây.

TOTP khác HOTP thế nào?

HOTP (RFC 4226) tạo mã từ bộ đếm tăng sau mỗi lần dùng. TOTP (RFC 6238) thay bộ đếm bằng thời gian hiện tại chia thành các chu kỳ, mặc định 30 giây. Công cụ này chỉ tạo mã TOTP.

Khóa có được lưu hoặc gửi đi đâu không?

Không. Khóa chỉ nằm trong bộ nhớ của trang khi trang đang mở. Nó không được ghi vào bộ nhớ cục bộ, cookie hay thanh địa chỉ, và không gửi lên máy chủ nào.