шифрование appsettings app.config служба Windows - PullRequest
1 голос
/ 28 октября 2011

У меня есть служба Windows, которая работает в нескольких производственных экземплярах.

Файл конфигурации для этой службы Windows содержит некоторые защищенные данные, которые требуют шифрования.

Хорошая вещь - У нас есть только значения, которые являются частью раздела appsettings для шифрования.

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

Итак, вот часть ограничений нашей проблемы,

  1. Несколько серверов производства, поэтому НЕТ машинного шифрования (я не предпочитаюпрофиль пользователя также не накладывает ограничений на службу)
  2. Настройки приложения должны быть расходуемыми с использованием ConfigurationManager.AppSettings ["Key1"] как обычно.так что существующий код и сборки «черного ящика» все еще могут их использовать.

Есть идеи / предложения / решения?

1 Ответ

1 голос
/ 28 октября 2011

Вы можете использовать RsaProtectedConfigurationProvider , как описано в этой статье, ссылающейся на первую часть ответа Давиде Пираса . Не уверен, почему он удалил ответ, так как первая часть, кажется, делает именно то, что вы хотите.

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

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

...