2013-09-24 4 views
1

Я получаю, что StrongName не мешает отражению - это задача обфускатора. Но помимо создания довольно уникальных имен, какова криптографическая цель или защита использования StrongNames?Защита, предлагаемая с помощью сборки StrongName?

Предположим

  1. MyAssembly имеет internal классы и методы, которые подвергаются воздействию через [assembly: InternalsVisibleTo("MyAssemblyTest, PublicKey=RealRSAPublicKey")] к

  2. MyAssemblyTest, сборки тестирования.

Обе эти сборки имеют StrongNames, возможно, используя те же пары ключей RSA.

Что мешает кто-то из

  1. Зачистка подпись на MyAssembly
  2. Создание поддельный/фиктивный RSA пары ключей
  3. Переоборудование атрибут сборки в [assembly: InternalsVisibleTo("MyAssemblyTest, PublicKey=FakeRSAPublicKey")]
  4. Re подписи MyAssembly с их собственной подделкой/фиктивная пара ключей RSA
  5. Потребление внутренних частей внутри их собственной сборки, скажем MaliciousAssembly

Я предполагаю, что я не совсем понимаю, какие реальные обязанности Strongnaming ... были бы ценными для понимания.

ответ

0

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

Рассмотрите эту ситуацию: вы делаете сборку TransmitSecret.dll, которую вы предоставляете своим клиентам, чтобы они могли безопасно общаться с вашим сервером. Если TransmitSecret.dll не подписан, злонамеренные пользователи смогут написать собственный модуль, который представляет тот же интерфейс, что и ваш, обернуть ваш код в свой собственный вредоносный код, перехватить все «безопасные» передачи вашего клиента и отправить копию на их собственный сервер. Они смогут сделать это, не имея доступа к исходному коду ваших клиентов, просто заменив ваш dll своим.

Если TransmitSecret.dll подписан, однако, и ваши клиенты код связан с ней, трюком с заменой сборки не будет работать: когда ваши клиенты код будет пытаться загрузками TransmitSecret.dll, .NET заметят изменения, и остановить запуск программы.

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

  • Нет связанных вопросов^_^