Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG VÀ TRUYỀN THÔNG ĐỒ ÁN MÔN HỌC LẬP TRÌNH MẠNG ĐỀ TÀI: Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng Sinh viên thực hiện : Phan Vũ Phương 10T2LT Đặng Thị Mỹ Vân 10T2LT Nhóm : 11B Cán bộ hướng dẫn : TS. Nguyễn Tấn Khôi 2 Đồ án Lập trình mạng Đà Nẵng, năm 2011 Phan Vũ Phương - Đặng Thị Mỹ Vân Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng 3 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Phan Vũ Phương - Đặng Thị Mỹ Vân 4 Đồ án Lập trình mạng NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Phan Vũ Phương - Đặng Thị Mỹ Vân Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng 5 MỤC LỤC TỔNG QUAN VỀ ĐỀ TÀI .7 a. Bối cảnh và lý do thực hiện đề tài .7 b. Mục tiêu của đề tài 7 c. Phương pháp triển khai đề tài .7 d. Kết cấu của đồ án 7 Chương 1. CƠ SỞ LÝ THUYẾT .9 1. Giới thiệu .9 b. Các thuộc tính yêu cầu 9 c. Kĩ thuật mã hoá chung .9 d. Các giải thuật mã hóa: .11 i. Giải thuật MD5 11 1. Giới thiệu giải thuật MD5 11 2. Thuật toán mã hóa MD5 12 3. Các phương pháp crack MD5 13 ii. Giải thuật Triple-DES (3DES) .14 a. Giới thiệu giải thuật 3DES 14 2. Thuật toán mã hóa 3DES .14 3. Thuật toán giải mã .15 Chương 2. THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 17 1. Mô tả chức năng 17 b. Phân tích các chức năng 17 c. Mô hình hệ thống .17 Chương 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 18 1. Môi trường triển khai 18 2. Kết quả các chức năng của chương trình 18 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 19 Phan Vũ Phương - Đặng Thị Mỹ Vân 6 Đồ án Lập trình mạng LỜI MỞ ĐẦU Ngày nay, nhu cầu bảo mật thông tin trên mạng là một nhu cầu cấp thiết. Cùng với sự phát triển của Internet, việc xâm nhập bất hợp pháp các thông tin mật, các chương trình và dữ liệu quan trọng, và phá hoại thông qua Internet cũng gia tăng về số lượng, loại hình và kỹ thuật. Do đó, song song với việc phát triển và khai thác các dịch vụ trên Internet, vấn đề đảm bảo an ninh trên mạng là một vẫn đề rất quan trọng. Các nội dung thông tin lưu trữ và lưu truyền trên mạng luôn là đối tượng để tấn công, do người sử dụng luôn truy nhập từ xa, thông tin xác thực người sử dụng như mật khẩu, bí danh luôn phải truyền đi trên mạng. Những kẻ xâm nhập tìm mọi cách giành được những thông tin này và từ xa truy nhập vào hệ thống. Càng truy nhập với tư cách người dùng có quyền điều hành càng cao thì khả năng phá hoại càng lớn. Để tránh những rủi ro có thể xảy ra và đảm bảo việc truyền dữ liệu được an toàn hơn, vừa đảm bảo thông tin luôn kết nối, vừa đảm bảo yếu tố bảo mật của thông tin thì phương pháp tốt nhất là mã hoá thông tin. Báo cáo sau đây trình bày về đề tài: “Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng”. Trong khuôn khổ báo cáo, chúng em thực hiện tìm hiểu về các giải thuật mã hóa được ứng dụng phổ biến trên Internet hiện nay, và xây dựng được một ứng dụng mã hóa minh họa. Phan Vũ Phương - Đặng Thị Mỹ Vân Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng 7 TỔNG QUAN VỀ ĐỀ TÀI a. Bối cảnh và lý do thực hiện đề tài Với sự phát triển của Internet như hiện nay, thông tin trên mạng mang nhiều nguy cơ bị tấn công, xâm nhập bất hợp pháp. Việc bảo mật thông tin trên môi trường Internet là rất cấp thiết. Để vừa đảm bảo thông tin luôn kết nối, vừa đảm bảo yếu tố bảo mật của thông tin thì phương pháp tốt nhất là mã hoá thông tin. Mã hóa giúp đả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” khi 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. Chính sự quan trọng của mã hóa, nên chúng em chọn đề tài này để tìm hiểu rõ hơn về các giải thuật mã hóa hiện nay và cơ chế của việc mã hóa thông tin trên mạng. b. Mục tiêu của đề tài Đề tài nhằm tìm hiểu được các giải thuật mã hóa MD5, 3DES,… Qua đó, xây dựng chương trình ứng dụng lập trình socket cho phép người dùng chọn một phương pháp mã hóa, gửi nội dung đã mã hóa qua môi trường mạng đến máy server, tùy phương pháp mã hóa, máy server tiến hành giải mã và hiển thị lại nội dung đã được mã hóa ở phía client. c. Phương pháp triển khai đề tài - Tìm hiểu các kỹ thuật mã hóa, giải thuật mã hóa MD5, 3DES,… - Lập trình socket Client - Server - Thiết kế và lập trình ứng dụng, xây dựng chương trình mã hóa trong mô hình client – server d. Kết cấu của đồ án Đồ án gồm các phần: Phan Vũ Phương - Đặng Thị Mỹ Vân 8 Đồ án Lập trình mạng 1. Cơ sở lý thuyết về các giải thuật mã hóa 2. Thiết kế và xây dựng chương trình mã hóa 3. Kết quả thực hiện Phan Vũ Phương - Đặng Thị Mỹ Vân Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng 9 Chương 1. CƠ SỞ LÝ THUYẾT 1. Giới thiệu Mã hoá là một tiến trình biến đổi thông tin, sử dụng các thuật toán nhằm mục đích không cho người khác có thể nắm bắt được nếu thiếu một vốn thông số nhất định (key) để dịch ngược. Đi kèm với mã hoá là giải mã. Có rất nhiều loại thuật toán mã hoá cho dữ liệu máy tính, chúng được gọi tên theo thuật toán và có thể so sánh trực tiếp với nhau, ví dụ mã hoá 128-bit, Triple- DES, 2048-bit RSA,… Mã hóa với mục đích làm cho dữ liệu không thể đọc được bởi bất cứ ai, ngoại trừ những ai được cho phép đọc. Mã hóa sử dụng thuật toán và khóa để biến đổi dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext), làm biến dữ liệu sang hình tức mật mã vô nghĩa (code hay ciphertext). Chỉ ai có thông tin giải mã thì mới giải mã được và đọc được dữ liệu. b. Các thuộc tính yêu cầu 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 ra được nội dung của thông tin chứa đựng trong 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ả năng xác định được thông tin có bị thay đổi trong quá trình truyền thông hay không. - Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay không. c. Kĩ thuật mã hoá chung Các kĩ thuật mã hoá đều sử dụng các khoá (key) làm tác nhân thực hiện việc khoá mã, thông thường khoá được thể hiện bằng độ dài của khoá tính theo bit, số Phan Vũ Phương - Đặng Thị Mỹ Vân 10 Đồ án Lập trình mạng bits càng lớn thì tính bảo mật của phép mã hoá càng cao. Thông thường, để an toàn thì các khoá thường có độ dài 128bits, phương pháp tấn công vét cạn sẽ phải dò là 2128 trường hợp. Có 3 kĩ thuật mã hoá chính: - Symmetric Encryption (Mã hóa đối xứng): Là phương pháp sử dụng cùng một khóa để bảo mật dữ liệu, khóa này vừa dùng để mã hoá và giải mã dữ liệu luôn. Vì vậy khóa này phải được chuyển một an toàn giữa hai đối tượng giao tiếp, vì ai có được khóa này thì hoàn toàn có thể giài mã được thông tin. Khóa có thể được cấu hình trong software hoặc hardware. Thuật toán mã hóa đối xứng nhìn chung thực hiện nhanh nhưng an toàn chưa cao vì có thể bị lộ khóa. Nên thuật toán này thường dùng cho việc mã hóa dữ liệu. Ngày nay có 3 thuật toán mã hóa đối xứng được sử dụng nhiều: DES, 3DES, AES. - Asymmetric Encryption (Mã hóa bất đối xứng): Là phương pháp sử dụng hai khóa: public key và private key. Trong đó public key được cho tất cả thiết bị khác, còn private key thì giữ bí mật cho riêng mỗi thiết bị. Hai khóa này là một cặp, vì chỉ có private key mới giải mã được thông tin do public key mã hóa. Thuật toán mã hóa bất đối xứng rất an toàn nhưng xử lý chậm, do đó thuật toán này thường dùng cho chứng nhận số và quản lý khóa. Sử dụng 2 thuật toán chính đó là: RSA và Diffiel-Hellman(DH), khi thiết lập một IPsec tunnel mới thì các thiết bị Cisco sử dụng hai thuật toán này. RSA dùng để chứng thực thiết bị ở xa, còn DH dùng để trao đổi khóa để phục vụ cho việc mã hóa. - Mã hóa một chiều (hàm băm): là phương pháp mà chuỗi mã hoá không thể bị dịch ngược lại, mỗi chuỗi đã mã hoá chỉ có thể là ánh xạ của duy nhất một chuỗi chưa mã hoá nhập vào. Các thuật toán mã hoá một chiều được dùng nhiều trong quá trình xác thực, lưu mật khẩu, thông tin thẻ tín dụng… Nền tảng của loại này có thể xếp vào cùng loại với mã hoá đối xứng. Các thuật toán nổi tiếng được sử dụng nhiều nhất là MD-5 (Message-Digest algorithm 5) và các thuật toán SHA (SHA-1, SHA-2). Mọi ứng dụng từ các forum Phan Vũ Phương - Đặng Thị Mỹ Vân [...]... với khóa thứ 3, nghĩa là 3DES sử dụng một khóa 168-bit, nên đó an toàn hơn và tất nhiên là việc xử lý sẽ chậm hơn DES 2 Thuật toán mã hóa 3DES 3DES thực ra là mã hóa cùng 1 thông tin qua 3 lần mã hóa DES với 3 khóa khác nhau Do đó, chiều dài mã khóa sẽ lớn hơn và an toàn sẽ cao hơn so với DES Phan Vũ Phương - Đặng Thị Mỹ Vân Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng. .. hàm một chiều F, phép cộng module và phép xoay trái,… Phan Vũ Phương - Đặng Thị Mỹ Vân Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng 13 3 Các phương pháp crack MD5 MD5 là giải thuật mã hóa một chiều nên việc giải mã chỉ có thể dựa vào việc dò tìm từ cơ sở dữ liệu Crack MD5 có các phương pháp sau: • Dictionary: là một kỹ thuật tấn công bằng cách thử nghiệm những trường hợp.. .Tìm hiểu và xây dựng chương trình thực hiện các giải thuật mã hóa trên mạng 11 như IPB, VBB cho đến Yahoo! đều ứng dụng trong việc mã hoá mật khẩu của users d Các giải thuật mã hóa: i Giải thuật MD5 1 Giới thiệu giải thuật MD5 MD5 (viết tắt của tiếng Anh Message-Digest algorithm 5, giải thuật phân loại tin nhắn 5) là một hàm băm mật mã được sử dụng phổ biến với giá... thuật mã hóa trên mạng 15 Ta có EK(I) và DK(I) là tượng trưng cho wá trình mã hoá vào giải mã I với khoá là K Mỗi hệ thống mã hoá hay giải mã triple Des là 1 hợp các quá trình giả mã và mã hoá trên Des Quá trình mã hoá Triple Des, ta mã hoá I thành O: O = EK3(DK2(EK1(I))) hay I → DES EK1 ->DES DK2 ->DES EK3 -> O 3 Thuật toán giải mã Quá trình giải mã Triple Des, ta giải mã O thành I: I = DK1(EK2(DK3(O)))... ii Giải thuật Triple-DES (3DES) a Giới thiệu giải thuật 3DES Triple Data Encryption Standard (3DES): là DES được bổ sung thêm một số tính năng cao cấp, nó thực hiện mã hóa dữ liệu thông qua việc xử lý mỗi block 3 lần và mỗi lần với một khóa khác nhau.Trước hết nó sẽ dùng một khóa để mã hóa plain-text thành ciphertext, sau đó lại tiếp tục dùng một khóa khác nữa để mã hóa ciphertext, và tiếp tục mã hóa. .. được mã hoá bằng Triple Des có thể được giải mã bằng Des và 1 bản rõ được mã hoá bằng Des có thể được giải mã bằng Triple Des Phan Vũ Phương - Đặng Thị Mỹ Vân 16 Đồ án Lập trình mạng Triple Des cũng có các chế độ ECB, CBC, CFB ,OFB Về cơ bản cũng giống Des, chỉ việc thay các hàm mã hoá của Des thành Triple Des Với khoá K1=K2=K3 thì TECB, TCBC, TCFB và TOFB cũng tương ứng với các chế độ ECB, CBC, CFB và. .. thông điệp Thuật toán chính của MD5 hoạt động trên một bộ 128 bit Chia nhỏ nó ra thành 4 từ 32 bit, kí hiệu là A,B,C và D Các giá trị này là các hằng số cố định Sau đó thuật toán chính sẽ luân phiên hoạt động trên các khối 512 bit Mỗi khối sẽ phối hợp với một bộ Quá trình xử lý một khối thông điệp bao gồm 4 bước tương tự nhau, gọi là vòng (“round”) Mỗi vòng lại gồm 16 quá trình tương tự nhau dựa trên hàm... dụng MD5 để kiểm tra các gói mà nó phân phối, trong khi hệ điều hành Windows sử dụng phần mềm của hãng thứ ba 2/ MD5 được dùng để mã hóa mật khẩu Mục đích của việc mã hóa này là biến đổi một chuổi mật khẩu thành một đoạn mã khác, sao cho từ đoạn mã đó không thể nào lần trở lại mật khẩu Có nghĩa là việc giải mã là không thể hoặc phải mất một khoãng thời gian vô tận (đủ để làm nản lòng các hacker) Phan Vũ... password luôn thành công, chủ yếu dựa vào sức mạnh tính toán của máy tính: thử mọi trường Phan Vũ Phương - Đặng Thị Mỹ Vân 14 Đồ án Lập trình mạng hợp xảy ra (brute force) bằng cách duyệt qua tất cả các hash password có thể có được tạo nên từ bảng ký tự Hoạt động theo phương thức: tạo ra tất cả các key có thể có và so sánh với key input Có rất nhiều công cụ thực hiện crack md5 bằng phương pháp brute... được sử dụng trong việc đảo chiều các hàm băm mật mã, thường được sử dụng rộng rải trong việc crack các mật mã đã được băm Thường được sử dụng để khôi phục các mật khẩu bằng các ký tự thô (plaintext) với một độ dài nhất định và có thể chứa thêm một số các ký tự đặc biệt Đó là một hình thức cân bằng thời gian bộ nhớ, sử dụng CPU ít hơn nhưng chi phí lưu trữ nhiều hơn và ngược lại Có nhiều công cụ sử