Cấu trúc của giao thức bảo mật SSL

Một phần của tài liệu Nghiên cứu về an ninh dịch vụ Web (Trang 33)

Cấu trúc của SSL (Secure Socket Layer) và giao thức SSL tƣơng ứng đƣợc minh họa trong hình 3.1. Theo hình này, SSL chỉ một lớp (bảo mật) trung gian giữa lớp vận chuyển (Transport Layer) và lớp ứng dụng (Application Layer). Về khả năng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP chứ không chỉ HTTP. Thực tế, một ƣu điểm chính của các giao thức bảo mật lớp giao vận (Transport layer) nói chung và giao thức SSL nói riêng là chúng độc lập với ứng dụng theo nghĩa chúng có thể đƣợc sử dụng để bảo vệ bất kỳ giao thức ứng dụng đƣợc xếp lớp lên trên TCP một cách trong suốt. Hình 3.1 minh họa một số giao thức ứng dụng điển hình bao gồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3. Tất cả chúng có thể đƣợc bảo vệ bằng cách xếp lớp chúng lên trên SSL. Tuy nhiên, chú ý rằng SSL có một định hƣớng client-server mạnh mẽ và thật sự không đáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng.

Tóm lại, giao thức SSL [8, 18] cung cấp sự bảo mật truyền thông có ba đặc tính cơ bản:  SSL Record Layer SSL Record Layer TCP SSL handshake Protocol SSL Alert Protocol HTTP LDAP etc… SSL Change Cipher Spec Protocol HTTP SMTP

etc… Application Layer

IP Network Access Transport Layer Internet Layer Network Layer Hình 3.1: Cấu trúc và giao thức SSL Giao thức bảo mật SSL

- Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách sử dụng mật mã khóa công khai.

- Sự bí mật của dữ liệu đƣợc bảo vệ vì kết nối đƣợc mã hóa trong suốt sau khi một sự thiết lập quan hệ ban đầu và sự thƣơng lƣợng khóa session đã xảy ra.

- Tính xác thực và tính toàn vẹn của dữ liệu cũng đƣợc bảo vệ vì các thông báo đƣợc xác thực và đƣợc kiểm tra tính toàn vẹn một cách trong suốt.

Tuy nhiên, điều quan trọng cần lƣu ý là SSL không ngăn các cuộc tấn công phân tích dữ liệu. Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích không đƣợc mã hóa và các số cổng TCP, hoặc xem xét dữ liệu đƣợc truyền, một ngƣời phân tích vẫn có thể xác định các bên nào đang tƣơng tác, các loại dịch vụ đang đƣợc sử dụng, và đôi khi ngay cả dành đƣợc thông tin về các mối quan hệ doanh nghiệp hoặc cá nhân. Hơn nữa, SSL không ngăn các cuộc tấn công có định hƣớng dựa vào phần thực thi TCP, chẳng hạn nhƣ các cuộc tấn công làm tràn ngập TCP SYN hoặc chiếm đoạt session.

Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia đang sử dụng SSL.

Nói chung, có hai khả năng để giải quyết vấn đề này:

- Sử dụng cổng chuyên dụng đƣợc dành riêng bởi Internet Asigned Numbers Authority (IANA). Trong trƣờng hợp này, một số cổng riêng biệt phải đƣợc gán cho mọi giao thức ứng dụng sử dụng SSL.

- Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thƣơng lƣợng các tùy chọn bảo mật nhƣ là một phần của giao thức ứng dụng. Sử dụng tùy chọn TCP để thoả thuận việc sử dụng một giao thức bảo mật, chẳng hạn nhƣ SSL trong suốt giai đoạn thiết lập kết nối TCP thông thƣờng. Thực tế, cổng riêng biệt đã đƣợc dành riêng và đƣợc gán bởi IANA cho mọi giao thức ứng dụng có thể chạy trên SSL hoặc TLS. Tuy nhiên, hãy chú ý việc sử dụng các cổng riêng biệt cũng có khuyết điểm là đòi hỏi hai kết nối TCP nếu client không biết những gì mà server hỗ trợ.

Trƣớc tiên, client phải kết nối với cổng an toàn và sau đó với cổng không an toàn hay ngƣợc lại. Rất có thể các giao thức sau này sẽ hủy bỏ phƣơng pháp này và tìm khả năng thứ hai. Ví dụ, SALS (Simple Authentication and Security Layer) xác định một phù hợp để thêm sự hỗ trợ xác thực vào các giao thức ứng dụng dựa vào kết nối. Theo thông số kỹ thuật SALS, việc sử dụng các cơ chế xác thực có thể thƣơng lƣợng giữa client và server của một giao thức ứng dụng đã cho.

Các cổng đƣợc gán bởi IANA cho các giao thức ứng dụng chạy trên SSL/TLS đƣợc tóm tắt trong bảng 1và đƣợc minh họa một phần trong hình 3.1. Ngày nay, "S" chỉ định việc sử dụng SSL đƣợc thêm (hậu tố) nhất quán vào các từ ghép của các giao

