Затем задается ряд вопросов о способе выполнения подписи, включая это окно, которое просит определить алгоритм шифрования:
После этого мы определяем имя приложения и URL страницы Web, которая дает о нем дополнительную информацию.
Это по сути окончание
процесса, последнее окно подтверждает данные сертификата и тот факт, что сборка была успешно подписана.
Поскольку наш исполняемый файл теперь подписан с помощью сертификата, получатель сборки имеет доступ к надежному свидетельству того, кто опубликовал программное обеспечение. Среда выполнения может проверить сертификат и сопоставить издателя сборки с группой кода с высоким уровнем доверия в отношении идентичности кода, так как надежная третья сторона подтверждает идентичность издателя.
Разберем подписанную сборку более подробно. Хотя мы используем тестовый сертификат, можно временно сконфигурировать .NET для использования тестовых сертификатов как вызывающих доверие, выпущенных надежной третьей стороной, используя утилиту
setreg.exe
, которая позволяет преобразовать открытый ключ и настройки сертификата в реестре. Если ввести следующую команду, машина будет сконфигурирована таким образом, чтобы доверять тестовому сертификату в корне, что дает нам более содержательную тестовую среду.
setreg.exe 1 true
Проверим нашу сборку и ее уровень надежности с помощью утилиты
chktrust.exe
:
chktrust.exe securityapp11.exe
Эта команда выведет окно:
Отметим, что
chktrust.exe
успешно подтвердила достоверность издателя программного обеспечения, используя сертификат, но напоминает, что, хотя сертификат был проверен, он является тестовым сертификатом.
Обратим теперь наше внимание к машине, которую мы хотим сконфигурировать для надежного программного обеспечения ABC Corporation. Для этого можно создать новую группу доступа к коду, которая соответствует программному обеспечению ABC Corporation. Итак, мы извлекаем шестнадцатеричное представление сертификата из сборки с помощью утилиты
secutil.exe
:
secutil.exe -hex -х securityapp11.exe
Эта команда выведет что-то подобное:
Microsoft (R) .NET Framework SecUtil 1.0.xxxx.x
Copyright (c) Microsoft Corp 1999-2001. All rights reserved.
Параметры определяют, что группа кода должна добавляться к верхнему уровню (1.), условие членства в группе кода имеет тип
Publisher
, а последний параметр определяет множество полномочий для предоставления (
FullTrust
). Команда будет требовать подтверждения:
Microsoft (R) .NET Framework CasPol 1.0.xxxx.x
Copyright (c) Microsoft Corp 1999-2001. All rights reserved.
The operation you are performing will alter security policy.
Are you sure you want to perform this operations? (yes/no) у
Added union code group with "-pub" membership condition to the Machine level.
Success
Машина теперь сконфигурирована при наличии полного доверия всем сборкам, которые были подписаны с помощью сертификата ABC Corporation. Чтобы подтвердить это, выполним команду
caspol.exe -lg
, которая выводит новую группу доступа к коду (1.8):
Security is ON
Execution checking is ON
Policy change prompt is ON
Level = Machine
Code Groups:
1. All code: Nothing
1.1. Zone - MyComputer: Full Trust
1.1.1. Zone — Intranet: LocalIntranet
1.2.1. All code: Same site Socket and Web.
1.2.2. All code: Same directory FileIO - Read, PathDiscovery