Hướng tiếp cận Challenge – Response 28

Một phần của tài liệu NHỮNG VẤN ĐỀ BẢO MẬT KHI TRUY VẤN CƠ SỞ DỮ LIỆU XML ĐỘNG ĐƯỢC “OUTSOURCED” (Trang 28 - 30)

Radu Sion [8] đã đưa ra một giao thức để đảm bảo tính đúngtính đầy đủ của các câu truy vấn dạng bất kỳ dựa trên việc mở rộng giao thức ringer trong tính toán phân bố (distributedcomputation).

Giao thức ringer trong tính toán phân bốđược đưa ra để tránh gian lận trong việc tính toán các bài toán con. Giao thức ringer có nhiều biến thể như basic ringer, bogus ringer hybrid ringer (magic ringer). Xét bài toán sau: tìm ra chuỗi text ban đầu từ chuỗi text mã hóa bằng giải thuật DES. Các trạm làm việc (working station) sẽ phát sinh ra các chuỗi bằng phương pháp tổ hợp, sau đó áp dụng giải thuật DES trên chuỗi này, nếu kết quả trùng khớp với chuỗi mã hóa thì chuỗi phát sinh chính là chuỗi text ban đầu cần tìm. Ý tưởng của basic ringer trong [13] có thểđược tóm tắt như sau:

- supervisor chọn ra một giá trị ngẫu nhiên xi trong miền trị Di mà trạm làm việc i tính toán trên nó, sau đó tính yi = DES(xi). Sau đó, supervisor gởi cho trạm i giá trị yiy. Trong đó, y là chuỗi mã hóa cần giải mã.

- Trạm i nhận được miền trị Di và thực hiện tính toán, nếu việc tính toán là hoàn chỉnh (complete) thì chắc chắn trạm i sẽ tìm ra được giá trị của xihay x (y = DES(x)) . Khi trả kết quả về cho supervisor, xi (có thể có cả x). Khi đó

supervisor có thể biết được thực sự trạm i đã thực hiện đầy đủ công việc.

Để hiện thực, [8] đưa ra một cách tổ chức dữ liệu như sau. Giả sử S là dữ liệu

outsource. S được phân thành nhiều đoạn Si, mỗi Si sẽ được xác định bởi một hàm băm dùng để đảm bảo dữ liệu là chính xác, không bị thay đổi. Giá trị này gọi là

“identity-hash”, được sử dụng để chứng thực các câu truy vấn “identity query”, là những câu truy vấn trả về toàn bộ dữ liệu trong Si.

Quá trình thực thi các câu truy vấn như sau:

- Trong tập các query Q {Q1, Q2, Q3, .. Qa} cần thực thi, querier sẽ chèn vào câu query Qx tại một vị trí bất kỳ, querier đã biết trước kết quả trả về của Qx. Đồng thời, querier tính toán một challenge token bằng {H(ε||ρ(Qx)), ε}. Trong đó, H() là hàm mã hóa một chiều bất khả đảo (non-invertible one-way hashing function); ε : là một giá trị duy nhất theo thời gian (timestamp) để đảm bảo

challenge token là duy nhất; ρ(Qx) : là kết quả trả về đã được biết trước bởi

querier.

- Nhiệm vụ của server là thực thi các câu query và xác định được giá trị x bằng cách áp dụng hàm H() cho các kết quả. Và gởi kèm x về cùng với kết quả của các truy vấn.

Nếu chỉ sử dụng một challenge token thì có thể dẫn đến trường hợp server sau khi đã tìm được challenge token rồi thì ngưng thực hiện các câu truy vấn khác (hoặc thực hiện không đầy đủ). [8] cũng đã trình bày một số phương pháp để khắc phục vấn đề. Đầu tiên là có thể sử dụng nhiều challenge token thay vì một. Tuy nhiên về mặt hình thức thì cách thức này thực ra vẫn không thể giải quyết được vấn đề căn bản. Nghĩa là, vẫn có trường hợp server sau khi nhận diện được đầy đủ các challenge token thì ngưng thực hiện các query còn lại. Đồng thời việc phát sinh nhiều challenge token

thật sự là một gánh nặng tính toán cho các thin-client (querier) như các thiết bị di động (mobile client). Một giải pháp khác được đề ra là sử dụng các fake token. Fake token là một challenge token giả, nghĩa là querier phát sinh ra ngẫu nhiên ra một

challenge token mà không cần quan tâm đến kết quả trả về từ server. Trong tập các

challenge token được gởi đến server sẽ bao gồm r challenge token thực sự và f token

giả. Hai tham sốr, f là có thể thay đổi theo từng tập truy vấn. Vì vậy, server không thể nào có thể xác định được toàn bộ số challenge token được gởi đến. Do đó, bắt buộc

server phải thực hiện đầy đủ các câu query để có thể tìm ra được các challenge token

thật sự.

Những phương pháp trên chỉ tập trung cho giải quyết các câu truy vấn đọc dữ liệu (select query) chứ chưa giải quyết vấn đề cho các câu truy vấn cập nhật/thêm mới dữ liệu (update/insert query). Việc cập nhật dữ liệu thực hiện bằng cách đọc toàn bộ đoạn dữ liệu có chứa dòng cần update (hay sẽ chứa hàng insert). Sau đó thực hiện cập nhật dữ liệu, tính toán lại “identity hash” rồi cập nhật trở lại server. Tuy nhiên, việc xử lý tình huống cập nhật dữ liệu vẫn chỉ là bước khởi đầu [8].

Một phần của tài liệu NHỮNG VẤN ĐỀ BẢO MẬT KHI TRUY VẤN CƠ SỞ DỮ LIỆU XML ĐỘNG ĐƯỢC “OUTSOURCED” (Trang 28 - 30)

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

(93 trang)