Tải bản đầy đủ (.pdf) (76 trang)

Nghiên cứu phát triển mô hình điều khiển truy xuất cho dữ liệu lớn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.39 MB, 76 trang )

ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

TRẦN THẾ SĨ

NGHIÊN CỨU PHÁT TRIỂN MƠ HÌNH ĐIỀU
KHIỂN TRUY XUẤT CHO DỮ LIỆU LỚN
Chuyên ngành : Khoa học máy tính
Mã số: 60480101

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, 6/2016


ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

TRẦN THẾ SĨ

NGHIÊN CỨU PHÁT TRIỂN MƠ HÌNH ĐIỀU
KHIỂN TRUY XUẤT CHO DỮ LIỆU LỚN
Chuyên ngành : Khoa học máy tính
Mã số: 60480101

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, 6/2016



CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học : PGS. TS. Đặng Trần Khánh
Cán bộ chấm nhận xét 1 :
Cán bộ chấm nhận xét 2 :
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. HCM
ngày . . . . . tháng 07 năm 2016
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1. ..............................................................
2. ..............................................................
3. ..............................................................
4. ..............................................................
5. ..............................................................
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA KH & KT MÁY TÍNH

PGS. TS Thoại Nam


ĐẠI HỌC QUỐC GIA TP.HCM

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

TRƯỜNG ĐẠI HỌC BÁCH KHOA

NAM Độc lập - Tự do - Hạnh phúc


NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Trần Thế Sĩ .................................................... MSHV:13073035 ............
Ngày, tháng, năm sinh: 06/03/1990 ........................................... Nơi sinh: Bình Định ........
Chuyên ngành: Khoa học máy tính ........................................... Mã số : 60480101...........
I. TÊN ĐỀ TÀI: Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn .....
II. NHIỆM VỤ VÀ NỘI DUNG:
-

Nghiên cứu lý thuyết về dữ liệu lớn.

-

Nghiên cứu lý thuyết về mơ hình điều khiển truy xuất

-

Nghiên cứu và đề xuất một mơ hình điều khiển truy xuất cho một loại mơ hình dữ
liệu lớn cụ thể

-

Xây dựng cơ chế điều khiển truy xuất dựa trên mơ hình đề xuất.

-

Tìm hiểu về các kỹ thuật và công nghệ để hiện thực một ứng dụng thử nghiệm nhằm
đánh giá các kết quả nghiên cứu.

III. NGÀY GIAO NHIỆM VỤ : 17/08/2015

IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2016
V. CÁN BỘ HƯỚNG DẪN : PGS. TS. ĐẶNG TRẦN KHÁNH

Tp. HCM, ngày 17 tháng 06 năm 2016
CÁN BỘ HƯỚNG DẪN

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

PGS.TS. Đặng Trần Khánh

PGS.TS. Đặng Trần Khánh

TRƯỞNG KHOA KH&KT MÁY TÍNH

PGS.TS.Thoại Nam


LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình khác như đã ghi rõ
trong luận văn, các cơng việc trình bày trong luận văn cũng như các kết quả thực nghiệm
là do chính tơi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy
một bằng cấp ở bất kì một trường nào khác.
Ngày 17 tháng 06 năm 2016
Học viên thực hiện luận văn

Trần Thế Sĩ


LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Đặng Trần Khánh đã tận tình hướng dẫn, giúp

đỡ tôi thực hiện đề tài nghiên cứu này.Tôi cũng xin gửi lời cảm ơn đến các thành viên nhóm
DStar Lab đã hỗ trợ và tạo điều kiện nghiên cứu cho tôi trong suốt thời gian qua.
Sau cùng, tôi xin gửi lời cảm ơn chân thành đến gia đình và bạn bè đã luôn bên cạnh động
viên và giúp đỡ tôi.


TÓM TẮT LUẬN VĂN
Sự bùng nổ của các dịch vụ trực tuyến cùng sự phát triển không ngừng của công nghệ và
các thiết bị di động đã làm tăng nhu cầu lưu trữ, quản lý và chia sẻ thông tin, đặc biệt là
trong các hệ thống quản lý liên quan đến giao thơng, giáo dục, y tế, giải trí, nhằm đáp ứng
yêu cầu quản lý, thống kê, dự báo. Các thông tin này được lưu trữ với số lượng dữ liệu lớn,
dưới nhiều dạng khác nhau (còn được gọi là dữ liệu lớn, big data), tốc độ xử lý ngày càng
cao. Đi đôi với việc khai thác, sử dụng dữ liệu lớn thì những yêu cầu về bảo mật và bảo vệ
tính riêng tư ngày càng trở nên cấp thiết. Do đó, bảo mật dữ liệu lớn đã được xem là một
trong mười thách thức đặt ra cho các nghiên cứu trong tương lai về big data [2].
Mặc dù big data ngày càng thu hút được sự quan tâm của các nhà nghiên cứu nhưng việc
nghiên cứu có chiều sâu về khía cạnh bảo mật cho loại dữ liệu này vẫn chưa được chú trọng
đầu tư đúng mức. Có 3 cột mốc quan trọng trong việc bảo vệ tính riêng tư cho dữ liệu lớn
phải kể đến là: access control, auditing và statistical privacy [1]. Trong đó, access control
(điều khiển truy xuất) là khía cạnh được quan tâm của đề tài. Vì đặc tính khả năng điều
khiển truy xuất được hỗ trợ càng cao thì chi phí cho việc quản lý và vận hành càng cao [1];
do đó, các mơ hình điều khiển truy xuất hiện nay vấp phải khó khăn khi áp dụng cho dữ
liệu lớn (dữ liệu với đặc tính đa dạng về chủng loại và số lượng). Tóm lại, việc xây dựng
một mơ hình bảo mật tổng qt cho dữ liệu lớn vẫn cịn là bài tốn mở cho các hãng cơng
nghệ và các nhóm nghiên cứu.
Với các đặc điểm về khối lượng lớn, tính đa dạng, sự phát triển liên tục của dữ liệu lớn,
việc cung cấp quyền truy xuất cho dữ liệu ngày càng phức tạp, các mơ hình điều khiển
truyền thống như DAC, MAC, RBAC và những mở rộng của chúng gặp nhiều hạn chế và
khơng cịn phù hợp với dữ liệu lớn nữa. Một trong những nghiên cứu đang nổi lên là mơ
hình điều khiển truy xuất dựa trên thuộc tính (ABAC). Ưu điểm của mơ hình này là hỗ trợ

các chính sách điều khiển linh động, cho phép hỗ trợ các chính sách mịn hơn dựa trên các
thuộc tính của người dùng, dữ liệu, các thông tin liên quan đến ngữ cảnh. Mặc dù vậy, mơ
hình này chưa được nghiên cứu cụ thể trên hệ thống dữ liệu lớn. Do đó, đề tài này, sẽ
nghiên cứu mơ hình ABAC trên dữ liệu lớn và áp dụng ABAC vào một mơ hình dữ liệu
lớn cụ thể.


ABSTRACT
The explosion of online services and the continuous development of technology and mobile
devices has increased the demand for storage, management and sharing of information,
especially in the management system relating to transportation, education, health,
entertainment to meet the requirements of management, statistics, forecasts, planning. This
information is stored with large quantities of data, under different types, processing speed
increasing. Along with the exploitation and use of big data, the requirements of security
and privacy protection has become increasingly urgent. Therefore, big data security has
been considered one of the ten challenges for future research on big data [2].
Although big data is increasingly the attention of researchers, but the research on security
aspects for this kind of data has not been invested properly. There are 3 important point in
the protection of privacy for big data must be mentioned are: access control, auditing and
statistical privacy [1]. In particular, access control are interest aspects of this thesis.
Because of the ability to control access higher require costs for the management and
operation of the higher [1]; therefore, the current access control models have many
difficulties when applied to big data (data with diverse characteristics in type and quantity).
With the characteristics of high volume, diversity, continuous growth of big data, the
access control processing are more and more complex, the traditional control model as
DAC, MAC, RBAC and their extensions are no longer suitable for big data. One of the
recent access control model is access control based on attributes (ABAC). The advantage
of this model is to support flexible policy controls, allowing policies based on the finer
attributes of users, data, information related to the context. However, this model has not
been studied in big data systems. Therefore, the thesis will study ABAC on big data system

and applied ABAC to a specific big data model.


MỤC LỤC
LỜI CAM ĐOAN ................................................................................................................ 5
LỜI CẢM ƠN ...................................................................................................................... 6
TÓM TẮT LUẬN VĂN ...................................................................................................... 7
ABSTRACT ........................................................................................................................ 8
MỤC LỤC ........................................................................................................................... 9
DANH MỤC HÌNH........................................................................................................... 11
DANH MỤC BẢNG ......................................................................................................... 12
Chương 1

GIỚI THIỆU ................................................................................................... 1

1.1

Mục tiêu của đề tài ................................................................................................. 1

1.2

Ý nghĩa đề tài ......................................................................................................... 1

1.3

Giới hạn của đề tài ................................................................................................. 1

1.4

Cấu trúc báo cáo ..................................................................................................... 1


Chương 2

CƠ SỞ DỮ LIỆU NOSQL .............................................................................. 3

2.1

Khái niệm cơ bản về dữ liệu lớn ............................................................................ 3

2.2

Các mô hình dữ liệu lớn ......................................................................................... 3

2.2.1

Mơ hình Key-Value......................................................................................... 3

2.2.2

Mơ hình Document Store ................................................................................ 5

2.2.3

Mơ hình Graph Databases ............................................................................... 7

2.2.4

Mơ hình Column Oriented ............................................................................ 10

2.3


So sánh các mơ hình dữ liệu lớn .......................................................................... 13

2.3.1

Khả năng truy vấn ......................................................................................... 13

2.3.2

Truy cập đồng thời ........................................................................................ 15

2.3.3

Phân tán dữ liệu ............................................................................................. 17

2.3.4

Sự nhân bản và thống nhất dữ liệu ................................................................ 19

2.4

Cơ sở dữ liệu MongoDB ...................................................................................... 20

2.4.1

Giới thiệu mongoDB ..................................................................................... 20

2.4.2

Truy vấn dữ liệu ............................................................................................ 21


2.4.3

Điều khiển truy xuất cho MongoDB ............................................................. 24

Chương 3

ĐIỀU KHIỂN TRUY XUẤT ........................................................................ 25

