.NET Signed Assembly - как защититься от того, чтобы кто-то удалил подпись

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


person imak    schedule 06.10.2010    source источник


Ответы (2)


Вы не можете помешать кому-либо удалить подпись.

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

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

Связанный:

person Mark Byers    schedule 06.10.2010

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

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

person Eugene Mayevski 'Callback    schedule 06.10.2010