Ứng dụng xác thực như Google Authenticator hoạt động thế nào (kể cả khi không có Internet)?

1 min read

Hầu như ngày nào chúng ta cũng nhập mã 2FA 6 chữ số từ các ứng dụng như Google Authenticator, nhưng không phải ai cũng hiểu vì sao nó hoạt động được ngay cả khi điện thoại không có mạng 🤔

Nhiều người lầm tưởng rằng mã này được “gửi” từ server về điện thoại giống như SMS. Thực tế hoàn toàn không phải vậy.

Hiểu lầm phổ biến: mã 2FA được gửi về điện thoại

Với SMS OTP, máy chủ phải gửi tin nhắn chứa mã xác thực về số điện thoại của bạn.
Nhưng với các ứng dụng Authenticator, không có bất kỳ mã nào được gửi đi cả.

Thay vào đó, website và ứng dụng cùng tự tính ra một con số giống hệt nhau.

Bước quan trọng nhất: Quét mã QR

Khi bạn bật 2FA và quét mã QR, điều thực sự diễn ra là:

  • Website cung cấp một khóa bí mật (secret key)
  • Ứng dụng Authenticator lưu khóa này
  • Máy chủ cũng lưu chính khóa đó

Khóa bí mật này không bao giờ thay đổi, trừ khi bạn reset 2FA.

Cách mã 6 chữ số được tạo ra

Từ thời điểm đó trở đi, cứ mỗi 30 giây, cả hai bên sẽ cùng làm:

Mã OTP = Hàm băm (Khóa bí mật + Thời gian hiện tại)
  • Thời gian được chia thành các mốc 30 giây
  • Kết quả cuối cùng được rút gọn thành 6 chữ số
  • Khi bạn nhập mã:
    • Server tự tính mã tại thời điểm đó
    • Nếu trùng khớp → xác thực thành công

Không cần Internet. Không cần gửi dữ liệu.

Vì sao không có mạng vẫn dùng được?

Bởi vì:

  • Ứng dụng chỉ cần đồng hồ hệ thống
  • Khóa bí mật đã lưu sẵn trong máy
  • Mọi phép tính đều diễn ra offline

Chỉ cần điện thoại còn đúng giờ, mã vẫn chính xác.

Vì sao Authenticator an toàn hơn SMS?

SMS OTPApp Authenticator
Có thể bị chặn SMSKhông có dữ liệu truyền
Dễ bị SIM swapKhông phụ thuộc SIM
Mã có thể bị đọc trộmMã tự sinh, hết hạn rất nhanh

Đây là lý do vì sao các ứng dụng như Google Authenticator hay Microsoft Authenticator được khuyến nghị sử dụng thay cho SMS.

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *