Trong thời đại ngày nay, với sự phát triển nhanh chóng của công nghệ thông tin
và xu hướng hội nhập kinh tế quốc tế, nhu cầu trao đổi thông tin và tài nguyên giữa các
tổ chức , cá nhân thông qua mạng Internet ngày càng gia tăng. Từ việc trao đổi thông
tin thư từ cho đến việc trao đổi và chia sẻ tài nguyên như hình ảnh âm thanh, các tài
liệu…tất cả giờ đây đã được số hóa. Các ứng dụng theo mô hình cổ điển –chỉ hoạt
động trên desktop và có ít người sử dụngngày càng trở nênkhôngphù hợp với thực tế
cuộc sống nữa. Các ứng dụng ngày nay đều đòi hỏi phải có khả năng kết nối với mạng
Internet và phục vụ được hàng triệu người sử dụng trong cùng một thời điểm. Và xuất
phát từ thực tế đó,một vấn đề nảy sinh ra đó là làm thế nào để đảm bảo an ninh và bảo
mật dữ liệu trong mộthệ thống đa người dùng như vậy ? đây chính là lý do cho sự ra
đời của các mô hình điều khiển truy cập.
Nội dung khóa luận đưa ra một cái nhìn tổng quát về các mô hìnhđiều khiển
truy cập phổ biến đặc biệtchú trọnglà mô hình điều khiển truy cập trên cơ sở vai trò –
RBAC. Từ những kiến thức cơ bản đó khóa luận tiến tới việc đặc tả các chức năng quản
trị cơ bản trong một hệ thống cài đặt mô hình RBAC.
Sau khi đưa nhữngkiến thức lý thuyết một cách chi tiết và dễ hiểuvể RBAC,
khóa luận tiến hành phân tích , thiết kế và cài đặt một công cụ hỗ trợ cho các nhà quản
trị website trong việc điều khiển truy cập, công cụ này sẽ cài đặt những chức năng cơ
bản nhất của mô hình RBAC.
67 trang |
Chia sẻ: nhungnt | Lượt xem: 1975 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu ngôn ngữ đặc tả security policy và xây dựng công cụ hỗ trợ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đặng Ngọc Tuyên
NGHIÊN CỨU NGÔN NGỮ ĐẶC TẢ SECURITY POLICY
VÀ XÂY DỰNG CÔNG CỤ HỖ TRỢ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
i
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đặng Ngọc Tuyên
NGHIÊN CỨU NGÔN NGỮ ĐẶC TẢ SECURITY POLICY
VÀ XÂY DỰNG CÔNG CỤ HỖ TRỢ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Trương Ninh Thuận
HÀ NỘI - 2009
ii
LỜI CẢM ƠN
Em xin cảm ơn bộ môn Công nghệ phần mềm – khoa công nghệ thông tin- Đại
Học Công Nghệ - Đại Học Quốc Gia Hà Nội đã cho phép và giúp đỡ em thực hiện
khóa luận này. Xin cảm ơn quý thầy cô trong khoa Công nghệ thông tin đã tận tình
chỉ bảo, rèn luyện, truyền đạt những chi thức, kỹ năng, kinh nghiệm quý báu cho em
trong suốt bốn năm ở giảng đường đại học. Đây là những hành trang quý giá để em
bước vào đời.
Khóa luận sẽ không thể hoàn thành nếu như không có sự giúp đỡ, hướng dẫn và
tận tình chỉ bảo của TS. Trương Ninh Thuận, người thầy đã đi cùng em trong suốt thời
gian em nghiên cứu và thực hiện khóa luận này. Em xin chân thành biết ơn về những
chỉ bảo, định hướng nghiên cứu và thực hiện, hỗ trợ, và tạo điều kiện tốt nhất cho em.
Mặc dù đã hết sức nỗ lực và cố gắng, nhưng chắc chắn khóa luận sẽ không tránh
khỏi những khuyến khuyết. em kính mong nhận được sự cảm thông và tận tình chỉ bảo
của quý thầy cô và các bạn.
Hà Nội, ngày 15 tháng 05 năm 2009
Sinh viên: Đặng Ngọc Tuyên
iii
TÓM TẮT KHÓA LUẬN
Trong thời đại ngày nay, với sự phát triển nhanh chóng của công nghệ thông tin
và xu hướng hội nhập kinh tế quốc tế, nhu cầu trao đổi thông tin và tài nguyên giữa các
tổ chức , cá nhân thông qua mạng Internet ngày càng gia tăng. Từ việc trao đổi thông
tin thư từ cho đến việc trao đổi và chia sẻ tài nguyên như hình ảnh âm thanh, các tài
liệu…tất cả giờ đây đã được số hóa. Các ứng dụng theo mô hình cổ điển – chỉ hoạt
động trên desktop và có ít người sử dụng ngày càng trở nên không phù hợp với thực tế
cuộc sống nữa. Các ứng dụng ngày nay đều đòi hỏi phải có khả năng kết nối với mạng
Internet và phục vụ được hàng triệu người sử dụng trong cùng một thời điểm. Và xuất
phát từ thực tế đó, một vấn đề nảy sinh ra đó là làm thế nào để đảm bảo an ninh và bảo
mật dữ liệu trong một hệ thống đa người dùng như vậy ? đây chính là lý do cho sự ra
đời của các mô hình điều khiển truy cập.
Nội dung khóa luận đưa ra một cái nhìn tổng quát về các mô hình điều khiển
truy cập phổ biến đặc biệt chú trọng là mô hình điều khiển truy cập trên cơ sở vai trò –
RBAC. Từ những kiến thức cơ bản đó khóa luận tiến tới việc đặc tả các chức năng quản
trị cơ bản trong một hệ thống cài đặt mô hình RBAC.
Sau khi đưa những kiến thức lý thuyết một cách chi tiết và dễ hiểu vể RBAC,
khóa luận tiến hành phân tích , thiết kế và cài đặt một công cụ hỗ trợ cho các nhà quản
trị website trong việc điều khiển truy cập, công cụ này sẽ cài đặt những chức năng cơ
bản nhất của mô hình RBAC.
iv
MỤC LỤC
CHƯƠNG 1. ĐẶT VẤN ĐỀ....................................................................................1
1.1. Bối cảnh ............................................................................................................1
1.2. Muc tiêu của đề tài ............................................................................................2
1.3. Cấu trúc của khóa luận ......................................................................................2
CHƯƠNG 2. CÁC MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP ......................................4
2.1. Giới thiệu tổng quan ..........................................................................................4
2.2. Mô hình điều khiển truy cập tùy quyền DAC.....................................................4
2.3. Mô hình điều khiển truy cập bắt buộc MAC ......................................................4
2.4. Mô hình điều khiển truy cập trên cơ sở vai trò RBAC .......................................5
CHƯƠNG 3. ROLE-BASED ACCESS CONTROL ................................................8
3.1. Nền tảng và sự phát triển ...................................................................................8
3.2. Vai trò và các định nghĩa liên quan....................................................................9
3.3. Họ mô hình RBAC..........................................................................................11
3.3.1. Core RBAC (RBAC 0) .............................................................................11
3.3.2. Role hierarchy..........................................................................................13
3.3.3. Constrained RBAC ...................................................................................15
3.3.4. RBAC 3 ....................................................................................................18
3.4. Hệ thống RBAC và đặc tả các chức năng quản trị ...........................................19
3.4.1. Core RBAC ..............................................................................................19
3.4.2. Role hierarchy...........................................................................................27
CHƯƠNG 4. PHÂN TÍCH VÀ THIẾT KẾ CÔNG CỤ HỖ TRỢ ..........................33
4.1.Mô hình use case..............................................................................................34
4.1.1. Danh sách các tác nhân .............................................................................34
4.1.2. Sơ đồ use case:..........................................................................................35
4.1.3. Giải thích một số use case quan trọng .......................................................36
4.2. Mô hình đối tượng...........................................................................................41
4.3. Mô hình hóa động ...........................................................................................42
4.3.1. Biểu đồ tuần tự (sequence diagram): .........................................................42
4.3.2. Biểu đồ hợp tác .........................................................................................43
v
4.4. Thiết kế cơ sở dữ liệu ......................................................................................44
CHƯƠNG 5. CÀI ĐẶT CHƯƠNG TRÌNH VÀ THỰC NGHIỆM ........................46
5.1. Môi trường và công cụ cần thiết ......................................................................46
5.2. Cài đặt local webserver trên Ubuntu 8.10 ........................................................46
5.3. Sử dụng thư viện nguồn mở ADODB thao tác với cơ sở dữ liệu......................47
5.4. Các chức năng chính của chương trình ............................................................48
5.5. Phát triển ứng dụng .........................................................................................48
5.5.1. Quản lý các vai trò và người sử dụng ........................................................48
5.5.2. Chức năng quản lý các đặc quyền .............................................................50
5.5.3. Chức năng quản lý các miền đối tượng ....................................................51
5.6. Kiểm thử .........................................................................................................52
5.6.1. Đề xuất các trường hợp kiểm thử ..............................................................52
5.6.2. Tiến hành kiểm thử và kết quả ..................................................................53
5.7 Kết quả đạt được sau khi hoàn thành chương trình ...........................................55
5.8. Những hạn chế của chương trình .....................................................................55
5.9. Hướng phát triển chương trình trong tương lai ................................................56
KẾT LUẬN ...............................................................................................................57
vi
DANH SÁCH CÁC HÌNH VẼ
Hình 1. Điểm khác biệt giữa RBAC và các mô hình truyền thống................................7
Hình 2. Họ RBAC .....................................................................................................11
Hình 3. Mô hình tổng quát Core RBAC ....................................................................12
Hình 4. Mô hình tổng quát Role hierarchy ( RBAC 1) ...............................................13
Hình 5. Mô hình tổng quát các quan hệ SSD..............................................................16
Hình 6. Mô hình tổng quát các quan hệ DSD .............................................................17
Hình 7. Mô hình tổng quát RBAC cấp cao nhất - RBAC 3........................................18
Hình 8. Mô hình RBAC cấp cao nhất – triển khai chi tiết ..........................................19
Hình 9. Component view của mô hình use case cho RBAC .......................................34
Hình 10. sơ đồ use case theo từng gói chi tiết ............................................................35
Hình 11. Mô hình đối tượng của RBAC.....................................................................41
Hình 12. Các lớp thực thể trong mô hình đối tượng của RBAC.................................41
Hình 13. Các lớp cơ sở và mối quan hệ giữa chúng....................................................42
Hình 14. Biểu đồ tuần tự: User Asignment.................................................................42
Hình 15. Biểu đồ tuần tự: Permission Assignment .....................................................43
Hình 16. Biểu đồ hợp tác: User Assignment ..............................................................43
Hình 17. Biểu đồ hợp tác: permission Assignment .....................................................44
Hình 18: Mô hình cơ sở dữ liệu quan hệ của ứng dụng RBAC ...................................45
Hình 19.Màn hình nhập liệu chức năng quản lý vai trò. ............................................48
Hình 20. Màn hình nhập liệu chức năng quản lý người sử dụng.................................49
Hình 21. Màn hình nhập liệu chức năng gán người sử dụng vào các vai trò ...............49
Hình 23. Màn hình nhập liệu chức năng quản lý các hành động.................................50
Hình 24. Màn hình nhập liệu chức năng gán các hành động vào đặc quyền ...............50
Hình 25. Màn hình nhập liệu chức năng quản lý đối tượng ........................................51
Hình 26. Màn hình nhập liệu chức năng quản lý miền đối tượng................................51
Hình 27. kết quả thực hiện gán người sủ dụng vào vai trò trong test 1 .......................53
Hình 28. kết quả thực hiện cấp quyền cho vai trò trong test 1 ....................................54
Hình 29. kết quả thực hiện gán người sử dụng vào vai trò trong test 2 .......................54
Hình 30. kết quả thực hiện cấp quyền cho vai trò trong test 2 ....................................55
vii
DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM
THUẬT NGỮ KHÁI NIỆM
MAC Mandatory access control – điều khiển truy cập bắt buộc
DAC Discretionary access control – điều khiển truy cập tùy quyền
RBAC
Role-based access control – điều khiển truy cập trên cơ sở vai
trò
GFAC
Generalized Framework for Access Control – kiến trúc
frameword tổng quát cho điều khiển truy cập
ACL Access control list – Danh sách điều khiển truy cập
least privilege Đặc quyền tối thiểu
separation of
duties
Phân chia trách nhiệm
SSD Static separation of duties – phân chia trách nhiệm tĩnh
DSD Dynamic separation of duties – phân chia trách nhệm động
data abstraction Trừu tượng hóa dữ liệu
Role hierarchy Cấp bậc trong vai trò
Core RBAC Mô hình RBAC cơ sở
Constrained RBAC Các ràng buộc RBAC
ROLE data set Tập hợpc các vai trò
SSD role set Tập hợp các vai trò có thêm ràng buộc SSD
USER data set Tập hợp người sử dụng
OBJS data set Tập hợp các đối tượng
OPS Tập hợp các hành động trên một đối tượng cụ thể
1
CHƯƠNG 1. ĐẶT VẤN ĐỀ
1.1. Bối cảnh
Ngày nay, công nghệ thông tin đang là ngành công nghiệp mũi nhọn trong chiến
lược phát triển kinh tế và xây dựng đất nước của hầu hết các quốc gia. Các sản phẩm
công nghệ thông tin đã và đang được ứng dụng trong mọi lĩnh vực của đời sống kinh
tế, xã hội và hầu hết đều đem lại những giá trị thiết thực.
Đối tượng phục vụ chính của ngành công nghệ thông tin hiện nay chính là các tổ
chức, các doanh nghiệp…Nhu cầu ứng dụng các sản phẩm của ngành công nghiệp mũi
nhọn này để hỗ trợ tin học hóa quy trình nghiệp vụ mà từ trước đến nay vốn vẫn được
thực hiện một cách thủ công đang ngày càng trở nên cấp thiết. Các sản phẩm dạng này
đều có một đặc điểm chung là có độ phức tạp cao, chi phí sản xuất và bảo trì lớn, mức
độ cụ thể còn tùy vào độ lớn của tổ chức cũng như độ phức tạp của các quy trình nghiệp
vụ cần xử lý.
Với sự phát triển nhanh chóng của Internet cộng thêm với xu hướng hội nhập
chung của toàn thế giới, các tổ chức, cá nhân cần bắt tay, phối hợp hoạt động và chia sẻ
tài nguyên với nhau để nâng cao hiệu quả hoạt động. Lúc này các sản phẩm sẽ có độ
phức tạp cao hơn, kéo theo đó là chi phí sản xuất, quản lý và bảo trì. Các ứng dụng lúc
này sẽ có hàng trăm đến hàng triệu người sử dụng trong cùng một thời điểm. Như vậy
với xu hướng mới đó ngành công nghệ phần mềm lại phải đối mặt với các vấn đề khó
khăn như vấn đề tái sử dụng và mở rộng các hệ thống sẵn có, vấn đề về an ninh bảo
mật. Nhưng có lẽ vấn đề khó khăn nhất chính là vấn đề an ninh và bảo mật. Phải làm
thế nào để đảm bảo rằng chỉ những người dùng đã được xác thực mới được phép truy
cập đến dữ liệu hay tài nguyên nào đó trong một hệ thống.
Trước những yêu cầu cấp thiết như trên, các nhà phát triển hệ thống và các nhà
phát triển phần mềm đã bắt đầu nghiên cứu các chính sách điều khiển truy cập (Access
control). Mô hình đầu tiên được đưa ra là DAC [11] (mô hình điều khiển truy cập tùy
quyền), tiếp theo đó là MAC [11] (mô hình điều khiển truy cập bắt buộc) và cuối cùng
là RBAC (mô hình điều khiển truy cập trên cơ sở vai trò). Mỗi mô hình trên đều có
những ưu điểm và nhược điểm riêng, song cho đến ngày nay RBAC [5] vẫn là mô hình
2
được đánh giá là đã giải quyết những khó khăn trên một cách tối ưu nhất và sẽ là xu thế
tương lai. Thế thì RBAC là gì ? cách nó giải quyết những vấn đề khó khăn ở trên như
thế nào? Đây chính là lý do chúng tôi thực hiện đề tài này.
1.2. Muc tiêu của đề tài
Để thực hiện những vấn đề đã nêu ra ở trên, khóa luận sẽ lần lượt trình bày
những kiến thức cần thiết để giải quyết bài toán đặt ra. Khóa luận sẽ tập trung vào các
vấn đề sau:
Tìm hiểu khái quát về các mô hình điều khiển truy cập phổ biến là DAC,
MAC và RBAC. Phân tích và đánh giá điểm mạnh và điểm yếu của từng
mô hình.
Tìm hiểu chi tiết về mô hình điều khiển truy cập trên cơ sở vai trò RBAC
từ mô hình cơ sở đến mô hình cấp cao nhất, đưa ra được các đặc tả chức
năng quản trị cho từng mô hình trong họ gia đình RBAC.
Phân tích, thiết kế và cài đặt một công cụ hỗ trợ nhà quản trị trong việc
quản lý và điều khiển truy cập.
1.3. Cấu trúc của khóa luận
Các phần còn lại của khóa luận bao gồm các phần sau:
Chương 2: Trình bày tổng quan về điều khiển truy cập, giới thiệu các mô hình
điều khiển truy cập phổ biến là DAC, MAC và RBAC. So sánh ưu điểm và
nhược điểm giữa chúng.
Chương 3: Trình bày chi tiết về mô hình điều khiển truy cập trên cơ sở vai trò
RBAC. Tìm hiểu chi tiết về từng mô hình trong họ các mô hình RBAC, và cuối
cùng là đặc tả các chức năng quản trị trong các mô hình thuộc họ các mô hình
RBAC.
Chương 4: Sẽ phân tích, thiết kế một ứng dụng trên nền web, ứng dụng này sẽ
áp dụng mô hình RBAC trong việc quản lý và điều khiển truy cập đối với người
sử dụng.
3
Chương 5: Trình bày quá trình cài đặt và thực nghiệm đối với ứng dụng đã
phân tích thiết kế trong chương 4, đưa ra các kết quả đạt được.
4
CHƯƠNG 2. CÁC MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP
2.1. Giới thiệu tổng quan
Bắt đầu từ những thập niên 70, các hệ thống máy tính đưa ra rất nhiều các ứng
dụng và phục vụ rất nhiều người dùng trên khắp thế giới, do đó đã làm tăng khả năng
nhận thức về bảo mật dữ liệu. Các nhà phát triển hệ thống và các nhà phát triển phần
mềm đều quan tâm đến các kiểu của điều khiển truy cập (access control) để chắc chắn
rằng chỉ những người dùng đã được xác thực mới có thể truy cập đến dữ liệu hoặc tài
nguyên nào đó. Xuất phát từ thực tế đó, một số mô hình điều khiển truy cập đã được
đưa ra. Trong đó nổi tiếng nhất là ba mô hình: MAC (mandatory access control), DAC
(discretionary access control) và RBAC (Role-based access control).
2.2. Mô hình điều khiển truy cập tùy quyền DAC
Trước tiên chúng ta tìm hiểu về DAC. Theo định nghĩa chính thức thì DAC hay
còn gọi là mô hình điều khiển truy cập tùy quyền là một phương pháp nhằm hạn chế
truy cập các đối tượng trên cơ sở nhận dạng (identity) và nhu cầu cần biết (need-to-
know) của nhiều người dùng và/hoặc của một nhóm các đối tượng trực thuộc. Phương
pháp điều khiển truy cập được coi là tùy quyền là vì một chủ thể với một phép truy cập
nào đó có thể chuyển nhượng phép truy cập (trực tiếp hay gián tiếp) sang bất cứ một
chủ thể nào khác trong hệ thống. Nói cách khác, kỹ thuật này cho phép người dùng có
toàn quyền quyết định quyền truy cập được công nhận cho các tài nguyên của họ, có
nghĩa là họ có thể (tình cờ hay ác ý) ban quyền truy cập cho những người dùng bất hợp
pháp.
2.3. Mô hình điều khiển truy cập bắt buộc MAC
MAC – hay còn gọi là mô hình điều khiển truy cập bắt buộc là một kỹ thuật được
dùng để bảo vệ các quy trình máy tính, dữ liệu và các thiết bị hệ thống khỏi sự lạm
dụng. Kỹ thuật này được phát triển để mở rộng và thay thế kỹ thuật điều khiển truy
cập tùy quyền DAC đối với các phép truy cập và sử dụng hệ thống tệp tin cùng những
khái niệm về người dùng và nhóm người dùng.
5
Đặc trưng quan trọng nhất của MAC bao hàm việc từ chối người dùng toàn
quyền truy cập/ sử dụng tài nguyên do chính họ tạo ra. Chính sách an ninh của hệ
thống (như đã được administrator quy định) hoàn toàn quyết định các quyền truy cập
được công nhận và một người dùng không thể tự hạn chế quyền truy cập vào các tài
nguyên của họ hơn những gì mà administrator chỉ định.
Mục đích của MAC là định nghĩa một kiến trúc mà trong đó nó đòi hỏi sự đánh
giá tất cả các label có liên quan đến vấn đề an ninh an ninh (security-related labels) và
đưa ra những quyết định dựa trên cơ sở ngữ cảnh của các thao tác cùng các nhãn dữ
liệu (data labels) tương đồng. Kiến trúc FLASK và những kiến trúc cơ cấu tổ chức
tổng quát đối với điều khiển truy cập (Generalized Framework for Access Control -
GFAC), đi đôi với MAC, trở thành những kỹ thuật khả thi cho những hệ thống an ninh
đa tầng cấp (multilevel security systems).
Một kiến trúc như vậy sẽ ngăn chặn một người dùng đã được xác thực, hoặc một
quy trình tại một phân hạng cụ thể nào đấy, hoặc có một mức độ tin cẩn (trust-level)
nhất định nào đấy, không cho họ truy cập thông tin, truy cập các tiến trình hoặc truy
cập các thiết bị ở một tầng cấp khác. Kết quả của việc này là nó cung cấp cho chúng ta
một cơ chế chính sách ngăn chặn đối với người dùng và các quy trình, hoặc biết, hoặc
chưa biết (lấy ví dụ, một chương trình ứng dụng lạ, chưa từng thấy (unknown program
có thể bao hàm một chương trình ứng dụng không đáng tin (untrusted application) và
hệ thống phải theo dõi, giám sát và/hay khống chế những truy cập của nó vào các thiết
bị và các tập tin).
2.4. Mô hình điều khiển truy cập trên cơ sở vai trò RBAC
Trong an ninh đối với các hệ thống máy tính, điều khiển truy cập trên cơ sở vai
trò (RBAC) là một trong số các phương pháp điều khiển và đảm bảo quyền sử dụng
cho người dùng. Đây là