Secure Sockets Layer
Bảo mật trong mơ hình
TCP/IP
Bảo mật
lớp mạng
với IPSec
Bảo mật
lớp vận
chuyển với
SSL
Nhiều ứng
dụng bảo
mật ở lớp
ứng dụng
Information security, PTITHCM, 2012
Giao thức bảo mật SSL
(Secure Sockets Layer)
Đượ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)
Information security, PTITHCM, 2012
Cơng dụng của SSL
Mã hóa dữ liệu và xác thực cho dịch
vụ web
Mã hóa dữ liệu và xác thực cho mail
(SMTP và POP)
Bảo mật cho FTP và các ứng dụng
khác
Thực thi SSL không “trong suốt” với
ứng dụng như IPSec.
Information security, PTITHCM, 2012
Cấu trúc SSL
Information security, PTITHCM, 2012
Cấu trúc SSL
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)
Information security, PTITHCM, 2012
Connection và session
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.
Giữa hai hệ thống có thể tồn tại nhiều
connection => có thể tồn tại nhiều
session theo lý thuyết.
Information security, PTITHCM, 2012
Session state
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
Information security, PTITHCM, 2012
Connection state
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
Information security, PTITHCM, 2012
Giao thức SSL record
Cung cấp hai dịch vụ cơ bản:
Confidentiality
Message integrity
Information security, PTITHCM, 2012
Giao thức SSL record
Information security, PTITHCM, 2012
Giao thức SSL record
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.
Information security, PTITHCM, 2012
Giao thức SSL record
Tạo mã xác thực (MAC)
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)
Lặp lại 48 lần
Pad_2 = 0101 1100 (0x5C)
Information security, PTITHCM, 2012
Giao thức SSL record
Mã hóa
Information security, PTITHCM, 2012
Giao thức SSL record
Cấu trúc tiêu đề SSL record
Information security, PTITHCM, 2012
Giao thức SSL Change Cipher
Spec
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
Information security, PTITHCM, 2012
Giao thức SSL Alert
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
Information security, PTITHCM, 2012
Giao thức SSL Alert
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.
Information security, PTITHCM, 2012
Giao thức SSL Alert
Một số bản tin cảnh báo trong SSL (tt):
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)
Information security, PTITHCM, 2012
Giao thức SSL handshake
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)
Information security, PTITHCM, 2012
Giao thức SSL handshake
Phase 1:
Client
Server
client_hello = (version, random, session id, cipher suite,
compression method)
server_hello = (version, random, session id, cipher suite,
compression method)
Information security, PTITHCM, 2012
Giao thức SSL handshake
Phase 2:
Client
-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
Information security, PTITHCM, 2012
Server
Giao thức SSL handshake
Phase 3:
Client
-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)
Information security, PTITHCM, 2012
Server
Giao thức SSL handshake
Phase 4:
Client
-Change_cipher_spec: cập nhật
thông số mã
-Finish: kết thúc q trình bắt tay
thành cơng
Information security, PTITHCM, 2012
Server
Giao thức SSL handshake
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.
Information security, PTITHCM, 2012