Có bốn loại thực thể tham gia vào một hệ thống ODBS: 1 Chủ sở hữu dữ liệu Data Owner - DO: người tạo ra hoặc làm chủ dữ liệu 2 Máy chủ: máy tính đặt tại SP có nhiệm vụ lưu trữ và quản
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
PHẠM THỊ BẠCH HUỆ
NGHIÊN CỨU VÀ PHÁT TRIỂN MỘT SỐ GIẢI PHÁP BẢO MẬT VÀ BẢO VỆ TÍNH RIÊNG TƯ TRONG CƠ SỞ DỮ LIỆU THUÊ NGOÀI (ODBS)
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 62.48.01.01
TÓM TẮT LUẬN ÁN TIẾN SĨ CÔNG NGHỆ THÔNG TIN
TP HỒ CHÍ MINH – 2013
Trang 2Công trình được hoàn thành tại Trường Đại học Khoa học Tự nhiên,
ĐHQG TP HCM
Người hướng dẫn khoa học: PGS TS ĐỒNG THỊ BÍCH THỦYPGS
TS Nguyễn Đình Thúc
Đồng hướng dẫn: PGS TS NGUYỄN ĐÌNH THÚC TS Trần Đan Thư
Phản biện 1: PGS TS TRẦN VĂN LĂNG
Phản biện 2: TS TRẦN NAM DŨNG
Phản biện 3: TS ĐẶNG TRƯỜNG SƠN
Phản biện độc lập 1: GS TS VŨ ĐỨC THI
Phản biện độc lập 2: TS VŨ TUYẾT TRINH
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án cấp cơ sở họp tại Trường Đại học Khoa học Tự nhiên, ĐHQG TP HCM vào hồi giờ ngày tháng năm 2013
Có thể tìm hiểu luận án tại thư viện Quốc Gia Việt Nam, thư viện Trường
Đại học KHTN - ĐHQG TP HCM
Trang 31
GIỚI THIỆU
Mở đầu
Cách quản lý cơ sở dữ liệu (viết tắt là CSDL) truyền thống là chủ sở hữu
dữ liệu (Data Owner - DO) tự đầu tư tài nguyên để lưu trữ và quản lý dữ
liệu của chính họ Khi đó, chi phí quản lý dữ liệu cao làm tăng chi phí hoạt
động của tổ chức
Xu hướng mới trong việc quản lý dữ liệu là sử dụng dịch vụ quản lý
CSDL thuê ngoài (Outsourced Database Service - ODBS) DO không phải đầu tư tài nguyên cho việc lưu trữ và quản lý dữ liệu mà thuê nhà cung cấp (Service Provider - SP) thực hiện điều này Chi phí hoạt động của tổ chức
giảm đi đáng kể để họ trung vào các hoạt động chính yếu hơn
Có bốn loại thực thể tham gia vào một hệ thống ODBS: (1) Chủ sở hữu
dữ liệu (Data Owner - DO): người tạo ra hoặc làm chủ dữ liệu (2) Máy chủ:
máy tính đặt tại SP có nhiệm vụ lưu trữ và quản lý dữ liệu của DO (3) Người
dùng: cá nhân hay ứng dụng truy cập CSDL lưu ở máy chủ theo quyền DO
đã cấp (4) Máy khách: thiết bị đầu cuối có nhiệm vụ tiếp nhận yêu cầu (từ
DO hoặc người dùng) và giao tiếp với máy chủ để đáp ứng cho yêu cầu nhận
được (Hình 1)
Hình 1 Mô hình chung của ODBS
Thông qua máy khách, DO có thể gửi CSDL đến SP, hoặc yêu cầu máy chủ tại SP cập nhật CSDL DO gửi siêu dữ liệu đến người dùng để người
Người dùng
Ở máy khách Ở máy chủ của SP
Gửi/ thao tác trên dữ liệu
Tìm kiếm Gửi/ nhận siêu dữ liệu
Trang 4dùng có thể làm việc được với hệ thống Máy khách còn có chức năng tiếp nhận câu truy vấn từ người dùng, yêu cầu máy chủ thực hiện truy vấn và xử
lý kết quả trả về từ máy chủ để có kết quả cuối cùng
Trong luận án, chúng tôi quan tâm trường hợp SP là một thực thể duy nhất,
và chọn mô hình SMS (Single data owner-Multiple clients-Service provider)
làm bối cảnh nghiên cứu Theo mô hình SMS, một DO thuê SP lưu trữ và quản lý CSDL, ngoài DO còn có nhiều người dùng truy cập CSDL này (Hình 2)
Do máy chủ của SP được xem là
không đáng tin cậy, và quá trình tương
tác giữa các thực thể trong ODBS đều
thông qua mạng diện rộng, nên ODBS
đối diện với nhiều vấn đề về bảo mật
và bảo vệ tính riêng tư
Mục tiêu đề tài Hình 2 Mô hình SMS
Vì lý do trên, cùng với quá trình khảo sát hiện trạng các vấn đề bảo mật và
bảo vệ tính riêng tư cụ thể trong ODBS, chúng tôi nghiên cứu và phát triển
giải pháp cho bốn bài toán sau:
• Bảo vệ tính riêng tư người dùng (User privacy): đảm bảo thông tin
về câu truy vấn (mà người dùng thực hiện) hoặc kết quả truy vấn không bị tiết lộ đối với máy chủ không tin cậy tại SP
• Bảo vệ tính riêng tư dữ liệu (Data privacy): giúp DO giới hạn quyền
truy cập trên một số trường nhạy cảm của CSDL, giảm chi phí quản lý truy cập, tạo thuận lợi cho người dùng khi tương tác với hệ thống
• Xác thực (Authentication): đảm bảo thông tin đăng nhập của người
dùng không bị tiết lộ đối với máy chủ, ngăn chặn tấn công thường gặp trong quá trình xác thực giữa máy khách và máy chủ
DO
Ng ườ i dùng
Máy ch ủ
Trang 53
• Ghi nhật ký hệ thống (Auditing): giúp việc ghi nhật ký hệ thống phục
vụ giải trình (khi cần thiết) mà không làm vi phạm tính bí mật dữ liệu
và tính riêng tư người dùng chứa đựng trong dữ liệu nhật ký
Những đóng góp chính của luận án
Các đóng góp chính của luận án gồm:
• Bảo vệ tính riêng tư người dùng: Đề xuất phương pháp thực thi truy vấn bảo vệ tính riêng tư người dùng giúp ngăn chặn máy chủ thực hiện tấn công dạng thống kê tần suất thực hiện truy vấn (statistical attacks) làm vi phạm tính riêng tư người dùng ([CT1], [CT2])
• Bảo vệ tính riêng tư dữ liệu – Cơ chế quản lý truy cập mức cột: Đề xuất cơ chế quản lý truy cập mức cột FGAC giúp DO giới hạn quyền truy cập trên một số trường nhạy cảm của CSDL, giảm chi phí quản
lý truy cập, tạo thuận lợi cho người dùng khi tương tác với hệ thống ([CT7], [CT4]) Đề xuất cải tiến của FGAC, gọi là EFGAC, nhằm nâng cao hiệu quả quản lý truy cập trong ngữ cảnh CSDL có nhiều biến đổi [CT3]
• Bài toán xác thực: luận án đề xuất cơ chế xác thực lẫn nhau giữa
người dùng và máy chủ nhằm phát hiện trường hợp người dùng
không hợp lệ hoặc mạo danh máy chủ Cơ chế đề xuất giúp đảm bảo tính riêng tư người dùng (user privacy), ngăn chặn tấn công kiểu nghe lén (eavesdropping), tấn công theo kiểu lặp lại (replay attacks),
và tấn công kiểu cướp quyền điều khiển (hijacking attacks) Kết quả này được trình bày trong công trình [CT5]
• Ghi nhật ký hệ thống: luận án đề xuất nghi thức ghi nhật ký và tìm
kiếm trên dữ liệu nhật ký (để phục vụ giải trình khi cần thiết) dùng
cho ODBS đảm bảo tính bí mật dữ liệu và tính riêng tư người dùng [CT6]
Trang 6CHƯƠNG 1 - HIỆN TRẠNG VẤN ĐỀ BẢO MẬT VÀ BẢO VỆ
TÍNH RIÊNG TƯ TRONG ODBS
Với bài toán bảo vệ tính riêng tư người dùng, yêu cầu đặt ra là ta cần bảo
vệ câu truy vấn mà người dùng thực hiện trên CSDL và kết quả truy vấn Giải pháp cho bài toán bảo vệ tính riêng tư người dùng thể hiện qua phương pháp thực thi truy vấn Các phương pháp thực thi truy vấn trên CSDL mã hóa hiện có chỉ có thể sử dụng cho mục tiêu bảo vệ tính bí mật dữ liệu mà không thể dùng cho mục đích bảo vệ tính riêng tư người dùng ([6], [32], [26], [43], [50]) Lý do là máy chủ có thể thực hiện tấn công thống kê tần suất thực hiện một câu truy vấn và kết hợp thông tin đã biết với những câu truy vấn được thực hiện với tần suất cao, để suy ra ngữ nghĩa của câu truy vấn mà người dùng thực hiện Điều này làm vi phạm tính bí mật dữ liệu và tính riêng tư người dùng
Tính riêng tư dữ liệu được bảo vệ bằng một cơ chế quản lý truy cập Sử
dụng những giải pháp quản lý truy cập hiện có, DO gặp phải những khó khăn sau: (1) Không thể giới hạn quyền truy cập của người dùng trên một số thuộc tính nhạy cảm của CSDL (2) DO thường xuyên phải xây dựng lại cấu trúc quản lý khóa, phát sinh lại khóa, mã hóa lại dữ liệu khi có sự thay đổi về người dùng, tài nguyên và quyền truy cập trong hệ thống (3) DO thường
xuyên giải quyết bài toán thay khóa (rekey) ngay cả trong những trường hợp
không cần thiết ([2], [3], [13], [18]) Khi thay khóa, DO phải tải về dữ liệu từ máy chủ (nếu DO không lưu lại bản sao dữ liệu), phát sinh lại khóa, mã hóa lại dữ liệu, phân phối lại khóa cho những người dùng có liên quan Việc thay khóa gây tốn kém nhiều chi phí
Nghi thức xác thực rất cần thiết trong dịch vụ ODBS Trong nhiều ứng
dụng thực tế, thông tin đăng nhập của người dùng tiết lộ danh tính của người dùng Trong ODBS, tính riêng tư người dùng phải được đảm bảo, ngay cả đối với máy chủ Các nghi thức xác thực hiện có không đặt ra mục tiêu bảo vệ tính riêng tư người dùng chứa đựng trong thông tin đăng nhập; tất cả đều hoạt
Trang 75
động trên cơ sở máy chủ biết chính xác định danh của người dùng đang đăng
nhập hệ thống nên không thể áp dụng trong ODBS ([8], [12], [22], [38], [39])
Bài toán ghi nhật ký và tìm kiếm trên dữ liệu nhật ký (để phục vụ giải
trình khi cần thiết) trong ODBS được Mike Burmester và cộng sự nêu ra với các yêu cầu gần như trái ngược nhau, đó là vừa đạt được mục tiêu có thể giải trình về các hoạt động diễn ra trong hệ thống, vừa đảm bảo tính bí mật dữ liệu và tính riêng tư người dùng [7] Bài toán ghi nhật ký hệ thống trong ODBS chưa được cộng đồng nghiên cứu quan tâm
CHƯƠNG 2 - BẢO VỆ TÍNH RIÊNG TƯ NGƯỜI DÙNG
Câu truy vấn và kết quả truy vấn chứa thông tin riêng tư của người dùng
Ví dụ, khi ta biết một người dùng u thường xuyên truy cập một loại thuốc nào đó, ta có thể đoán được bệnh của u Để bảo vệ tính riêng tư cho người dùng u, cần đảm bảo không có bất kỳ chủ thể nào khác ngoài u, kể cả máy chủ và DO, có thể biết câu truy vấn và kết quả truy vấn do u thực hiện trên
, …, An S
)
Trang 8Trong đó, tS lưu giá trị mã hóa của chuỗi được tạo thành bằng cách ghép các giá trị trong mỗi dòng dữ liệu của r, Ai
S
là chỉ mục tương ứng với thuộc tính Ai nhằm phục vụ cho việc xử lý truy vấn (có liên quan đến thuộc tính A) trên CSDL ở máy chủ
Việc xây dựng quan hệ rS từ quan hệ r dựa trên các hàm sau đây: hàm phân hoạch (partition function), hàm định danh (identification function), hàm ánh
xạ (mapping function) (xem phần 2.2)
Hình 2.1 Hình minh họa cách thức mã hóa dữ liệu [26]
2.1.2 Cách thức chuyển đổi điều kiện truy vấn [26]
Điều kiện truy vấn C được chuyển đổi bởi hàm chuyển đổi điều kiện truy vấn, ký hiệu là Mapcond(C), với tham số điều kiện C thuộc về một trong các trường hợp sau:
• Attribute = Value: Mapcond(Ai = v) ⇒ Ai
= identAi(pk) và Aj
S
= identAj(pl)) với ϕ trong
ϕ
∨ có dạng pk∈ partition(Ai), pl∈ partition(Aj), pk ∩ pl ≠∅
2.1.3 Nguyên lý hoạt động của UPP
• Nguyên lý thứ nhất: Tất cả các phép toán ĐSQH được thực thi trên
CSDL ở máy chủ chỉ dùng phép chọn
Trang 97
• Nguyên lý thứ hai: Mỗi lần thực hiện phép chọn đều chọn (n + m) giá
trị chỉ mục từ máy chủ Tập hợp (n + m) giá trị chỉ mục này luôn thay
đổi cho dù (các) người dùng thực hiện một câu truy vấn nhiều lần
Trong đó, n, m là các tham số nhận giá trị nguyên dương được DO thiết lập cho hệ thống nhằm mục đích bảo vệ tính riêng tư người dùng
• Nguyên lý thứ ba: Giảm thiểu công việc tại máy khách
2.1.4 Giải pháp chung truy cập dữ liệu từ máy chủ
Thuật toán Select_NTimes được dùng để truy cập dữ liệu từ máy chủ phục
vụ cho tất cả các phép toán ĐSQH nhằm đảm bảo tính riêng tư người dùng
Thuật toán 2.1 Select_NTimes(r(R), A, I, n, m)
Input: Quan hệ r(R), thuộc tính A ∈ R+, I là tập các giá trị chỉ mục (của thuộc tính A) cần lấy, các tham số n, m
Output: Các dòng (ở dạng mã) thuộc quan hệ rS thỏa: AS∈ I
1 Kết quả trả về KQ = ∅
Xác định tập tạo nhiễu T từ
(ident(r.A) – I) Tập T gồm các giá trị
chỉ mục ứng với thuộc tính A (là AS)
không chứa các giá trị thuộc I
2 Lặp cho đến khi lấy đủ tập I
3 • Trường hợp thứ nhất: Nếu card(I)
< n thì bổ sung vào I thêm (n + m -
card(I)) phần tử lấy ngẫu nhiên từ T
để được Z có (n + m) phần tử
• Trường hợp thứ hai: Nếu card(I)
= n thì bổ sung vào I thêm m phần
tử lấy ngẫu nhiên từ T để được Z có
(n + m) phần tử
Trang 10
• Trường hợp thứ ba: Nếu n <
card(I) <= (n + m) thì lấy ngẫu
nhiên n phần tử từ I, hội thêm m
phần tử từ T để được Z có (n + m)
phần tử
• Trường hợp thứ tư: Nếu card(I) >
(n + m) thì lấy ngẫu nhiên (n + m)
2.1.5 Phương pháp thực thi các phép toán ĐSQH
Hai tham số n, m được sử dụng trong quá trình thực thi truy vấn nhằm ngăn chặn máy chủ thực hiện tấn công thống kê tần suất thực hiện truy vấn
Phép chọn
Phép kết
Thuật toán 2.4 Join(r(R), t(T), C, n, m): kết r(R) và t(T) với điều kiện C
I, J chứa định danh các phân hoạch của thuộc tính Ai, Aj tương ứng sao cho có ít
Trang 112.1.6 Tính đầy đủ và đúng đắn của UPP
Định nghĩa 2.1: Một phương pháp thực thi truy vấn là đầy đủ nếu kết quả trả
về không thiếu dòng nào Một phương pháp thực thi truy vấn là đúng đắn nếu tất cả các dòng dữ liệu trong kết quả trả về đều thỏa mãn điều kiện truy vấn
Định lý 2.1: Phép chuyển đổi điều kiện truy vấn C, thông qua hàm
Mapcond(C) (trình bày ở phần 2.2.2), bảo toàn dữ liệu cần truy xuất
Định lý 2.2: Thuật toán Select_NTimes (hoặc Select_NTimes_Grouped) truy
xuất đầy đủ dữ liệu thông qua tập giá trị chỉ mục I
Định lý 2.3: Thuật toán Selection (thực hiện phép chọn) cho kết quả đầy đủ
và đúng đắn
Định lý 2.4: Thuật toán Join (thực hiện phép kết) cho kết quả đầy đủ và đúng
đắn
Định lý 2.5: Thuật toán Projection (thực hiện phép chiếu), thuật toán
Group_Aggregation (thực hiện phép tính tổng hợp và gom nhóm), thuật toán Sort (thực hiện phép sắp xếp) và thuật toán Duplicate_Elimination (loại bỏ
trùng lắp) cho kết quả đầy đủ và đúng đắn
Định lý 2.6: Thuật toán Difference (thực hiện phép hiệu), thuật toán Union
(thực hiện phép hội), thuật toán Intersect (thực hiện phép giao) cho kết quả
đầy đủ và đúng đắn
Trang 122.1.7 Phân tích độ an toàn của UPP
• Nhận xét 1: Nên chọn T có lực lượng khá lớn và chọn m ≈ (card(T)/2)
• Nhận xét 2: Nên chọn T ⊂ (ident(Ai) – I), m ≈ (card(T)/2) và m > card(T)/2 để giải pháp thực thi truy vấn đề xuất an toàn hơn
• Nhận xét 3: Với các phép toán cần thực thi trên toàn bộ quan hệ (chiếu,
tính tổng hợp và gom nhóm, sắp xếp, loại bỏ trùng lắp, hội, giao, hiệu), ta nên chọn n, m để quá trình truy xuất dữ liệu diễn ra theo trường hợp 4 của thuật toán Select_NTimes, nhằm tiết kiệm chi phí xử lý dữ liệu thừa tại máy khách lẫn máy chủ
• Nhận xét 4: DO hoặc chuyên gia trong lĩnh vực ứng dụng, những người
am hiểu về hoạt động của hệ thống, nên xác định giá trị n và m đối với mỗi thuộc tính có liên quan đến câu truy vấn của người dùng Tất cả những câu truy vấn trên cùng một thuộc tính nên sử dụng cùng giá trị n,
m giúp cho hệ thống bảo mật hơn
• Nhận xét 5: Để đảm bảo giải pháp thực thi truy vấn đề xuất là an toàn
trong trường hợp truy vấn trên thuộc tính có miền giá trị hẹp, DO nên chèn thêm dữ liệu giả
2.2 Kết quả thực nghiệm
Hình 2.4 Chi phí thực thi phép chọn của ba cách thực thi truy vấn, gồm thực thi trên dữ liệu rõ, giải pháp của Hacigümüs và cộng sự, và UPP
Trang 13* Kết luận chung: Kết quả thực nghiệm trên CSDL phát sinh bởi TPC-H
[45] cho thấy, vấn đề đánh đổi hiệu năng của hệ thống để bảo vệ tính riêng tư người dùng thể hiện rõ ở phép chọn của ĐSQH Với phép chiếu, và những phép toán cần thực thi truy vấn trên toàn bộ quan hệ khác (như sắp xếp, tính tổng hợp và gom nhóm, loại bỏ trùng lắp, hội, giao, hiệu), thời gian thực thi truy vấn phía máy khách (CC) chênh lệch không đáng kể so với chi phí tương
ứng của phương pháp thực thi truy vấn không đảm bảo tính riêng tư người
dùng của Hacigümüs và cộng sự; thời gian thực thi truy vấn phía máy chủ
Trang 14(SC) cao hơn không đáng kể, và tùy thuộc vào giá trị tham số m hoặc kích thước phân hoạch Chi phí SC và CC đối với phép kết khi dùng UPP gần giống như chi phí tương ứng khi thực thi phép kết trên CSDL rõ Điều này chứng tỏ UPP hoàn toàn có thể áp dụng trong thực tế
CHƯƠNG 3 - BẢO VỆ TÍNH RIÊNG TƯ DỮ LIỆU –
CƠ CHẾ QUẢN LÝ TRUY CẬP MỨC CỘT 3.1 Bài toán quản lý truy cập trong ODBS
Tính riêng tư dữ liệu được đảm bảo bằng cách sử dụng một cơ chế quản lý truy cập Yêu cầu của bài toán quản lý truy cập trong ODBS là đề xuất cơ chế
để hệ thống cho phép người dùng chỉ có thể truy cập được trên các đơn vị dữ
liệu được DO cấp quyền Qua khảo sát hiện trạng, chúng tôi nhận thấy rằng, cần đề xuất giải pháp cho việc quản lý truy cập mức cột giúp DO giới hạn quyền truy cập trên những cột dữ liệu nhạy cảm Với hướng nghiên cứu này, chúng tôi đã công bố các công trình sau: FGAC (Fine-grained Access Control) – cơ chế quản lý truy cập mức cột [CT7]; thực nghiệm đánh giá FGAC [CT4]; EFGAC (Enhanced Fine-grained Access Control) – là cơ chế cải tiến của FGAC [CT3]
Bộ tiêu chí xây dựng cơ chế quản lý truy cập
Một giải pháp quản lý truy cập được đánh giá dựa trên một số tiêu chí phổ biến như sau:
(1) Độ mịn của đơn vị dữ liệu mà giải pháp có thể giới hạn truy cập (quan
hệ, dòng, cột)
(2) Số lượng khóa cần thiết DO phải dùng để mã hóa CSDL sao cho các chính sách bảo mật đều được thỏa Số lượng khóa ít thì cần ít thời gian sinh khóa, và cũng cần ít chi phí quản lý khóa
(3) Số lượng khóa mỗi người dùng phải giữ để có thể truy cập dữ liệu mà người dùng được cấp quyền, càng ít khóa càng thuận tiện cho việc quản
lý và sử dụng chúng