Bài giảng An ninh mạng - Bài 8: An toàn dịch vụ web - HTTPS. Sau khi học xong chương này, người học có thể hiểu được một số kiến thức cơ bản về: SSL/TLS là gì? Giao thức bắt tay, server hello, một số cải tiến trên TLS 1.0, hàm giả ngẫu nhiên PRF, giới thiệu chung về HTTPS, thiết lập liên kết SSL/TLS,…
BÀI AN TOÀN DỊCH VỤ WEB HTTPS Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội 1 GIAO THỨC SSL/TLS Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội CuuDuongThanCong.com https://fb.com/tailieudientucntt SSL/TLS gì? • Sercure Socket Layer/Transport Layer Security • Nằm giao thức tầng giao vận tầng ứng dụng • Cung cấp chế mã mật xác thực cho liệu trao đổi ứ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 gì? • Gồm giao thức • Giao thức bắt tay(handshake protocol): thiết lập kết nối SSL/TLS Sử dụng phương pháp mật mã khóa cơng khai để bên trao đổi khóa bí mật • Giao thức bảo vệ liệu(record protocol) Sử dụng khóa bí mật trao đổi giao thức bắt tay để bảo vệ liệu truyền bên CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 giao thức SSL/TLS • Các thuật tốn mật mã C CuuDuongThanCong.com S https://fb.com/tailieudientucntt Server Hello Giá trị ngẫu nhiên C, Versionc, suitec, Nc ServerHello C • Phiên giao thức SSL/TLS cao mà bên hỗ trợ • Thuật tốn mã hóa mạng mà bên 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ố server (tùy thuộc thuật tốn trao đổi khóa) S https://fb.com/tailieudientucntt ServerKeyExchange ClientKeyExchange C, Versionc, suitec, Nc Versions, suites, Ns, ClientKeyExchange “ServerHelloDone” C ClientKeyExchange S Thuật toán trao đổi khóa, thơng tin sinh khóa và/hoặc chứng thư số client (tùy thuộc thuật tốn trao đổi khóa) CuuDuongThanCong.com https://fb.com/tailieudientucntt ClientKeyExchange Hoàn tất giao thức bắt tay C, Versionc, suitec, Nc Versions, suites, Ns, ServerKeyExchange, “ServerHelloDone” C S ClientKeyExchange Client server chia sẻ thành công thông tin sinh khóa sử dụng thơng tin để tạo khóa Khóa sử dụng để trao đổi khóa phiên CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thuật tốn mã hóa TLS 1.0 Bảo vệ liệu kênh SSL/TLS CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số cải tiến TLS 1.0 • Thuật tốn sinh khóa an toàn hơn: sử dụng hàm Mở rộng giá trị bí mật Hàm giả ngẫu nhiên kết hợp hàm băm MD5 SHA-1 để sinh thông tin tạo khóa • Sử dụng hàm HMAC thay cho MAC Hàm mở rộng giá trị bí mật CuuDuongThanCong.com https://fb.com/tailieudientucntt Hàm giả ngẫu nhiên PRF Sinh giá trị master-secret CuuDuongThanCong.com https://fb.com/tailieudientucntt Sinh thơng tin tạo khóa Hàm HMAC TLS 3.0 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 GIAO THỨC HTTPS Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội 21 Giới thiệu chung HTTPS • Hạn chế HTTP: Khơng có chế để người dùng kiểm tra tính tin cậy Web server lỗ hổng để kẻ công giả mạo dịch vụ chèn mã độc vào trang web HTML Khơng có chế mã mật lỗ hổng để kẻ công nghe đánh cắp thơng tin nhạy cảm • Secure HTTP: Kết hợp HTTP SSL/TLS: Xác thực Bảo mật 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 mã hóa với KS 23 Chứng thư số - Ví dụ 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 12 HTTP 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ình duyệt Web Truy cập Web với HTTPS - Tồn nội dung website (bao gồm hình ảnh, CSS, Flash, scripts ) trình duyệt thẩm tra tính tồn vẹn nguồn gốc tin cậy - Mọi thơng tin trao đổi trình duyệt BIDV giữ bí mật CuuDuongThanCong.com https://fb.com/tailieudientucntt 26 13 Tại HTTPS an tồn? • Chặn bắt liệu • Chèn mã độc vào nội dung website 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 kẻ cơng • Tấn công DHCP Spoofing Client truy cập vào Web server kẻ 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 chứng thư số (Subject CN)và tên miền địa URL Tên tường minh: dnsimple.com, 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 chứng thư số • Bước 3: Trình duyệt kiểm tra chứng thư số gốc CA chứng thực cho server Để xem chứng thư số gốc trình duyệt Firefox OptionsAdvancedView CertificatesAuthorities • Bước 4: Trình duyệt sử dụng chứng thư số gốc CA để thẩm tra chữ ký số chứng thư server 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14 Chứng thư số gốc • Được tích hợp sẵn trình duyệt 29 Chuỗi chứng thực 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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ố có bước cho kết 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 người dùng chấp nhận cảnh báo? 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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ư 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ả từ web server web server Nội dung thay attacker Location: https:// Location: http:// (redirect) • Các trang có lỗ hổng này: ebay.com, nhiều ngân hàng lớn Việt Nam (Agribank, Vietinbank, Vietcombank, BiDV, ACB bank ) 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt 17 Tấn cơng sslstrip • Thậm chí, website hỗ trợ đầy đủ HTTPS, lợi dụng người dùng khơng cập nhật trình duyệt phiên • Thay fav icon • Xóa cookie 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 HTTPS HTTP 35 Phịng chống: Strict Transport Security (HSTS) Strict-Transport-Security: max-age=31 106; includeSubDomains (bỏ qua liên kết khơng phải HTTPS) web server • Một trường tiêu đề HTTPS Response, yêu cầu trình duyệt ln kết nối với máy chủ qua HTTPS • HSTS chấp nhận liên kết HTTPS • Max-age: thời gian trì • Kiểm tra danh sách website hỗ trợ HSTS: chrome://net-internals/#hsts %APPDATA%\Mozilla\Firefox\Profiles\ \SiteSecurityServiceState.t xt 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt 18 CSP: upgrade-insecure-requests • Các trang thường trộn lẫn URL tài nguyên với HTTPS Ví dụ: • Thêm vào tiêu đề HTTP Response Content-Security-Policy: upgrade-insecure-requests • Trình duyệt tự động chuyển liên kết sử dụng HTTP sang HTTPS • Không áp dụng với thẻ Luôn sử dụng URL tương đối: 37 Tấn cơng vào HTTPS • Giao thức truy cập HTTPS nội dung website không chứng thực đầy đủ • Ví dụ: • Nguy cơ: Kẻ cơng thay nội dung • Cảnh báo trình duyệt IE7: Chrome(Các phiên cũ): • Chính sách Chrome: chặn CSS, mã Javascript, thẻ 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt 19 Tấn cơng lợi dụng website khơng 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 trình duyệt khơng an toàn chứng thư gốc bị thay GET https://bank.com 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 https://fb.com/tailieudientucntt 40 20 Phát hành chứng thư số sai cách • 2011: Comodo and DigiNotar CAs bị công, phát hành chứng thư số cho tên miền Gmail, Yahoo! Mail, … • 2013: TurkTrust phát hành chứng thư số cho gmail.com (phát nhờ chế Dynamic HTTP public-key pinning) • 2014: Indian NIC phát hành chứng thư số cho tên miền Google • 2015: MCS phát hành chứng thư số cho tên miền Google ⇒ trình duyệt khơng phát cảnh báo kẻ cơng thay 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 tiêu đề HTTP Response CA cấp phát chứng thư số cho website Nếu phiên tiếp theo, sử dụng chứng thư chứng thực CA khác từ chối • Giao thức “Certificate Transparency” cho phép CA cơng bố tồn ghi nhật ký (log) chứng thư phát hành • Giao thức OCSP (Online Certificate Status Protocol) 42 CuuDuongThanCong.com https://fb.com/tailieudientucntt 21 HPKP – Ví dụ 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/mozillacentral/source/security/manager/tools/PreloadedHPKPins.json 43 Tấn cơng phishing • Homograph attack: Lợi dụng hình dáng giống số ký tự Ví dụ: vvesternbank, paypai, paypail, paypa1 • Semantic attack: lợi dụng trình duyệt cũ khơng phân biệt dấu đặc biệt tên miền Ví dụ: Kẻ cơng mua tên miền badguy.cn sử dụng tên miền 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 22 Semantic attack (ví dụ) 45 Tấn cơng phishing (tiếp) • Picture-in-picture attack: dựng frame chứa cửa sổ giao diện website chứng thực lợi dụng người dùng bất cẩn không quan sát duyệt web 46 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 Bài giảng sử dụng số hình vẽ ví dụ từ giảng: • Computer and Network Security, Stanford University • Computer Security, Berkeley University 47 CuuDuongThanCong.com https://fb.com/tailieudientucntt 24 ... Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; pin-sha256="LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ="; report-uri="https://example.net/pkp-report"... 18 CSP: upgrade-insecure-requests • Các trang thường trộn lẫn URL tài nguyên với HTTPS Ví dụ: • Thêm vào tiêu đề HTTP Response Content-Security-Policy: upgrade-insecure-requests... dùng bất cẩn không quan sát duyệt web 46 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 Bài giảng sử dụng số hình vẽ ví dụ từ giảng: • Computer and Network Security, Stanford University