Mô hình điều khiển truy nhập HRU
HRU là một mô hình điều khiển truy nhập do Harrison, Ruzzo và Ullman đề xuất năm 1976. HRU thuộc dạng phân quyền tự do DAC: Sử dụng ma trận truy nhập. Hỗ trợ chuyển giao, thay đổi quyền thông qua cơ chế lệnh HRU. Nhờ có mô hình này, các tiếp cận cụ thể về điều khiển truy nhập có thể được ...
HRU là một mô hình điều khiển truy nhập do Harrison, Ruzzo và Ullman đề xuất năm 1976. HRU thuộc dạng phân quyền tự do DAC:
- Sử dụng ma trận truy nhập.
- Hỗ trợ chuyển giao, thay đổi quyền thông qua cơ chế lệnh HRU.
Nhờ có mô hình này, các tiếp cận cụ thể về điều khiển truy nhập có thể được đặc tả dễ dàng hơn, các chính sách và thuộc tính về an toàn bảo mật có thể được đặc tả chính xác hơn.
Một mô hình HRU sẽ gồm có 3 thành phần cơ bản sau:
- Ma trận truy nhập A
- Tập các chủ thể S và tập các đối tượng O
- Một tập hữu hạn các lệnh HRU.
2.1. Ma trận truy nhập
2.1.1. Định nghĩa
Là một ma trận mà:
- Mỗi hàng thể hiện một chủ thể
- Mỗi cột thể hiện một đối tượng
- Phần tử A[i, j] của ma trận thể hiện các quyền truy cập của chủ thể i đối với đối tượng j.
2.1.2. Các loại quyền truy nhập
- Quyền đọc - lấy thông tin từ đối tượng: r (read)
- Quyền ghi - sửa đổi thông tin của đối tượng: w (write)
- Quyền xóa - hủy bỏ đối tượng: d (delete)
- Quyền sở hữu - làm chủ hoàn toàn đối tượng: o (own)
- Quyền thực thi - triệu gọi 1 đối tượng (chương trình): e (execute)
Ví dụ về một ma trận truy nhập:
A | B | C | D | |
---|---|---|---|---|
S | r, w | r, w, o | ||
U | r, w | r | w | |
V | d | r | w | |
J | r | r | o |
2.2. Lệnh HRU
2.2.1. Dạng của một lệnh HRU
Một lệnh HRU có dạng như sau:
command <tên lệnh> (X1, X2, X3, ..., Xn) // X là tham số đại diện cho S hoặc O if <điều kiện> then {thực hiện một chuỗi các thao tác trên ma trận A} fi end
Khi được gọi ra thực hiện, HRU tác động đến ma trận truy nhập A và làm thay đổi quyền truy cập của các chủ thể đến các đối tượng.
2.2.2. Điều kiện trong lệnh HRU
Điều kiện là biểu thức logic để kiểm tra chủ thể có quyền truy nhập với đối tượng hay không. Ví dụ: r in A[S, O] => Chủ thể S có quyền đọc đối tượng O hay không r in A[S1, O1] AND w in A[S2, O2] => S1 có quyền đọc O1 hay không và S2 có quyền ghi O2 hay không.
2.2.3. Các thao tác cơ bản trong lệnh HRU
- Thêm quyền: enter r into A[S, O] => Thêm vào quyền đọc cho chủ thể S đối với đối tượng O.
- Xóa quyền: delete r from A[S, O] => Thu hồi quyền đọc khỏi chủ thể S đối với đối tượng O.
- Tạo mới chủ thể: create subject S => Tạo mới chủ thể có tên S. Việc này tương ứng với việc tạo mới 1 dòng trong ma trận truy nhập A.
- Tạo mới đối tượng: create object O => Tạo mới đối tượng có tên O. Việc này tương ứng với việc tạo mới 1 cột trong ma trận truy nhập A.
- Xóa chủ thể: delete subject S => Xóa bỏ chủ thể có tên S. Việc này tương ứng với việc xóa bỏ 1 dòng trong ma trận truy nhập A.
- Xóa bỏ đối tượng: delete object O => Xóa bỏ đối tượng có tên O. Việc này tương ứng với việc xóa bỏ 1 cột trong ma trận truy nhập A.
Ví dụ: Một tiến trình p khởi tạo một tệp dữ liệu mới f với các quyền read, write cho nó, sẽ có thể viết dưới dạng một lệnh gồm một chuỗi các thao tác nguyên tố như sau:
command create_file(p, f) create object f; enter o into A[p, f]; enter r into A[p, f]; enter w into A[p, f]; end
- Lệnh HRU chỉ được thực thi nếu thỏa mãn điều kiện (nếu có) là TRUE.
- Điều kiện không kiểm tra sự vắng mặt của quyền trong ma trận A.
- Ma trận truy nhập A ban đầu có thể là một ma trận rỗng.
- Tập lệnh HRU thể hiện quy tắc chuyển giao quyền truy nhập và các thay đổi khác trong ma trận.