Tải bản đầy đủ (.pdf) (24 trang)

Bài giảng An ninh mạng: Bài 8 - Bùi Trọng Tùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.19 MB, 24 trang )

BÀI 7.

AN TỒN DỊCH VỤ WEB
HTTPS
Bùi Trọng Tùng,
Viện Cơng nghệ thông tin và Truyền thông,
Đại học Bách khoa Hà Nội

1

1. GIAO THỨC SSL/TLS
Bùi Trọng Tùng,
Viện Công nghệ thông tin và Truyền thông,
Đại học Bách khoa Hà Nội

2

CuuDuongThanCong.com

/>
1


SSL/TLS là gì?
• Sercure Socket Layer/Transport

Layer Security
• Nằm giữa các giao thức tầng
giao vận và tầng ứng dụng
• Cung cấp các cơ chế mã mật và
xác thực cho dữ liệu trao đổi


giữa các ứng dụng
• Các phiên bản: SSL 1.0, SSL
2.0, SSL 3.0, TLS 1.0 (phát triển
từ SSL 3.0)

SSL/TLS là gì?
• Gồm 2 giao thức con
• Giao thức bắt tay(handshake protocol): thiết lập kết nối

SSL/TLS
 Sử dụng các phương pháp mật mã khóa cơng khai để các bên

trao đổi khóa bí mật

• Giao thức bảo vệ dữ liệu(record protocol)
 Sử dụng khóa bí mật đã trao đổi ở giao thức bắt tay để bảo vệ dữ
liệu truyền giữa các bên

CuuDuongThanCong.com

/>
2


Giao thức bắt tay
ClientHello
ServerHello,
[Chứng thư số]S
[ServerKeyExchange]
[Yêu cầu chứng thư số]S

ServerHelloDone

C

S

[Chứng thư số]C
[ClientKeyExchange]
[Xác thực chứng thư]
Thỏa thuận thuật tốn mật mã
Hồn thành
Thỏa thuận thuật tốn mật mã
Hồn thành

Client Hello
ClientHello

Thơng tin giao thức mà client hỗ trợ:
• Phiên bản giao thức SSL/TLS
• Các thuật toán mật mã

C

CuuDuongThanCong.com

S

/>
3



Server Hello
Giá trị ngẫu nhiên
C, Versionc, suitec, Nc
ServerHello

C

• Phiên bản giao thức SSL/TLS cao
nhất mà 2 bên cùng hỗ trợ
• Thuật tốn mã hóa mạng nhất mà
2 bên cùng hỗ trợ

S

ServerKeyExchange
Giá trị ngẫu nhiên
C, Versionc, suitec, Nc
Versions, suites, Ns,
ServerKeyExchange

C

CuuDuongThanCong.com

Thuật toán trao đổi khóa, thơng
tin sinh khóa và/hoặc chứng thư
số của server (tùy thuộc thuật
tốn trao đổi khóa)


S

/>
4


ServerKeyExchange

ClientKeyExchange
C, Versionc, suitec, Nc

Versions, suites, Ns,
ClientKeyExchange
“ServerHelloDone”

C

ClientKeyExchange

S

Thuật tốn trao đổi khóa, thơng tin
sinh khóa và/hoặc chứng thư số của
client (tùy thuộc thuật tốn trao đổi
khóa)

CuuDuongThanCong.com

/>
5



ClientKeyExchange

Hoàn tất giao thức bắt tay
C, Versionc, suitec, Nc

Versions, suites, Ns,
ServerKeyExchange,
“ServerHelloDone”

C

S

ClientKeyExchange
Client và server chia sẻ thành công các thông tin sinh khóa
và sử dụng các thơng tin này để tạo khóa chính.
Khóa chính được sử dụng để trao đổi các khóa phiên

CuuDuongThanCong.com

/>
6


Các bộ thuật tốn mã hóa trên TLS 1.0

Bảo vệ dữ liệu trên kênh SSL/TLS


CuuDuongThanCong.com

/>
7


Một số cải tiến trên TLS 1.0
• Thuật tốn sinh khóa an tồn hơn: sử dụng 2 hàm
 Mở rộng giá trị bí mật
 Hàm giả ngẫu nhiên kết hợp 2 hàm băm MD5 và SHA-1 để sinh
thông tin tạo khóa
• Sử dụng các hàm HMAC thay thế cho MAC

Hàm mở rộng giá trị bí mật

CuuDuongThanCong.com

/>
8


Hàm giả ngẫu nhiên PRF

Sinh giá trị master-secret

CuuDuongThanCong.com

/>
9



Sinh thơng tin tạo khóa

Hàm HMAC trong TLS 3.0

CuuDuongThanCong.com

/>
10


2. GIAO THỨC HTTPS
Bùi Trọng Tùng,
Viện Công nghệ thông tin và Truyền thông,
Đại học Bách khoa Hà Nội

21

Giới thiệu chung về HTTPS
• Hạn chế của HTTP:
 Khơng có cơ chế để người dùng kiểm tra tính tin cậy của Web
