Giao diện SSO của Microsoft Account

Một phần của tài liệu Bài giảng An toàn ứng dụng web và cơ sở dữ liệu (Trang 77 - 80)

c.Các hệ xác thực tự phát triển

Nhiều ứng dụng web sử dụng hệ thống xác thực và trao quyền truy nhập tự phát triển. Ƣu điểm của các hệ thống xác thực dạng này là khả năng tùy biến cho phù hợp với yêu cầu của ứng dụng cụ thể. Nói chung, một hệ thống xác thực và trao quyền truy nhập tự phát triển thƣờng gồm các thành phần sau:

- Cơ sở dữ liệu lƣu thông tin ngƣời dùng, gồm tên truy nhập và mật khẩu. - Cơ sở dữ liệu quản lý quyền truy nhập cho ngƣời dùng, nhóm ngƣời dùng. - Trang đăng nhập, trang đăng xuất.

- Thành phần kiểm tra trạng thái đăng nhập và quyền truy nhập. - Thành phần kiểm tra và quản lý phiên làm việc.

3.2.1.3. Đảm bo an toàn cho xác thc da trên mt khu

Do xác thực dựa trên tên ngƣời dùng và mật khẩu đƣợc sử rộng rãi nhất trong xác thực ứng dụng web nhƣ đề cập ở mục 3.2.1.2, việc đảm bảo an toàn cho xác thực dựa trên mật khẩu đóng vai trị quyết định đến độ an tồn của khâu xác thực ứng dụng web. Các chỉ dẫn đảm bảo an toàn sau cho xác thực dựa trên mật khẩu cần đƣợc tuân thủ:

- Thiết lập độ dài mật khẩu tối thiểu

- Đảm bảo độ khó của mật khẩu (sử dụng nhiều bộ ký tự)

- Không lƣu mật khẩu ở dạng rõ (nên dùng dạng băm mà khơng phải là dạng mã hóa sử dụng khóa)

- Đổi mật khẩu định kỳ - Hạn chế dùng lại mật khẩu

- Không dùng mật khẩu giống tên ngƣời dùng - Cho phép khóa (disable) tài khoản.

3.2.1.4. Các cơ chếđảm bo an toàn xác thc ng dng web

Để tăng cƣờng an toàn xác thực ứng dụng web, có thể lựa chọn áp dụng các cơ chế sau:

- Nên sử dụng giao thức SSL/TLS (HTTPS) khi thực hiện truyền thông tin xác thực để tránh nguy cơ thông tin nhạy cảm bị đánh cắp.

- Nên có cơ chế khóa hệ thống, theo đó tạm khóa hệ thống, tạm khóa tài khoản nếu ngƣời dùng đăng nhập sai một số lần.

- Sử dụng CAPTCHA để xác thực form, tránh đăng nhập, đăng ký tự động. - Khóa tài khoản không sử dụng.

- Không sử dụng các tài khoản ngầm định, nhƣ admin, guest, root,… - Không lƣu thông tin truy nhập vào mã (hardcoded).

- Tránh sử dụng tính năng nhớ mật khẩu, hoặc tự động đăng nhập (Remember Me/Stay Signed In).

77 - Không sử dụng tính năng Autocomplete với form đăng nhập.

3.2.2. Bảo mật phiên làm việc

3.2.2.1. Gii thiu v phiên làm vic

Nhƣ đãđề cập ở mục 1.1.1.2, giao thức vận hành ứng dụng web - HTTP không hỗ trợ phiên làm việc. Phiên (Session) là một kỹ thuật đƣợc thực hiện bởi bản thân các ứng dụng web, cho phép ứng dụng web kết nối các yêu cầu truy nhập riêng rẽ của ngƣời dùng. Theo đó, ứng dụng web sinh một chuỗi nhận dạng cho mỗi phiên làm việc, gọi là Session ID hay Token. Sau khi đƣợc sinh, token đƣợc máy chủ web gửi cho trình duyệt dƣới dạng một Cookie. Ví dụ sau biểu diễn lệnh Set-Cookie giúp máy chủ gửi token cho trình duyệt:

