вторник, 10 февраля 2009 г.

Шифрование настроек в web.config

Одной из приятных особенностей использования ASP является возможность шифрования содержимого web.config стандарными средствами. Называется это стандартное средство Protected Configuration. Диаграмма вариантов использования провайдера представлена на рисунке 1.

Рис.1. Диаграмма вариантов использования средства шифрования конфигурационных файлов

Осуществлять шифрование конфигурационного файла целесообразнее утилитой aspnet_regiis.exe, входящей в комплект ASP.NET 2.0. В результате шифрования получается ключ дешифрации, спрятанный, например, в %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\RSA. Утилита aspnet_regiis.exe, предназначенная для администрирования, позволяет производить ряд операций по шифрованию, наиболее важными из которых по данной теме являются:
  • pe - шифрование определенной секции определенного конфигурационного файла определенным провайдером
  • pd - дешифрация секции конфигурационного файла заданным провайдером
  • pa - предоставить досуп к ключу дешифрации для заданного пользователя
  • pr - убрать доступ к ключу дешифрации для заданного пользователя
Имя ключа шифрования для последних двух операций в данном случае хранится в атрибуте keyContainerName нити configProtectedData\providers\add[@name="RsaProtectedConfigurationProvider"] файла machine.config