II. Triển khai dịch vụ proxy 1 Các mô hình kết nối mạng
II.3 Proxy client và các phương thức nhận thực
Chính sách truy nhập và các qui tắc quảng bá của Proxy server có thể được thiết lập để cho phép hoặc từ chối một nhóm máy tính hay một nhóm các người dùng truy nhập tới một server nào đó. Nếu qui tắc được áp dụng riêng với các người dùng, Proxy server sẽ kiểm tra các đặc tính yêu cầu để quyết định người dùng được nhận thực như thế nào.
Ta có thể thiết lập các thông số cho các yêu cầu thông tin đi và đến để người dùng phải được proxy server nhận thực trước khi xử lý các qui tắc. Việc này đảm bảo rằng các yêu cầu chỉ được phép nếu người dùng đưa ra các yêu cầu đã được xác thực. Bạn cũng có thể thiết lập các phương pháp nhận thực được sử dụng và có thể thiết lập các phương pháp nhận thực cho các yêu cầu đi và yêu cầu đến khác nhau. Về cơ bản một Proxy server thường hỗ trợ các phương pháp nhận thực sau đây: phương thức nhận thực cơ bản., nhận thực Digest, nhận thực tích hợp Microsoft windows, chứng thực client và chứng thực server.
Đảm bảo rằng các chương trình proxy client phải hỗ trợ một trong các phương pháp nhận thực mà proxy server đã đưa ra. Trình duyệt IE 5 trở lên hỗ trợ hầu hết các phương pháp nhận thực, một vài trình duyệt khác có thể chỉ hỗ trợ phương pháp nhận thực cơ bản. Đảm bảo rằng các trình duyệt client có thể hỗ trợ ít nhất một trong số các phương pháp nhận thực mà Proxy server hỗ trợ.
Phương pháp nhận thực này gửi và nhận các thông tin về người dùng là các ký tự text dễ dàng đọc được. Thông thường thì các thông tin về user name và password sẽ được mã hoá thì trong phương pháp này không có sự mã hoá nào được sử dụng. Tiến trình nhận thực được mô tả như sau, proxy client nhắc người dùng đưa vào username và password sau đó thông tin này được client gửi cho proxy server. Cuối cùng username và password được kiểm tra như là một tài khoản trên proxy server.
2. Phương pháp nhận thực Digest.
Phương pháp này có tính chất tương tự như phương pháp nhận thực cơ bản nhưng khác ở việc chuyển các thông tin nhận thực. Các thông tin nhận thực qua một tiến trình xử lý một chiều thường được biết với cái tên là "hashing". Kết quả của tiến trình này gọi là hash hay message digest và không thể giải mã chúng. Thông tin gốc không thể phục hồi từ hash. Các thông tin được bổ sung vào password trước khi hash nên không ai có thể bắt được password và sử dụng chúng để giả danh người dùng thực. Các giá trị được thêm vào để giúp nhận dạng người dùng. Một tem thời gian cũng được thêm vào để ngăn cản người dùng sử dụng một password sau khi nó đã bị huỷ. Đây là một ưu điểm rõ ràng so với phương pháp nhận thực cơ bản bởi vì người dùng bất hợp pháp không thể chặn bắt được password.
3. Phương pháp nhận thực tích hợp.
Phương pháp này được sử dụng tích hợp trong các sản phẩm của Microsoft. Đây cũng là phương pháp chuẩn của việc nhận thực bởi vì username và password không được gửi qua mạng. Phương pháp này sử dụng hoặc giao thức nhận thực V5 Kerberos hoặc giao thức nhận thực challenge/response của nó.
4. Chứng thực client và chứng thực server
Ta có thể sử dụng các đặc tính của SSL để nhận thực. Chứng thực được sử dụng theo hai cách khi một client yêu cầu một đối tượng từ server: server nhận thực chính nó bằng cách gửi đi một chứng thực server cho client. Server yêu cầu client nhận thực chính nó (Trong trường hợp này client phải đưa ra một chứng thực client phù hợp tới server).
SSL nhận thực bằng cách kiểm tra nội dung của một chứng thực số được mã hoá do proxy client đệ trình lên trong quá trình đăng nhập (Các người dùng
có thể có được các chứng thực số từ một tổ chức ngoài có độ tin tưởng cao). Các chứng thực về server bao gồm các thông tin nhận biết về server. Các chứng thực về client thường gồm các thông tin nhận biết về người dùng và tổ chức đưa ra chứng thực đó
Chứng thực client: Nếu chứng thực client được lựa chọn là phương thức xác thực thì proxy server yêu cầu client gửi chứng thực đến trước khi yêu cầu một đối tượng. Proxy server nhận yêu cầu và gửi một chứng thực cho client. Client nhận chứng thực này và kiểm tra xem có thực là thuộc về proxy server . Client gửi yêu cầu của nó cho proxy server, tuy nhiên proxy server yêu cầu một chứng thực từ client mà đã được đưa ra trước đó. Proxy server kiểm tra xem chứng thực có thực sự thuộcc về client được phép truy cập không.
Chứng thực server: Khi một client yêu cầu một đối tượng SSL từ một server, client yêu cầu server phải nhận thực chính nó. Nếu proxy server kết thúc một kết nối SSL thì sau đó proxy server sẽ phải nhận thực chính nó cho client. Ta phải thiết lập và chỉ định các chứng thực về phía server để sử dụng khi nhận thực server cho client
5. Nhận thực pass-though
Nhận thực pass-though chỉ đến khả năng của proxy server chuyển thông tin nhận thực của client cho server đích. Proxy server hỗ trợ nhận thực cho cả các yêu cầu đi và đến. Hình vẽ sau mô tả trường hợp nhận thực pass-though.
Hình 6.12
Client gửi yêu cầu lấy một đối tượng trên một web server cho proxy server. Proxy server chuyển yêu cầu này cho web server, bắt đầu từ đây việc nhận thực qua các bước sau:
1Webserver nhận được yêu cầu lấy đối tượng và đáp lại rằng client cần phải nhận thực. Web server cũng chỉ ra các kiểu nhận thực được hỗ trợ.
2Proxy server chuyển yêu cầu nhận thực cho client
3Client tiếp nhận yêu cầu và trả các thông tin nhận thực cho proxy server 4Proxy server chuyển lại thông tin đó cho web server
5Từ lúc này client liên lạc trực tiếp với web server
6. SSL Tunneling.
Với đường hầm SSL, một client có thể thiết lập một đường hầm qua proxy server trực tiếp tới server yeu cầu với các đối tượng yêu cầu là HTTPS. Bất cứ khi nào client yêu cầu một đối tượng HTTPS qua proxy server nó sử dụng đường hầm SSL. Đường hầm SSL làm việc bởi sự ngầm định các yêu cầu đi tới các cổng 443 và 563.
Hình 6.13
Tiến trình tạo đường hầm SSL được mô tả như sau:
1 Khi client yêu cầu một đối tượng HTTPS từ một web server trên Internet, proxy server gửi một yêu cầu kết nối https://URL_name
2 Yêu cầu tiếp theo được gửi tới cổng 8080 trên máy proxy server
4 Khi một kết nối TCP được thiết lập, proxy server trả lại kết nối đã được thiết lập HTTP/1.0 200
5 Từ đây, client thông tin trực tiếp với Web server bên ngoài
7. SSL bridging.
SSL bridging đề cập đến khả năng của proxy server trong việc mã hóa hoặc giải mã các yêu cầu của client và chuyển các yêu cầu này tới server đích. Ví dụ, trong trường hợp quảng bá (hoặc reverse proxy), proxy server có thể phục vụ một yêu cầu SSL của client bằng cách chấm dứt kết nối SSL với client và mở lại một kết nối mới với web server. SSL bridging được sử dụng khi proxy server kết thúc hoặc khởi tạo một kết nối SSL.
Khi một client yêu cầu một đối tượng HTTP. Proxy server mã hóa yêu cầu và chuyển tiếp nó cho web server. Web server trả về đối tượng đã mã hóa cho proxy server. Sau đó proxy server giải mã đối tượng và gửi lại cho client. Nói một cách khác các yêu cầu HTTP được chuyển tiếp như các yêu cầu SSL.
Khi client yêu cầu một đối tượng SSL. Proxy server giải mã yêu cầu, sau đó mã hóa lại một lần nữa và chuyển tiếp nó tới Web server. Web server trả về đối tượng mã hóa cho proxy server. Proxy server giải mã đối tượng và sau đó gửi nó cho client. Nói một cách khác các yêu cầu SSL được chuyển tiếp như là các yêu cầu SSL.
Khi client yêu cầu một đối tượng SSL. Proxy server giải mã yêu cầu và chuyển tiếp nó cho web server. Web server trả về đối tượng HTTP cho proxy server. Proxy server mã hóa đối tượng và chuyển nó cho client. Nói cách khác các yêu cầu SSL được chuyển tiếp như các yêu cầu HTTP.
SSL bridging có thể được thiết lập cho các yêu cầu đi và đến. Tuy nhiên với các yêu cầu đi client phải hỗ trợ truyền thông bảo mật với proxy server.