Позднее связывание .NET 4.0: обеспечить подлинность сборки? - PullRequest
1 голос
/ 22 сентября 2010

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 22 сентября 2010

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

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

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

0 голосов
/ 22 сентября 2010

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

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

...