Можно ли / как избежать подписанной временной метки SHA-1 при подписании кода?

Мы только что перешли с SHA-1 на сертификат подписи кода SHA-2. (В качестве справочной информации мы подписываем файлы .exe и .xap в Windows с помощью signtool.exe, используя сертификаты подписи кода COMODO.) Мы делаем это с использованием сертифицированной отметки времени, чтобы убедиться, что Windows продолжает доверять подписи кода после сертификата подписи кода. истекает.

Теперь я заметил, что сертификат временной метки по-прежнему является сертификатом SHA-1 при использовании http://timestamp.comodoca.com/authenticode. (Подробности: это df946a5 ... с субъектом CN = COMODO Time Stamping Signer, O = COMODO CA Limited, L = Salford, S = Greater Manchester, C = GB '.)

(В Windows этот сертификат можно увидеть, взяв подписанный .exe, затем в диалоговом окне свойств проводника перейдите на вкладку Цифровые подписи, выберите подпись и нажмите «Подробности», затем в диалоговом окне «Сведения о цифровой подписи» нажмите встречную подпись и нажмите «Подробнее», затем во втором диалоговом окне «Сведения о цифровой подписи» нажмите «Просмотр сертификата». Сертификат является сертификатом SHA-1, если его «алгоритм хеширования подписи» - «sha1».)

Будет ли это проблемой? Другими словами, после истечения срока действия нашего текущего сертификата подписи кода и после того, как Microsoft Windows будет рассматривать SHA-1 как неработающий алгоритм (это самое позднее в 2020 году), будут ли наши текущим подписям все еще можно доверять? Или Windows скажет: «Отметка времени находится в пределах срока действия сертификата подписи кода, но отметка времени была подписана сертификатом SHA-1, поэтому я не буду доверять отметке времени и, следовательно, не буду доверять этой подписи»?

Есть ли еще одна услуга, которую мы можем / должны использовать? (Не http://timestamp.verisign.com/scripts/timstamp.dll от Verisign, поскольку они также все еще используют сертификат с отметкой времени SHA-1, а именно 6543992 ...)


person MarnixKlooster ReinstateMonica    schedule 03.06.2015    source источник
comment
Пытался обратиться в службу поддержки comodo?   -  person MrTux    schedule 10.10.2015
comment
Добавьте флаг / td SHA256 при вызове SignTool.exe, как описано ниже. Это работает с сервером временных меток Comodo.   -  person Joe Albahari    schedule 26.01.2016
comment
См. Также stackoverflow.com/q/25052925   -  person emkey08    schedule 08.01.2021


Ответы (2)


С 01.01.2017 вы больше не можете использовать SHA-1 в Windows 7 и более поздних версиях (если дата указана после 01.01.2016).

Эта статья описывает, как получить сертификат отметки времени SHA-256, используя URL отметки времени http://timestamp.globalsign.com/?signature=sha2. В качестве альтернативы см. этот список серверов отметок времени, которые вы также можете использовать.

Также важен флаг signtool /td. (и плохо документировано).

Подписываемся так:

signtool sign /fd SHA256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 /a filename.exe

приводит к исполняемому файлу с сертификатом подписи кода и сертификатом отметки времени с алгоритмом хеширования подписи SHA-256.

person Kyle Alons    schedule 19.10.2015
comment
Флаг / td важен. Он также работает с сервером временных меток Comodo. - person Joe Albahari; 26.01.2016
comment
Похоже, Comodo наконец-то исправил свой сервер. netez.com/bbs/viewtopic.php?t=11065#p69307 - person Kyle Alons; 26.01.2016
comment
он работал безупречно без / td SHA256 до прошлого месяца .. теперь серверы отметок времени приводят к ошибке SignerTimeStampEx2 () без / td SHA256 - person rfcdejong; 11.06.2020

Вы можете использовать свой сертификат SHA-2 для двойной подписи кода, чтобы он прошел проверку в XPsp3 и Vista (которые не понимают SHA-2), а также в более поздних ОС (Win 7, 8, 10).

Это двухэтапный процесс, который сначала подписывается с помощью SHA-1, а затем добавляет подпись SHA-256. Хотя это не является явным, при первом запуске signtool по умолчанию используется подпись SHA-1. Во втором запуске вы запрашиваете алгоритм дайджеста sha256 с параметром / fd. Серверы времени в этом примере принадлежат Comodo.

signtool sign /f cert.pfx /p your_cert_password /t "http://timestamp.comodoca.com" /v file_to_sign.exe

signtool sign /f cert.pfx /p your_cert_pass /fd sha256 /tr "http://timestamp.comodoca.com/?td=sha256" /td sha 256 /as /v file_to_sign.exe

Вам необходимо использовать версию signtool, поддерживающую двойную подпись (параметр / as). Я считаю, что это Windows SDK версии 8.1 или выше.

Когда вы это сделаете, проверьте свойства безопасности исполняемого файла, и вы должны увидеть подписи SHA-1 и SHA-256 (в более поздних ОС), но только подпись SHA-1 в XP / VISTA.

Обратите внимание, что у других серверов времени есть другие параметры для определения алгоритма дайджеста. Ваш выдающий ЦС должен иметь возможность предоставлять соответствующие URL-адреса.

person EBlake    schedule 11.10.2016