server  lỗ hổng để kẻ tấn công giả mạo dịch vụ hoặc chèn mã
độc vào trang web HTML
 Khơng có cơ chế mã mật  lỗ hổng để kẻ tấn cơng nghe lén đánh
cắp thơng tin nhạy cảm
• Secure HTTP: Kết hợp HTTP và SSL/TLS:
 Xác thực
 Bảo mật

22


CuuDuongThanCong.com

/>
11


Thiết lập liên kết SSL/TLS
Chứng thư số
server

browser
client-hello

cert

Xác minh server-hello + server-cert (chứa khóa KUS)
servercert

Private
key

Thỏa thuận thơng số trao đổi khóa
Sinh
khóa bí
mật KS

Trao đổi khóa: E(KUS, KS)

KS


Thiết lập xong kết nối TLS
Thơng điệp HTTP được mã hóa với KS
23

Chứng thư số - Ví dụ

24

CuuDuongThanCong.com

/>
12


HTTP trên trình duyệt Web
Truy cập dịch vụ Web với HTTP

Khi click vào liên kết...

25

HTTPS trên trình duyệt Web
Truy cập Web với HTTPS

- Tồn bộ nội dung website (bao gồm
hình ảnh, CSS, Flash, scripts...) đã
được trình duyệt thẩm tra tính tồn vẹn
và nguồn gốc tin cậy.
- Mọi thơng tin trao đổi giữa trình duyệt

và BIDV được giữ bí mật.

CuuDuongThanCong.com

/>
26

13


Tại sao HTTPS an tồn?
• Chặn bắt dữ liệu
• Chèn mã độc vào nội dung website khi truyền từ server

tới trình duyệt web
• Tấn cơng DNS cache poisioning
 Client truy cập vào Web server của kẻ tấn cơng

• Tấn cơng DHCP Spoofing
 Client truy cập vào Web server của kẻ tấn cơng
• Tấn cơng định tuyến để chuyển hướng truy cập
• Tấn cơng man-in-the-middle
• Tấn cơng phát lại

27

Q trình xác minh chứng thư số
• Bước 1: Trình duyệt so sánh tên miền trong chứng thư số

(Subject CN)và tên miền trên địa chỉ URL

 Tên tường minh: dnsimple.com, hoặc
 Tên đại diện: *.dnsimple.com, dn*.dnsimple.com

• Bước 2: Trình duyệt kiểm tra thời gian hiệu lực của chứng

thư số
• Bước 3: Trình duyệt kiểm tra chứng thư số gốc của CA
chứng thực cho server
 Để xem các chứng thư số gốc trên trình duyệt Firefox

OptionsAdvancedView CertificatesAuthorities

• Bước 4: Trình duyệt sử dụng chứng thư số gốc của CA

để thẩm tra chữ ký số trên chứng thư của server
28

CuuDuongThanCong.com

/>
14


Chứng thư số gốc
• Được tích hợp sẵn trên trình duyệt

29

Chuỗi chứng thực


30

CuuDuongThanCong.com

/>
15


Chuỗi chứng thực
Certificate

Certificate

Certificate

“I’m

because I say so!”

“I’m

because

says so”

“I’m

because

says so”


Chuỗi xác thực từ chối chứng thư số nếu có bất kỳ
bước nào cho kết quả xác thực thất bại
31

Khơng tìm thấy chứng thư số gốc

Cịn an tồn
khơng khi người
dùng chấp nhận
cảnh báo?

32

CuuDuongThanCong.com

/>
16


Tấn cơng vào HTTPS
• Tấn cơng sslstrip: lợi dụng lỗ hổng chuyển từ truy cập

qua HTTP sang truy cập qua HTTPS (như thế nào?)

Truy cập dịch vụ Web với HTTP

Khi click vào liên kết...

33


Tấn công sslstrip
HTTP

SSL
attacker

Nội dung trả về từ
web server

web
server

Nội dung thay thế bởi
attacker

<a href=https://…>

<a href=http://…>
Location: https://...

Location: http://... (redirect)
<form action=https://… >  <form action=http://…>
• Các trang có lỗ hổng này: ebay.com, rất nhiều ngân hàng lớn
ở Việt Nam (Agribank, Vietinbank, Vietcombank, BiDV, ACB
bank...)
34

CuuDuongThanCong.com


/>
17


Tấn cơng sslstrip
• Thậm chí, trên các website hỗ trợ đầy đủ HTTPS, nhưng

có thể lợi dụng người dùng khơng cập nhật trình duyệt
phiên bản mới
• Thay fav icon

• Xóa cookie bằng cách chèn header “set-cookie”  người

dùng bắt buộc đăng nhập lại
 Phần lớn không phát hiện HTTPS  HTTP

35

Phòng chống: Strict Transport Security
(HSTS)
Strict-Transport-Security: max-age=31 106; includeSubDomains
(bỏ qua nếu liên kết khơng phải là HTTPS)

web
server

