Документация для подписи аутентичного кода
- Формат подписи переносимого исполняемого кода Windows Authenticode (
.docx
? )
говорит, что структура PKCS # 7 SignedData ...
... содержит сертификат подписавшего и любые промежуточные сертификаты, но обычно не содержит корневого сертификата.
Однако, как я обнаружил в некоторой части «DOH!»В данный момент signtool.exe должен иметь возможность найти сертификаты для их включения.
Конечный сертификат предоставляется в командной строке.Но идентификация остальных сертификатов в цепочке не включает в себя, где найти сертификаты.Signtool проверяет хранилище системных сертификатов, поэтому, если они там находятся, они добавляются в двоичный файл.Если они не найдены, signtool только помещает листовой сертификат в подписанный двоичный файл.
Обратите внимание, что если промежуточные сертификаты не находятся в подписанном двоичном файле, но находятся в системном хранилище сертификатов системы, проверяющей подпись,двоичный файл все равно пройдет проверку, потому что цепочка может быть разрешена.
Также обратите внимание, что исключение корня из подписанного двоичного файла имеет смысл, учитывая, что корень должен независимо находиться в системе, проверяя подпись для него.быть доверенным, так что все равно будет проигнорировано.(Единственным реальным преимуществом включения корня в двоичный файл является то, что кто-то хочет импортировать корневой сертификат вручную, что почти всегда является очень плохой идеей.)