Как проверить, что отметка времени выполнена правильно для подписанного кода
Я только что получил свой сертификат подписи кода от StartSSL и пытаюсь подписать наш установщик.
Процесс подписания идет хорошо, и я получаю exe-программу установки, что Windows больше не жалуется на то, что она от неизвестного издателя. Это замечательно!
Однако я попытался убедиться, что метка времени также работает так, как было объявлено, поэтому я перенес дату своего ПК на 2012 год, после даты истечения срока действия сертификата для подписи кода.
Предположительно, это не должно иметь никакого значения, но когда я запускаю ту же самую программу установки exe, я получаю то же самое неприятное предупреждение "неизвестный издатель".
Глядя на свойства exe-файла на вкладке "Цифровые подписи", я определенно вижу, что метка времени показывает сегодня (2010 г.), но, похоже, это совсем не помогает.
Google не дал мне ничего, кроме того, что если вы видите дату в поле Timestamp, то все в порядке. Я не могу поверить в это, мой компьютер с продвинутой датой жалуется, что это не в порядке.
Кто-нибудь знает, работает ли эта концепция отметок времени и как убедиться, что я правильно подписываю исполняемый файл?
Благодарю.
3 ответа
Сертификаты для подписи кода, выданные StartSSL, содержат атрибут расширенного использования ключа (EKU) "Lifetime Signing" (1.3.6.1.4.1.311.10.3.13), который приводит к истечению срока подписи файла после истечения срока действия сертификата независимо от отметок времени.
Извините, у меня нет ответа для вас, но похоже, что вы не должны видеть поведение, которое вы, согласно Comodo Instant SSL FAQ.
Действителен ли код с меткой времени после истечения срока действия сертификата подписи кода?
Отметка времени гарантирует, что срок действия кода не истечет после истечения срока действия сертификата. Если ваш код имеет временную метку, цифровая подпись действительна, даже если срок действия сертификата истек. Новый сертификат необходим, только если вы хотите подписать дополнительный код. Если вы не использовали опцию отметки времени во время подписания, вы должны заново подписать свой код и отправить его своим клиентам.
Comodo, кажется, авторитетен в этом вопросе, поэтому я склонен верить в то, что они говорят.
Я с нетерпением жду ответа на этот вопрос сам, потому что я очень хотел бы купить сертификат подписи кода от StartSSL самостоятельно. Я заметил на их сайте, что сертификаты кода являются "бета-версиями", так что, возможно, это то, что им нужно, чтобы отработать изломы.
Существует разница между "временем подписания" и отметкой времени "подписывающего лица". Время подписания - это время, когда вы фактически подписали код, когда отметка времени получена от "подписывающего лица" (сервера сертификатов).
Подписание с отметкой времени издателя сертификата фактически гарантирует, что ваша подпись все еще действительна, даже если ваш сертификат уже истек.