3.1

Khái niệm về điều khiển truy xuất ....................................................................... 25


3.2

Các mơ hình truyền thống .................................................................................... 26

3.2.1

Mơ hình điều khiển truy cập tùy quyền DAC ............................................... 26

3.2.2

Mơ hình điều khiển truy cập bắt buộc ........................................................... 29

3.2.3

Mơ hình điều khiển truy cập theo vai trị ...................................................... 30


3.3

Mơ hình điều khiển truy xuất dựa trên thuộc tính ............................................... 31

3.3.1

Giới thiệu mơ hình ABAC ............................................................................ 31

3.3.2

Mơ hình ABAC ............................................................................................. 33

Chương 4

KIẾN TRÚC HỆ THỐNG ............................................................................ 37

4.1

Mơ hình tổng quan ............................................................................................... 37

4.2

Kiến trúc tổng quan .............................................................................................. 38

4.3

Cấu trúc chính sách và luật .................................................................................. 42

4.4


Giải thuật kết hợp các chính sách và luật............................................................. 44

4.4.1

Giải thuật kết hợp luật ................................................................................... 44

4.4.2

Giải thuật kêt hợp chính sách ........................................................................ 45

Chương 5

HIỆN THỰC HỆ THỐNG ............................................................................ 49

5.1

Kiến trúc tổng quan hệ thống ............................................................................... 49

5.2

Lược đồ lớp hệ thống ........................................................................................... 50

Chương 6

KẾT QUẢ THỰC NGHIỆM ........................................................................ 57

6.1

Sinh dữ liệu thử nghiệm ....................................................................................... 57


6.2

Kết quả thử nghiệm .............................................................................................. 58

6.2.1

Thay đổi độ phức tạp của các thuộc tính ....................................................... 58

6.2.2

Thay đổi độ phức tạp của các chính sách ...................................................... 59

Chương 7

KẾT LUẬN ................................................................................................... 60

7.1

Đánh giá kết quả .................................................................................................. 60

7.2

Hướng phát triển đề tài ........................................................................................ 61

TÀI LIỆU THAM KHẢO ................................................................................................. 62
LÝ LỊCH TRÍCH NGANG ............................................................................................... 64


DANH MỤC HÌNH
Hình 2.1: Phân quyền mức dịch vụ SLA ............................................................................. 4

Hình 2.2: Ví dụ về mơ hình Graph Database ...................................................................... 8
Hình 2.3: Điều khiển truy xuất trong mơ hình Graph Database.......................................... 9
Hình 2.4: Mơ hình lưu trữ row-store và column-store ...................................................... 11
Hình 2.5: Chiến lược khóa dữ liệu ................................................................................... 17
Hình 2.6: Phân tán dữ liệu dựa trên vùng khóa ................................................................. 19
Hình 2.7: Phân tán dữ liệu dựa trên hàm băm ................................................................... 19
Hình 2.8: Mơ hình document trong mongodb ................................................................... 21
Hình 3.1: Mơ hình điều khiển truy cập tùy quyền............................................................. 28
Hình 3.2: Ví dụ về trojan horse tren DAC......................................................................... 29
Hình 3.3: Mơ hình điều khiển truy cập dựa trên vai trị .................................................... 30
Hình 3.4: Đặc điểm các mơ hình điều khiển truy xuất ...................................................... 32
Hình 3.5: Mơ hình điều khiển truy xuất dựa trên thuộc tính ABAC ................................. 34
Hình 4.1: Tổng quan mơ hình ............................................................................................ 37
Hình 4.2: Kiến trúc tổng quan hệ thống ............................................................................ 39
Hình 4.3:Luồng chạy tổng quan của hệ thống ................................................................... 41
Hình 4.4: Cấu trúc json dùng để lưu chính sách phân quyền ............................................ 42
Hình 4.5: Cấu trúc chính sách ........................................................................................... 43
Hình 4.6: Giải thuật kết hợp Deny-overrides .................................................................... 47
Hình 4.7: Giải thuật kết hợp Permit-overrides .................................................................. 47
Hình 4.8: Giải thuật kết hợp First-applicable .................................................................... 48
Hình 4.9: Giải thuật kết hợp Only-one-applicable ............................................................ 48
Hình 5.1: Lược đồ thành phần ........................................................................................... 49
Hình 5.2: Lược đồ lớp của hệ thống .................................................................................. 50
Hình 5.3: Lược đồ lớp chi tiết của hệ thống ...................................................................... 52
Hình 5.4: Lược đồ lớp biểu diễn chính sách ..................................................................... 53
Hình 5.5: Lược đồ lớp biểu diễn biểu thức kiều kiện luận lý ............................................ 55
Hình 6.1: Sinh dữ liệu thử nghiệm .................................................................................... 57


DANH MỤC BẢNG

Bảng 2-1: So sánh thời gian truy xuất của cơ sở dữ liệu quan hệ và Neo4j........................ 8
Bảng 2-2: Khả năng hổ trợ truy vấn của các mô hình NoSQL ......................................... 15
Bảng 2-3: Khả năng hổ trợ truy cập đồng thời của các mơ hình NoSQL ......................... 16
Bảng 2-4: Khả năng hổ trợ phân tán dữ liệu ..................................................................... 18
Bảng 2-5: Khả năng nhân bản dữ liệu ............................................................................... 20
Bảng 2-6: Các thao tác truy vấn trên MongoDB ............................................................... 23
Bảng 6-1: Thay đổi độ phức tạp của các thuộc tính .......................................................... 59
Bảng 6-2: Thay đổi độ phức tạp của các chính sách ......................................................... 59


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn

