Позднее связывание .NET 4.0: обеспечить аутентичность сборки?

Мне нужно разработать приложение .NET C #, которое поддерживает плагины. Я нашла много информации в Интернете, и это, кажется, не так уж и сложно.

У меня просто есть спецификация, согласно которой сборки модулей должны проверяться на уровне сборки. Когда происходит позднее связывание и сборка загружается, ведущее приложение должно быть абсолютно уверено, что:

  1. Сборка не изменилась.
  2. Сборка действительно была поставлена ​​компанией.

Я читал, что можно подписать сборку с помощью ключа, но, насколько я понял, это будет свидетельствовать только о том, что сборка не была изменена.

Что нужно сделать, чтобы быть уверенным в подлинности Ассамблей?

Любая помощь будет принята с благодарностью.


person Scudelari    schedule 22.09.2010    source источник
comment
возможный дубликат stackoverflow.com/questions/369248/   -  person stombeur    schedule 22.09.2010


Ответы (2)


Как я уже сказал в комментарии, об этом уже спрашивали: Можно ли использовать строгое именование сборки для проверки автора сборки?

Эта ссылка дает пример того, как проверить открытый ключ по известному набору открытых ключей: http://blogs.msdn.com/b/shawnfa/archive/2004/06/07/150378.aspx, но он староват, и я не знаю, есть ли там с тех пор произошли значительные изменения.

РЕДАКТИРОВАТЬ: Я вижу, что ответ SO предлагает ту же технику, что и ссылка на блог shawnfa выше, поэтому, вероятно, он все еще в силе.

person stombeur    schedule 22.09.2010
comment
Строгое имя не гарантирует подлинности подписавшего (в отличие от Authenticode). - person Eugene Mayevski 'Callback; 22.09.2010

Разработчику сборки необходимо подписать сборку с использованием технологии Authenticode и сертификата X.509, полученного от одного из утвержденных центров сертификации (ЦС). Затем вашему хосту необходимо проверить подпись и подтвердить сертификаты в подписи загружаемой сборки.

В качестве одного из вариантов наш продукт SecureBlackbox предлагает функции для выполнения Authenticode подписание и проверка, а также полная проверка сертификата X.509.

person Eugene Mayevski 'Callback    schedule 22.09.2010