4

Прежде всего, это мой самый первый опыт подписания кода.

Я купил стандартную кодовую подпись у Certum на 3 года.

Он основан на SHA-2 :

Защищено функцией SHA-2

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

Вопросы:

  1. Учитывая, что сертификат выдан 10. 10. 2016 г., т. Е. После 1. 1. 2016, это как-то влияет на поведение подписи? Я спрашиваю об этом от имени чтения об устаревании SHA-1, например:

    1 января 2016 г. - продукты Microsoft, включая Internet Explorer и Chrome, перестанут доверять сертификатам подписи кода SHA-1 (источник)

  2. Должен ли я также отметку времени? Для чего это хорошо? Есть ли недостатки у отметки времени? Я нашел это, которое не совсем проясняет ситуацию:

    Отметка времени должна использоваться, если предполагается использовать подпись (для подтверждения подлинности автора документа или автора данных) в течение длительного периода времени, то есть дольше, чем один или несколько дней. (Источник)

  3. Предположим, я бы прекратил поддержку XP и Vista, будет ли подпись кода SHA-2 работать должным образом в Windows 7? Я прочитал на DigiCert, что поддержка подписи кода SHA-2 в Windows 7 является частичной:

    Подробная совместимость с ОС: частичная Windows 7 (источник)

  4. Существует хаос вокруг перекрестной подписи SHA-2 (в частности, SHA-256) и SHA-1. Предположим, как я уже сказал, я больше не буду поддерживать WinXP и Vista, мне это нужно?

1 ответ1

7

Учитывая, что сертификат выдан 10. 10. 2016 г., т. Е. После 1. 1. 2016, это как-то влияет на поведение подписи? Я спрашиваю об этом от имени чтения об устаревании SHA-1, например:

Нет не будет

Должен ли я также отметку времени? Для чего это хорошо? Есть ли недостатки у отметки времени?

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

Таким образом, основное использование меток времени состоит в том, чтобы доказать, что подпись была сделана до истечения срока действия сертификата или, что более важно, до его отзыва.

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

В устаревшем SHA-1 в Windows Authenticode также используется метка времени, так что старые программы, подписанные с использованием SHA-1, будут по-прежнему показываться как правильно подписанные, и в то же время запрещать кому-либо после отключения от «обратного датирования» новые подписи.

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

Предположим, я бы прекратил поддержку XP и Vista, будет ли подпись кода SHA-2 работать должным образом в Windows 7?

Существует хаос вокруг перекрестной подписи SHA-2 (в частности, SHA-256) и SHA-1. Предположим, как я уже сказал, я больше не буду поддерживать WinXP и Vista, мне это нужно?

Прежде всего обратите внимание, что SHA-1/SHA-2 задействован в нескольких местах - он используется отдельно, когда выдающий центр сертификации подписывает ваш сертификат, и когда вы подписываете фактический исполняемый файл (и даже когда контрольный орган подписывает вашу подпись). Другими словами, существует цепочка подписей, и у каждого из них есть свой хэш.

Также возможно, что подписи на сертификатах проверяются кодом, отличным от подписей на исполняемых файлах, и один может поддерживать SHA-2, а другой - нет.

Таким образом, в действительности Windows XP SP3 полностью поддерживает сертификаты, подписанные с использованием SHA-2, а просто не поддерживает исполняемые файлы, подписанные с использованием SHA-2. Это упоминается в КБ 968730, также в этом посте TechNet.

Однако в Authenticode можно добавить несколько подписей к одному и тому же исполняемому файлу (так называемая двойная подпись или вложенная подпись), поэтому вы можете иметь подпись на основе SHA-1 для более старых систем и подпись на основе SHA-2 для более новых.

С помощью osslsigncode вы можете сначала сделать подпись SHA-1 с помощью -h sha1 , а затем запустить ее снова с -nest -h sha256 чтобы добавить подпись SHA-2. То же самое работает со signtool sign /as /fd sha256 /td sha256 (добавить подпись). Например, ночные сборки PuTTY имеют двойную подпись и работают на всех версиях Windows, несмотря на использование сертификата с подписью SHA-256.

(Я не считаю XP SP2 и старше здесь, так как, хорошо.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .