26
GV: Lê Phúc, khoa CNTT Email: [email protected] Secure Sockets Layer InfSec, PTIT 2013

An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

Embed Size (px)

Citation preview

Page 1: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

InfSec, PTIT 2013

GV: Lê Phúc, khoa CNTTEmail: [email protected]

Secure Sockets Layer

Page 2: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

2

Nội dung

InfSec, PTIT 2013

Chức năng của SSL Cấu trúc SSL Tấn công SSL

Page 3: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 4: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 5: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 6: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 7: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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.

Page 8: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 9: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 10: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

10

SSL record protocol

InfSec, PTIT 2013

Cung cấp hai dịch vụ cơ bản: Confidentiality Message integrity

Page 11: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

11

SSL record protocol

InfSec, PTIT 2013

Page 12: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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.

Page 13: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 14: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

14

SSL record protocol

InfSec, PTIT 2013

Mã hóa:

Page 15: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

15

SSL record protocol

InfSec, PTIT 2013

Cấu trúc SSL record header

Page 16: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 17: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 18: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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.

Page 19: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 20: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 21: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 22: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 23: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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)

Page 24: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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

Page 25: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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.

Page 26: An toàn và bảo mật hệ thống thông tin -C10: secure sockets layer

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