Указание поставщика защищенной конфигурации
Обновлен: Ноябрь 2007
Можно шифровать и дешифровать разделы файла Web.config с помощью класса ProtectedConfigurationProvider. Ниже перечислены поставщики защищенной конфигурации, включенные в платформу .NET Framework:
DpapiProtectedConfigurationProvider. Использует API защиты данных Windows (DPAPI) для шифрования и расшифровки данных.
RsaProtectedConfigurationProvider. Использует алгоритм шифрования RSA для шифрования и дешифрования данных.
Оба поставщика обеспечивают надежное шифрование данных. Однако, если планируется использовать один зашифрованный файл конфигурации на нескольких серверах, например, веб-фермах, то только RsaProtectedConfigurationProvider позволяет экспортировать ключи шифрования и импортировать их на другом сервере.
Платформа .NET Framework также позволяет определить собственных поставщиков защищенной конфигурации. Подробные сведения см. в разделе Реализация поставщика защищенной конфигурации.
Настройка поставщика защищенной конфигурации
Можно указать собственного поставщика защищенной конфигурации или использовать одного из поставщиков, встроенных в ASP.NET. По умолчанию в файле Machine.config указаны следующие поставщики защищенной конфигурации.
Экземпляр RsaProtectedConfigurationProvider с именем RsaProtectedConfigurationProvider. Он установлен в качестве поставщика по умолчанию.
Экземпляр DpapiProtectedConfigurationProvider с именем DataProtectionConfigurationProvider.
Укажите поставщика защищенной конфигурации в разделе 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:
|
description |
Описание экземпляра поставщика. |
keyContainerName |
Имя контейнера ключей RSA, использованное для шифрования или дешифрования содержимого файла Web.config.
Примечание.
Процесс 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:
|
description |
Описание экземпляра поставщика. |
keyEntropy |
Свойственное для данного приложения значение, которое необходимо использовать вместе с ключом шифрования для обеспечения защиты в случае, когда другие приложения могут дешифровать зашифрованные данные. Дополнительные сведения см. в описании параметра OptionalEntropy метода CryptProtectData API защиты данных Windows (DPAPI). |
useMachineProtection |
true для использования защиты на уровне компьютера;false для использования защиты на уровне учетной записи пользователя. При указании true любой выполняющийся на компьютере процесс может снять защиту данных, поэтому рекомендуется ограничивать доступ к зашифрованным данным с использованием списка управления доступом. Дополнительные сведения см. в описании значения CRYPTPROTECT_LOCAL_MACHINE для параметра dwFlags метода CryptProtectData API защиты данных Windows (DPAPI). |
См. также
Задачи
Пошаговое руководство. Шифрование информации конфигурации с помощью функции защищенной конфигурации
Другие ресурсы
Шифрование сведений о конфигурации с помощью функции защищенной конфигурации