Two-Factor Authentication (2FA) hoạt động như thế nào?

444

Bài viết được sự cho phép của tác giả Kiên Nguyễn

Bắt đầu với sự thật không thể trần trụi hơn: Đối với những giao dịch quan trọng như Internet Banking, Trading, sẽ có ngày tiền bốc hơi nếu không sử dụng Two-Factor Authentication (2FA).

Chỉ với Username và Password là không đủ để bảo vệ tài khoản cá nhân. Hiện tại có vô vàn cách để hacker đánh cắp tài khoản. Trộm tiền ngay cả khi đang ngủ mà không nỏ bất cứ thông báo nào.

Tôi có SMS OTP!. Một thanh niên khác mạnh mẽ tuyên bố, đáng buồn thay SMS OTP đã không còn an toàn nữa rồi.

Vậy Two-Factor Authentication là gì?.

Bằng cách nào mà Two-Factor Authentication có thể bảo vệ được tài khoản cá nhân. Anh em sử dụng nhiều application, nhiều website chắc cũng hiểu sơ sơ cách nó hoạt động, tuy nhiên viết rõ ra thì vẫn hay hơn.

Đầu tiên là định nghĩa. Lúc nào cũng vậy.

  API Authentication trong Laravel-Vue SPA sử dụng Jwt-auth
  Authentication trong Spring Security

Xem thêm tuyển dụng Security Engineer lương cao trên TopDev

1. Two-Factor Authentication là gì?.

Định nghĩa thì đơn giản

2FA is an extra layer of security used to make sure that people trying to gain access to an online account are who they say they are.

2FA là một lớp bổ sung về bảo mật, sử dụng để đảm bảo user đang được gán quyền cho tài khoản hiện tại là chính xác

Hình ảnh đơn giản mô tả cách xác thực 2 bước (Two-Factor Authentication) hoạt động

Rồi, nắm định nghĩa sơ sơ rồi. Vậy Two-Factor Authentication hoạt động như nào?

2. Two-Factor Authentication hoạt động như nào?

Two-Factor Authentication (2FA) works by adding an additional layer of security to your online accounts. It requires an additional login credential – beyond just the username and password

Thông thường, chỉ với username và password thì ta có thể đăng nhập hệ thống. Nhưng với 2FA, nó sẽ bổ sung một lớp bảo mật nữa vào tài khoản. Phần thông tin có được từ lớp này là bắt buộc để đăng nhập vào tài khoản (không còn đơn thuần chỉ là username và password).

Two-Factor Authentication

Nói bổ sung một lớp bảo mật thì đơn giản, nhưng ta phải clear với nhau là 2FA chỉ là một phương pháp tiếp cận vấn đề (approach). Tức là nhắc tới Two-Factor Authentication thì hiểu nó là một cách tiếp cận vấn đề (thêm một lớp cho bảo mật)

Còn về methods (phương thức, cách thức) triển khai thì có nhiều loại. 2FA chỉ là cái chung chung chứ không phải là một phương pháp cụ thể.

2.1 Ba loại 2FA phổ biến

Như đã nói ở trên, đối với Two-Factor Authentication, ta sẽ phân loại thành 3 loại chính như sau. Nhớ là chính nha, không phải là tất cả.

LOẠI 1

Additional login credentials only the account holder should know. This includes things like security question answers and PIN numbers.

Phần thông tin đăng nhập chỉ có chính chủ tài khoản mới biết. Cái này bao gồm một số thông tin như câu hỏi bảo mật hoặc mã pin (tự nhớ hoặc lưu trữ local)

Một ví dụ rõ ràng dễ thấy nhất của loại này là Google Backup Codes

Two-Factor Authentication

LOẠI 2

Devices the account holder owns that receive additional login credentials. This most commonly takes the form of a security token, mobile phone app, or tablet device app.

Loại hai bao gồm các thiết bị được xác định là chính chủ đã đăng nhập trước đó. Thông thường và token, app đã cài trên phone hoặc ipad

Loại 2 này thường là các thông báo approve đăng nhập từ các app đã cài trước đó của chính chủ. Ví dụ cụ thể và thấy rõ nhất là Facebook. Khi đã đăng nhập trên phone thì sign in lần nữa trên web -> Gửi confirm về app chứ không cần text message hay một số phương thức như loại 1

Two-Factor Authentication
Sign in approve của Facebook là thuộc về loại số 2

LOẠI 3

Loại này thì ít được sử dụng và chi phí tốt kém hơn

Biometric login credentials unique to the account owner. This includes retina scans and fingerprints.

Loại này sử dụng thông tin sinh trắc học của chính chủ tài khoản. Thường thấy là võng mạc và vân tay

3. Đi sâu từng loại

Phía trên là giới thiệu từng loại. Muc 3 này ta sẽ đi sâu hơn vào từng loại xem cách thức hoạt động của nó như thế nào?. Bao gồm Text Message, Authentication Applications và Biometric Two-factor Authentication

3.1 Text message

Text message là phương thức gửi code xác thực tới điện thoại cá nhân của người dùng. Đây là cách thức phổ biến nhất hiện nay của 2FA.

Tất cả những gì người dùng cần có là điện thoại cá nhân (có thể wifi với notificaton approve, mạng điện thoại với OTP One time password)

Text message cũng không phải là không có rủi ro. Trường hợp user mất điện thoại bao gồm sim, người dùng có nguy cơ mất trắng toàn bộ tài khoản. Trường hợp sử dụng text message và phần gửi nhận OTP phụ thuộc vào công ty, rất có khả năng khi nhân viên đi công tác sẽ không sử dụng được, đây cũng là một bất lợi lớn.

3.2 Authentication Applications

Authentication app 2FA works by using a mobile app to generate an authentication code. You must then enter this code to gain access to your account.

Xác thực bằng app hoạt động bằng cách tạo ra các mã authentication code (mã này thay đổi sau một khoảng thời gian nhất định). Bạn cần phải nhập mã này để đăng nhập vào tài khoản.

Điểm khác giữa Authenticate Applications và Text message là phương thức này không cần mạng viễn thông, chỉ cần internet

Rủi ro khi di chuyển giữa các quốc gia khác mạng viễn thông cũng giảm đi. Tuy nhiên mất điện thoại thì cũng toang, một số trường hợp như Google Authenticator còn ăn theo máy, đổi điện thoại đôi khi thủ tục để nhận OTP trên app khá lèo nhèo. Cái này cũng là một điểm trừ

3.2 Biometric Two-factor Authentication

Biometric dựa vào sinh trắc học để xác thực chủ tài khoản. Phương pháp này có thể có độ an toàn cao hơn do võng mạc và vân tay là duy nhất.

Tuy nhiên nó cũng tồn tại rủi ro nhất định. Dữ liệu sinh trắc học tuy là duy nhất nhưng theo chúng ta tới suốt đời. Không giống như mật khẩu có thể thay đổi được.

The most common is the fear of biometric data theft. Unlike a changeable password, stealing information about your retina or fingerprint would

Rủi ro lớn nhất đối với sinh trắc học là mất dữ liệu. Sinh trắc học đi theo chúng ta tới suốt đời, không phải có thể thay đổi như password hay dấu vân tay

4. Tham khảo

Anh em đón đọc bài viết sau của chuỗi bài này nhé. Sẽ phân tích kĩ hơn security của từng methods

Thank you for your time to read – Happy coding!

Bài viết gốc được đăng tải tại kieblog.vn

Có thể bạn quan tâm:

Xem thêm công việc CNTT hấp dẫn trên TopDev