Chương 1 GIỚI THIỆU
1.1 Mục tiêu của đề tài
Như đã đề cập ở trên, mặc dù dữ liệu lớn ngày càng thu hút được sự quan tâm của các nhà
nghiên cứu nhưng các mơ hình điều khiển truy xuất cho dữ liệu lớn vẫn còn nhiều hạn chế,
vẫn chưa đạt đến độ mịn và linh động. Do đó mục tiêu của đề tài là nghiên cứu và đề xuất
ra một mơ hình điều khiển truy xuất cho dữ liệu lớn, xây dựng một cơ chế điều khiển truy
xuất để đánh giá mơ hình đã đề xuất.
1.2 Ý nghĩa đề tài
Về mặt khoa học, đề tài nghiên cứu và đề xuất một mơ hình điều khiển truy xuất mới cho
dữ liệu lớn. Mơ hình điều khiển truy xuất này sẽ làm nền tảng vững chắc, tạo tiền đề nghiên
cứu và phát triển các ứng dụng dữ liệu lớn.
Về mặt thực tiễn, đề tài xây dựng một cơ chế điều khiển truy xuất, dựa trên mơ hình điều
khiển và cơ chế điều khiển truy xuất này giúp nâng cao bảo mật trong việc quản lý dữ liệu
lớn.
1.3 Giới hạn của đề tài
Do thời gian có hạn, nên phạm vi nghiên cứu của đề tài trước mắt tập trung vào việc xây
dựng một mơ hình điều khiển truy xuất tổng quát cho dữ liệu lớn. Việc xây dựng một cơ
chế điều khiển để đánh giá mơ hình chỉ được xây dựng trên một mơ hình dữ liệu lớn. Cụ

thể là trong đề tài này sẽ sử dụng mơ hình document store MongoDB.
Về mơ hình điều khiển truy xuất áp dụng cho MongoDB, đề tài sẽ sử dụng mơ hình ABAC
và hiện thực mơ hình ABAC để có thể áp dụng cho MongoDB.
1.4 Cấu trúc báo cáo
Bài báo cáo chia làm 7 chương:

1


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
Chương 1. GIỚI THIỆU trình bày tổng quan về đề tài, mục tiêu của đề tài , ý nghĩa khoa
học và thực tiễn của vấn đề được nêu ra, giới hạn của đề tài.
Chương 2. CƠ SỞ DỮ LIỆU NOSQL trình bày cơ sở lý thuyết về dữ liệu lớn, các mơ hình
cơ sở dữ liệu NoSQL và mơ hình MongoDB sẽ là cơ sở dữ liệu được áp dụng trong đề tài
này.
Chương 3. ĐIỀU KHIỂN TRUY XUẤT trình bày cơ sở lý thuyết về điều khiển truy xuất,
các mơ hình điều khiển truyền thống và mơ hình điêu kiển dựa trên thuộc tính ABAC sẽ
được áp dụng trong đề tài này.
Chương 4. KIẾN TRÚC HỆ THỐNG trình bày kiến trúc tổng quan hệ thống.
Chương 5. HIỆN THỰC HỆ THỐNG trình bày kiến trúc hiện thực của hệ thống.
Chương 6. KẾT QUẢ THỰC NGHIỆM trình bày kết quả đánh giá hệ thống.
Chương 7. KẾT LUẬN trình bày tổng kết báo cáo và hướng phát triển của đề tài.

2


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn

Chương 2 CƠ SỞ DỮ LIỆU NOSQL
2.1 Khái niệm cơ bản về dữ liệu lớn

Dữ liệu lớn là dữ liệu có dung lượng (volumme) dữ liệu khổng lồ, có tốc độ (velocity) được
sinh ra lớn, và bao gồm nhiều kiểu (variety) dữ liệu khác nhau mà không thể được xử lý
hiệu quả bởi các công cụ dữ liệu truyền thống. Phần tiếp theo sẽ trình bày tóm tắt các mơ
hình dữ liệu lớn cùng với các hệ thống quản lý dữ liệu lớn đang có trong thực tế.
2.2 Các mơ hình dữ liệu lớn
2.2.1 Mơ hình Key-Value
Cấu trúc lưu trữ của mơ hình Key-Value (khố-giá trị) là sự ánh xạ một giá trị nội dung
thuộc kiểu bất kì (có thể có cấu trúc, bán cấu trúc hay khơng có cấu trúc) vào một khố.
Khố này có thể thuộc một kiểu bất kì (có/bán hoặc khơng có cấu trúc). Vì vậy, giá trị của
khố và nội dung lưu trữ có thể rất đa dạng, từ các kiểu cơ bản như byte, integer, float,
double,… đến các kiểu phức tạp như XML, JSON,… hay file hình ảnh, âm thanh, video.
Mơ hình Key-Value rất thích hợp để lưu trữ dữ liệu lớn vì tính đa dạng (từ có/bán đến
khơng cấu trúc), dễ dàng mở rộng dung lượng lưu trữ khi cần thiết (như trong hệ thống
Hadoop [9] ta chỉ cần thêm vào một máy tính nào đó), và khả năng lưu trữ dữ liệu với tốc
độ cao (vì cơ chế lưu trữ rất đơn giản và trực tiếp, thêm vào nhanh).
 Mơ hình Key-Value vì vậy rất phổ biến trong cơng nghệ NoSQL đang được ứng
