CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 511

511

Chương 13: Bảo mật

ục tiêu chính của Microsoft .NET Framework là làm cho việc lập trình trở nên an
toàn hơn—đặc biệt lưu tâm đến việc sử dụng mobile code

5

và các hệ thống phân

tán. Hầu hết các hệ điều hành hiện đại (bao gồm Microsoft Windows) đều hỗ trợ

bảo mật dựa-trên-người-dùng (User-Based Security), cho phép bạn kiểm soát các hành động
và các tài nguyên mà một người dùng truy xuất đến. Tuy nhiên, do sự phát triển của mạng
máy tính, đặc biệt là Internet, sự bảo mật nếu chỉ dựa vào định danh của người dùng trên hệ
thống là chưa đủ. Khi quan tâm đến bảo mật, mã lệnh không nên tự động nhận mức tin cậy
như mức tin cậy mà bạn đã ấn định cho người đang chạy mã lệnh này.

M

.NET Framework kết hợp hai mô hình bảo mật bổ sung lẫn nhau (thực hiện nhiều vấn đề liên
quan đến bảo mật người dùng và mã lệnh):

CAS (Code Access Security—Bảo mật truy xuất mã lệnh)

RBS (Role-Based Security—Bảo mật dựa-trên-vai-trò)

CASRBS không thay thế hay sao lại các phương tiện bảo mật do hệ điều hành nằm dưới
cung cấp. Chúng là các cơ chế độc lập nền, cấp thêm các khả năng bảo mật để nâng cao tính
bảo mật tổng thể trong các giải pháp được-quản-lý.
CAS sử dụng các thông tin về nguồn gốc của một assembly đã được thu thập lúc thực thi—đây
là chứng cứ (evidence)—để xác định xem mã lệnh có thể truy xuất các hành động và tài
nguyên nào—đây là quyền (permission). Chính sách bảo mật của .NET Framework—một tập
hợp phân cấp các quy tắc cấu hình—định nghĩa phép ánh xạ giữa chứng cứ và quyền. Thư
viện lớp .NET Framework sử dụng các yêu cầu quyền (permission demand hay permission
request
) để bảo vệ các chức năng quan trọng nhất của nó không bị truy xuất trái phép. Một
yêu cầu buộc bộ thực thi bảo đảm rằng: nếu muốn gọi một phương thức được-bảo-vệ thì mã
lệnh phải có một quyền cụ thể nào đó. CAS bảo đảm rằng: khả năng thực thi của mã lệnh tùy
thuộc vào mức độ tin cậy của bạn đối với người tạo ra mã và nguồn gốc của nó, chứ không
phải mức độ tin cậy đối với người dùng đang chạy mã. Các mục liên quan đến CAS trong
chương này thảo luận các vấn đề sau:

Cho phép mã lệnh có-độ-tin-cậy-một-phần (partially trusted code) truy xuất các
assembly tên mạnh của bạn (mục 13.1).

Vô hiệu hoàn toàn CAS (mục 13.2) hoặc chỉ vô hiệu việc kiểm tra quyền thực thi (mục
13.3).

Yêu cầu các quyền truy xuất mã lệnh cụ thể và xác định xem bộ thực thi đã cấp các
quyền nào cho mã lệnh của bạn (mục 13.4, 13.5, 13.6, và 13.7).

Kiểm soát sự thừa kế và chép đè thành viên bằng CAS (mục 13.8).

Xem xét và xử lý chứng cứ của assembly (mục 13.9 và 13.10).

Xử lý bảo mật bộ thực thi bằng miền ứng dụng (mục 13.11 và 13.12).

RBS cho phép bạn thực hiện các quyết định lúc thực thi (runtime decision) dựa trên định danh
(identity) và các vai trò (role) của người dùng mà ứng dụng đang chạy trên danh nghĩa người
dùng này. Trên hệ điều hành Windows, đây chính là việc thực hiện các quyết định dựa trên tên
người dùng Windows và các nhóm Windows mà người dùng đó thuộc về. Tuy nhiên, RBS

5

Mobile code là phần mềm được truyền qua một hệ thống mạng và sau đó được thực thi trên hệ thống

cục bộ.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.