Strong name
Strong name (в переводе с англ. — «Строгое имя») — подпись (маркер открытого ключа) сборки в GAC. Во время подписи сборки вычисляется открытый криптографический ключ и закрытый криптографический ключ, который находится только у производителя данной сборки. Strong name образуется при помощи хеширования закрытого криптографического ключа.
Роль strong name
[править | править код]Strong name необходим исключительно для определения сборки как уникальной в GAC. Также существует заблуждение, что strong name предоставляет сборке полную защиту от модификации. Эту защиту можно обойти.
Обход защиты strong name
[править | править код]При изменении содержания сборки, изменяется и strong name, поэтому программа, использующая данную сборку, при её модификации, откажется работать с ней. Но существует способ обойти такую защиту. Для обхода необходимо удалить strong name сборки и использующего её приложения.
Подпись сборок Microsoft
[править | править код]Большинство сборок, выпускаемых компанией Microsoft, подписаны одним и тем же strong name. Так происходит, потому что все эти сборки подписаны с помощью одного и того же закрытого ключа, соответственно их strong name генерируется с помощью хеширования одного и того же закрытого криптографического ключа.