Especificar un proveedor de configuración protegida

Actualización: noviembre 2007

Puede cifrar y descifrar secciones de un archivo Web.config mediante una clase ProtectedConfigurationProvider. En la lista siguiente se describen los proveedores de configuración protegida incluidos en .NET Framework:

Ambos proveedores proporcionan cifrado de datos de alta seguridad. No obstante, si prevé utilizar el mismo archivo de configuración de cifrado en varios servidores, como una batería de servidores Web, sólo RsaProtectedConfigurationProvider permite exportar las claves de cifrado e importarlas a otro servidor.

.NET Framework también permite definir sus propios proveedores de configuración protegidos. Para obtener información detallada, vea Implementar un proveedor de configuración protegida.

Configurar un proveedor de configuración protegida

Puede especificar su propio proveedor de configuración protegida o puede utilizar uno de los proveedores integrados en ASP.NET. De forma predeterminada, el archivo Machine.config especifica los siguientes proveedores de configuración protegida:

Especifica un proveedor de configuración protegida en la sección configProtectedData de un archivo de configuración. Si desea especificar su propio proveedor con una configuración personalizada, puede declarar una nueva instancia de proveedor mediante el elemento add del elemento providers. Puede identificar la instancia del proveedor como proveedor predeterminado mediante el atributo defaultProvider del elemento configProtectedData.

El ejemplo siguiente configura una instancia RsaProtectedConfigurationProvider con el nombre SampleProvider y la establece como proveedor predeterminado.

<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>

Utiliza el nombre de la instancia de proveedor de configuración protegida al cifrar las secciones de configuración. Para obtener más información, vea Cifrar y descifrar secciones de configuración.

Opciones de proveedor de configuración protegida

Cada proveedor de configuración protegida expone las opciones que puede establecer mediante atributos de la declaración del proveedor en el archivo de configuración. Todos los proveedores requieren los atributos type y description, así como keyName para la instancia del proveedor. Asimismo, las opciones son únicas para cada tipo de proveedor.

En la siguiente tabla se describen las opciones de configuración para RsaProtectedConfigurationProvider.

Atributo

Descripción

type

Tipo de proveedor de configuración protegida. El ejemplo siguiente muestra una definición del tipo para RsaProtectedConfigurationProvider:

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

description

Descripción de la instancia del proveedor.

keyContainerName

Nombre del contenedor de claves RSA que se utiliza para cifrar o descifrar el contenido del archivo Web.config.

Nota:
El proceso de ASP.NET debe tener acceso de lectura al contenedor de claves RSA especificado. Puede conceder acceso a un contenedor de claves RSA con la herramienta Aspnet_regiis.exe mediante el modificador -pa. Para obtener más información, vea Importar y exportar contenedores de claves RSA con configuración protegida.

useMachineContainer

true si el contenedor de claves RSA es un contenedor de claves en el nivel de equipo; false si el contenedor de claves RSA es un contenedor de claves en el nivel de usuario. Para obtener más información, vea Cifrar información de configuración mediante una configuración protegida.

useOAEP

true para utilizar Relleno de cifrado asimétrico óptimo (OAEP) al cifrar y descifrar; de lo contrario, false. Para obtener más información, vea la clase RSAOAEPKeyExchangeFormatter.

cspProviderName

Nombre del proveedor de servicios criptográficos (CSP) de la API de criptografía (crypto API) de Windows. Para obtener más información, vea ProviderName.

En la siguiente tabla se describen las opciones de configuración para DpapiProtectedConfigurationProvider.

Atributo

Descripción

type

Tipo de proveedor de configuración protegida. El ejemplo siguiente muestra una definición del tipo para DpapiProtectedConfigurationProvider:

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

description

Descripción de la instancia del proveedor.

keyEntropy

Valor específico de la aplicación que se incluye con la clave de cifrado para protegerse de otras aplicaciones que pueden descifrar información cifrada. Para obtener más información, haga referencia al parámetro OptionalEntropy del método CryptProtectData de la API de protección de datos (DPAPI) de Windows.

useMachineProtection

true para utilizar la protección específica del equipo; false para utilizar la protección específica de la la cuenta del usuario. Cuando es true, cualquier proceso que se ejecute en el equipo puede desproteger datos y se recomienda restringir el acceso a los datos cifrados mediante una Lista de control de acceso (ACL). Para obtener más información, vea el valor CRYPTPROTECT_LOCAL_MACHINE para el parámetro dwFlags del método CryptProtectData de la API de protección de datos (DPAPI) de Windows.

Vea también

Tareas

Tutorial: Cifrar la información de configuración mediante la configuración protegida

Otros recursos

Cifrar información de configuración mediante una configuración protegida