Triển khai cài đặt

Một phần của tài liệu Xử lý và mã hóa bảo mật dữ liệu trên điện toán đám mây (Trang 77)

Trên máy Web server:

 Tiến hành cập nhật hệ điều hành Ubuntu với hai câu lệnh: ~$ sudo apt-get update

~$ sudo apt-get upgrade

Hình 3.4 Cập nhật Ubuntu.

 Cài đặt các gói phần mềm cần thiết và tiến hành tải CryptDB: ~$ sudo apt-get install git ruby

69

Hình 3.5 Tải CryptDB về máy.

 Tiếp theo ta di chuyển vào thư mục của CryptDB vừa tải về và tiến hành chạy kịch bản cài đặt install.rb:

~$ cd cryptdb

~$ sudo ./scripts/install.rb .

Hình 3.6 Chạy kịch bản cài đặt CryptDB.

 Với các phiên bản cũ của CryptDB, để cài đặt được CryptDB ta phải tiến hành qua rất nhiều bước với nhiều câu lệnh phức tạp và khó nhớ bao gồm cài đặt gần 20 gói phần mềm cần thiết, tiến hành tải CryptDB, compile mysql-proxy, build CryptDB trên MySQL,…

70

Để thuận tiện hơn cho người sử dụng cài đặt phần mềm, tác giả đã viết một kịch bản cài đặt bằng ngôn ngữ ruby. Tất cả những gì chúng ta phải làm là chạy kịch bản cài đặt đó và kịch bản cài đặt này sẽ giúp ta thực hiện tất cả những công việc cần thiết để cài đặt thành công CryptDB.

Hình 3.7 Cài đặt CryptDB thành công.

 Cuối cùng ta tiến hành cài đặt php và apache để hoàn tất việc cài đặt các thành phần cần thiết trên máy Web server:

~$ sudo apt-get install apache2

~$ sudo apt-get install php5 libapache2-mod-php5

Trên máy Database server tương tự ta cũng tiến hành cập nhật như trên máy Web server và cài thêm một thành phần nữa đó là mysql-server:

~$ sudo apt-get update ~$ sudo apt-get upgrade

~$ sudo apt-get install mysql-server 3.2.2. Thử nghiệm mô hình.

Sau khi hoàn tất cài đặt các thành phần trong mô hình thử nghiệm, tiến hành sao chép mã nguồn ứng dụng web vào thư mục /var/ww/ trên máy Web server, sau đó ta chạy CryptDB bằng câu lệnh:

71 ~$ $HOME/cryptdb/bins/proxy-bin/bin/mysql-proxy \ --plugins=proxy \ --event-threads=4 \ --max-open-files=1024 \ --proxy-lua-script=$EDBDIR/mysqlproxy/wrapper.lua \ --proxy-address=127.0.0.1:3307 \ --proxy-backend-addresses=192.168.1.8:3306

Hình 3.8 Chạy proxy trên Web server.

Từ phía Client, ta mở trình duyệt Firefox và truy cập vào ứng dụng web được lưu trên Web server thông qua URL: 192.168.1.7/datn/

72

Hình 3.9 Truy cập ứng dụng web.

Lúc này trên máy Databases server có địa chỉ ip 192.168.1.8 ta đăng nhập vào mysql bằng tài khoản root và xem các cơ sở dữ liệu hiện có.

Hình 3.10 Đăng nhập vào mysql bằng tài khoản root.

Từ máy Client, ta tiến hành tạo ra cơ sở dữ liệu để sử dụng cho ứng dụng web. Sau khi chọn Create và Setup/Reset, ứng dụng web sẽ tiến hành kết nối tới CryptDB tạo ra cơ sở dữ liệu mới là datn và một bảng users trong cơ sở dữ liệu datn. Lúc này trên máy Web server ta sẽ thấy rõ được hoạt động của

73

proxy. Sau khi cơ sở dữ liệu được tạo thành công, trên máy Database server ta sẽ thấy xuất hiện một cơ sở dữ liệu mới là datn cùng một vài cơ sở dữ liệu do CryptDB tạo ra để hỗ trợ các hoạt động truy vấn trên cơ sở dữ liệu đã mã hóa. Trong cơ sở dữ liệu datn trên Database server có một bảng là table_EPDNXMUTKO, bảng này chính là bảng users đã được CryptDB mã hóa và lưu trên Database server với một cấu trúc hoàn toàn khác với cấu trúc của bảng users gốc.

Hình 3.11 Tạo cơ sở dữ liệu trên ứng dụng.

Hình 3.12 Hoạt động của CryptDB khi tạo cơ sở dữ liệu

74

Ta tiến hành tạo ra một vài dữ liệu thông qua chức năng Add Content của ứng dụng web và sử dụng một vài chức năng khác của ứng dụng. Tất cả các truy vấn ứng dụng sinh ra trong quá trình sử dụng đều được CryptDB viết lại, mã hóa trước khi truy vấn tới cơ sở dữ liệu backend, điều này ta hoàn toàn thấy rõ được khi theo dõi hoạt động của proxy trên máy Web server. Còn dữ liệu được lưu trên Database server sẽ được mã hóa hoàn toàn, người quản trị của Database server sẽ không thể đọc được nội dung đã được lưu trữ.

Hình 3.14 Sử dụng một vài chức năng của ứng dụng web.

75

Hình 3.16 Dữ liệu trên Database server được mã hóa hoàn toàn.

3.3. Đánh giá mô hình

3.3.1. Đánh giá về chức năng

Qua quá trình thử nghiệm, ta thấy rõ ràng rằng các chức năng cơ bản đều hoạt động bình thường và không có lỗi gì xảy ra khi thực hiện các truy vấn. CryptDB hỗ trợ hầu hết các truy vấn, do đó ngoài những chức năng cơ bản của ứng dụng thử nghiệm, ta cũng có thể phát triển nhiều chức năng phức tạp hơn nữa cho phù hợp với nhu cầu và điều kiện thực tế của ứng dụng. Tuy nhiên, do vẫn đang trong quá trình phát triển và thử nghiệm, vẫn có một số truy vấn không được CryptDB hỗ trợ như các truy vấn trên các trường nhạy cảm thực hiện các thao tác trên chuỗi (ví dụ chuyển đổi chữ thường) hay thao tác ngày tháng (ví dụ tính toán ngày, tháng, hoặc năm của một giá trị ngày đã đươc mã hóa) chẳng hạn.

Theo một cuộc theo dõi quy mô lớn của sql.mit.edu [2] chỉ ra rằng, trong số 128,840 cột được theo dõi, CryptDB có khả năng hỗ trợ truy vấn trên dữ liệu mã hóa của hầu hết tất cả các cột, chỉ có 1,094 cột là CryptDB không hỗ trợ. Với tỷ lệ hỗ trợ tới hơn 99% như vậy, CryptDB có khả năng đáp ứng gần như hầu hết các truy vấn yêu cầu của những ứng dụng thông thường.

3.3.2. Đánh giá về độ bảo mật dữ liệu

Dữ liệu được lưu trên máy chủ cơ sở dữ liệu hoàn toàn được mã hóa như chúng ta đã thấy trong quá trình thử nghiệm. Nhờ vậy người quản trị cơ sở dữ liệu không thể đọc được dữ liệu được người dùng lưu trữ. Điều chúng ta quan tâm ở đây là độ mạnh yếu của các lược đồ được sử dụng để mã hóa dữ liệu. Như đã thảo luận từ trước, RND và HOM là các lược đồ mạnh nhất, tiếp đến

76

là SEARCH, sau đó là đến DET và JOIN, cuối cùng OPE là lược đồ mã hóa yếu nhất. Tùy từng loại dữ liệu của các cột mà các lược đồ mã hóa sẽ được sử dụng sao cho phù hợp để có thể thực hiện được truy vấn trên dữ liệu mã hóa.

Theo dõi của sql.mit.edu chỉ ra rằng, chỉ khoảng 6.6% các cột là tại mã hóa OPE, các cột khác (93%) là tại mã hóa DET hoặc cao hơn. Trong số các cột tại mã hóa OPE, 3.9% được sử dụng trong mệnh đề ORDẺR BY với LIMIT, 3.7% được sử dụng trong các so sánh không bằng nhau với mệnh đề WHERE, và 0.25% được sử dụng trong phép toán tập hợp MIN hoặc MAX. 3.3.3. Đánh giá về hoạt động

