An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS

• 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)

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 1

Trang 1

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 2

Trang 2

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 3

Trang 3

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 4

Trang 4

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 5

Trang 5

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 6

Trang 6

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 7

Trang 7

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 8

Trang 8

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 9

Trang 9

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 24 trang minhkhanh 5380
Bạn đang xem 10 trang mẫu của tài liệu "An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS

An ninh mạng - Bài 7: An toàn dịch vụ web HTTPS
1BÀI 7.
AN TOÀ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 https://fb.com/tailieudientucntt
2SSL/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 https://fb.com/tailieudientucntt
3Giao thức bắt tay
C
ClientHello
ServerHello, 
[Chứng thư số]S
[ServerKeyExchange]
[Yêu cầu chứng thư số]S
ServerHelloDone
S[Chứng thư số]C
[ClientKeyExchange]
[Xác thực chứng thư]
Hoàn thành
Thỏa thuận thuật toán mật mã
Hoàn thành
Thỏa thuận thuật toán mật mã
Client Hello
C
ClientHello
S
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ã
CuuDuongThanCong.com https://fb.com/tailieudientucntt
4Server Hello
C
C, Versionc, suitec, Nc
ServerHello
S
• Phiên bản giao thức SSL/TLS cao 
nhất mà 2 bên cùng hỗ trợ
• Thuật toán mã hóa mạng nhất mà 
2 bên cùng hỗ trợ
Giá trị ngẫu nhiên
ServerKeyExchange
C
Versions, suites, Ns,
ServerKeyExchange
SThuậ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 
toán trao đổi khóa)
C, Versionc, suitec, Nc
Giá trị ngẫu nhiên
CuuDuongThanCong.com https://fb.com/tailieudientucntt
5ServerKeyExchange
ClientKeyExchange
C
Versions, suites, Ns,
ClientKeyExchange
“ServerHelloDone”
S
C, Versionc, suitec, Nc
ClientKeyExchange
Thuật toá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 toán trao đổi 
khóa)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
6ClientKeyExchange
Hoàn tất giao thức bắt tay
C
Versions, suites, Ns,
ServerKeyExchange,
“ServerHelloDone”
S
C, Versionc, suitec, Nc
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 https://fb.com/tailieudientucntt
7Các bộ thuật toán mã hóa trên TLS 1.0
Bảo vệ dữ liệu trên kênh SSL/TLS
CuuDuongThanCong.com https://fb.com/tailieudientucntt
8Một số cải tiến trên TLS 1.0
• Thuật toán sinh khóa an toà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 https://fb.com/tailieudientucntt
9Hàm giả ngẫu nhiên PRF
Sinh giá trị master-secret
CuuDuongThanCong.com https://fb.com/tailieudientucntt
10
Sinh thông tin tạo khóa
Hàm HMAC trong TLS 3.0
CuuDuongThanCong.com https://fb.com/tailieudientucntt
11
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 https://fb.com/tailieudientucntt
12
Thiết lập liên kết SSL/TLS
23
browser server
Private 
key
client-hello
server-hello + server-cert (chứa khóa KUS)
Thỏa thuận thông số trao đổi khóa
Thiết lập xong kết nối TLS
cert
Trao đổi khóa: E(KUS, KS)
Sinh 
khóa bí 
mật KS
KS
Thông điệp HTTP được mã hóa với KS
Chứng thư số
Xác minh 
server-
cert
Chứng thư số - Ví dụ
24
CuuDuongThanCong.com https://fb.com/tailieudientucntt
13
HTTP trên trình duyệt Web
25
Truy cập dịch vụ Web với HTTP
Khi click vào liên kết...
HTTPS trên trình duyệt Web
26
Truy cập Web với HTTPS
- Toà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 toà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 https://fb.com/tailieudientucntt
14
Tại sao HTTPS an toà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
Quá 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 https://fb.com/tailieudientucntt
15
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 https://fb.com/tailieudientucntt
16
Chuỗi chứng thực
31
Certificate
“I’m because says so”
Certificate
“I’m because says so”
“I’m because I say so!”
Certificate
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
Không tìm thấy chứng thư số gốc
32
Còn an toàn 
không khi người 
dùng chấp nhận 
cảnh báo?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
17
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?)
33
Truy cập dịch vụ Web với HTTP
Khi click vào liên kết...
Tấn công sslstrip
Location: https://... Location:  (redirect)
• 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
web
serverattacker
SSLHTTP
Nội dung trả về từ 
web server
Nội dung thay thế bởi 
attacker
CuuDuongThanCong.com https://fb.com/tailieudientucntt
18
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)
• Một trường trên tiêu đề của HTTPS Response, yêu cầu 
trình duyệt luôn 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
web
server
Strict-Transport-Security: max-age=31 106; includeSubDomains
(bỏ qua nếu liên kết không phải là HTTPS)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
19
CSP: upgrade-insecure-requests
• Các trang thường trộn lẫn các URL của tài nguyên với 
HTTPS
Ví dụ: 
• 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ẻ 
37
Luôn sử dụng URL tương đối: 
Tấn công vào HTTPS
38
• Giao thức truy cập là HTTPS nhưng nội dung website không 
được chứng thực đầy đủ
• Ví dụ:
• 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 
• Chính sách của Chrome: chặn CSS, mã Javascript, thẻ 
IE7: Chrome(Các phiên bản cũ):
CuuDuongThanCong.com https://fb.com/tailieudientucntt
20
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 toàn
 chứng thư gốc bị thay thế
40
bankattacker
ClientHello ClientHello
BankCertBadguyCert
ServerCert (Bank)ServerCert (rogue)
GET https://bank.com
SSL key exchange SSL key exchange
k1 k1 k2 k2
HTTP data enc with k1 HTTP data enc with k2
(cert for Bank by a invalid CA)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
21
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 https://fb.com/tailieudientucntt
22
HPKP – Ví dụ
43
Public-Key-Pins: max-age=2592000;
pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";
pin-sha256="LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=";
report-uri="https://example.net/pkp-report"
• chrome://net-internals/#hsts
• https://dxr.mozilla.org/mozilla-
central/source/security/manager/tools/PreloadedHPKPins.json
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 https://fb.com/tailieudientucntt
23
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 https://fb.com/tailieudientucntt
24
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 https://fb.com/tailieudientucntt

File đính kèm:

  • pdfan_ninh_mang_bai_7_an_toan_dich_vu_web_https.pdf