SSL Record Protocol sử dụng để trao đổi tất cả các kiểu dữ liệu trong một phiên – bao gồm các thông điệp, dữ liệu của các giao thức SSL khác và dữ liệu của ứng dụng.
SSL Record Protocol liên quan đến việc bảo mật và đảm bảo toàn vẹn dữ liệu.
Mục đích của SSR Record Protocol là thu nhận những thông điệp mà ứng dụng chuẩn bị gửi, phân mảnh dữ liệu cần truyền, đóng gói, bổ xung header tạo thành một đối tượng gọi là bản ghi (record), bản ghi đó được mã hoá và có thể truyền bằng giao thức TCP. Bước đầu tiên của quá trình chuẩn bị truyền dữ liệu là phân mảnh dữ liệu, tức là chia nhỏ dòng dữ liệu thành các mảnh kích thước 16KB (hoặc nhỏ hơn). Những mảnh dữ liệu này sau đó có thểđược nén trước khi truyền. Sau đó bắt đầu quá trình tạo các bản ghi cho mỗi đơn vị dữ liệu bằng cách bổ xung thêm header, một số byte cho đủ kích thước qui định của bản ghi nếu kích thước bản ghi chưa đủ và cuối cùng là phần MAC.
MAC (Message Authentication Code) là mã xác thực thông điệp sử dụng để khi phát dữ liệu trong các phiên SSL. Phần header của mỗi bản ghi chứa 2 thông tin quan trọng đó là độ dài của bản ghi và độ dài của khối dữ liệu thêm vào phần dữ liệu gốc. Phần dữ liệu của một bản ghi gồm: dữ liệu gốc, các byte bổ xung cho đủ kích thước gói tin qui định,
giá trị MAC được sử dụng để kiểm chứng sự toàn vẹn của thông điệp chứa trong bản ghi gửi cùng với MAC đó. MAC là kết quả của một của một hàm băm theo một thuật toán bămđược qui định trước (ví dụ MD5 hoặc SHA-1).MAC được tính toán dựa trên việc áp dụng hàm băm trên các dữ liệu sau: khoá bí mật, dữ liệu gốc, phần thông tin bổ xung, số thứ tự.
Khoá bí mật ở đây có thể là khoá ghi MAC của client (client write MAC secret) hoặc của server (server write MAC secret) tuỳ thuộc vào ai là người tạo gói tin.
Sau khi nhận được một gói tin thì bên nhận tự tính lại giá trị MAC và so sánh với giá trị MAC chứa trong gói tin đó. Nếu hai giá trị MAC đó giống nhau có nghĩa là dữ liệu hông bị thay đổi trong quá trình truyền trên mạng. Độ dài của trường MAC phụ thuộc vào
Tiếp theo, phần dữ liệu cộng với MAC sẽđược mã hoá sử dụng phương pháp mã hoá (đối xứng) đã thoả thuận trước ví dụ DES hoặc triple DES. Như vậy là cả dữ liệu và MAC đều được mã. Phần dữ liệu đã được mã hoá đó được gắn thêm header bao gồm các trường sau:
Kiểu nội dung (content type): xác định dữ liệu nào chứa trong gói tin để quyết định xem giao thức nào ở lớp cao hơn sẽ chịu trách nhiệm xử lý dữ liệu của gói tin đó. Các giá trị có thể của trường này là: change_cipher_spec, alert, handshake và
application_data tham chiếu đến các giao thức tương ứng ở mức cao hơn.
Phiên bản chính (major version): phần chỉ số chính của phiên bản SSL đang sử dụng. Ví dụ với SSL 3.0 thì giá trị trường này là 3.
Phiên bản phụ (minor version): phần chỉ số phụ của phiên bản SSL đang sử dụng. Ví dụ với SSL 3.0 thì giá trị trường này là 0.
Sau khi tính toán xong các trường này, bản ghi đã được tạo xong và sẵn sàng để gửi đến cho máy đích. Toàn bộ quá trình chuẩn bị bản ghi trước khi gửi được mô tả trong hình 3.
Hình 3: Quá trình tạo một bản ghi của SSL Record Protocol