Я читал соответствующую статью в MSDN, Strong-Named Assemblies и связанный с ней вопрос о переполнении стека, Проверка сборки для сильного имени.
- В какой степени может быть проверена сильная именованная сборка, чтобы избежать подделки?
- Можно ли использовать сильное имя для проверки автора сборки?
Первый вопрос возникает после прочтения статьи CSharp411 .NET Assembly FAQ - Часть 3 - Сильные имена и подписи, в котором упоминается это, среди другие проблемы использования прочных имен:
Невозможно остановить полную замену.. Сильные имена не могут помешать хакеру удалить сильную подпись подписи, злонамеренно модифицировать вашу сборку, повторно подписывать ее своим ключом, а затем передавать свою сборку как ваш ".
Второй вопрос предполагает найти различия между сильными именами и другими схемами подписания, например, Authenticode. В той же статье MSDN упоминаются ранние состояния:
"Обратите внимание, однако, что сильные имена сами по себе не подразумевают такой уровень доверия, как предоставленный, например, цифровой подписью и подтверждающим сертификатом".
Я пытаюсь использовать сильное имя для гораздо большего, чем оно было создано? Было ли сильное имя создано только для того, чтобы избежать конфликтов имен или нового типа "GAC DLL Hell"?