Chương 1. ĐIỀU KHIỂN TRUY CẬP THEO VAI TRÒ 1.1 Điều khiển truy cập Điều khiển truy cập là một phương thức dùng để hạn chế hoặc cho phép người dùng thực hiện thao tác nào đó trên tài nguyên[4]. Các tài nguyên ở đây được hiểu theo nghĩa rộng, nó có thể là các mục dữ liệu trong CSDL, tệp, máy in v. Các thao tác có thể là đọc, ghi, cập nhật v.
Điều khiển quyền truy cập bao gồm các bước cơ bản: Định danh người dùng (Identification): bước này xác định người dùng hệ thống là ai thông qua việc đưa ra thông tin định danh như username, số chứng minh thư nhân dân… Xác thực người dùng (Authentication): bước này xác định xem người dùng có thực sự có định danh như bước trước hay không thông qua việc đưa ra thông tin xác thực như mật khẩu, vân tay mà chỉ người dùng đó biết hoặc sở hữu. Kiểm soát quyền truy cập (Authorization): bước này xác định xem người dùng được làm gì trong hệ thống. Có nhiều phương pháp điều khiển truy cập khác nhau, song chúng được chia thành hai loại cơ bản: điều khiển truy cập bắt buộc (Mandatory Access Control - MAC) vàđiều khiển truy cập tuỳ quyền (Discretionary Access Control - DAC)[4].1 Điều khiển truy cập bắt buộc Điều khiển truy cập bắt buộc là khắt khe nhất trong tất cả các cấp kiểm soát[6]. Ban đầu MAC được thiết kế để sử dụng bởi chính phủ.
MAC có một cách tiếp cận phân cấp để kiểm soát truy cập vào các nguồn tài nguyên. Với MAC, việc điều khiển truy cập tới tất cả các tài nguyên hệ thống được thiết lập bởi người quản trị hệ thống, hay nói cách khác người dùng không có khả năng thay đổi quyền truy cập trên các tài nguyên hệ thống. Trong MAC, mỗi đối tượng trong hệ thống được gán một mức nhạy cảm. Mức nhạy cảm của một chủ thể xác định khả năng truy cập của chủ thể.Để truy cập một đối tượng nào đấy, chủ thể phải có một mức độ nhạy cảm tương đồng hoặc cao hơn mức độ của đối tượng yêu cầu.
8 TIEU LUAN MOI download : skknchat@gmail.2 Điều khiển truy cập tuỳ quyền Với MAC, điều khiển truy cập được thiết lập bởi quản trị viên hệ thống (system administrator), thì vớiDAC, điều khiển truy cập trên một tài nguyên được thiết lập bởi người chủ của tài nguyênđó. DAC là cơ chế kiểm soát truy cập mặc định cho hầu hết các hệ điều hành máy tính cá nhân[6]. Trong DAC, mỗi tài nguyên hệ thống có một danh sách truy cập (Access Control List-ACL). ACL chứa danh sách người dùng, nhóm và quyền truy xuất cho mỗi người dùng, nhóm đó.
Ví dụ, người dùngA có quyền read-only, người dùng có quyền read và write, nhóm quản trị có toàn quyền. Cơ chế của DAC linh hoạt hơn nhiều so với MAC, nhưng cũng làm tăng nguy cơ mất an toàn do không được quản lý tập trung bởi quản trị viên hệ thống.3 Điều khiển truy cập theo vai trò Với điều khiển truy cậptheo vai trò, các quyết định truy cập dựa trên vai trò (role) mà người dùng thuộc về.Ví dụ, một kế toán trong một công ty sẽ được giao cho vai trò kế toán, được phép thực hiện các công việc liên quan đến kế toán.Tương tự như vậy, một kỹ sư phần mềm có thể được giao cho các vai trò nhà phát triển[6]. Khái niệm vai trò ở đây có điểm tương đồng với khái niệm nhóm.Nhóm người dùng thường được xem như như một tập hợp người dùng chứ không phải là một tập hợp các quyền hạn, trong khi một vai trò một mặt vừa là một tập hợp người dùng mặt khác lại là một tập hợp các quyền hạn. Trong RBAC mỗi người dùng được gắn với các vai trò, các vai trò được gán một tập quyền.
Dongười dùng không được cấp phép quyền một cách trực tiếp, chỉ nhận được những quyền hạn thông qua vai trò (hoặc các vai trò) của họ, việc quản lý quyền hạn của người dùng trở thành một việc đơn giản, và người ta chỉ cần chỉ định những vai trò thích hợp cho người dùng mà thôi.4 Điều khiển truy cập theo luật Điều khiển truy cập theo luật (Rule Based Access Control), quyết định cho phép hay từ chối truy cập được xác định bởi một tập các luật (rules) được định nghĩa bởi quản trị hệ thống. Tương tự như DAC, mỗi tài nguyên hệ thống sẽ có một danh sách các luật, khi người dùng truy cập đến tài nguyên, 9 TIEU LUAN MOI download : skknchat@gmail.com hệ thống sẽ kiểm tra tất cả các luật trên tài nguyên đó để quyết định cho phép hay từ chối truy cập. Tương tự như MAC, người dùng không thể thay đổi được luật (quyền truy cập), chỉ có quản trị hệ thống mới có thể thay đổi được tập luật trên mỗi tài nguyên[6].2 Các mô hình tham chiếu RBAC Các mô hình tham chiếu RBAC bao gồm các phần tử cơ bản: - User (người dùng) - Role (vai trò) - Objects (các đối tượng): Là những đối tượng mà người dùng muốn truy xuất, ta còn gọi Object là những tài nguyên hệ thống (system resource). Ví dụ, như tệp, máy in, bản ghi trong cơ sở dữ liệu… - Operations (thao tác): Là các thao tác mà người dùng thực hiện trên Object.
Ví dụ như read, write, print… - Permissions (quyền hạn): Quyền thực thi Operation của chủ thể trên Object. Có bốn mô hình tham chiếu RBAC: - RBAC cơ sở (Core RBAC), - RBAC phân cấp (Hierarchical RBAC), - RBAC ràng buộc tĩnh (Static Separation of Duty Relations) - RBAC ràng buộc động (Dynamic Separation of Duty Relations).1 Mô hình RBAC cơ sở Mô hình này (Hình 1.1) bao gồm các phần tử cơ bản: người dùng (USERS), vai trò (ROLES), các đối tượng (OBS), các thao tác (OPS), các quyền hạn (PRMS) và mỗi quan hệ giữa chúng.Ngoài ra, mô hình RBAC cơ sở còn bao gồm một tập các phiên làm việc (SESSIONS), mỗi phiên làm việc là một ánh xạ giữa một người dùng và một tập con các vai trò được phân công cho người dùng[4]. 10 TIEU LUAN MOI download : skknchat@gmail.com (UA) (PA) User Assignment Permission Assignment USERS ROLES OPS OBS PRMS SESS- IONS Hình 1.1:Mô hình RBAC[4] Một user được hiểu là một người dùng. Tuy nhiên khái niệm người dùng cần được hiểu theo nghĩa rộng, vì nó có thể là máy tính, tác nhân (agent) hay một hệ thống khác.
Để đơn giản ta gọi chung là người dùng. Một role là một chức năng công việc trong ngữ cảnh của một tổ chức với một số ngữ nghĩa có liên quan về quyền hạn và trách nhiệm. Một permission là một quyền hạn được phê duyệt để thực hiện một hoạt động trên một hoặc nhiều đối tượng được bảo vệ. Một operationlà hành động của người dùng trên tài nguyên.Các operation có thể có phụ thuộc vào mỗi hệ thống cụ thể, mỗi loại tài nguyên cụ thể.
Ví dụ, trong một hệ thống tập tin, các hoạt động có thể là read, write và execute; trong một hệ quản trị cơ sở dữ liệu, các hoạt động có thể là insert, update, và delete. Mục đích của bất kỳ cơ chế điều khiển truy cập nào là để bảo vệ tài nguyên hệ thống. Tuy nhiên, trong RBAC chúng ta sử dụng thuật ngữ đối tượng được bảo vệ để nói đến các đối tượng chứa thông tin cần được bảo vệ như tệp, thư mục, hệ điều hành, bản ghi trong cơ sở dữ liệu hoặc cũng có thể là máy in, ổ cứng, CPU. Mỗi phiên là một ánh xạ của một người dùng tới các vai trò có thể, một người dùng thiết lập một phiên trong đó người dùng kích hoạt một số tập con của vai trò mà họ được phân công.Mỗi phiên được liên kết với một người dùng duy nhất và mỗi người dùng kết hợp với một hoặc nhiều phiên.
Đặc tả RBAC cơ sở[4]: 11 TIEU LUAN MOI download : skknchat@gmail.com - USERS, ROLES, OPS, vàOBS (users, roles, operations, và objects). - UA ⊆ USERS × ROLES, là quan hệ nhiều-nhiều giữa tập người dùng với tập vai trò, một người dùng có thể có nhiều vai trò, một vai trò có thể có nhiều người dùng. - assigned_users(r:ROLES)→2USERS, ánh xạ của vai trò r trên một tập người dùng: assigned_users(r) = {u∈USERS | (u, r )∈ UA}. - PRMS = 2(OPS × OBS), tập các quyền hạn.
- PA ⊆ PRMS × ROLES, là quan hệ nhiều-nhiều giữa tập quyền với tập vai trò, một vai trò có thể được cấp nhiều quyền, một quyền có thể được cấp cho nhiều vai trò. - assigned_permissions(r: ROLES)→2PRMS, ánh xạ của vai trò r lên một tập các quyền hạn: assigned_permissions(r) = {p∈ PRMS | (p,r) ∈ PA}. - Ob(p:PRMS) →{op ⊆ OPS}, ánh xạ quyền hạn tới hoạt động, một tập các hoạt động liên kết với quyền p. - Ob(p: PRMS) →{ob⊆ OBS}, ánh xạ quyền hạn tới đối tượng, một tập các đối tượng liên kết với quyền p.
- SESSIONS, tập các phiên. - user_sessions(u: USERS) → 2SESSIONS, ánh xạ của người dùng u tới một tập các phiên. - session_roles(s: SESSIONS) → 2ROLES, ánh xạ của phiên s trên một tập các vai trò: session_roles(si) ⊆ {r ∈ ROLES | (session_users(si), r)∈ UA}. - avail_session_perms(s: SESSIONS)→2PRMS, các quyền hạn có thể đối với một người dùng trong một phiên.2 RBAC phân cấp RBAC phân cấp (Hình 1.2) thêm khái niệm về phân cấp vai trò vào RBAC cơ sở.Đó là những vai trò có quyền thừa kế từ các vai trò khác.Ví dụ, nếu vai trò r2 được thừa kế từ r1, và r1 có quyền thiết lập p1 khi đó r2 cũng sẽ có quyền thiết lập p1.
12 TIEU LUAN MOI download : skknchat@gmail.com Hierarchy (UA) (PA) User Assignment Permission Assignment USERS ROLES OPS OBS PRMS SESS- IONS Hình 1.2: Mô hình RBAC[4] Điểm mấu chốt của mô hình này là giữa các vai trò có thể có quan hệ kế thừa, nó cho phép một role con kế thừa tất cả các quền hạn của role cha.Có hai kiểu kế thừa đó là: Mô hình phân cấp vai trò tổng quát (General Role Hierarchies) và Mô hình phân cấp vai trò hạn chế (Limited Role Hierarchies)[4]. Mô hình phân cấp vai trò tổng quáthỗ trợ đa kế thừa (multiple inheritance). Điều này có nghĩa là một role có thể kế thừa từ nhiều role khác Định nghĩa hình thức[4]: 1. RH ROLES × ROLES được gọi là quan hệ kế thừa, viết tắt là , r1 r2 chỉ khi tất cả các quyền của r2 cũng là các quyền của r1 và tất cả người sử dụng của r1 cũng là những người sử dụng của r2.
authorized_users(r: ROLES) → 2USERS, ánh xạ vai trò r lên trên một tập người dùng, authorized_users(r) = {u USERS | r’ r , (u, r’) UA}. authorized_permissions(r: ROLES) → 2PRMS, ánh xạ vai trò r lên trên một tập các quyền. authorized_permissions(r) = {p PRMS | r’ r, (p, r’) PA}. Mô hình phân cấp vai trò hạn chế chỉ hỗ trợ kế thừa đơn, nghĩa là mỗi role chỉ có thể kế thừa từ một role khác.