Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Для большинства приложений система безопасности доступа к коду в .NET является существенным достоинством, но только одной из многих. Она предоставляет высокий уровень защиты от злонамеренного кода, но обычно нам не требуется в это вмешиваться. Особенно важно для нас, что одной из областей, в которую мы будем вовлечены, является управление политикой безопасности при конфигурации настольных компьютеров для надежного кода из приложения, поступившего от поставщиков программного обеспечения.

Другой областью, где система безопасности доступа к коду наиболее важна, является создание приложения, включающего элемент, безопасность которого необходимо тщательно контролировать. Например, если существует база данных

в организации, содержащая крайне важные данные, необходимо использовать систему безопасности доступа к коду, чтобы можно было определять, какому коду разрешается доступ к базе данных, а какой код не может получить к ней доступ.

Важно понимать, что система безопасности доступа к коду предназначена для защиты ресурсов (локальных дисков, сети, интерфейса пользователя) от злонамеренного кода, но она не является инструментом для защиты программного обеспечения от пользователя. Для системы безопасности, связанной с пользователями, обычно используется встроенная в Windows 2000 подсистема безопасности пользователей или система безопасности .NET на основе ролей, которая будет рассмотрена позже.

Система безопасности доступа к коду основывается на двух высокоуровневых концепциях: Code Groups (Группы кодов) и Permissions (Полномочия).

□ Группы кодов (Code Groups) собирают вместе код, который имеет общие характеристики, хотя наиболее важным свойством является источник его происхождения. Например, группы кодов "Интернет" (источники кода из Интернета) и "интранет" (источники кода в LAN). Информация, используемая для помещения сборок в группы кода, называется свидетельством (evidance). Другое свидетельство, собираемое CLR, включает издателя кода, его устойчивое имя и (где применимо) URI, из которого он был загружен. Группы кода организуются в иерархию, и сборки почти всегда соответствуют нескольким группам кода. Группа кода в корне иерархии называется "All Code" и содержит все другие группы кода. Иерархия используется для определения, каким группам кода принадлежит сборка; если сборка не предоставляет свидетельство, которое соответствует определенной группе в дереве, не делается никаких попыток отнести ее к описанным ниже группам кода.

□ Полномочия (Permissions), или права, являются действиями, которые разрешается выполнить каждой группе кода. Например, полномочия включают "возможность обратиться к интерфейсу пользователя" и "возможность обратиться к локальной памяти". Системный администратор обычно управляет полномочиями, и это можно делать на уровне предприятия, уровне машины и уровне пользователя.

Виртуальная система выполнения внутри CLR загружает и реализует программы. Она предоставляет функции, необходимые для выполнения управляемого кода, и использует метаданные сборок для соединения в модули. Когда VES загружает сборку, она соответствует одной или нескольким группам кода. Каждой группе кода даются одно или несколько полномочий, которые определяют, какие действия могут делать сборки в этих группах кода. Например, если группе кода

MyComputer
присвоено полномочие
FileIOPermission
, то это означает, что сборки локальной машины могут читать и записывать в локальную файловую систему.

Группы кода

Группы кода имеют требование записи, называемое условием членства (Membership Condition). Чтобы сборка была внесена в группу кода, она должна соответствовать условию членства группы. Условия членства выглядят как запись "сборка с сайта www.microsoft.com" или "Издателем этого программного обеспечения является Microsoft Corporation".

Каждая группа кода имеет одно и только одно условие членства. Здесь представлены типы условий членства в

группах кода, доступные в .NET:

□ Zone (Зона) — регион, из которого происходит код.

□ Site (Сайт) — сайт Web, из которого происходит код.

□ Strong name (Строгое имя) — уникальное, проверяемое имя кода. Часто называется 'общим именем'.

□ Publisher (Издатель) — издатель кода.

□ URL — определенное расположение, из которого происходит код.

□ Hash value (хэш-значение) — хэш-значение сборки.

