Đồ án - Mã hóa thông tin và ứng dụng
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CUỐI KỲ MÔN: MÃ HÓA THÔNG TIN VÀ ỨNG DỤNG Thực hiện: Nguyễn Trần Vũ – 0612576 Nguyễn Thanh Xuân – 0612587 GVHD: TS. Trần Minh Triết Thông tin nhóm tác giả: STT Họ tên MSSV Email Điện thoại 1 Nguyễn Trần Vũ 0612576 ngtrvu@gmail.com 0909 377 707 2 Nguyễn Thanh Xuân 0612587 alainnguyen000@gmail.com 0953 776 442 Chức năng đã thực hiện được: 1. Nội dung đồ án phần cơ bản: a. Quản lý tài khoản người dùng: Đăng nhập: người dùng sử dụng email của mình như account và nhập đúng passphrase của mình. Đăng ký mới: Chương trình cho phép người dùng đăng ký tạo mới một tài khoản. Người dùng phải nhập đầy đủ thông tin cá nhân bao gồm email, họ tên, ngày tháng năm sinh, điện thoại, địa chỉ và các thông tin liên quan đến việc mã hóa, giải mã, ký tên, kiểm tra chữ ký như: chiều dài khóa, passphrase. Passphrase có thể được chương trình tự động phát sinh dựa trên thuật toán tham khảo tại địa chỉ: http://www.obviex.com/Samples/Password.aspx Cập nhật tài khoản: Gồm 2 kiểu cập nhật: • Cập nhật passphrase mà không khởi tạo lại cặp khóa • Cập nhật passphrase và tạo lại cặp khóa Đăng xuất. b. Mã hóa và giải mã: Mã hóa: Chương trình cho phép người dùng đăng nhập, chọn các tập tin cần mã hóa (có thể mã hóa cùng lúc nhiều file). Người dùng chọn email người nhận, chọn thuật toán để mã. Nén nội dung: Người dùng có thể nén các tập tin cần mã trước khi tiến hành mã hóa. Giải mã: Người nhận đăng nhập vào hệ thống để giải mã tập tin gửi cho mình. c. Ký và kiểm tra chữ ký: Ký tên: Người dùng đăng nhập, chọn chức năng ký tên. Người dùng chọn các tập tin cần ký (có thể ký nhiều tập tin cùng lúc). Xác nhận passphrase Chữ ký được tạo sẽ đi kèm với các file đã ký Kiểm tra chữ ký: Người dùng đăng nhập, chọn các file cần kiểm tra. Chọn chức năng kiểm tra chữ ký (Có thể kiểm tra cùng lúc nhiều file). 2. Chức năng phần nâng cao: a. Giao diện quản lý hệ thống tập tin, thư mục: Chương trình cho phép người dùng quản lý tập tin, thư mục với giao diện và chức năng giống như windows explorer Chương trình có khả năng truy cập quản lý tập tin, thư mục với đầy đủ các chức năng của context menu trên windows. d. Add-In Word 2007 Chương trình được add-in vào word 2007 với các chức năng: đăng nhập, mã hóa, giải mã, ký và kiểm tra chữ ký toàn bộ nội dung file word mà người dùng đang soạn thảo. e. Add-In Outlook2007 Chương trình được add-In vào Outlook với các chức năng: đăng nhập, mã hóa, giải mã, ký tên, kiểm tra chữ ký. Các file đã mã hóa và file gốc + file chữ ký được attach vào email người gửi. f. Nén tập tin Chương trình cho phép nén tập tin trước khi mã hóa. Các tập tin được chọn sẽ được mã hóa và nén thành 1 tập tin duy nhất. g. Xử lý trên nhiều tập tin cùng lúc Chương trình cho phép mã hóa, ký tên cùng lúc trên nhiều tập tin. Khi mã hóa, chương trình sẽ merge tất cả các tập tin nén thành 1 file duy nhất để mã. Khi ký tên, chương trình sẽ ký lần lượt trên các tập tin đã chọn h. Phim Demo: STT Tên tập tin Mô tả 1 MaHoa.avi Demo các mã hóa hàng loạt các tập tin, có sử dụng nén thành một tập tin mã hóa (*.mh). Có cho phép chọn thuật toán đối xứng, chọn các chế độ padding và cipher. 2 GiaiMa.avi Demo cách giải mã một tập tin (*.mh) ra các tập tin ban đầu. 3 CapNhatTaiKhoan.avi Demo cách đổi passphrase. 4 ChuKyDienTu.avi Demo cách ký trên nhiều tập tin cùng lúc, và xác nhận chữ ký trên nhiều tập tin cùng lúc. i. Hướng dẫn sử dụng: Các vấn đề và giải pháp đã tìm hiểu và xây dựng: 1. Giới thiệu tổng quan: Dữ liệu thông tin người dùng được lưu trữ trong cơ sở dữ liệu Access, thông tin khóa cặp khóa được lưu trữ dưới dạng XML. Tất cả các hàm và xử lý về mã hóa sẽ được đóng gói thành một DLL và sử dụng cho cho chương trình và các ứng dụng add-in vào Word và Outlook. 2. Quản lý người dùng: Thông tin người dùng được lưu trữ vào cơ sở dữ liệu access gồm các thông tin các nhân và các thông tin bảo mật và khóa. Mỗi người dùng được định danh bằng email (ID – Primary Key). Passphrase của người dùng được mã hash kết hợp với username (là email của người dùng) và Salt là một đoạn mã ngẫu nhiên. Thuật toán Hash sử dụng trong chương trình là MD5. Kết quả hash sẽ được lưu vào cơ sở dự liệu Access. Với việc thêm Salt là username và đoạn mã ngẩu nhiên nhằm tránh hacker có thể dò ra một đoạn thông tin điệp có kết quả hash giống với passphrase của người dùng, đồng thời với việc kết hợp username trong việc hash passphrase thì cho dù xem được cơ sở dữ liệu, thay thế các đoạn hash biết trước vẫn ko thể nào xâm phạm một cách bất hợp pháp vào các tài khoản người dùng. Khi tạo tài khoản mới, hệ thống yêu cầu người dùng cung cấp passphrase và độ dài khóa mong muốn (theo bội số của 64). Sử dụng passphrase của người dùng cung cấp (dữ liệu chưa được hash) để mã hóa private key của người dùng và ghi vào tập tin XML chứ thông tin khóa tương ứng với người dùng đó. Thuật toán sử dụng trong việc mã hóa private key là thuật toán mã hóa đối xứng DES. Đường dẫn lưu tập tin sẽ được ghi nhận vào cơ sở dữ liệu. Khi người dùng có yêu cầu thay đổi passphrase, hệ thống sẽ sử dụng passphrase cũ của người dùng để giải mã private key được lưu trong tập tin XML, sau đó sử dụng passphrase mới mã hóa private key rồi cập nhật dữ liệu đã mã trở lại vào tập tin XML. Khi người dùng có nhu cầu muốn hủy cặp khóa đang sử dụng và tạo khóa mới, hệ thống cho phép người dùng thực hiện lại quá trình tạo khóa như khi đi đăng ký tài khoản. Hệ thống sẽ yêu cầu người dùng phải nhập vào passphrase mới (có xác nhận passphrase cũ), sau đó hủy tập tin chứ thông tin khóa và tạo lại khóa, cập nhật vào cơ sở dữ liệu. Khi đó tất cả các dữ liệu được mã hóa hay được ký bằng cặp khóa cũ sẽ không còn tác dụng. Khi cần sử dụng cặp khóa, hệ thống yêu cầu người dùng cung cấp passphrase và sử dụng passphrase đó như secrect key giải mã cipher data của private key đã được lưu trữ trong tập tin xml. Tương ứng với mã hóa, giải mã cũng sử dụng thuật toán đối xứng DES. Import/Export tài khoản: hệ thống sử dụng thông tin khóa… 3. Mã hóa và giải mã tập tin: Tập tin mã hóa chứa các thông tin ở đầu file là: thuật toán mã hóa, các thông số mã của thuật toán đã mã (padding mode, cipher moder, ), ngày tháng, và dữ liệu. Khi thao tác trên nhiều tập tin, các tập tin được chọn sẽ được nối thành một tập tin duy nhất, sau đó sẽ tiến hành mã hóa trên tập tin này. Nếu có yêu cầu được nén, tập tin sau khi mã hóa sẽ được tiến hành nén. 4. Chữ ký điện tử: Khi có yêu cầu của người dùng tạo chữ ký điện tử lên các tập tin, hệ thống sẽ duyệt qua lần lượt các tập tin. Với mỗi tập tin, sử dụng thuật toán hash MD5 để tạo bản hash của tài liệu. Sau đó, yêu cầu người dùng cung cấp passphrase để giải mã private key. Với private key, sử dụng thuật toán RSA để ký lên hash của tài liệu. Với mỗi một tập tin, hệ thống sẽ tạo ra một tập tin chữ ký tương ứng (*.sig) cùng cấp thư mục với tập tin được chọn. Khi tiến hành xác nhận chữ ký, hệ thông cho phép người dùng chọn một số tập tin 5. Các chức năng khác: Dựa trên C# File Browser, có chỉnh sửa để phụ hợp với với chương trình. Tuy nhiên chi cho phép người dùng click chọn từng tập tin mà chưa thể double click được. Add-on Word/Outlook: Tạo các tập tin cài đặt Các thư viện tham khảo: 1. C# File Browser: Steven Roebert - CodeProject http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx 2. Generate Password: How To: Generate a Random Password (C#/VB.NET) http://www.obviex.com/Samples/Password.aspx 3. Nén tập tin 4. Giao diện Ribon . 3. Mã hóa và giải mã tập tin: Tập tin mã hóa chứa các thông tin ở đầu file là: thuật toán mã hóa, các thông số mã của thuật toán đã mã (padding mode,. tập tin xml. Tương ứng với mã hóa, giải mã cũng sử dụng thuật toán đối xứng DES. Import/Export tài khoản: hệ thống sử dụng thông tin khóa… 3. Mã hóa