2012-08-07 2 views
0

Из того, что я понимаю о цифровых подписях, когда код подписывает exe, «подписавший» изменяет сам PE. Я заметил, что он добавляет содержимое сертификата в конец PE, а также (очевидно) добавляет некоторую ссылку на заголовки.Дублирование цифровых подписей?

Мой вопрос: насколько это безопасно? Разве кто-нибудь, кто мог бы перепроектировать исполняемый файл, не смог бы подделать это на свой собственный исполняемый файл, тем самым подделав цифровую подпись?

+0

Нет, поскольку цифровая подпись также содержит хеш того, что подписывается. Если вы меняете контент, хэш, который изначально использовался, не соответствует. – vcsjones

+0

Подписание кода - это открытый/закрытый ключ. обратное проектирование, исполняемый файл ничего не получает, если у вас также нет закрытого ключа, который первоначально подписал exe –

+0

@vcsjones: имеет смысл, но если я могу контролировать хэш, действительно ли это имеет значение? – asudhak

ответ

7

Подписание кода является операцией открытого и закрытого ключей. Операция подписи вычисляет хэш файла .exe (минус биты, где хранится подпись), а затем шифрует хэш личным ключом подписывающего лица.

При проверке на стороне клиента клиент выполнит повторный расчет хэша и расшифрует сохраненную подпись с помощью открытого ключа. Если эти два хэша совпадают, тогда exe не был изменен.

Единственные биты файла зашифрованы - это подпись - все остальные хранятся в ясности. Ничто не мешает вам разрывать exe и набивать его (или его части) в другой .exe.

Подписание не существует, чтобы предотвратить кражу - это там, чтобы обнаружить фальсификацию.

+0

На стороне примечания, я замечаю, что цифровые подписи в исполняемых файлах ничего не мешают. Похоже, он просто используется для проверки того, был ли изменен исполняемый файл. Возможно, я ошибаюсь, или мои настройки, возможно, были настроены каким-то образом, но окна даже не вызывают ошибки, заявляя, что цифровая подпись недействительна. Можно узнать, действительна ли цифровая подпись или нет, только просмотрев детали подписи. Правильно ли я с этим? – asudhak

Смежные вопросы