Xác thực đa nhân tố: nhu cầu và phát triển
Xác thực là quá trình xác minh tính hợp lệ của một thực thể hoặc người dùng nào đó. Việc xác minh này tránh việc giả danh thành công để có quyền truy cập trái phép đến tài nguyên mạng mà người giả danh không có quyền như vậy. Xác thực rất quan trọng bởi vì khi việc giả danh thành công thì việc bảo vệ tài nguyên mạng là thất bại. Hậu quả của việc giả danh này có thể rất trầm trọng, thậm chí phá vỡ hoàn toàn các tài nguyên mạng và các hệ thống mạng đang hoạt động.
Để có thể xác thực được các thực thể, việc đầu tiên là hình thành nên tập hợp danh tính của các thực thể ánh xạ vào tập hợp thực sự các thực thể. Giống như quá trình ánh xạ tập hợp các tên người vào một tập hợp người cụ thể. Quá trình làm việc với các tài nguyên mạng thường được tiến hành thông qua danh tính của các thực thể mà không phải là trực tiếp các thực thể. Chính vì vậy, xác thực thực thể phải đảm bảo danh tính không thể bị mạo danh bởi bất kỳ thực thể nào khác. Muốn làm được như vậy, mỗi danh tính của thực thể phải cung cấp các nhân tố đặc trưng cho thực thể đó mà không đặc trưng cho các thực thể khác.
Vấn đề đặt ra các nhân tố được cung cấp của các thực thể có phải hoàn toàn khác biệt giữa chúng hay không? Cần có bao nhiêu nhân tố thì đủ để việc xác thực là chính xác hoàn toàn? Đó chính là vấn đề xác thực đa nhân tố.
Nhu cầu xác thực đa nhân tố
Trước hết, xác thực một nhân tố là xác thực khi mà mỗi danh tính của một thực thể được gắn với một mật khẩu (mật khẩu này chỉ có thực thể này biết). Khi đăng nhập truy cập tài nguyên mạng, thực thể này cung cấp danh tính và mật khẩu cho hệ thống. Hệ thống sẽ kiểm tra danh tính và mật khẩu xem có trùng khớp với bộ danh tính và mật khẩu tương ứng được lưu trữ không. Nếu đúng thì quá trình xác thực thành công và thực thể được hệ thống cấp quyền truy cập vào các tài nguyên mạng theo phân quyền.
Vì chỉ có một nhân tố là mật khẩu nên nếu thực thể chính để lộ mật khẩu thì thực thể khác có thể dễ dàng giả danh. Bản thân hệ thống cũng phải có cơ chế hoạt động sao cho mật khẩu của các thực thể không thể bị lộ khi lưu trữ hoặc truyền trên mạng. Để cho quá trình xác thực khó giả danh hơn người ta có thể đưa thêm nhân tố mới đặc trưng cho thực thể khác hoàn toàn với nhân tố ban đầu để có được xác thực hai nhân tố. Nếu thấy cần, người ta lại đưa thêm nhân tố thứ ba khác với hai nhân tố đầu để có được xác thực ba nhân tố. Quá trình xác thực mà có sử dụng từ hai nhân tố trở lên được gọi là xác thực đa nhân tố. Việc lựa chọn nhân tố đặc trưng cho thực thể phải đảm bảo các nhân tố này phải khác biệt nhau, không có tính tương tự thì mới có nhiều ý nghĩa. Ví dụ một định danh có hai nhân tố đều là mật khẩu thì có rất ít ý nghĩa.
Các nhân tố trong xác thực đa nhân tố
Một nhân tố thực chất là một kiểu xác thực. Khi tuyên bố danh tính của ai đó cần cung cấp thông tin hoặc bằng chứng để chứng tỏ đúng là thực thể với danh tính đó. Nhân tố có thể là mật khẩu hoặc cũng có thể là một thẻ tín dụng ATM.
Nhân tố thứ nhất: Mật khẩu, số nhận diện cá nhân (PIN). Tất nhiên phải lựa chọn mật khẩu hay số PIN sao cho khó đoán được đối với các thực thể khác.
Nhân tố thứ hai: Chọn một vật mà chỉ thực thể hợp pháp mới có, thường mang theo mình và không thể nhân bản, ví dụ như thẻ thông minh.
Nhân tố thứ ba: Đặc tính sinh trắc của người dùng, gắn liền với bản thân người dùng. Đó là vân tay, võng mạc mắt, giọng nói hay khuôn mặt.
Nhân tố thứ tư: Vị trí của người dùng được xác định chính xác không nhầm lẫn. Đối với máy tính đó chính là địa chỉ IP.
Nhân tố thứ năm: Nhân tố này ít được sử dụng và ít người biết đến. Đó là quan sát các hành động của người dùng như: Các cử động và tiếp xúc, ví dụ mật khẩu hình vẽ.
Xác thực đa bước và xác thực đa nhân tố
Sự khác biệt là xác thực đa bước kiểm tra hợp lệ các nhân tố riêng rẽ trong khi xác thực đa nhân tố kiểm tra hợp lệ các nhân tố cùng nhau.
Ví dụ: Xác thực đơn nhân tố đơn giản nhất là chỉ gồm có tài khoản người sử dụng (User Account) đi đôi với mật khẩu (Password). Nhân tố duy nhất chính là mật khẩu. Xác thực hai nhân tố phổ biến là khi sử dụng USB Token và số nhận diện các nhân PIN để ký số lên tài liệu điện tử. Khi đó, hai nhân tố là USB Token là cái ta có và số PIN là cái ta biết.
Khi một hệ thống yêu cầu danh tính và mật khẩu theo sau bởi một thẻ thông minh, nếu xác thực là đa nhân tố thì hệ thống sẽ không kiểm tra hợp lệ danh tính và mật khẩu chừng nào thẻ thông minh chưa được cung cấp. Lợi thế của cách tiếp cận này là nếu xác thực thất bại thì người ta không thể biết danh tính, mật khẩu hay thẻ thông minh không đúng. Ngược lại nếu xác thực là đa bước thì hệ thống sẽ kiểm tra hợp lệ danh tính và mật khẩu trước. Nếu cả hai chính xác thì thẻ thông minh mới được kiểm tra hợp lệ. Khi đó quá trình xác thực trở thành đơn nhân tố. Chỉ có nhân tố chưa biết được là chính thẻ thông minh.
Hiện nay, người ta hay sử dụng xác thực Out-of-Band đối với các tin nhắn SMS mà ở đó mỗi nhân tố xác thực SMS truyền theo các kênh hay các mạng khác nhau. Kẻ tấn công có thể sử dụng kỹ nghệ xã hội để thu được các tin nhắn SMS này và khớp chúng với nhau như đã được đề cập trong NIST SP 800-63B Digital Identity Guidelines.
Giải pháp Single Sign On (SSO) chỉ nhằm mục đích giảm nhẹ việc quản trị xác thực. Chỉ cần xác thực một lần đến hệ thống hoặc ứng dụng đại diện để cung cấp truy cập đến nhiều hệ thống hoặc ứng dụng được bảo vệ trong một phiên làm việc. SSO có thể là xác thực đơn nhân tố hoặc đa nhân tố tùy thuộc vào phương pháp xác thực mà hệ thống hay ứng dụng đại diện yêu cầu.
Một kiểu xác thực phiên truyền thống đối với nhiều ứng dụng Web hiện đại được thay thế bằng sử dụng JSON Web Tokens (JWT). Phương thức này định nghĩa một cách thức compact và tự đầy đủ để truyền an toàn thông tin giữa các bên là các đối tượng JSON. Thông tin được kiểm tra và tin cậy bởi được ký số. JWT được ký sử dụng khóa bí mật với thuật toán HMAC hoặc cặp khóa bí mật/công khai sử dụng RSA trong chuẩn mở RFC 7519 năm 2016.
Một số thách thức đối với xác thực đa nhân tố
Xác thực đa nhân tố cũng có một số thách thức, cụ thể như sau:
- Tính tiện dụng; khi sử dụng nhiều nhân tố khác nhau thì tính tiện dụng sẽ khó đạt hơn.
- Vấn đề chi phí: Sẽ gia tăng cho triển khai xác thực nhiều nhân tố.
- Những khoảng trống kỹ thuật khi kết hợp các nhân tố với nhau.
- Gia tăng phức tạp triển khai, hỗ trợ và duy trì. Điều này cũng đòi hỏi kiểm tra tính tương thích thường xuyên khi các môi trường thay đổi.
- Các tùy chọn sao lưu.
- Làm cạn kiệt thời gian và tài nguyên.
- Các rủi ro biến thiên.
Bởi vậy, giải pháp xác thực đa nhân tố đúng đắn sẽ cải thiện an toàn, đáp ứng các yêu cầu tuân thủ và cải thiện năng suất của người dùng trong khi giảm thiểu các thách thức như các khoảng trống kỹ thuật, các vấn đề tiện dụng và tính phức tạp.
Kết luận
Rõ ràng xác thực đa nhân tố là bắt buộc hiện nay. Tuy nhiên, các nhân tố thường phải được đặt trong các kênh hay các mạng khác nhau sao cho càng độc lập nhau càng tốt. Nếu chỉ sử dụng mật khẩu để bảo vệ danh tính thì cũng cần dùng bộ quản lý mật khẩu riêng để sinh ngẫu nhiên và lưu trữ an toàn các mật khẩu của bạn.
Xác thực sinh trắc học được cho là an toàn hơn xác thực mật khẩu, nhưng cũng cần phối hợp thêm một hoặc nhiều nhân tố khác để tăng tính bảo mật. Nhân tố an toàn cả hiện nay là thiết bị vật lý như thẻ thông minh hay USB Token sử dụng mật mã PKI mà khóa bí mật được lưu vật lý trên thẻ thông minh và việc nhân bản được thiết bị thẻ thông minh này rất khó thực hiện.
Trần Quang Kỳ