Загрузка только сторонних доверенных сборок на сервер приложений - PullRequest
0 голосов
/ 04 ноября 2010

Сценарий

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

Возможное решение

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

alt text

Листовой узел (выделен фиолетовым цветом) обозначает возможные тестовые случаи.

Мне нужно получить идеи / отзывы о следующем:

  • Достаточно ли хорош вышеуказанный механизм на основе цифровых сертификатов для вышеупомянутого сценария?
  • Какие есть другие альтернативы в дополнение к технологии цифровых сертификатов?
  • Существуют ли какие-либо тестовые примеры, которые не были рассмотрены (на основе приведенной выше диаграммы)?

Спасибо.

1 Ответ

1 голос
/ 17 ноября 2010

Просто несколько случайных мыслей.

Хотя это не единственный способ сделать это (изо всех сил, например, вы можете использовать HMAC с конкретными ключами или просто алгоритм с открытым ключом, такой как RSA илиDSA самостоятельно) это, вероятно, лучший способ достичь того, что вы хотите сделать, с минимальными усилиями.

Конечно, я бы предположил, что в этом сценарии вы будете действовать как CA, и любая третья сторона может получить от вас подписанный сертификат?Если это не так, и вы просто скажете, например, сертификат Verisign и т. Д., Вы можете рассмотреть возможность проверки полей использования ключа и расширенного использования ключа сертификата, чтобы убедиться, что он подходит для подписи двоичных файлов (чтобы остановить кого-то, например, используя сертификат SSL),

Как указано в вышеприведенном комментарии, вы хотите проверить любые списки отзыва сертификатов, хотя они могут быть покрыты как подписанными, так и неподписанными.Возможно, вам также понадобится отдельный контрольный пример между файлом, который полностью не подписан, файлом, который подписан, но неправильно (скажем, открытые ключи не совпадают), и файлом, который подписан, но недействителен, например, подпись не помечена меткой времени доверенным органом.и сертификат истек, или материал CRL.

Также исключаете ли вы возможность, когда сертификат подписи является центром сертификации?Это глупо, но технически в этом нет ничего плохого.Вы можете даже просто пропустить весь компонент CA и попросить третье лицо создать собственный самозаверяющий сертификат и отправить его администратору сервера, который добавит его в список допустимых сертификатов для использования.Единственная причина для CA состоит в том, что они должны проверять информацию о человеке, который хочет этого, в зависимости от того, как вы планируете использовать эту систему, чем это может быть необязательно.

...