Cấu trúc dữ liệu trong CryptDB

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 50)

Trong các hệ thống cơ sở dữ liệu, người dùng yêu cầu một vài thông tin hoặc chức năng từ các ứng dụng. Các truy vấn SQL được sử dụng để đám ứng nhu cầu của người dùng. Các máy chủ ứng dụng gửi các truy vấn tới máy chủ DBMS. Máy chủ DBMS xử lý và phản hồi tập kết quả. Hệ thống này có thể bị kẻ xấu tấn công hoặc nghe trộm. Các máy chủ DBMS cũng tò mò về các truy vấn và theo dõi các truy vấn với kết quả của chúng. Khả năng khác là truy cập vật lý và đĩa có thể gây mất trộm dữ liệu. Trong CryptDB, cơ chế của các truy vấn là tương tự, nhưng kiến trúc máy chủ một cách nào đó thay đổi và một máy chủ bổ sung được gọi là Proxy Server được thêm vào hệ thống cơ sở dữ liệu.

Nó giả định rằng tất cả truy vấn từ máy chủ ứng dụng được thực hiện bởi Proxy Server và gửi tới DBMS Server sau khi sửa đôi. Mục đích là giữ thông tin vô nghĩa tại phía DBMS Server để ngăn chặn những người quản trị cơ sở dữ liệu tò mò dòm ngó tới nội dung của các bảng trong cơ sở dữ liệu của nó. Vì lý do này, chúng ta cần làm cho toàn bộ dữ liệu trở nên vô nghĩa.

Việc đầu tiên là tạo một bảng để giữ một vài dữ liệu bên trong cơ sở dữ liệu của DBMS Server. Trong CryptDB, bảng của DBMS Server hoàn toàn khác với bảng thực. Proxy Server thay đổi tên bảng. Sau đó, tùy theo loại của cột (ví dụ int, varchar), sẽ được đưa vào các onion có thể. Proxy Server giữ tất cả các dữ liệu của onion có thể trong các cột khác nhau một cách riêng biệt trong bảng này. Bảng trong Hình 2.9 là một ví dụ đơn giản.

Bảng được tạo mới từ bảng trong Hình 2.9 bởi Proxy Server được thể hiện trong Hình 2.10.

Hình 2.9 Bảng dữ liệu gốc.

Hình 2.10 Bảng được tạo ra bởi Proxy Server.

Việc thứ hai là thêm các trường hợp (instances) vào các bảng hiện tại. Tên của các cột được thay đổi, và mỗi giá trị trong bảng được mã hóa tùy theo

42

thuật toán của lớp onion của nó. Ví dụ, nếu lớp hiện tại của EQ onion là RND, và truy vấn thực hiện equality, thì từng giá trị trong cột tương ứng sẽ được mã hóa với AES trong chế độ CBC. Hoặc thuật toán của Paillier sẽ được sử dụng để mã hóa các giá trị thuộc về lớp HOM của ADD onion. Tất cả những tiến trình mã hóa này được thực hiện bởi Proxy Server.

Khi một truy vấn đến Proxy Server, nó thay đổi truy vấn, Trước hết, Proxy Server quyết định onion nào được sử dụng cho truy vấn này. Proxy Server có các bảng thêm, một trong số chúng là để giữ trạng thái hiện tại của từng onion của từng cột. Sau khi quyết định onion của truy vấn, Proxy Server nhìn vào bảng này, và kiểm tra xem bảng hiện tại của onion có đang ở lớp cần thiết cho truy vấn này không. Nếu không, Proxy Server gọi UDF chịu trách nhiệm gỡ bỏ lớp hiện tại đến lớp cần thiết. Sau quá trình này, Proxy Server thay đổi truy vấn, và gửi nó nó DBMS Server. Toàn bộ dữ liệu được lưu trữ trong cơ sở dữ liệu của DBMS Server đã được mã hóa, và các truy vấn không có ý nghĩa đối với người quản trị cơ sở dữ liệu.

DBMS Server xử truy vấn đã được sửa đổi và trả về một kết quả đã mã hóa cho Proxy Server. Proxy Server lấy các giá trị mã hóa, giải mã chúng và gửi cho Application Server. Application Server không quan tâm đến bất kỳ quá trình mã hóa nào, nó chỉ gửi bản rõ gốc và lấy kết quả, cung cấp dịch vụ cho các client với những kết quả này. Cấu trúc máy chủ cơ bản của CryptDB là như vậy.

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 50)

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

(90 trang)