Подписание посредством AuthenticodeПолучение и установка сертификата
Первый шаг заключается в получении сертификата для подписания кода в центре сертификации (как описано во врезке ниже). Затем с сертификатом можно работать как с файлом, защищенным с помощью пароля, или загрузить его в хранилище сертификатов на компьютере. Преимущество второго варианта в том, что при подписании не требуется указывать пароль. Это позволяет избавиться от явного помещения пароля в сценарии построения сборок или пакетные файлы.
Где можно получить сертификат для подписания кода
В Windows предварительно загружается несколько корневых центров сертификации. В их число входят (американские центры): Comodo ($180), GlobalSign ($229), thawte ($299) и VeriSign ($499).
Существует также посредник Ksoftware (http: //www. ksoftware.net), который в настоящее время предлагает сертификат для подписания кода от Comodo за $95 в год. Сертификаты Authenticode, выданные Ksoftware, Comodo и GlobalSign, рекламируются как менее ограничивающие в том, что с их помощью можно также подписывать программы, не предназначенные для Microsoft. Помимо этого, продукты от всех поставщиков функционально эквивалентны.
Обратите внимание, что сертификат для SSL вообще не может применяться для подписания с помощью Authenticode (несмотря на использование той же самой инфраструктуры Х.509). Частично это объясняется тем, что сертификат для SSL касается доказательства прав собственности на домен, а сертификат Authenticode связан с доказательством личности. Поэтому если же вам нужна проверка домена и/или компании, то регистрация ssl сертификата производиться у специализированных компаний.
Если вы планируете также подписать свою сборку с помощью строгого имени (что настоятельно рекомендуется), то должны делать это до подписания посредством Authenticode. Причина в том, что среде CLR известно о подписях Authenticode, но не наоборот. Поэтому если вы подпишете свою сборку с помощью строгого имени после ее подписания с применением Authenticode, эта система будет рассматривать добавление средой CLR строгого имени как неавторизованную модификацию и считать, что сборка подделана.
Подписание с помощью signtool.exe
Подписывать свои программы с применением системы Authenticode можно с помощью утилиты signtool, входящей в состав Visual Studio. Когда она запускается с флагом signwizard, эта утилита отображает пользовательский интерфейс; в противном случае командная строка для ее запуска выглядит следующим образом:
signtool sign /shal (отпечаток) имя_файла
Отпечаток — это то, что можно взять из хранилища сертификатов на компьютере. (Если сертификат вместо этого находится в файле, понадобится указать имя файла в переключателе / f и пароль в переключателе /р.)
Например:
signtool sign /shal ff813c473dc93aaca4bac681df472b037fa220b3 LINQPad.exe Можно также задать описание и URL продукта в переключателях /d и /du: . . . /d LINQPad /du http://www.linqpad.net
В большинстве случаев будет также указываться сервер отметок времени.
|
|