Một câu hỏi thú vị mà nhiều người dùng thường đặt ra: Tại sao khi điện thoại ở chế độ máy bay, không có mạng, nhưng mã xác thực (OTP) vẫn trùng khớp hoàn toàn với máy chủ đặt tại nước ngoài?
Thực tế, quá trình này không dựa trên sự giao tiếp trực tiếp giữa điện thoại và máy chủ tại thời điểm sinh mã. Bí mật nằm ở một thuật toán có tên gọi là TOTP (Time-based One-Time Password).
1. Khởi tạo: Giao thức "Bắt tay" ban đầu
Mọi thứ bắt đầu từ mã QR bạn quét khi thiết lập 2FA lần đầu tiên. Mã QR này thực chất chứa một Khóa bí mật (Secret Key).
Thiết bị cá nhân: Khi bạn quét mã, ứng dụng (Google Authenticator, Microsoft Authenticator...) sẽ lưu trữ Secret Key này vào bộ nhớ an toàn trên máy.
Máy chủ (Server): Đồng thời, Server cũng lưu trữ chính xác mã khóa đó trong hồ sơ tài khoản của bạn.
Bảo mật: Sau khi quá trình thiết lập hoàn tất, Secret Key sẽ được ẩn đi vĩnh viễn để đảm bảo tính an toàn.
2. Nguyên lý đồng bộ hóa độc lập
Để tạo ra dãy 6 chữ số định kỳ mỗi 30 giây, cả ứng dụng và máy chủ đều thực hiện một phương trình toán học với ba thành phần cố định:
[Secret Key] + [Dấu mốc thời gian] + [Thuật toán băm] = Mã OTP
Sử dụng chung "chìa khóa": Cả hai bên đều giữ cùng một Secret Key.
Sử dụng chung "đồng hồ": Cả hai cùng căn cứ vào giờ chuẩn quốc tế (Unix Timestamp).
Sử dụng chung "công thức": Cả hai cùng sử dụng một giải thuật đặc biệt (thường là HMAC-SHA1).
Vì các tham số đầu vào hoàn toàn giống nhau, kết quả đầu ra (6 chữ số) chắc chắn sẽ trùng khớp 100% mà không cần phải "nói chuyện" với nhau qua Internet.
3. Những lỗ hổng cần lưu ý
Dù cơ chế này rất thông minh và bảo mật, người dùng vẫn cần đối mặt với hai rủi ro chính:
Rò rỉ Secret Key: Nếu bạn để lộ ảnh chụp mã QR ban đầu, kẻ gian có thể sao chép Secret Key vào thiết bị của họ và tạo ra mã OTP y hệt như bạn.
Sai lệch thời gian (Clock Drift): Nếu đồng hồ trên điện thoại của bạn chạy sai so với giờ quốc tế, mã sinh ra sẽ không khớp với Server, dẫn đến việc không thể đăng nhập.

Nhận xét
Đăng nhận xét