2008-11-30 5 views
41

Я рассматриваю возможность покупки сертификата подписи кода от VeriSign или Thawte для подписания XBAP. Мой вопрос таков: что происходит, когда истекает срок действия этого сертификата? $ 299 и $ 599 - довольно высокие цены за 1 год/2-летние сертификаты, и если мне придется доставлять новые подписанные сборки моим клиентам, когда мой сертификат истекает, тогда я просто займусь проблемой создания собственного сертификата для Теперь.Что происходит, когда срок действия сертификата подписи кода истекает?

Что мне не нравится в создании моего собственного сертификата, является трудностью распространения его на все клиентские компьютеры, которые будут использовать мой XBAP. Мое приложение будет использоваться только в локальной сети, поэтому я полагаю, что всегда мог использовать установщик Windows для установки моего домашнего варочного сертификата (хотя я не уверен, как это сделать - у кого есть идеи?).

Это не было бы проблемой, если бы я поставлял приложение частичного доверия, но моему приложению нужны разрешения в Интернете, поскольку он будет разговаривать с службами WCF, поэтому он находится в этой серой области между частичным доверием и полным доверием , и без сертификата я получаю это сообщение o Trust Trust Not Granted, когда я пытаюсь загрузить мой XBAP.

Любые идеи?

+1

Существуют и другие поставщики сертификатов, которые являются МНОГО дешевле. – 2008-11-30 22:25:42

+0

Спасибо, Тодд, на кого я могу взглянуть? – 2008-12-01 00:49:18

+2

www.CACert.org - это некоммерческая организация, предлагающая сертификаты подписи кода для доверенных лиц. – cjakeman 2009-05-02 19:06:38

ответ

8

Что нужно делать, если вы планируете использовать его в закрытой (локальной сети), - это настроить собственный CA. Версии Windows Server включают в себя простой в использовании Центр сертификации, но еще проще настроить минимальный ЦС с помощью demoCA, предоставленный openssl, который состоит из нескольких сценариев. Вы можете запустить openssl demoCA в Cygwin на Windows или natively. Этот demoCA состоит из нескольких сценариев perl/bash, которые вызывают команды openssl для генерации запросов, подписывают сертификаты/crls и т. Д.

Когда у вас есть собственный СА, то, что вам нужно установить, является вашим корневым сертификатом CA, поэтому больше не будет чтобы обновить сертификаты пользователей, поскольку сертификат CA останется прежним. Обычно сертификат CA должен длиться 5-10 лет, но вы можете настроить столько, сколько хотите (помните, что это ваш собственный CA).

Сертификат CA будет установлен на каждом клиентском компьютере. Если ваше приложение доверяет безопасности системы Windows, оно должно быть установлено в хранилище сертификатов IExplorer. Если вы используете Java-приложение, вы должны распространять сертификат ЦС в хранилище ключей Java, которое вы используете.

9

Если вы хотите добавить отметку времени при подписании двоичных файлов, вам не придется повторно подписывать их, когда срок действия сертификата истекает. Просто добавьте «/ t http://timestamp.verisign.com/scripts/timstamp.dll» в командную строку signtool, и цифровая подпись всегда будет отмечена как действительная, если сертификат не будет отозван и CA доверен.

Сертификаты подписи кода причины настолько дороги, что кто-то должен убедиться, что вы являетесь тем, кем вы себя называете. В моем случае они подтвердили адрес и номер телефона и позвонили мне. Сертификаты Comodo выглядят несколько дешевле.

58

Если вы отметьте свой код во время действия сертификата, эффект заключается в том, что ваши сертификаты с истекшим сроком годности являются хорошими.

От Thawte Code Signing Certificate FAQs:

Как долго я могу использовать код сертификата для подписи для?

  • Свидетельства о подписании кода действительны в течение 1 или 2 лет в зависимости от того, какой жизненный цикл вы выберете при покупке сертификата.Обратите внимание: для Microsoft® Authenticode® (многоцелевой) вы также должны указывать отметку своего подписанного кода, чтобы избежать истечения срока действия вашего кода, когда истекает срок действия вашего сертификата.

