Các biện pháp phòng chống tấn công vào các cơ chế xác thực bao gồm: bảo vệ cookie của phiên, sử dụng các cơ chế xác thực an toàn, yêu cầu ngƣời dùng tham gia và làm phiền ngƣời dùng, sử dụng ngƣỡng, phòng chống phishing và bảo vệ mật khẩu.
2.4.3.1. Bảo vệ cookie của phiên
Do cookie là một trong các phƣơng tiện hỗ trợ máy chủ và máy khách duy trì phiên làm việc, nên bảo vệ cookie là một trong các biện pháp hiệu quả để bảo vệ phiên làm việc. Các biện pháp bảo vệ cookie cụ thể bao gồm:
- Hạn chế việc chuyển cookie qua kênh không mã hóa;
- Xác định rõ thời gian hết hạn của cookie, đồng thời hạn chế các cookie tồn tại lâu dài;
- Sử dụng tính năng "Remember Me", "Remember Password" một cách hợp lý; - Với các tính năng quan trọng, luôn yêu cầu ngƣời dùng phải xác thực lại.
- Với các cookie lƣu thông tin định danh, cần đƣợc mã hóa bằng các hàm băm có khóa (HMAC).
2.4.3.2. Sử dụng các cơ chế xác thực an toàn
Các cơ chế xác thực an toàn có thể áp dụng với các ứng dụng web bao gồm: - Sử dụng mật khẩu dƣới dạng mã hóa, chẳng hạn dƣới dạng băm;
- Nên sử dụng các kênh an toàn nhƣ SSL/TLS để truyền thông tin xác thực;
- Sử dụng mật khẩu 1 lần (OTP), hoặc giao thức xác thực thách thức – trả lời (Challenge-Response);
- Sử dụng giao thức OAuth: Giao thức OAuth nhằm tạo 1 chuẩn xác thực, cho phép tạo chuỗi xác thực từ tên truy nhập và mật khẩu. Ngƣời dùng chỉ cần cung cấp tên truy nhập và mật khẩu 1 lần cho máy chủ xác thực và đƣợc cấp 1 chuỗi xác thực. Chuỗi xác thực này đƣợc dùng để xác thực ngƣời dùng với các máy chủ dịch vụ;
52 - Sử dụng giao thức OpenID: OpenID ( http://openid.net) cho phép 1 website sử dụng cơ chế xác thực của 1 bên thứ 3 tin cậy để xác thực ngƣời dùng. Ƣu điểm của cơ chế này là hệ thống không phải lƣu tên truy nhập và mật khẩu của ngƣời dùng và cũng không phải cài đặt cơ chế xác thực. Hình 2.15 minh họa trang web Skeptics sử dụng OpenID để xác thực ngƣời dùng sử dụng một trong các bên thứ ba tin cậy, nhƣ Google, Facebook để xác thực ngƣời dùng.
Hình 2.15.Xác thực sử dụng OpenID 2.4.3.3. Yêu cầu người dùng tham gia và làm phiền người dùng
Yêu cầu ngƣời dùng tham gia là việc thông báo cho ngƣời dùng về các sự kiện quan trọng, các hành động nhạy cảm có liên quan đến tài khoản của họ, nhƣ lần đăng nhập gần nhất, đăng nhập ở vị trí, địa điểm không thƣờng xuyên, hoặc đăng nhập sai nhiều lần. Hơn nữa, đển đảm bảo an toàn cho tài khoản, luôn yêu cầu ngƣời dùng xác thực lại trong các trƣờng hợp, nhƣ đổi mật khẩu, hoặc cập nhật thông tin cá nhân,...
Làm phiền ngƣời dùng là biện pháp xác thực bổ sung, nhằm đảm bảo trang web thực sự đƣợc tải từ máy chủ và thông tin đƣợc nhập từ ngƣời dùng thực sự, không phải là một hệ thống xử lý tự động hay một rô bốt. Một trong các kỹ thuật đƣợc sử dụng phổ biến cho mục đích này là CATPCHAR (Completely Automated Public Turing Computers and Humans Apart), nhƣ minh họa trên Hình 2.16.
53
Hình 2.16.Sử dụng CAPTCHAR để xác thực trang 2.4.3.4. Sử dụng ngưỡng
Sử dụng ngƣỡng (Threshold) là biện pháp hiệu quả để ngăn chặn việc sử dụng quá mức tài nguyên hoặc ngăn chặn các nỗ nực tấn công. Chẳng hạn, có thể hạn chế số lần đăng nhập sai từ một địa chỉ IP thông qua sử dụng một trong các "luật":
- Nếu 1 ngƣời dùng đăng nhập sai 3 lần từ 1 địa chỉ IP trong vòng 10 phút thì khóa tài khoảng trong 1 giờ; hoặc
- Nếu 1 ngƣời dùng đăng nhập sai 5 lần từ 1 địa chỉ IP trong vòng 2 giờ thì khóa tài khoảng khóa trong 1 ngày.
2.4.3.5. Phòng chống phishing và bảo vệ mật khẩu
Phising là một trong các dạng tấn công sử dụng các kỹ thuật xã hội đánh lừa ngƣời dùng cung cấp các thông tin tài khoản, hoặc thông tin nhạy cảm khác. Để phòng chống phising hiệu quả, cần hiển thị rõ tên, logo của tổ chức trên website, đồng thời sử dụng chứng chỉ số SSL/TLS và cấu hình vận hành website trên giao thức HTTPS thay cho HTTP.
Các cơ chế bảo vệ mật khẩu ngƣời dùng cũng giúp phòng chống hiệu quả các dạng tấn công vào các cơ chế xác thực. Với ngƣời dùng cần đào tạo ý thức bảo vệ tài khoản, mật khẩu phù hợp, không tiết lộ mật khẩu cá nhân cho ngƣời khác. Với hệ thống, cần hỗ trợ các cơ chế đảm bảo độ khó và đổi mật khẩu định kỳ phù hợp.