Chapter 2 Access Control Discretionary Access Control http

  • Slides: 180
Download presentation
Chapter 2 Access Control Discretionary Access Control http: //www. slideshare. net/tuoitrecomvn/slide-6 ppt

Chapter 2 Access Control Discretionary Access Control http: //www. slideshare. net/tuoitrecomvn/slide-6 ppt

Chương 2: Access Control Bảo mật theo cơ chế Discretionary Access Control DAC Mục

Chương 2: Access Control Bảo mật theo cơ chế Discretionary Access Control DAC Mục tiêu: o o o Hiểu và mô tả được Access Control Giải thích được cơ chế bảo mật DAC Vận dụng được DAC vào trong các hệ quản trị CSDL

Nội dung 1. 2. 3. Access Control Discretionary Access Control Vận dụng được DAC

Nội dung 1. 2. 3. Access Control Discretionary Access Control Vận dụng được DAC vào trong các hệ quản trị CSDL

Access Control 1. 2. 3. 4. 5. 6. Định nghĩa Điều khiển truy cập

Access Control 1. 2. 3. 4. 5. 6. Định nghĩa Điều khiển truy cập - Access control Các bước điều khiển truy cập Các vai trò trong điều khiển truy cập Quá trình điều khiển truy cập Các mô hình điều khiển truy cập Thực thi điều khiển truy cập

Định nghĩa điều khiển truy cập Access Control o o Kiểm soát truy cập

Định nghĩa điều khiển truy cập Access Control o o Kiểm soát truy cập (Access control): đảm bảo rằng tất cả các truy cập trực tiếp đến đối tượng được ủy quyền. Một hệ thống điều khiển truy cập có 3 cách kiểm soát khác nhau: truy cập chính sách (access control policy), mô hình kiểm soát truy cập (access control model) và cơ chế kiểm soát truy cập (access control mechanism).

Định nghĩa điều khiển truy cập Access Control o Access control gồm: n Bảo

Định nghĩa điều khiển truy cập Access Control o Access control gồm: n Bảo vệ các đối tượng (Protect objects): bảo vệ các tài nguyên hệ thống o n Chủ thể (subjects): các đơn vị hoạt động yêu cầu truy cập đến tài nguyên, o n ví dụ, tài nguyên bộ nhớ, tập tin, thư mục, tài nguyên phần cứng, phần mềm, bảng, các bộ, . . . ví dụ, người sử dụng, chủ sở hữu, chương trình, vv Chế độ truy cập (access mode): các kiểu truy cập o subject ví dụ, đọc / select, viết / cập nhật, thực thi. Access request Reference monitor object

Định nghĩa điều khiển truy cập Access Control Chức năng của access control o

Định nghĩa điều khiển truy cập Access Control Chức năng của access control o Cấp phép hoặc từ chối phê duyệt sử dụng các tài nguyên xác định cho các chủ thể o Kiểm soát được các đối tượng đang hoạt động hay các đối tượng có thể bị truy cập bởi các hoạt động khác. subject source (e. g. users, processes) access request reference monitor guard object resource (e. g. files, printers)

Định nghĩa điều khiển truy cập Access Control Ai có thể cấp quyền và

Định nghĩa điều khiển truy cập Access Control Ai có thể cấp quyền và thu hồi quyền truy cập: o Centralized administration (người quản trị trung tâm): nhân viên an ninh o Decentralized administration (người quản trị phân cấp) o Hierarchical decentralization (phân cấp theo thứ bậc): nhân viên an ninh, quản trị hệ thống phòng ban, người quản trị Windows o Ownership based (quyền sở hữu): có thể cấp quyền truy cập cho những người khác truy xuất dữ liệu của mình o Cooperative authorization (Ủy quyền): ủy quyền cho các chủ thể khác

Mục đích điều khiển truy cập o Điều khiển truy cập nhằm mục đích

Mục đích điều khiển truy cập o Điều khiển truy cập nhằm mục đích để đạt được: n n n Cho phép chức năng dự phòng có thể truy cập Đảm bảo tài sản đáp ứng tính toàn vẹn, bảo mật, ngăn chặn rò rỉ trái phép, … Cho phép nhà quản trị chính của hệ thống thay đổi việc truy cập

Tại sao điều khiển truy cập khó o o o Kiểm soát truy cập

Tại sao điều khiển truy cập khó o o o Kiểm soát truy cập là một kỹ thuật cho phép người dùng hệ thống truy cập một chức năng nào đó có thể làm thay đổi dữ liệu của hệ thống Nếu không kiểm soát hệ thống sẽ không còn an toàn và không còn bảo mật Yêu cầu truy cập hệ thống xảy ra thường xuyên Yêu cầu kiểm soát truy cập có thể thay đổi Bất cứ ai cũng có thể là một quản trị viên Vấn đề an toàn Truy cập có thể không an toàn nhưng phải tuân theo các ràng buộc của hệ thống

Các bước điều khiển truy cập cơ bản

Các bước điều khiển truy cập cơ bản

Các vai trò trong điều khiển truy cập

Các vai trò trong điều khiển truy cập

Quá trình điều khiển truy cập

Quá trình điều khiển truy cập

Các mô hình điều khiển truy cập Access Control Models Bốn mô hình điều

Các mô hình điều khiển truy cập Access Control Models Bốn mô hình điều khiển truy cập chính o Điều khiển truy cập tùy ý Discretionary Access Control (DAC) o Điều khiển truy cập bắt buộc Mandatory Access Control (MAC) o Điều khiển truy cập dựa trên vai trò Role Based Access Control (RBAC) o Điều khiển truy cập dựa trên qui tắc Rule Based Access Control - RBAC

Các mô hình điều khiển truy cập Access Control Models o Điều khiển truy

Các mô hình điều khiển truy cập Access Control Models o Điều khiển truy cập tùy ý (Discretionary Access Control) n n o Cho biết chủ thể nào có thể truy cập kiểu gì đến các đối tượng trong CSDL Có những nguyên tắc một chủ thể có thể tùy ý cấp quyền hay lấy lại quyền truy cập hoặc gián tiếp đến lớp dữ liệu Điều khiển truy cập bắt buộc (Mandatory Access Control) n Đị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

Các mô hình điều khiển truy cập Access Control Models o Điều khiển truy

Các mô hình điều khiển truy cập Access Control Models o Điều khiển truy cập dựa trên vai trò (Role Based Access Control ) n 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 về vai trò đó

Các mô hình điều khiển truy cập Access Control Models o Điều khiển truy

Các mô hình điều khiển truy cập Access Control Models o Điều khiển truy cập dựa trên qui tắc (Rule Based Access Control ) n n 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 qui 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

Các mô hình điều khiển truy cập Access Control Models

Các mô hình điều khiển truy cập Access Control Models

Thực thi điều khiển truy cập • • • Danh sách điều khiển truy

Thực thi điều khiển truy cập • • • Danh sách điều khiển truy cập (Access Control List-ACL) Chính sách nhóm (Group Policy) Giới hạn tài khoản

Danh sách điều khiển truy cập • • • Tập các quyền gắn với

Danh sách điều khiển truy cập • • • Tập các quyền gắn với một đối tượng Xác định chủ thể nào có thể truy cập tới đối tượng và các thao tác nào mà chủ thể thực hiện Khi chủ thể yêu cầu thực hiện một thao tác: • • Hệ thống kiểm tra danh sách điều khiển truy cập đối với mục đã được duyệt Danh sách điều khiển truy cập thường được xem xét trong mối liên hệ với các file của hệ điều hành

File chứa các quyền truy cập trong UNIX

File chứa các quyền truy cập trong UNIX

Danh sách điều khiển truy cập o o Mỗi một mục trong bảng danh

Danh sách điều khiển truy cập o o Mỗi một mục trong bảng danh sách điều khiển truy cập được gọi là một mục điều khiển (Access Control Element ACE) Cấu trúc ACE (trong windows) n n Nhận dạng bảo mật (Access identifier) cho tài khoản người dùng hay tài khoản nhóm hoặc phiên đăng nhập Mặt nạ truy cập (access mask) xác định quyền truy cập do ACE điều khiển Cờ (Flag) cho biết kiểu của ACE Tập các cờ (Set of flags) xác định đối tượng có thể kế thừa các quyền hay không

Chính sách nhóm o Tính năng của Microsoft Windows n n n o Cho

Chính sách nhóm o Tính năng của Microsoft Windows n n n o Cho phép sử dụng Active Directory (AD) để quản lý và cấu hình tập trung cho các máy và người dùng từ xa. Thường được sử dụng trong các môi trường doanh nghiệp Các thiết lập được lưu trữ trong các GPO (Group Policy Object – Đối tượng chính sách nhóm) Local Group Policy n n Có ít tùy chọn hơn so với Group Policy Được sử dụng để cấu hình các thiết lập cho các hệ thống không phải là một phần của AD

