Вопросы по подписанию кода SHA-2

1132
Vlastimil

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

Я купил стандартную кодовую подпись у 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, мне это нужно?

4

1 ответ на вопрос

7
grawity

Учитывая, что сертификат был выдан 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 и старше здесь, так как, хорошо.)

Таким образом, в случае, если я хочу использовать временную метку и только с sha256, это подойдет, предположив, что я импортировал сертификат в мой локальный репозиторий: `signtool sign / fd SHA256 / a / tr http://time.certum.pl" Test. exe "`? Vlastimil 7 лет назад 0
Другое преимущество меток времени заключается в том, что подписанная проверка будет проходить даже после истечения срока действия вашего сертификата. Так что, если вы отметите время сейчас, ваше приложение будет работать через 4 года Matthew Steeples 7 лет назад 1