Bảo mật phần 1
Số trang: 7
Loại file: pdf
Dung lượng: 207.53 KB
Lượt xem: 2
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bảo mật Mụ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
Nội dung trích xuất từ tài liệu:
Bảo mật phần 1Chương 13 : Bảo mậtMụ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ànhơn—đặc biệt lưu tâm đến việc sử dụng mobile code1[1][5] và các hệ thống phân tán. Hầuhế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àinguyê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áytí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 tincậy như mức tin cậy mà bạn đã ấn định cho người đang chạy mã lệnh này..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ò)CAS và RBS 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ằmdướ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ângcao 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ựcthi—đâ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 .NETFramework—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ữachứ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ấtcủ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ếumuố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ớingườ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ácvấ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 địnhdanh (identity) và các vai trò (role) của người dùng mà ứng dụng đang chạy trên danhnghĩ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ộcvề. Tuy nhiên, RBS cung cấp một cơ chế bảo mật chung không lệ thuộc vào hệ điều hànhnằm dưới, cho phép bạn tích hợp vào bất kỳ hệ thống tài khoản người dùng nào. Các mụctrong chương này thảo luận các vấn đề sau đây của .NET RBS: Tích hợp RBS với các tài khoản người dùng Windows và xác định xem một người dùng có là thành viên của một nhóm Windows nào đó hay không (mục 13.13). Kiểm soát việc truy xuất đến các chức năng của ứng dụng dựa trên người dùng hiện hành và các vai trò mà người dùng này là một thành viên (mục 13.14). Giả nhận một người dùng Windows để thực hiện các tác vụ hệ điều hành trên danh nghĩa người dùng đó (mục 13.15).Các mục liên quan đến RBS và CAS trong chương này trình bày một số công việc thôngthường mà bạn sẽ cần thực hiện trong các ứng dụng, nhưng chúng chỉ mô tả một phầnnhỏ trong các khả năng bảo mật của .NET Framework. Để hiểu rõ hơn, bạn hãy thamkhảo một quyển sách khác chuyên về bảo mật trong .NET Framework. 1.1 Cho phép mã lệnh có-độ-tin-cậy-một-phần sử dụng assembly tên mạnh của bạn Bạn cần viết một assembly chia sẻ sao cho nó là khả truy xuất đối với mã lệnh có-độ-tin-cậy-một-phần (theo mặc định, bộ thực thi không cho phép mã lệnh có-độ-tin-cậy-một-phần truy xuất các kiểu và các thành viên nằm trong một assembly tên mạnh). Áp dụng đặc tính System.Security.AllowPartiallyTrustedCallersAttribute cho assembly chia sẻ của bạn.Để giảm thiểu các nguy cơ bảo mật do mã lệnh nguy hiểm bày ra, bộ thực thi không chophép các assembly có-độ-tin-cậy-một-phần truy xuất đến các assembly tên mạnh. Hạnchế này làm giảm nguy cơ mã lệnh nguy hiểm tấn công vào hệ thống của bạn, nhưng đốivới một cách tiếp cận áp chế như thế cần phải có lời giải thích.Theo quy tắc, các assembly tên mạnh được cài đặt trong Global Assembly Cache (GAC)và chứa các chức năng quan trọng được dùng chung giữa nhiều ứng dụng. Điều này hoàntoàn đúng với các assembly cấu thành thư viện lớp .NET Framework. Các assembly tênmạnh khác từ các sản phẩm được-phân-bổ-rộng-rãi cũng sẽ nằm trong GAC và là khảtruy xuất đối với các ứng dụng được-quản-lý. Khả năng hiện diện trong GAC cao, tínhkhả truy xuất dễ dàng, và tầm quan trọng đối với nhiều ứng dụng khác nhau khiến chocác assembly tên mạnh là mục tiêu có khả năng nhất đối với bất cứ hành động phá hoạinào của mã lệnh nguy hiểm được-quản-lý.Thông thường, mã lệnh có khả năng nguy hiểm là mã được nạp từ các nơi xa—nhưInternet—ở đó bạn có ít (hay không có) sự kiểm soát nào. Với chính sách bảo mật mặcđịnh, tất cả mã lệnh chạy từ máy cục bộ đều có độ tin cậy toàn phần (full trust), trong khimã lệnh được nạp từ các nơi xa chỉ có độ tin cậy một phần (partial trust). Ngăn mã lệnhcó-độ-tin-cậy-một-phần truy xuất đến các assembly tên mạnh; nghĩa là mã lệnh có- ...
Nội dung trích xuất từ tài liệu:
Bảo mật phần 1Chương 13 : Bảo mậtMụ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ànhơn—đặc biệt lưu tâm đến việc sử dụng mobile code1[1][5] và các hệ thống phân tán. Hầuhế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àinguyê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áytí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 tincậy như mức tin cậy mà bạn đã ấn định cho người đang chạy mã lệnh này..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ò)CAS và RBS 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ằmdướ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ângcao 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ựcthi—đâ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 .NETFramework—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ữachứ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ấtcủ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ếumuố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ớingườ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ácvấ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 địnhdanh (identity) và các vai trò (role) của người dùng mà ứng dụng đang chạy trên danhnghĩ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ộcvề. Tuy nhiên, RBS cung cấp một cơ chế bảo mật chung không lệ thuộc vào hệ điều hànhnằm dưới, cho phép bạn tích hợp vào bất kỳ hệ thống tài khoản người dùng nào. Các mụctrong chương này thảo luận các vấn đề sau đây của .NET RBS: Tích hợp RBS với các tài khoản người dùng Windows và xác định xem một người dùng có là thành viên của một nhóm Windows nào đó hay không (mục 13.13). Kiểm soát việc truy xuất đến các chức năng của ứng dụng dựa trên người dùng hiện hành và các vai trò mà người dùng này là một thành viên (mục 13.14). Giả nhận một người dùng Windows để thực hiện các tác vụ hệ điều hành trên danh nghĩa người dùng đó (mục 13.15).Các mục liên quan đến RBS và CAS trong chương này trình bày một số công việc thôngthường mà bạn sẽ cần thực hiện trong các ứng dụng, nhưng chúng chỉ mô tả một phầnnhỏ trong các khả năng bảo mật của .NET Framework. Để hiểu rõ hơn, bạn hãy thamkhảo một quyển sách khác chuyên về bảo mật trong .NET Framework. 1.1 Cho phép mã lệnh có-độ-tin-cậy-một-phần sử dụng assembly tên mạnh của bạn Bạn cần viết một assembly chia sẻ sao cho nó là khả truy xuất đối với mã lệnh có-độ-tin-cậy-một-phần (theo mặc định, bộ thực thi không cho phép mã lệnh có-độ-tin-cậy-một-phần truy xuất các kiểu và các thành viên nằm trong một assembly tên mạnh). Áp dụng đặc tính System.Security.AllowPartiallyTrustedCallersAttribute cho assembly chia sẻ của bạn.Để giảm thiểu các nguy cơ bảo mật do mã lệnh nguy hiểm bày ra, bộ thực thi không chophép các assembly có-độ-tin-cậy-một-phần truy xuất đến các assembly tên mạnh. Hạnchế này làm giảm nguy cơ mã lệnh nguy hiểm tấn công vào hệ thống của bạn, nhưng đốivới một cách tiếp cận áp chế như thế cần phải có lời giải thích.Theo quy tắc, các assembly tên mạnh được cài đặt trong Global Assembly Cache (GAC)và chứa các chức năng quan trọng được dùng chung giữa nhiều ứng dụng. Điều này hoàntoàn đúng với các assembly cấu thành thư viện lớp .NET Framework. Các assembly tênmạnh khác từ các sản phẩm được-phân-bổ-rộng-rãi cũng sẽ nằm trong GAC và là khảtruy xuất đối với các ứng dụng được-quản-lý. Khả năng hiện diện trong GAC cao, tínhkhả truy xuất dễ dàng, và tầm quan trọng đối với nhiều ứng dụng khác nhau khiến chocác assembly tên mạnh là mục tiêu có khả năng nhất đối với bất cứ hành động phá hoạinào của mã lệnh nguy hiểm được-quản-lý.Thông thường, mã lệnh có khả năng nguy hiểm là mã được nạp từ các nơi xa—nhưInternet—ở đó bạn có ít (hay không có) sự kiểm soát nào. Với chính sách bảo mật mặcđịnh, tất cả mã lệnh chạy từ máy cục bộ đều có độ tin cậy toàn phần (full trust), trong khimã lệnh được nạp từ các nơi xa chỉ có độ tin cậy một phần (partial trust). Ngăn mã lệnhcó-độ-tin-cậy-một-phần truy xuất đến các assembly tên mạnh; nghĩa là mã lệnh có- ...
Tìm kiếm theo từ khóa liên quan:
công nghệ thông tin kĩ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# Bảo mật phần 1Tài liệu liên quan:
-
52 trang 438 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 326 0 0 -
74 trang 307 0 0
-
96 trang 304 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 295 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 291 1 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 290 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 282 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 278 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 278 0 0