10/15/2013
Secure Sockets Layer
GV: Lê Phúc, khoa CNTT Email:
[email protected]
InfSec, PTIT 2013
Nội dung
2
Chức năng của SSL Cấu trúc SSL Tấn công SSL
InfSec, PTIT 2013
1
10/15/2013
Tổng quan SSL
3
Được phát triển bởi Netscape Phiên bản đầu tiên (SSL 1.0): không công bố SSL 2.0: Công bố năm 1994, chứa nhiều lỗi bảo mật SSL 3.0: Công bố năm 1996. SSL 3.1: năm 1999, được chuẩn hóa thành TLS 1.0 (Transport Layer Security) Hiện nay: SSL 3.2 (tương đương TLS 1.1)
InfSec, PTIT 2013
Chức năng của SSL
4
Xác thực đầu cuối (peer authentication) Xác thực dữ liệu (data integrity) Mã hóa dữ liệu (data confidentiality)
InfSec, PTIT 2013
2
10/15/2013
Cấu trúc SSL
5
SSL Handshake protocol
SSL Change Cipher Spec protocol
SSL Change Alert protocol
HTTP
SSL Record protocol
TCP
IP
InfSec, PTIT 2013
Cấu trúc SSL
6
SSL Handshake protocol: Giao thức bắt tay, thực hiện khi bắt đầu kết nối SSL Change Cipher Spec protocol: Giao thức cập nhật thông số mã hóa SSL Alert protocol: Giao thức cảnh báo. SSL Record protocol: Giao thức chuyển dữ liệu (thực hiện mã hóa và xác thực)
InfSec, PTIT 2013
3
10/15/2013
Connection và session
7
Kết nối (connection): quan hệ truyền dữ liệu giữa hai hệ thống ở lớp vận chuyển Phiên (session): Quan hệ bảo mật giữa hai hệ thống. Mỗi session có thể khởi tạo nhiều connection.
InfSec, PTIT 2013
Session state
8
Trạng thái của phiên làm việc được xác định bằng các thông số:
Session identifier: nhận dạng phiên Peer Certificate: Chứng chỉ số của đối tác Compression method: thuật tóan nén Cipher spec: thông số mã hóa và xác thực Master secret: khóa dùng chung Is resumable: có phục hồi kết nối không
InfSec, PTIT 2013
4
10/15/2013
Connection state
9
Trạng thái kết nối xác định với các thông số:
Server and client random: chuỗi byte ngẫu nhiên Server write MAC secret: khóa dùng cho thao tác MAC phía server Client write MAC secret: khóa dùng cho thao tác MAC phía client Server write key: Khóa mã hóa phía server Client write key: Khóa mã hóa phía client IV và sequence number
InfSec, PTIT 2013
SSL record protocol
10
Cung cấp hai dịch vụ cơ bản:
Confidentiality Message integrity
InfSec, PTIT 2013
5
10/15/2013
SSL record protocol
11
InfSec, PTIT 2013
SSL record protocol
12
Phân đọan (fragmentation): mỗi khối dữ liệu gốc được chia thành đọan, kích thước mỗi đọan tối đa = 214 byte. Nén (compression): có thể sử dụng các thuật tóan nén để giảm kích thước dữ liệu truyền đi, tuy nhiên trong các phiên bản thực thi ít chấp nhận thao tác này.
InfSec, PTIT 2013
6
10/15/2013
SSL record protocol
13
Tạo mã xác thực: hash(MAC_write_secret || pad_2 || hash(MAC_write_secret || pad_1 || seq_num || SSLCompressed.type || SSLCompressed.length || SSLCompressed.fragment))
Pad_1 = 0011 0110 (0x36) Pad_2 = 0101 1100 (0x5C)
InfSec, PTIT 2013
Lặp lại 48 lần
SSL record protocol
14
Mã hóa:
InfSec, PTIT 2013
7
10/15/2013
SSL record protocol
15
Cấu trúc SSL record header
InfSec, PTIT 2013
SSL Change Cipher Spec
16
Có chức năng cập nhật thông số mã hóa cho cho kết nối hiện tại. Chỉ gồm một message duy nhất có kích thước 1 byte được gởi đi dùng giao thức SSL record
InfSec, PTIT 2013
8
10/15/2013
SSL Alert protocol
17
Trao đổi các thông tin cảnh báo sự cố giữa hai đầu kết nối. Mỗi message cảnh báo gồm 2 byte: byte đầu cho biết mức độ cảnh báo (thường hay nghiêm trọng) Cảnh báo thường (warning): phiên làm việc vẫn duy trì nhưng không tạo thêm kết nối mới. Cảnh báo nghiêm trọng (fatal): kết thúc phiên làm việc hiện hành
InfSec, PTIT 2013
SSL alert protocol
18
Một số bản tin cảnh báo trong SSL:
unexpected_message: bản tin không phù hợp bad_record_mac: MAC không đúng decompression_failure: Giải nén không thành công handshake_failure: Không thương lượng được các thông số bảo mật. illegal_parameter: Bản tin bắt tay không hợp lệ close_notify: Thông báo kết thúc kết nối.
InfSec, PTIT 2013
9
10/15/2013
SSL alert protocol
19
no_certificate: Không có certificate để cung cấp theo yêu cầu. bad_certificate: Certificate không hợp lệ (chữ ký sai) unsupported_certificate: Kiểu certificate không chuẩn certificate_revoked: Certificate đã bị thu hồi. certificate_expired: Certificate hết hạn. certificate_unknown: Không xử lý được certificate (khác với các lý do ở trên)
InfSec, PTIT 2013
SSL Handshake protocol
20
Là phần quan trọng nhất của SSL Có chức năng thỏa thuận các thông số bảo mật giữa hai thực thể. Thủ tục bắt tay phải thực hiện trước khi trao đổi dữ liệu. SSL handshake gồm 4 giai đọan (phase)
InfSec, PTIT 2013
10
10/15/2013
SSL Handshake protocol
21
Phase 1
Client Server
client_hello = (version, random, session id, cipher suite, compression method) server_hello = (version, random, session id, cipher suite, compression method)
InfSec, PTIT 2013
SSL Handshake protocol
22
Phase 2
-Certificate: Chứng chỉ của server. -Server_key_exchange:Thông số trao đổi khóa (***) -Certificate_request: yêu cầu client gởi chứng chỉ -Server_hello_done: kết thúc thương lượng phía server
Client
Server
InfSec, PTIT 2013
11
10/15/2013
SSL Handshake protocol
23
Phase 3
-Certificate: Chứng chỉ của client -Client_key_exchange:Thông số trao đổi khóa (***) -Certificate_verify: thông tin xác minh chứng chỉ của client (xác thực khóa PR của client)
Client
Server
InfSec, PTIT 2013
SSL Handshake protocol
24
Phase 4
-Change_cipher_spec: cập nhật thông số mã -Finish: kết thúc quá trình bắt tay thành công
Client
Server
InfSec, PTIT 2013
12
10/15/2013
SSL Handshake protocol
25
Trao đổi khóa trong SSL handshake: Dùng RSA (certificate chứa PU) Fixed Diffie-Hellman: Dùng Diffie-Hellman với khóa cố định. Ephemeral Diffie-Hellman: Dùng DiffieHellman với khóa tức thời. Anonymous Diffie-Hellman: Dùng DiffieHellman nguyên thủy.
InfSec, PTIT 2013
Tấn công kết nối SSL
26
Nếu chặn được các thông số của quá trình trao đổi khóa Diffie-Hellman, có thể thu được khóa bí mật bằng kỹ thuật Man-in-the-middle. Dùng khóa bí mật để giải mã thông tin của giao thức SSL record
InfSec, PTIT 2013
13