2.3. Bộ các giao thức trong SSL
2.3.2. Giao thức bản ghi SSL
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ã hố 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 tồ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. Q trình trên được mơ tả trong hình vẽ 2.13.
2.3.2.1. Khn 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à tồ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: Khn 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 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 q 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 q 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ã hố trước khi gửi lên đường truyền.
(1). Tính tốn mã xác thực thơng điệp (MAC)
SSL hỗ trợ hai thuật tốn tính tốn mã xác thực thơng điệp đó là MD5 và SHA. Giá trị băm sau khi tính tố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 tố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ơ đồ q trình tính tố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 tố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 tố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ã hố để đảm bảo tính bí mật khi truyền. SSL hỗ trợ hai kiểu mã hố, mã hố dịng và mã hố khối.
Với mã hố 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 tốn mã hóa dịng thuật tốn mã hóa khối