Giới hạn tài khoản o Giới hạn thời gian trong ngày (time of day

Giới hạn tài khoản o Giới hạn thời gian trong ngày (time of day restriction) n n n o Giới hạn số lần người dùng đăng nhập vào hệ thống trong một ngày Cho phép chọn khối thời gian chặn đối với các truy cập được cho phép Có thể được thiết lập trên từng hệ thống riêng lẻ Hạn sử dụng tài khoản (account expiration) n n n Các tài khoản mồ côi (orphaned account): tài khoản vẫn còn hoạt động sau khi một nhân viên rời khỏi tổ chức Tài khoản không hoạt động (domant account): không truy cập trong một khoảng thời gian dài Cả hai kiểu tài khoản trên là những nguy cơ đối với bảo mật.

Giới hạn thời gian trong ngày của hệ điều hành

Giới hạn thời gian trong ngày của hệ điều hành

Giới hạn đối với điểm truy cập không dây

Giới hạn đối với điểm truy cập không dây

Giới hạn tài khoản o Các khuyến cáo xử lý đối với tài khoản

Giới hạn tài khoản o Các khuyến cáo xử lý đối với tài khoản “mồ côi” và tài khoản “ngủ đông” n n n o o Thiết lập một qui trình chính thức Chấm dứt truy cập ngay lập tức Quản lý nhật ký (file log) Các tài khoản “mồ côi” vẫn là một vấn đề nan giải đối với các tổ chức hiện nay Account expiration (thời gian hiệu lực của tài khoản) n Thiết lập hết hạn cho một tài khoản người dùng (hết hiệu lực)

Giới hạn tài khoản o Password expiration (thời gian hiệu lực của mật khẩu)

Giới hạn tài khoản o Password expiration (thời gian hiệu lực của mật khẩu) thiết lập khoảng thời gian mà người dùng phải thay đổi mật khẩu mới n o Khác với account expiration (thời gian hiệu lực của tài khoản) Account expiration (thời gian hiệu lực của tài khoản) có thể được thiết lập bằng số ngày mà người dùng không có bất cứ hành động truy cập nào

Các dịch vụ xác thực o Xác thực (Authentication) n o Quá trình xác

Các dịch vụ xác thực o Xác thực (Authentication) n o Quá trình xác minh thông tin Các dịch vụ xác thực được cung cấp trên một mạng n Máy chủ xác thực chuyên dụng o o Còn gọi là máy chủ AAA nếu nó thực hiện đồng thời cả nhiệm vụ ủy quyền (authorization) và kế toán (accounting) Các kiểu xác thực và máy chủ AAA thông dụng n n RADIUS Kerberos TACACS LDAP

Discretionary Access Control 1. 2. 3. 4. Giới thiệu Discretionary Access Control Các loại

Discretionary Access Control 1. 2. 3. 4. Giới thiệu Discretionary Access Control Các loại quyền trong DAC Ưu và nhược điểm của DAC Các mô hình của DAC

Discretionary Access Control o o Điều khiển truy cập tùy ý - Discretionary Access

Discretionary Access Control o o Điều khiển truy cập tùy ý - Discretionary Access Control (DAC) chỉ rõ những đặc quyền mà mỗi chủ thể có được trên các đối tượng và trên hệ thống (object prilvilege, system privilege) Sức mạnh của DAC: Tính linh hoạt: là một lý do chính tại sao nó được biết đến rộng rãi và được thực hiện trong các hệ thống điều hành chủ đạo. n n n Người dùng có thể bảo vệ những gì thuộc về mình Chủ của dữ liệu có toàn quyền trên dữ liệu đó Chủ của dữ liệu có quyền định nghĩa các loại truy cập đọc/ghi/thực thi và gán những quyền đó cho những người khác

Discretionary Access Control v DAC dựa vào định danh của người dùng có yêu

Discretionary Access Control v DAC dựa vào định danh của người dùng có yêu cầu truy nhập vào các đối tượng dữ liệu (file, thư mục, …) v Cơ chế này được gọi là tùy ý có nghĩa là: v Cho phép chủ thể có thể cấp quyền cho chủ thể khác truy cập các đối tượng của nó v Người sử dụng có khả năng cấp phát hoặc thu hồi quyền truy nhập trên một số đối tượng. v Việc phân quyền kiểm soát dựa vào quyền sở hữu (kiểu chính sách cấp quyền dựa vào quyền sở hữu)

Discretionary Access Control DAC cho phép đọc thông tin từ một đối tượng và

Discretionary Access Control DAC cho phép đọc thông tin từ một đối tượng và chuyển đến một đối tượng khác (đối tượng này có thể được ghi bởi 1 chủ thể) Tạo ra sơ hở để cho tấn công Trojan sao chép thông tin từ 1 đối tượng đến 1 đối tượng khác o Ví dụ: User. A là chủ sở hữu table. A, anh ta tạo ra khung nhìn View. A từ bảng này (sao chép thông tin). User. A không cho phép User. B được đọc table. A nhưng lại vô tình gán quyền Write cho User. B trên View. A. o Như vậy, User. B có thể đọc thông tin table. A dù không đủ quyền trên bảng này. o

Discretionary Access Control Điều khiển truy cập của DAC trong một hệ CSDL là

Discretionary Access Control Điều khiển truy cập của DAC trong một hệ CSDL là dựa vào 2 thao tác cơ bản: o o Gán quyền (granting privileges): Cho phép người dùng khác được quyền truy cập lên đối tượng do mình làm chủ. Tuy nhiên, trong DAC có thể lan truyền các quyền. n Ví dụ: trong Oracle và SQL Server có GRANT OPTION, ADMIN OPTION Thu hồi quyền (revoking privileges): thu hồi lại quyền đã gán cho người dùng khác n Ví dụ: 1 user có GRANT OPTION, anh ta có thể thu hồi quyền đã truyền cho người khác

Discretionary Access Control Các qui tắc trao quyền o Các yêu cầu và chính

Discretionary Access Control Các qui tắc trao quyền o Các yêu cầu và chính sách an toàn do tổ chức đưa ra, người trao quyền có nhiệm vụ chuyển các yêu cầu này thành các quy tắc trao quyền o Qui tắc trao quyền: biểu diễn đúng với môi trường phần mềm/phần cứng bảo vệ.

Các loại quyền trong DAC o o Quyền ở cấp tài khoản/hệ thống (account/system

Các loại quyền trong DAC o o Quyền ở cấp tài khoản/hệ thống (account/system level): là những quyền độc lập với các đối tượng trong hệ CSDL. Những quyền này do người quản trị hệ thống định nghĩa và gán cho mỗi người dùng Quyền ở cấp đối tượng(object level): là những quyền trên mỗi đối tượng trong hệ CSDL. Người dùng tạo ra đối tượng nào thì sẽ có tất cả các quyền trên đối tượng đó.

Các loại quyền trong DAC Quyền ở cấp tài khoản/hệ thống: gồm có các

Các loại quyền trong DAC Quyền ở cấp tài khoản/hệ thống: gồm có các quyền o CREATE SCHEMA: tạo lược đồ CSDL o CREATE TABLE: tạo bảng dữ liệu/ quan hệ (relation) o CREATE VIEW: tạo view o ALTER: chỉnh sửa các schema/relation o DROP: xóa relation/view o MODIFY: quyền thêm/ xóa/ sửa các hàng dữ liệu (record/ tuple) o SELECT: quyền thực hiện câu truy vấn thông tin trong CSDL

Các loại quyền trong DAC Quyền ở cấp đối tượng: gồm các đối tượng

Các loại quyền trong DAC Quyền ở cấp đối tượng: gồm các đối tượng dữ liệu và các loại truy cập mà người dùng được phép thực hiện trên đối tượng đó. �Các đối tượng dữ liệu này gồm: các relation hoặc view �Các thao tác gồm: o �INSERT: thêm dữ liệu vào relation �UPDATE: cập nhật/chỉnh sửa dữ liệu trong relation �DELETE: xóa dữ liệu trong relation �REFERENCE: tham khảo đến dữ liệu trong relation

Một số hình an toàn tùy ý (DAC) o o Mô hình ma trận

Một số hình an toàn tùy ý (DAC) o o Mô hình ma trận truy nhập (Lampson 1971; Graham. Denning 1973, Harrision 1976) Mô hình Take-Grant(Jones 1976) Mô hình Action-Entity(Bussolati 1983), Fugini-Martelle 1984) Mô hình của Wood 1979 như kiến trúc ANSI/Sp. ARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức, …

Trường Đại học Công nghiệp TP. HCM Khoa Công nghệ Thông tin Access Control

Trường Đại học Công nghiệp TP. HCM Khoa Công nghệ Thông tin Access Control Matrix Model Mô Hình Ma Trận Điều Khiển Truy Cập

Nội Dung o o o Giới thiệu Access Control Matrix Model (ACM) Cấu trúc

Nội Dung o o o Giới thiệu Access Control Matrix Model (ACM) Cấu trúc của ACM Qui tắc hoạt động của ACM Các giải pháp cài đặt mô hình ACM Ưu và nhược điểm của ACM Bài tập 11/28/2020 41

Giới Thiệu Access Control Matrix Model (ACM) o o Mô hình được đề nghị

Giới Thiệu Access Control Matrix Model (ACM) o o Mô hình được đề nghị bởi Lampson (1971), và được Graham và Denning mở rộng (1972). 1976, Harrison và các cộng sự đã phát triển mô hình ma trận truy cập một cách có hệ thống. Access Control Matrix (ACM) là một công cụ cơ bản để thể hiện trạng thái bảo vệ hệ thống một cách chi tiết và chính xác ACM là mô hình bảo mật được dùng cho cả cấp hệ điều hành và cấp cơ sở dữ liệu.

Cấu trúc mô hình ACM o Ma trận điều khiển truy cập ACM là

Cấu trúc mô hình ACM o Ma trận điều khiển truy cập ACM là ma trận giữa các chủ thể S(subject), các đối tượng O(object) và các quyền tương ứng giữa của chủ thể với đối tượng.

Cấu trúc mô hình ACM Trạng thái định quyền (Authorization state) Q = (S,

Cấu trúc mô hình ACM Trạng thái định quyền (Authorization state) Q = (S, O, A) o S(Subjects): là tập các chủ thể - các thực thể chủ động (active entity) sử dụng các nguồn tài nguyên của hệ thống. o Ví dụ: người dùng, nhóm các người dùng (group), quá trình (process), chương trình (programs)

Cấu trúc mô hình ACM Trạng thái định quyền: Q = (S, O, A)

Cấu trúc mô hình ACM Trạng thái định quyền: Q = (S, O, A) o O(Objects): là tập các đối tượng - các thực thể cần được bảo vệ, bao gồm các thực thể bị động (passive object) như tài nguyên hệ thống và các chủ thể o Ví dụ: ở cấp hệ điều hành: file, bộ nhớ, segments, quá trình ở cấp CSDL: CSDL, quan hệ, thuộc tính, hàng, trường dữ liệu của hàng

Cấu trúc mô hình ACM Trạng thái định quyền Q = (S, O, A)

Cấu trúc mô hình ACM Trạng thái định quyền Q = (S, O, A) o A(Access matrix): là ma trận truy cập. n n Hàng: các chủ thể Cột: các đối tượng Mỗi ô A[s, o] chứa các quyền truy cập mà chủ thể s được quyền làm trên đối tượng o. Các quyền truy cập: thêm, xóa, sửa, đọc, thực thi, …

Cấu trúc mô hình ACM Ví dụ S Lan O File 1 File 2

Cấu trúc mô hình ACM Ví dụ S Lan O File 1 File 2 Read Execute Tuấn Read Execute Program 1 Read Minh Vương File 3 Read, Write Execute Read Write

Qui tắc hoạt động của ACM o o Ví dụ 1: Hệ thống có

Qui tắc hoạt động của ACM o o Ví dụ 1: Hệ thống có hai người dùng Bob và Alice xử lý ba file, lần lượt là Bill. doc, Edit. exe và Fun. com. Các quyền truy xuất trên các file này có thể được mô tả như sau: Bob có quyền đọc hoặc ghi file Bill. doc trong khi Alice không có quyền truy xuất. Bob và Alice chỉ có quyền thực thi file Edit. exe. Bob và Alice có quyền thực thi và quyền đọc file Fun. com nhưng chỉ có Bob có quyền ghi lên file này n n n S O Bill. doc Alice Bob Read, Write Edit. exe Fun. com Execute, Read, Write

Qui tắc hoạt động của ACM Ví dụ 2: Access Control Matrix for Program

Qui tắc hoạt động của ACM Ví dụ 2: Access Control Matrix for Program o o o S Procedures: inc_ctr , dec_ctr , manage Variable: counter Rights: +, - , x, Call O counter inc_ctr + dec_ctr - manage inc_ctr dec_ctr manage Call

Qui tắc hoạt động của ACM o Ví dụ 3: Xét một thiết bị

Qui tắc hoạt động của ACM o Ví dụ 3: Xét một thiết bị tính toán đơn giản của một hệ điều hành nhỏ, trong đó chỉ có 2 chủ thể là tiến trình p và q và 2 tệp dữ liệu f và g. Các quyền có thể là đọc (Read), viết sửa (Write), gọi thực hiện (e. Xecute), ghi thêm (Append) và làm chủ (Own). Giải thích ma trận này o o o S O f g p q p rwo r rwxo w q o ro r rwxo Tại A[p, f]= “rwo”, cho thấy tiến trình p là chủ sở hữu dữ liệu f đồng thời có đủ quyền đọc và viết f. A[p, q]=”w” cho thấy tiến trình p có thể gửi tin (viết) cho tiến trình q, còn q có quyền nhận tin (đọc) từ p vì A[q, p] = “r”. Mỗi tiến trình có đầy đủ quyền đối với chính mình (“rwxo”)

Qui tắc hoạt động của ACM o o o Các thao tác sửa đổi

Qui tắc hoạt động của ACM o o o Các thao tác sửa đổi nội dung ma trận được phép thực hiện bao gồm: sao chép (copy), chuyển quyền (transfer), quyền sở hữu (owner) Copy (R*): nếu A[i, j]=R* thì có thể sao chép quyền sang một phần tử A[k, j] khác nghĩa là mở rộng quyền truy xuất R trên cùng đối tượng O Tranfer (R+): nếu A[i, j]=R+ thì có thể chuyển quyền của nó sang một phần tử A[k, j] khác nghĩa là chuyển quyền truy xuất R+ trên đối tượng O Owner: nếu A[i, j]=o thì có thể thêm hay xóa các quyền truy xuất trong bất kỳ phần tử nào trên cột j Control: nếu A[i, j]=control thì có thể xóa bất kỳ quyền truy xuất nào trong phần tử trên dòng j

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject read+

Qui tắc hoạt động của ACM o Ví dụ Subject read+

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM o Ví dụ Subject

Qui tắc hoạt động của ACM Bài tập: S O Lan File 1 File

Qui tắc hoạt động của ACM Bài tập: S O Lan File 1 File 2 Read* Minh Execute Tuấn Read+ Write Vương Execute File 3 Program 1 Read Control Program 2 Read Execute Write Read Write Owner switch Control

Qui tắc hoạt động của ACM Access Control Matrix for System o Processes: p,

Qui tắc hoạt động của ACM Access Control Matrix for System o Processes: p, q o Files: f , g o Rights (quyền): r , w, x, a, o R = {read, write, execute, own, append} O File 1 File 2 Process 1 Process 2 Process 1 rwo r Rw*xo w Process 2 a+ ro r rwxo S

Một số dạng kiểm soát trong ma trận truy nhập o o o Kiểm

Một số dạng kiểm soát trong ma trận truy nhập o o o Kiểm soát phụ thuộc tên-Access controlled by Name Kiểm soát dựa vào nội dùng dữ liệu-Access controlled by Data Kiểm soát dựa vào thời gian-Access controlled by Time Kiểm soát dựa vào ngữ cảnh-Access controlled by Context Kiểm soát dựa vào lịch sử-Access Controlled by History Kiểm soát dựa vào lịch sử-Access Controlled by Boolean Expression Evaluation

Một số dạng kiểm soát trong ma trận truy nhập

Một số dạng kiểm soát trong ma trận truy nhập

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc dữ

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc dữ liệu (data-dependent): hạn chế truy cập dựa trên giá trị của dữ liệu được truy cập Ví dụ: nhân viên phòng tổ chức chỉ xem được thông tin của các nhân viên có salary < 1000 trong bảng Employee

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc thời

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc thời gian (time-dependent): hạn chế truy cập dựa trên thời gian truy cập dữ liệu Ví dụ: người quản lý chỉ được truy cập bảng Employee từ 8: 00 sáng đến 5: 00 chiều

Một số dạng kiểm soát trong ma trận truy nhập Ví dụ về Phụ

Một số dạng kiểm soát trong ma trận truy nhập Ví dụ về Phụ thuộc thời gian (time-dependent): o Subject annie: attributes role (artist), groups (creative) o o Verb paint: default 0 (deny unless explicitly granted) Object picture: Rule is n paint: `artist' in subject. role and `creative' in subject. groups and time. hour 0 and time. hour < 5

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc ngữ

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc ngữ cảnh: hạn chế truy cập dựa trên thu thập thông tin mà có thể được truy cập Ví dụ: có thể truy cập riêng từng thuộc tính name và salary trong bảng Employee, nhưng không thể truy cập cả 2 thuộc tính này cùng lúc.

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc lịch

Một số dạng kiểm soát trong ma trận truy nhập o Phụ thuộc lịch sử: hạn chế truy cập dựa trên dữ liệu truy cập trước Ví dụ: chỉ xem được thuộc tính salary của các nhân viên nếu như trước đó chưa xem thuộc tính name của nhân viên.

Một số dạng kiểm soát trong ma trận truy nhập Access Controlled by History

Một số dạng kiểm soát trong ma trận truy nhập Access Controlled by History o Thường dùng trong CSDL thống kê n n o Trả lời các query trong một nhóm Ngăn chặn mối liên hệ giữa các records Kiểm soát truy vấn chồng chéo n n Ngăn chặn kẻ tấn công để có thông tin riêng bằng cách sử dụng một tập các truy vấn Tham số r (=2) được sử dụng để xác định một query có nên được trả lời hay không? Name Position Age Salary Alice Teacher 45 40 K Bob Aide 20 20 K Cathy Principal 37 60 K Dilbert Teacher 50 50 K Eve Teacher 33 50 K 1. sum_salary(position = teacher) 2. Count(position =teacher) 3 3. sum_salary(age > 40 & position = teacher) 4. Count(*) from NV where (age > 40 & position = teacher) 2

Một số dạng kiểm soát trong ma trận truy nhập Access Controlled by History

Một số dạng kiểm soát trong ma trận truy nhập Access Controlled by History o Query 1: n n o sum_salary(position = teacher) Answer: 140 K Query 2: n n sum_salary(age > 40 & position = teacher) Should not be answered as Matt’s salary can be deduced Name Position Age Salary Celia Teacher 45 40 K Leonard Teacher 50 50 K Matt Teacher 33 50 K Name Position Age Salary Celia Teacher 45 40 K Leonard Teacher 50 50 K

Một số dạng kiểm soát trong ma trận truy nhập Access Control Matrix for

Một số dạng kiểm soát trong ma trận truy nhập Access Control Matrix for Database: Access Control by Boolean Expression Evaluation o o o Sử dụng một ma trận kiểm soát truy cập để kiểm soát truy cập trong một cơ sở dữ liệu Value (giá trị) được xác định bởi các biểu thức Boolean Object (Đối tượng) là các record và field; Subject: các chủ thể được ủy quyền để người sử dụng truy cập vào cơ sở dữ liệu Các loại truy cập: Insert, Update, Delete, Select, … Rules: Các qui tắc truy xuất đối tượng. Mỗi quy tắc tương ứng với một chức năng. Bất cứ khi nào một đối tượng cố gắng truy cập một đối tượng sử dụng quyền (verb) r, nếu biểu thức Boolean kết hợp với r là đúng thì được phép truy cập, ngược lại không được phép truy cập

Một số dạng kiểm soát trong ma trận truy nhập Ví dụ 1: Access

Một số dạng kiểm soát trong ma trận truy nhập Ví dụ 1: Access Control Matrix for Database o Subject annie: attributes role (artist), groups (creative) o Verb paint: default 0 (deny unless explicitly granted) o Object picture: Rule is paint: `artist' in subject. role and `creative' in subject. groups and time. hour 0 and time. hour < 5 At 3 AM, time condition met; ACM is: At 10 AM, time condition not met; ACM is: paint … picture … … annie … … picture …

Một số dạng kiểm soát trong ma trận truy nhập Ví dụ 2: o

Một số dạng kiểm soát trong ma trận truy nhập Ví dụ 2: o The Access Restriction Facility (ARF) định nghĩa các chủ thể như là các thuộc tính. Ví dụ: name, a level, a role, membership in groups, and access to programs

Một số dạng kiểm soát trong ma trận truy nhập Access Control by Boolean

Một số dạng kiểm soát trong ma trận truy nhập Access Control by Boolean Expression Evaluation Verbs have a default rule o “closed”: Truy cập bị từ chối (0) o “open”: Truy cập được cấp (1)

Một số dạng kiểm soát trong ma trận truy nhập Access Control by Boolean

Một số dạng kiểm soát trong ma trận truy nhập Access Control by Boolean Expression Evaluation o Associated with each object is a set of verbs, and each (object, verb) pair has an associated rule

Các giải pháp cài đặt ACM o o n n Cài đặt trực tiếp

Các giải pháp cài đặt ACM o o n n Cài đặt trực tiếp một ma trận như ACM lại là không thể vì nó vừa quá lớn, tốn quá nhiều bộ nhớ, bộ nhớ đã được cấp phát nhưng không sử dụng => lãng phí Các giải pháp để cài đặt ACM một cách khả thi: Theo danh sách truy xuất(Access Control Lists-ACL) Theo khả năng(Capability Lists-CL) Access Control Triples-ACT Cách tiếp cận khác sử dụng các khái niệm riêng như Lock và key.

Các giải pháp cài đặt ACM o Theo danh sách truy xuất(Access Control Lists-ACL):

Các giải pháp cài đặt ACM o Theo danh sách truy xuất(Access Control Lists-ACL): n Thực hiện phân rã theo cột gồm một đối tượng và nhiều chủ thể. Xác định một đối tượng bị truy cập bởi những chủ thể nào? n Tạo nên đối tượng quản lý là các danh sách điều khiển truy nhập. Các ACL sẽ được gắn vào các đối tượng tài nguyên (object), cung cấp danh sách các người sử dụng và quyền có thể truy nhập đến đối tượng

Các giải pháp cài đặt ACM o Theo danh sách truy xuất(Access Control Lists-ACL):

Các giải pháp cài đặt ACM o Theo danh sách truy xuất(Access Control Lists-ACL): n ACL cụ thể sẽ phải đưa ra các câu trả lời và biện pháp cài đặt chi tiết cho các vấn đề sau: o Ai được phép cập nhật lên ACL của mỗi đối tượng tài nguyên? o Những loại sửa đổi cập nhật nào là được phép? o Nếu có những đặc quyền truy nhập (permission) có mâu thuẫn với nhau thì giải quyết như thế nào? o Giải quyết cho thủ tục rút phép (revocation) ra sao ?

Các giải pháp cài đặt ACM Ví dụ: Danh sách điều khiển truy xuất

Các giải pháp cài đặt ACM Ví dụ: Danh sách điều khiển truy xuất ACL: O S Bill. doc Alice Bob Read, Write Edit. exe Fun. com Execute, Read, Write ACL cho bill. doc là Bob: read, write ACL cho edit. exe là Bob: execute; Alice: execute ACL cho fun. com là Bob: execute, read, write; Alice: execute, read

Các giải pháp cài đặt ACM Theo khả năng (Capability Lists-CL): o Thực hiện

Các giải pháp cài đặt ACM Theo khả năng (Capability Lists-CL): o Thực hiện phân rã theo dòng gồm một chủ thể và nhiều đối tượng. Xác định chủ thể có thể truy cập đến những đối tượng nào. o Tạo nên các danh sách khả năng được gắn với các chủ thể (NSD), cung cấp danh sách các tài nguyên mà chủ thể có thể sử dụng với quyền truy nhập cụ thể tương ứng. S Alice O Bill. doc Edit. exe Fun. com Execute, Read Bob Read, Write Execute, Read, Write Khả năng của Alice: edit. exe: execute; fun. com: execute, read Khả năng của Bob: bill. doc: read, write; edit. exe: execute; fun. com: execute, read, write

Cách hiện thực mô hình ma trận truy cập

Cách hiện thực mô hình ma trận truy cập

Các giải pháp cài đặt ACM o Access Control Triples-ACT : n ACT (Access

Các giải pháp cài đặt ACM o Access Control Triples-ACT : n ACT (Access Control Triples): tức là danh sách các bộ ba (chủ thể, đối tượng, quyền truy nhập) được lưu trong một cấu trúc bảng; nó chính là biểu diễn rút gọn của ma trận toàn thể bằng cách triệt tiêu toàn bộ các ô dữ liệu trống.

Các giải pháp cài đặt ACM o Access Control Triples-ACT : n Cách tiếp

Các giải pháp cài đặt ACM o Access Control Triples-ACT : n Cách tiếp cận khác sử dụng các khái niệm riêng như Lock và key: các tài nguyên có cấu trúc điều khiển gọi là lock mà chủ thể nào muốn sử dụng thì phải có key tương ứng (cũng là một thông tin điều khiển). Cách tiếp cận này phối hợp cả hai kiểu sử dụng ACL (danh sách truy nhập) và CL (danh sách năng lực).

Các giải pháp cài đặt ACM o Ví dụ 1: Một ma trận nhỏ

Các giải pháp cài đặt ACM o Ví dụ 1: Một ma trận nhỏ có thể được biểu diễn theo cả 3 cách - dùng ACL, CL và ACT Ba cách làm này đều cùng biểu diễn chung một trạng thái của một hệ thống truy nhập với hai chủ thể là Sam và Joe và hai đối tượng tài nguyên là File 1 và File 2

Các giải pháp cài đặt ACM o Ví dụ 2:

Các giải pháp cài đặt ACM o Ví dụ 2:

Các giải pháp cài đặt ACM o Ví dụ 2:

Các giải pháp cài đặt ACM o Ví dụ 2:

Các giải pháp cài đặt ACM Bài tập : Hệ thống có 3 người

Các giải pháp cài đặt ACM Bài tập : Hệ thống có 3 người dùng: o John: tạo ra file 1, 3 o Alice: tạo ra file 2 o Bob: tạo ra file 4 o Một file có ba quyền là Đọc(R), Ghi(W), Thực thi(E) o Các người dùng cấp quyền trên các file cho các người dùng khác: n n n 1. 2. 3. 4. John cấp quyền đọc, ghi cho Bob trên file 1 và chỉ quyền đọc trên file này cho Alice cấp quyền đọc trên file 2 cho Bob cấp quyền đọc trên file 4 cho Alice Vẽ ma trận truy cập, danh sách khả năng, danh sách điều khiển truy cập. Giả sử Join sở hữu file 1 vậy join có thể làm thêm những gì? Alice có quyền đọc trên file 2 và được sao chép quyền này thì bạn sẽ thay đổi ma trận như thế nào Bob cấp quyền đọc và được phép chuyển quyền trên file 4, ma trận sẽ

Các giải pháp cài đặt ACM

Các giải pháp cài đặt ACM

Bài tập: Cho bảng dữ liệu. Vẽ ma trận truy cập, danh sách khả

Bài tập: Cho bảng dữ liệu. Vẽ ma trận truy cập, danh sách khả năng (CL), danh sách điều khiển truy cập (ACL) và ACT.

Bài tập: Access Control List (ACL)

Bài tập: Access Control List (ACL)

Capability List o o o Matrix is stored by row Each user is associated

Capability List o o o Matrix is stored by row Each user is associated with a capability list Indicating for each object the access that the user is allow to exercise on the object

Bài tập 1 Cho ma trận truy cập, vẽ danh sách khả năng (CL),

Bài tập 1 Cho ma trận truy cập, vẽ danh sách khả năng (CL), danh sách điều khiển truy cập (ACL) và ACT.

Bài tập

Bài tập

Bài tập Cho ma trận truy cập, vẽ danh sách khả năng (CL), danh

Bài tập Cho ma trận truy cập, vẽ danh sách khả năng (CL), danh sách điều khiển truy cập (ACL) và ACT. r = read w = write x = execute - = not allowed

Ưu và Khuyết điểm của ACM Ưu điểm: n Phân quyền rõ ràng n

Ưu và Khuyết điểm của ACM Ưu điểm: n Phân quyền rõ ràng n Dễ dàng thực hiện n Hệ thống linh hoạt Khuyết điểm: n Trong thực tế, các ma trận kiểm soát truy xuất là một khái niệm trừu tượng và không thực sự phù hợp cho việc cài đặt trực tiếp nếu số lượng chủ thể và đối tượng lớn lãng phí bộ nhớ n Các tập này thay đổi thường xuyên khó kiểm soát

Bài tập ACM Lập ACM cho các hệ thống sau: 1. Quản lý bệnh

Bài tập ACM Lập ACM cho các hệ thống sau: 1. Quản lý bệnh viện 2. Quản lý đăng ký học phần 3. Quản lý thư viện 4. Quản lý Website bán hàng trực tuyến 5. Quản lý đặt vé máy bay trực tuyến Chú ý mỗi hệ thống bạn phải đưa ra các nghiệp vụ chức năng và các chủ thể sử dụng hệ thống và các đối tượng có trong hệ thống của bạn

Một số hình an toàn tùy ý (DAC) o o Mô hình ma trận

Một số hình an toàn tùy ý (DAC) o o Mô hình ma trận truy nhập (Lampson 1971; Graham-Denning 1973, Harrision 1976) Mô hình Take-Grant(Jones 1976) Mô hình Action-Entity(Bussolati 1983), Fugini. Martelle 1984) Mô hình của Wood 1979 như kiến trúc ANSI/Sp. ARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức, …

Mô hình Take-Grant(Jones 1976) o o Johns và các cộng sự đề nghị mô

Mô hình Take-Grant(Jones 1976) o o Johns và các cộng sự đề nghị mô hình Take-Grant năm 1976 Sử dụng các cấu trúc hình học để biểu diễn mối quan hệ về quyền giữa các chủ thể với đối tượng, giữa chủ thể với chủ thể và giữa đối tượng với đối tượng. Mục đích chính là làm rõ vấn đề về một chủ thể của hệ thống nhận các quyền truy nhập tới một đối tượng tại trạng thái được mô tả bằng một giản đồ truy nhập Có thể được xem là một dạng mở rộng của mô hình ma trận truy cập

Mô hình Take-Grant(Jones 1976) o o o Trạng thái định quyền: G = (S,

Mô hình Take-Grant(Jones 1976) o o o Trạng thái định quyền: G = (S, O, E) S: tập các chủ thể (người dùng, quá trình, chương trình) O: tập các đối tượng bị động (file, bộ nhớ, CSDL, bảng, hàng, trường dữ liệu) V = S U O: tập các đỉnh, S ∩ O = Ф E: tập các cung được đánh nhãn

Mô hình Take-Grant(Jones 1976) Thao tác Take và Grant o take(d, s, x, y):

Mô hình Take-Grant(Jones 1976) Thao tác Take và Grant o take(d, s, x, y): chủ thể s lấy quyền d trên đối tượng/chủ thể y từ đối tượng/chủ thể x

Mô hình Take-Grant(Jones 1976) Thao tác Take và Grant o grant(d, s, x, y):

Mô hình Take-Grant(Jones 1976) Thao tác Take và Grant o grant(d, s, x, y): chủ thể s gán quyền d trên đối tượng/chủ thể y cho đối tượng/chủ thể x

Mô hình Take-Grant(Jones 1976) o Các loại quyền truy cập: read, write, take, grant

Mô hình Take-Grant(Jones 1976) o Các loại quyền truy cập: read, write, take, grant n n o read, write: không làm thay đổi trạng thái định quyền take, grant: làm thay đổi trạng thái định quyền Các loại thao tác truyền quyền: take, grant, create, remove n n n take, grant: lấy và gán quyền create(s, x): chủ thể s tạo đối tượng/chủ thể x. Khi đó cung nối giữa s và x sẽ được đánh nhãn p (possess: sở hữu) Remove p(s, x): chủ thể s bị thu hồi quyền p trên đối tượng/chủ thể x

Mô hình Take-Grant(Jones 1976)

Mô hình Take-Grant(Jones 1976)

Mô hình Take-Grant(Jones 1976) o o o o Khuyết điểm của mô hình. Take-Grant:

Mô hình Take-Grant(Jones 1976) o o o o Khuyết điểm của mô hình. Take-Grant: Không có tính chọn lọc của các quyền quản lý: Tất cả các quyền của s đều có thể bị truyền đi nếu s sở hữu quyền GRANT Tất cả các quyền của o/s đều có thể bị lấy đi(truyền đi) nếu có một quyền TAKE trên nó. Không quản lý được sự lan truyền quyền Tính không cục bộ: nếu s có quyền GRANT trên o thì s có thể truyền bất kỳ quyền gì của mình cho o. Như vậy không kiểm soát được tập quyền có thể có trên o. Khả năng lan truyền ngược của dòng di chuyển quyền

DAC trong các hệ QTCSDL thông dụng 1. 2. Điều khiển dữ liệu với

DAC trong các hệ QTCSDL thông dụng 1. 2. Điều khiển dữ liệu với SQL DAC và điều khiển dòng thông tin

Điều khiển dữ liệu với SQL o Hai câu lệnh cơ bản: n n

Điều khiển dữ liệu với SQL o Hai câu lệnh cơ bản: n n o GRANT REVOKE Dựa trên 3 đối tượng chính trong CSDL: n n n Người dùng Các đối tượng CSDL Các quyền: lấy dữ liệu (SELECT), chỉnh sửa (INSERT, UPDATE, DELETE), và tham khảo (REFERENCE)

DAC ở các HQT CSDL thương mại o o Tất cà các HQT CSDL

DAC ở các HQT CSDL thương mại o o 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: do Griffiths và Wade phát triển vào năm 1976, là một trong những mô hình ra đời đầu tiên cho hệ quản trị CSDL quan hệ. System R: dựa trên nguyên lý ủy quyền quản trị cho người sở hữu

System R o o Các đối tượng được quản lý trong mô hình là

System R o o 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). Hỗ trợ làm việc trên group, không hỗ trợ role. Dùng câu lệnh GRANT để cấp quyền, có tùy chọn GRANT OPTION

System R o o Sự ủy quyền được thể hiện thông qua GRANT OPTION,

System R o o Sự ủy quyền được thể hiện thông qua GRANT OPTION, nếu cấp quyền cho 1 user bằng câu lệnh có 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 1 user khác. 1 user chỉ có thể cấp quyền trên 1 quan hệ cho trước nếu user đó là người sở hữu quan hệ hoặc user đó được người khác cấp quyền với câu lệnh có tùy chọn là GRANT OPTION.

Điều khiển dữ liệu với SQL o GRANT: truyền những quyền trên các đối

Điều khiển dữ liệu với SQL o GRANT: truyền những quyền trên các đối tượng dữ liệu của mình cho những người dùng khác GRANT <danh sách các quyền> ON<các đối tượng dữ liệu> TO<danh sách các người dùng> o REVOKE: lấy lại (hủy bỏ) những quyền trên các đối tượng dữ liệu của mình từ những người dùng khác REVOKE <danh sách các quyền> ON<các đối tượng dữ liệu> FROM<danh sách các người dùng>

Điều khiển dữ liệu với SQL Trong SQL, những quyền sau đây có thể

Điều khiển dữ liệu với SQL Trong SQL, những quyền sau đây có thể được gán cho một quan hệ R o SELECT: truy xuất/đọc dữ liệu trong R. o MODIFY: chỉnh sửa dữ liệu trong R o INSERT, UPDATE, DELETE o INSERT và UPDATE có thể bị giới hạn trên một số thuộc tính nào đó (thay vì nguyên cả hàng) o REFERENCE: tham khảo đến R (khóa ngoại) o REFERENCE cũng có thể bị giới hạn trên một số thuộc tính nào đó

Câu lệnh GRANT {ALL [PRIVILEGES] | permission[, . . . n]} { [(column[, .

Câu lệnh GRANT {ALL [PRIVILEGES] | permission[, . . . n]} { [(column[, . . . n])] ON {table | view} | ON {table | view}[(column[, . . . n])] | ON {stored_procedure | extended_procedure} } TO security_account[, . . . n] [WITH GRANT OPTION] [AS {group | role}]

Câu lệnh GRANT – Ví dụ: Cấp phát cho người dùng có tên thuchanh

Câu lệnh GRANT – Ví dụ: Cấp phát cho người dùng có tên thuchanh quyền thực thi các câu lệnh SELECT, INSERT và UPDATE trên bảng Products GRANT SELECT, INSERT, UPDATE ON Products TO thuchanh

Câu lệnh GRANT – Ví dụ: Cho phép người dùng thuchanh quyền xem Productname,

Câu lệnh GRANT – Ví dụ: Cho phép người dùng thuchanh quyền xem Productname, unit. Instock của bảng Products GRANT SELECT (Productname, unit. Instock) ON Products TO thuchanh hoặc: GRANT SELECT ON Products (Productname, unit. Instock) TO thuchanh

Câu lệnh GRANT – Ví dụ: • Với quyền được cấp phát như trên,

Câu lệnh GRANT – Ví dụ: • Với quyền được cấp phát như trên, người dùng thuchanh có thể thực hiện câu lệnh sau trên bảng Products SELECT Product. Name, Unit. Instock from Products • Câu lệnh dưới đây lại không thể thực hiện được SELECT * FROM Products • Cấp phát cho người dùng thuchanh các quyền SELECT, INSERT, UPDATE, DELETE VÀ REFERENCES trên bảng [Order details] GRANT ALL ON [order details] TO thuchanh

Câu lệnh GRANT – Ví dụ Cấp phát quyền Chú ý: • Người dùng

Câu lệnh GRANT – Ví dụ Cấp phát quyền Chú ý: • Người dùng không có quyền cấp phát những quyền mà mình được phép cho những người sử dụng khác. • Trong một số trường hợp, khi ta cấp phát quyền cho một người dùng nào đó, ta có thể cho phép người đó chuyển tiếp quyền cho người dùng khác bằng cách chỉ định tuỳ chọn WITH GRANT OPTION trong câu lệnh GRANT.

Câu lệnh GRANT – Ví dụ: Cho phép người dùng thuchanh quyền xem dữ

Câu lệnh GRANT – Ví dụ: Cho phép người dùng thuchanh quyền xem dữ liệu trên bảng Products đồng thời có thể chuyển tiếp quyền này cho người dùng khác GRANT SELECT ON Products TO thuchanh WITH GRANT OPTION

Câu lệnh GRANT – Ví dụ Cấp phát quyền thực thi các câu lệnh

Câu lệnh GRANT – Ví dụ Cấp phát quyền thực thi các câu lệnh • Những quyền có thể cấp phát trong trường hợp này bao gồm: • • • Tạo cơ sở dữ liệu: CREATE DATABASE. Tạo bảng: CREATE TABLE Tạo khung nhìn: CREATE VIEW Tạo thủ tục lưu trữ: CREATE PROCEDURE Tạo hàm: CREATE FUNCTION Sao lưu cơ sở dữ liệu: BACKUP DATABASE

Câu lệnh GRANT – Ví dụ Cấp phát quyền thực thi các câu lệnh

Câu lệnh GRANT – Ví dụ Cấp phát quyền thực thi các câu lệnh Cú pháp: GRANT ALL | danh_sách_câu_lênh TO danh_sách_người_dùng Ví dụ: Để cấp phát quyền tạo bảng và khung nhìn cho người dùng có tên là thuchanh, ta sử dụng câu lệnh như sau: GRANT CREATE TABLE, CREATE VIEW TO thuchanh

Câu lệnh GRANT – Ví dụ: • GRANT INSERT, SELECT ON Sailors TO Horatio

Câu lệnh GRANT – Ví dụ: • GRANT INSERT, SELECT ON Sailors TO Horatio • Horatio có thể truy vấn hoặc thêm dòng mới vào table Sailors • GRANT DELETE ON Sailors TO Yuppy WITH GRANT OPTION • Yuppy có thể xóa dữ liệu của table Sailors và có thể uỷ quyền cho người khác • GRANT UPDATE (rating) ON Sailors TO Dustin • Dustin có thể cập nhật cột rating trên các dòng của table Sailor • GRANT SELECT ON Active. Sailors TO Guppy, Yuppy • Guppy, Yuppy không truy cập trực tiếp table Sailors mà thông qua view Active. Sailors

Câu lệnh GRANT – Ví dụ A: GRANT select, insert ON NHANVIEN TO B

Câu lệnh GRANT – Ví dụ A: GRANT select, insert ON NHANVIEN TO B WITH GRANT OPTION; o A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; o B: GRANT select, insert ON NHANVIEN TO C; C có những quyền gì? o C có quyền select (từ A và B) và quyền insert (từ B). o C có thể cấp quyền select cho các user khác, nhưng C không thể cấp quyền insert. o

Câu lệnh GRANT- Ví dụ 1. 2. 3. 4. 5. A: GRANT select, insert

Câu lệnh GRANT- Ví dụ 1. 2. 3. 4. 5. A: GRANT select, insert ON NHANVIEN TO C WITH GRANT OPTION; A: GRANT select ON NHANVIEN TO B WITH GRANT OPTION; A: GRANT insert ON NHANVIEN TO B; C: GRANT update ON NHANVIEN TO D WITH GRANT OPTION; B: GRANT select, insert ON NHANVIEN TO D;

Câu lệnh GRANT- Ví dụ Trong ví dụ trên, hãy cho biết : Câu

Câu lệnh GRANT- Ví dụ Trong ví dụ trên, hãy cho biết : Câu lệnh nào được thực thi hoàn toàn? Câu lệnh nào không được thực thi? Câu lệnh nào thực thi một phần? TRẢ LỜI : • 3 câu lệnh đầu tiên thực thi hoàn toàn vì A là người sở hữu table • Câu lệnh thứ 4 không thực thi vì C không có quyền update trên table. • Câu lệnh thứ 5 thực thi một phần, B có quyền select, insert nhưng B không có grant option cho quyền insert nên D chỉ nhận được quyền select. •

Câu lệnh GRANT Sự lan truyền quyền với GRANT o Người dùng A là

Câu lệnh GRANT Sự lan truyền quyền với GRANT o Người dùng A là chủ của quan hệ R. Người dùng A có thể gán một quyền D trên R cho người dùng B với GRANT OPTION hoặc không. o Nếu trong câu lệnh gán có GRANT OPTION, điều này có nghĩa là B được phép gán quyền D trên R cho những người dùng khác. o B lại gán quyền D trên R cho một người dùng khác là C và cũng với GRANT OPTION o Chủ của quan hệ R(người dùng A) có thể không biết về sự lan truyền của quyền D trên R cho những người dùng khác

Câu lệnh GRANT Sự lan truyền quyền với GRANT o Nếu người dùng A

Câu lệnh GRANT Sự lan truyền quyền với GRANT o Nếu người dùng A thu hồi lại quyền D đã gán cho người dùng B thì tất cả những quyền D lan truyền bắt đầu từ B phải bị hệ thống tự động thu hồi lại

Câu lệnh GRANT Giới hạn sự lan truyền quyền o Giới hạn sự lan

Câu lệnh GRANT Giới hạn sự lan truyền quyền o Giới hạn sự lan truyền quyền theo chiều ngang: n n A 1 gán quyền D cho A 2 Và muốn A 2 chỉ có thể gán (trựctiếp) cho tối đa i= 2 người dùng khác

Câu lệnh GRANT

Câu lệnh GRANT

Câu lệnh REVOKE o REVOKE: lấy lại (hủy bỏ) những quyền trên các đối

Câu lệnh REVOKE o REVOKE: lấy lại (hủy bỏ) những quyền trên các đối tượng dữ liệu của mình từ những người dùng khác REVOKE [GRANT OPTION FOR] {ALL [PRIVILEGES] | permission[, . . . n]} { [(column[, . . . n])] ON {table | view} | ON {table | view}[(column[, . . . n])] | {stored_procedure | extended_procedure} } {TO | FROM} security_account[, . . . n] [CASCADE] [AS {group | role}]

Câu lệnh REVOKE – Ví dụ 2. A: GRANT select ON NHANVIEN TO C

Câu lệnh REVOKE – Ví dụ 2. A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; 3. A: GRANT select ON NHANVIEN TO B WITH 1. 4. 5. 6. 7. o GRANT OPTION; C: GRANT insert ON NHANVIEN TO D; B: GRANT select ON NHANVIEN TO D; C: REVOKE select ON NHANVIEN FROM D 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âu lệnh REVOKE – Ví dụ: • Thu hồi quyền thực thi lệnh INSERT

Câu lệnh REVOKE – Ví dụ: • Thu hồi quyền thực thi lệnh INSERT trên bảng Products đối với người dùng thuchanh. REVOKE INSERT ON Products FROM thuchanh • Thu hồi quyền đã cấp phát trên cột Unit. Instock (chỉ cho phép xem dữ liệu trên cột Product. Name) REVOKE SELECT ON Products(Unit. Instock) Chú ý: chỉ những quyền mà ta đã cấp phát trước đó mới được thu hồi, những quyền mà người dùng này được cho phép bởi những người dùng khác vẫn còn có hiệu lực.

Câu lệnh REVOKE – Ví dụ o Ví dụ: Giả sử trong cơ sở

Câu lệnh REVOKE – Ví dụ o Ví dụ: Giả sử trong cơ sở dữ liệu ta có 3 người dùng là A, B và C. A và B đều có quyền sử dụng và cấp phát quyền trên bảng R. A thực hiện lệnh sau để cấp phát quyền xem dữ liệu trên bảng R cho C: GRANT SELECT ON R TO C o và B cấp phát quyền xem và bổ sung dữ liệu trên bảng R cho C bằng câu lệnh: GRANT SELECT, INSERT ON R TO C

Câu lệnh REVOKE – Ví dụ o Như vậy, C có quyền xem và

Câu lệnh REVOKE – Ví dụ o Như vậy, C có quyền xem và bổ sung dữ liệu trên bảng R. Bây giờ, nếu B thực hiện lệnh: REVOKE SELECT, INSERT ON R FROM C o o Vậy C còn quyền gì trên R? ? ? ? Người dùng C sẽ không còn quyền bổ sung dữ liệu trên bảng R nhưng vẫn có thể xem được dữ liệu của bảng này (quyền này do A cấp cho C và vẫn còn hiệu lực).

Câu lệnh REVOKE – Ví dụ o o Nếu ta đã cấp phát quyền

Câu lệnh REVOKE – Ví dụ o o Nếu ta đã cấp phát quyền cho người dùng nào đó bằng câu lệnh GRANT với tuỳ chọn WITH GRANT OPTION thì khi thu hồi quyền bằng câu lệnh REVOKE phải chỉ định tuỳ chọn CASCADE. Trong trường hợp này, các quyền được chuyển tiếp cho những người dùng khác cũng đồng thời được thu hồi.

Câu lệnh REVOKE – Ví dụ o Ví dụ: Ta cấp phát cho người

Câu lệnh REVOKE – Ví dụ o Ví dụ: Ta cấp phát cho người dùng A trên bảng R với câu lệnh GRANT như sau: GRANT SELECT ON R TO A WITH GRANT OPTION o Sau đó người dùng A lại cấp phát cho người dùng B quyền xem dữ liệu trên R với câu lệnh: GRANT SELECT ON R TO B

Câu lệnh REVOKE – Ví dụ o Nếu muốn thu hồi quyền đã cấp

Câu lệnh REVOKE – Ví dụ o Nếu muốn thu hồi quyền đã cấp phát cho người dùng A, ta sử dụng câu lệnh REVOKE như sau: REVOKE SELECT ON R FROM A CASCADE o o A và B có quyền gì? Câu lệnh trên sẽ đồng thời thu hồi quyền mà A đã cấp cho B và như vậy cả A và B đều không thể xem được dữ liệu trên bảng R.

Câu lệnh REVOKE – Ví dụ o Trong trường hợp cần thu hồi các

Câu lệnh REVOKE – Ví dụ o Trong trường hợp cần thu hồi các quyền đã được chuyển tiếp và khả năng chuyển tiếp các quyền đối với những người đã được cấp phát quyền với tuỳ chọn WITH GRANT OPTION, trong câu lệnh REVOKE ta chỉ định mệnh đề GRANT OPTION FOR. • Ví dụ: Trong ví dụ trên, nếu ta thay câu lệnh: REVOKE SELECT ON Employees FROM A CASCADE • bởi câu lệnh: Chuyện gì xảy ra? REVOKE GRANT OPTION FOR SELECT ON Employees FROM A CASCADE • Thì B sẽ không còn quyền xem dữ liệu trên bảng R đồng thời A không thể chuyển tiếp quyền mà ta đã cấp phát cho những người dùng khác (tuy nhiên A vẫn còn quyền xem dữ liệu trên bảng R).

Câu lệnh REVOKE – Ví dụ Thu hồi quyền thực thi các câu lênh:

Câu lệnh REVOKE – Ví dụ Thu hồi quyền thực thi các câu lênh: o Việc thu hồi quyền thực thi các câu lệnh trên cơ sở dữ liệu (CREATE DATABASE, CREATE TABLE, CREATE VIEW, . . . ) được thực hiện đơn giản với câu lệnh REVOKE có cú pháp: REVOKE ALL | các_câu_lệnh_cần_thu_hồi FROM danh_sách_người_dùng o Ví dụ: Để không cho phép người dùng thuchanh thực hiện lệnh CREATE TABLE trên cơ sở dữ liệu, ta sử dụng câu lệnh: REVOKE CREATE TABLE

Câu lệnh REVOKE o Thu hồi đệ qui (recursive revocation): khi người dùng A

Câu lệnh REVOKE o Thu hồi đệ qui (recursive revocation): khi người dùng A thu hồi quyền truy xuất trên bảng của một người B thì tất cả các quyền mà B đã gán cho người khác đều bị thu hồi

Câu lệnh REVOKE o o Thu hồi quyền đệ qui sẽ phá vỡ quyền

Câu lệnh REVOKE o o Thu hồi quyền đệ qui sẽ phá vỡ quyền truy xuất mà đối tượng bị thu hồi quyền đã cấp Thực tế khi 1 user A thay đổi công việc hay vị trí thì chỉ muốn lấy lại quyền truy xuất của A mà không muốn lấy lại các quyền truy xuất mà A đã cấp

Câu lệnh REVOKE o o o Thu hồi quyền đệ qui trong System R

Câu lệnh REVOKE o o o Thu hồi quyền đệ qui trong System R dựa vào nhãn thời gian mỗi lần cấp quyền truy xuất cho người dùng. Một biến thể của cách tiếp cận này là không dựa vào nhãn thời gian, mục đích là để tránh thu hồi quyền dây truyền. Khi đó, nếu C bị B thu hồi quyền và C lại có quyền tương đương do người khác cấp (mặc dù cấp sau đó) thì quyền mà C cấp cho người khác vẫn được giữ.

Câu lệnh REVOKE

Câu lệnh REVOKE

Câu lệnh REVOKE Thu hồi quyền không dây chuyền (Noncascading revoke): o Khi A

Câu lệnh REVOKE Thu hồi quyền không dây chuyền (Noncascading revoke): o Khi A thu hồi quyền truy xuất trên B thì tất cả các quyền truy xuất mà B đã cấp cho chủ thể khác được thay bằng A đã cấp cho những chủ thể này.

Câu lệnh REVOKE

Câu lệnh REVOKE

Câu lệnh REVOKE Thu hồi quyền không dây chuyền (Noncascading revoke): Chú ý: o

Câu lệnh REVOKE Thu hồi quyền không dây chuyền (Noncascading revoke): Chú ý: o Bởi vì B được cấp quyền truy xuất trên đối tượng từ nhiều chủ thể (khác A) nếu không phải tất cả các quyền mà B cấp đều thay bằng A cấp. Và A được xem là người cấp thay cho B khi B sử dụng quyền A đã cấp cho mình cấp cho những chủ thể khác. o A sẽ là người cấp các quyền mà B đã cấp sau khi nhận quyền đó từ A có chỉ định WITH GRANT OPTION. Với những quyền B đã được cấp bởi C#A, đến lượt B cấp cho người khác thì B vẫn là người cấp các quyền này.

Câu lệnh REVOKE

Câu lệnh REVOKE

Câu lệnh REVOKE Thu hồi quyền không dây chuyền (Noncascading revoke): o Lưu ý

Câu lệnh REVOKE Thu hồi quyền không dây chuyền (Noncascading revoke): o Lưu ý rằng với quyền mà H cấp cho L, sau khi thu hồi quyền, không được thay I như là người cấp vì quyền này được cấp trước khi I cấp quyền cho H

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội dung o Trong các RDBMS, view là một cơ chế thuờng được dùng để hỗ trợ việc điều khiển truy cập trên nội dung o Dùng các vị từ (predicate) để giới hạn nội dung dữ liệu cần cấp quyền. o Chỉ những bộ của quan hệ thỏa mãn vị từ được xem là các đối tượng để cấp quyền

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội dung o Việc điều khiển truy cập dựa trên nội dung trong các RDBMS được thực hiện như sau: n n Định nghĩa 1 view dùng các vị từ để chọn ra các dòng dữ liệu muốn cấp cho chủ thể S Cấp cho S các quyền trên View

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội dung o Ví dụ 1: giả sử ta muốn cấp quyền cho user B truy cập chỉ những nhân viên có lương ít hơn 20000: CREATE VIEW V_NHANVIEN AS SELECT * FROM NHANVIEN WHERE LUONG <20000 GRANT Select ON V_NHANVIEN TO B;

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội

Điều khiển truy cập bằng VIEW View và sự phân quyền dựa trên nội dung o Người tạo view: view define o Quyền mà view define có trên view phụ thuộc vào: n n o Ngữ nghĩa của view hay các quan hệ cơ sở dùng để tạo view Quyền mà view define có trên các bảng cơ sở Quyền Alter và index không thể áp dụng cho view, nên view definer không bao giờ có quyền này trên view A: CREATE VIEW V 1 (MANV, TONGTIEN) AS SELECT MANV, LUONG+THUONG FROM NHANVIEN WHERE CONGVIEC =‘Lap Trinh’ Thao tác update không được định nghĩa trên trường TONGTIEN của View nên A sẽ không thể có quyền Update trên field này

Điều khiển truy cập bằng VIEW Điều khiển truy cập tùy quyền bằng VIEW

Điều khiển truy cập bằng VIEW Điều khiển truy cập tùy quyền bằng VIEW (quan hệ ảo) o Ví dụ 2: người dùng A là chủ của quan hệ R. A muốn gán cho người dùng B quyền truy xuất trên R nhưng chỉ muốn cho B xem một số thuộc tính nhất định. A có thể tạo view V của R chỉ chứa những thuộc tính đó và sau đó gán cho B quyền SELECT trên V o Tương tự, nếu A muốn giới hạn B chỉ được xem một số hàng trong quan hệ R thì A có thể tạo view V’ chỉ chứa những hàng đó trong R và sau đó gán quyền truy xuất trên V’ cho B

Điều khiển truy cập bằng VIEW Ví dụ : o Nhà quản trị CSDL

Điều khiển truy cập bằng VIEW Ví dụ : o Nhà quản trị CSDL (Database administrator -DBA) tạo 4 người dùng: A 1, A 2, A 3, A 4 o DBA gán cho A 1 quyền tạo các quan hệ GRANT CREATE TAB TO A 1; o DBA tạo ra schema EXAMPLE và cho phép A 1 các quyền thao tác trên đó. CREATE SCHEMA EXAMPLE AUTHORIZATIONA 1;

Điều khiển truy cập bằng VIEW Ví dụ: o A 1 có thể tạo

Điều khiển truy cập bằng VIEW Ví dụ: o A 1 có thể tạo ra các quan hệ trong schema EXAMPLE. o A 1 tạo ra 2 quan hệ EMPLOYEE và DEPARTMENT o A 1 là chủ của 2 quan hệ EMPLOYEE và DEPARTMENT nên A 1 có tất cả các quyền trên 2 quan hệ này

Điều khiển truy cập bằng VIEW Ví dụ: o A 1 muốn gán cho

Điều khiển truy cập bằng VIEW Ví dụ: o A 1 muốn gán cho A 2 quyền INSERT và DELETE trên cả hai quan hệ trên, nhưng không cho phép A 2 có thể truyền các quyền này cho những người dùng khác GRANT INSERT, DELETE ON EMPLOYEE, DEPARTMENT TO A 2; o Và A 1 muốn cho phép A 3 truy vấn thông tin từ cả 2 quan hệ, đồng thời có thể truyền quyền SELECT cho những người dùng khác GRANT SELECT ON EMPLOYEE, DEPARTMENT TO A 3 WITH GRANT OPTION;

Điều khiển truy cập bằng VIEW Ví dụ: o A 3 có thể gán

Điều khiển truy cập bằng VIEW Ví dụ: o A 3 có thể gán quyền SELECT trên quan hệ EMPLOYEE cho A 4: GRANT SELECT ON EMPLOYEE TO A 4; o A 4 không thể truyền quyền SELECT cho người dùng khác vì không có GRANT OPTION

Điều khiển truy cập bằng VIEW Ví dụ: o Sau đó, A 1 quyết

Điều khiển truy cập bằng VIEW Ví dụ: o Sau đó, A 1 quyết định thu hồi lại quyền SELECT trên quan hệ EMPLOYEE của A 3 REVOKE SELECT ON EMPLOYEE FROM A 3; o Hệ quản trị CSDL (Database Management System – DBMS) cũng phải tự động thu hồi lại quyền SELECT trên quan hệ EMPLOYEE của A 4. Bởi vì A 3 gán cho A 4 quyền này mà bây giờ A 3 không còn quyền này nữa.

Điều khiển truy cập bằng VIEW Ví dụ 3: o Giả sử A 1

Điều khiển truy cập bằng VIEW Ví dụ 3: o Giả sử A 1 muốn gán lại cho A 3 quyền truy vấn có giới hạn trên quan hệ EMPLOYEE và cho phép A 3 lan truyền quyền này. o A 3 chỉ có thể xem các thuộc tính NAME, BDATE và ADDRESS của những hàng có giá trị DNO = 5. o A 1 tạo view A 3 EMPLOYEE như sau: CREATE VIEW A 3 EMPLOYEE AS SELECT NAME, BDATE, ADDRESS FROM EMPLOYEE WHERE DNO = 5;

Điều khiển truy cập bằng VIEW Ví dụ 3: o Sau khi tạo view,

Điều khiển truy cập bằng VIEW Ví dụ 3: o Sau khi tạo view, A 1 có thể gán quyền SELECT trên view A 3 EMPLOYEE cho A 3: GRANT SELECT ON A 3 EMPLOYEE TO A 3 WITH GRANT OPTION; o Sau cùng, A 1 muốn cho phép A 4 chỉ cập nhật thuộc tính SALARY của quan hệ EMPLOYEE; GRANT UPDATE ON EMPLOYEE(SALARY) TO A 4;

Các bước xử lý truy vấn o View Composition n o Câu truy vấn

Các bước xử lý truy vấn o View Composition n o Câu truy vấn sau bước view compositon: n o Truy vấn trên view sẽ được chuyển thành truy vấn trên bảng cơ sở thông qua bước này Kết quả sẽ dựa trên vị trí của câu truy vấn và vị từ định nghĩa trên view B: Select * from V_NHANVIEN where CONGVIEC=‘Lap trinh’ Select * from NHANVIEN where LUONG<2000 AND CONGVIEC=‘Lap trinh’ Query optimization

Các bước xử lý truy vấn Nhận xét: o Vì việc kiểm tra quyền

Các bước xử lý truy vấn Nhận xét: o Vì việc kiểm tra quyền được thực hiện trước bước View compositon nên quyền được kiểm tra sẽ dựa trên View chứ không dựa trên các bảng cơ sở dùng định nghĩa view o View hữu ích khi cấp quyền trên các cột: chỉ cần tạo view gồm các cột mà ta muốn cấp quyền o View còn hữu ích trong việc cấp quyền trên dữ liệu thống kê (dữ liệu sinh ra từ các hàm SUM, AVG, . . ) o Chủ thể truy cập có thể cấp quyền truy cập hay thu hồi trên view tương tự như trên bảng dữ liệu o Người dùng muốn tạo View thì phải có quyền Select trên bảng dữ liệu o Nếu người tạo View bị thu hồi quyền (hay cấp quyền trên bảng) thì cũng bị thu hồi quyền (hay cấp quyền) trên view và thu hồi những người dùng khác được người này cấp quyền

Phân quyền trên View o Để xác định quyền mà view definer có trên

Phân quyền trên View o Để xác định quyền mà view definer có trên view, hệ thống phải: n o Tìm giao tập quyền mà view definer có trên quan hệ cơ sở tới tập quyền tương ứng với các thao tác có thể thực hiện trên view Ví dụ: Xét quan hệ NHANVIEN và giả sử A là người tạo nên quan hệ NHANVIEN n n n A: GRANT Select, Insert, Update ON NHANVIEN to D; D: CREATE VIEW V 1 AS SELECT MANV, LUONG FROM NHANVIEN; CREATE VIEW V 2(MANV, LUONG, NAM) AS SELECT MANV, LUONG*12 FROM NHANVIEN; D có thể thực hiện tất cả các quyền trên V 1 như là các quyền mà D có trên quan hệ NHANVIEN đó là Select, Insert, Update Tuy nhiên, D chỉ có thể thực hiện trên V 2 quyền Select và Update trên cột MANV

Phân quyền trên View o o o Hoàn toàn có thể cấp quyền trên

Phân quyền trên View o o o Hoàn toàn có thể cấp quyền trên View Quyền mà user có thể cấp là những quyền mà user có with grant option trên các quan hệ cơ sở Ví dụ: user D không thể cấp bất cứ quyền gì trên view V 1 và view V 2 mà D đã định nghĩa vì D không được chỉ định With Grant Option khi D cấp quyền

Phân quyền trên View Xét các câu lênh sau: o A: GRANT Select ON

Phân quyền trên View Xét các câu lênh sau: o A: GRANT Select ON NHANVIEN TO D WITH GRANT OPTION; o o o A: GRANT Update, Insert ON NHANVIEN TO D; D: CREATE VIEW V 4 AS Select Manv, luong FROM NHANVIEN; Quyền của D trên V 4 sẽ là: n n Select with GRANT OPTION; Update, Insert without GRANT OPTION;

DAC – Quyền khẳng định và Phủ định o System R và hầu hết

DAC – Quyền khẳng định và Phủ định o System R và hầu hết các HQT dùng chính sách đóng n o Khi chủ thể truy xuất đến 1 đối tượng dữ liệu, hệ thống kiểm tra trong danh sách quyền mà chủ thể được truy xuất, nếu không có thì truy xuất bị từ chối n n o Với chính sách đóng, thiếu quyền truy xuất đồng nghĩa với việc không có quyền truy xuất Hạn chế: việc thiếu quyền truy xuất không ngăn cấm chủ thể sẽ nhận quyền này từ chủ thể khác. Ví dụ: z không được quyền truy xuất trên đối tượng o, nhưng trường hợp hệ thống sử dụng chính sách phân chia quyền quản trị thì chủ thể có quyền truy xuất trên o vô tình cấp quyền cho x. Người ta đã đưa ra quyền phủ định để giải quyết vấn đề ràng buộc này

DAC – Quyền khẳng định và Phủ định o o o Quyền khẳng định:

DAC – Quyền khẳng định và Phủ định o o o Quyền khẳng định: danh sách quyền truy xuất được sử dụng Quyền phủ định: danh sách quyền truy xuất không được sử dụng Tuy nhiên sử dụng quyền khẳng định và quyền phủ định thì gây nên xung đột n o Ví dụ: A có quyền WRITE trên bảng NHANVIEN. A không được READ trên PHONGBAN, A không được WRITE trên thuộc tính LUONG của NHANVIEN Thường người ta giải quyết xung đột bằng cách ưu tiên quyền phủ định

DAC – Quyền khẳng định và Phủ định o o Quyền khẳng định được

DAC – Quyền khẳng định và Phủ định o o Quyền khẳng định được thực hiện như là chặn quyền Khi chủ thể bị gán quyền phủ định trên đối tượng thì quyền khắng định trên đối tượng mà họ có trước đó bị chặn lại Nếu sau này chủ thể được rút quyền phủ định thì họ có thể sử dụng lại quyền khẳng định của mình trước đó; Ưu điểm: n n Nếu vô tình gán quyền phủ định cho người dùng thì có thể thu hồi lại Có thể chặn quyền truy cập của chủ thể trong một thời gian bằng cách gán quyền phủ định và sau đó thu hồi lại.

Thu hồi quyền đã cấp hoặc cấp quyền đã cấm o Dùng câu lệnh

Thu hồi quyền đã cấp hoặc cấp quyền đã cấm o Dùng câu lệnh REVOKE: n n o o Ta có thể thu hồi lại quyền khẳng định (quyền đã cấp dùng lệnh GRANT) Ta có thể thu hồi lại quyền phủ định (quyền đã cấm dùng câu lênh DENY) Câu lệnh REVOKE giống lênh DENY ở chỗ không cho thực hiện điều gì đó Câu lênh REVOKE khác lệnh DENY ở chỗ REVOKE sẽ thu lại quyền đã cấp, còn DENY sẽ cấm một chủ thể (hay 1 vai trò) thực hiện 1 quyền gì đó trong tương lại.

DAC – Từ chối quyền DENY: từ chối 1 permission và ngăn chặn 1

DAC – Từ chối quyền DENY: từ chối 1 permission và ngăn chặn 1 user, group, role thừa kế permission thông qua mối quan hệ thành viên trong group và role. • Statement permissions: DENY{ALL | statement[, . . . n]} TO security_account[, . . . n] • Object permissions: DENY {ALL [PRIVILEGES] | permission[, . . . n]} { [(column[, . . . n])] ON {table | view} | ON {table | view}[(column[, . . . n])] | ON {stored_procedure | extended_procedure} } TO security_account[, . . . n][CASCADE]

DAC – Ràng buộc ngữ cảnh o o Thực tế người dùng chỉ được

DAC – Ràng buộc ngữ cảnh o o Thực tế người dùng chỉ được phép truy cập dữ liệu trong một khoảng thời gian nhất định Cần phải có 1 cơ chế hỗ trợ việc truy xuất trong khoảng thời gian cho trước. n o Trong hầu hết các HQT CSDL chính sách này thường triển khai ở chương trình ứng dụng n o Ví dụ: cơ chế chỉ cho phép những người làm việc bán thời gian chỉ được phép truy cập dữ liệu vào khoảng từ 9 am đến 1 pm ngày 1/1/2015 Hạn chế: khi xác nhận và thay đổi chính sách điều khiển truy cập, không đảm bảo rằng chính sách này thực thi Mô hình điều khiển truy cập dựa vào thời gian được đề xuất để giải quyết vấn đề này.

DAC – Ràng buộc ngữ cảnh o Thời gian hiệu lực: n n o

DAC – Ràng buộc ngữ cảnh o Thời gian hiệu lực: n n o Mỗi quyền truy xuất đều có khoảng thời gian hiệu lực Khi hết thời gian hiệu lực quyền truy xuất tự động bị thu hồi mà không cần người quản trị thu hồi Chu kỳ sử dụng quyền truy xuất: n Quyền truy xuất theo chu kỳ có thể là quyền khẳng định hay quyền phủ định. Nếu trong cùng một khoảng thời gian mà người dùng vừa có quyền khẳng định vừa có quyền phủ định trên cùng 1 đối tượng và cùng phương thức truy cập thì ưu tiên cho quyền phủ định

DAC – Ràng buộc ngữ cảnh o Cơ chế suy diễn dựa vào quy

DAC – Ràng buộc ngữ cảnh o Cơ chế suy diễn dựa vào quy tắc suy diễn n n Quy tắc suy diễn biểu thị ràng buộc của các quyền truy xuất theo thời gian Qui tắc cho phép suy ra quyền truy xuất mới dựa vào sự tồn tại hay không tồn tại của quyền truy xuất khác trong khoảng thời gian xác định Bằng cách sử dụng quy tắc suy diễn đã đáp ứng được yêu cầu bảo vệ dữ liệu một cách ngắn gọn và rõ ràng Ví dụ: Nếu 2 người cùng làm chung 1 dự án thì phải cùng quyền truy xuất trên các đối tượng

DAC – Ràng buộc ngữ cảnh o o o Quyền truy xuất được định

DAC – Ràng buộc ngữ cảnh o o o Quyền truy xuất được định nghĩa là 1 bộ gồm 5 thuộc tính auth = (s, o, m, pn, g) Trong đó: n S(chủ thể), g (người gán), U(danh sách người dùng) n m M (phương thức truy cập) n o O (đối tượng) n pn {+, -}(quyền khẳng định, quyền phủ định) Ví dụ: n (B, o 1, read, +, C): C gán quyền cho B có thể read đối tượng o 1 n (B, o 1, write, -, C): C không cho phép B được gán quyền write trên đối tượng o 1

DAC – Ràng buộc ngữ cảnh o o Quyền truy xuất theo chu kỳ

DAC – Ràng buộc ngữ cảnh o o Quyền truy xuất theo chu kỳ bộ ba ([begin, end], P, auth) Trong đó: n n o Begin là ngày bắt đầu End là ngày kết thúc vá lớn hơn ngày bắt đầu P là biểu thức chu kỳ Auth là quyền truy xuất Quyền truy xuất theo chu kỳ thể hiện quyền truy xuất có hiệu lực trong chu kỳ P với ngày sử dụng quyền lớn hơn hay bằng tb (ngày bắt đầu) và nhỏ hơn hay bằng te (ngày kết thức) n Ví dụ 2: A 1 ={1/1/15, ], Mondays, (A, o 1, read, +, B)) quyền truy xuất này được B gán, thể hiện A có quyền read trên đối tượng o 1 vào các ngày thứ hai bắt đầu từ ngày 1/1/15

DAC – Ràng buộc ngữ cảnh o o Khi sử dụng quyền phủ định

DAC – Ràng buộc ngữ cảnh o o Khi sử dụng quyền phủ định thì có thể dẫn đến hiện tượng xung đột Ví dụ: n n Giả sử có thêm quyền truy xuất A 2=([1/1/16, ], Working days, [A, o 1, read, -, B)) được gán cùng quyền truy xuất A 1 =([1/1/15, ]], Mondays, (A, o 1, read, +, B)) Lúc này bắt đầu từ ngày 1/1/15 thì A vừa có quyền khẳng định vừa có quyền phủ định trên cùng đối tượng o 1 và cùng phương thức read Hiện tượng xung đột được giải quyết bằng cách ưu tiên quyền phủ định Do đó trong khoảng thời gian [1/1/15, 31/12/15] thì A vẫn có quyền read trên đối tượng o 1 vào ngày thứ 2, tuy nhiên từ ngày 1/1/16 thì A không được gán quyền read trên đối tượng này vào các ngày làm việc kể cả thứ 2

DAC – Ràng buộc ngữ cảnh o Qui tắc suy diễn được định nghĩa

DAC – Ràng buộc ngữ cảnh o Qui tắc suy diễn được định nghĩa là bộ ba ([begin, end], P, A<OP>A) o Trong đó: n n n o o o Begin là ngày bắt đầu End là ngày kết thúc P là biểu thức chu kỳ A là quyền truy xuất A là biểu thức Bool của các quyền truy xuất OP là một trong các toán tử WHENEVER, ASLONGAS, UPON Ngữ nghĩa của từng toán tử theo qui tắc suy diễn ([begin, end], P, A, WHENEVER, A): quyền truy xuất A có hiệu lực vào thời gian t chu kỳ P và t [tb, te] khi A có hiệu lực Ví dụ: n n n A 1=([1/1/15, 1/1/16], Workings days, (M, o 1, read, B)) R 1 =([1/1/15, ], Summer time, (S, o 1, read, +, B)) S chỉ được read trên đối tượng o 1 vào thời điểm mùa hè từ ngày 1/1/15 khi M được read trên đối tượng này

DAC và điều khiển dòng thông tin o o o Khuyết điểm của DAC:

DAC và điều khiển dòng thông tin o o o Khuyết điểm của DAC: cho phép dòng thông tin từ đối tượng này truyền sang đối tượng khác bằng cách đọc thông tin lên từ một đối tượng rồi ghi thông tin đó xuống đối tượng khác Ví dụ: Bob không được phép xem file A, nên anh ta nhờ Alice (đồng lõa với Bob) copy nội dùng của file A sang file B (Bob có thể xem được file B) Giả sử các người dùng đều đáng tin cậy và không làm việc như trên thì cũng có thể một Trojan Horses sẽ làm việc sao chép thông tin từ đối tượng này sang đối tượng khác.

DAC và điều khiển dòng thông tin o Ví dụ Trojan Horses:

DAC và điều khiển dòng thông tin o Ví dụ Trojan Horses:

DAC và điều khiển dòng thông tin o Ví dụ Trojan Horses:

DAC và điều khiển dòng thông tin o Ví dụ Trojan Horses:

DAC và điều khiển dòng thông tin o Ví dụ Trojan Horses:

DAC và điều khiển dòng thông tin o Ví dụ Trojan Horses:

Ưu điểm của điều khiển truy cập DAC o o o o Mô hình

Ưu điểm của điều khiển truy cập DAC o o o o Mô hình ít hạn chế nhất Mọi đối tượng đều có một chủ sở hữu Chủ sở hữu có toàn quyền điều khiển đối với đối tượng của họ Chủ sở hữu có thể cấp quyền đối với đối tượng của mình cho một chủ thể khác Được sử dụng trên các hệ điều hành như Microsoft Windows và hầu hết các hệ điều hành UNIX Dễ dàng thực hiện, hệ thống linh hoạt DAC linh động trong chính sách nên được hầu hết các HQT CSDL ứng dụng

Nhược điểm của điều khiển truy cập DAC o Phụ thuộc vào quyết định

Nhược điểm của điều khiển truy cập DAC o Phụ thuộc vào quyết định của người dùng để thiết lập cấp độ bảo mật phù hợp o Khó v v v Việc cấp quyền có thể không chính xác quản lý việc gán / thu hồi quyền Quyền của chủ thể sẽ được “thừa kế” bởi các chương trình mà chủ thể thực thi Dễ bị lộ thông tin Không thể thiếu được dòng thông tin (information flow control) để có thể chống lại tấn công dạng Trojan Horse Kiểm soát an toàn không tốt