Как отличить метку времени Authenticode от метки времени, соответствующей RFC 3161?

При подписании кода с помощью Microsoft Signtool есть несколько разных опций при указании URL-адреса временной метки, / t и / тр.

/ t может указывать URL-адрес временной метки Authenticode, а / tr предполагается использовать с сервером временных меток, совместимым с RFC 3161.

Есть ли способ проанализировать метку времени в файле, чтобы выяснить, использовалось ли / t или / tr? Если это Authenticode или RFC 3161?

3
задан 11 November 2015 в 19:00
2 ответа

Да. Программа signtool.exe от Microsoft распечатает сводку цифровых подписей в ранее подписанном файле, включая стандарт, использованный для создания метки времени, при вызове со следующим синтаксисом:

signtool verify / all / pa Имя файла

Для иллюстрации, примените к одному из ваших файлов процедуру Symantec для применения двойной подписи . В результате в вашем файле будут две цифровые подписи, каждая с соответствующей отметкой времени. Одна временная метка будет применена с использованием Authenticode, а другая - с RFC 3161.

Обратите внимание, что процедура Symantec предлагает проверить результат с помощью просмотр вкладки «Цифровые подписи» в свойствах файла с помощью ПКМ. На этой вкладке отображается значение отметки времени (дата и время), но не стандарт timestamp.

После завершения процедуры просмотрите сводку цифровых подписей с помощью команды signtool verify, как предложено выше. Стандарт отметки времени будет показан в поле «Отметка времени». Например, вот что вы увидите, если дважды подпишите файл с именем MyDigitallySigned.dll :

C:\Users\myusername>signtool verify /all /pa MyDigitallySigned.dll
File: MyDigitallySigned.dll
Index==Algorithm==Timestamp====
========================================
0      sha1       Authenticode
1      sha256     RFC3161
3
ответ дан 3 December 2019 в 06:03

Подробности реализации здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/bb931395 (v = vs.85) .aspx

Короче говоря, подписи стандартизированы. Единственное, чем отличаются / t и / tr , это протокол, используемый для получения подписи временной метки. Signtool выполняет свои собственные функции с подписью в обоих случаях: копирует ее в качестве контрподписи в сообщение PKCS # 7, которое является подписью Authenticode.

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

1
ответ дан 3 December 2019 в 06:03

Теги

Похожие вопросы