Giao thức bản ghi SSL tiếp nhận các thông điệp từ các tầng trên, phân đoạn dữ liệu, nén dữ liệu nếu nó được hỗ trợ, bổ sung MAC, mã hoá dữ liệu, đóng rồi chuyển xuống tầng dưới. Tại nơi nhận, dữ liệu được xử lý ngược lại, nó được giải mã, kiểm tra tính toàn vẹn dữ liệu, giải nén, ghép đoạn và chuyển dữ liệu nên tầng trên. Quá trình trên được mô tả trong hình vẽ 2.13.
2.3.2.1. Khuôn dạng thông điệp bản ghi SSL
Khuôn dạng thông điệp của giao thức bản ghi SSL gồm hai phần: phần tiêu đề và phần nội dung. Phần tiêu đề gồm các trường Content type, Version, Length. Phần nội dung là toàn bộ thông điệp của giao thức tầng trên được đóng gói. Kích thước và ý nghĩa các trường được liệt kê trong bảng 2.7
Hình 2.14: Khuôn dạng thông điệp bản ghi SSL Bảng 2.7: Các trƣờng trong thông điệp bản ghi SSL
Trường Mô tả Kích thước
ContentType 1 byte Kiểu thông điệp giao thức tầng trên được chứa trong thông điệp bản ghi SSL
Version 2 bytes Phiên bản của giao thức SSL
Length 2 bytes
Độ dài thông điệp của giao thức tầng trên. Đây là một số nguyên 16 bit, giá trị của nó không quá 214 (16384)
ProtocolMessage n bytes
Dữ liệu thực của các thông điệp tầng trên, kích thước không quá 16KB, bao gồm cả mã xác thực thông điệp MAC
Trường Content type cho biết thông điệp được đóng gói là của giao thức nào.
Bảng 2.8: Các kiểu nội dung tầng bản ghi
TypeValue Protocol
20 ChangeCipherSpec protocol
21 Alert protocol
22 Handshake protocol
23 Application protocol data
2.3.2.2. Bảo vệ thông điệp bản ghi SSL.
Sau khi phân đoạn tại tầng bản ghi dữ liệu được bổ sung mã xác thực MAC và mã hoá trước khi gửi lên đường truyền.
(1). Tính toán mã xác thực thông điệp (MAC)
SSL hỗ trợ hai thuật toán tính toán mã xác thực thông điệp đó là MD5 và SHA. Giá trị băm sau khi tính toán đều được bổ sung vào dữ liệu ban đầu, giá trị độ dài của một bản ghi SSL bao gồm cả độ dài dữ liệu lẫn độ dài MAC. Các hình 2.15, 2.16 mô tả mã xác thực MAC với các thuật toán MD5 và SHA-1.
Hình 2.15: Bảo vệ thông điệp Hình 2.16: Bảo vệ thông điệp với thuật toán MD5 với thuật toán SHA
Sơ đồ quá trình tính toán MAC được mô tả trong hình 2.17, gồm 2 giai đoạn:
Giai đoạn 1 được bắt đầu với việc tính toán giá trị băm từ các giá trị MAC write secret, padding (dữ liệu phụ), 64 bit sequence number (số tuần tự), 16 bit độ dài nội dung, và nội dung thông điệp. Giá trị padding là 001100110, được lặp lại 48 lần với MD5 và 40 lần với SHA.
Hình 2.17: Sơ đồ tính toán MAC trong SSL
Giai đoạn 2 hệ thống sử dụng MAC write secret, padding, và giá trị băm của giai đoạn 1. Padding có giá trị là 01011100, được lặp lại 48 lần với MD5 và 40 lần với SHA. Kết quả băm trong giai đoạn 2 chính là giá trị MAC được bổ sung vào thông điệp.
MAC secret có thể là giá trị bên máy chủ hoặc giá trị máy khách tuỳ thuộc vào bên nào gửi tin. Sequence number là số thông điệp mà hai bên đã trao đổi, giá trị khởi đầu của nó là 0 với thông điệp ChangeCipherSpec và được tăng thêm 1 mỗi khi thông điệp bản ghi SSL được gửi.
(2). Mã hoá dữ liệu
Cả dữ liệu và mã xác thực MAC được mã hoá để đảm bảo tính bí mật khi truyền. SSL hỗ trợ hai kiểu mã hoá, mã hoá dòng và mã hoá khối.
Với mã hoá khối kích thước của dữ liệu phải là bội số của kích thức khối, chính vì vậy các dữ liệu phụ có thể được thêm vào để đảm bảo điều kiện này. Để nhận được dữ liệu, bên nhận phải biết vị trí cuối cùng của dữ liệu thật và vị trí đầu của dữ liệu thêm vào, tham số độ dài phần dữ liệu phụ được thêm vào cuối phần dữ liệu để xác định độ dài của dữ liệu phụ. Căn cứ vào tham số độ dài này, bên nhận đếm ngược trở lại đầu khối để xác định vị trí của dữ liệu thật.
Hình 2.18: Mã hóa thông điệp Hình 2.19: Mã hóa thông điệp với thuật toán mã hóa dòng thuật toán mã hóa khối