CryptDB - Đảm bảo an toàn cho cơ sở dữ liệu trong điện toán đám mây

15 891 0
CryptDB - Đảm bảo an toàn cho cơ sở dữ liệu trong điện toán đám mây

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

I.Giới thiệu Điện toán đám mây định nghĩa chi tiết website NIST [1] Trong công việc chúng tôi, đơn giản định nghĩa điện toán đám mâ phân phối nguồn tài nguyên điện toán theo nhu cầu đặt máy chủ từ xa Thông qua việc đánh giá công cụ kết nối băng thông rộng, điện toán đám mây nhận chấp nhận nhiều từ người dùng [2], giảm thiểu chi phí nâng cao tính di động [5] Với phổ biến ngày tăng điện toán đám mây vấn đề an ninh tăng lên [3][4] Các tổ chức xem xét chuyển đổi sang dịch vụ dựa đám mây phải xem xét hiểu vấn đề an ninh, riêng tư, độ tin cậy pháp lý Các quan nghiên cứu quan trọng nhận thức rủi ro đưa báo cáo [6], [7], [8], [9] Theo Gartner, nguy bảo mật điện toán đám mây tóm tắt thành bảy loại sau: “Đặc quyền truy cập người dùng, Tuân thủ quy định, Vị trí liệu, Phân tách liệu, Phục hồi, Hỗ trợ điều tra, Khả tồn dài hạn” [6] Các vấn đề an ninh điều tra sâu hai đối tượng cụ thể, “mất kiểm soát liệu” “sự phụ thuộc vào nhà cung cấp điện toán đám mây” [15] Các sở liệu từ bên (outsourcing) vào đám mây nâng cao mức độ sẵn sàng, mạnh mẽ, đàn hồi hiệu hạn chế tối đa lý thuộc hành Tuy nhiên liệu đám mây bị nhà cung cấp đám mây truy cập Vì thế, nhà cung cấp đám mây, nhân viên chí nhà thầu phụ cố tình vô tình truy cập vào liệu khách hàng Để đảm bảo tính bảo mật liệu mặt kỹ thuật, liệu mã hóa trước đưa vào sở liệu thuê bên Tuy nhiên, việc thực thi truy vấn bí mật tính toán hoàn hảo liệu mã hóa tạo cách hiệu Việc thực tính toán không bình thường với liệu đám mây tìm kiếm, chuyển đổi, lựa chọn, định kiểm soát truy cập có ích Mã hóa thông thường ngăn chặn xử lý liệu đám mây Genrty giải vấn đề ba mươi năm chờ đợi mật mã [14] Ông ta giải thích lược đồ mã hóa cho phép xử lý liệu mã hóa Tuy nhiên lược đồ mã hóa xa với thực tế DARPA tách 20 triệu đô để tìm kiếm vấn đề mật mã giải pháp thiết thực [16] Popa bạn bè từ MIT mang đến giả pháp thiết thực để xử lỹ sở liệu mã hóa [10] Bài viết tập trung vào công việc họ chi tiết điểm yếu công việc họ A.Công việc liên quan Các nhà nghiên cứu cố gắng tìm giải pháp để giữ liệu đám mây bí mật Việc xử lý liệu an toàn đám mây phức tạp Trong phần này, đưa số cách tiếp cận tiếng để giải tính toán an toàn đám mây Mã hóa đồng cấu đầy đủ - Fully homomorphic encryption Như đề cập phần trước, liệu mã hóa trước tải lên đám mây Tuy nhiên, việc sử dụng lược đồ mã hóa thông thường, liệu đươc truy cập đám mây Trong trường hợp này, đám mây sử dụng với mục đích lưu trữ Mã hóa đồng cấu khắc phục hạn chế tới mức định, cho phép phép toán logic mã mà không cần giải mã Mã hóa đồng cấu Paillier ElGamal cho phép phép toán, cụ thể cộng nhân [25][26] Các lược đồ mã hóa đồng cấu đầy đủ cho phép cộng nhân mã, cho phép máy chủ không tin cậy thực tính toán tùy ý liệu mã hóa thay mặ cho client mà không cần giải mã Cụ thể, sử dụng lược đồ mã hóa đồng cấu đầy đủ nhà cung cấp đám mây chay chương trình client mong muốn mà không đạt thông tin rõ Lược đồ má hóa đồng cấu đầy đủ phát minh lần Gentry vào năm 2009 [14] Không may, ngày lược đồ thực tế sử udngj mã hóa đồng cấu đầy đủ nhiều công việc thực lĩnh vực này, vài số hứa hẹn dành cho điện toán đám mây [20] CryptDB: mô hình kẻ công yếu – a weaker attacker model CryptDB [10] triển khai cho phép xử lý truy vấn sở liệu mã hóa Cơ sở liệu quản lý nhà cung cấp đám mây, mục sở liệu mã hóa với khóa mà người sở hữ liệu biết Các truy vấn SQL chạy sở liệu mã hóa sử dụng tập phép toán equality check order comparison CryptDB sử dụng lươc đồ mã hóa cho phép so sánh thực mã CryptDB đại diện mô hình công yếu giả định tồn tài máy chủ proxy ứng dụng tin cậy dựa đám mây Tuy nhiên, CryptDB đại diện vị trí thú vị đánh đổi (trade-off) chức bảo mật từ nhà cung cấp đám mây Trong viết này, vào chi tiết CryptDB Sự thu hồi thông tin riêng tư - Private Information Retrieval Để cho phép tìm kiếm sở liệu từ xa Secure Multi-party Computation sử dụng [19], [21], [24] Những lược đồ sử dụng thực tế đó, hứa hẹ giải vấn đề điện toán đám mây tương lai gần [22], [23] Các chế Private Information Retrieval giải vấn đề với riêng tư tuyệt đối (ví dụ, [17]) Curtmola đề xuất hai lược đồ chống lại đối thủ không thích ứng (non-adaptive) thích ứng (adaptive) với hiệu suất tốt [18] B.Sự đóng góp Sự đóng góp viết cung cấp phân tích chi tiết CryptDB Để dễ hiểu mô tả CryptDB với giải thích chi tiết Tiếp theo, mô tả cấu chúc máy chủ CryptDB phân tích Proxy Server Không may, viết ban đầu không giải thích thuật toán tìm kiếm, mở rộng thuật toán tìm kiếm CryptDB Chúng cho thấy thuật toán tìm kiếm không đủ để đám ứng tất truy vấn tìm kiếm Chúng nhấn mạnh điểm an toàn hiệu CryptDB Cuối cùng, trình bày vài nhận xét mở rộng khu vực nghiên cứu cho CryptDB II.Kiến trúc CryptDB A.Mã hóa lớp - Layered Encryption Mã hóa liệu sở liệu tính toán theo lớp Có mục tiêu khác để đạt được, với mục tiêu tồn “nhân” bao bọc lớp khác nhau, gọi onion [11]: EQ, ORD, SEARCH ADD onion EQ onion nhằm mục đích điều chỉnh lớp cho truy vấn equality, ORD onion nhằm mục đích ddiefu chỉnh rò rỉ thứ tự cho truy vấn so sánh (comparison), SEARCH onion sử dụng để tìm kiếm đoạn van sở liệu mà không làm rò rỉ thông tin Onion không cho phép thực thi giá trị nguyên (integer values) Cuối Add onion nhằm mục đích cộng (add) giá trị mã hóa mà hỗ trợ giá trị nguyên Các onion có lớp khác lớp mã hóa sử dụng thuật toán khác Hơn nữa, thuật toán có mức độ an toàn khác với lớp bên onion bảo mật lớp bên Hơn nữa, giá trị có lớp onion Một sở liệu tạo ra, tất onion lớp an toàn Các truy vấn xử lý cột sở liệu, đó, CryptDB hướng cột (columnoriented) Nếu giá trị cần giải mã tới lớp yếu hơn, toàn cột giải mã Tuy nhiên, khiến cho rò rỉ nhiều thông tin yêu cầu Nếu cần giá trị lớp yếu nhất, toàn cột lớp rò rỉ thông tin Và lưu ý lớp lớp yếu nhất, không tiết lộ rõ cho máy chủ DBMS Lớp bên onion Equi-JOIN, OPE-JOIN, SEARCH HOM không gỡ bỏ Hình EQ Onion Tai lớp an toàn EQ onion lớp RND Lớp RND mã hóa giá trị với AES (thuật toán Rjindaels) chế độ CBC Với số nguyên, Blowfish chế độ CBC thích hợp kích thước khối 64 bit thay kích thước khối 128 bit giảm độ dài mã Giá trị khởi tạo cho hai loại mã hóa giá trị chọn ngẫu nhiên Mỗi giá trị mã hóa thành mã khác kể rõ Vì lý này, lớp RND bị công lựa chọn rõ thích ứng Tuy nhiên, lược đồ không cung cấp chức hiệu Khi cần thiết thực equality check, Lớp RND cần loại bỏ Lớp bên EQ onion lớp DET Lớp lớp bất định (derministic layer) Sau mã hóa thực hiện, hai giá trị giống nhau, mã tương ứng chúng giống Với giá trị cột, hai lớp RND DET đủ để xử lý truy vấn Tuy nhiên, vài truy vấn cần kiểm tra (equality) hai cột khác hai cột khác bảng khác Đối với trường hợp này, lớp cần cập nhật lớp Equi-JOIN Trong lớp này, JOIN-ADJ nối với mã hóa lớp DET JOIN = JOIN-ADJ||DET JOIN-ADJ cho phép máy chủ DBMS điều chỉnh key cột thời gian chạy Bằng cách băm có khóa (keyed hash) với thuộc tính bổ sung mà băm điều chỉnh để thay đổi key chúng mà không truy cạp tới rõ JOIN-ADJ hàm bất định đồng thời chống đụng độ (192-bit), không khả nghịch (non-invertible), bắc cầu Hàm JOIN-ADJ định nghĩa đây: Đường cong Elliptic (ECC) sử dụng thuật toán K khóa khởi tạo ban đầu cho bảng, cột, onion, lớp P điểm đường cong elliptic, tham số public PRF hàm giả ngẫu nhiên (pseudorandom function) ánh xạ giá trị tới số giả ngẫu nhiên (pseudoramdom number) Như AESK0(SHA(value)) K0 khóa cho tất cột sinh từ Master Key Lũy thừa thực tế phép cộng hình học lặp lặp lại điểm đường cong elliptic, nhanh so với lũy thừa RSA Proxy tính toán ΔK=K/K’ gửi cho máy chủ DBMS Máy chủ DBMS sử dụng UDF để giúp chúng chia sẻ JOIN-ADJ cách tính toán với giả định cột c có K cột c’ có K’ khóa lớp JOIN-ADJ Bằng cách sử dụng UDF thích hợp, JOIN-ADJ hai cột khác trở nên giống Do so sánh bình đẳng cách nhìn vào JOIN-ADJ Vì lớp DET sử udngj khóa khác cho cột cho tương quan cột An toàn lược đồ dựa vào Elliptic-Curve Decisional Diffie Hellman Hình ORD Onion ORD onion Lớp an toàn ORD onion giống EQ onion, lớp RND Lớp bên RND cho ORD onion lớp OPE Các thuật toán mã hóa trì thứ tự đủ an toàn hiệu Trong viết gốc CryptDB [10], tác giả không xem xét mã hóa trì thứ tự sau họ đưa vấn đề viết “An Ideal Security Protocol for Order-Preserving Encoding” [11] Thông tin hạn chế đưa onion viết CryptDB [10] Nếu mã hóa x nhỏ mã hóa y, giá trị x nhỏ giá trị y Nếu tìm giá trị mã hóa gữa hai mã hóa này, rõ nằm x y Cụ thể, lược đồ rò rỉ thứ tự, đó, lược đồ yếu so sánh với rò rỉ equality Đối với giá trị cột, lớp đủ để xử lý truy vấn, hai cột khác so sánh để kiểm tra thứ tự, cần tháo bỏ lớp OPE, đạt tới lớp OPE-JOIN Lớp thiếu tính chức lớp EQUI-JOIN EQ onion Để điều chỉnh hai cột thiếu hiệu thuật toán trì thứ tự Có hai giải pháp Giải pháp là, ứng dụng khai báo cột kết nối, xếp khóa, khóa sử dụng cho cột Nó không hợp lý hầu hết tình khai báo trước Giải pháp thứ hai khóa sử dụng cho tất cột lớp Giải pháp giải pháp tốt May thay, range join không sử dụng nhiều Hình SEARCH & ADD Onions SEARCH & ADD onions SEARCH onion có lớp, trình giải mã cho onion SEARCH onion có giá trị, lớp SEARCH bao gồm giá trị Thuật toán tìm kiếm sử dụng CryptDB thuật toán tìm kiếm Song mô tả phần III-D Mục đích SEARCH onion tìm kiếm giá trị mã hóa bên bảng mã hóa ADD onion tương tự Lớp HOM lớp ADD onion Mục đích onion cung cấp số chức với giái trị mã hóa mà không truy cập rõ Điều đạt với mã hóa đồng cấu (homomorphic encryption) Thuật toán sử dụng cho mã hóa đồng cấu CryptDB thuật toán Paillier B.Mã hóa điều chỉnh - Adjustable Encryption Nếu giữu tất lớp cho onion, cách tốt Vì lớp yêu snhaats đưa ra, lớp khác không cần thiết tạo Tuy nhiên, sử dụng lớp cho onion, khó đẻ biết trước lớp an toàn đáp ứng nhu cầu Vì lý này, yêu cầu phải điều chỉnh lớp cách tự động mà không rò rỉ liệu Vấn đề giải với chức điều chỉnh Có onion khác cho mục đích khác Tất onion đưa vào bảng Tùy theo mục đích chúng ta, chọn onion, sử dụng Và giá trị mã hóa với tất lớp ngoài, yếu tới an toàn Với cách tiếp cận này, không truy vấn yêu cầu lớp yếu hơn, lớp không sử dụng Với cột bảng, môi khóa sử dụng để mã hóa giá trị bên trong, với bảng, cột, onion lớp khác nhau, khóa khác sử dụng Khóa thực với hoán vị giả ngẫu nhiên (pseudorandom permutation) sau: Key = PRPMK(bảng t, cột c, onion o, lớp l) Ban đầu, tất onion lớp an toàn lớp RND, HOM SEARCH Nếu cần đến equality order, lớp giải mã Giải mã không cung cấp rõ mã hóa nhiều lớp Các lớp lại không giải mã để giữ liệu an toàn Hơn nữa, lớp yếu OPE-JOIN, Equi-JOIN, SEARCH, ADD không gỡ bỏ C.Hàm người dùng định nghĩa - UDF: User-Defined Function Một chức chứa hướng dẫn để thực tác vụ cụ thể, cung cấp để lặp lại tác vụ dễ dàng Hàm người dùng định nghĩa chức năng, tạo người dùng Người dùng cần có quyền để thực tiến trình sở liệu, người sở hữu sở liệu (database owner – dbo) sử dụng dbo người dùng thực tất hoạt động sở liệu Nếu có bảng gọi Square có hai cột EdgeLength Number, tạo UDF để tính toán diện tích hình vuông bên sở liệu Ví dụ bảng Square Table I Không cần thiết phải giữ giá trị diện tích thêm vào sở liệu Chúng ta tạo UDF, gọi cần tính toán diện tích Đây ví dụ tạo UDF CREATE FUNCTION dbo.area (edge FLOAT) RETURNS FLOAT RETURN(edge * edge); Một truy vấn ví dụ để sử dụng UDF giống sau: SELECT Number, area (Edge Length) AS Area FROM Square; Kết trả giống Table II Thay giữ liệu cho thông tin yêu cầu, tốt tạo UDF, gọi tác vụ cần Trong CryptDB, UDF yêu cầu Việc giải mã kiến trúc lớp để điều chỉnh lớp thực cách sử dụng UDF Và cập nhật trạng thái lớp onion thực cách sử dụng UDF Việc thay đổi tất chế sở liệu khó đạt Do đó, UDF quan trọng chức bổ sung hệ thống sở liệu D.Cấu trúc máy chủ CryptDB - Server Structure in CryptDB Trong hệ thống sở liệu, người dùng yêu cầu vài thông tin chức từ ứng dụng Các truy vấn SQL sử dụng để đám ứng chu cầu người dùng Các máy chủ ứng dụng gửi truy vấn tới máy chủ DBMS Máy chủ DBMS xử lý phản hồi tập kết Hệ thống bị kẻ xấu công nghe trộm Các máy chủ DBMS tò mò truy vấn theo dõi truy vấn với kết chúng Khả khác truy cập vật lý đĩa gây trộm liệu Trong CryptDb, chế truy vấn tương tự, kiến trúc máy chủ cách thay đổi , máy chủ bổ sung gọi Proxy Server thêm vào hệ thống sở liệu Nó giả định tất truy vấn từ máy chủ ứng dụng thực Proxy Server, gửi tới DBMS Server sau sửa đôi Mục đích giữ thông tin vô nghĩa phía DBMS Server để ngăn chặn người quản trị sở liệu tò mò dòm ngó tới nội dung bảng sở liệu [27] Vì lý này, cần làm cho toàn liệu trở nên vô nghĩa Điều tạo bảng để giữ vài liệu bên sở liệu DBMS Server Trong CryptDB, bảng 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ột (ví dụ int, varchar), đưa vào onion Proxy Server giữ tất liệu onion cột khác cách riêng biệt bảng Table III ví dụ đơn giản Bảng tạo từ Table III Proxy Server thể Table IV Điều thứ hai thêm trường hợp (instances) vào bảng Tên cột thay đổi, giá trị bảng mã hóa tùy theo thuật toán lớp onion Ví dụ, lớp EQ onion RND, truy vấn thực equality, giá trị cột tương ứng mã hóa với AES chế độ CBC Hoặc thuật toán Paillier sử dụng để mã hóa giá trị thuộc lớp HOM ADD onion Tất tiến trình mã hóa thực Proxy Server Khi truy vấn đến Proxy Server, thay đổi truy vấn, Trước hết, Proxy Server định onion sử dụng cho truy vấn Proxy Server có bảng thêm, số chúng để giữ trạng thái onion cột Sau định onion truy vấn, Proxy Server nhìn vào bảng này, kiểm tra xem bảng onion có lớp cần thiết cho truy vấn không Nếu không, Proxy Server gọi UDF chịu trách nhiệm gỡ bỏ lớp đến lớp cần thiết Sau trình này, Proxy Server thay đổi truy vấn, gửi nó DBMS Server Toàn liệu lưu trữ sở liệu DBMS Server mã hóa, truy vấn ý nghĩa người quản trị sở liệu DBMS Server xử truy vấn sửa đổi, trả kết mã hóa cho Proxy Server Proxy Server lấy giá trị mã hóa, giải mã chúng, gửi cho Application Server Application Server không quan tâm đến trình mã hóa nào, gửi rõ gốc, lấy kết quả, cung cáp dịch vụ cho client với kết Cấu trúc máy chủ CryptDB III.Một ví dụ đơn giản Trong phần mô tả ví dụ để giải thích cấu trúc CryptDB Có nguyên tắc ví dụ chúng tôi, sửa đổi hạn chế thực theo nguyên tắc Từng bảng có Master Key viết tắt MK suốt viết Chúng có bảng ví dụ gọi Students Bảng có Master Key Như đề cập phần II-B, lớp onion cột bảng có khóa khác theo công thức sau: Key=PRPMK(table t, column c, onion o, layer l) A.Các truy vấn an toàn chức Sau đọc viết CryptDB [10], chí dễ dàng hiểu cấu trúc, khó kết hợp chế CryptDB với truy vấn SQL Vì lý này, minh họa ví dụ để làm rõ bước chi tiết Bảng Studens có hai cột ID Name Cột ID có giá trị nguyên cột Name có giá trị chuỗi Bảng Students tạo câu lệnh sau: CREATE TABLE Students (ID int, Name varchar(255)); Sau tạo bảng, chèn vài giá trị sau: INSERT INTO Students VALUES(1, “Alice”); INSERT INTO Students VALUES(2, “Bob”); INSERT INTO Students VALUES(3, “Eve”); Khi chạy tất truy vấn này, Application Server tạo Table V bảng có liệu thô, cách tốt để lưu trữ bảng sở liệu DBMS Server cho lý an ninh Cụ thể, Proxy Server tạo bảng mã hóa cho DBMS Server Bảng mã hóa tạo Table VI Vì loại liệu cột ID nguyên, SEARCH onion không dùng cho cột Hơn nữa, loại liệu cột Name chuỗi, HOM onion không dùng cho cột Như mô tả từ trước phần II, tất lớp lớp mã hóa an toàn lúc đầu Có bảy lớp Các lớp an toàn onion ba lớp RND, SEARCH HOM Tuy nhiên, chúng có chức Ví dụ, lớp RND không rò rỉ liệu nào, chức hiệu Nếu quay trở lại ví dụ, cách sư rdungj lớp an toàn nhất, chạy truy vấn SELECT * FROMStudents;”, “SELECTNameFROMStudents;” Chú ý Proxy phải thay đổi truy vấn để bảo vệ nội dung bảng gốc Nếu tiếp tục với truy vấn “SELECT Name FROM Students;”, truy vấn thây đổi sau: SELECT C2-IV, C2-Eq FROM DBMS_Table1; DBMS Server xử lý truy vấn này, trả kết Table VII Bảng tương ứng Proxy Server giải mã gửi cho Application Server giống Table VIII Truy vấn trả kết mà chức Tuy nhiên, thay đổi rõ bảng DBMS Server Bạn đọc liệu trả về, nói chung truy vấn đến Application Server yêu cầu số chức cập nhật liệu, lựa chọn hiển thị vài hàng cụ thể bảng, tính trung bình cột B.Các truy vấn với equality leakage Lưu ý equality sở liệu tính quan trọng thường xuyên sử dụng Ví dụ ID sinh viên đạt điểm AA từ giảng trường đại học, tên khách hàng mua sản phẩm cụ thể trung tâm mua sắm só điện thoại người gửi hàng với địa nhận bị sai giải tính equality Nếu quay lại với ví dụ, tạo truy vấn SQL sau: SELECT name FROM Students WHERE id = 1; Proxy Server lấy truy vấn này, sửa đổi theo chức mong muốn Lớp mã hoa cột tính toán kiểm tra xem lớp có phải lớp đám ứng truy vấn yêu cầu không Nếu không, Proxy Server gửi truy vấn UPDATE Truy vấn UPDATE cung cấp để điều chỉnh lớp cột với khóa cho từ Proxy Server Trong ví dụ chúng ta, cần sử dụng UDF để bóc lớp RND thành lớp DET Lý là, muốn biết hai liệu cột, cần sử dụng mã hóa tất định (deeterministic encryption) Nếu giả sử STRIP_RND UDF lấy lớp RND giải mã thành lớp DET, sau Proxy Server gửi truy ván UPDATE Truy vấn gửi khóa mã hóa tới DBMS Server, DBMS Server gỡ bỏ lớp RND UPDATE DBMS_Table1 SET C1-Eq = STRIP_RND (Key, C1-IV,C1-Eq); Nhớ lại khóa thu từ phương trình sau: Key = PRPMK(table t, column c, onion o, layer l) Sau thực thi UDF, cột C1-Eq lớp DET, Proxy Server cập nhật trạng thái onion cột lớp DET DecryptKey(C1-IV, C1-Eq) cấu trúc hàm giải mã Key khóa giải mã lớp RND cho cột bảng Students Giả sử giải mã cột cho sau: DecryptKey(q39f, ge88) = djes DecryptKey(c8x3, 8n4o) = ektd DecryptKey(sk7x, x7wk) = 3kw7 Sau sửa đổi sở liệu DBMS Server, Application Server thay đổi truy vấn cho DBMS sau: SELECT C1-IV, C1-Eq FROM DBMS_Table1 WHERE C1-Eq = djes; Key1 khóa mã hóa lớp JOIN cho cột C1 DBMS_Table1 Và Key2 khóa mã hóa lớp DET cho cột C1 DBMS_Table1 Sau mã hóa giá trị tạo cách mã hóa tất lớp lớp Ví dụ, mã hóa giá trị nguyên tạo sau: EncKey2 (EncKey1 (1)) = djes Trong phần này, bị rò rỉ thông tin cột yêu cầu equality check Nếu liệu cột có giá trị, mã sở liệu DBMS Server giống C.Các truy vấn với order leakage Mã hóa trì thứ tự (Order preserving encryption) vấn đề khó khăn chế tìm kiếm riêng tư bao gồm CryptDB Trong viết gốc CryptDB [10], tác giả không xem xét mã hóa trì thứ tự cách chi tiết, sau nhấn mạnh vấn đề viết khác [11] Phần tóm tắt sau, giá trị mã hóa x nhỏ giá trị mã hóa y, ta biết giá trị x nhỏ y Nếu tìm giá trị mã hóa nằm hai giá trị mã hóa này, dạng giải mã nằm x y Lược đồ để lộ thứ tự, lược đồ yếu truy vấn “lớn hơn”, “nhỏ hơn”, ORDER BY, SORT, MAX, MIN thực với lược đồ mã hóa Việc thực mã hóa trì thứ tự không thực có CryptDB, chí ước lượng cho tính thực tế lược đồ Có nghĩa là, CryptDB triển khai mã hóa trì thứ tự sử dụng thuât toán Boldyreva [12] D.Các truy vấn với chức tìm kiếm Các triển khai viết Song sử dụng cho CryptDB Các truy vấn với LIKE thực sử dụng lược đồ này, thuật toán tìm kiếm cho phép thực tìm kiếm đầy đủ từ (full-word) Trong phần này, giải thích thuật toán tìm kiếm Song[13] Giả sử có nhiều tài liệu riêng tư có lưu trữ giới hạn Dó đó, giữ chúng máy chủ không tin cậy Điều áp dụng cho máy chủ thư, cần giữ e-mail nhân Vì lý riêng tư bảo mật, liệu lưu trữ bên không đáng tin cậy phải mã hóa Không tính tổng quát, coi từ chuỗi N bit Đây giả sử tất từ có độ dài, từ nhỏ đệm (padded), từ dài chia thành khối N bit Trong tìm kiếm tài liệu, quan tâm tới tài liệu cụ thể chứa từ đặc biệt từ khóa đặc biệt Nếu có băng thông thấp cần tải file yêu cầu chứa từ thay tải toàn file Thuật toán tìm kiếm Song lựa chọn tốt để giải vấn đề Lưu ý có hai thuật toán tìm kiếm: thuật toán dựa mục (index-based algorith) thuật toán quét (sequential scan algorith) Thuật toán Song dựa thuật toán quét Sử dụng mục cho tìm kiếm tài liệu lớn thường nhanh quét Trong việc đọc liệu từ nguồn, tốt để sử dụng dựa theo mục, lưu trữ thay đổi từ vấn đề khó để xem xét Chỉ mục đưa thêm thông tin, điều dẫn tới công thống kê Vì lý đó, thuật toán Song thích hợp thuật toán quét 1)Thuật toán tìm kiếm Song liệu mã hóa: có bốn lược đồ tồn thuật toán Song Đầu tiên lược đồ chứng minh an toàn Tuy nhiên, tìm kiếm kiểm soát tìm kiếm không ẩn Để làm cho hệ thống chức hơn, Song giới thiệu ba lược đồ khác Lược đồ co thể mô tả gần sau: Giả sử tìm kiếm từ tài liệu mã hóa bên không đáng tin cậy, thời điểm không muốn lộ thông tin rõ Cơ chế mã hóa lược đồ cung cấp tính bí mật chứng minh Nếu bạn có tài liệu chưa l từ dài N bit, sau bạn tạo chuỗi l giái trị giả ngẫu nhiên (pserudorandom values) dài N bit Để mã hóa từ N bit vị trí thứ i, giá trị tương ứng Si F(Si) nối với với F hàm giải ngẫu nhiên an toàn (secure pseudorandom function), ví dụ Si||F(Si) Hàm F hàm giả ngẫu nhiên an toàn sử dụng khóa để mã hóa Khóa giống cho tất từ tài liệu, khác cho vị trí độc lập Lược đồ chứng minh an toàn có nghĩa máy chủ không đáng tin cậy biết thứ từ rõ Hình lược đồ Từ quan điểm lược đồ bản, muốn tìm từ, cung cấp từ khóa vị trí mà từ xuất Nếu vị trí, cung cấp tất khóa Bên không tin cậy lấy chúng, XOR mã với từ Nếu kết có Si||F(Si) cho vài S, tương xứng xảy biết vị trí từ Nếu bên không tin cậy khóa vị trí, không rỏ rỉ rõ Tuy nhiên, biết vị trí khiến cho tất khóa bị rò rỉ, điều có nghĩa tất tài liệu giải mã cho bên không tin cậy Lược đồ thứ hai mở rộng lược đồ cách hỗ trợ tìm kiếm kiếm soát Trong lược đồ này, khóa gắn với hàm giả ngẫu nhiên khác G láy từ khóa bí mật ngẫu nhiên k’ Với từ, tạo khóa cho hàm F, ki =fk’(Wi)) với W từ tài liệu Sau mã hóa tài liệu, muốn tìm từ, đưa từ khóa sinh sử dụng từ khóa bí mật k Lược đồ không tiết lộ thông tin vị trí không bao gồm từ tìm kiếm Điều cung cấp tìm kiếm kiểm soát Hình lược đồ thứ hai Cho đến nay, từ trao cho máy chủ không tin cậy rõ, nói chung tình chấp nhận Lược đồ thứ ba mở rộng lược đồ thứ hai, hỗ trợ tìm kiếm ẩn Trước tìm kiếm từ, mã hóa từ với thuật toán bất định mã hóa chế độ ECB Từ tìm kiếm mã hóa khóa sinh cách sử dụng hàm G lược đồ thứ hai Tuy nhiên, khóa phụ thuộc vào từ mã hóa, không phụ thuộc vào từ gốc Cơ chế lại giống lược đồ thứ hai Hình Lược đồ thứ ba Vấn đề với lược đồ thứ hai ba việc giải mã không khả thi Sau có gắng nối S F(S), XOR chúng với từ, mã hóa từ Tuy nhiên, phần giải mã, để sinh F(S) từ S, cần biết khóa từ cụ thể Và khóa phụ thuộc vào từ mã hóa Đó mâu thuẫn cho giải mã từ mã hóa yêu cầu từ mã hóa Vì lý này, vài sửa đổi thực với hàm sinh khóa Khóa sinh với N-M bit từ mã hóa độ dài giá trị S Trong giải mã từ, sử dụng S N-M bit mã để sinh N-M bit rõ Với thông tin này, sinh khóa, sử dụng khóa tìm F(S) Và cuối tìm M bit cuối rõ cách XOR M bit cuối mã giá trị F(S) Lược đồ cuối có an toàn chứng minh lược đồ Ngoài thêm tính cách ly truy vấn, bên không tin cậy biết kết tìm kiếm, không thông tin bổ sung vị trí dạng rõ từ Hình Lược đồ cuối 2)Tìm kiếm mã hóa CryptDB: CryptDb sử dụng triển khai thuât toán tìm kiếm Song Thuật toán thực tìm kiếm đầy đủ từ với truy vấn LIKE Trong CryptDB, việc lặp lại từ loại bỏ, từ hóa vị để cung cấp an toàn tìm kiếm Tuy nhiên cách so sánh số lượng mã RND với mã SEARCH, biết số lượng từ lặp lại Sau đó, từ đệm (padded) tới độ dài cố định N bit để mã hóa theo thuật toán Song Các truy vấ n chạy sau: SELECT * FROM Students WHERE Name LIKE “% Alice %”; Sau truy vấn tới Proxy Server, sửa đổi truy vấn với việc mã hóa chuỗi “Alice” Mã hóa giả sử 98wu ví dụ SELECT * FROM DBMS_Table1 WHERE C2-Search LIKE “% 98wu %”; Một UDF làm cho DBMS Server kiểm tra phù hợp mã cột SEARCH với mã hóa chuỗi “Alice” Sự rò rỉ cho DBMS Server liệu có phù hợp với từ đầy đủ hay không Các biểu thức quy nhiều từ không hỗ trợ, tìm kiếm từ đầy đủ (full-word) thực với thuật toán này, phần tìm kiếm CryptDB khong đủ đám ứng nhu cầu cho truy vấn tìm kiếm E.Các truy vấn với homomorphic addition functionality Từ quan điểm truy vấn SQL, tổng số nguyên sư rudngj, không cho truy vấn SUM, mà phần tính toán trung bình Cách thêm chức cộng cho mã đạt cách sử dụng homomorphic Nếu chức homomorphic, phép nhân hai mã mã hóa phép nhân phép cộng rõ hai mã Với CryptDB, phép nhân rõ không sử udngj từ quan điểm truy vấn SQL, thuật toán đồng cấu có tính cộng (additively homomorphic algorithm) cần thiết cho cấu trúc Additively homomorphism mô tả sau: m1 m2 rxo hai giá trị c1 la mã hóa m1 c2 mã hóa m2 c1 × c2 = Enc(m1 × m2) với Enc hàm mã hóa có đặc điểm additively homomorphic Thuật toán đồng cấu sử dụng CryptDB thuật toán Paillier Ngoài có thuật toán Ge & Zdonik Thuật tán này, nói chugn, nhằm mục đích ngăn chặn thỏa hiệp sở liệu cách xử lý truy vấn mã mà không giải mã chúng Nó kết hợp tất giá trị hàng vào mã HOM cho hàng Tuy nhiên yêu cầu gấp hai lần không gian cho trước Vì lý này, CryptDB thuật toán không thực 1)Đặc tính đồng cấu CryptDB: CryptDB, giữ giá trị mã hóa sở liệu Vì lý này, đặc tính đồng cấu giải pháp cho CryptDB Các truy vấn với SUM AVG bao gồm phần Chúng ta tạo truy vấn theo ví dụ Chúng ta cập nhật bảng để làm truy vấn có nghĩa, tính toán tổng số grade Students Bảng cập nhật minh họa Table IX Table IX không giữ bên sở liệu Proxy Server mã hóa giá trị cho việc tạo bảng khác cho DBMS Server Cơ sở liệu tạo cho DBMS Server giống Table X Truy vấn ví dụ giống sau: SELECT SUM (grade) AS average FROM Students; Proxy Server chỉnh sửa truy vấn, gửi tới DBMS Server Theo bảng DBMS Server, truy vấn sửa đổi sau: SELECT SUM (c3-Hom) AS average FROM DBMS_Table2; Sau lấy truy vấn SQL này, DBMS Server gọi UDF chịu trách nhiệm tính toán tổng giá trị Tính tổng thực cách sử dụng đặc tính đồng cấu Có nghĩa là, giá trị mã hóa cột C3HOM nhân, kết dạng mã hóa rõ Ở đây, giá trị qmdl, ahc0, h9dj Giả sử giá trị phép nhân a83g (qmdl × ahc0 × h9dj) = a83g Lưu ý DBMS Server biết giá trị kết mã hóa Các mã nhân dẫn đến kết mã Proxy Server lấy kết mã hóa giải mã Giá trị giải mã tổng giá trị bên cột Grade nhờ đặc tính đồng cấu a83g = Enc (86 + 77 + 95) Dec hàm giải mã Enc có đặc tính đồng cấu , điều xảy Dec (a83g) = 86 + 77 + 95 Cuối cùng, phép tính tổng thực xác phía DBMS Server mà không để lộ thông tin liệu Cụ thể là, DBMS Server nhìn thấy rõ, tính tổng cash tính toán phép nhân mã IV.An ninh tính phức tạp CryptDB ghi thêm [...]... sự thỏa hiệp của cơ sở dữ liệu bằng cách xử lý các truy vấn trên bản mã mà không giải mã chúng Nó kết hợp tất cả các giá trị của một hàng vào một bản mã HOM cho mỗi hàng Tuy nhiên nó yêu cầu gấp hai lần không gian cho trước Vì lý do này, trong CryptDB thuật toán này không được thực hiện 1)Đặc tính đồng cấu của CryptDB: trong CryptDB, chúng ta giữ các giá trị mã hóa trong cơ sở dữ liệu Vì lý do này,... Si||F(Si) Hàm F này là một hàm giả ngẫu nhiên an toàn và nó sử dụng một khóa để mã hóa Khóa này có thể giống nhau cho tất cả các từ trong tài liệu, hoặc nó có thể khác cho từng vị trí độc lập Lược đồ này là có thể chứng minh an toàn có nghĩa là máy chủ không đáng tin cậy không thể biết được bất cứ thứ gì từ bản rõ Hình 4 lược đồ cơ bản Từ quan điểm của lược đồ cơ bản, nếu chúng ta muốn tìm một từ, chúng... giải pháp cho CryptDB Các truy vấn với SUM và AVG được bao gồm trong phần này Chúng ta có thể tạo ra một truy vấn theo ví dụ của chúng ta Chúng ta sẽ cập nhật bảng của chúng ta để làm một truy vấn có nghĩa, và tính toán tổng số grade của Students Bảng được cập nhật của chúng ta sẽ được minh họa trong Table IX Table IX không được giữ bên trong cơ sở dữ liệu Proxy Server mã hóa các giá trị cho việc tạo.. .cho tìm kiếm các tài liệu lớn thường nhanh hơn quét tuần tự Trong khi việc đọc dữ liệu từ một nguồn, nó tốt hơn để sử dụng dựa theo chỉ mục, nhưng lưu trữ và thay đổi các từ ở đây là một vấn đề khó để xem xét Chỉ mục đưa thêm thông tin, và điều này có thể dẫn tới các tấn công thống kê Vì những lý do đó, thuật toán của Song thích hợp hơn thuật toán quét tuần tự 1)Thuật toán tìm kiếm của Song trên dữ. .. toán tìm kiếm của Song trên dữ liệu mã hóa: có bốn lược đồ tồn tại trong thuật toán của Song Đầu tiên là lược đồ cơ bản là có thể chứng minh an toàn Tuy nhiên, không có tìm kiếm được kiểm soát và các tìm kiếm không ẩn Để làm cho hệ thống chức năng hơn, Song giới thiệu ba lược đồ khác Lược đồ cơ bản co thể được mô tả gần như sau: Giả sử rằng chúng ta tìm kiếm một từ trên tài liệu mã hóa trên một bên không... nào về vị trí của dạng rõ của các từ Hình 7 Lược đồ cuối cùng 2)Tìm kiếm mã hóa của CryptDB: CryptDb sử dụng triển khai của thuât toán tìm kiếm Song Thuật toán này thực hiện các tìm kiếm đầy đủ từ với các truy vấn LIKE Trong CryptDB, việc lặp lại các từ được loại bỏ, và các từ được hóa vị để cung cấp an toàn hơn trong tìm kiếm Tuy nhiên bằng cách so sánh số lượng bản mã RND với bản mã SEARCH, có thể... Sự rò rỉ duy nhất cho DBMS Server là liệu có sự phù hợp nào với từ đầy đủ này hay không Các biểu thức chính quy và nhiều từ không được hỗ trợ, chỉ các tìm kiếm từ đầy đủ (full-word) có thể được thực hiện với thuật toán này, vì thế phần tìm kiếm này của CryptDB khong đủ đám ứng nhu cầu của chúng ta cho các truy vấn tìm kiếm E.Các truy vấn với homomorphic addition functionality Từ quan điểm của các truy... thông tin nào về bản rõ Cơ chế mã hóa của lược đồ cơ bản cung cấp tính bí mật có thể chứng minh được Nếu bạn có một tài liệu chưa l từ dài N bit, sau đó bạn tạo một chuỗi l các giái trị giả ngẫu nhiên (pserudorandom values) dài N bit Để mã hóa một từ N bit tại vị trí thứ i, giá trị tương ứng Si và F(Si) được nối với nhau với F là một hàm giải ngẫu nhiên an toàn (secure pseudorandom function), ví dụ... mã hóa các giá trị cho việc tạo ra một bảng khác cho DBMS Server Cơ sở dữ liệu được tạo ra cho DBMS Server sẽ giống như Table X Truy vấn ví dụ của chúng ta có thể giống như sau: SELECT SUM (grade) AS average FROM Students; Proxy Server sẽ chỉnh sửa truy vấn, và gửi tới DBMS Server Theo bảng của DBMS Server, truy vấn sửa đổi sẽ như sau: SELECT SUM (c3-Hom) AS average FROM DBMS_Table2; Sau khi lấy truy... ngẫu nhiên khác G trong đó láy các từ dưới một khóa bí mật ngẫu nhiên k’ Với mỗi từ, nó tạo ra các khóa cho hàm F, ki =fk’(Wi)) với W là một từ trong tài liệu Sau khi mã hóa tài liệu, nếu chúng ta muốn tìm một từ, chúng ta sẽ đưa từ và khóa được sinh ra bằng các sử dụng chính từ đó và khóa bí mật k của chúng ta Lược đồ này không tiết lộ bất kỳ thông tin gì về vị trí không được bao gồm trong từ tìm kiếm

Ngày đăng: 19/06/2016, 09:52

Từ khóa liên quan

Mục lục

  • I.Giới thiệu

    • A.Công việc liên quan

    • B.Sự đóng góp

    • II.Kiến trúc CryptDB

      • A.Mã hóa lớp - Layered Encryption

      • B.Mã hóa có thể điều chỉnh - Adjustable Encryption

      • C.Hàm người dùng định nghĩa - UDF: User-Defined Function

      • D.Cấu trúc máy chủ trong CryptDB - Server Structure in CryptDB

      • III.Một ví dụ đơn giản

        • A.Các truy vấn an toàn nhưng không có chức năng

        • B.Các truy vấn với equality leakage

        • C.Các truy vấn với order leakage

        • D.Các truy vấn với chức năng tìm kiếm

        • E.Các truy vấn với homomorphic addition functionality

        • IV.An ninh và tính phức tạp của CryptDB và các ghi chú thêm.

Tài liệu cùng người dùng

Tài liệu liên quan