Phân tích cấu trúc chức năng của giao thức SSL theo mô

Một phần của tài liệu Xây dựng mạng riêng ảo dựa trên giao thức secure sockets layer (SSL) (Trang 35)

Để SSL cho phép trao đổi thông tin trong mô hình client-server một cách trong suốt, giao thức SSL được đặt giữa tầng ứng dụng và tầng vận chuyển của mô hình kết nối các hệ thống mở OSI. Theo cách tiếp cận này, có thể định nghĩa SSL như là một phần của tầng trình diễn. Hình 2.1 cho thấy vị trí của SSL trong mô hình OSI và trong mô hình phân tầng của giao thức TCP/IP.

Nói cách khác, SSL không hoạt động dựa trên giao thức UDP (User DataGram Protocol) bởi vì nó không đưa ra sự vận chuyển đáng tin cậy mà điều này có thể dẫn đến việc mất gói tin IP. Vì vậy, SSL không thể cung cấp sự bảo vệ cho các giao thức sau: SNMP, NFS, DNS.

Hình 2.1: Sơ đồ quan hệ giữa giao thức SSL và mô hình tham chiếu OSI

Xét về phương diện bảo mật thì ngoài chức năng truyền thông tin, tầng ứng dụng của mô hình OSI còn cung cấp các dịch vụ như thỏa thuận các cơ chế bảo mật (mã hóa) và xác thực giữa các bên tham gia giao tiếp. Trong khi đó, tầng trình diễn cũng có chức năng liên quan đến bảo mật dữ liệu. Trong một số ứng dụng, dữ liệu mà một ứng dụng trước khi gửi đi được mã hóa bằng cách sử dụng một khóa mà chỉ tầng trình diễn ở nơi nhận được định

trước mới được biết, đồng thời, tiến hành giải mã dữ liệu nhận được nhờ sử dụng khóa tương ứng trước khi chuyển dữ liệu đó đi tiếp đến nơi nhận đã định. Việc này không thuộc chuẩn.

Giao thức SSL bao gồm hai tầng con. Giao thức bắt tay SSL (SSLHP) và giao thức bản ghi SSL (SSLRP) và sử dụng bốn giao thức con: SSL record, SSL handshake, ChangeCipherSpec, Alert.

Tầng SSLHP quản lí việc trao đổi khoá, cảnh báo và thay đổi mật mã. Tầng SSLRP chịu trách nhiệm truyền các khối thông tin được gọi là các bản ghi (record) và mã hóa chúng bằng mật mã (cipher) đã được thỏa thuận, hoặc nhận các bản ghi và giải mã chúng. SSLHP và dữ liệu ứng dụng nằm bên trên SSLRP.

Như có thể thấy (trong sơ đồ) thì SSL thật sự nằm khá gọn gàng trong hai tầng OSI với SSLHP nằm ở mức tầng ứng dụng và SSLRP nằm ở mức tầng trình diễn. Do các chức năng bảo mật không được cài đặt trong nhiều giao thức, nên SSL hoạt động như một phần bổ sung cho các giao thức đó và không thay thế hoàn toàn các giao thức này. Cũng có thể thấy rằng việc sử dụng giao thức SSL không loại trừ việc sử dụng các giao thức bảo mật khác đang làm việc ở một mức cao hơn; thí dụ SHTTP (Secure HyperText Transfer Protocol), một giao thức bảo mật mức tài liệu hoặc dữ liệu, rõ ràng là để đáp ứng nhu cầu của các giao dịch tài chính, có thể được bổ sung thêm với SSL.

Giao thức SSL cung cấp chức năng mã hóa dữ liệu, xác thực máy chủ, bảo đảm tính toàn vẹn của thông điệp trao đổi giữa các thực thể tham gia vào quá trình trao đổi thông tin và xác thực máy trạm cho một kết nối TCP/IP.

SSL có thể nằm ở đỉnh của giao thức giao vận bất kỳ, nó không phải là giao thức phụ thuộc vào TCP/IP và có thể chạy dưới các giao thức ứng dụng như HTTP, FTP và TELNET.

Hình 2.2 trình bày mối quan hệ giữa các giao thức con và vị trí của mỗi giao thức con, lớp con và các lớp liền kề của SSL.

Hình 2.2: Mô hình phân tầng đối với giao thức con SSL.

Giao thức Handshake chịu trách nhiệm xác thực các thành viên tham gia liên lạc, đàm phán các thuật toán mã hoá và thuật toán băm hash và sự trao đổi của PreMasterSecret mà nó được sử dụng sau này để tạo ra các khoá xác thực và khoá mã hoá thông qua MasterSecret. Chức năng của giao thức CCS (ChangeCipherSpec) là chỉ thị cho các thay đổi nào đó trong các tham số bảo mật. Giao thức Alert chỉ thị các lỗi bắt gặp trong khi thẩm tra thông điệp cũng như sự không tương thích nào đó nảy sinh trong khi bắt tay. Cuối cùng, giao thức Record áp dụng tất cả các tham số bảo vệ đã đàm phán giữa hai thành viên mong muốn trao đổi thông tin một cách bí mật và bảo vệ dữ liệu đến từ lớp ứng dụng cũng như tất cả các thông điệp xuất phát từ ba giao thức lớp con khác.

Một vấn đề quan trọng nữa cần đề cập đó là SSL phân biệt giữa một kết nối và một phiên. Một kết nối là một dịch vụ vận chuyển trong khi một phiên là một tập các kết nối với cùng các tham số mật mã được đàm phán trong khi bắt tay. Do đó, một phiên có thể gồm nhiều các kết nối khác nhau. Việc xác thực được làm một lần trong mỗi phiên và các tham số sau đây vẫn không

thay đổi trong một phiên: ID phiên, chứng chỉ, thuật toán nén, thuật toán mã hoá khối và thuật toán kí, MasterSecret 48 byte dùng chung cho client và server. Tất cả các tham số sẽ được đề cập một cách chi tiết trong bản luận văn này.

Với mỗi kết nối mới trong một phiên, giao thức Handshake định nghĩa lại các tham số sau: Hai số ngẫu nhiên, một cho client và một cho server, các khoá mã hoá khối cho client và cho server và vector IV cho mã hoá khối cho cả hai phía. Một số thứ tự được chỉ rõ cho mỗi kết nối và thiết lập lại sau thông điệp ChangeCipherSpec.

Nói cách khác, SSL xây dựng và phỏng theo các phiên ứng dụng của giao thức TCP/IP trong ngữ cảnh bảo mật. Mỗi khi một client kết nối tới một server, một phiên mới được khởi tạo. Nếu cùng một client kết nối với một server khác, một kết nối mới sẽ được khởi động mà không ngắt kết nối trước. Nếu sau đó, client trở lại với server trước và muốn giữ các lựa chọn mật mã đã có, client sẽ hỏi server để giành lại sesion cũ thay cho khởi đầu một kết nối mới. Theo đề xuất của tài liệu SSL thì giới hạn độ dài của một phiên nên là 24 giờ nhưng khoảng thời gian thực tế của một phiên là phụ thuộc vào server.

Một phần của tài liệu Xây dựng mạng riêng ảo dựa trên giao thức secure sockets layer (SSL) (Trang 35)