Tìm hiểu giao thức ssl/tls cách tấn công và phòng chống
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐH KINH TẾ-LUẬT - - Báo cáo môn học: Mạng máy tính và bảo mật TÌM HIỂU GIAO THỨC SSL/TLS CÁCH TẤN CÔNG VÀ PHÒNG CHỐNG Giáo viên hướng dẫn: ThS.Trương Hoài Phan Nhóm Lời nói đầu Sercure Socket Layer (SSL) hiện là giao thức bảo mật rất phổ biến Internet và đặc biệt là các hoạt động thương mại điện tử (E-Commerce) Việt Nam đường hội nhập với nền công nghệ thông tin thế giới, nên mai, các hoạt động giao dịch mạng ở Việt Nam cũng sẽ diễn sôi nổi, đó vấn đề bảo mật trở nên quan trọng, việc triển khai SSL là điều thiết yếu Nhận thức được tầm quan trọng đó, nhóm 20 chúng em làm báo cáo này để trình bày về SSL và những vấn đề liên quan Đây là lần đầu tiên bốn năm học mà ba người chúng em có dịp hợp tác với nên không tránh khỏi sai sót Mong thầy xem và đóng góp ý kiến cho bài báo cáo cũng những nghiên cứu của chúng em được trọn vẹn Trân trọng cảm ơn thầy Nhóm Báo cáo môn: Mạng máy tính và bảo mật Page Mục lục Chương 1: Tìm hiểu về giao thức SSL trang 04 SSL là gì trang 04 Lịch sử phát triển trang 05 Chương 2: Cấu trúc và cách hoạt động trang 06 Cấu trúc của SSL trang 06 Tìm hiểu về các loại mã hóa trang 10 Handshake Protocol trang 13 Record Protocol trang 17 Chương 3: Các kiểu tấn công và phòng chống .trang 23 Các kiểu tấn công trang 23 Cách phòng chống trang 24 Chương 4: Cài đặt SSL Web Application(sử dụng Self-Signed Cert) trang 25 Báo cáo môn: Mạng máy tính và bảo mật Page Chương 1: Tìm hiểu Giao thức SSL/TLS 1/SSL gì? Việc kết nối giữa một Web browser tới bất kỳ điểm nào mạng Internet qua rất nhiều các hệ thống độc lập mà không có bất kỳ bảo vệ nào với các thông tin đường truyền Không một kể cả người sử dụng lẫn Web server có bất kỳ kiểm soát nào đối với đường của dữ liệu hay có thể kiểm soát được liệu có đó thâm nhập vào thông tin đường truyền Để bảo vệ những thông tin mật mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn: • Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu của kết nối Cũng vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người sử dụng • Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba Để loại trừ việc nghe trộm những thông tin “ nhạy cảm” nó được truyền qua Internet, dữ liệu phải được mã hoá để không thể bị đọc được bởi những người khác ngoài người gửi và người nhận • Toàn vẹn liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện xác thông tin gốc gửi đến Với việc sử dụng SSL, các Web site có thể cung cấp khả bảo mật thông tin, xác thực và toàn vẹn dữ liệu đến người dùng SSL được tích hợp sẵn vào các browser và Web server, cho phép người sử dụng làm việc với các trang Web ở chế độ an toàn Khi Web browser sử dụng kết nối SSL tới server, biểu tượng ổ khóa sẽ xuất hiện trạng thái của cửa sổ browser và dòng “http” hộp nhập địa URL sẽ đổi thành “https” Một phiên giao dịch HTTPS sử dụng cổng 443 thay vì sử dụng cổng 80 dùng cho HTTP SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau: • Xác thực server: Cho phép người sử dụng xác thực được server muốn kết nối Lúc này, phía browser sử dụng các kỹ thuật mã hoá công khai để chắn certificate và public ID của server là có giá trị và được cấp phát bởi một CA (certificate authority) danh sách các CA đáng tin cậy của client Điều này rất quan trọng đối với người dùng Ví dụ gửi mã số credit card qua mạng thì người dùng thực muốn kiểm tra liệu server sẽ nhận thông tin này có đúng là server mà họ định gửi đến không Báo cáo môn: Mạng máy tính và bảo mật Page • Xác thực Client: Cho phép phía server xác thực được người sử dụng muốn kết nối Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem certificate và public ID của server có giá trị hay không và được cấp phát bởi một CA (certificate authority) danh sách các CA đáng tin cậy của server không Điều này rất quan trọng đối với các nhà cung cấp Ví dụ một ngân hàng định gửi các thông tin tài mang tính bảo mật tới khách hàng thì họ rất muốn kiểm tra định danh của người nhận • Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server được mã hoá đường truyền nhằm nâng cao khả bảo mật Điều này rất quan trọng đối với cả hai bên có các giao dịch mang tính riêng tư Ngoài ra, tất cả các dữ liệu được gửi một kết nối SSL đã được mã hoá còn được bảo vệ nhờ chế tự động phát hiện các xáo trộn, thay đổi dữ liệu ( đó là các thuật toán băm – hash algorithm) 2/Lịch sử phát triển giao thức SSL & TLS: Như chúng ta đã biết có hai giao thức bảo mật quan trọng lớp vận chuyển (Layer Transport) có tầm quan trọng cao nhất đối với bảo mật của các trình ứng dụng Web: đó là hai giao thức SSL và TLS Nói chung, có một số khả để bảo vệ mật mã lưu lượng dữ liệu HTTP Ví dụ, vào những năm 1990, tập đoàn CommerceNet đã đề xuất S-HTTP mà về bản là một cải tiến bảo mật của HTTP Một phần thực thi của S-HTTP đã làm cho có sẵn công cộng một phiên bản được chỉnh sửa của trình duyệt Mosaic NCSA mà những người dùng phải mua (trái với trình duyệt Mo NCSA "chuẩn" có sẵn công cộng và miễn phí Internet) Tuy nhiên, thời điểm Netscape Communication đã giới thiệu SSL và một giao thức tương ứng với phiên bản đầu tiên của Netscape Navigator, Trái với tập đoàn CommerceNet, Netscape Communications đã không tính phí các khách hàng của nó về việc thực thi giao thức bảo mật của nó Kết quả, SSL trở thành giao thức nổi bật để cung cấp các dịch vụ bảo mật cho lưu lượng dữ liệu HTTP 1994 và S-HTTP lặng lẽ biến mất Cho đến bây giờ, có ba phiên bản của SSL: SSL 1.0: được sử dụng nội bộ bởi Netscape Communications Nó chứa một số khiếm khuyết nghiêm trọng và không bao giờ được tung bên ngoài SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x Nó có một số điểm yếu liên quan đến hiện thân cụ thể của cuộc tấn công của đối tượng trung gian Trong một nỗ lực nhằm dùng không chắn của công chúng về bảo mật của SSL, Microsoft cũng đã giới thiệu giao thức PCT (Private Communication Technology) cạnh tranh lần tung Internet Explorer đầu tiên của nó vào năm 1996 Netscape Communications đã phản ứng lại thách thức PCT của Microsoft cách giới thiệu SSL 3.0 vốn giải quyết các vấn đề SSL 2.0 và thêm một số tính mới Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL tất cả các phiên bản phần mềm dựa vào TCP/IP của nó (mặc dù phiên bản riêng của nó hỗ trợ PCT cho tương thích ngược) Báo cáo môn: Mạng máy tính và bảo mật Page Thông số kỹ thuật mới nhất của SSL 3.0 đã được tung thức vào tháng năm 1996 Nó được thực thi tất cả các trình duyệt bao gồm ví dụ Microsoft Internet Explorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bản cao hơn), và Open Như được thảo luận ở phần sau chương này, SSL 3.0 đã được điều chỉnh bởi IETF TLS WG Thực tế, thông số kỹ thuật giao thức TLS 1.0 dẫn xuất từ SSL 3.0 Chương 2: Cấu Trúc và cách hoạt động của SSL 1/Cấu trúc giao thức SSL: Cấu trúc của SSL và giao thức SSL tương ứng được minh họa hình 1.1(Cấu trúc SSL và giao thức SSL) Theo hình này, SSL ám một lớp (bảo mật) trung gian giữa lớp vận chuyển (Transport Layer) và lớp ứng dụng (Application Layer) SSL được xếp lớp lên một dịch vụ vận chuyển định hướng nối kết và đáng tin cậy, chẳng hạn được cung cấp bởi TCP Về khả năng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP chứ không HTTP Thực tế, một ưu điểm của các giao thức bảo mật lớp vận chuyển (Transport layer) nói chung và giao thức SSL nói riêng là chúng độc lập với ứng dụng theo nghĩa là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp lớp lên TCP một cách suốt Hình 1.1 minh họa một số giao thức ứng dụng điển hình bao gồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3 Tất cả chúng có thể được bảo vệ cách xếp lớn chúng lên SSL (mẫu tự S được thêm vào các từ ghép giao thức tương ứng định việc sử dụng SSL) Tuy nhiên, chú ý SSL có một định hướng client-server mạnh mẽ và thật không đáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng Cấu trúc của SSL và giao thức SSL Báo cáo môn: Mạng máy tính và bảo mật Page Tóm lại, giao thức SSL cung cấp bảo mật truyền thông vốn có ba đặc tính bản: Các bên giao tiếp (nghĩa là client và server) có thể xác thực cách sử dụng mật mã khóa chung Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa suốt sau một thiết lập quan hệ ban đầu và thương lượng khóa session đã xảy Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách suốt cách sử dụng MAC Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công phân tích lưu lượng Ví dụ, cách xem xét các địa IP nguồn và đích không được mã hóa và các sô cổng TCP, hoặc xem xét lượng dữ liệu được truyền, một người phân tích lưu lượng có thể xác định các bên nào tương tác, các loại dịch vụ được sử dụng, và cả dành được thông tin về các mối quan hệ doanh nghiệp hoặc cá nhân Hơn nữa, SSL không ngăn các cuộc tấn công có định hướng dựa vào phần thực thi TCP, chẳng hạn các cuộc tấn công làm tràn ngập TCP SYN hoặc cưỡng đoạt session Để sử dụng bảo vệ SSL, cả client lẫn server phải biết phía bên sử dụng SSL Nói chung, có ba khả để giải quyết vấn đề này: Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned Numbers Authority (IANA) Trong trường hợp này, một số cổng riêng biệt phải được gán cho mọi giao thức ứng dụng vốn sử dụng SSL Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các tùy chọn bảo mật là một phần của giao thức ứng dụng (bây giờ được chỉnh sửa đôi chút) Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo mật, chẳng hạn SSL suốt giai đoạn thiết lập nối kết TCP thông thường Báo cáo môn: Mạng máy tính và bảo mật Page Sự thương lượng dành riêng cho ứng dụng của các tùy chọn bảo mật (nghĩa là khả thứ hai) có khuyết điểm là đòi hỏi mọi giao thức ứng dụng được chỉnh sửa để hiểu tiến trình thương lượng Ngoài ra, việc xác định một tùy chọn TCP (nghĩa là khả thứ ba) là một giải pháp tốt, đó không được thảo luận nghiêm túc cho đến bây giờ Thực tế, các số cổng riêng biệt đã được dành riêng và được gán bởi IANA cho mọi giao thức ứng dụng vốn có thể chạy SSL hoặc TLS (nghĩa là khả thứ nhất) Tuy nhiên, hãy chú ý việc sử dụng các số cổng riêng biệt cũng có khuyết điểm là đòi hỏi hai nối kết TCP nếu client không biết những gì mà server hỗ trợ Trước tiên, client phải nối kết với cổng an toàn và sau đó với cổng không an toàn hay ngược lại Rất có thể các giao thức sau này sẽ hủy bỏ phương pháp này và tìm khả thứ hai Ví dụ, SALS (Simple Authentication và Security Layer) xác định một phù hợp để thêm hỗ trợ xác thực vào các giao thức ứng dụng dựa vào kết nối Theo thông số kỹ thuật SALS, việc sử dụng các chế xác thực có thể thương lượng giữa client và server của một giao thức ứng dụng đã cho Các số cổng được gán bởi IANA cho các giao thức ứng dụng vốn chạy SSL/TLS được tóm tắt bảng 1.2 và được minh họa một phần hình 1.1 Ngày nay, "S" định việc sử dụng SSL được thêm (hậu tố) nhất quán vào các từ ghép của các giao thức ứng dụng tương ứng (trong một số thuật ngữ ban đầu, S được sử dụng và được thêm tiền tố một cách không nhất quán và một số từ ghép) Bảng 1: Các số cổng gán cho các giao thức ứng dụng chạy TLS/SSL Từ khóa Cổng Mô tả Nsiiop 261 Dịch vụ tên IIOP TLS/SSL https 443 HTTP TLS/SSl Smtps 465 SMTP TLS/SSL Nntps 563 NNTP TLS/SSL Ldaps 636 LDAP TLS/SSL Ftps-data 989 FTP (dữ liệu) TLS/SSL Ftps 990 FTP (Điều khiển) TLS/SSL Tenets 992 TELNET TLS/SSL Imaps 994 IRC TLS/SSL Pop3s 995 POP3 TLS/SSL Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và trì thông tin trạng thái ở một hai phía của session Các phần tử thông tin trạng thái session tương ứng bao gồm một session ID, một chứng nhận ngang hàng, một phương pháp nén, một thông số mật mã, một khóa mật và một cờ vốn định việc session có thể tiếp tục lại hay không, được tóm tắt bảng 1.3 Một session SSL có thể được sử dụng một số kết nối và các thành phần thông tin trạng thái nối kết tương ứng được tóm tắt bảng 1.4 Chúng bao gồm các tham số mật mã, chẳng hạn các chuỗi byte ngẫu nhiên server và client, các khóa mật MAC ghi server và client, các khóa ghi server và client, một vector khởi tạo và một số chuỗi Ở hai trường hợp, điều quan trọng cần lưu ý là các phía giao tiếp phải sử dụng nhiều session SSL đồng thời và các session có nhiều nối kết đồng thời Báo cáo môn: Mạng máy tính và bảo mật Page Bảng Các thành phần thông tin trạng thái Session SSL Thành Phần Session ID Mô tả Định danh được chọn bởi server để nhận dạng một trạng thái session hoạt động hoặc có thể tiếp tục lại Peer certificate Chứng nhân X.509 phiên bản của thực thể ngang hàng Compression Thuật toán dừng để nén dữ liệu trước mã method hóa Cipher spec Thông số của các thuật toán mã hóa dữ liệu và MAC Master secret Khóa mật 48-byte được chia sẻ giữa client và server Is resumable Cờ vốn biểu thị session có thể được sử dụng để bắt đầu các nối kết mới hay không Bảng Các thành phần thông tin trạng thái nối kết SSL Thành Phần Ngẫu nhiên server và client Khóa mật MAC ghi server Khóa mật MAC ghi client Khóa ghi server Khóa ghi client Initialization vector Số chuỗi Mô tả Các chuỗi byte được chọn bởi server và client cho nối kết Khóa mật được sử dụng cho các hoạt động MAC dữ liệu được ghi bởi server Khóa mật được sử dụng cho các hoạt động MAC dữ liệu được ghi bởi client Khóa được sử dụng cho việc mã hóa dữ liệu bởi server và giải mã bởi client Khóa được sử dụng để mã khóa dữ liệu bởi client và giải mã bởi server Trạng thái khởi tạo cho một mật mã khối chế độ CBC Trường này được khởi tạo đầu tiên bởi SSL Handshake Player Sau đó, khối text mật mã sau từ bản ghi được dành riêng để sử dụng vởi bản ghi sau đó Mỗi phía trì các số chuỗi riêng biệt cho các thông báo được truyền và được nhận cho nối kết Như được minh họa hình 1.1, giao thức SSL gồm hai phần chính, SSL Record Protocol và một số giao thức SSL được xếp lớp nó: Báo cáo môn: Mạng máy tính và bảo mật Page - Record OK được xếp lớp một dịch vụ lớp vận chuyển định hướng nối kết và đáng tin cậy, chẳng hạn được cung cấp bởi TCP và cung cấp xác thực nguồn gốc thông báo, bí mật dữ liệu và dữ liệu - Các dịch vụ toàn vẹn (bao gồm thứ chống xem lại) - Các giao thức SSL được xếp lớp SSL Record Protocol để cung cấp hỗ trợ cho việc quản lý session SSL và thiết lập nối kết Giao thức SSL quan trọng nhất là SSL Handshake Protocol Lần lượt giao thức này là một giao thức xác thực và trao đổi khóa vốn có thể được sử dụng để thương lượng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một hai điểm cuối của một session hoặc nối kết SSL Sau SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể được gửi và được nhận cách sử dụng SSL Record Protocol và các tham số bảo mật được thương lượng và các thành phần thông tin trạng thái SSL Record và Handshake Protocol được trình bầy tổng quan ở phần tiếp theo 2/Tìm Hiểu loại mã hóa Mật mã hóa là quá trình chuyển đổi các thông tin thông thường (văn thường hay văn rõ) thành dạng không đọc trực tiếp được, là văn mã Giải mật mã, là quá trình ngược lại, phục hồi lại văn bản thường từ văn bản mã Mật mã là thuật toán để mật mã hóa và giải mật mã Hoạt động xác của mật mã thông thường được kiểm soát bởi khóa — một đoạn thông tin bí mật nào đó cho phép tùy biến cách thức tạo văn bản mã Các giao thức mật mã rõ các chi tiết về việc mật mã (và các nền tảng mật mã hóa khác) được sử dụng thế nào để thu được các nhiệm vụ cụ thể Một bộ các giao thức, thuật toán, cách thức quản lý khóa và các hành động quy định trước bởi người sử dụng thi hành một hệ thống tạo hệ thống mật mã Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc Các thuộc tính được yêu cầu là: Bí mật: Chỉ có người nhận đã xác thực có thể lấy được nội dung của thông tin chứa đựng dạng đã mật mã hóa của nó Nói khác đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thông điệp Nguyên vẹn: Người nhận cần có khả xác định được thông tin có bị thay đổi quá trình truyền thông hay không Xác thực: Người nhận cần có khả xác định người gửi và kiểm tra xem người gửi đó có thực gửi thông tin hay không Báo cáo môn: Mạng máy tính và bảo mật Page 10 thực đã thành công Thực tế, thông báo FINISHED là thông báo đầu tiên vốn được bảo vệ các thuật toán mới được thương lượng và các khóa session Nó có thể được tạo và được xác nhận nếu những khóa này được cài đặt một cách phù hợp ở cả hai phía Không đòi hỏi báo nhận thông báo FINISHED; các phía có thể bắt đầu gởi dữ liệu được mã hóa lập tức sau đã gởi thông báo FINISHED Việc thực thi SSL Handshake Protocol hoàn tất việc cũng yêu cầu server gởi một thông báo CHANGECIPHERSPEC và một thông báo FINISHED tương ứng đến client ở bước Sau thiết lập SSL hoàn tất, một nối kết an toàn được thiết lập giữa client và server Nối kết này bây giờ có thể được sử dụng để gởi dữ liệu ứng dụng vốn được bao bọc bởi SSL Record Protocol Chính xác hơn, dữ liệu ứng dụng có thể được phân đoạn, được nén, hoặc được mã hóa và đước xác thực theo SSL Record Protocol cũng thông tin trạng thái session và nối kết vốn bây giờ được thiết lập (tùy thuộc việc thực thi SSL Handshake Protocol) SSL Handshake Protocol có thể được rutst ngắn nếu client và server quyết định tiếp tục lại một session SSL được thiết lập trước đó (và được lưu trữ) hoặc lặp lại một session SSL hiện có Trong trường hợp này, ba dòng thông báo và tổng cộng sáu thông báo được yêu cầu Các dòng thông báo tương ứng có thể được tóm tắt sau: 1: C -> S: CLIENTHELLO 2: S -> C: SERVERHELLO CHANECIPHERSPEC FINISHED 3: S ->C: CHANGECIPHERSPEC FINISHED Ở bước 1, client gởi một thông báo CLIENTHELLO đến server vốn có một định danh session cần được tiếp tục lại Lần lượt server kiểm tra cache session của nó để tìm một mục tương hợp Nếu một mục tương hợp được tìm thấy, server muốn tiếp tục lại nối kết bên dưới trạng thái session đã xác định, nó trả về một thông báo SERVERHELLO với một định danh session ở bước Vào thời điểm này, cả client lẫn server phải gởi các thông báo CHANGECIPHERSPEC và FINISHED đến ở bước và Một việc tái thiết lập session hoàn tất, client và server có thể bắt đầu trao đổi dữ liệu ứng dung 4/SSL Record Protocol: SSL Record Protocol nhận dữ liệu từ các giao thức SSL lớp cao và xử lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tọa một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được gọi là các bản ghi) nhỏ hoặc 16,383 byte Báo cáo môn: Mạng máy tính và bảo mật Page 18 Các bước SSL Record Protocol Các bước khác của SSL Record Protocol vốn từ một đoạn dữ liệu thô đến một bản ghi SSL Plaintext (bước phân đoạn), SSL Compressed (bước nén) và SSL Ciphertext (bước mã hóa) được minh họa hình 1.5 Sau cùng, bản ghi SSL chứa các trường thông tin sau đây: - Loại nội dung; - Số phiên bản của giao thức; - Chiều dài; - Tải trọng dữ liệu (được nén và được mã hóa tùy ý); - MAC Báo cáo môn: Mạng máy tính và bảo mật Page 19 Như được minh họa hình trên, một số giao thức SSL được xếp lớp SSL Record Protocol Mỗi giao thức có thể tham chiếu đến các loại thông báo cụ thể vốn được gửi cách sử dụng SSL Record Protocol Thông số kỹ thuật SSL 3.0 xác định ba giao thức SSL sau đây: - Alert Protocol: Protocol được sử dụng để chuyển các cảnh báo thông qua SSL Record Protocol Mỗi cảnh báo gồm phần, một mức cảnh báo và một mô tả cảnh báo - Handshake Protocol: đã giới thiệu ở - Change CipherSpec Protocol:được sử dụng để thay đổi giữa một thông số mật mã này và một thông số mật mã khác Mặc dù thông số mật mã thường được thay đổi ở cuối một thiết lập quan hệ SSL, nó cũng có thể được thay đổi vào bất kỳ thời điểm sau đó Minh họa đoạn thông điêêp chứ thông tin về khóa và quy định thuâêt toán SSL_NULL_WITH_NULL_NULL = { 0, } PUBLIC-KEY ALGORITHM SYMMETRC ALGORITHM INITIAL (NULL) CIPHER SUITE HASH ALGORITHM SSL_RSA_WITH_NULL_MD5 = { 0, } SSL_RSA_WITH_NULL_SHA = { 0, } CIPHER SUITE CODES USED SSL_RSA_EXPORT_WITH_RC4_40_MD5 = { 0,IN SSL } MESSAGES SSL_RSA_WITH_RC4_128_MD5 = { 0, } SSL_RSA_WITH_RC4_128_SHA = { 0, } SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0, } SSL_RSA_WITH_IDEA_CBC_SHA = { 0, } SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0, } SSL_RSA_WITH_DES_CBC_SHA = { 0, } SSL_RSA_WITH_3DES_EDE_CBC_SHA = { 0, 10 } Premaster secret Tạo bởi khách hàng, sử dụng để “seed” tính toán của các thông số mã hoá Rất đơn giản: byte của phiên bản SSL + 46 byte ngẫu nhiên Gửi mã hoá đến náy chủ cách sử dụng khoá công khai của máy chủ Master secret Tạo bởi cả hai bên từ premaster secret và các giá trị ngẫu nhiên được tạo bởi cả máy khách và máy chủ Key material Giá trị ngẫu nhiên được tạo từ master secret và shared random values Encryption keys Trích xuất từ key material Báo cáo môn: Mạng máy tính và bảo mật Page 20 Minh họa quá trình tạo Master Secret SENT BY SERVER IN ServerHello CLIENT SENDS PREMASTER SECRET IN ClientKeyExchange SENT BY CLIENT IN ClientHello MASTER SECRET IS MD5 HASHES CONCATENATED TOGETHER = 384 BITS Báo cáo môn: Mạng máy tính và bảo mật Page 21 Minh họa quá trình tạo Key Materials JUST LIKE FORMING THE MASTER SECRET EXCEPT THE MASTER SECRET IS USED HERE INSTEAD OF THE PREMASTER SECRET Báo cáo môn: Mạng máy tính và bảo mật Page 22 Minh họa quá trình tổng hợp Key Meterials để ghép thành thông điêêp SYMMETRIC KEYS INITIALIZATION VECTORS FOR DES CBC ENCRYPTION SECRET VALUES INCLUDED IN MESSAGE AUTHENTICATION CODES Báo cáo môn: Mạng máy tính và bảo mật Page 23 Chương 3: Các kiểu tấn công và phòng chống 1/Các kiểu công SSL/TLS Mặc dù giao thức SSL/TLS về mặt lý thuyết thì có mức an toàn cao, thực tế nó có thể nó có thể bị tấn công một vài cách sau Có nhiều phương hướng tấn công, đó có hai cách đáng quan tâm nhất: a.Kiểu Man in the middle (MITM) Trong kiểu tấn công này, kẻ phá hoại ngăn chặn lưu lượng trao đổi qua lại giữa client và server, chẳng hạn giả mạo DNS trả lời hay đổi hướng của ARP, sau đó đóng vai client đối với server và ngược lại Trong suốt cuộc tấn công này web browser của người dùng không kết nối trực tiếp với server đích Nhưng thay vì phá hoại host,nó đóng vai web browser và hành động về bản giống là một proxy Có hai tin dành cho nhà quản trị muốn bảo vệ hệ thống chống lại các cuộc tấn công: Tin tốt là web browser cảnh báo người dùng nhận dạng của web server không thể được kiểm chứng, và có thể cuộc tấn công man-in-middle cách hiện một hộp tin nhắn cảnh báo Tin xấu là, thực tế, người dùng thường bỏ qua các tin nhắn Do đó nếu web browser của người dùng chấp nhận kết nối tới các website SSL mà nhân dạng không thể kiểm tra được, chúng ta có thể tin tưởng vào ý thức của người dùng, và tin họ sẽ nhấn nút “proceed” nếu cảnh báo hiện Báo cáo môn: Mạng máy tính và bảo mật Page 24 b.Tấn công Brute-force các khoá session: Bằng cách thử-sai miền không gian các giá trị có thể của khoá Nhưng số phép thử-sai tǎng lên độ dài khoá tǎng và dẫn đến vượt quá khả nǎng và công suất tính toán, kể cả các siêu máy tính hiện đại nhất Thí dụ, với độ dài khoá là 40bit, thì số phép thử sẽ là 240=1,099,511,627,776 tổ hợp Kiểu tấn công này được dùng kẻ phá hoại biết hoặc nắm được một phần đoạn văn bản gửi session SSL/TLS, chẳng hạn “GET/HTTP/1.0” Và kẻ tấn công có thể nghe cuộc nói chuyện phiên này (như dùng tcpdump, Ethereal hoặc các chức khác) Sau đó giải mã đoạn bắt được việc dùng các khoá có thể, cố gắng tìm các biến thể của nó dữ liệu đã được mã hoá của SSL/TLS Nếu khoá được tìm ra, đoạn tin nhắn đó có thể được dùng để giải mã toàn bộ phần văn bản phiên giao dịch đó Tin tốt là số lượng khoá lớn nhất phải được kiểm tra là 2^128 mã hoá đối xứng 128-bit được dùng Ngày nay, chúng ta tin tưởng nó đủ sức bảo vệ các session nhiều lần năm Tuy nhiên, từ CPUs ngày càng tăng kích thước chúng ta không thể dự đoán được các khoá đồng bộ 12-bit có thể xem là an toàn được hay không nữa Cụ thể các hacker có thể truy cập vào một số lượng lớn các siêu máy tính Trong trường hợp bộ mã hoá theo lớp xuất (40 bit, và một số bộ mở rộng là 56 bits) chẳng hạn tấn công brute force có thể thành công một lượng thời gian, thậm chí là vài ngày, phụ thuộc vào số của CPU Nếu có thể dùng bộ mã hoá mạnh thì bạn nên dùng một cách dứt khoát thay 2/Biện pháp phòng chống Theo dõi kết nối an toàn HTTPS Khi bạn thực hiện tấn công MITM nó sẽ lấy khía cạnh an toàn của kết nối, thứ có thể xác định được trình duyệt Điều này có nghĩa nếu bạn đăng nhập vào tài khoản ngân hàng trực tuyến và thấy nó là một kết nối HTTP chuẩn thì chắn có thứ gì đó sai ở Bất cứ nào trình duyệt mà bạn chọn sử dụng cũng cần bảo đảm bạn biết cách phân biệt các kết nối an toàn với những kết nối không an toàn Lưu tài khoản ngân hàng trực tuyến ở nhà Cơ hội cho đó có thể chặn lưu lượng của bạn mạng gia đình sẽ nhiều so với mạng ở nơi làm việc của bạn Báo cáo môn: Mạng máy tính và bảo mật Page 25 Trong mạng công ty, bạn không biết những gì diễn hệ thống mạng, đó có thể “tăm tia” bạn mà bạn ko hề hay biết Bảo mật các máy tính bên mạng Các tấn công thường được thực thi bên một mạng Nếu các thiết bị mạng của bạn được an toàn thì nguy bị theo dõi các package sau đó được sử dụng để khởi chạy tấn công chiếm quyền điều khiển session cũng sẽ giảm Chương 4: hướng dẫn cài đặt web application sử dụng SSL ( loại Self-Signed certificate) B1: Khởi động giao diện quản lý website IIS (IIS Manager) Báo cáo môn: Mạng máy tính và bảo mật Page 26 B2: Vào mục Server Certificate và chọn Create Self-Signed Certificate B3: Đặt tên cho Certificate này Báo cáo môn: Mạng máy tính và bảo mật Page 27 Thông tin của Certificate Báo cáo môn: Mạng máy tính và bảo mật Page 28 B4: Trở lại giao diện của IIS Manager, tạo website mới Báo cáo môn: Mạng máy tính và bảo mật Page 29 B5: Vào Visual Studio tạo một website với tương ứng với Website đã tạo ở IIS Báo cáo môn: Mạng máy tính và bảo mật Page 30 B6: Sửa lại đường dẫn bên ISS cho đúng với đường dẫn của website mới tạo ở VS B7: Chạy Website thì sẽ hình sau Báo cáo môn: Mạng máy tính và bảo mật Page 31 B8: chọn Thêm ngoại lệ là Website đã chạy được Báo cáo môn: Mạng máy tính và bảo mật Page 32 [...]... 23 Chương 3: Các kiểu tấn công và phòng chống 1/Các kiểu tấn công SSL/TLS Mặc dù giao thức SSL/TLS về mặt lý thuyết thì có mức an toàn cao, nhưng trong thực tế nó có thể nó có thể bị tấn công bằng một vài cách sau Có nhiều phương hướng tấn công, trong đó có hai cách đáng quan tâm nhất: a.Kiểu Man in the middle (MITM) Trong kiểu tấn công này, kẻ phá hoại ngăn... hóa khóa công khai có hai khóa được sử dụng, là khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân), trong đó khóa công khai dùng để mật mã hóa còn khóa bí mật dùng để giải mật mã (cũng có thể thực hiện ngược lại) Rất khó để có thể thu được khóa bí mật từ khóa công khai Điều này có nghĩa là một người nào đó có thể tự do gửi khóa công khai... bộ mở rộng là 56 bits) chẳng hạn như tấn công brute force có thể thành công trong một lượng thời gian, đôi khi thậm chí là vài ngày, phụ thuộc vào con số của CPU Nếu có thể dùng bộ mã hoá mạnh thì bạn nên dùng một cách dứt khoát thay 2/Biện pháp phòng chống Theo dõi kết nối an toàn HTTPS Khi bạn thực hiện tấn công MITM nó sẽ lấy đi khía cạnh an toàn của... b.Tấn công Brute-force trên các khoá session: Bằng cách thử-sai miền không gian các giá trị có thể của khoá Nhưng số phép thử-sai tǎng lên khi độ dài khoá tǎng và dẫn đến vượt quá khả nǎng và công suất tính toán, kể cả các siêu máy tính hiện đại nhất Thí dụ, với độ dài khoá là 40bit, thì số phép thử sẽ là 240=1,099,511,627,776 tổ hợp Kiểu tấn công này... phần đoạn văn bản gửi trong session SSL/TLS, chẳng hạn như “GET/HTTP/1.0” Và kẻ tấn công có thể nghe lén cuộc nói chuyện trong phiên này (như dùng tcpdump, Ethereal hoặc các chức năng khác) Sau đó hắn giải mã đoạn bắt được bằng việc dùng các khoá có thể, cố gắng tìm các biến thể của nó trong dữ liệu đã được mã hoá của SSL/TLS Nếu như khoá được tìm ra, đoạn... các trường thông tin sau đây: - Loại nội dung; - Số phiên bản của giao thức; - Chiều dài; - Tải trọng dữ liệu (được nén và được mã hóa tùy ý); - MAC Báo cáo môn: Mạng máy tính và bảo mật Page 19 Như được minh họa trong hình trên, một số giao thức con SSL được xếp lớp trên SSL Record Protocol Mỗi giao thức con có thể tham chiếu đến các loại thông báo cụ thể... Trong mạng công ty, bạn không biết những gì đang diễn ra trong hệ thống mạng, ai đó có thể đang “tăm tia” bạn mà bạn ko hề hay biết Bảo mật các máy tính bên trong mạng Các tấn công thường được thực thi bên trong một mạng Nếu các thiết bị mạng của bạn được an toàn thì nguy cơ bị theo dõi các package sau đó được sử dụng để khởi chạy tấn công chiếm quyền... client đối với server và ngược lại Trong suốt cuộc tấn công này web browser của người dùng không kết nối trực tiếp với server đích Nhưng thay vì phá hoại host,nó đóng vai web browser và hành động về cơ bản giống như là một proxy Có hai tin dành cho nhà quản trị muốn bảo vệ hệ thống chống lại các cuộc tấn công: Tin tốt là web browser cảnh báo người dùng khi... Handshake Protocol là yêu cầu một client và server thiết lập và duy trì thông tin trạng thái vốn được sử dụng để bảo vệ các cuộc liên lạc Cụ thể hơn, giao thức phải yêu cầu client và server chấp thuận một phiên bản giao thức SSL chung, chọn phương thức nén và thông số mật mã, tùy ý xác thực nhau và tạo một khóa mật chính mà từ đó các khóa session khác nhau dành... hoàn tất, client và server có thể bắt đầu trao đổi dữ liệu ứng dung 4/SSL Record Protocol: SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tọa một loạt các đoạn dữ liệu SSL làm dữ liệu xuất ... Các kiểu tấn công và phòng chống 1/Các kiểu công SSL/TLS Mặc dù giao thức SSL/TLS về mặt lý thuyết thì có mức an toàn cao, thực tế nó có thể nó có thể bị tấn công một vài... hóa khóa công khai (hay khóa bất đối xứng) được đưa là một giải pháp thay thế Trong mật mã hóa khóa công khai có hai khóa được sử dụng, là khóa công khai (hay khóa công cộng)... tế, thông số kỹ thuật giao thức TLS 1.0 dẫn xuất từ SSL 3.0 Chương 2: Cấu Trúc và cách hoạt động của SSL 1/Cấu trúc giao thức SSL: Cấu trúc của SSL và giao thức SSL tương ứng