4. Cấu trúc luận văn
3.5.1. Trao đổi khóa và bảo mật cho các gói tin báo hiệu
TLS dựa trên SSL lớp 3, chuẩn hóa bởi IETF. TLS cung cấp một kênh bảo mật, trong suốt giữa hai đầu cuối. “Trong suốt” ở đây có nghĩa là dữ liệu đi qua kênh này không bị thay đổi, và nó cho phép các giao thức chạy trên TCP cũng có thể chạy trên TLS. Vì vậy, TLS nằm ngay phía trên giao thức TCP và dưới SIP hay nói cách khác là SIP được mã hóa bởi TLS và truyền qua kết nối TCP.
Nhìn chung, TLS được chọn để bảo mật các bản tin báo hiệu của SIP. SDU (Service Data Unit) từ lớp trên được mã hóa trước khi truyền đi, còn phía bên kia PDU (Protocol Data Unit) được giải mã và chuyển lên lớp bên trên. Hai phía đều phải có chứng chỉ hợp lệ do CA (Certificate Authority) cấp cho quá trình bắt tay của TLS.
Chứng chỉ và trao đổi khóa
Quá trình bắt tay giữa client và server nhằm thương lượng các thuật toán bảo vệ dữ liệu và tạo một số khóa mật mã dùng bởi các thuật toán này.
KDF
Handshake: Client Hello
Handshake: Client Hello Handshake: Certificate
Handshake: Client Hello Done
Handshake: Client Key Exchange
Handshake: Finished Handshake: Finished KDF Pre-Master Secret Check Integrity Generate MAC Server’s Public Key Encrypt Master Secret Generate MAC Server’s Certifidate and Public Key
Server Client
Decrypt Server’s Public Key
Hình 3.10: Quá trình bắt tay giữa client và server trong SSL
Bản tin ClientHello và ServerHello trao đổi danh sách các thuật toán sẽ sử dụng.
Chứng chỉ của server và khóa công khai được chứa trong bản tin chứng chỉ.
Khi client nhận bản tin chứng chỉ, nó sẽ có khóa công khai và dùng khóa này để mã hóa một khóa mật Pre-Master do nó tự tạo ra và gửi kèm theo bản tin
ClientKeyExchange tới server. Trong khi đó, KDF (Key Derivation Function) sẽ tạo ra một master key từ khóa mật Pre-Master.
Phía server, bản tin ClientKeyExchange được giải mã bằng khóa riêng của server, có được khóa mật Pre-Master và dùng cùng KDF để tạo ra master key.
Client dùng master key tạo ra tạo ra MAC (Message Authentication Code) của toàn bộ bản tin mà nó nhận được từ server trước đó rồi gửi kèm theo bản tin
Finished tới server.
Server dùng master key tạo ra một MAC của toàn bộ bản tin mà nó nhận được từ
Cả client và server kiểm tra tính toàn vẹn của giá trị MAC với các bản tin chúng đã gửi. Nếu đúng thì cả hai có chung khóa mật Master
Upper Layer Data
Data Fragment MAC Data Fragment MAC
Encrypted Data and MAC Record
Header Encrypted Data and MAC
Record Header
Encrypt Encrypt
Hình 3.11: Dữ liệu lớp trên đóng gói bởi TLS/SSL