thức ứng dụng tƣơng ứng (trong một số thuật ngữ ban đầu, S đƣợc sử dụng và đƣợc thêm tiền tố một cách không nhất quán và một số từ ghép).

Bảng 1: Các số cổng đƣợc gán cho các giao thức ứng dụng chạy trên TLS/SSL.

Từ khóa Cổng Mô tả

nsiiop 261 Dịch vụ tên IIOP trên TLS/SSL https 443 HTTP trên TLS/SSl

smtps 465 SMTP trên TLS/SSL

nntps 563 NNTP trên TLS/SSL

ldaps 636 LDAP trên TLS/SSL

ftps-data 989 FTP (dữ liệu) trên TLS/SSL ftps 990 FTP (Điều khiển) trên TLS/SSL tenets 992 TELNET trên TLS/SSL

imaps 994 IRC trên TLS/SSL

pop3s 995 POP3 trên TLS/SSL

Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và duy trì thông tin trạng thái ở một trong hai phía của session. Các phần tử thông tin trạng thái session tƣơng ứng bao gồm một session ID, một phƣơng pháp nén, một thông số mật mã, một khóa mật chính và một cờ chỉ định việc session có thể tiếp tục lại hay không, đƣợc tóm tắt trong bảng 2. Một session SSL có thể đƣợc sử dụng trong một số kết nối và các thành phần thông tin trạng thái kết nối tƣơng ứng đƣợc tóm tắt trong bảng 3. Chúng bao gồm các tham số mật mã, chẳng hạn nhƣ các chuỗi byte ngẫu nhiên server và client, các khóa mật MAC ghi server và client, các khóa ghi server và client, một vector khởi tạo và một số chuỗi. Ở trong hai trƣờng hợp, điều quan trọng cần lƣu ý là các phía giao tiếp phải sử dụng nhiều session SSL đồng thời và các session có nhiều kết nối đồng thời.

Bảng 2: Các thành phần thông tin trạng thái Session SSL

Thành Phần Mô tả

Session ID Định danh đƣợc chọn bởi server để nhận dạng một trạng thái session hoạt động hoặc có thể tiếp tục lại.

Peer certificate Chứng chỉ số X.509 phiên bản 3 của thực thể Compression method Thuật toán dùng để nén dữ liệu trƣớc khi mã hóa Cipher spec Thông số của các thuật toán mã hóa dữ liệu và MAC Master secret Khóa mật 48-byte đƣợc chia sẻ giữa client và server.

Is resumable Cờ biểu thị session có thể đƣợc sử dụng để bắt đầu các kết nối mới hay không.

Bảng 3: Các thành phần thông tin trạng thái kết nối SSL

Thành Phần Mô tả

Ngẫu nhiên server và client

Các chuỗi byte đƣợc chọn bởi server và client cho mỗi kết nối.

Khóa mật MAC ghi server

Khóa mật đƣợc sử dụng cho các hoạt động MAC trên dữ liệu đƣợc ghi bởi server.

Khóa mật MAC ghi client

Khóa mật đƣợc sử dụng cho các hoạt động MAC trên dữ liệu đƣợc ghi bởi client.

Khóa ghi server Khóa đƣợc sử dụng cho việc mã hóa dữ liệu bởi server và giải mã bởi client

Khóa ghi client Khóa đƣợc sử dụng để mã khóa dữ liệu bởi client và giải mã bởi server.

Initialization vector Trạng thái khởi tạo cho một mật mã khối trong chế độ CBC. Trƣờng này đƣợc khởi tạo đầu tiên bởi SSL Handshake Player. Sau đó, khối text mật mã sau cùng từ mỗi bản ghi đƣợc dành riêng để sử dụng với bản ghi sau đó.

Nhƣ đƣợc minh họa trong hình 3.1, giao thức SSL gồm hai phần chính, SSL Record Protocol và một số giao thức con SSL đƣợc xếp lớp trên nó:

– Record OK đƣợc xếp lớp trên một dịch vụ lớp giao vận hƣớng kết nối và đáng tin cậy, chẳng hạn nhƣ đƣợc cung cấp bởi TCP và cung cấp sự xác thực nguồn gốc thông báo, sự bí mật dữ liệu.

– Các dịch vụ toàn vẹn.

– Các giao thức con SSL đƣợc xếp lớp trên SSL Record Protocol để cung cấp sự hỗ trợ cho việc quản lý session SSL và thiết lập kết nối.

– Giao thức con SSL quan trọng nhất là SSL Handshake Protocol. Lần lƣợt giao thức này là một giao thức xác thực và trao đổi khóa có thể đƣợc sử dụng để thƣơng lƣợng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tƣơng ứng đƣợc đặt ở một trong hai điểm cuối của một session hoặc kết nối SSL.

– Sau khi SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể đƣợc gửi và đƣợc nhận bằng cách sử dụng SSL Record Protocol và các tham số bảo mật đƣợc thƣơng lƣợng và các thành phần thông tin trạng thái. SSL Record và Handshake Protocol đƣợc trình bày tổng quan ở phần tiếp theo.

Một phần của tài liệu Nghiên cứu về an ninh dịch vụ Web (Trang 33)

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

(72 trang)