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.15.
Phân đoạn dữ liệu Dữ liệu ứng dụng
Nén dữ liệu
Mã hoá dữ liệu Bổ sung tiêu
đề SSL
Hình vẽ 2.15 Các bước xử lý dữ liệu trong giao thức bản ghi SSL Bổ sung mã
xác thực MAC
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 ([6]).
Protocol Messages
Message Authentication Code (Option)
Hình 2.16 Khuôn dạng thông điệp bản ghi SSL
Encrypted (Option) Content
Bảng 2-7: Các trường trong thông điệp bản ghi SSL Trường Kích thước Mô tả
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 liệt kê các giá trị có thể của trường này
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 nê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.17, 2.18 mô tả mã xác thực MAC với các thuật toán MD5 và SHA-1.
Hình 2.17 Bảo vệ thông điệp với
thuật toán MD5 Ver: 3 0 Application Data MAC (MD5 - 16 bytes) E nc ry pt ed
Hình 2.18 Bảo vệ thông điệp với
thuật toán SHA
Application Data MAC (SHA-20 bytes) E nc ry pt ed Lengt h Cont: 23 Ver: 3 0 Lengt h Cont: 23
Sơ đồ quá trình tính toán MAC được mô tả trong hình 2.20, 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.
MAC secret48 bytes of 0x36 Seq.num.
MAC secret hash
MAC
Hình 2.19 Sơ đồ tính toán MAC trong SSL
Proto.type Msg.len. Massge data
48 bytes of 0x5C
MD5
MD5
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.
Cont:
23 Length..
Hình 2.20 Mã hoá thông điệp với
thuật toán mã hoá dòng Ver: 3 0 Application Data MAC E nc ry pt ed Cont: 23 Ver: 3 0 Length.. Application Data MAC E nc ry pt ed
Hình 2.21 Mã hoá thông điệp với
thuật toán mã hoá khối Message
padding Pad len