Ватсон Карли
Шрифт:
Чтобы предоставить информацию об издателе программного обеспечения, мы используем цифровые сертификаты и подписываем сборки, чтобы потребители программного обеспечения могли проверить идентичность издателя программного обеспечения. В коммерческой среде мы получаем сертификаты от таких компаний как Verisign или Thawte.
Преимущество покупки сертификата от внешнего поставщика перед созданием своего собственного состоит в том, что он предоставляет высокие уровни надежности в своей идентичности; поставщик действует как надежная третья сторона. Однако в целях тестирования .NET включает утилиту командной строки, которую можно использовать для создания тестового сертификата. Процесс создания сертификатов и их использование для публикации программного обеспечения является сложным, но чтобы дать представление о том, что сюда вовлечено, мы разберем пример, не вдаваясь в подробности.
Представим, что мы являемся компанией ABC Corporation, и создадим сертификат для нашего программного продукта "ABC Suite". Прежде всего необходимо создать тестовый сертификат, для чего вводим команду:
Эта команда создает тестовый сертификат с именем "ABC Corporation" и сохраняет его в файле
Чтобы подписать сборку с помощью сертификата, применяется утилита
Если нажать кнопку Next, вам будет предложено определить, где находится файл, который надо подписать. Для сборки подписывается файл, содержащий манифест.
Если нажать кнопку Next и выбрать режим Custom в следующем окне, будет предложено определить сертификат, который должен использоваться для подписи сборки. Нажав Select from File и указав файл
Появится окно, которое запросит файл с закрытым ключом. Этот файл с ключом был создан утилитой
Затем задается ряд вопросов о способе выполнения подписи, включая это окно, которое просит определить алгоритм шифрования:
После этого мы определяем имя приложения и URL страницы Web, которая дает о нем дополнительную информацию.
Это по сути окончание процесса, последнее окно подтверждает данные сертификата и тот факт, что сборка была успешно подписана.
Поскольку наш исполняемый файл теперь подписан с помощью сертификата, получатель сборки имеет доступ к надежному свидетельству того, кто опубликовал программное обеспечение. Среда выполнения может проверить сертификат и сопоставить издателя сборки с группой кода с высоким уровнем доверия в отношении идентичности кода, так как надежная третья сторона подтверждает идентичность издателя.
Разберем подписанную сборку более подробно. Хотя мы используем тестовый сертификат, можно временно сконфигурировать .NET для использования тестовых сертификатов как вызывающих доверие, выпущенных надежной третьей стороной, используя утилиту
Проверим нашу сборку и ее уровень надежности с помощью утилиты
Эта команда выведет окно:
Отметим, что
Обратим теперь наше внимание к машине, которую мы хотим сконфигурировать для надежного программного обеспечения ABC Corporation. Для этого можно создать новую группу доступа к коду, которая соответствует программному обеспечению ABC Corporation. Итак, мы извлекаем шестнадцатеричное представление сертификата из сборки с помощью утилиты
Эта команда выведет что-то подобное: