Quá trình bắt tay của TLS có ba đặc tính cơ bản sau:
+ Định danh của điểm kết nối có thể đƣợc xác thực bằng cách sử dụng mã hóa bất đối xứng hoặc khóa công khai (ví dụ nhƣ Rivest-Shamir-Adleman - RSA, Digital Signature Standard - DSS…). Việc xác thực có thể tùy chọn thực hiện, nhƣng thƣờng yêu cầu cho ít nhất một trong các điểm kết nối.
+ Quá trình thỏa thuận khóa bí mật chia sẻ đƣợc an toàn: các thỏa thuận bí mật không để nghe trộm và trong bất kỳ kết nối xác thực nào, khóa bí mật không thể bị lấy trộm ngay cả khi một kẻ tấn công có thể xâm nhập vào giữa kết nối.
+ Quá trình thỏa thuận đáng tin cậy: Không kẻ tấn công nào có thể thay đổi quá trình thỏa thuận mà không bị phát hiện bởi các bên tham gia kết nối.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CLIENT SERVER
Handshake: Client Hello
Handshake: Client Hello Handshake: Certificate
Handshake: Client Hello Done
Handshake: Client Key Exchange
Handshake: Finished
Handshake: Finished
Server’s Certificate and Public Key Server’s Public Key Encrypt Server’s Public Key Decrypt Pre-Master Secret KDF Master Secret Generate MAC Check Integrity KDF
Hình 2.2: Quá trình bắt tay giữa Client và Server
- Bản tin Client Hello và Server Hello 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 đƣợc 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.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Client dùng Master key tạo ra MAC (Message Authentiacation 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ừ Client trƣớc đó rồi gửi kèm theo bản tin Finished tới Server.
- 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 key.
Hình 2.3: Dữ liệu lớp trên đóng gói bởi TLS/SSL