Действительно ли срок действия кода действителен после истечения срока действия сертификата подписи кода?

  • Microsoft® Authenticode® (многоцелевой) позволяет маркировать подписанный код. Timestamping гарантирует, что код не истечет, когда срок действия сертификата истечет, потому что браузер проверяет метку времени. Служба timestamping предоставляется любезностью VeriSign. Если вы используете службу timestamping при подписании кода, хеш вашего кода отправляется на сервер VeriSign для записи временной отметки для вашего кода. Программное обеспечение пользователя может различать код, подписанный с истекшим сертификатом, которому не следует доверять, и код, который был подписан с сертификатом, который был действителен на момент подписания кода, но который впоследствии истек.
22

упускает сертификаты с WTD_LIFETIME_SIGNING_FLAG набором: Это означает, что (несмотря на то, что вы возражаете предположить из названия), что программа подписано с сертификатом является недействительным после истечения срока действия сертификата, даже если программа не изменилось , и сертификат был действителен, когда он был подписан.

Это также влияет на обновления, в том случае, если клиент проверяет флажок, чтобы доверять всем программам вашей компании, если ваша программа обновления не подписана с тем же сертификатом (или истекает срок действия этого сертификата), тогда доверие терпит неудачу.

От: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx


Timestamp обработка с Lifetime подписывания семантикой

Приложение или сертификационные органы, которые не хотят датируемые подписи, чтобы успешно проверить на неопределенный период времени, есть два варианта:

• Установите идентификатор OID для жизни в сертификате подписи издателя.

Если сертификат подписывания издателя содержит идентификатор OID для жизни, в дополнение к OID подписи кода PKIX, подпись становится недействительной, когда срок действия сертификата подписывания издателя истекает, даже если подпись имеет временную метку. Срок службы подписавшего OID определяется следующим образом:

szOID_KP_LIFETIME_SIGNING 1.3.6.1.4.1.311.10.3.13

• Установите WTD_LIFETIME_SIGNING_FLAG в структуре WINTRUST_DATA при вызове WinVerifyTrust.

Если вызывающий абонент WinVerifyTrust устанавливает WTD_LIFETIME_SIGNING_FLAG в структуре WINTRUST_DATA и срок действия сертификата подписывания издателя истек, WinVerifyTrust сообщает подпись как недопустимую, даже если подпись имеет временную метку.

Если издатель аннулирует сертификат подписи кода, который содержит всю жизнь подписавшего OID или вызывающего абонента WinVerifyTrust устанавливает WTD_LIFETIME_SIGNING_FLAG в структуре WINTRUST_DATA, WinVerifyTrust сообщает подпись действительными, если оба из следующих условий:

• подпись была отложена до даты отзыва.

• Сертификат подписи все еще находится в пределах срока его действия.По истечении срока действия подпись становится недействительной.


Для примера: https://forum.startcom.org/viewtopic.php?f=15&t=2215&p=6827&hilit=lifetime+signing#p6827

Это серьезная проблема с сертификатами StartSSL. Меня не удивляет, что в сертификате есть ограничения, которые стоят так мало, но хоронить это ограничение в мелкой печати или на старом форуме, вместо того, чтобы ясно указывать в описании продукта, - это плохой бизнес. Они могут исправить это в будущем, а другие могут иметь или не иметь того же ограничения, поэтому электронное письмо для проверки до того, как вы потратите, может быть разумным.

Угадайте, кто не знал, чтобы спросить? LOL ... ну ладно, живи и учись.

-2

Сертификаты подписания кода не являются «управляемыми», что означает, что они не обновляют себя ... возможно, вам нужно приобрести новый, когда он истекает.

Вы можете настроить Центр сертификации (CA) - придерживаться CA на основе Windows, если вы являетесь магазином только для Windows, но в противном случае я бы рекомендовал Linux с чем-то вроде DogTag Certificate System.

Обратите внимание, что если вы создадите свой собственный ЦС, вам нужно будет экспортировать общедоступный сертификат CA и установить его (чтобы он был доверен как корневой ЦС) на любом сервере, который будет запускать код/​​скрипты, подписанные сертификатом подписи кода выданный этим ЦС. Это намного дешевле (бесплатно?) По сравнению с оплатой сертификата каждые X лет - не говоря уже о других сертификатах, которые вы могли бы выпустить по разным причинам/использованию!

-2

Вы должны избегать отметки времени процесса подписи или отметки времени, когда это соответствует действительности сертификата. Такие инструменты, как Sign PE и другие позволяют вам контролировать эти параметры

Смежные вопросы