Xét về mặt tốc độ của ứng dụng, do các truy vấn phải đi qua CryptDB và do các hoạt động viết lại các truy vấn, điều chỉnh các lớp mã hóa của các cột cho phù hợp với truy vấn, việc ứng dụng đáp ứng chậm hơn bình thường là điều dễ hiểu. Trong một bài viết gần đây về CryptDB [2], phpBB (gói phần mềm dùng để xây dựng các diễn đàn) đã được đưa ra thử nghiệm, thông lượng (HTTP request/giây) của 10 client song song được đo lường và đánh giá. Từng client liên tục sinh ra các yêu cầu để duyệt diễn đàn, viết và đọc các bài viết cũng như viết và đọc các thông điệp riêng tư. Hình 3.16 cho ta thấy được thông lượng của phpBB trong ba cấu hình khác nhau: (1) kết nối tới máy chủ MySQL, (2) kết nối tới máy chủ MySQL qua MySQL proxy, và (3) kết nối tới CryptDB. Kết quả chỉ ra rằng phpBB mất khoảng 14.5% thông lượng với cấu hình (3) so với cấu hình (1). Hình 3.17 cung cấp thông tin chi tiết hơn về tốc độ xử lý đối với 5 loại request trong phpBB, CryptDB mất thêm 7-18 ms (6-20%) thời gian xử lý cho mỗi request.

77

Hình 3.17 So sánh thông lượng của phpBB

Hình 3.18 Thời gian xử lý 5 loại request

Xét về mặt lưu trữ dữ liệu, CryptDB làm tăng lượng dữ liệu lưu trữ trên DBMS, vì nó lưu trữ nhiều onion cho cùng một trường, và vì các bản mã lớn hơn các bản rõ đối với một vài lược đồ mã hóa. Với phpBB, kích thước cơ sở dữ liệu sử dụng hệ thống không mã hóa là 2.6 MB cho khoảng 1,000 thông điệp riêng tư và 1,000 bài viết được tạo ra bởi 10 người. Cùng một lượng như vậy, CryptDB sẽ tạo ra 3.3 MB dữ liệu, lớn hơn khoảng 1.2 lần.

78

KẾT LUẬN

Như vậy thông qua ba chương chính, đồ án tốt nghiệp “Nghiên cứu mô hình xử lý dữ liệu đã mã hóa bảo mật dữ liệu trong điện toán đám mây”

cơ bản đã đạt được các mục tiêu sau:

 Trình bày những kiến thức cơ bản về điện toán đám mây – một mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet đang ngày càng được triển khai và sử dụng rộng rãi, đem lại nhiều lợi ích, thuận tiện cho người sử dụng.

 Giới thiệu một khái niệm mới trong điện toán đám mây đó là Database-as-a-Service – cơ sở dữ liệu như một dịch vụ. Đưa ra những lợi ích mà Database-as-a-Service đem lại cũng như những hạn chế để từ đó phân tích nghiên cứu xây dựng nên mô hình xử lý dữ liệu đã mã hóa nhằm khắc phục những hạn chế đó.

 Tìm hiểu về CryptDB – một giải pháp mới để đảm bảo an toàn cho dữ liệu lưu trữ trên máy chủ cơ sở dữ liệu bằng cách cho phép truy vấn trên dữ liệu đã mã hóa, một thành phần không thể thiếu trong mô hình.

 Xây dựng ứng dụng thử nghiệm, tiến hành cài đặt các thành phần, thử nghiệm mô hình để từ đó đánh giá được những điểm mạnh, điểm yếu cũng như tính thực tiến của mô hình.

Tuy nhiên, do những hạn chế về tài liệu nghiên cứu, điều kiện thực hiện đồ án cũng như kiến thức nên bên cạnh những mục tiêu đã đạt được, đồ án vẫn còn một số điểm cần hoàn thiện hơn:

 Chưa tìm hiểu sâu về các lược đồ mã hóa được ứng dụng trong CryptDB

 Ứng dụng thử nghiệm còn đơn giản, chưa khai thác hết tính năng mà CryptDB đem lại.

 Thử nghiệm mô hình mới chỉ giới hạn trong phạm vi môi trường máy ảo, chưa thể tiến hành thử nghiệm trong môi trường thực tế. Do đó, trong tương lai khi có điều kiện em sẽ tiếp tục nghiên cứu để hoàn thiện đồ án tốt hơn, cụ thể:

