ĐẠ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
Cô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.
1
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
DO
CSDL
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
2
dù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ủ
3
• 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].
4
CHƯƠ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
5
độ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
CSDL.
2.1 Đề xuất phương pháp thực thi truy vấn bảo vệ tính riêng tư người
dùng - UPP
Chúng tôi đề xuất phương pháp thực thi các phép toán ĐSQH đảm bảo
tính riêng tư người dùng, đặt tên là UPP (User Privacy Protection), trên cơ sở
vận dụng phương pháp mã hóa dữ liệu và chuyển đổi điều kiện truy vấn đề
xuất bởi Hacigümüs và cộng sự [26]. Kết quả này được chúng tôi công bố
trong công trình ([CT1], [CT2]).
2.1.1 Tổ chức dữ liệu [26]
Một quan hệ r với lược đồ quan hệ R(A
1
, A
2
, …, A
n
), ký hiệu r(R). Ký
hi
ệu R
+
để chỉ tập tất cả các thuộc tính của quan hệ r(R): R
+
= {A
1
, A
2
, …,
A
n
}. Ứng với mỗi quan hệ r, DO tạo một quan hệ r
S
có lược đồ quan hệ là:
R
S
(t
S
, A
1
S
, A
2
S
, …, A
n
S
)
6
Trong đó, t
S
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, A
i
S
là chỉ mục tương ứng với thuộc
tính A
i
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ệ r
S
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à Map
cond
(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: Map
cond
(A
i
= v) ⇒ A
i
S
= Map
Ai
(v)
• Attribute < Value: Mapcond(Ai < v) ⇒ Ai
S
∈ Map
<
Ai
(v)
• Attribute
1
= Attribute
2
Map
cond
(A
i
= A
j
) ⇒
ϕ
∨
(A
i
S
= ident
Ai
(p
k
) và A
j
S
= ident
Aj
(p
l
))
với ϕ trong
ϕ
∨
có dạng p
k
∈ partition(A
i
), p
l
∈ partition(A
j
), p
k
∩ p
l
≠ ∅.
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.
7
• 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ệ r
S
thỏa: A
S
∈ I.
Bước Máy khách Máy chủ
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à A
S
)
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ử.
8
• 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)
phần tử từ I, xem đây là tập Z.
4
5
)r(σ←KQ1
S
Z∈
S
A
SS
6
7 KQ2 ← Loại bỏ khỏi KQ1 những
dòng dư (thỏa A
S
∉ I), nếu có.
8 KQ ← KQ ∪ KQ2
9 Kết thúc lặp
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 A
i
, A
j
tương ứng sao cho có ít
r
S
(R
S
), A
S
, Z
KQ1
Thuật toán 2.3 Selection(r(R), A, C, n, m): chọn từ quan hệ r(R) các dòng
thỏa điều kiện C, A là thuộc tính liên quan đến C.
Map
cond
(C) ⇒ A
S
∈ I
KQ1 = Select_NTimes(r(R), A, I, n, m)
KQ2 = D(KQ1)
KQ ← σ
C
(KQ2)
return KQ
9
nhất một cặp giữa chúng (I và J) có chứa giá trị thỏa C: A
i
θ A
j
.
KQ1 = Select_NTimes_Grouped(r(R), A
i
, I, n, m, A
i
)
KQ2 = Select_NTimes_Grouped(t(T), A
j
, J, n, m, A
j
)
KQ3 = D(KQ1), KQ4 = D(KQ2)
KQ ← (KQ3 ⋈
C
KQ4)
return KQ
Phép chiếu
Thuật toán 2.5 Projection(r(R), n, m, L): chiếu r(R) trên tập thuộc tính L
A ∈R
+
, I = ident(A)
KQ1 = Select_NTimes(r(R), A, I, n, m)
KQ2 = D(KQ1)
KQ ← ∏
L
(KQ2)
return KQ
2.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
Map
cond
(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.
10
2.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(A
i
) – 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
11
Hình 2.5 Chi phí thực thi phép chiếu 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
Hình 2.6 Chi phí thực thi phép kết 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
* 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ủ
12
(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.
13
(4) Chi phí duy trì hoạt động của hệ thống trong trường hợp CSDL động, tức
là có sự thay đổi thường xuyên về tài nguyên hoặc người dùng hoặc
quyền truy cập trong hệ thống.
(5) Ngoài ra, còn có các tiêu chí khác liên quan đến thuật toán mã/ giải mã
như: kích thước dữ liệu sau khi mã, thời gian mã, thời gian hồi đáp câu
truy vấn, dung lượng dữ liệu công khai cần thiết để giải pháp quản lý truy
cập hoạt động được.
3.2 Cơ chế quản lý truy cập mức cột - FGAC
Ba thành phần của cơ chế quản lý truy cập FGAC là: thuật toán mã hóa dữ
liệu dựa trên định lý Số dư Trung Hoa (CRT - Chinese Remainder Theorem)
[17], cấu trúc quản lý khóa là binary trie [19], và hàm một chiều để suy dẫn
khóa [42]. Mặc dù đạt được mục tiêu là có khả năng quản lý truy cập mức
cột, FGAC còn gặp phải một số hạn chế liên quan đến hiệu quả quản lý truy
cập (xem phần 3.2.6).
3.3 Cơ chế quản lý truy cập mức cột cải tiến EFGAC
Chúng tôi trình bày EFGAC theo trình tự cải tiến dần, cải tiến sau được
thực hiện trên cơ sở cải tiến trước đã được áp dụng.
• Bước 1: Xây dựng EFGAC trên cơ sở cải tiến tham số đầu vào nhằm
khắc phục hạn chế 1, 2 và 5 của FGAC, như đã nêu trong mục 3.2.6.
• Bước 2: Xây dựng EFGAC nhằm khắc phục thêm hạn chế thứ 4 của
FGAC.
• Bước 3: Xây dựng EFGAC nhằm khắc phục thêm hạn chế thứ 3 của
FGAC.
3.3.1 Chứng minh tính đúng đắn
Định nghĩa 3.1 (Hàm suy dẫn khóa)
G
ọi K là tập hợp các khóa dùng trong hệ thống. T là tập hợp những token
công khai, H là không gian các giá trị băm.
Hàm suy dẫn khóa trực tiếp ε: K → H được định nghĩa như sau:
14
ε(k
i
) = {k
j
∈ K | ∃t
i,j
∈ T}.
Hàm suy dẫn khóa ε
*
: K → H là hàm sao cho ε
*
(k
i
) trả về tất cả các khóa
suy dẫn từ k
i
dùng chuỗi các token, và bao gồm cả k
i
.
Hình 3.2 Hình minh họa việc gán khóa và suy dẫn khóa dùng token
Định nghĩa 3.2 (Hàm gán khóa)
Hàm gán khóa φ : U ∪ R → K sẽ gán cho từng người dùng u ∈ U một
khóa duy nhất (tùy theo quyền của u) và gán cho mỗi tài nguyên r ∈ R một
khóa duy nhất dùng để mã r.
Định nghĩa 3.3 (Cơ chế quản lý truy cập)
Gọi ω = (ε*, φ) là một cơ chế quản lý truy cập được tạo thành từ hàm suy
dẫn khóa ε* và hàm gán khóa φ. Một cơ chế quản lý truy cập được gọi là thể
hiện một cách đúng đắn các chính sách bảo mật được mô tả bởi ma trận
quyền truy xuất A nếu và chỉ nếu người dùng có thể và chỉ truy cập được trên
tài nguyên mà họ được DO cấp quyền.
Định nghĩa 3.4 (Tính đúng đắn)
G
ọi ω = (ε*, φ) là một cơ chế quản lý truy cập và A là các chính sách bảo
mật (được thể hiện ở dạng ma trận quyền truy xuất). ω được gọi là thể hiện
15
một cách đúng đắn A, ký hiệu là ω ⇔ A, nếu và chỉ nếu cả hai điều kiện sau
thỏa mãn:
- Tính đúng đắn. ∀u ∈ U, r ∈ R: φ(r) ∈ φ*(u) ⇒ A[u, r] = 1
- Tính đầy đủ. ∀u ∈ U, r ∈ R: A[u, r] = 1 ⇒ φ(r) ∈ φ*(u)
Định lý 3.1 EFGAC là đúng đắn.
3.3.2 Thực nghiệm và kết quả
Chúng tôi làm thực nghiệm khảo sát các khía cạnh sau của EFGAC:
(i) Thời gian mã hóa dữ liệu dùng CRT, so với thời gian mã hóa dữ liệu
dùng các thuật toán thường dùng khác như: RSA, DES, AES.
(ii) Thời gian hồi đáp truy vấn (bao gồm thời gian giải mã dữ liệu) khi thực
thi truy vấn trên CSDL mã hóa dùng CRT, so với thời gian hồi đáp truy
vấn khi thực thi truy vấn trên CSDL mã hóa bởi: RSA, DES, AES.
(iii) So sánh số lượng khóa trung bình bởi từng nhóm người dùng trong hệ
thống phải giữ khi áp dụng EFGAC sau cải tiến 1, EFGAC sau cải tiến 3
và cơ chế quản lý truy cập đề xuất bởi El-khoury và cộng sự [19] – từ
đây sẽ được đề cập đến với tên gọi là El-khoury’s.
(iv) So sánh thời gian suy dẫn khóa trung bình để truy cập 1 dòng dữ liệu khi
áp dụng EFGAC sau cải tiến 1 và cải tiến 2 với thời gian suy dẫn khóa
trung bình dùng phương pháp suy dẫn khóa dùng hàm một chiều.
Hình 3.3 So sánh thời gian mã dữ liệu bởi CRT so với RSA, DES và AES
16
Hình 3.4 Biểu đồ so sánh thời gian hồi đáp truy vấn cho Q1
Hình 3.5 Biểu đồ thể hiện thời gian hồi đáp truy vấn cho Q2
Hình 3.6 Số lượng khóa trung bình
mỗi nhóm người dùng phải giữ khi
dữ liệu thay đổi: (a) Số nhóm ngư
ời
dùng (b) Số nhóm tài nguyên (c) Số
cột của CSDL
17
CHƯƠNG 4 - XÁC THỰC VÀ GHI NHẬT KÝ HỆ THỐNG TRONG ODBS
4.1 Xác thực trong ODBS
4.1.1 Bài toán xác thực trong ODBS
Qua phân tích hiện trạng, chúng ta cần xây dựng cơ chế xác thực dùng
trong ODBS thỏa: là quá trình xác thực lẫn nhau giữa máy chủ và người
dùng, thông tin về tài khoản của người dùng phải được giữ bí mật đối với
máy chủ, có khả năng chống lại những tấn công phổ biến của một cơ chế xác
thực [3]. Chúng tôi đã xây dựng cơ chế xác thực đáp ứng mục tiêu đặt ra trên
cơ sở vận dụng mô hình mã hóa theo từ khóa phục vụ tìm kiếm dựa trên ma
tr
ận giả nghịch đảo (PEKS-PM). Kết quả này được công bố ở [CT5].
Hình 3.7 Thời gian suy dẫn khóa
trung bình để người dùng truy
cập một dòng dữ liệu khi dữ liệu
thay đổi: (a) Số nhóm người d
ùng
(b) Số nhóm tài nguyên (c) Số cột
của CSDL
18
4.1.2 Cơ chế xác thực lẫn nhau
4.1.2.1 Thông tin tài khoản
Mỗi người dùng sau khi được DO cấp tài khoản truy cập hệ thống sẽ lưu
dữ liệu gồm:
• <un, pw>: định danh và mật khẩu mặc định của người dùng, người
dùng nên đặt lại mật khẩu để đảm bảo tính riêng tư người dùng.
• (A
pub
, A
priv
): cặp khóa phát sinh để dùng cho việc xác thực sau này.
Người dùng giữ bí mật A
priv
và gửi A
pub
cho DO để DO mã hóa tên
đăng nhập của người dùng trước khi gửi thông tin này đến máy chủ.
Tài khoản của những người dùng đã được DO cấp phép truy cập hệ thống
cũng được lưu tại máy chủ gồm:
• <PEKS(A
pub
, un), h(pw)>: giá trị mã của tên đăng nhập của từng
người dùng và giá trị băm của mật khẩu tương ứng.
DO dù không tham gia vào quá trình xác thực nhưng DO cấp tài khoản
cho người dùng trong hệ thống và gửi dữ liệu về tài khoản của những người
dùng đến máy chủ. Dữ liệu lưu tại DO gồm:
• <un, PEKS(A
pub
, un)>: tên đăng nhập của từng người dùng và giá trị
mã hóa tương ứng của tên đăng nhập. PEKS(A
pub
, un) được DO gửi
đến người dùng và máy chủ phục vụ cho quá trình lưu dữ liệu và xác
thực sau này.
4.1.2.2 Giai đoạn xác thực
Giai đoạn xác thực gồm các bước:
• Bước 1: Tại máy khách C, người dùng U thông qua màn hình đăng
nhập, nhập vào tên đăng nhập un và mật khẩu pw. Vì lý do bảo mật,
C không gửi thông tin đăng nhập dạng rõ đến máy chủ S mà gửi
Trapdoor T
W
cho S, trong đó T
W
được tính dựa vào khóa bí mật A
priv
c
ủa U theo công thức: T
W
= Trapdoor (A
priv
, un). C phát sinh ngẫu
nhiên giá trị N
U
. C gửi T
W
và N
U
đến S.
19
• Bước 2: Từ giá trị Trapdoor mà máy khách gửi đến, máy chủ S thực
hiện thuật toán Test() để kiểm tra xem un có phải là người dùng hợp
lệ hay không. Nếu hợp lệ, S phát sinh ngẫu nhiên một giá trị N
S
và
tính H = h(h(pw) || N
S
|| N
U
) với h(pw) là giá trị băm của mật khẩu
của người dùng U mà S đã lưu lại trước đó, || là toán tử nối chuỗi,
hàm băm h dùng chung bởi máy khách và máy chủ. S gửi H, N
S
đến
người dùng U.
• Bước 3: Dựa vào thông tin S gửi cho U, C tính H
1
= h(h(pw) || N
S
||
N
U
). Nếu H = H
1
, U biết chắc rằng S thực sự là máy chủ mà U muốn
kết nối đến vì chỉ có S mới tìm đúng tên đăng nhập và mật khẩu của
U (thông qua giá trị trapdoor, tìm trên các từ mã dùng thuật toán
PEKS) để tính đúng giá trị của H. Trường hợp H ≠ H
1
, U hủy kết nối
vì có kẻ đang mạo danh S. U tính H
2
= h(h(pw) || (N
S
+1)) và gửi H
2
đến S.
Hình 4.1 Dữ liệu dùng cho cơ chế xác thực
DO
Ngư
ời d
ùng
Máy chủ
∏
E_UN
(DO_USERS)
(PEKS(A
pub
, username),
h(password))
A
pub
(
A
pub
, A
priv
)
username
DO_USERS
P_UN E_UN
un
1
PEKS(A
pub
1
, un
1
)
un
2
PEKS(A
pub
2
, un
2
)
… …
un
n
PEKS(A
pub
n
, un
n
)
S_USERS
E_UN H_PW
PEKS(A
pub
1
, un
1
) h(pw
1
)
PEKS(A
pub
2
, un
2
) h(pw
2
)
… …
PEKS(A
pub
n
, un
n
) h(pw
n
)
20
Bước 4: S tính H
3
= h(h(pw) || (N
S
+1)). Nếu H
2
= H
3
, S tin chắc rằng người
dùng đang yêu cầu đăng nhập là người dùng hợp lệ vì đã nhập đúng tên đăng
nhập và mật khẩu. Ngược lại, S từ chối yêu cầu đăng nhập vì U không phải là
một người dùng hợp lệ.
4.1.2.3 Phân tích độ an toàn
Tính chất hai chiều của cơ chế xác thực đề nghị không chỉ giúp máy chủ
xác thực quyền đăng nhập của người dùng mà còn giúp người dùng xác thực
máy chủ mà họ muốn giao tiếp để tránh trường hợp tin tặc giả mạo máy chủ
lấy cắp thông tin hoặc chiếm quyền điều khiển (hijacking attacks).
Trong quá trình xác thực, tên đăng nhập của người dùng được mã hóa khi
gửi đến máy chủ nên nghi thức xác thực đề nghị đảm bảo thông tin là bí mật,
loại bỏ được tấn công kiểu nghe lén dữ liệu trên đường truyền. Yếu tố ngẫu
nhiên N
U
và N
S
thay đổi sau mỗi lần thực hiện xác thực nhằm ngăn chặn tấn
công kiểu lặp lại (replay attacks). Chúng tôi đề nghị sử dụng hàm băm SHA-
1 hoặc MD5 trong nghi thức xác thực đề nghị; các giá trị ngẫu nhiên cũng
được tạo bằng cách vận dụng các hàm băm này. Khi sử dụng PEKS-PM, kết
quả cho bởi thuật toán Trapdoor (và PEKS) là khác nhau sau mỗi lần thực thi
lại, cho dù dùng cùng tham số đầu vào; điều này giúp nghi thức xác thực đề
xuất có thể chống lại tấn công từ điển (dictionary attacks).
4.2 Ghi nhật ký hệ thống trong ODBS
4.2.1 Bài toán ghi nhật ký hệ thống trong ODBS
Yêu cầu đặt ra đối với cơ chế ghi nhật ký trong ODBS: đảm bảo tính bí
mật dữ liệu, đảm bảo tính riêng tư người dùng, có khả năng cung cấp thông
tin liên quan đến quá trình làm việc của các thực thể trong hệ thống khi cần
thiết. Các yêu cầu này đặt ra có vẻ như trái ngược nhau [7].
Do có hiệu năng cao và có thể ngăn chặn tấn công từ điển (dictionary
attacks), t
ấn công thống kê tần suất (frequency attacks), PEKS-PM được
21
chúng tôi chọn dùng để xây dụng nghi thức ghi trong nhật ký trong ODBS.
Kết quả này được công bố ở [CT6].
4.2.2 Nghi thức ghi nhật ký trong ODBS
4.2.2.1 Định nghĩa các vai trò
Vai trò của các loại thực thể trong nghi thức ghi nhật ký hệ thống như sau:
• Thực thể tin cậy T: phát sinh ra cặp khóa (A
pub
, A
priv
), A
pub
được U
dùng để mã dữ liệu nhật ký và A
priv
được T dùng để tính giá trị
trapdoor T
W
khi người kiểm toán B cần tìm từ khóa W. T cũng dùng
A
priv
để giải mã dữ liệu nhật ký trước khi trả kết quả về cho B.
• Người kiểm toán B: nêu ra các nhu cầu tìm kiếm thông qua các từ
khóa W và nhận về các dòng nhật ký có chứa W.
• Người dùng U: hoạt động của U trên hệ thống sinh ra dữ liệu nhật ký
được máy khách (mà U đang sử dụng) ghi nhận lại và gửi chuỗi dữ
liệu nhật ký tương ứng (đã được mã hóa) đến máy chủ S.
• Máy khách C: ghi nhận lại mọi thao tác U thực hiện dưới dạng chuỗi
M là ghép tất cả các từ khóa trong thao tác đó (ví dụ như định danh
người thực hiện thao tác, quan hệ liên quan, thuộc tính liên quan,
điều kiện tìm kiếm, thời điểm thực hiện tìm kiếm, …). M chứa thông
tin liên quan đến tính bí mật dữ liệu và tính riêng tư người dùng. C
phải giấu M trước khi gửi đến S dùng thuật toán mã hóa theo từ khóa
của PEKS. M được mã hóa thành M
S
.
• Máy chủ S: lưu dữ liệu nhật ký do C gửi đến dưới dạng đã mã hóa
M
S
. Do đặc tính của việc dùng PEKS, dù S không đọc được nội dung
của M nhưng khi cung cấp giá trị trapdoor của một từ khóa W cần
tìm , S có thể tìm kiếm trong dữ liệu nhật ký những mẩu tin có chứa
W.
4.2.2.2 Giai
đoạn ghi nhật ký
• T phát sinh cặp khóa (A
pub
, A
priv
) dùng thuật toán KeyGen của PEKS.
A
pub
được gửi công khai cho tất cả những người dùng trong hệ thống.
22
• Tùy mục đích ghi nhật ký được thiết lập ở ứng dụng phía máy khách,
chuỗi M ứng với thao tác của người dùng U được trích ra các từ khóa
phù hợp, M được máy khách C mã theo các từ khóa đó thành M
S
dùng thuật toán mã PEKS. Sau đó C gửi M
S
đến S.
Hình 4.6 Quá trình ghi nhật ký
4.2.2.3 Giai đoạn tìm kiếm trên dữ liệu nhật ký
Hình 4.8 Quá trình tìm kiếm trên dữ liệu nhật ký
B tuân thủ các bước sau khi tìm kiếm trên dữ liệu nhật ký (Hình 4.8):
• Bước 1: B gửi từ khóa cần tìm W đến thực thể tin cậy T.
• Bước 2: T, dùng thuật toán Trapdoor sinh ra giá trị trapdoor T
W
ứng
v
ới W. T gửi T
W
đến máy chủ S.
• Bước 3: Trên dữ liệu nhật ký dạng mã, S tìm và trả về cho T tất cả các
M
S
có chứa W dùng thuật toán kiểm tra Test.
23
• Bước 4: T giải mã các dòng M
S
nhận được từ S và trả kết quả cho B.
4.2.2.4 Phân tích kết quả đạt được
Về bảo mật
Bằng cách định nghĩa năm vai trò và phân công công việc cho từng vai trò
như đã trình bày ở trên, bài toán ghi nhật ký phục vụ giải trình trong ODBS
đã được giải quyết. Dữ liệu nhật ký không chỉ chứa đựng thông tin về nội
dung CSDL mà còn chứa đựng thông tin về tính riêng tư người dùng (ai, truy
cập vấn đề gì, kết quả là gì). Máy chủ không thể truy cập nội dung dữ liệu
nhật ký nên tính bí mật dữ liệu và tính riêng tư người dùng được đảm bảo.
Dù vậy, máy chủ vẫn có thể thực hiện vai trò tìm kiếm và trả về kết quả cần
tìm, tức là vẫn đảm bảo ý nghĩa của ODBS. DO, mặc dù là chủ sở hữu dữ
liệu nhưng không được quyền truy cập dữ liệu nhật ký để bảo vệ tính riêng tư
người dùng.
Về hiệu quả
Xét một CSDL nhật ký có N
L
mẩu tin, mỗi mẫu tin được trích ra k
L
từ
khóa. Ta biết rằng trong điều kiện an toàn (k = 11, n = 16, m = 18) mỗi lần
thực thi hàm Test (để kiểm tra mẫu tin có thỏa từ khóa cần tìm hay không)
cần 1 mili giây. Như vậy, để tìm kiếm một từ khóa sẽ cần 2 mili giây để tính
trapdoor và (N
L
* k
L
) mili giây để duyệt CSDL nhật ký. Ta có thể cải tiến
cách lưu trữ N
L
để làm điều này trong N
L
mili giây.