Handshake protocol là bộ giao thức SSL phức tạp nhất. Giao thức này được sử dụng để khởi tạo phiên SSL giữa client và server. Thông điệp của giao thức này chứa rất nhiều loại thông tin, ví dụ các thuật toán mã hoá và các khoá mã mà 2 bên sẽ phải thoả thuận với nhau. Nhờ giao thức này các bên sẽ xác thực lẫn nhau và thoả thuận các tham số cho phiên làm việc sẽ được thiết lập. Quy trình thoả thuận giữa client và server được mô tả trong hình 4. Có thể chia quy trình này thành 4 pha.
Trong pha thứ nhất: một kết nối logic được thiết lập giữa client và server để thoả thuận các tham số của kết nối. Phía client gửi cho server một thông điệp client_hello chứa các dữ liệu như:
Version: phiên bản SSL cao nhất mà client có thể hỗ trợ, Random: dữ liệu chứa một tem thời gian 32 bít và một số ngẫu nhiên dài 28 byte.
Session ID: một giá trị số dùng làm định danh cho phiên. Nếu giá trị này khác 0 thể hiện client muốn cập nhật các thông số cho kết nối hiện tại hay muốn khởi tạo kết nối mới. Còn nếu bằng 0 thể hiện rằng client muốn khởi tạo một kết nối mới.
CipherSuite: danh sách các thuật toán mã hoá và phương pháp trao đổi khoá mà phía client hỗ trợ.
Phía server sẽ phản hồi lại bằng thông điệp server_hello có cấu trúc giống với thông điệp client_hello với các thông tin của server:
Version: phiên bản SSL thấp nhất mà server hỗ trợ.
Random: được sinh một cách độc lập với số ngẫu nhiên của client.
session ID: nếu session ID của client là khác 0 thì session ID của server sẽ giống của client. Nếu session ID của client bằng 0 thì trường session ID của server sẽ chứa định
CHƯƠNG 2 : CHECKPOINT