Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
3,37 MB
Nội dung
i ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN&TRUYỀN THƠNG PHẠM THỊ PHƯỢNG TÌM HIỂU MƠ HÌNH ĐIỆN TOÁN ĐÁM MÂY VÀ VẤN ĐỀ BẢO MẬT DỮ LIỆU TRONG ĐIỆN TỐN ĐÁM MÂY Ngành: Cơng nghệ thơng tin Chuyên ngành: Khoa học máy tính Mã số: 60 48 0101 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HỒ VĂN CANH Thái Nguyên – 2019 Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com ii LỜI CAM ĐOAN Học viên xin cam đoan luận văn cơng trình nghiên cứu thực thân, hướng dẫn khoa học TS Hồ Văn Canh Các số liệu, kết luận văn trung thực chưa cơng bố hình thức Tất nội dung tham khảo, kế thừa tác giả khác trích dẫn đầy đủ Em xin chịu trách nhiệm nghiên cứu Tác giả Phạm Thị Phượng Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com iii LỜI CẢM ƠN Học viên trân trọng cảm ơn quan tâm, tạo điều kiện động viên Lãnh đạo Đại học Thái Nguyên, thầy cô Khoa Đào tạo sau đại học, khoa đào tạo quý phòng ban Học viện suốt thời gian qua Học viên xin bày tỏ biết ơn sâu sắc tới TS Hồ Văn Canh nhiệt tình định hướng, bồi dưỡng, hướng dẫn học viên thực nội dung khoa học suốt trình nghiên cứu, thực luận văn Xin chân thành cảm ơn động viên, giúp đỡ to lớn từ phía Cơ quan đơn vị, đồng nghiệp gia đình hỗ trợ học viên suốt trình triển khai nội dung nghiên cứu Mặc dù học viên cố gắng, nhiên, luận văn không tránh khỏi thiếu sót Học viên kính mong nhận đóng góp từ phía Cơ sở đào tạo, q thầy cơ, nhà khoa học để tiếp tục hồn thiện tạo sở cho nghiên cứu Xin trân trọng cảm ơn! Thái Nguyên, tháng năm 2019 Học viên Phạm Thị Phượng Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com iv DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ, BẢNG BIỂU Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com v Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com MỞ ĐẦU Đặt vấn đề Điện toán đám mây_ Cloud Computing hình thành năm 1969 có phát triển mạnh mẽ từ có internet băng thơng rộng, làm thay đổi cách thức hoạt động điện toán truyền thống Hiện nay, điện toán đám mây (ĐTĐM) quốc gia giới ứng dụng rộng rãi lĩnh vực hoạt động đời sống, kinh tế xã hội Bằng việc tối ưu sử dụng nguồn tài nguyên hệ thống, điện toán đám mây đem lại nhiều lợi ích, hội cho các quan, tổ chức, doanh nghiệp trình đẩy mạnh ứng dụng cơng nghệ thơng tin, truyền thông vào hoạt động chuyên ngành [3, 4] Các hoạt động liên quan tới điện tốn đám mây phủ quốc gia phát triển mang tính chiến lược phạm vi toàn giới đám mây Nebula, google moderator Mỹ, đám mây G-clould Anh, kasumigaseki Nhật Bản…bởi điện tốn đám mây ln thu hút nhiều quốc gia, tổ chức, tập đồn, cơng ty nhà khoa học, chuyên gia đầu tư nghiên cứu [10, 11, 13] Ở nước ta nay, hầu hết tổ chức, doanh nghiệp có hiểu biết điện toán đám mây Nhiều tổ chức, doanh nghiệp sử dụng điện toán đám mây theo mức độ khác Một số cơng trình nghiên cứu [3, 6] rõ điện toán đám mây giải pháp tối ưu để doanh nghiệp nước ta giảm thiểu chi phí tăng hiệu suất làm việc mức tối đa Tuy nhiên trình nghiên cứu ứng dụng cho thấy có nhiều vấn đề nguy an ninh an tồn thơng tin đặt việc lưu trữ liệu đám mây [16, 24] Do vậy, tình hình sử dụng cơng nghệ đám mây cịn gặp phải số khó khăn định, hiệu ứng dụng chưa phát huy tối đa tính ưu việt dịch vụ Trước yêu cầu cấp bách đó, địi hỏi cần có nghiên cứu, giải pháp tăng tính an tồn cho đám mây việc bảo mật thông tin, liệu lưu trữ Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com Xuất phát từ thực tiễn đó, luận văn “Tìm hiểu điện toán đám mây vấn đề bảo mật liệu điện tốn đám mây” mang tính cấp thiết, thực có ý nghĩa khoa học thực tiễn Đối tượng phạm vi nghiên cứu Nghiên cứu tìm hiểu điện tốn đám mây, kiến trúc, mơ hình, ưu nhược điểm giới thiệu số nhà cung cấp dịch vụ điện toán đám mây - Nghiên cứu số vấn đề bảo mật liệu điện toán đám mây phương pháp khắc phục Từ sâu tìm hiểu phương pháp bảo vệ liệu lưu trữ thuật tốn mã hóa AES RSA - Nghiên cứu cài đặt, thử nghiệm hệ thống máy chủ lưu trữ ownCloud Hướng nghiên cứu luận văn Nghiên cứu tổng quan mô hình điện tốn đám mây, số vấn đề bảo mật liệu điện toán đám mây phương pháp khắc phục Từ sâu nghiên cứu phương pháp bảo vệ liệu lưu trữ thuật tốn mã hóa máy chủ ownCloud Nghiên cứu xây giải pháp mã hóa liệu an tồn từ phía người dùng ổ chức cài đặt, thực nghiệm, đánh giá kết nghiên cứu đạt Những nội dung nghiên cứu Chương 1: Tổng quan điện toán đám mây Nghiên cứu tổng quan khái niệm, lịch sử hình thành phát triển điện tốn đám mây, kiến trúc số mơ hình điện tốn đám mây Đồng thời phân tích ưu, nhược điểm, tình hình triển khai nghiên cứu ứng dụng sử dụng công nghệ điện toán đám mây giới Việt Nam Chương 2: Bảo vệ thơng tin điện tốn đám mây Nội dung Chương nghiên cứu tìm hiểu vấn đề an ninh thông tin, số tiêu chuẩn an ninh thông tin, phân loại an ninh thông tin điện tóa đám mây, vấn đề an ninh liệu điện toán đám mây giải pháp Trên sở đó, tập trung phân tích hai thuật tốn mã hóa liệu lưu trữ cho điện tốn đám mây RSA AES Chương 3: Ứng dụng bảo vệ thơng tin điện tốn đám mây Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com Nghiên cứu xây dựng điện tốn đám mây riêng tích hợp cơng cụ thu thập thông tin tự động dựa phần mềm mã nguồn mở ownCloud Apache Nutch Nghiên cứu phân tích thuật tốn mã hóa liệu phía ownCloud đề xuất xây dựng giải pháp mã hóa liệu an tồn phía client sử dụng RSA kết hợp AES 256 Tiến hành cài đặt, thực nghiệm rút kết luận, đề xuất Phương pháp nghiên cứu - Nghiên cứu báo khoa học nước quốc tế - Nghiên cứu số vấn đề bảo mật liệu điện toán đám mây phương pháp khắc phục Từ sâu tìm hiểu phương pháp bảo vệ liệu lưu trữ thuật tốn mã hóa AES RSA - Cài đặt ứng dụng thử nghiệm đánh giá Ý nghĩa khoa học luận văn Nghiên cứu vấn đề bảo mật liệu điện toán đám mây có ý nghĩa vai trị to lớn việc vệ an ninh thông tin Đây vấn đề quan tâm, thu hút nhiều quốc gia, tổ chức, cá nhân đầu tư nghiên cứu Luận văn kết hợp hai kỹ thuật sử dụng search engine để xây dựng đám mây thu tin tự động kỹ thuật mã hóa để bảo mật liệu Do vậy, luận văn có tính khoa học ứng dụng thực tiễn Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 1.1 Điện toán đám mây Điện toán đám mây - Cloud Computing (sau gọi tắt đám mây) mơ hình điện tốn tiến tới hồn chỉnh, tổ chức tiêu chuẩn, hãng công nghệ đưa định nghĩa cách nhìn riêng Theo Wikipedia: “Điện tốn đám mây mơ hình điện tốn có khả co giãn linh động, tài nguyên thường ảo hóa cung cấp dịch vụ mạng Internet” Theo Ian Foster: “Một mơ hình điện tốn phân tán có tính co giãn lớn mà hướng theo co giãn mặt kinh tế, nơi chứa sức mạnh tính toán, kho lưu trữ, tảng dịch vụ trực quan, ảo hóa co giãn linh động, phân phối theo nhu cầu cho khách hàng bên ngồi thơng qua Internet” Một số định nghĩa cho điện tốn đám mây điện toán máy chủ ảo, nhiên, định nghĩa chưa thực đầy đủ xác, máy chủ ảo thành phần thiết yếu đám mây Nó thành phần chủ chốt để vài loại đám mây hoạt động Hiện tại, định nghĩa Viện tiêu chuẩn công nghệ quốc gia Mỹ - NIST (National Institute of Science and Technology) cho thể rõ chất điện toán đám mây [14]: điện tốn đám mây mơ hình điện toán cho phép truy cập qua mạng để lựa chọn sử dụng tài ngun tính tốn (mạng, máy chủ, lưu trữ, ứng dụng dịch vụ…) theo nhu cầu cách thuận tiện nhanh chóng Đồng thời, điện toán đám mây cho phép kết thúc sử dụng dịch vụ, giải phóng tài nguyên dễ dàng, giảm thiểu tương tác với nhà cung cấp Như vậy, điện tốn đám mây coi bước ảo hóa, bao gồm ảo hóa phần cứng ứng dụng, thành phần quản lý, tổ chức, vận hành hệ thống ảo hóa trước Điện tốn đám mây có năm đặc điểm sau: Tự phục vụ theo nhu cầu (On-deman self-service): Người sử dụng tự cung cấp tài nguyên máy chủ ảo, tài khoản email… mà khơng cần có Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com người tương tác với nhân viên nhà cung cấp dịch vụ (nhân viên công nghệ thông tin) Mạng lưới truy cập rộng lớn (Broad Network Access): Khách hàng truy cập tài nguyên qua mạng máy tính (như mạng Internet) từ nhiều thiết bị khác (điện thoại thơng minh, máy tính bảng, máy tính xách tay…) Tài nguyên chia sẻ (Resource Pooling): Tài nguyên nhà cung cấp dịch vụ chia sẻ tới nhiều khách hàng Thơng thường, cơng nghệ ảo hóa sử dụng nhiều bên thuê cho phép tài nguyên cấp phát động dựa theo nhu cầu khách hàng Tính linh hoạt nhanh (Rapid elasticity): Tài nguyên cung cấp giải phóng nhanh, tự động dựa nhu cầu Khách hàng tăng giảm việc sử dụng dịch vụ đám mây cách dễ dàng theo nhu cầu Ước lượng dịch vụ (Measured service): Khách hàng chi trả cho tài nguyên thực tế họ sử dụng Thông thường, nhà cung cấp dịch vụ cung cấp cho khách hàng bảng điều khiển (dashboard) để họ theo dõi việc sử dụng dịch vụ họ Điện toán đám mây khắc phục yếu điểm quan trọng điện toán truyền thống khả mở rộng độ linh hoạt Các công ty, tổ chức triển khai ứng dụng dịch vụ nhanh chóng, giảm chi phí rủi ro đầu tư ban đầu 1.2 Lịch sử hình thành phát triển điện toán đám mây Điện toán đám mây thường người biết đến công nghệ phát triển năm gần Tuy nhiên, khái niệm không ta nghĩ Điện toán đám mây bắt đầu hình thành vào khoảng kỷ 20, có đời máy tính mainframe Dưới số mốc phát triển quan trọng điện toán đám mây [20]: Năm 1969, J.C.R Liicklider người chịu trách nhiệm tạo điều kiện cho phát triển APANET Advanced Research Project Agency Network nêu ý tưởng mạng máy tính thiên hà, giống với điện tốn đám mây Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 65 Người dùng nên thường xuyên lưu tất khóa mã hóa để ngăn ngừa liệu vĩnh viễn Các khóa mã hóa lưu trữ thư mục sau đây: data/owncloud_private_key: Khóa khơi phục, kích hoạt khóa chia sẻ cơng khai data/public_keys: Các khóa cơng khai tất người dùng data//files_encryption: Các khóa bí mật người dùng tất khóa cần thiết khác để giải mã tập tin user data/files_encryption: Các khóa bí mật tất khóa cần thiết khác để giải mã tập tin lưu trữ toàn hệ thống lưu trữ mở rộng Các khóa mã hóa lưu trữ máy chủ ownCloud, tránh bên thứ ba tiếp xúc với liệu người dùng sử dụng dịch vụ lưu trữ ngồi 3.3.2 Với mã hóa phía người dùng Trong thư mục ownCloud ứng dụng desktop client 1.8 cài đặt, tạo thư mục Encrypted để lưu trữ tập tin cần mã hóa phần mềm Mã hóa file phía client thiết lập chế độ mã hóa cho thư mục Sau đó, ta chuyển chép tập tin vào thư mục Các tập tin tự động mã hóa chuyển lên máy chủ ownCloud Các tập tin có phần mở rộng encrypted Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 66 Hình 3.27: Lưu trữ tập tin mã hóa phía client ownCloud Ta tiến hành thử nghiệm cách copy tập tin debug.log vào thư mục Ecrypted thư mục ownCloud desktop tài khoản admin, tập tin tự động mã hóa chuyển lên máy chủ ownCloud tài khoản admin Với liệu không mã hóa phía người dùng, liệu lưu thư mục NotEncrypted Tuy nhiên liệu người dùng gửi lên mã hóa thuật tốn mã Cloud Tuy nhiên Hình 3.28: Lưu trữ tập tin khơng mã hóa phía client ownCloud Nội dung tập tin mã hóa so với tập tin gốc, giúp đảm bảo an toàn cho liệu người dùng lưu trữ đám mây Tuy nhiên, người dùng quyền sử dụng giao diện web nghĩa không tận dụng ưu điểm xem nơi dung tập tin… sử dụng mã hóa phía client Vì thế, người dùng nên cân nhắc kĩ trước sử dụng loại mã hóa này, nên sử dụng mã hóa phía client cho liệu nhạy cảm, liệu thông thường không cần thiết phải sử dụng mã hóa cần chọn mã hóa liệu phía server để thuận tiện việc sử dụng chia sẻ Kết luận Chương Trên sở nghiên cứu tổng quan điện toán đám mây kỹ thuật mã hóa liệu chương 2, nội dung Chương nghiên cứu xây dựng điện tốn đám Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 67 mây riêng tích hợp cơng cụ thu tin tự động để tăng khả mở rộng cho đám mây Đã tiến hành cài đặt, phân tích trình mã hóa liệu thơng tin tài liệu hệ thống máy chủ ownCloud, đánh giá an tồn việc mã hóa đám mây Đồng thời sâu nghiên cứu xây dựng giải pháp mã hóa liệu an tồn sử dụng phía client cách kết hợp hai thuật tốn mã hóa RSA AES Theo đó, tổ chức cài đặt, thực nghiệm để đánh giá việc mã hóa liệu đám mây dùng riêng, rút số kết luận, làm sở khoa học đề xuất, triển khai, ứng dụng thực tiễn KẾT LUẬN Luận văn “Tìm hiểu điện toán đám mây vấn đề bảo mật điện tốn đám mây” hồn thành đạt số kết sau: Đã nghiên cứu tìm hiểu tổng quan vấn đề điện toán đám mây bao gồm khái niệm, kiến trúc, mơ ưu, nhược điểm trình sử dụng, ứng dụng thực tiễn Trên sở đó, phân tích làm rõ nội dung an ninh thông tin, phân loại, tiêu chuẩn an ninh thông tin Từ lựa chọn sâu nghiên cứu vấn đề an ninh liệu mơ hình đám mây phân tích sở tốn học, ngun lý, chế hoạt động hai hệ mật mã RSA AES Với kết nghiên cứu lý thuyết đạt được, luận văn nghiên cứu xây dựng giải pháp mã hóa liệu an tồn cách kết hợp hai thuật tốn mã hóa RSA với AES phục vụ việc mã hóa liệu phía người dùng Đã tiến hành nghiên cứu, xây dựng hệ thống đám mây riêng tự động thu thập thông tin liệu Tổ chức cài đặt, thực nghiệm, đánh giá kết nghiên cứu bảo mật liệu hệ thống hai khía cạnh người dùng server Theo rút nhận xét ưu, nhược điểm giải pháp đề xuất, làm sở khoa học vững để tiếp tục nghiên cứu, ứng dụng thực tiễn triển khai Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 68 Tuy nhiên, để giải cách triệt để yêu cầu đặt ra, cần tiếp tục có nghiên cứu chuyên sâu, ứng dụng giải pháp đại phần mềm phần cứng để nâng cao độ bảo mật, an toàn liệu cho đám mây Mặt khác cần tiếp tục phát triển nâng cao khả mở rộng cho đám mây cách ứng dụng công nghệ Big data, AI, IoT.v.v TÀI LIỆU THAM KHẢO Tiếng Việt [1] Bộ Thông tin truyền thông, “Hướng dẫn tiêu chuẩn ứng dụng công nghệ thông tin quan nhà nước”, Hà Nội, 2008 [2] Bộ Thông tin truyền thông, “Quyết định quy định chức năng, nhiệm vụ, quyền hạn cấu tổ chức trung tâm phần mềm nguồn mở điện toán đám mây trực thuộc viện công nghiệp phần mềm nội dung số Việt Nam”, Hà Nội, 2014 [3] Hoàng Lê Minh, “Hạ tầng công nghệ thông tin dùng chung dịch vụ điện tốn đám mây dùng riêng”, Viện Cơng nghiệp phần mềm nội dung số Việt Nam, 2017 [4] Trương Ngọc Hạnh, Trần Đức Sự, “Nghiên cứu mô hình xử lý liệu mã hóa điện tốn đám mây”, Đại học Thái Nguyên, 2015 [5] Trần Nhật Vinh, Lê Văn Sơn, “Nghiên cứu mơ hình điện tốn đám mây, cài đặt, thử nghiệm, đánh giá”, Đại học Đà Nẵng, 2011 [6] Vũ Thị Ngân, Hồ Văn Canh, “Nghiên cứu bảo vệ thơng tin điện tốn đám mây”, Đại học Công nghệ, Đại học Quốc gia Hà Nội, 2015 Tiếng Anh [7] Alfred J Menezes, Paul C van Ooschot, Scott A Vanstone, “Handbook of Applied Cryptography”, pp.425-481, CRC Press, 1996 [8] Bernstein, David; Ludvigson, Erik; Sankar, Krishna; Diamond, Steve; Morrow, Monique, “Blueprint for the Intercloud - Protocols and Formats for Cloud Computing Interoperability”, IEEE Computer Society, 2009 Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 69 [9] Borko Furht, Armando Escalante, “Handbook of Cloud Computings”, Springer, USA, 2010 [10] CPNI, “Information security briefing Cloud Computing”, Centre for the protection of Nationnal Infrastructure, 2010 [11] CSO, Vormetric, “Data Security in the Cloud”, Gartner Inc, 2010 [12] Jan de Muijnck-Hughes BSc, “Data Protection in the Cloud”, Radboud University Nijmegen, Netherland, 2014 [13] Moritz Borgmann, Tobias Hahn, Michael Herfert, Thomas Kunz,Marcel Richter, Ursula Viebeg, Sven Vowé, “On the Security of Cloud Storage Services”, SIT Technical Reports, Germany, 2012 [14] NIST, “NIST Cloud Computing Security Reference Architecture”, U.S Department of Commerce, US, 2014 [15] Sajjad Hashemi, “Data Storage Security Challenges in Cloud Computing, International Journal of Security”, Privacy and Trust Management, 2013 [16] Vic (J.R.) Winkler, “Securing the Cloud”, Syngress, USA, 2011 [17] Ya Liu, “Data Security in Cloud Computing”, Eindhoven University of Technology, Philips, 2012 Website [18] http://cloudcomputingnet.com/cloud-computing-architecture/ [19] https://owncloud.org/ [20] https://wiki.apache.org/nutch/NutchTutorial [21] http://psg.hitachi-solutions.com/credeon/faq/does-credeon-work-withowncloud [22] http://www.forbes.com/2009/07/30/cloud-computing-securitytechnology-cio-network-cloudcomputing.html (available: 2009) [23] https://cloudsecurityalliance.org [24] https://doc.owncloud.org/desktop/1.8/ Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 70 [25] https://github.com/owncloud/core/blob/master/apps/encryption/lib/crypt o/crypt.php Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 71 PHỤ LỤC Phụ lục 1: Mã nguồn Chương trình mã hóa file // -// -using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Xml.Linq; namespace Encryptor { /// /// Provide encryption and decryption function /// public static class Encipher { /// /// Generate RSA key pair /// /// Receive public key /// Receive private key public static void GenerateRSAKeyPair(out string publicKey, out string privateKey) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048); publicKey = rsa.ToXmlString(false); privateKey = rsa.ToXmlString(true); } /// /// /// /// the file to Encrypt a file Full path of be encrypted Số hóa Trung tâm Học liệu Cơng nghệ thơng tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 72 /// Full path of the encrypted file /// Full path of the generated manifest file /// Product name /// Product version /// RSA key used to encrypt the one-time symmetrical key /// RSA key id for backend index /// Encryption information including symmetrical keys for data encryption and signature, just for debug purpose public static string Encrypt(string plainFilePath, string encryptedFilePath, string manifestFilePath, string rsaKey) { byte[] signatureKey = GenerateRandom(64); byte[] encryptionKey = GenerateRandom(16); byte[] encryptionIV = GenerateRandom(16); EncryptFile(plainFilePath, encryptedFilePath, encryptionKey, encryptionIV); byte[] signature = CalculateSignature(encryptedFilePath, signatureKey); CreateManifest(signature, signatureKey, encryptionKey, encryptionIV, rsaKey, manifestFilePath); return CreateEncryptionInfoXml(signatureKey, encryptionKey, encryptionIV); } /// /// Create encryption information in the form of xml string /// Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 73 /// Signature Key /// AES Encryption key /// AES Encryption key IV /// xml string containing key informations private static string CreateEncryptionInfoXml(byte[] signatureKey, byte[] encryptionKey, byte[] encryptionIV) { string template = "" + "" + "" + "" + "" + "" + ""; XDocument doc = XDocument.Parse(template); doc.Descendants("AESKeyValue").Single().Descendants(" Key").Single().Value = Convert.ToBase64String(encryptionKey); doc.Descendants("AESKeyValue").Single().Descendants(" IV").Single().Value = Convert.ToBase64String(encryptionIV); doc.Descendants("HMACSHAKeyValue").Single().Value = Convert.ToBase64String(signatureKey); return doc.ToString(); } /// /// Generate random byte array /// /// array length /// Random byte array private static byte[] GenerateRandom(int length) { byte[] bytes = new byte[length]; Số hóa Trung tâm Học liệu Cơng nghệ thơng tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 74 using (RNGCryptoServiceProvider random = new RNGCryptoServiceProvider()) { random.GetBytes(bytes); } return bytes; } /// /// Encrypt a file with AES /// /// Full path of the file to be encrypted /// Full path of the encrypted file /// AES key /// AES IV private static void EncryptFile(string plainFilePath, string encryptedFilePath, byte[] key, byte[] iv) { using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { aes.KeySize = 256; aes.Key = key; aes.IV = iv; ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV); using (FileStream plain = File.Open(plainFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (FileStream encrypted = File.Open(encryptedFilePath, FileMode.Create, FileAccess.Write, FileShare.None)) { using (CryptoStream cs = new CryptoStream(encrypted, encryptor, CryptoStreamMode.Write)) { plain.CopyTo(cs); Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 75 } } } } } /// /// Encrypt a file with AES /// /// Full path of the encrypted file /// Full path of the file to be decrypted /// AES key /// AES IV public static void DecryptFile(string plainFilePath, string encryptedFilePath, byte[] key, byte[] iv) { using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { aes.KeySize = 256; aes.Key = key; aes.IV = iv; ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV); using (FileStream plain = File.Open(plainFilePath, FileMode.Create, FileAccess.Write, FileShare.None)) { using (FileStream encrypted = File.Open(encryptedFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (CryptoStream cs = new CryptoStream(plain, decryptor, CryptoStreamMode.Write)) { encrypted.CopyTo(cs); } } } } } Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 76 /// /// Encrypt byte array with RSA /// /// byte array to be encrypted /// RSA key /// Encrypted array public static byte[] RSAEncryptBytes(byte[] datas, string keyXml) { byte[] encrypted = null; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048)) { rsa.FromXmlString(keyXml); encrypted = rsa.Encrypt(datas, true); } return encrypted; } /// /// Decrypt byte array with RSA /// /// byte array to be decrypted /// RSA key /// Decrypted array public static byte[] RSADescryptBytes(byte[] datas, string keyXml) { byte[] decrypted = null; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048)) { rsa.FromXmlString(keyXml); decrypted = rsa.Decrypt(datas, true); } return decrypted; } /// Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 77 /// Calculate file signature /// /// Full path of the file for calculating signature /// key for calculating signature /// Signature array private static byte[] CalculateSignature(string filePath, byte[] key) { byte[] sig = null; using (HMACSHA256 sha = new HMACSHA256(key)) { using (FileStream f = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { sig = sha.ComputeHash(f); } } return sig; } /// /// Create manifest file of a encrypted package, used for backend parsing /// /// Data signature /// Data signature key /// AES encryption key /// AES encryption IV /// Product name /// Product version /// RSA key /// RSA key ID /// Output manifest file path Số hóa Trung tâm Học liệu Cơng nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 78 private static void CreateManifest(byte[] signature, byte[] signatureKey, byte[] encryptionKey, byte[] encryptionIv, string rsaKey, string manifestFilePath) { string template = "" + "True" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + ""; XDocument doc = XDocument.Parse(template); doc.Descendants("DataEncryption").Single().Descendant s("AESEncryptedKeyValue").Single().Descendants("Key") Single().Value = System.Convert.ToBase64String(RSAEncryptBytes(encrypt ionKey, rsaKey)); doc.Descendants("DataEncryption").Single().Descendant s("AESEncryptedKeyValue").Single().Descendants("IV") Single().Value = System.Convert.ToBase64String(RSAEncryptBytes(encrypt ionIv, rsaKey)); doc.Descendants("DataSignature").Single().Descendants ("Value").Single().Value = System.Convert.ToBase64String(signature); Số hóa Trung tâm Học liệu Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com 79 doc.Descendants("DataSignature").Single().Descendants ("EncryptedKey").Single().Value = System.Convert.ToBase64String(RSAEncryptBytes(signatu reKey, rsaKey)); doc.Save(manifestFilePath); } } } Phụ lục 2: Mã nguồn modul mã hóa ownCloud Học viên xin phép trình bày tài liệu lưu đĩa CD gửi kèm Số hóa Trung tâm Học liệu Cơng nghệ thơng tin – ĐHTN http://lrc.tnu.edu.vn download by : skknchat@gmail.com ... mật người dùng Phần luận văn tập trung sâu vấn đề bảo vệ liệu điện toán đám mây 2.4 An ninh liệu điện toán đám mây Ngoại trừ đám mây riêng, với đám mây công cộng, đám mây lai… việc giao quyền... nghiên cứu luận văn Nghiên cứu tổng quan mơ hình điện toán đám mây, số vấn đề bảo mật liệu điện toán đám mây phương pháp khắc phục Từ sâu nghiên cứu phương pháp bảo vệ liệu lưu trữ thuật toán mã hóa... mơ hình, ưu nhược điểm giới thiệu số nhà cung cấp dịch vụ điện toán đám mây - Nghiên cứu số vấn đề bảo mật liệu điện toán đám mây phương pháp khắc phục Từ sâu tìm hiểu phương pháp bảo vệ liệu