Правильный способ цифровой подписи приложения, ссылаясь на сборки

У меня есть приложение, которое имеет 1 ссылочную сборку (test.exe, test.dll)

Я хочу, чтобы при запуске test.exe имя издателя отображалось как «TestCompany».

Для этого я подписал его цифровой подписью, и она делает то, что я хочу. И если я изменю один байт test.exe, имя издателя будет «Неизвестно». Что хорошо.

Но если я изменю test.dll, приложение запустится, так как ничего не произошло, и отображает имя издателя как «TestCompany». Что не хорошо для меня.

Поэтому я добавил строгое имя в test.dll и добавил <bypassTrustedAppStrongNames enabled="false" /> в app.config.

1111 Опять нет разницы. Поэтому я снова искал и обнаружил, что bypassTrustedAppStrongNames проверяет, имеет ли сборка строгое имя или нет. Не проверка. Что опять нехорошо для меня.

Что я хочу, так это защитить пользователя, а не мое приложение. Если пользователь запускает мое приложение и говорит, что оно от меня, оно должно быть от меня, как и каждый байт. Если приложение было изменено хотя бы одним байтом, оно должно уведомить пользователя, а не от меня. Это то, что цифровой знак должен делать вместе со строгим именем, но все они пока не так хороши. Или я что-то упустил?

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

PS: Target .net Framework является 2.0

21
задан harold 7 December 2014 в 09:55
поделиться