Поделиться через


Развертывание ClickOnce и технология Authenticode

Обновлен: Ноябрь 2007

Authenticode — технология корпорации Майкрософт, использующая стандартную для отрасли криптографию в целях подписания кода приложения цифровым сертификатом, который удостоверяет подлинность издателя приложения. Используя технологию Authenticode для развертывания приложения, ClickOnce помогает предотвратить феномен "Троянского коня", когда злоумышленники представляют вирус или другую вредоносную программу как легальную программу, поступающую из авторитетного, заслуживающего доверия источника. Все развертывания ClickOnce должны подписываться цифровым сертификатом.

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

Технология Authenticode и подписание кода

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

Существуют различные типы сертификатов Authenticode, каждый из которых настроен для разных типов подписания. Для приложений ClickOnce необходимо иметь сертификат Authenticode, который пригоден для подписания. При попытке подписать приложение ClickOnce с помощью сертификата другого типа, например цифрового сертификата электронной почты, он не будет работать. Дополнительные сведения см. в статье Введение в процедуру подписания кода (https://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro\_authenticode.asp).

Сертификат для подписания кода можно получить одним из трех способов:

  • Купить сертификат у поставщика сертификатов..

  • Получить сертификат в своей организации из группы, отвечающей за создание цифровых сертификатов.

  • Создать собственный сертификат с помощью программы MakeCert.exe, которая содержится в наборе инструментальных средств разработки (SDK) .NET Framework.

Использование центров сертификации в помощь пользователям

  • Сертификат, создаваемый с помощью служебной программы MakeCert.exe, обычно называется "автосертификатом" или "тестовым сертификатом". Сертификат этого типа работает во многом так же, как SNK-файл функционирует в .NET Framework: он состоит исключительно из пары открытого и закрытого криптографических ключей и не содержит проверяемых сведений об издателе. Автосертификаты можно использовать для развертывания приложений ClickOnce с высоким доверием в интрасети. Однако когда эти приложения выполняются на клиентском компьютере, ClickOnce идентифицирует их как поступающие от "Неизвестного издателя". По умолчанию приложения ClickOnce, подписываемые с помощью автосертификатов и разворачиваемые через Интернет, не могут использовать развертывание доверенных приложений.

  • Напротив, если сертификат получают из центра сертификации — такого как поставщик сертификатов или отдел предприятия — сертификат обеспечивает большую безопасность для пользователей. Такой сертификат не только идентифицирует издателя подписанного сертификата, но и проверяет это удостоверение путем сверки с центром сертификации, подписавшим сертификат. Если центр сертификации не является корневым, технология Authenticode позволяет вернуться по цепочке к корневому центру сертификации, чтобы убедиться в полномочиях центра сертификации на выпуск сертификатов. Всегда, когда это возможно, следует использовать сертификат, выпущенный центром безопасности, в целях обеспечения большей безопасности.

Дополнительные сведения о создании автосертификатов см. в статье Средство создания сертификатов (Makecert.exe).

Предотвращение непреднамеренного пропуска срока действия с помощью штампов времени

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

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

И Visual Studio, и средства SDK (пакет средств разработки программного обеспечения) для Windows для создания развертываний ClickOnce, Mage.exe и MageUI.Exe, поддерживают использование штампов времени.

Хранение сертификатов

  • Сертификаты можно хранить в файловой системе как PFX-файл либо можно хранить их внутри контейнера ключа. Пользователь в домене Windows может иметь несколько контейнеров ключей. По умолчанию MakeCert.exe хранит сертификаты в персональном контейнере ключа, если не указать, что вместо этого сертификат должен храниться как PFX-файл. Mage.exe и MageUI.exe, являющиеся средствами SDK для Windows для создания развертываний ClickOnce, позволяют использовать сертификаты, сохраненные согласно любому из методов.

См. также

Основные понятия

Обзор развертывания ClickOnce

Развертывание и безопасность ClickOnce

Общие сведения о развертывании доверенных приложений

Ссылки

Средство создания и редактирования манифеста (Mage.exe)