dụng nhiều trong các hệ thống dữ liệu lớn [1]. Tuy nhiên, các cơ chế bảo mật cho
mơ hình dữ liệu Key-Value hiện tại vẫn cịn rất thơ sơ và đơn giản. Bảo mật trong
mơ hình này chủ yếu dựa trên 3 yếu tố chính sau đây:
 Xác thực: Các kỹ thuật xác thực người dùng, chủ thể sử dụng dữ liệu đang có.
Mã hố dữ liệu: Các dữ liệu mang tính nhạy cảm, cần bảo mật sẽ được mã hoá trước
khi lưu trữ xuống. Tuy nhiên q trình mã hố này phải nhanh, khơng ảnh hưởng
nhiều đến tốc độ và hiệu suất của hệ thống.
3


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
 Tận dụng cơ chế bảo mật của hệ thống file sẵn có: Do thơng thường các bộ KeyValue sẽ được lưu trữ thành file, do đó hệ thống lưu trữ sẽ phân quyền cho các file
này ngay tại thời điểm ghi xuống.
Sau đây ta xem xét hai ví dụ về cơng nghệ điển hình cho mơ hình lưu trữ Key-Value là

Hadoop [9] và Redis [10].
Hadoop : Cơ chế bảo mật của Hadoop về cơ bản dựa trên 3 yếu tố chính sau đây.
 Xác thực người dùng bằng công nghệ Kerberos.
 Phân quyền file HDFS (Hadoop File System). Đây là một hệ thống file phân quyền
theo chuẩn POSIX. Khi ghi xuống hệ thống sẽ xác định owner (chủ sở hữu) và group
(nhóm sở hữu) của file. Một bộ quyền hạn trên file được xác lập bao gồm quyền đọc
(read), ghi (write) và thực thi (execute) cho owner, group và tất cả còn lại.
 Phân quyền mức dịch vụ (Service Level Authorization, SLA). Một hệ thống Hadoop
bao gồm nhiều dịch vụ nhỏ, như Map, Reduce, Datanode,… SLA cho phép người
quản trị phân quyền sử dụng các dịch vụ này cho từng người dùng (hiểu rộng ra là
người dùng, tiến trình hoặc bất kì thành phần chủ động nào trong hệ thống). Sau đây
là hai ví dụ minh hoạ cụ thể cho việc gán quyền SLA.
Trong ví dụ dưới về phân quyền, người dùng Alice, Bob và nhóm Mapreduce được
phép thực thi các hàm map-reduce .

Hình 2.1: Phân quyền mức dịch vụ SLA

4


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
Redis: Redis là hệ thống lưu trữ Key-Value trên bộ nhớ chính (in-memory keyvalue
storage). Cơ chế bảo mật của Redis rất thô sơ, chỉ cho phép xác thực người dùng [10], và
khơng có cơ chế điều khiển truy xuất mịn hơn (như SLA của Hadoop). Ngoài ra, Redis
khuyến khích ta mã hố các dữ liệu nhạy cảm trước khi lưu trữ để tăng cường tính bảo mật.
2.2.2 Mơ hình Document Store
Trong mơ hình này, khái niệm document là để chỉ một nội dung có cấu trúc, bán cấu trúc
hoặc khơng có cấu trúc. Ví dụ củadocument có thể rất đa dạng, như JSON, BSON, XML,
YAML hay phức tạp hơn là các file Word, Excel, PDF,… Ta có thể xem mơ hình Document
Store là một bản cải tiến của mơ hình Key-Value. Khi các bộ Key-Value có thêm thuộc

tính ngữ nghĩa hoặc siêu dữ liệu đến một mức độ nhất định, ta có thể gom nhóm các bộ
key-value thành một document.
Việc gom nhóm đó ta có thể thực hiện theo 4 phương thức chính sau đây.
 Gom nhóm thành Collections, tức là ta gom nhóm một cách chủ động, người dùng
hoặc chương trình trong quá trình chạy sẽ gom nhóm trực tiếp các dữ liệu liên quan.
 Gom nhóm theo Tags, các nội dung sẽ được gán các tags, sau đó các dữ liệu sẽ gom
nhóm thành document theo các tags.
 Gom nhóm theo các siêu dữ liệu vơ hình (Non-visible Metadata).
 Gom nhóm thành cấu trúc phân cấp (Directory Hierachies).