79

 Tìm hiểu thêm về các lược đồ mã hóa khác có thể áp dụng cho mô hình.

 Tìm hiểu, nghiên cứu mã nguồn của CryptDB để có thể tối ưu chương trình, tìm cách giảm thiểu dung lượng dữ liệu lưu trữ trên máy chủ cơ sở dữ liệu, tăng tốc độ xử lý yêu cầu cho ứng dụng.  Phát triển ứng dụng hơn nữa để trở thành một sản phẩm có thể sử

dụng trong thực tế.

 Triển khai thử nghiệm mô hình trong môi trường thực tế để có thể đánh giá được chính xác hơn tính khả thi của mô hình.

Cuối cùng, em xin chân thành gửi lời cảm ơn tới thầy giáo Ths. Phạm Duy Trung đã tận tình hướng dẫn, giúp đỡ em hoàn thành đề tài này. Rất mong nhận được thêm nhiều ý kiến đóng góp của các thầy cô cũng như các bạn quan tâm tới đề tài để em có thể phát triển và hoàn thiện đề tài tốt hơn nữa.

80

TÀI LIỆU THAM KHẢO

[1]. Rajkumar Buyya, Christian Vecchiola, S. Thamarai Selvi. Masterting Cloud Computing – Foundations and Applications Programming.

[2]. Raluca Ada Popa, Catherine M. S. Redfield, Nickolai Zeldovich, Hari Balakrishnan. CryptDB: Protecting Confidentiality with Encrypted Query

Processing. In Proceedings of the 23rd ACM Symposium on Operating

Systems Principles (SOSP), Cascais, Portugal, October 2011.

[3]. Carlo Curino, Evan P. C. Jones, Raluca Ada Popa, Nirmesh Malviya, Eugene Wu, Sam Madden, Hari Balakrishnan, Nickolai Zeldovich. Relational

Cloud: A Database-as-a-Service for the Cloud. In Proceedings of the 5th

Biennial Conference on Innovative Data Systems Research (CIDR 2011),

Pacific Grove, CA, January 2011.

[4]. Raluca Ada Popa, Frank H. Li, Nickolai Zeldovich. An Ideal-Security

Protocol for Order-Preserving Encoding. In Proceedings of the 34th IEEE

Symposium on Security and Privacy (IEEE S&P/Oakland), San Francisco,

CA, May 2013.

[5]. Stephen Tu, M. Frans Kaashoek, Samuel Madden, Nickolai Zeldovich.

Processing Analytical Queries over Encrypted Data. In Proceedings of the

39th International Conference on Very Large Data Bases (VLDB), Riva del

Garda, Italy, August 2013.

[6]. Raluca Ada Popa, Nickolai Zeldovich. Cryptographic treatment of CryptDB's Adjustable Join. Technical Report MIT-CSAIL-TR-2012-006,

Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, March 2012.

[7]. S. Halevi and P. Rogaway. A tweakable enciphering mode. In

Advances in Cryptology (CRYPTO), 2003.

[8]. A. Boldyreva, N. Chenette, Y. Lee, and A. O‟Neill. Order preserving

symmetric encryption. In Proceedings of the 28th Annual International

Conference on the Theory and Applications of Cryptographic Techniques (EUROCRYPT), Cologne, Germany, April 2009.

[9]. M. Cooney. IBM touts encryption innovation; new technology performs

calculations on encrypted data without decrypting it. Computer World, June

81

[10]. P. Paillier. Public-key cryptosystems based on composite degree residuosity classes. In Proceedings of the 18th Annual International

Conference on the Theory and Applications of Cryptographic Techniques (EUROCRYPT), Prague, Czech Republic, May 1999.

[11]. D. X. Song, D. Wagner, and A. Perrig. Practical techniques for searches on encrypted data. In Proceedings of the 21st IEEE Symposium on

Một phần của tài liệu Xử lý và mã hóa bảo mật dữ liệu trên điện toán đám mây (Trang 77)

Tải bản đầy đủ (PDF)

(90 trang)