У нас есть веб-сайт, который использует "NT Authority\Network Service".
Response.Write(WindowsIdentity.GetCurrent().Name);
В настоящее время мы используем следующую команду для шифрования файлов конфигурации.
aspnet_regiis -pc "NetFrameworkConfigurationKey"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority\Network Service"
aspnet_regiis.exe -pef "connectionStrings" "C:\WebAppLocation\Folder"
Примечание. Мы не используем «-exp». Когда мы используем «-exp», он не создает контейнер ключей RSA.
Как видите, мы используем ключ по умолчанию — NetFrameworkConfigurationKey. На нашем сайте есть балансировщик нагрузки. Доступны веб-сервер1(W1) и веб-сервер2 (W2).
Если я буду следовать вышеупомянутым командам, мы будем использовать отдельные клавиши для W1 и W2. Однако сайт работает с этим подходом.
Достаточен ли этот подход? Есть ли у него недостатки или дыры в безопасности? Будет ли это ошибкой при любом сценарии?
Примечание. Машинный ключ добавляется в наш файл web.config. В обоих конфигах одинаково. Однако наши configProtectedData отсутствуют в файле Web.Config. Кроме того, я думаю, что NetFrameworkConfigurationKey будет отличаться на обоих серверах.
Я прочитал следующую статью msdn для шифрования в сценариях веб-фермы. http://msdn.microsoft.com/en-us/library/ff650304.aspx