Mơ hình Document Store thích hợp với các hệ thống lưu trữ Big Data phần nào coi trọng
tính ngữ nghĩa của dữ liệu (khác với mơ hình Key-Value, đơn thuần chỉ là lưu trữ dữ liệu).
Ví dụ, mơ hình Key-Value lưu trữ các log file (web/game/application logs,…) cịn mơ hình
Document Store có thể ứng dụng trong lưu trữ các status của một mạng xã hội, tweet,
comments,…
Do đặc tính có thêm ngữ nghĩa của document trong Document Store, cơ chế bảo mật của
mơ hình này được nâng cao hơn, uyển chuyển và mịn hơn so với mơ hình Key-Value.
5


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
Ngoài các cơ chế bảo mật cơ bản như xác thực người dùng, mã hoá dữ liệu, ta có thể áp
dụng các cơ chế điều khiển truy xuất cơ bản cho mơ hình Document Store (như RBAC),
hoặc cung cấp cơ chế cho phép người lập trình thực hiện điều khiển truy xuất tuỳ chỉnh
trên dữ liệu lưu trữ [3,4,13,14,15]. Tuỳ theo công nghệ hiện thực mà mức độ nâng cao này
cũng khác nhau. Ta xem xét hai ví dụ về cơng nghệ sau đây để tham khảo rõ hơn về vấn
đề này.
MongoDB : MongoDB lưu trữ một collection dưới định dạng BSON, mỗi một collection
được xem như một “database” và người lập trình/ quản trị viên có thể cài đặt điều khiểu
truy xuất ở mức độ database trong hệ thống. Mơ hình điều khiển truy xuất được áp dụng
trong MongoDB là RBAC. Mỗi người dùng (tiến trình, thành phần chủ động) sẽ được gán

vào một role. Trong MongoDB, có 3 nhóm role [11]: Read (chỉ đọc), ReadWrite (đọc và
ghi) và Admin (quản trị). Mỗi role cung cấp cho người dùng một danh sách các quyền truy
xuất trên một database luận lý cụ thể. Một người dùng có thể có nhiều role trên nhiều
database luận lý. Một giới hạn của RBAC trong MongoDB là role khi được uỷ thác cho
người dùng, ta không thể tuỳ chỉnh giảm bớt quyền trong role đó đối với người dùng đã
được cấp.
CouchDB : CouchDB [12] là kho lưu trữ dữ liệu document dưới dạng JSON, đặc biệt được
thiết kế cho ứng dụng WebService hoặc REST-API. Vì đặc thù ứng dụng Web, nên
CouchDB cung cấp cơ chế xác thực người dùng qua 3 phương thức OAuth, HTTP và Basic
[12]. Về điều khiển truy xuất, tương tự như MongoDB, CouchDB điều khiển truy xuất theo
mơ hình RBAC. Mỗi người dùng dữ liệu (gồm cả các tiến trình, thành phần chủ động dùng
dữ liệu) sẽ được gán role thuộc 3 nhóm sau đây:
 DB Members có quyền Read (+Write) trên một database.
 DB Admin có tồn quyền trên một database.
 Server Admin có tồn quyền trên tất cả database

6


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
Ngoài ra, CouchDB cung cấp một cơ chế cho phép điều khiển truy xuất ở mức mịn hơn,
nhưng địi hỏi người lập trình phải tốn cơng sức lập trình. Đó là cơ chế kiểm định dữ liệu
thơng qua hook validate_doc_update [12].
2.2.3 Mơ hình Graph Databases
Hệ quản trị Graph database [7] là một hệ cơ sở dữ liệu trực tuyến hỗ trợ xử lý các giao tác
trực tuyến (OLTP) và các tác vụ CRUD (Create, Read, Update, và Delete). Graph được tạo
thành từ các nốt (nodes), quan hệ (relationships) và thuộc tính (attributes).
 Node chứa các thuộc tính. Các thuộc tính này được lưu trữ như các tài liệu
(document). Nội dung của tài liệu là tập hợp các cặp khóa – giá trị (key – value).
Key có kiểu giá trị chuỗi và value có thể lưu bất kỳ kiểu giá trị nào.

 Relationship kết nối và cấu trúc các node. Một relationship ln có hướng, có tên,
có node bắt đầu và node kết thúc. Các thông tin này làm rõ thêm ngữ nghĩa cấu trúc
node của đồ thị. Relationship cũng có các thuộc tính. Các thuộc tính này sẽ cung
cấp thêm thông tin hỗ trợ cho các giải thuật đồ thị, thêm ngữ nghĩa cho đồ thị (như
thông tin lượng số hay trọng số), và thêm thông tin cho các truy vấn trong thời gian
thực thi.
Bằng cách kết hợp các node trừu tượng và các các quan hệ với nhau trong những cấu trúc
kết nối, Graph database cho phép chúng ta tạo ra các mơ hình phức tạp nhưng gần với các
vấn đề thực tế. Các mơ hình này sẽ đơn giản hơn và dễ hiểu hơn các mơ hình được tạo ra
bằng cơ sở dữ liệu quan hệ. Một ví dụ minh họa được thể hiện trong hình 2.2 bên dưới.

7


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn

Hình 2.2: Ví dụ về mơ hình Graph Database
Về cấu trúc lưu trữ dữ liệu, Graph database sử dụng cách lưu trữ tự nhiên của đồ thị. Điều
này giúp tối ưu cho lưu trữ, hiệu suất, mở rộng và quản lý đồ thị. Hiệu suất xử lý của cấu
trúc lưu trữ này sẽ được nâng cao khi xử lý các tác vụ cần phải di chuyển qua các node trên
đồ thị nhưng sẽ không tốt khi các truy vấn không di chuyển hay cần nhiều bộ nhớ. Tuy
nhiên, không phải tất cả các Graph database đều sử dụng cách lưu trữ dạng đồ thị. Các cơ
sở dữ liệu này ánh xạ dữ liệu vào cơ sở dữ liệu quan hệ (My Sql), hoặc cơ sở dữ liệu hướng
đối tượng, hoặc các mơ hình lưu trữ dữ liệu cho mục đích chung (khơng hướng đồ thị).
Bảng sau so sánh thời gian truy xuất của Graph database xây dựng dựa trên cơ sở dữ liệu
quan hệ và cơ sở dữ liệu dạng đồ thị (Neo4j [16]).
Số lượng node

Thời gian truy xuất


Cơ sở dữ liệu quan hệ

1.000

2000ms

Neo4j

1.000.000

2ms

Bảng 2-1: So sánh thời gian truy xuất của cơ sở dữ liệu quan hệ và Neo4j
Giải pháp điều khiển truy xuất trong graph database cho phép xác định:
8


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
 Các loại tài nguyên (như cấu trúc công ty, các sản phẩm, các dịch vụ, người dùng
cuối,…) mà người quản trị có thể quản lý.
 Loại tài nguyên nào mà người dùng cuối có thể truy cập.
 Với một tài nguyên, xác định người có thể thay đổi cấu hình truy xuất.
Hình dưới đây minh họa một cấu trúc điều khiển truy xuất 2 cấp được dùng để quản lý tài
nguyên con người, nhân viên trong công ty. Cấp thứ nhất gồm những người quản trị được
gán vào các nhóm (group). Nhóm có các quyền khác nhau và liên kết đến thành viên trong
tổ chức để tạo thành cấp thứ hai. Các thành viên của tổ chức cũng liên kết với nhau bằng
quan hệ cha con.

Hình 2.3: Điều khiển truy xuất trong mơ hình Graph Database
Các quyền của group bao gồm:

 ALLOWED_INHERIT kết nối người X quản trị một nhóm đến một thành viên Y
của tổ chức và cho phép người X quản lý các thành viên con của thành viên X. Ví
9


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
dụ Ben quản lý Group 1 thì anh ta sẽ quản lý Acme và các thành viên con của Acme
(Arnold, Charlie,…).
 ALLOWED_DO_NOT_INHERIT kết nối một người X là quản trị nhóm đến một
thành viên Y của tổ chức và nhưng không cho phép X quản lý các thành viên con
của thành viên Y. Sarah quản lý Group 2 thì Sarah quản lý Acme nhưng khơng quản
lý các thành viên con của Acme.
 DENIED cấm người quản trị truy cập vào một thành viên của tổ chức. Mặc dù thành
viên Skunkworkz là con của thành viên Startup, Sarah quan lý Group 3 và thành
viên Startup nhưng không thể truy cập Skunkworkz do bị DENIED.
Neo4J [16] là một hệ thống mã nguồn mở quản lý dữ liệu dạng đồ thị thay vì dạng bảng.
Các node trong Neo4j được kết nối trực tiếp bằng các quan hệ. Cả node và quan hệ đều có
thuộc tính. Neo4j hỗ trợ điều khiển truy xuất của đồ thị hoặc người dùng cấu hình theo mơ
hình Access control list (ACL). ACL là tập hợp các quyền được gán với một đối tượng.
ACL xác định những người dùng hay quá trình được gán quyền truy xuất đến các đối tượng
cũng như những hành động được phép thực hiện trên đối tượng đó [13,14,15].
OrientDB [17] là một hệ cơ sở dữ liệu NoSQL mã nguồn mở được viết bằng Java.
OrientDB là cơ sở dữ liệu thuộc mơ hình Document nhưng quan hệ được quản lý như
Graph database với các kết nối trực tiếp giữa các record. OrientDB bảo mật dựa trên người
dùng, vai trò và hỗ trợ truy vấn SQL.
2.2.4 Mơ hình Column Oriented
Hệ quản trị cơ sở dữ liệu hướng cột lưu trữ các bảng dữ liệu thành các cột, khác với cơ sở
dữ liệu quan hệ lưu thành các dịng. Mơ hình dữ liệu lớn này phù hợp với các ứng dụng chỉ
đọc dữ liệu, đọc dữ liệu với cường độ lớn, dữ liệu lớn (như các kho dữ liệu, các hệ thống
quản lý quan hệ khách hàng (CRM)), hay các hệ thống cần tính tốn tổng hợp từ lượng lớn

mục dữ liệu tương tự nhau. Hình sau minh họa cấu trúc lưu trữ dữ liệu khác nhau giữa mơ
hình dữ liệu quan hệ (row store) và mơ hình dữ liệu hướng cột (column store):
10


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn

Hình 2.4: Mơ hình lưu trữ row-store và column-store

Ví dụ bảng dữ liệu sau:

Trong hệ thống hướng dòng, dữ liệu sẽ được xếp theo thứ tự như sau:
001:10,Smith,Joe,40000;002:12,Jones,Mary,50000;003:11,Johnson,Cathy,44000;004:22,Jones,Bob,55000;

