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

Post on 09-Jan-2017

363 views 2 download

Transcript of 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: lephuc@ptithcm.edu.vn

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

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