Giới thiệu về CryptDB và mô hình

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

CryptDB là một phương pháp mới để đảm bảo an toàn cho các cơ sở dữ liệu, nó là một proxy quản lý tất cả những thông tin đi tới hoặc đi từ các cơ sở dữ liệu. Nó hoạt động như một lớp trung gian, tiếp nhận tất cả các truy vấn, đảm bảo an toàn cho chúng và gửi chúng tới máy chủ cơ sở dữ liệu. Sau đó nó sẽ nhận lại dữ liệu đã mã hóa từ cơ sở dữ liệu, giải mã và gửi lại dữ liệu đã được giải mã tới người dùng hợp pháp. CryptDB làm việc bằng cách làm cho DBMS thực thi các truy vấn trên cơ sở dữ liệu đã mã hóa như là đang thực thi trên cơ sở dữ liệu rõ. Điều này được áp dụng bằng cách thay đổi cấu trúc của cơ sở dữ liệu để che dấu những thông tin, mối quan hệ có thể được trích ra từ cơ sở dữ liệu và những thông tin này được che dấu bên trong proxy, thậm chí bằng cách mã hóa tên các bảng và các cột. Sau đó mỗi cột sẽ được mã hóa theo một cách nào đó tùy thuộc vào bản chất dữ liệu của chính nó và các truy vấn có thể được áp dụng trên những dữ liệu này.

Hình 2.1 Kiến trúc của CryptDB.

Kiến trúc của CryptDB bao gồm 2 phần: một database proxy và một

unmodified DBMS. CryptDB sử dụng các hàm người dùng định nghĩa (user- defined functions – UDFs) để thực hiện các tính toán mật mã trong DBMS. Các hộp chữ nhật vuông và bo tròn đại diện các tiến trình và dữ liệu tương ứng. Các hình có màu đậm chỉ ra các thành phần được thêm vào bởi CryptDB. Các đường nét đứt cho thấy sự tách biệt giữa máy tính của người dùng, máy chủ ứng dụng, máy chủ đang chạy proxy cơ sở dữ liệu của CryptDB và máy chủ DBMS. Máy chủ ứng dụng chạy code ứng dụng và sinh ra các truy vấn DBMS; máy chủ DBMS lưu trữ, xư lý dữ liệu đã được mã hóa

27

như dữ liệu không mã hóa, ngoài ra còn lưu trữ một vài bảng phụ được sử dụng bởi CryptDB proxy; CryptDB proxy lưu trữ key, mã hóa truy vấn nhận được từ ứng dụng và gửi cho máy chủ DBMS, mã hóa/giải mã dữ liệu.

CryptDB giải quyết vấn đề khi một người quản trị cơ sở dữ liệu “tò mò” (curious database administrator – DBA) hoặc có ý đồ xấu truy cập vào dữ liệu cá nhân của người dùng (ví dụ các bản ghi sức khỏe,các báo cáo tài chính, thông tin cá nhân) bằng cách đánh cắp dữ liệu trên máy chủ DBMS; tại đây, CryptDB ngăn chặn các DBA này đọc được dữ liệu cá nhân của người dùng. Nhưng có một điều cần cân nhắc đó là đánh đổi giữa giữa việc tối thiểu những thông tin quan trọng để lộ cho máy chủ DBMS và khả năng thực thi có hiệu quả một loạt các truy vấn. Các phương pháp tiếp cận hiện tại để tính toán trên dữ liệu mã hóa hoặc là quá chậm hoặc là không cung cấp đủ tính bí mật. Mặt khác, việc mã hoa dữ liệu với một hệ thống mã hóa mạnh, như AES chẳng hạn, sẽ ngăn chặn máy chủ DBMS thực thi nhiều truy vấn SQL. Trong trường hợp này, giải pháp thực tế duy nhất sẽ là để cho server DBMS truy cập tới key mã hóa, nhưng điều đó cũng sẽ cho phép kẻ xấu đạt được truy cập tới toàn bộ dữ liệu.

CryptDB giải quyết thách thức này bằng những ý tưởng chính sau:

 Đầu tiên là thực thi các truy vấn SQL trên dữ liệu mã hóa. CryptDB thực hiện ý tưởng này bằng cách sử dụng một chiến lược mã hóa

nhận biết SQL (SQL-aware encryption). CryptDB mã hóa mỗi mục

dữ liệu theo cách mà cho phép DBMS thực thi trên dữ liệu chuyển đổi. CryptDB hiệu quả bởi nó chủ yếu sử dụng mã hóa đối xứng, tránh mã hóa đồng cấu đầy đủ (fully homomorphic encryption), và chạy trên phần mềm DBMS không sửa đổi (bằng cách sử dụng các hàm chức năng người dùng định nghĩa).

 Kỹ thuật thứ hai là điều chỉnh mã hóa dựa trên truy vấn (adjustable

query-based encryption). Một vài lược đồ mã hóa làm rò rỉ thông

tin về dữ liệu cho máy chủ DBMS nhiều hơn một số khác, nhưng được yêu cầu để xử lý các truy vấn nhất định. Để tránh tiết lộ tất cả mã hóa có thể của dữ liệu cho DBMS từ trước đó, CryptDB điều chỉnh lược đồ má hóa nhận biết SQL (SQL-aware encryption

28

scheme) cho bất kỳ mục dữ liệu đã cho nào, tùy thuộc vào các truy vấn được thực hiện. Để thực hiện những điều chỉnh này một cách hiệu quả, CryptDB sử dụng onions of encryption (sẽ được giải thích

rõ ràng hơn trong các phần sau). Các onion là một cách mới để lưu

trữ một cách chặt chẽ nhiều bản mã trong mỗi onion khác trong cơ sở dữ liệu để tránh chi phí trong việc mã hóa lại.

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

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

(90 trang)