260 likes | 496 Views
Chương 14: Bảo vệ. Hồ Thị Thùy Loan Phan Thanh Luân Trần Văn Tùng. Chương 14: Bảo vệ (Protection). Mục đích của Bảo vệ Nguyên lý Bảo vệ Miền bảo vệ Ma trận truy nhập Cài đặt ma trận truy nhập Đ i ề u khiển truy nh ập Thu hồi quyền truy xuất Các hệ thống dựa trên tiềm năng
E N D
Chương 14: Bảo vệ Hồ Thị Thùy Loan Phan Thanh Luân Trần Văn Tùng
Chương 14: Bảo vệ (Protection) • Mục đích của Bảo vệ • Nguyên lý Bảo vệ • Miền bảo vệ • Ma trận truy nhập • Cài đặt ma trận truy nhập • Điều khiển truy nhập • Thu hồi quyền truy xuất • Các hệ thống dựa trên tiềm năng • Bảo vệ trên cơ sở ngôn ngữ
Mục tiêu • Thảo luận về mục đích và các nguyên lý bảo vệ trong một hệ thống máy tính hiện đại • Giải thích cách mà các miền bảo vệ kết hợp với một ma trận truy nhập được dùng để chỉ rõ các tài nguyên mà tiến trình có thể truy nhập như thế nào • Khảo sát một số hệ thống dựa trên tiềm năng và bảo vệ trên cơ sở ngôn ngữ
Mục đích của bảo vệ • Hệ điều hành là một tập hợp bao gồm các đối tượng, phần cứng hoặc phần mềm • Mỗi đối tượng có một định danh duy nhất và có thể truy nhập thông qua một tập các thao tác được định nghĩa chặt chẽ. • Vấn đề bảo vệ - bảo đảm mỗi đối tượng được truy cập chính xác và chỉ bởi các tiến trình được phép
Nguyên lý bảo vệ • Nguyên lý định hướng – nguyên lý đặc quyền tối thiểu • Chương trình, người sử dụng và hệ thống chỉ nên được cấp vừa đủ cácđặc quyền để thực hiện nhiệm vụ của mình
Cấu trúc miền bảo vệ • Quyền truy nhập = <tên đối tượng, quyền thao tác>Trong đó quyền thao tác là một tập các thao tác hợp lệ có thể thực hiện trên đối tượng • Miền bảo vệ = tập các quyền truy nhập
Cài đặt miền bảo vệ (UNIX) • Hệ thống gồm 2 miền: • Người sử dụng(User) • Người quản trị hệ thống(Supervisor) • UNIX • Miền = user-id(id người sử dụng) • Chuyển đổi miền bảo vệ được hoàn thành thông qua hệ thống tập tin. • Mỗi file có 1 bit gắn với miền (setuid bit). • Khi file được thực thi và setuid = on, thì user-id được đặt là owner của file đang thực hiện. Khi thực thi xong, user-id được trả lại giá trị cũ.
Cài đặt miền bảo vệ (MULTICS) • Gọi Di và Djlà 2 miền bảo vệ bất kỳ. • Nếu j < i Di Dj
Ma trận truy nhập • Biểu diễn bảo vệ dưới dạng một ma trận ( ma trận truy nhập - access matrix) • Các hàng biểu diễn các miền • Các cột biểu diễn các đối tượng • Phần tử Access(i, j) là tập các thao tác mà một tiến trình thực thi trong miền Di được thao tác trên đối tượng Oj
Ma trận truy nhập Ví dụ A. Ma trận truy nhập
Sử dụng ma trận truy nhập • Nếu một tiến trình ở miền Di muốn thực thiện thao tác “op” trên đối tượng Oj , thì “op” phải có trong ma trận truy nhập • Có thể được mở rộng thành bảo vệ “động “(dynamic protection). • Các thao tác bổ sung, xóa quyền truy nhập. • Các quyền truy cập đặc biệt: • Owner - Chủ của đối tượng Oi • Copy - Sao chép thao tác “op” từ Oi sang Oj • Control – Di có thể sửa đổi quyền truy nhập của Dj • Transfer – chuyển op từ miền Di sang Dj
Sử dụng ma trận truy nhập (Cont.) • Ma trận truy nhập thiết kếcơ chế riêng biệt với nguyên tắc • Cơ chế • Hệ điều hành cung cấp ma trận truy nhập + quy định(rules) • Nếu đảm bảo rằng ma trận chỉ được sử dụng bởi các tác nhân được phép và các quy định được thực hiện nghiêm ngặt . • Nguyên tắc • Người sử dụng đề ra nguyên tắc • Ai có thể truy cập những đối tượng nào, và trong những chế độ nào.
Cài đặt ma trận truy nhập • Mỗi cột = Danh sách các quyền điều khiển truy nhập cho một đối tượngĐịnh nghĩa miền nào có thể thực hiện những thao tác gì Domain 1 = Read, Write Domain 2 = Read Domain 3 = Read • Mỗi hàng = Danh sách các khả năng (like a key)Đối với mỗi miền, các thao tác nào được quyền thực hiện trên đối tượng. Object 1 – Read Object 4 – Read, Write, Execute Object 5 – Read, Write, Delete, Copy
Ma trận truy nhập trong ví dụ A với các miền là các đối tượng Ví dụ B. Ma trận truy nhập với miền là đối tượng
Ma trận truy nhập với quyền copy Ma trận truy nhập với quyền copy trước(a) và sau(b) cập nhật
Ma trận truy nhập với quyền owner Ma trận truy nhập với quyền owner trước(a) và sau(b) cập nhật
Ma trận truy nhập trong VD B đã chỉnh sửa Ma trận truy nhập đã chỉnh sửa nội dung nhờ quyền contol
Điều khiển truy nhập • Bảo vệ có thể áp dụng cho tài nguyên non-file • Solaris 10 cung cấp điều khiển truy cập dựa trên cơ sở vai trò(role-based access control) để thực thi đặc quyền tối thiểu • Đặc quyền là quyền thực thi lời gọi hệ thống hoặc sử dụng một tùy chọn trong lời gọi hệ thống • Có thể được gán cho tiến trình • Người sử dụng được giao vai trò cấp phép truy cập tới các đặc quyền và các chương trình
Điều khiển truy cập đựa trên vai trò trong Solaris 10
Thu hồi quyền truy nhập • Danh sách truy nhập – xóa quyền truy nhập từ danh sách • Đơn giản • Ngay lập tức • Danh sách khả năng – yêu cầu phải xác định các khả năng trong hệ thống trước khi tiềm năng đó có thể bị thu hồi. • Tái yêu cầu(Reacquisition) • Sử dụng con trỏ ngược(Back-pointers) • Sử dụng con trỏ gián tiếp(Indirection) • Khóa(Keys)
Các hệ thống dựa trên tiềm năng • Hydra • Cố định bộ các quyền truy cập được biết trước và được thể hiện bởi hệ thống. • Sự thể hiện của các quyền do người dùng định nghĩa trước được thực hiện bởi chương trình của người sử dụng ; hệ thống cung cấp bảo vệ truy nhập cho việc sử dụng các quyền này. • Cambridge CAP System • Data capability – cung cấp chuẩn đọc, ghi, thực thi của từng phân đoạn kết hợp với đối tượng. • Software capability – việc thông dịch giao cho các hệ thống phụ(subsytem), thông qua các thủ tục bảo vệ của nó.
Bảo vệ trên cơ sở ngôn ngữ • Kỹ thuật về bảo vệ trong một ngôn ngữ lập trình cung cấp các mô tả cao cấp của các chiến lược phân phối và sử dụng tài nguyên. • Cài đặt của ngôn ngữ có thể cung cấp phần mềm cho sự bảo vệ bắt buộc khi việc tự động kiểm tra phần cứng không sử dụng được. • Việc biên dịch các kỹ thuật về bảo vệ để sinh ra lời gọi trên bất kỳ hệ thống bảo vệ nào được cung cấp bởi phần cứng và hệ điều hành.
Bảo vệ trong Java 2 • Bảo vệ được xử lý bởi máy ảo Java (JVM) • Một lớp được gán cho một miền bảo vệ khi nó được nạp bằng JVM. • Miền bảo vệ cho biết các thao tác nào mà lớp có thể (hoặc không thể) thực hiện. • Nếu một phương thức trong thư viện bị thu hồi thì nó sẽ thực thi một thao tác đặc quyền, stack được kiểm tra để bảo đảm rằng thao tác đó có thể được thực hiện bởi thư viện .