• Một trường trên tiêu đề của HTTPS Response, u cầu

trình duyệt ln kết nối với máy chủ qua HTTPS
• HSTS chỉ được chấp nhận trên các liên kết HTTPS

• Max-age: thời gian duy trì
• Kiểm tra danh sách các website hỗ trợ HSTS:
 chrome://net-internals/#hsts
 %APPDATA%\Mozilla\Firefox\Profiles\...\SiteSecurityServiceState.t

xt

36

CuuDuongThanCong.com

/>
18


CSP: upgrade-insecure-requests
• Các trang thường trộn lẫn các URL của tài ngun với

HTTPS
Ví dụ: <img src=“ />• Thêm vào tiêu đề trong HTTP Response
Content-Security-Policy: upgrade-insecure-requests
• Trình duyệt tự động chuyển các liên kết sử dụng HTTP
sang HTTPS
• Khơng áp dụng với thẻ <a>
<img src=“ />
<img src=“ />
<img src=“ />
<img src=“ />
<a href=“ />
<a href=“ />

<a href=“ />
<a href=“ />
Luôn sử dụng URL tương đối: <img src=“//site.com/img”>

37

Tấn cơng vào HTTPS
• Giao thức truy cập là HTTPS nhưng nội dung website khơng

được chứng thực đầy đủ
• Ví dụ:
<script src=“http://.../script.js>
<img src=“ />• Nguy cơ: Kẻ tấn cơng thay thế những nội dung này
• Cảnh báo trên trình duyệt
IE7:

Chrome(Các phiên bản cũ):

• Chính sách của Chrome: chặn CSS, mã Javascript, thẻ

<frame>
38

CuuDuongThanCong.com

/>
19


Tấn cơng lợi dụng website khơng được

chứng thực đầy đủ-Ví dụ

39

Tấn cơng vào HTTPS
• Sử dụng CA giả mạo để phát hành chứng thư giả mạo
• Người dùng sử dụng phiên bản trình duyệt khơng an tồn

 chứng thư gốc bị thay thế
GET

BadguyCert

ClientHello

attacker

BankCert
ClientHello

bank

ServerCert (Bank)

ServerCert (rogue)
(cert for Bank by a invalid CA)
SSL key exchange

k1


k1
HTTP data enc with k1

CuuDuongThanCong.com

SSL key exchange

k2

k2
HTTP data enc with k2

/>
40

20


Phát hành chứng thư số sai cách
• 2011: Comodo and DigiNotar CAs bị tấn công, phát hành

chứng thư số cho các tên miền của Gmail, Yahoo! Mail,

• 2013: TurkTrust phát hành chứng thư số cho gmail.com
(phát hiện nhờ cơ chế Dynamic HTTP public-key pinning)
• 2014: Indian NIC phát hành chứng thư số cho các tên
miền của Google
• 2015: MCS phát hành chứng thư số cho các tên miền
của Google
⇒ trình duyệt không phát cảnh báo khi kẻ tấn công thay

thế chứng thư số
41

Phịng chống chứng thư số giả mạo
• Dynamic HTTP public-key pinning:
 TOFU(Trust on First Use):
 Trường Public-Key-Pins trong tiêu đề của HTTP Response chỉ ra CA đã

cấp phát chứng thư số cho website
 Nếu các phiên tiếp theo, sử dụng chứng thư được chứng thực bởi CA

khác  từ chối

• Giao thức “Certificate Transparency” cho phép CA cơng

bố toàn bộ bản ghi nhật ký (log) về các chứng thư đã phát
hành
• Giao thức OCSP (Online Certificate Status Protocol)

42

CuuDuongThanCong.com

/>
21


HPKP – Ví dụ
Public-Key-Pins: max-age=2592000;
pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";

pin-sha256="LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=";
report-uri=" />• chrome://net-internals/#hsts
• />
43

Tấn cơng phishing
• Homograph attack: Lợi dụng hình dáng giống nhau của

một số ký tự. Ví dụ: vvesternbank, paypai, paypail,
paypa1...
• Semantic attack: lợi dụng các trình duyệt cũ khơng phân
biệt các dấu đặc biệt trên tên miền. Ví dụ: Kẻ tấn cơng có
thể mua tên miền badguy.cn và sử dụng tên miền con
www.pnc.com/webapp/homepage.var.cn
• Phịng chống: sử dụng chứng thư hỗ trợ chứng thực mở
rộng (Extended validation certificate)

44

CuuDuongThanCong.com

/>
22


Semantic attack (ví dụ)

45

Tấn cơng phishing (tiếp)

• Picture-in-picture attack: dựng một frame chứa cửa sổ

giao diện của một website đã được chứng thực lợi
dụng người dùng bất cẩn không quan sát khi duyệt web

46

CuuDuongThanCong.com

/>
23


Bài giảng sử dụng một số hình vẽ và ví dụ từ các bài
giảng:
• Computer and Network Security, Stanford University
• Computer Security, Berkeley University

47

CuuDuongThanCong.com

/>
24



×