#.net #encryption #windows-services #app-config
#.net #шифрование #windows-службы #app-config
Вопрос:
У меня есть служба Windows, которая работает в нескольких производственных экземплярах.
Файл конфигурации для этой службы Windows содержит некоторые защищенные данные, которые требуют шифрования.
Хорошая вещь — у нас есть только значения, которые являются частью раздела appsettings для шифрования.
Плохо то, что существуют сторонние сборки черного ящика, которые используют некоторые из безопасных ключей appsettings. это означает, что мы не можем переключиться на другой менеджер конфигурации.
Итак, вот ограничения, являющиеся частью нашей проблемы,
- Несколько производственных серверов, поэтому НЕТ машинного шифрования (я не предпочитаю профиль пользователя, поскольку это накладывает ограничения на службу)
- Настройки приложения должны быть доступны с помощью ConfigurationManager.AppSettings [«Key1»] как обычно. так что существующий код и сборки черного ящика все еще могут их использовать.
Есть идеи / предложения / решения?
Ответ №1:
Вы можете использовать RsaProtectedConfigurationProvider, как описано в этой статье, связанной с первой частью ответа Давида Пираса. Не уверен, почему он удалил ответ, так как первая часть, похоже, делает именно то, что вы хотите.
В статье объясняется, как совместно использовать ключ между несколькими серверами, чтобы вы могли использовать один и тот же зашифрованный файл конфигурации на всех серверах. Хотя в этом случае вы сталкиваетесь с трудноразрешимой проблемой управления ключами.
Вы уверены, что вам нужно совместно использовать один и тот же зашифрованный файл конфигурации между всеми производственными серверами и, следовательно, использовать общий ключ? Альтернативный подход заключается в создании контейнера ключей с одинаковым именем на каждом рабочем сервере и независимом шифровании файла на каждом сервере. Это немного больше работы, но имеет большое значение для решения проблемы управления ключами.
Комментарии:
1. «В статье объясняется, как разделить ключ между несколькими серверами, чтобы вы могли использовать один и тот же зашифрованный файл конфигурации на всех серверах». вы имеете в виду статью, опубликованную Давиде? можете ли вы снова связать его здесь. У меня больше нет этой статьи..
2. @KeYan, я добавил ссылку к своему ответу и проголосовал за восстановление ответа Давида.