ROLE BASED ACCESS CONTROL MODELS
Điều khiển truy cập dựa trên vai trò
Đặt vấn đề
Sự phức tạp của bảo mật quản trị Khi hệ thống có số lượng lớn các chủ thể và các đối tượng tham gia
thì sự ủy quyền có thể trở nên cực kỳ lớn và phức tạp
Khi hệ thống có quá nhiều người sử dụng thì các thao tác cấp
quyền và thu hồi quyền rất khó thực hiện và khó quản lý
Để giải quyết vấn đề trên người ta dùng cơ chế Role Based access control model
Giới thiệu Điều khiển truy cập dựa trên vai trò (Role Based Access
RBAC gán các quyền cho các vai trò cụ thể trong tổ
Control-RBAC) Phát minh vào năm 1970 Áp dụng với hệ thống đa người dùng và đa ứng dụng trực tuyến Còn được gọi là Điều khiển Truy cập không tùy ý Quyền truy cập dựa trên chức năng công việc
chức. Các vai trò sau đó được gán cho người dùng
Giới thiệu
Điều khiển truy cập dựa trên vai trò (Rule Based Access
Control-RBAC) Tự động gán vai trò cho các chủ thể dựa trên một tập quy tắc do
người giám sát xác định
Mỗi đối tượng tài nguyên chứa các thuộc tính truy cập dựa trên
quy tắc
Khi người dùng truy cập tới tài nguyên, hệ thống sẽ kiểm tra các
quy tắc của đối tượng để xác định quyền truy cập
Thường được sử dụng để quản lý truy cập ngưới dùng tới một
hoặc nhiều hệ thống Những thay đổi trong doanh nghiệp có thể làm cho việc áp dụng
các quy tắc thay đổi
Role-Based Access Control Ý tưởng trọng tâm của RBAC là permission (quyền hạn) được kết hợp với role (vai trò) và user (người sử dụng) được phân chia dựa theo các role thích hợp.
RBAC làm đơn giản việc quản lý các permission.Tạo các role cho các chức năng công việc khác nhau trong một tổ chức và các USER được phân các role dựa vào trách nghiệm và quyển hạn cua ho.Những role được cấp các permission mới hoặc hủy bỏ permission khi cần thiết.
Role-Based Access Control
Các khái niệm cơ bản:
User (Người dùng) - một con người, một máy, một quá
trình, vv
Role là một tập hợp bao gồm các quyền (permission) và
các role khác
Đối tượng tham số đặc quyền để hạn chế quyền truy cập
vào một tập hợp con của các đối tượng.
Session(phiên) là một phần quan trọng của RBAC phân biệt nó với cơ chế group truyền thống. Session cho phép kích hoạt một tập hợp con của role được gán cho user. Nếu không có session thì tất cả các role của user luôn được kích hoạt dẫn đến việc có thể vi phạm đặc quyền tối thiếu.
Role-Based Access Control Quyền hạn (permission): là một sự cho phép thực hiện một câu lệnh SQL nào đó hoặc được phép truy xuất đến một đối tượng nào đó.
Chỉ cấp cho user chính xác những quyền mà user cần đến. Việc cấp dư thừa những quyền không cần thiết có thể gây nguy hại cho việc bảo mật hệ thống.
Một permission có thể là một cặp object-method hay class-method
trong môi trường hướng đối tượng
Một permission cũng có thể là 1 cặp table-query hay view-query
trong ứng dụng CSDL
Permissions are assigned to roles: Permission assignment (PA): role-
permission
Users are assigned to roles: User assignment (UA): user-role
Role-Based Access Control
Có 2 loại quyền:
• Là quyền thực hiện một tác vụ CSDL cụ thể hoặc quyền thực hiện một loại hành động trên tất cả những đối tượng schema của hệ thống. • Vd: quyền ALTER SYSTEM, quyền CREATE TABLE, quyền DELETE ANY TABLE (xóa các hàng của bất kỳ bảng nào trong CSDL),…
• User có thể cấp 1 quyền hệ thống nếu có một trong các điều kiện
sau:
• User đã được cấp quyền hệ thống đó với tùy chọn WITH ADMIN
OPTION.
• User có quyền GRANT ANY PRIVILEGE.
• Quyền hệ thống (System Privilege):
Role-Based Access Control
tượng (Schema Object Privilege hoặc Object
thế. • Vd: quyền xóa các hàng dữ liệu khỏi bảng Department.
• Có nhiều quyền đối tượng khác nhau dành cho các loại đối tượng schema
khác nhau.
• Dùng để quản lý việc truy xuất đến các đối tượng schema cụ thể nào đó. • User có thể cấp 1 quyền đối tượng nếu có một trong các điều kiện sau:
• User có tất cả mọi quyền đối tượng trên tất cả các đối tượng thuộc schema của mình. Vì vậy user có quyền cấp bất kỳ quyền đối tượng trên bất kỳ đối tượng nào thuộc sở hữu của mình cho bất cứ user nào khác.
• User có quyền GRANT ANY OBJECT PRIVILEGE. User được cấp
quyền đối tượng đó với tùy chọn WITH GRANT OPTION
Quyền đối Privilege): • Là quyền thực hiện một hành động cụ thể trên một đối tượng schema cụ
Role-Based Access Control
• Vai trò (Role) là "là một tập hợp các quyền (permissions)”
Role-Based Access Control
• Role là một tập hợp bao gồm các quyền và các role khác. • Role được gán cho các user hoặc các role khác. • Role giúp cho việc quản trị người dùng dễ dàng và tiết kiệm
công sức hơn.
• Có một số role có sẵn do hệ thống định nghĩa(vd: DBA, RESOURCE, CONNECT,…) nhưng đa phần các role là do người quản trị CSDL tạo ra.
• Role không phải là một đối tượng schema (schema object) nên không được lưu trữ trong schema của user tạo ra nó. Do vậy, user tạo ra một role có thể bị xóa mà không ảnh hưởng đến role đó.
Role-Based Access Control
Ví dụ, • role là người vận hành có thể truy cập tất cả các tài
nguyên mà không thay đổi các quyền truy cập,
• role là một nhân viên bảo vệ có thể thay đổi các quyền truy cập nhưng không được truy cập vào các tài nguyên, • role là một kiểm toán viên có thể truy cập vào các việc
kiểm toán.
• Việc sử dụng các role mang tính quản lí này cũng có trong các hệ thống điều khiển mạng hiện đại như Novell’s NetWare và Microsoft Windows NT.
Role-Based Access Control
Ví dụ,
Role-Based Access Control
User có thể cấp 1 role nếu có một trong các điều kiện sau: • User đã tạo ra role đó. • User đã được cấp role đó với tùy chọn WITH ADMIN
OPTION.
• User có quyền GRANT ANY ROLE.
Role-Based Access Control
Role (vai trò):
Các vai trò được cấp phát dựa trên cấu trúc tổ chức với sự
nhấn mạnh đặc biệt về cấu truc bảo mật.
Các vai trò được cấp phát bởi người quản trị dựa trên các mối quan hệ nội tại của tổ chức hoặc cá nhân. Vi dụ, một người quản lý co thể có các giao dịch được cấp phép với nhân viên của anh ta. Một người quản trị có thể có các giao dịch được cấp phép trong phạm vi quản lý của mình (sao lưu, tạo tai khoản...).
Mỗi vai trò được chỉ định rõ một hồ sơ bao gồm tất cả các câu lệnh, giao dịch và các truy xuất hợp pháp tới thông tin. Các vai trò được cấp quyền hạn dựa trên nguyên lý đặc
quyền tối thiểu (the principle of least privilege).
Role-Based Access Control
Role (vai trò):
Các vai trò được xác định với các nhiệm vụ khác nhau do đó người có vai trò developer sẽ không thực hiện các nhiệm vụ của vai tro tester.
Các vai trò được kich hoạt tĩnh hoặc động tùy thuộc vào những sự kiện kích hoạt có liên quan (hàng đợi trợ giúp, cảnh báo bảo mật, khởi tạo một project...).
Các vai trò chỉ có thể được chuyển giao hoặc ủy quyền khi sử
dụng một quy trình và thủ tục nghiêm ngặt.
Các vai trò được quản ly tập trung bởi một người quản trị bảo
mật hoặc trưởng dự án.
Role-Based Access Control
So sánh giữa Role (vai trò) và Group (nhóm):
Group thường đựợc xem như một tập hợp những user chứ
không phải là một tập hợp các permission.
Một role một mặt vừa là một tập hợp các user mặt khác lại là một tập hợp các permission. Role đóng vai trò trung gian để kết nối hai tập hợp này lại với nhau.
Vai trò có thể được kích hoạt và vô hiệu hoá, các nhóm thì
không
Các nhóm có thể được sử dụng để ngăn chặn truy cập với
thẩm quyền tiêu cực.
Vai trò có thể được vô hiệu hoá cho đặc quyền tối thiểu Có thể dễ dàng liệt kê các quyền mà một vai trò có, nhưng
nhóm thì không
Role-Based Access Control
Vai
So sánh giữa Role (vai trò) và Group (nhóm):
trò đang liên kết với một chức năng, các nhóm
Vai trò tạo thành một hệ thống phân cấp, các nhóm thì
không nhất thiết
Xác định một user cụ thể thuộc group nào hoặc xác định tất cả các thành viên của một group cụ thể là khá dễ dàng.
Việc xác định thành viên của nhóm thường dễ hơn việc
không
xác định permission của nhóm.
Role-Based Access Control
RBAC là một cơ chế kiểm soát truy cập :
Mô tả chính sách kiểm soát truy cập phức tạp.
Làm giảm sai sót trong quản lý.
Giảm chi phí quản lý.
Role-Based Access Control
Chính sách điều khiển truy cập được thể hiện trong các thành phần khác nhau của RBAC như Mối quan hệ giữa Role-Permission Mối quan hệ giữa User - Role Mối quan hệ giữa Role - Role
Role-Based Access Control
Mối quan hệ giữa Role-Permission Một role tương ứng với một quyền permission để làm
ví dụ Jane Doe có năng lực để điều hành một số bộ phận nhưng chỉ được phân công điều hành một bộ phận.
một nhiệm vụ cụ thể,
Mối quan hệ giữa User - Role Các role phản ánh cho các nhiệm vụ được phân công
ví dụ công việc của một bác sỹ nội khoa hay một quản lí
cụ thể được luân phiên giữa nhiều user,
ca.
Role-Based Access Control
Mối quan hệ giữa Role - Role Ví dụ, hai role có thể đươc lập sao cho loại trừ nhau do đó cùng một user không đựơc phép thực hiện cả hai role.
Các role cũng có thể có quan hệ kế thừa, theo đó một role kế thừa các permission được gắn cho role khác. Những mối quan hệ role – role này có thể được sử dụng để làm cho các chính sách bảo mật bao gồm sự tách rời các công việc và sự ủy thác của người có thẩm quyền
Role-Based Access Control
Users
Roles
Sự phức tạp của quản trị được giảm thông qua: Phân công người sử
dụng vai trò
Phân quyền cho các vai
trò
Procedures + Types = Permissions
Tổ chức vai trò thành
một hệ thống
Objects
Role-Based Access Control
RBAC là một chính sách trung lập, nó trực tiếp
hỗ trợ ba nguyên tắc bảo mật nổi tiếng:
đặc quyền ít nhất - Least Privilege
sự tách biệt các nhiệm vụ - Separation of duties
trừu tượng hóa dữ liệu.- Data Abstraction
Role-Based Access Control
Nguyên tắc đặc quyền ít nhất đựợc hỗ trợ vì RBAC được định dạng do đó chỉ những permission mà nhiệm vụ do các thành viên của role quản lí đó cần mới được phân cho role đó.
Sự tách biệt các nhiệm vụ đạt được bằng cách đảm bảo những role có quan hệ loại trừ lẫn nhau phải đựơc sử dụng tới để hoàn thành một công việc nhạy cảm như yêu cầu một nhân viên kế toán và một quản lí kế toán tham gia vào phát hành một tấm Sec.
Trừu tượng hóa dữ liệu được hỗ trợ bằng các permission trừu tượng như credit (bên có) và debit (bên nợ) cho một tài khoản, chứ không phải là các permission đọc, viết, quản lí thường đựợc hệ điều hành cung cấp.
Tuy nhiên, RBAC không cho phép ứng dụng các nguyên lý này. Nhân viên bảo mật có thể định dạng được RBAC do đó nó vi phạm những nguyên lí này. Ngoài ra, mức độ trừu tuợng hóa dữ liệu đựợc hỗ trợ sẽ do các chi tiết bổ sung quyết định.
Example: The Three Musketeers (User/Permission Association)
Jim
John
Tom
Rob
Example: The Three Musketeers (RBAC)
John
Tom
Jim
Rob
John
Jim
Tom
Rob
Example: The Three Musketeers (RBAC)
John Tom Jim Rob
John
Jim
Tom
Rob
Role-Based Access Control
RBAC không phải là giải pháp cho mọi vấn để kiểm soát truy cập. Người ta cần những dạng kiểm soát truy cập phức tạp hơn khi xử lí các tình huống mà trong đó chuỗi các thao tác cần được kiểm soát. Ví dụ, một lệnh mua cần nhiều bước trước khi đơn dặt hàng mua được phát hành.
RBAC không cố kiểm soát trực tiếp các permission cho một chuỗi các sự kiện như vậy. Các dạng khác của kiểm soát truy cập đựợc cài đặt trên bề mặt RBAC vì mục đích này.
Việc kiểm soát một chuỗi các thao tác ngoài phạm vi của RBAC, mặc dù RBAC có thể là nền móng để xây dựng những kiểm soát như thế.
RBAC Reference Model
Mô hình tham chiếu RBAS: định nghĩa một tập hợp các yếu tố cơ bản RBAC (người dùng, vai trò, quyền hạn, hoạt động và đối tượng) và các mối quan hệ như các loại và các chức năng có trong mô hình.
Có hai mục đích:
Xác định nghiêm ngặt phạm vi của tính năng RBAC Bao gồm các thiết lập các tính năng có trong tất cả các hệ thống RBAC, hệ thống phân cấp vai trò, các mối quan hệ ràng buộc tĩnh, và các mối quan hệ ràng buộc động.
Nó cung cấp một ngôn ngữ chính xác và nhất quán để xác định
các đặc tả chức năng
RBAC Reference Model
PA
UA
Users
Roles
Operations
Objects
Permissions
user_sessions (one-to-many)
role_sessions (many-to-many)
Sessions
An important difference from classical models is that Subject in other models corresponds to a Session in RBAC
Example: (John becomes a Musketeer)
JOHN
JOHN
Các tiêu chuẩn RBAC do NIST đề xuất
Tiêu chuẩn RBAC này gồm hai phần chính:mô hình tham chiếu RBAC và
hệ thống RBAC với đặc tả chức năng quản trị.
Mô hình tham chiếu RBAC định nghĩa tập hợp các yếu tố cơ bản RBAC và
loại quan hệ,các chức năng được bao gồm trong tiêu chuẩn này
Hệ thống RBAC với đặc tả chức năng quản trị xác định các yêu cầu đối với hoạt động quản lý tạo và bảo trì danh sách phần tử và các mối quan hệ của RBAC.
RBAC Reference Model
The NIST RBAC model is defined in terms of four model
components .
Core RBAC Hierarchical RBAC Static Separation of Duty Relations Dynamic Separation of Duty Relations
Each Component is defined by subcomponents:
Set of basic elements sets A set of RBAC relations involving those elements sets. A set of mapping functions that yield instances of members from one
element set for a given instance from another element set.
Core RBAC
(PA)
Permission Assignment
(UA) User Assignment
OBJECTS
ROLES
USERS
OPERA TIONS
privileges
user_sessions
session_roles
Sess- ions
Mối quan hệ nhiều – nhiều giữa các cá nhân và các đặc quyền Session là một ánh xạ giữa một người sử dụng và một tập hợp con
mới về vai trò được giao
Quan hệ User / vai trò có thể được xác định độc lập các mối quan
hệ vai trò / đặc quyền
Đặc quyền hệ thống / ứng dụng phụ thuộc Chứa kiểm soát truy cập mạnh mẽ dựa trên nhóm truyền thống
Core RBAC
Permissions = 2Operations x Objects UA ⊆ Users x Roles PA ⊆ Permissions x Roles assigned_users: Roles 2Users assigned_permissions: Roles 2Permissions Op(p): set of operations associated with permission p Ob(p): set of objects associated with permission p user_sessions: Users 2Sessions session_user: Sessions Users session_roles: Sessions 2Roles
session_roles(s) = {r | (session_user(s), r) UA)}
avail_session_perms: Sessions 2Permissions
Core RBAC U = (User)Người dùng = Một người hoặc một tác nhân tự
R = (Role)Vai trò = Chức năng công việc / Danh hiệu dùng
động.
P = Quyềnn được cấp = Sự phê chuẩn một hình thức truy
định nghĩa một cấp bậc quyền thế.
S = (Session)Phiên giao dịch = Một xếp đặt liên kết giữa
cập tài nguyên.
UA = (User Assignment)Chỉ định người dùng. PA = (Permission Assignment)Cấp phép RH = (Role Hierarchy)Sắp xếp trật tự một phần nào theo thứ tự cấp bậc của vai trò. RH còn có thể được viết là >
U, R và P
Core RBAC Một người dùng có thể có nhiều vai trò. Một vai trò có thể có thể có nhiều người dùng. Một vai trò có thể có nhiều phép được cấp cho nó. Một phép được cấp có thể được chỉ định cho nhiều
vai trò
USERS
Proces s
Intelligent Agent Person
ROLES
An organizational job function with a clear definition of inherent responsibility and authority (permissions).
Director Developer
Relation between USERS & PRMS
Budget Manager
Help Desk Representative
OPERATIONS
Database – Update Insert Append Delete Locks – Open Close Reports – Create View Print Applications - Read Write Execute
An execution of an a program specific function that’s invocated by a user.
SQL
OBJECTS
An entity that contains or receives information, or has exhaustible system resources.
RBAC will deal with all the objects listed in the permissions assigned to roles.
• OS Files or Directories • DB Columns, Rows, Tables, or Views • Printer • Disk Space • Lock Mechanisms
USER Assignment
USERS set
ROLES set
A user can be assigned to one or more roles
Developer
Help Desk Rep A role can be assigned to one or more users
USER Assignment
Mapping of role r onto a set of users
ROLES set
USERS set
User.DB1
permissions
object
User.F1 User.F2 User.F3 User.DB1 •View •Update •Append
User.DB1
PERMISSIONS
User.DB1 •View •Update •Append
User.F1 •Read •Write •Execute
permissions object
permissions object
The set of permissions that each grant the approval to perform an operation on a protected object. Tập các quyền mà mỗi cấp chính thực hiện một hoạt động trên một đối tượng được bảo vệ.
Permissions Assignment
ROLES set PRMS set
A prms can be assigned to one or more roles
Create Delete Drop Admin.DB1
A role can be assigned to one or more prms
View Update Append
User.DB1
Permissions Assignment
Mapping of role r onto a set of permissions
•Read •Write •Execute
SQL
ROLES set PRMS set
•View •Update •Append •Create •Drop
User.F1 User.F2 User.F3 Admin.DB1
Permission Assignments
Mapping of permissions to objects
Open Close
PRMS set Objects
BLD1.door2
Gives the set of objects associated with the prms
View Update Append Create Drop
SQL
DB1.table1
SESSIONS
The set of sessions that each user invokes.
FIN1.report1
USER SESSION
DB1.table1
APP1.desktop
SQL
SESSIONS
The mapping of user u onto a set of sessions.
User2.FIN1.report1.session
USER1
USERS SESSION
User2.DB1.table1.session
USER2
User2.APP1.desktop.session
SQL
SESSIONS
SQL
• Admin • User • Guest
DB1.table1.session
SESSION ROLES
SESSIONS
Permissions available to a user in a session.
ROLE PRMS SESSION
•View •Update •Append •Create •Drop
DB1.table1.session
DB1.ADMIN
SQL
Hierarchical RBAC
Hierarchical RBAC hỗ trợ hệ thống phân cấp vai trò. Một hệ thống phân cấp là xác định thứ tự một mối quan hệ thâm niên giữa các vai trò.
Hierarchical RBAC
Role Hierarchy
(PA)
Permission Assignment
(UA) User Assignment
OBJECTS
ROLES
USERS
OPERA TIONS
privileges
user_sessions
session_roles
Sess- ions
Quan hệ Role/role xác định thành viên sử dụng và thừa kế đặc quyền Phản ánh cơ cấu tổ chức và chức năng của hệ thống Hai loại phân cấp:
Hệ thống phân cấp giới hạn Hệ thống phân cấp tổng quát
Hierarchal RBAC
Hệ thống phân cấp vai trò tổng quát: hỗ trợ cho một phần trong hệ thống phân cấp vai trò, bao gồm các khái niệm của thừa kế các quyền truy cập và vai trò của thành viên sử dụng trong hệ thống.
Hệ thống phân cấp vai trò giới hạn: áp đặt các gới hạn truy cập theo dạng cấu trúc cây đơn giản (ví dụ, một vai trò có thể có một hoặc nhiều ascendants (cha), nhưng chỉ được truy cập trực tiếp 1 descendant (con) duy nhất).
The Role Hierarchy
Jill
CSD Secretary
Cardiologist
Dermatologist
Comp Security Division
“contains”
“contains”
MEL Secretary
ITL Secretary
Specialist
NIST Secretary
“contains”
p r i v i l e g e
m e m b e r s h i p
Doctor
Added Advantages: • Người sử dụng có thể được đưa vào các
cạnh của đồ thị
“contains”
• Vai trò của thể được xác định từ những đặc quyền của hai hoặc nhiều vai trò cấp dưới
Employee
a-Limited Hierarchies
b-General Hierarchies
Hierarchal RBAC
Hierarchal RBAC
Hierarchal RBAC
General Role Hierarchies
Hỗ trợ đa thừa kế (multiple inheritance), cung cấp khả năng thừa kế đặc quyền từ hai hay nhiều vai trò nguồn và để thừa kế từ một hay nhiều vai trò của các thành viên trong hệ thống. Đa thừa kế là một thuộc tính quan trọng của mô hình RBAC.
Support Multiple Inheritance
Guest Role Set
User Role Set
Power User Role Set
Admin Role Set
Chỉ khi tất cả các quyền của r1 cũng là quyền của r2
Guest -r-
i.e. r1 inherits r2
Chỉ khi tất cả người dùng của r1 cũng là người sử dụngr2
User r-w-h
Authorized Users
Mapping of a role onto a set of users in the presence of a role hierarchy Ánh xạ một vai trò vào một tập hợp các người sử dụng theo hệ thống phân cấp vai trò
ROLES set First Tier USERS set
Admin.DB1 User.DB2 User.DB3 User.DB1 •View •Update •Append
User.DB1
permissions object
User.DB1
Authorized Permissions
Mapping of a role onto a set of permissions in the presence of a role hierarchy
•View •Update •Append
ROLES set PRMS set
•Create •Drop
SQL
User.DB1 User.DB2 User.DB3 Admin.DB1
LIMITED RH
Restriction on the immediate descendants of the general role hierarchy Hạn chế truy cập trực tiếp lớp con cháu trong hệ thống phân câp vai trò tổng quát
Role2
Role2 inherits from Role1
Role3
Role1
Role3 does not inherit from Role1 or Role2
Limited Role Hierarchies
Notice that Frank has two roles: Billing and Cashier
This requires the union of two distinct roles and prevents Frank from being a node to others Chú ý rằng Frank có hai vai trò: Thanh toán và thủ quỹ
Điều này đòi hỏi sự kết hợp của hai vai trò khác nhau và ngăn Frank từ một nút đến người khác
Constrained RBAC
–
–
–
Thi hành tách các yêu cầu nhiệm vụ separation of duty (SOD) Giảm sự gian lận Lan truyền trách nhiệm và quyền cho một hành động qua nhiều cá nhân
–
Static
•
•
Không cho phép kết hợp phân công vai trò người dung Dễ dàng để thử nghiệm
–
Dynamic
•
•
Không cho phép kết hợp UR trên một mỗi giao dịch cơ bản Linh hoạt hơn Static
Có 2 loại
Constrained RBAC
RH (role hierarchy)
Static Separation of Duty
PA
UA
Users
Roles
Operations
Objects
Permissions
user_sessions (one-to-many)
Dynamic Separation of Duty
Sessions
Separation of Duties
dụng hệ thống riêng của họ.
Không có người sử dụng nên được trao đủ quyền để lạm
Tĩnh: xác định xung đột giữa các vai trò
Động: Thi hành các điều khiển ở truy cập theo thời gian
Static Separation of Duty Relations
SSD
Role Hierarchy
(UA) User Assignment
(PA) Permission Assignment
OBJECTS
ROLES
USERS
OPERA TIONS
privileges
session_roles
user_sessions
SES- SIONS
Chính sách SOD ngăn chặn gian lận bằng cách đặt ràng buộc về các hoạt động của administrative và đưa ra các rang buộc về các đặc quyền mà người dung có sẵn. Ví dụ, không có người sử dụng có thể là một thành viên của cả hai nhiệm vụ thủ quỹ và Thư ký tại Accounts Receivable Department
Dynamic Separation of Duty Relations
Role Hierarchy
User Assign- ment
Permission Assignment
OBJECTS
ROLES
USERS
OPERA TIONS
privileges
session_roles
user_sessions
SES- SIONS
Dynamic Separation of Duty
Chính sách ngăn chặn gian lận DSoD bằng cách đặt những hạn chế về vai trò có thể được kích hoạt trong bất kỳ phiên nào bằng cách hạn chế sự kết hợp của những đặc quyền mà có sẵn cho người dùng
Dynamic Separation of Duty Relations
inherits
Reduce CODE
Roles
Cashier Supervisor
Closes Cashier Role session
Close Cash Drawer Opens Supv Role
Supervisor
Cashier session
Open Cash Drawer
Correct Error Accounting Error
RBAC Family of Models
RBAC Family of Models
RBAC0, mô hình cơ bản nằm ở dưới cùng cho thấy đó là yêu cầu tối thiểu cho bất kì một hệ thống nào hỗ trợ RBAC.
RBAC1 có thêm khái niệm cấp bậc role (khi các role có
thể kế thừa permission từ role khác).
RBAC2 có thêm những ràng buộc (đặt ra các hạn chế chấp nhận các dạng của các thành tố khác nhau của RBAC). RBAC1 và RBAC2 không so sánh được với nhau.
Mô hình hợp nhất RBAC3 bao gồm cả RBAC1 và RBAC2
và cả RBAC0 nữa.
RBAC0 Models
Có 3 nhóm thực thể được gọi
là user (U), role (R) và permission (P). Một tập hợp các session (S) đựợc thể hiện trong biểu đồ.
User trong mô hình này là con người. Một role là một chức năng công việc hay tên công việc trong tổ chức theo thẩm quyền và trách nhiệm trao cho từng thành viên.
Một permission là một sự cho phép của một chế độ cụ thể
nào đó truy cập vào một hay nhiều object trong hệ thống.
Mỗi session là một tham chiếu của một user tới những role
có thể
Các object là các số liệu object cũng như là các nguồn object
được thể hiện bằng số liệu trong hệ thống máy tính.
RBAC0 Models
RBAC0 Components
RBAC0 Components
• RBAC0 xử lý các permission như những ký hiệu chưa được thông dịch bởi vì bản chất rõ ràng của một permission là sự cài đặt và sự phụ thuộc hệ thống.
• Các permission được sửa đổi để thiết lập U, R và P và quan hệ
PA và UA được gọi bởi các permission quản lý.
• Những session dưới sự điều khiển của những user riêng lẻ. Một user có thể tạo ra một session và chọn để kích hoạt một vài tập con của những role của user. các role hoạt động trong một session có thể đuợc thay đổi trong sự thận trọng của user. Session giới hạn bởi năng lực của user.
RBAC1 – RBAC0 + Role Hierarchy
• Một user được cho phép thiết lập một session với nhiều sự kết hợp của role người chức vụ thấp tới user là thành viên của nó.
• Hơn nữa, các permission trong một session được gán trực tiếp tới các role của session cũng tốt như việc được gán tới các role của người cấp bậc thấp tới những cái này.
RBAC1 – RBAC0 + Role Hierarchy
• Ví dụ: một số mô hình RBAC1
RBAC0 Components
RBAC1 – RBAC0 + Role Hierarchy
How to limit the scope of inheritance?
E.g. do not let p boss see incomplete work in progress?
How to limit the scope of inheritance?
E.g. do not let p boss see incomplete work in progress?
Role Hierarchies with Private Roles
Role Hierarchies with Private Roles
RBAC2 – RBAC0 + Constraints
• Mô hình RBAC2 giới thiệu khái niệm của ràng buộc. Các ràng buộc là một cơ chế quyền lực đặt cấp cao hơn chính sách của tổ chức. Điều chắc chắn là các role được khai báo loại trừ lẫn nhau, ở đó cần quan tâm quá nhiều về nhiệm vụ của từng user riêng biệt tới các role.
• Những hoạt động sau đó có thể được ủy nhiệm và chuyển giao
ngoài sự thỏa hiệp toàn bộ cơ chế các đối tượng của tổ chức.
• Vì vậy, việc quản lý RBAC được kiểm soát toàn bộ bởi security officer, những ràng buộc là hữu ích cho sự tiện lợi, nhưng hiệu quả cùng lúc có thể lớn hơn giành được bởi sự quan tâm đúng đắn của phần việc của security officer.
• Tuy nhiên, nếu sự quản lý của RBAC được chuyển giao, những ràng buộc trở thành một cơ cấu bởi security officer có chức vụ cao hơn có thể giới hạn khả năng của user mà có thể thực hiện đặc quyền quản lý.
RBAC2 – RBAC0 + Constraints
• RBAC2 không được thay đổi từ RBAC0 ngoại trừ việc yêu cầu có một tập hợp của các ràng buộc mà quyết định dù giá trị của các thành phần khác nhau của RBAC0 có được chấp nhận hay không. Chỉ các giá trị được chấp nhận sẽ được cho phép.
• Các ràng buộc có thể được áp dụng tới các session, và chức năng user và các role kết hợp với một session. Nó có thể chấp nhận cho một user là thành viên của 2 role nhưng user không thể hoạt động cả 2 role cùng lúc. Các ràng buộc khác trên các session có thể giới hạn số các session mà user có thể hoạt động cùng lúc. Do đó, số các session mà một permission được gán được giới hạn.
• Một hệ thống thứ bậc role có thể được xem như một ràng buộc. Ràng buộc này là một permission gán tới role một người có chức vụ thấp phải được gán tới tất cả các role của người có chức vụ cao hơn
RBAC2 – RBAC0 + Constraints
RBAC3 – RBAC0 + RBAC1
• RBAC3 là sự kết hợp của RBAC1 và RBAC2 để cung cấp cả
hai hệ thống thứ bậc role và các ràng buộc.
RBAC3 – RBAC0 + RBAC1
• RBAC3 là sự kết hợp của RBAC1 và RBAC2 để cung cấp cả
hai hệ thống thứ bậc role và các ràng buộc.
RBAC3 – RBAC0 + RBAC1
Mô hình RBAC quản lý
Ưu điểm RBAC
Phù hợp với hầu hết các ứng dụng trong thực tế. Mô hình đơn giản, hiệu quả. Đơn giản trong việc quản lý permission, thay vì quản lý permission trên từng user ta sẽ quản lý permission trên mỗi nhóm.Việc này giúp giảm công sức, thời gian cũng như giảm rủi ro nhầm lẫn.
Mô hình RBAC phân cấp hỗ trợ sự phân cấp vai trò (Role hierarchies) với mối quan hệ cha con, theo đó tất cả quyền hạn của role cha được kế thừa bởi role con.Điều này ngăn cản sự bùng nổ role và tăng khả năng sử dụng lại trong mô hình RBAC.
Hạn chế của RBAC
Hầu hết các ứng dụng trong thực tế đều có thể
điều khiển truy cập theo vai trò, vì thế RBAC có tính phổ dụng cao.Tuy nhiên, nó cũng có một vài hạn chế: Không phù hợp với một số tài nguyên cần bảo vệ là chưa biết trước. Không phù hợp khi quy tắc điều khiển truy cập phức tạp, việc điều khiển truy cập không chỉ dựa vào thông tin về vai trò, mà còn phụ thuộc vào các thông tin ngữ cảnh khác.
Không phù hợp với các ứng dụng mà một người dùng có thể mang nhiều vai trò mâu thuẫn với nhau.Điều này phần nào được giải quyết với mô hình RBAC ràng buộc tĩnh hay động.Tuy nhiên khi các quy tắc đảm bảo tính loại trừ là phức tạp và chưa biết trước thì RBAC ràng buộc không đáp ứng được hoặc khó cài đặt.
Some of the Vendors Offering RBAC Products
Case Study: Oracle Enterprise Server
Create password-protected role for update Create role update_role identified by passwd; Grant update privileges to protected role
Grant insert, update on app.table1 to update_role; Create non-password protected role for query
Create role query_role;
Grant select privileges to unprotected role
Grant select on app.table1 to query_role;
Grant both roles to users
Grant update role, query role to user1;
Case Study: Oracle Enterprise Server
User1 activates the roles
Set role update_role identified by passwd,
Set default active role for User1
Alter user user1 default role query_role;
Assignable privileges
System: create session, create table, select any
query_role;
Table: select, update, insert, delete, alter, create index View: select, update, insert, delete Procedures & functions: execute
table Object:
Case Study: Oracle Enterprise Server
Configuring RBAC to Enforce MAC and DAC
Construction (Liberal *-Property) (write-up) R = {L1R. . . LnR, L1W. . . LnW} where Li denote label i RH which consists of two disjoint role hierarchies. The first role
hierarchy consists of the “read“ roles {L1R. . . LnR} and has the same partial order as ≥MAC ;
the second partial consists of the “write” roles {L1W. . LnW} . and has
a partial order which is the inverse of ≥MAC . P = { (o,r),(o,w) | o is an object in the system} Constraint on UA: Each user is assigned to exactly two roles xR and LW where x is the label assigned to the user and LW is the write role corresponding to the lowermost security level according to ≥MAC Constraint on sessions: Each session has exactly two roles yR and
yW (x ≥ y) Constraints on PA:
(o,r) is assigned to xR iff (o,w) is assigned to xW ( o,r) is assigned to exactly one role xR such that x is the label of o
Configuring RBAC to Enforce MAC and DAC
Each user with label Write Read x is assigned roles xR & LW (why?) Additional Constraints:
y)
Each session has exactly two matching roles yR and yW (x For each object with label x, a pair of permissions (o,r) & (o,w) is assigned to
exactly one matching pair of xR and xW roles
Configuring RBAC to Enforce MAC and DAC
Configuring RBAC to Enforce MAC and DAC
Configuring RBAC to Enforce MAC and DAC
Configuring RBAC to Enforce MAC and DAC
Configuring RBAC for DAC
The basic idea is to simulate the owner-centric policies of DAC using roles that are associated with each object.
Strict DAC – only owner can grant access Liberal DAC – owner can delegate discretionary authority for granting access to an
object to other users
Create an Object. For every object O that is created, three
administrative roles and one regular role are also created (we show only Read operation)
Eight Permissions The following eight permissions are also created along
operation on object O)
destroyObject_O: assigned to the role OWN_O (authorizes
deletion of the object)
addReadUser_O, deleteReadUser_O: assigned to the role PARENT_O (add/remove users to/from role READ_O)
addParent_O, deleteParent_O: assigned to the role
PARENTwithGRANT_O (add/remove users to/from role PARENT_O)
addParentWithGrant_O, deleteParentWithGrant_O: assigned to the role OWN_O (add/remove users to/from PARENTwithGRANT_O) Object deletion removes the roles OWN_O, PARENT_O, PARENTwithGRANT_O and READ_O along with the 8 permissions
with creation of each object O. canRead_O: assigned to the role READ_O (authorizes read
Roles and associated Permissions
OWN_O
destroyObject_O, addParentWithGrant_O,
addParent_O, deleteParent_O
PARENT_O
addReadUser_O, deleteReadUser_O
READ_O
canRead_O
deleteParentWithgrant_O PARENTwithGRANT_O
Strict DAC
Only owner has discretionary authority to grant
access to an object.
Example:
Alice has created an object (she is owner) and grants
Bob. Now Bob cannot propagate the access to another
access to
Cardinality constraints on roles:
OWN_O = 1 PARENT_O = 0 PARENTwithGRANT_O = 0
By virtue of the role hierarchy, owner can change
assignments of the role READ_O
user.
Liberal DAC
Owner can delegate discretionary authority
for granting access to other users. One Level grant Two Level Grant Multilevel Grant
One Level Grant
Owner can delegate authority to another user but they cannot further delegate this power.
Cardinality constraints as:
Role OWN_O = 1 Role PARENTwithGRANT O = 0 No restriction on Parent_O
One Level Grant
In addition to a one level grant the owner can allow some users to delegate grant authority to other users.
Cardinality constraints as: Role OWN_O = 1
Multi-Level Grant
In addition to a one level grant the owner can allow some users to delegate grant authority to other users. Cardinality constraints as:
Role OWN_O = 1
Additional permission
PARENTwithGRANT_O AddParentWithGrant_O DeleteParentWithGrant_O
Grant independent revocation Alternatively OWN
Revocation
Grant-Independent Revocation Grant may be revoked by anyone (not
necessarily the granter)
Alice grants Bob access, but Bob’s access
may be revoked by Charles Grant-Dependent Revocation Revocation is tied to the granter grants Bob access, and only Alice can revoke Bob’s
access
Grant-Dependent Revocation
Grant-Dependent Revocation
We need a different administrative role U_PARENT_O
U_READ_O for each user U authorized to do a one-level
and a regular role
We also need two new administrative permissions
addU_ReadUser_O, deleteU_ReadUser_O:
assigned to U_PARENT_O
authorize the operations to add users to role U_Read_O and delete users from U_Read_O
cardinality of U_PARENT_O = 1
grant by owner.
Summary
Group is NOT the same as Role Role hierarchy is NOT the same as company (report-to)
RBAC can support SoD, data abstraction and least
hierarchy
RBAC can be used to configure DAC and MAC
privilege

