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)
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
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
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:
- an_ninh_mang_bai_7_an_toan_dich_vu_web_https.pdf