an toàn và bảo mật hệ thống thông tin -c10: secure sockets layer
TRANSCRIPT
2
Nội dung
InfSec, PTIT 2013
Chức năng của SSL Cấu trúc SSL Tấn công SSL
3
Tổng quan SSL
InfSec, PTIT 2013
Đượ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)
4
Chức năng của SSL
InfSec, PTIT 2013
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)
5
Cấu trúc SSL
InfSec, PTIT 2013
SSL Handshake
protocol
SSL Change Cipher Spec
protocol
SSL Change
Alert protocol
HTTP
SSL Record protocol
TCP
IP
6
Cấu trúc SSL
InfSec, PTIT 2013
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)
7
Connection và session
InfSec, PTIT 2013
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.
8
Session state
InfSec, PTIT 2013
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
9
Connection state
InfSec, PTIT 2013
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
10
SSL record protocol
InfSec, PTIT 2013
Cung cấp hai dịch vụ cơ bản: Confidentiality Message integrity
11
SSL record protocol
InfSec, PTIT 2013
12
SSL record protocol
InfSec, PTIT 2013
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.
13
SSL record protocol
InfSec, PTIT 2013
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)
Lặp lại 48 lần
14
SSL record protocol
InfSec, PTIT 2013
Mã hóa:
15
SSL record protocol
InfSec, PTIT 2013
Cấu trúc SSL record header
16
SSL Change Cipher Spec
InfSec, PTIT 2013
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
17
SSL Alert protocol
InfSec, PTIT 2013
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
18
SSL alert protocol
InfSec, PTIT 2013
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.
19
SSL alert protocol
InfSec, PTIT 2013
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)
20
SSL Handshake protocol
InfSec, PTIT 2013
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)
21
SSL Handshake protocol
InfSec, PTIT 2013
Phase 1
Client
Server
client_hello = (version, random, session id, cipher suite, compression method)server_hello = (version, random, session id, cipher suite, compression method)
22
SSL Handshake protocol
InfSec, PTIT 2013
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
23
SSL Handshake protocol
InfSec, PTIT 2013
Phase 3 Client
Server
-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)
24
SSL Handshake protocol
InfSec, PTIT 2013
Phase 4 Client
Server
-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
25
SSL Handshake protocol
InfSec, PTIT 2013
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 Diffie-
Hellman với khóa tức thời. Anonymous Diffie-Hellman: Dùng Diffie-
Hellman nguyên thủy.
26
Tấn công kết nối SSL
InfSec, PTIT 2013
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