Я получаю, что StrongName не мешает отражению - это задача обфускатора. Но помимо создания довольно уникальных имен, какова криптографическая цель или защита использования StrongNames?Защита, предлагаемая с помощью сборки StrongName?
Предположим
MyAssembly
имеетinternal
классы и методы, которые подвергаются воздействию через[assembly: InternalsVisibleTo("MyAssemblyTest, PublicKey=RealRSAPublicKey")]
кMyAssemblyTest
, сборки тестирования.
Обе эти сборки имеют StrongNames, возможно, используя те же пары ключей RSA.
Что мешает кто-то из
- Зачистка подпись на
MyAssembly
- Создание поддельный/фиктивный RSA пары ключей
- Переоборудование атрибут сборки в
[assembly: InternalsVisibleTo("MyAssemblyTest, PublicKey=FakeRSAPublicKey")]
- Re подписи
MyAssembly
с их собственной подделкой/фиктивная пара ключей RSA - Потребление внутренних частей внутри их собственной сборки, скажем
MaliciousAssembly
Я предполагаю, что я не совсем понимаю, какие реальные обязанности Strongnaming ... были бы ценными для понимания.