Các câu lệnh (Commands)

Một phần của tài liệu Nghiên cứu một số mô hình đảm bảo an ninh cơ sở dữ liệu và thử nghiệm ứng dụng (Trang 47)

Một trạng thái hệ thống đƣợc thay đổi thông qua câu lệnh. Harrion cùng đồng nghiệp đã đƣa ra mẫu câu lệnh gồm hai phần: phần điều kiện và phần thao tác. Phần điều kiện chỉ ra các ràng buộc phải đƣợc thoả mãn, các thao tác đƣợc chỉ ra trong phần thứ hai. Các điều kiện thƣờng kiểm tra các giá trị của một vài bộ phận ma trận truy cập

Cú pháp câu lệnh trong mô hình an ninh này nhƣ sau:

command c(x1,...,xk) if r1 in A[s1,o1] and if r2 in A[s2,o2] and . ... if rm in A[sm,om] and then op1 ... opn end Trong đó:  r1, r2, …, rm là các chế độ truy cập;

s1, s2,…, sm và o1, o2,…, om là các chủ thể và đối tƣợng xuất hiện trong danh

sách tham số c(x1, x2, …, xk).

 Phần điều kiện của lệnh kiểm tra liệu các quyền lợi truy cập đặc biệt có tồn tại không, danh sách điều kiện có thể là rỗng.

 Nếu tất cả điều kiện thỏa mãn thì tuần tự các phép toán sẽ đƣợc thực hiện.

 Mỗi lệnh chứa ít nhất một phép toán.

Việc thực hiện một câu lệnh c(x1,...,xk) trên một trạng thái Q=(S,O,A) sinh ra việc chuyển trạng thái Q‟, nhƣ vậy tồn tại một tập trạng thái Q1, Q2,..., Qn sao cho: Với Q‟ đƣợc tổ hợp từ các trạng thái Qi với i=1..n nhƣ sau:

Q= Q0 | op1*Q1 |op2* Q2 |... |opn *Qn=Q‟ Trong đó:

 opj * là toán tử sơ cấp op

 (x1,...,xk) là các tham số mặc định trong định nghĩa khi gọi lệnh. Nếu phần điều kiện của lệnh không thoả mãn thì lệnh sẽ không có hiệu quả và Q‟=Q.

48 Trong khi dùng 6 lệnh đã định nghĩa trên, các lệnh khác nhau có thể đặc tả để cung cấp các chức năng tốt nhất với yêu cầu bảo mật của hệ thống.

Ví dụ 1: Chúng ta giả sử rằng mỗi chủ thể là một quá trình, và các đối tƣợng là các tệp tin. Mỗi tệp tin đƣợc sở hữu bởi một quá trình, chủ của mỗi tệp tin có cùng một kiểu quyền own với các tệp tin. Các quyền khác là read, write, execute.

(1) Một quá trình có thể tạo một tệp tin mới. Quá trình tạo tệp tin là chủ sở hữu của tệp tin đó. Thể hiện:

Command CREATE(process, file) Create object file

Enter own into(process, file) End

(2) Chủ của một tệp tin có thể gán bất kỳ quyền nào đến tệp tin đó (ngoài own) cho bất kỳ chủ thể nào (bao gồm bản thân chủ nhân đó). Vì thế chúng ta có ba câu lệnh sau:

Command CONFERr(owner, friend, file) If own in (owner, file)

Then enter r into A[friend, file] End

Với r là read, write, execute; r ở đây không là một tham số (mô hình này chỉ cho phép các đối tƣợng là các tham số).

(3) Tƣơng tự, chúng ta có ba câu lệnh để ngƣời chủ của một tệp tin có thể thu hồi, hủy bỏ quyền truy cập của các chủ thể khác vào trong tệp tin đó.

Command REVOKEr(owner, friend, file) If own in A[owner, file]

Then delete r from A[friend, file] End

49

Ví dụ 2: Giả sử ban đầu có 2 quá trình Sam, Joe, và không có tệp tin nào đƣợc tạo ra. Giả sử rằng không có quá trình nào có quyền với chính nó hoặc với quá trình khác.

Ma trận ban đầu

Giờ, Sam tạo 2 tệp tin với tên Code và Data, và cho Joe có quyền Execute Code và Read Data. Tuần tự các câu lệnh sau:

Create(Sam, Code) Create(Sam, Data)

Conferexecute(Sam, Joe, Code) Conferread(Sam, Joe, Data)

Ví dụ 3: Chế độ truy cập “gián tiếp” (indirect). Chủ thể s1 có thể truy cập vào đối tƣợng o một cách gián tiếp nếu có một chủ thể s2 nào đó có quyền truy cập vào o, và s1

có quyền gián tiếp với s2. Thể hiện: Command IREAD(s1, s2, o)

if

read in (s2, o) and iread in (s1, s2) then

enter read into (s1, o) End

50

Một phần của tài liệu Nghiên cứu một số mô hình đảm bảo an ninh cơ sở dữ liệu và thử nghiệm ứng dụng (Trang 47)

Tải bản đầy đủ (PDF)

(107 trang)