Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Когда вы создаете сборку, вы можете указать набор разрешений, необходимых для её выполнения. Предоставляются ли определенные разрешения сборке или не предоставляются на основе доказательств.
Существует два различных способа использования доказательств:
Входные данные объединяются с доказательствами, собранными загрузчиком для создания окончательного набора доказательств, используемых для разрешения политики. Методы, использующие эту семантику, включают Assembly.Load, Assembly.LoadFrom и Activator.CreateInstance.
Входные доказательства используются в неизмененном виде в качестве окончательного набора доказательств, используемых для окончательного разрешения политики. Методы, использующие эту семантику, включают Assembly.Load(byte[]) и AppDomain.DefineDynamicAssembly().
Необязательные разрешения могут быть предоставлены политикой безопасности на компьютере, где будет выполняться сборка. Если вы хотите, чтобы код обрабатывал все потенциальные исключения безопасности, можно выполнить одно из следующих действий:
Вставьте запрос на все права доступа, которые требуются вашему коду, и заранее предусмотрите возможные ошибки при загрузке, если эти права не будут предоставлены.
Не используйте запросы на разрешение для получения разрешений, которые могут понадобиться вашему коду, но будьте готовы обрабатывать исключения безопасности, если разрешения не предоставлены.
Замечание
Безопасность — это сложная область, и у вас есть множество вариантов выбора. Дополнительные сведения см. в разделе "Основные понятия безопасности".
При загрузке доказательства сборки используются в качестве входных данных для политики безопасности. Политика безопасности устанавливается администратором предприятия и компьютера, а также параметрами политики пользователя и определяет набор разрешений, предоставленных всем управляемым кодом при выполнении. Политику безопасности можно установить для издателя сборки (если у нее есть подпись, созданная с помощью инструмента подписи), для веб-сайта и зоны (концепции Internet Explorer), из которых была загружена сборка, или для сильного имени сборки. Например, администратор компьютера может установить политику безопасности, которая позволяет всем кодам, скачанным с веб-сайта и подписанным данной компанией программного обеспечения, получить доступ к базе данных на компьютере, но не предоставляет доступ к записи на диск компьютера.
Сборки со строгими именами и инструменты подписывания
Предупреждение
Не стоит полагаться на сильные имена для безопасности. Они предоставляют только уникальную идентичность.
Вы можете подписать сборку двумя разными, но взаимодополняющими способами: с использованием строгого имени или с помощью SignTool.exe (Sign Tool). Подписывание сборки с строгим именем добавляет шифрование открытого ключа в файл, содержащий манифест сборки. Подписывание строгого имени помогает проверить уникальность имен, запретить спуфинирование имен и предоставить вызывающим пользователям некоторое удостоверение при разрешении ссылки.
Никакой уровень доверия не ассоциируется со строгим именем, что делает SignTool.exe (средство подписи) важным. С помощью двух средств подписи издатель должен доказать свою подлинность третьей стороне и получить сертификат. Затем этот сертификат внедряется в файл и может использоваться администратором, чтобы решить, следует ли доверять подлинности кода.
Вы можете задать для сборки как сильное имя, так и цифровую подпись, созданную с помощью SignTool.exe (средство подписи), или использовать только одно из них. Два средства подписывания могут подписывать только один файл одновременно; для многофайловой сборки вы подписываете файл, содержащий манифест сборки. Строгое имя хранится в файле, содержашем манифест сборки, но подпись, созданная с помощью SignTool.exe (средство подписи), хранится в зарезервированном слоте в переносимом исполняемом файле (PE), содержашем манифест сборки. Подписывание сборки с помощью SignTool.exe (средство подписи) можно использовать (со строгим именем или без него), если у вас уже есть иерархия доверия, использующая SignTool.exe (средство подписи), или когда политика использует только ключевую часть и не проверяет цепочку доверия.
Замечание
При использовании как строгого имени, так и подписи с помощью средства для подписания в сборке, строгому имени следует присваивать в первую очередь.
Среда CLR также выполняет хэш-проверку; Манифест сборки содержит список всех файлов, составляющих сборку, включая хэш каждого файла, как он существовал при создании манифеста. По мере загрузки каждого файла его содержимое хэшируется и сравнивается с хэш-значением, хранящимся в манифесте. Если два хэша не соответствуют, сборка не загружается.
Строгое именование и подписывание с помощью SignTool.exe (средство подписи) гарантирует целостность с помощью цифровых подписей и сертификатов. Все упомянутые технологии, то есть хэш-проверка, строгое именование и подписывание с помощью SignTool.exe (средство подписи) работают вместе, чтобы гарантировать, что сборка не была изменена каким-либо образом.