Chỉ số dòng (rowId) được dùng để ánh xạ đến dòng dữ liệu (rowId = 001 ánh xạ đến dữ
liệu dòng một là “10, Smith, Joe, 40000”). Nhưng với hệ thống hướng cột thì dữ liệu được
lưu theo từng cột và giá trị dữ liệu sẽ ánh xạ ngược lại chỉ số dòng (giá trị Smith ánh xạ
đến rowId = 001).
10:001,12:002,11:003,22:004;Smith:001,Jones:002,Johnson:003,Jones:004;Joe:001,Mary:002,Cathy:003,Bob:00
4;40000:001,50000:002,44000:003,55000:004;

11


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
Các dữ liệu có cùng kiểu được lưu trữ với nhau nên làm tăng khả năng nén dữ liệu, tối ưu
chi phí lưu trữ. Tỉ lệ nén dữ liệu từ 10:1 đến 30:1. Ngoài ra, với một bảng lớn có 1 triệu
dịng, mỗi dịng cần trung bình 1024 byte, một ô cần 8 byte lưu trữ, khi đó tính tốn trên
chỉ một cột của bảng chúng ta chỉ cần đọc 8 MB cho trường hợp dữ liệu lưu trữ hướng cột
thay vì 1 GB như với dữ liệu được lưu trữ trong các RDBMS truyền thống.

Bảo mật và điều khiển truy xuất không được chú ý nhiều trong các cơ sở dữ liệu hướng
cột, thường chỉ hỗ trợ Access control list [1,2].
Cassandra [18] là một hệ cơ sở dữ liệu phân tán mã nguồn mở, cung cấp cấu trúc lưu trữ
dạng key-value. Các key được ánh xạ đến nhiều giá trị (column). Những giá trị này được
nhóm lại thành các column family. Bốn khái niệm cơ bản trong Cassandra là:
 Column là đơn vị dữ liệu nhỏ nhất trong Cassandra, gồm có name, value và
timestamp. Ví dụ:
{
name: “country”,
value: “vietnam”,
timestamp: 123456789
}
 Supper column là column có value là 1 danh sách các column. Supper column khơng
có timestamp. Ví dụ:
{
name: "myAddress",
value: {
street: {name: "street", value: "123 xyz", timestamp: 123456789},
city: {name: "city", value: "HCMC", timestamp: 123456789},
}
}
 Column family là tập hợp các columns. Nó như là table trong các RDBMS. Mỗi
row trong 1 column family bao gồm key và các column gắn liền với key đó. Column
12


Nghiên cứu phát triển mơ hình điều khiển truy xuất cho dữ liệu lớn
family sẽ được sắp xếp theo key. Các column family được cố định khi cơ sở dữ liệu
Cassandra được tạo ra, nhưng các cột có thể thêm vào family bất cứ khi nào. Ngoài
ra, trong cùng một family, các cột gắn với một số khóa cụ thể, do đó các khóa khác

nhau sẽ có số cột khác nhau.
 Keyspaces là tập hợp các column family. Thông thường mỗi ứng dụng có riêng một
keyspaces. Chúng ta có thể liên tưởng keyspaces với schema trong các RDBMS
HBase [8] là hệ quản trị cơ sở dữ liệu phân tán dạng cột, mã nguồn mở, dựa trên mơ hình
BigTable của Google. HBase hỗ trợ nén dữ liệu, xử lý trên bộ nhớ (in-memory), cho phép
lưu trữ các bảng dữ liệu rất lớn (nghìn tỉ dịng x triệu cột) và cung cấp khả năng truy xuất
(đọc/ghi) thời gian thực trên dữ liệu lớn. Từ các phiên bản 0.92 trở đi, HBase hỗ trở bảo vệ
tài nguyên dựa trên ACL. Để thiết lập ACL, HBase phải được cấu hình để bảo mật truy
cập từ khách hàng đến HBase [7] và cấu hình ZooKeeper để thực thi bảo mật. Những thay
đổi ACL được đồng bộ cả hệ thống máy tính thơng qua ZooKeeper. Ngồi ra, xác thực bảo
mật đến ZooKeeper cũng phải được thiết lập để tránh bị tấn công HBase thông qua
ZooKeeper.
2.3 So sánh các mơ hình dữ liệu lớn
Các mơ hình lưu trữ NoSQL: mơ hình Key-Value, mơ hình Document Store, mơ hình
Column Oriented mơ hình Graph Databases khơng những khác nhau về cấu trúc dữ liệu
lưu trữ và tính linh hoạt của mơ hình dữ liệu mà cịn khác nhau ở các đặc điểm sau: khả
năng truy vấn (Query possibilities), truy cập đồng thời (Concurrency control), phân tán dữ
liệu (Partition), nhân bản dữ liệu (Replication). Để chọn được một mơ hình lưu trữ dữ liệu
phù, cần phải phân tích mơ hình dữ liệu và các đặc điểm kể trên của mô hình.
2.3.1 Khả năng truy vấn
Bởi vì mơ hình dữ liệu được kết chặt chẽ với khả năng truy vấn, phân tích các loại truy vấn
được hỗ trợ bởi các cơ sở dữ liệu là một quá trình rất quan trọng để tìm ra một mơ hình dữ
liệu phù hợp. Cơ sở dữ liệu NoSQL không chỉ khác nhau về mô hình dữ liệu cung cấp mà
13


×