Chương 1 – TỔNG QUAN VỀ GIAO THỨC SSL 1.1 Giới thiệu về giao thức SSL: 1.1 Sự ra đời và phát triển của giao thức SSL: Secure Sockets Layer (SSL) là một giao thức có thể được đặt ở giữa giao thức tầng mạng kết nối định hướng TCP/IP và tầng giao thức ứng dụng (FTP, HTTP, telnet. SSL cung cấp dịch vụ truyền thông có bảo mật giữa client và server bằng việc cho phép client và server xác thực lẫn nhau sử dụng chữ ký số và bảo mật thông tin trao đổi qua lại bằng cách mã hóa các thông tin đó. Giao thức này được thiết kế để có thể trợ giúp một loạt các thuật toán sử dụng cho việc mã hóa, hàm băm và chữ ký số. Ngày nay, SSL còn được sử dụng nhiều trong các ứng dụng của thương mại điện tử và tổ chức các mạng riêng ảo VPN.
Giao thức SSL được công ty truyền thông Netscape thiết kế để sử dụng với Netscape Navigator.0 của SSL được phát triển vào năm 1994. Đây là phiên bản thử nghiệm chỉ sử dụng trong nội bộ Netscape.0 là phiên bản phát hành công khai đầu tiên và được gắn với phiên bản 1 và 2 của Netscape Navigator. Sau khi SSL 2.0 được phát hành, Microsoft cho ra một phiên bản SSL riêng của mình tên là PCT (Private communication Technology – Công nghệ truyền thông cá nhân). Vì phiên bản này của Microsoft không quan tâm đến việc chuẩn hoá mà chỉ cố thử áp dụng các qui tắc riêng của mình nên ít nhận được sự ủng hộ của người dùng.
Phiên bản mới nhất của SSL là 3.0 và nó kết hợp chặt chẽ tất cả các cải tiến PCT của Microsoft để khắc phục các điểm yếu của SSL 2.0 đươ ̣c đưa ra thị trường vào tháng 3 năm 1996. Ngoài các phiên bản của SSL còn có giao thức TLSv1 (Transport Layer Security version 1.0) là một giao thức phát triển dựa trên cơ sở của SSLv3 và được thiết kế bởi IETF (Internet Engineering Task Force). Tuy nhiên, hiện nó chưa hỗ trợ cho tất cả các trình duyệt thông dụng (chẳng hạn Netscape). TLSv1 có bổ sung phần block padding cho các thuật toán mã khối, chuẩn hoá thứ tự các thông báo và bổ sung thêm các thông báo trong phiên liên lạc.2 Cấ u trúc của giao thức SSLv3: Để 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 TIEU LUAN MOI download : skknchat@gmail.com SSL như là một phần của tầng trình diễn.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.1: Sơ đồ quan hệ giữa giao thức SSL và mô hình tham chiếu ISO TIEU LUAN MOI download : skknchat@gmail.com 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 ISO 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 ISO 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 mã chức năng 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.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.
TIEU LUAN MOI download : skknchat@gmail.2: Mô hình phân tầng đối với giao thức con SSL Như có thể thấy trong hiǹ h vẽ, Handshake protocol của SSLv3 nằm ở mức Tầng ứng dụng , còn Record protocol nằm ở mức Tầng trình diễn. Tầng Handshake protocol quản lí việc trao đổi khoá, cảnh báo và thay đổi mật mã. Tầng Record protocol 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. Đối với mỗi tầng giao thức nói chung, một gói dữ liệu sẽ bao gồm các trường độ dài, mô tả và nội dung dữ liệu.
SSLv3 Record nhận dữ liệu cần gửi từ tầng trên phân nhỏ thành từng block, nén dữ liệu, bổ sung dữ liệu kiểm tra, mã hoá và gửi. Khi nhận dữ liệu về tiến trình được thực hiện ngược lại: giải mã, kiểm tra, gỡ nén và sắp xếp lại rồi gửi lên tầng trê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 SSLv3 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. SSLv3 cũng 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 ).
Giao thức SSLv 3 cho phép cung cấp mã chức năng 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. TIEU LUAN MOI download : skknchat@gmail.3 Các giao thức con của SSLv3: 1.1 Giao thức Bắt tay SSL: Giao thức này được sử dụng để thỏa thuận các tham số bảo đảm an toàn của một phiên liên lạc. Các thông điệp bắt tay được hỗ trợ bởi Giao thức Bản ghi và được đóng gói trong một cấu trúc gọi là SSLPlaintext, được xử lý và truyền đi bởi trạng thái phiên đang hoạt động hiện hành. Giao thức bắt tay 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ã 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.2 Giao thức Bản ghi SSL: Giao thức Bản ghi SSL là một tầng giao thức.
Đối với mỗi tầng giao thức nói chung, một gói dữ liệu sẽ bao gồm các trường độ dài, trường mô tả và nội dung dữ liệu. Bản ghi SSL nhận dữ liệu cần gửi từ tầng trên phân nhỏ thành từng block, nén dữ liệu, bổ sung dữ liệu kiểm tra, mã hoá và gửi. Sơ đồ các cấu trúc bản ghi SSL TIEU LUAN MOI download : skknchat@gmail.com Mỗi gói dữ liệu của giao thức bản ghi SSL gồm hai phần, phần header và phần dữ liệu. Phần header có thể dài 3 byte hoặc 2 byte, header 2 byte được dùng trong trường hợp không có dữ liệu đệm (padding data).
Bít dự phòng (escape bit) không được sử dụng trong phiên bản 2 của giao thức nhưng người ta gợi ý nên sử dụng nó để định rõ dữ liệu Out-Of-Band ở các phiên bản tới. Với một header 2 byte thì độ dài bản ghi lớn nhất là 32767 byte trong khi một header 3 byte chỉ cho phép một độ dài bản ghi tối đa là 16383 byte. Phần dữ liệu của bản ghi gồm một Mã Xác thực Tin nhắn (MAC), phần dữ liệu thực sự và dữ liệu đệm, nếu có. Khi cần thiết phải tiến hành mã hóa thì chính phần dữ liệu của bản ghi sẽ được mã hóa hoàn toàn.
Dữ liệu đệm chỉ được đòi hỏi để sử dụng cho các cipher khối (block cipher). Nó được sử dụng để lấp đầy chiều dài của khối dữ liệu sao cho thành một bội số của kích thước khối cipher. Nếu một cipher luồng (stream cipher) được sử dụng hoặc dữ liệu đã là một bội số của kích thước khối cipher rồi thì không đòi hỏi phải lấp đầy khối nữa và một bản ghi với header 2 byte được sử dụng. MAC là một giá trị băm hoặc message digest với giá trị đầu vào là khóa ghi (bí mật) của bên gửi, dữ liệu thực sự, dữ liệu đệm và một số đếm theo thứ tự tương ứng.
Số đếm là một số nguyên 32 bit được tăng lên sau mỗi lần tin nhắn được gửi đi.3 Change cipher spec protocol: 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. ChangeCipherSpec là giao thức đơn giản nhất trong SSL. Nó chỉ gồm một thông điệp dài 1 byte có cùng tên với giao thức. Thông báo này chỉ thị cho giao thức Record bên nhận biết rằng việc mã hoá của các khung (frame) dữ liệu tiếp theo sẽ được thực hiện với CipherSpec và khoá vừa thiết lập.