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