Bài giảng An ninh mạng - Bài 8: An toàn dịch vụ web HTTPS - Bùi Trọng Tùng

BÀ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  
Viện Công nghệ thông tin và Truyền thông,  
Đại học Bách khoa Hà Nội  
2
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  
•
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  
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  
[Chứng thư số]C  
[ClientKeyExchange]  
[Xác thực chứng thư]  
S
C
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ã  
Hoà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ã  
S
C
3
Server Hello  
Giá trị ngẫu nhiên  
C, Versionc, suitec, Nc  
ServerHello  
• 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ợ  
S
C
ServerKeyExchange  
Giá trị ngẫu nhiên  
C, Versionc, suitec, Nc  
Versions, suites, Ns,  
ServerKeyExchange  
S
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  
toán trao đổi khóa)  
C
4
ServerKeyExchange  
ClientKeyExchange  
C, Versionc, suitec, Nc  
Versions, suites, Ns,  
ClientKeyExchange  
“ServerHelloDone”  
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)  
5
ClientKeyExchange  
Hoàn tất giao thức bắt tay  
C, Versionc, suitec, Nc  
Versions, suites, Ns,  
ServerKeyExchange,  
“ServerHelloDone”  
C
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  
6
Cá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  
7
Mộ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  
8
Hàm giả ngẫu nhiên PRF  
Sinh giá trị master-secret  
9
Sinh thông tin tạo khóa  
Hàm HMAC trong TLS 3.0  
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  
•
Xác thực  
Bảo mật  
22  
11  
Thiết lập liên kết SSL/TLS  
Chứng thư số  
server  
browser  
client-hello  
cert  
Xác minh  
server-  
cert  
server-hello + server-cert (chứa khóa KUS)  
Private  
key  
Thỏa thuận thông số trao đổi khóa  
Trao đổi khóa: E(KUS, KS)  
Sinh  
khóa bí  
mật 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  
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  
- 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.  
26  
13  
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ố  
•
chứng thực cho server  
Để xem các chứng thư số gốc trên trình duyệt Firefox  
OptionsAdvancedView CertificatesAuthorities  
• 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  
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  
15  
Chuỗi chứng thực  
Certificate  
“I’m  
because I say so!”  
Certificate  
“I’m  
because  
because  
says so”  
Certificate  
“I’m  
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 toàn  
không khi người  
dùng chấp nhận  
cảnh báo?  
32  
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...  
Tấn công sslstrip  
HTTP  
SSL  
web  
server  
attacker  
Nội dung trả về từ  
Nội dung thay thế bởi  
attacker  
web server  
<a
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  
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  
web  
server  
(bỏ qua nếu liên kết không phải là HTTPS)  
• 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  
•
• Kiểm tra danh sách các website hỗ trợ HSTS:  
chrome://net-internals/#hsts  
%APPDATA%\Mozilla\Firefox\Profiles\...\SiteSecurityServiceState.t  
xt  
36  
18  
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ụ: <img src=“http://site.com/img”>  
• 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=“http://site.com/img”>  
<img src=“http://othersite.com/img”>  
<a href=“http://site.com/img”>  
<img src=“https://site.com/img”>  
<img src=“https://othersite.com/img”>  
<a href=“https://site.com/img”>  
<a hre/othersite.com/img”>  
<a href=“http://othersite.com/img”>  
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=“http://site.com/img”>  
• N
• Cảnh báo trên trình duyệt  
Chrome(Các phiên bản cũ):  
IE7:  
• Chính sách của Chrome: chặn CSS, mã Javascript, thẻ  
<frame>  
38  
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 toàn  
chứng thư gốc bị thay thế  
GET https://bank.com  
BadguyCert  
attacker  
BankCert  
bank  
ServerCert (Bank)  
ServerCert (rogue)  
(cert for Bank by a invalid CA)  
SSL key exchange  
k1  
SSL key exchange  
k2  
k1  
k2  
HTTP data enc with k1  
HTTP data enc with k2  
40  
20  
Tải về để xem bản đầy đủ
pdf 24 trang baolam 56041 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An ninh mạng - Bài 8: An toàn dịch vụ web HTTPS - Bùi Trọng Tùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_an_ninh_mang_bai_8_an_toan_dich_vu_web_https_bui_t.pdf