xây dựng chương trình chia sẻ tệp tin qua kênh truyền mật SSL

19 372 0
xây dựng chương trình chia sẻ tệp tin qua kênh truyền mật SSL

Đ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

xây dựng chương trình chia sẻ tệp tin qua kênh truyền mật SSL

August 18, 2011 [ĐỀ 10 : SSL] MỞ ĐẦU Việc kết nối Web Browser tới điểm Internet qua nhiều hệ thống độc lập mà bảo vệ với thông tin đường truyền Không kể người sử dụng hay Web server có kiểm soát đường liệu hay kiểm soát liệu có thâm nhập vào thông tin đường truyền Để bảo vệ thông tin mật mạng Internet hay mạng TCP/IP nào, giao thức SSL đời SSL 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ã hoá toàn thông tin hay đến, mà ngày sử dụng rộng rãi cho giao dịch điện tử truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) Internet Dựa hiểu biết giao thức SSL ngôn ngữ lập trình C++, nhóm chúng em chọn nghiên cứu đề tài xây dựng chương trình chia sẻ tệp tin qua kênh truyền mật SSL Xin cảm ơn thầy Lương Ánh Hoàng tạo điều kiện hướng dẫn nhóm em thực đề tài Đề tài chúng em có nội dung sau: • • • Chương 1: Giới thiệu giao thức SSL Chương 2: Bảo mật thông tin dựa thuật toán mã hóa công khai Chương 3: Mô tả chương trình xây dựng ngôn ngữ C++ GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] CHƯƠNG 1: GIỚI THIỆU VỀ GIAO THỨC SSL Giao thức SSL – Secure Socket Layer: Được phát triển Netscape, ngày giao thức Secure Socket Layer (SSL) sử dụng rộng rãi World Wide Web việc xác thực mã hoá thông tin client server Tổ chức IETF (Internet Engineering Task Force ) chuẩn hoá SSL đặt lại tên TLS (Transport Layer Security) Mặc dù có thay đổi tên TSL phiên SSL Phiên TSL 1.0 tương đương với phiên SSL 3.1 Tuy nhiên SSL thuật ngữ sử dụng rộng rãi SSL thiết kế giao thức riêng cho vấn đề bảo mật hỗ trợ cho nhiều ứng dụng Giao thức SSL hoạt động bên TCP/IP bên giao thức ứng dụng tầng cao HTTP (Hyper Text Transport Protocol), IMAP ( Internet Messaging Access Protocol) FTP (File Transport Protocol) Trong SSL sử dụng để hỗ trợ giao dịch an toàn cho nhiều ứng dụng khác Internet, SSL sử dụng cho giao dịch Web SSL 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ã hoá 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ã hoá 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 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] đị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 - Mã hoá 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ư Ngoài ra, tất liệu gửi kết nối SSL mã hoá bảo vệ nhờ chế tự động phát xáo trộn, thay đổi liệu ( thuật toán băm – hash algorithm) Giao thức SSL bao gồm giao thức con: giao thức SSL record giao thức SSL handshake Giao thức SSL record xác định định dạng dùng để truyền liệu Giao thức SSL handshake (gọi giao thức bắt tay) sử dụng SSL record protocol để trao đổi số thông tin server client vào lấn thiết lập kết nối SSL Cách thức làm việc SSL: Khi hai ứng dụng máy tính, thí dụ trình duyệt web máy chủ web, làm việc với nhau, máy chủ máy khách trao đổi “lời chào” (hellos) dạng thông điệp cho với xuất phát chủ động từ máy chủ, đồng thời xác định chuẩn thuật toán mã hoá nén số liệu áp dụng hai ứng dụng Ngoài ra, ứng dụng trao đổi “số nhận dạng/khoá theo phiên” (session ID, session key) cho lần làm việc Sau ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực ứng dụng chủ (web server) Chứng thực điện tử thường xác nhận rộng rãi quan trung gian (là CA -Certificate Authority) RSA Data Sercurity hay VeriSign Inc., dạng tổ chức độc lập, trung lập có uy tín Các tổ chức cung cấp dịch vụ “xác nhận” số nhận dạng công ty phát hành chứng cho công ty chứng nhận dạng (identity) cho giao dịch mạng, máy chủ webserver Sau kiểm tra chứng điện tử máy chủ (sử dụng thuật toán mật mã công khai, RSA trình máy trạm), ứng dụng máy trạm sử dụng thông tin chứng điện tử để mã hoá thông điệp gửi lại máy chủ mà có máy chủ giải mã Trên sở đó, hai ứng dụng trao đổi khoá (master key) - khoá bí mật hay khoá đối xứng - để làm sở cho việc mã hoá luồng thông tin/dữ liệu qua lại hai ứng dụng chủ khách Toàn cấp độ bảo mật an toàn thông tin/dữ liệu phụ thuộc vào số tham số: số nhận dạng theo phiên làm việc ngẫu nhiên; cấp độ bảo mật thuật toán bảo mật áp dụng cho SSL; độ dài khoá (key length) sử dụng cho lược đồ mã hoá thông tin GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Các thuật toán mã hóa, xác thực SSL 3.0: Các thuật toán mã hoá (cryptographic algorithm hay gọi cipher) hàm toán học sử dụng để mã hoá giải mã thông tin Giao thức SSL hỗ trợ nhiều thuật toán mã hoá, sử dụng để thực công việc trình xác thực server client, truyền tải certificates thiết lập khoá phiên giao dịch (sesion key) Client server hỗ trợ mật mã (cipher suite) khác tuỳ thuộc vào nhiều yếu tố phiên SSL dùng, sách công ty độ dài khoá mà họ cảm thấy chấp nhận - điều liên quan đến mức độ bảo mật thông tin, … Sau thuật toán mã hoá xác thực SSL sử dụng bao gồm (phiên 3.0): • DES - chuẩn mã hoá liệu (ra đời năm 1977), phát minh sử dụng phủ Mỹ • DSA - thuật toán chữ ký điện tử, chuẩn xác thực điện tử), phát minh sử dụng phủ Mỹ • KEA - thuật toán trao đổi khoá), phát minh sử dụng phủ Mỹ • MD5 - thuật toán tạo giá trị “băm” (message digest), phát minh Rivest • RC2, RC4 - mã hoá Rivest, phát triển công ty RSA Data Security • RSA - thuật toán khoá công khai, cho mã hoá va xác thực, phát triển Rivest, Shamir Adleman • RSA Key Exchange - thuật toán trao đổi khoá cho SSL dựa thuật toán RSA • SHA-1 - thuật toán hàm băm an toàn, phát triển sử dụng phủ Mỹ • SKIPJACK - thuật toán khoá đối xứng phân loại thực phần cứng Fortezza, sử dụng phủ Mỹ • Triple-DES - mã hoá DES ba lần GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] CHƯƠNG 2: BẢO VỆ THÔNG TIN DỰA TRÊN MÃ HÓA CÔNG KHAI Một số khái niệm: 1.1 Khóa (key): Là thông tin quan trọng dùng để mã hóa thông tin giải mã thông tin bị mã hóa Bạn hiểu nôm na khóa mật (password) Độ dài khóa tính theo bit: 128bit, 1024bit hay 2048bit, Khóa dài khó phá Chằng hạn khóa RSA 1024bit đồng nghĩa với việc chọn 2^1024 khả 1.2 Mã hóa công khai – Mã hóa bất đối xứng: Mã hóa quy rắc (rule), hệ thống (system) chế (mechanism) sử dụng để mã hóa data Các thuật toán thay mang tính máy móc đơn giản, mã hóa thông tin điện tử, nhìn chung sử dụng hàm toán học phức tạp Thuật toán mạnh, phức tạp khó giải mã GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Mã hóa bất đối xứng (Asymmetric Cryptography) quy trình giải mã mã hóa dùng key riêng biệt Khi hệ thống sử dụng phương pháp mã hóa bất đối xứng người tham gia giao dịch sử dụng cặp(tức khóa) khóa khóa công khai khóa bí mật Khóa bí mật giữ kín khóa công khai phổ biến rộng rãi Trong trình giao dịch bên tham gia mã hóa liệu khóa công khai đối tượng cần gửi liệu giải mã khóa bí mật họ Các đặc điểm thuật toán mã hóa bất đối xứng : • Với mật mã bất đối xứng, sử dụng khóa để mã hóa khóa • • để giải mã Mã hóa đối xứng an toàn Do bạn không cần phải gửi khóa đến cho người nhận, mã hóa bất đối • xứng không bị tần công việc chặn khóa Số lượng khóa cần phân phối số lượng người tham gia hệ thống, mật mã bất đối xứng đáp ứng số lượng lớn người • • dùng Mật mã bất đối xứng phân phối khóa phức tạp Mật mã bất đối xứng không đòi hỏi có quan hệ trước người • dùng khác để trao đổi khóa Mật mã bất đối xứng hỗ trợ chữ ký số tính không chối bỏ GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 • • [ĐỀ 10 : SSL] Mã hóa bất đối xứng chậm Mã hóa bất đối xứng làm tăng dung lượng liệu Bảo vệ thông tin dựa thuật toán mã hóa công khai sử dụng chứng thư số : Trong môi trường khóa công khai, thân người dùng tự bảo đảm tính xác thực khóa công khai mà người dùng khóa bị giả mạo Trong thực tế, hầu hết trường hợp người dùng họ trao đổi khóa công khai với Trong tình này, chứng thực số “vũ khí” tuyệt với để giúp người dùng kiểm tra tính xác thực khóa Nói cách đơn giản, chứng thực số tài liệu mà có nội dung chứng minh khóa thật Thông qua hãng thứ 3, chứng thực số cung cấp dễ dàng thuận tiện để đảm bảo tin cậy bên tham gia, chẳng hạn tiến trình giao dịch trực tuyến Chứng thực số giúp kiểm tra tính xác thực người dùng gắn với khóa công khai, sau ký số chứng thực cách dùng khóa riên tư Chứng thực dạng tương tự lái xe, hộ chiếu, giấy CMND… để giúp nhận diện chủ nhân thật GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Một giấy chứng nhận điện tử thường bao gồm thông tin sau: • tên quan cấp giấy chứng nhận (issuer's name) • tên thực thể(entity) cấp giấy chứng nhận(còn gọi đối tượng - subject) • khóa công khai subject • tem thời gian(time-stamps) cho biết thời gian có hiệu lực giấy chứng nhận Chỉ có quan có thẩm quyền Certificate Authority (thường gọi tắt CA) đươc phép cấp giấy chứng nhận Giấy chứng nhận kí khóa riêng người cấp CA tổ chức theo dạng "hierarchy" tương tự domain-name Dĩ nhiên bạn tạo CA cho riêng cho GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Đây mô hình cho việc sử dụng chứng thư số client server: GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] CHƯƠNG 3: MÔ TẢ CHƯƠNG TRÌNH XÂY DỰNG TRÊN NGÔN NGỮ C++ Giới thiệu thư viện OpenSSL: OpenSSL mã nguồn mở thực giao thức SSL TLS Các thư viện lõi (viết ngôn ngữ lập trình C) thực chức mã hóa cung cấp chức tiện ích khác Dự án OpenSSL kết cộng tác nhằm phát triển kỹ thuật bảo mật dạng thương mại, đầy đủ đặc trưng công cụ mã nguồn mở thực thi giao thức Secure Sockets Layer (SSL v2/v3) Transport Layer Security (TSL v1) với thuật toán mã hóa phức tạp Dự án quản lý hiệp hội người tình nguyện giới, sử dụng Internet để trao đổi thông tin, lập kế hoạch phát triển công cụ OpenSSL tài liệu liên quan khác Trong thực xây dựng chương trình, chúng em chọn thư viện OpenSSL để thực giao thức SSL chương trình 10 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Mô tả chương trình: Chương trình với chức tạo ứng dụng, client server Hai ứng dụng kết nối với để chia sẻ tệp tin Cụ thể tệp tin client gửi cho server Tệp tin trước gửi đi, phía client thực ký (sign) khóa riêng (private key) từ Certificate có sẵn Khi Server nhân tệp tin phải xác thực khóa công khai (public key) từ certificate Mô tả số bước chúng em thực qua code: 11 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Khởi tạo Server Server lắng nghe kết nối đến 12 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Khởi tạo client kết nối đến Server Tạo socket để gửi nhận file từ phía 13 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Quá trình gửi file phía client 14 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Quá trình nhận file bên phía Server 15 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Một số hình ảnh chương trình: 16 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 17 [ĐỀ 10 : SSL] GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] KẾT LUẬN SSL giao thức hỗ trợ bảo mật cho thông tin truyền máy tính qua Internet Đây lĩnh vực sâu rộng có nhiều kiến thức liên quan Do thời gian để thực đề tài tương đối ngắn kiến thức thân hạn chế nên chương trình nhóm chúng em thực nhiều thiếu sót, chủ yếu khai thác lý thuyết liên quan đến SSL chưa thể ứng dụng lý thuyết vào chương trình Tuy nhiên, nhóm chúng em tiếp tục nghiên cứu phát triển đề tài này, để chương trình sau hợp lý thiết thực Chúng em xin chân thành cảm ơn thầy Lương Ánh Hoàng đề xuất giúp đỡ chúng em hoàn thành đề tài 18 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] TÀI LIỆU THAM KHẢO [1] Slide giảng “Lập trình mạng” – Ths Lương Ánh Hoàng [2] Pki Implementing And Managing E-Security – The McGraw-Hill Companies [3] www.itgate.com.vn [4] www vnpro.org/forum/ 19 GVHD: Ths.Lương Ánh Hoàng | [...]... 18, 2011 [ĐỀ 10 : SSL] 2 Mô tả chương trình: Chương trình với chức năng chính là tạo ra 2 ứng dụng, client và server Hai ứng dụng này sẽ kết nối với nhau để chia sẻ một tệp tin Cụ thể ở đây sẽ là tệp tin do client gửi cho server Tệp tin này trước khi được gửi đi, sẽ được phía client thực hiện ký (sign) bằng khóa riêng (private key) từ một Certificate có sẵn Khi Server nhân được tệp tin sẽ phải xác thực... | August 18, 2011 [ĐỀ 10 : SSL] Quá trình nhận file bên phía Server 15 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Một số hình ảnh của chương trình: 16 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 17 [ĐỀ 10 : SSL] GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] KẾT LUẬN SSL là một giao thức hỗ trợ bảo mật cho thông tin được truyền giữa các máy tính qua Internet Đây là một lĩnh... kiến thức liên quan Do thời gian để thực hiện đề tài này tương đối ngắn và do kiến thức của bản thân còn hạn chế nên chương trình nhóm chúng em thực hiện còn rất nhiều thiếu sót, chủ yếu vẫn chỉ khai thác được các lý thuyết liên quan đến SSL chứ chưa thể ứng dụng được các lý thuyết đó vào trong chương trình Tuy nhiên, nhóm chúng em sẽ tiếp tục nghiên cứu và phát triển đề tài này, để chương trình về sau... Mô tả một số bước chúng em đã thực hiện qua code: 11 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Khởi tạo Server Server lắng nghe các kết nối đến 12 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Khởi tạo client kết nối đến Server Tạo các socket để gửi nhận file từ 2 phía 13 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] Quá trình gửi file phía client 14 GVHD: Ths.Lương... xin chân thành cảm ơn thầy Lương Ánh Hoàng đã đề xuất và giúp đỡ chúng em hoàn thành đề tài này 18 GVHD: Ths.Lương Ánh Hoàng | August 18, 2011 [ĐỀ 10 : SSL] TÀI LIỆU THAM KHẢO [1] Slide bài giảng “Lập trình mạng” – Ths Lương Ánh Hoàng [2] Pki Implementing And Managing E-Security – The McGraw-Hill Companies [3] www.itgate.com.vn [4] www vnpro.org/forum/ 19 GVHD: Ths.Lương Ánh Hoàng | ... 18, 2011 [ĐỀ 10 : SSL] Mô tả chương trình: Chương trình với chức tạo ứng dụng, client server Hai ứng dụng kết nối với để chia sẻ tệp tin Cụ thể tệp tin client gửi cho server Tệp tin trước gửi đi,... trao đổi thông tin, lập kế hoạch phát triển công cụ OpenSSL tài liệu liên quan khác Trong thực xây dựng chương trình, chúng em chọn thư viện OpenSSL để thực giao thức SSL chương trình 10 GVHD:... SSL] CHƯƠNG 2: BẢO VỆ THÔNG TIN DỰA TRÊN MÃ HÓA CÔNG KHAI Một số khái niệm: 1.1 Khóa (key): Là thông tin quan trọng dùng để mã hóa thông tin giải mã thông tin bị mã hóa Bạn hiểu nôm na khóa mật

Ngày đăng: 22/03/2016, 11:22

Từ khóa liên quan

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

Tài liệu liên quan