Trình duyệt lƣu token vào cơ sở dữ liệu cục bộ và tự động gửi token lên máy chủ trong các yêu cầu truy vấn tiếp theo để máy chủ nhận dạng phiên làm việc của ngƣời dùng. Ví dụ sau là thành phần Cookie trình duyệt tích hợp vào yêu cầu gửi máy chủ web:

Phiên làm việc có thể bắt đầu bằng thao tác đăng nhập (Log On/Sign On) hoặc không cần đăng nhập. Trƣờng hợp cần đăng nhập thƣờng áp dụng cho việc truy nhập vào các khu vực hạn chế, nhƣ các trang dành cho thành viên, ứng dụng web-based email,... Trƣờng hợp không cần đăng nhập thƣờng áp dụng với các ứng dụng nhƣ các gian hàng trực tuyến cho phép khách hàng tìm, chọn lựa sản phẩm đƣa vào giỏ hàng, tạo đơn hàng mà không cần đăng nhập. Thông thƣờng, máy chủ web nhận dạng ngƣời dùng web thông qua địa chỉ IP của máy khách và thơng tin trên trình duyệt máy khách. Nhƣ vậy, 1 ngƣời dùng sử dụng 2 trình duyệt khác nhau trên 1 máy tính có khảnăng tạo ra 2 phiên làm việc khác nhau trên một website.

3.2.2.2. Các điểm yếu trong qun lý phiên

a.Giới thiệu

Có thể nói Session ID hay token là tham số quan trọng nhất của mỗi phiên làm việc web. Có hai dạng điểm yếu trong quá trình quản lý phiên làm việc của ứng dụng web, bao gồm các điểm yếu trong sinh token phiên và các điểm yếu trong sử dụng token phiên. Các điểm yếu trong sinh token phiên bao gồm:

- Token phiên có nghĩa - Token phiên dễđốn

+ Token đƣợc che dấu thứ tự

+ Token phụ thuộc thời gian

+ Token đƣợc tạo sử dụng số ngẫu nhiên yếu. Các điểm yếu trong sử dụng token phiên bao gồm:

78 - Rò rỉ token trên mạng

- Rò rỉ token trong ghi log

- Lỗ hổng trong ánh xạ token sang phiên - Lỗ hổng trong kết thúc phiên

- Token bị đánh cắp từ phía máy khách - Không giới hạn phạm vi sử dụng cookie. b. Các điểm yếu trong sinh token phiên

Token phiên có nghĩa

Một sốứng dụng tạo các token từ các thành phần có nghĩa nhƣ tên ngƣời dùng, email, ngày tháng,... Trong đó, chuỗi có nghĩa tạo từ tên ngƣời dùng, email,... đƣợc mã hóa, hoặc xáo trộn và dùng làm token nhận dạng cho phiên. Token chứa các thành phần dữ liệu có nghĩa thƣờng dễ bị suy diễn ra cấu trúc, hoặc quy luật sinh, hoặc tổ hợp. Tin tặc có thể dựa trên quy luật để đoán và thử token của ngƣời dùng khác. Chẳng hạn, chuỗi token phiên đƣợc biểu diễn dƣới dạng số hexa nhƣ sau:

Sau khi chuyển thành mã ASCII trở thành:

Token phiên dđoán

Các token phiên dễ đoán thƣờng gặp bao gồm các token đƣợc che dấu thứ tự, token phụ thuộc thời gian và token đƣợc tạo sử dụng số ngẫu nhiên yếu. Các token thuộc các dạng trên đều dễ dàng bị tìm ra quy luật, hoặc giải thuật sinh thơng qua một sốbƣớc phân tích. Khi tin tặc nắm đƣợc giải thuật sinh token, hắn có thể tạo nhiều token và đƣa vào yêu cầu gửi lên máy chủ để chiếm phiên làm việc của ngƣời dùng.

Hình 3.9 minh họa một token phiên dễ đoán phụ thuộc thời gian, trong đó token là một chuỗi ghép từ 2 thành phần: một chỉ số tuần tự và thời gian hiện tại của hệ thống tính bằng mili giây.

79

Một phần của tài liệu Bài giảng An toàn ứng dụng web và cơ sở dữ liệu (Trang 77 - 80)

Tải bản đầy đủ (PDF)

(161 trang)