Указание поставщика защищенной конфигурации

Обновлен: Ноябрь 2007

Можно шифровать и дешифровать разделы файла Web.config с помощью класса ProtectedConfigurationProvider. Ниже перечислены поставщики защищенной конфигурации, включенные в платформу .NET Framework:

  • DpapiProtectedConfigurationProvider. Использует API защиты данных Windows (DPAPI) для шифрования и расшифровки данных.

  • RsaProtectedConfigurationProvider. Использует алгоритм шифрования RSA для шифрования и дешифрования данных.

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

Платформа .NET Framework также позволяет определить собственных поставщиков защищенной конфигурации. Подробные сведения см. в разделе Реализация поставщика защищенной конфигурации.

Настройка поставщика защищенной конфигурации

Можно указать собственного поставщика защищенной конфигурации или использовать одного из поставщиков, встроенных в ASP.NET. По умолчанию в файле Machine.config указаны следующие поставщики защищенной конфигурации.

Укажите поставщика защищенной конфигурации в разделе configProtectedData файла конфигурации. Чтобы указать собственного поставщика с настраиваемыми параметрами, можно объявить экземпляр нового поставщика, используя элемент add элемента providers. Можно определить собственный экземпляр поставщика в качестве поставщика по умолчанию, использую атрибут defaultProvider элемента configProtectedData.

В следующем примере выполняется настройка экземпляра RsaProtectedConfigurationProvider с именем SampleProvider, после чего он задается как поставщик по умолчанию.

<configuration>
  <configProtectedData defaultProvider="SampleProvider">
    <providers>
      <add name="SampleProvider" 
        type="System.Configuration.RsaProtectedConfigurationProvider, 
              System.Configuration, Version=2.0.0.0, Culture=neutral, 
              PublicKeyToken=b03f5f7f11d50a3a,
             processorArchitecture=MSIL"
        keyContainerName="SampleKeys" 
        useMachineContainer="true" />
    </providers>
  </configProtectedData>
</configuration>

При шифровании разделов конфигурации используется имя экземпляра поставщика защищенной конфигурации. Дополнительные сведения см. в разделе Шифрование и расшифровка разделов конфигурации.

Параметры поставщика защищенной конфигурации

Каждый поставщик защищенной конфигурации содержит параметры, которые можно задать с помощью атрибутов объявления поставщика в файле конфигурации. Для всех поставщиков необходимо задать type и атрибут description, а также keyName для экземпляра поставщика. Кроме того, для каждого типа поставщика параметры являются уникальными.

В следующей таблице перечислены параметры конфигурации для RsaProtectedConfigurationProvider.

Атрибут

Описание

type

Тип поставщика защищенной конфигурации. В следующем примере демонстрируется определение типа для RsaProtectedConfigurationProvider:

type="System.Configuration.RsaProtectedConfigurationProvider,
      System.Configuration, Version=2.0. 0.0,
      Culture=neutral,
      PublicKeyToken=b03f5f7f11d0a3a,
      processorArchitecture=MSIL"

description

Описание экземпляра поставщика.

keyContainerName

Имя контейнера ключей RSA, использованное для шифрования или дешифрования содержимого файла Web.config.

68ze1hb2.alert_note(ru-ru,VS.90).gifПримечание.
Процесс ASP.NET должен иметь доступ на чтение к указанному контейнеру ключей RSA. Можно предоставить доступ к контейнеру ключей RSA, используя средство Aspnet_regiis.exe с параметром -pa. Дополнительные сведения см. в разделе Импорт и экспорт защищенных контейнеров ключей RSA для конфигурации.

useMachineContainer

true, если контейнер ключей RSA является контейнером ключей на уровне компьютера;false, если контейнер ключей RSA — это контейнер ключей на уровне пользователя. Дополнительные сведения см. в разделе Шифрование сведений о конфигурации с помощью функции защищенной конфигурации.

useOAEP

true для использования заполнения OAEP при шифровании и дешифровании; в противном случае — false. Дополнительные сведения см. в описании класса RSAOAEPKeyExchangeFormatter.

cspProviderName

Имя API шифрования Windows поставщика служб шифрования. Дополнительные сведения см. в разделе ProviderName.

В следующей таблице перечислены параметры конфигурации для DpapiProtectedConfigurationProvider.

Атрибут

Описание

type

Тип поставщика защищенной конфигурации. В следующем примере демонстрируется определение типа для DpapiProtectedConfigurationProvider:

type="System.Configuration.DpapiProtectedConfigurationProvider,
      System.Configuration, Version=2.0.0.0,
      Culture=neutral,
      PublicKeyToken=b03f5f7f11d0a3a,
      processorArchitecture=MSIL"

description

Описание экземпляра поставщика.

keyEntropy

Свойственное для данного приложения значение, которое необходимо использовать вместе с ключом шифрования для обеспечения защиты в случае, когда другие приложения могут дешифровать зашифрованные данные. Дополнительные сведения см. в описании параметра OptionalEntropy метода CryptProtectData API защиты данных Windows (DPAPI).

useMachineProtection

true для использования защиты на уровне компьютера;false для использования защиты на уровне учетной записи пользователя. При указании true любой выполняющийся на компьютере процесс может снять защиту данных, поэтому рекомендуется ограничивать доступ к зашифрованным данным с использованием списка управления доступом. Дополнительные сведения см. в описании значения CRYPTPROTECT_LOCAL_MACHINE для параметра dwFlags метода CryptProtectData API защиты данных Windows (DPAPI).

См. также

Задачи

Пошаговое руководство. Шифрование информации конфигурации с помощью функции защищенной конфигурации

Другие ресурсы

Шифрование сведений о конфигурации с помощью функции защищенной конфигурации