□ Skip verification (Контроль пропуска) — код, который запрашивает сборку, обходит проверки контроля кода.

□ Application directory (Каталог приложения) — расположение сборки в приложении.

□ All code (Весь код) — весь код удовлетворяет этому условию.

□ Custom (Специальный) — определяемое пользователем условие.

Первым типом условия членства в списке является условие Zone, оно наиболее часто используется. В зоне определяется регион происхождения фрагмента кода: MyComputer, Intranet, Trusted и Untrusted. Эти регионы управляются с помощью Security Options в Internet Explorer, об этом мы узнаем больше в последующем при рассмотрении управления политиками системы безопасности. Хотя настройки управляются с помощью Internet Explorer, они применимы ко всей машине. Ясно, что эти конфигурационные параметры недоступны в браузерах других компаний и, фактически, внутристраничные элементы управления, написанные с помощью .NET Framework, не будут работать в браузерах, отличных от Internet Explorer.

Группы кодов организуются в иерархию с условием членства All Code в корне.

Можно видеть, что каждая группа кода имеет одно условие членства и обладает полномочиями, которые должны быть предоставлены группе кода. Мы рассмотрим полномочия более подробно позже. Отметим, что если сборка не соответствует условию членства в группе кода, CLR не пытается сопоставить ее с нижерасположенными группами кода.

Caspol.exe — утилита политики системы безопасности доступа к коду

К утилите командной строки политики системы безопасности доступа к коду мы часто прибегаем в этой главе. Она позволяет просматривать и управлять политикой безопасности. Чтобы получить список ее параметров, введите следующую команду:

caspol.exe

.NET содержит также подключаемый модуль (snap-in) для управляющей консоли Microsoft, обеспечивающий регулирование системы безопасности доступа к коду. Однако ограничимся утилитой командной строки, в этом случае будет легче следовать приведенным примерам и можно создавать сценарии для изменения политики системы безопасности, очень полезные применительно к большому числу машин.

Рассмотрим группы кода на машине с помощью утилиты caspol.exe. Вывод команды перечисляет иерархическую структуру групп кода, дающую описание каждой группы кода. Введите следующую команду:

caspol.exe -listdescription

Microsoft (R) .NET Framework CasPol 1.0.xxxx.xx

Copyright (c) Microsoft Corp 1999-2001. All rights reserved.

Security is ON

Execution checking is ON

Поделиться:
Популярные книги

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Хозяйка забытой усадьбы

Воронцова Александра
5. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка забытой усадьбы

Ротмистр Гордеев

Дашко Дмитрий Николаевич
1. Ротмистр Гордеев
Фантастика:
фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев

Лисья нора

Сакавич Нора
1. Всё ради игры
Фантастика:
боевая фантастика
8.80
рейтинг книги
Лисья нора

Запрети любить

Джейн Анна
1. Навсегда в моем сердце
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Запрети любить

Мастер 9

Чащин Валерий
9. Мастер
Фантастика:
боевая фантастика
попаданцы
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Мастер 9

Магия чистых душ 2

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.56
рейтинг книги
Магия чистых душ 2

Кодекс Крови. Книга V

Борзых М.
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга V

Безумный Макс. Ротмистр Империи

Ланцов Михаил Алексеевич
2. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
4.67
рейтинг книги
Безумный Макс. Ротмистр Империи

Возрождение Феникса. Том 2

Володин Григорий Григорьевич
2. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.92
рейтинг книги
Возрождение Феникса. Том 2

Ты - наша

Зайцева Мария
1. Наша
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Ты - наша

(не) Желанная тень его Высочества

Ловиз Мия
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(не) Желанная тень его Высочества

Господин моих ночей (Дилогия)

Ардова Алиса
Маги Лагора
Любовные романы:
любовно-фантастические романы
6.14
рейтинг книги
Господин моих ночей (Дилогия)

Возвышение Меркурия. Книга 12

Кронос Александр
12. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 12