12/08/2018, 17:44

Điều khiển truy cập - Access Control (Phần 1)

A. Khái niệm: Bảo mật hệ thống thông thường thông qua 2 bước: Chứng thực người dùng(authentication): xác thực người dùng cần truy xuất vào hệ thống. Điều khiển truy xuất(access control): hạn chế quyền hạn của người dùng trong hệ thống. Điều khiển truy xuất là cơ chế bảo mật theo dõi ...

A. Khái niệm:

Bảo mật hệ thống thông thường thông qua 2 bước:

  • Chứng thực người dùng(authentication): xác thực người dùng cần truy xuất vào hệ thống.
  • Điều khiển truy xuất(access control): hạn chế quyền hạn của người dùng trong hệ thống.
Điều khiển truy xuất là cơ chế bảo mật theo dõi mọi yêu cầu truy xuất của người dùng và xác định cho phép hay không cho phép truy xuất tài nguyên.

Có 3 kiểu điều khiển truy cập:

  • DAC (Discretionary Access Control):
    • Cho biết chủ thể nào có thể truy cập kiểu gì đến các đối tượng CSDL.
    • Có những nguyên tắc để 1 chủ thể có thể tùy ý cấp quyền hay lấy lại quyền cho/ từ 1 chủ thể khác.
  • MAC (Mandatory Access Control):
    • Định trước các nguyên tắc để chủ thể (thuộc 1 lớp) truy cập trực tiếp hoặc gián tiếp đến các lớp dữ liệu.
  • RBAC (Role-based Access Control):
    • Vai trò là 1 tập các quyền. Không thực hiện cấp quyền cho từng chủ thể mà gán cho chủ thể 1 vai trò, khi đó chủ thể sẽ có tất cả các quyền thuộc vai trò đó.

B. Nội dung:

I. DAC (Discretionary Access Control)

  • Tất cả các HQT CSDL thương mại đều cài đặt DAC.
  • Các mô hình cấp quyền theo cơ chế DAC hiện tại đều dựa trên mô hình System R (dựa trên nguyên lý ủy quyền quản trị cho người sở hữu.)
1. Ưu và khuyết điểm:
  • Ưu điểm:
    • Linh động, đơn giản, dễ cài đặt.
  • Khuyết điểm:
    • Khó chứng minh hệ thống an toàn tuyệt đối
    • Dễ bị tấn công dựa trên trojan.
2. System R:
  • Các đối tượng được quản lý trong mô hình là table và view.
  • Các phương thức truy cập (privilege) là select, insert, update, delete, drop, index (chỉ cho table), alter (chỉ cho table).
  • Dùng câu lệnh GRANT or GRANT OPTION để cấp quyền.(GRANT OPTION thì user đó ngoài việc có thể thực hiện quyền được cấp, còn có thể cấp quyền đó cho các user khác).
3. Một số quyền quan trọng:
  • Quyền trên hệ thống: ADMIN, CREATE ANY PROCEDURE, CREATE ANY TABLE, CREATE SESSION,...
  • Quyền trên đối tượng: DELETE, INDEX, INSERT, SELECT,...
  • Một số quyền khi được cấp có thể bao hàm các quyền khác(ADMIN bao hàm tất cả các quyền khác, ...)
4. DAC trong Oracle:

Các lệnh sử dụng với DAC:

a. GRANT:

    GRANT PrivilegeList| ALL[PRIVILEGES]
    ON Relation | View
    TO UserList | PUBLIC
    [WITH GRANT OPTION]
  • Có thể cấp quyền (privilege) trên table và view.
  • Đối với quyền cập nhật (update priviledge), cần phải chỉ định quyền này áp dụng trên cột nào. Ví dụ:
 GRANT select, insert ON NHANVIEN TO C;  => Người dùng C được phép select và insert	trên bảng NHANVIEN.
 GRANT select, insert ON NHANVIEN TO B WITH GRANT OPTION; => Người dùng B được phép select và insert trên bảng NHANVIEN, đồng thòi cũng có thể cấp quyền này cho user khác.

Với từng user, hệ thống ghi nhận lại:

  • A: tập hợp các quyền mà user sở hữu.
  • B: tập hợp các quyền mà user có thể ủy quyền cho người khác.

Khi 1 user thi hành câu lệnh GRANT, hệ thống sẽ

  • Tìm phần giao của tập B với tập quyền trong câu lệnh.
  • Nếu phần giao là rỗng, thì câu lệnh không được thi hành.

b. REVOKE:

REVOKE PrivilegeList| ALL[PRIVILEGES]
ON Relation | View
FROM UserList | PUBLIC
  • Câu lệnh này dùng để thu hồi quyền đã cấp.
  • User chỉ có thể thu hồi quyền mà user đã cấp, tuy nhiên không thể chỉ thu hồi quyền GRANT OPTION.
  • Một người chỉ có thể bị thu hồi quyền truy xuất p khi tất cả những user cấp quyền p cho họ đều bị thu hồi.

Sau câu lệnh này thì D vẫn có quyền select trên bảng NHANVIEN vì B vẫn chưa thu hồi quyền select của D.

C.

0