Позднее связывание .NET 4.0:Обеспечить подлинность сборки?
-
04-10-2019 - |
Вопрос
Мне нужно разработать приложение .NET C#, поддерживающее плагины.Я нашел много информации в Интернете, и это не кажется таким уж сложным.
У меня просто есть спецификация, что сборки модулей должен быть проверены на уровне сборки.Когда происходит позднее связывание и загружается сборка, ведущее приложение должно быть абсолютно уверено в том, что:
- Ассамблея не изменилась.
- Ассамблея была действительно поставлена компания.
Я читал, что можно подписать сборку ключом, но насколько я понял, это будет лишь удостоверять, что сборка не менялась.
Что необходимо сделать, чтобы быть уверенным в подлинности Ассамблей?
Любая помощь будет принята с благодарностью.
Решение
Как я уже сказал в комментарии, об этом уже спрашивали: Можно ли использовать строгое имя сборки для проверки автора сборки?
По этой ссылке приведен пример проверки открытого ключа по известному набору открытых ключей: http://blogs.msdn.com/b/shawnfa/archive/2004/06/07/150378.aspx но он довольно старый, и я не знаю, произошли ли с тех пор существенные изменения.
РЕДАКТИРОВАТЬ:Я вижу, что ответ SO предлагает ту же технику, что и ссылка на блог Шонфы выше, так что, вероятно, он все еще актуален.
Другие советы
Разработчику сборки необходимо подписать сборку с использованием технологии Authenticode и сертификата X.509, полученного от одного из утвержденных центров сертификации (CA).Затем вашему хосту необходимо проверить подпись и сертификаты в подписи загружаемой сборки.
Как один из вариантов, наш продукт, SecureBlackbox, предлагает функции для подписания и проверки Authenticode, а также полной проверки сертификата X.509.