보호되는 구성 공급자 지정

업데이트: 2007년 11월

ProtectedConfigurationProvider 클래스를 사용하여 Web.config 파일의 섹션을 암호화하고 해독할 수 있습니다. 다음 목록에서는 .NET Framework에 포함된 보호되는 구성 공급자에 대해 설명합니다.

두 공급자 모두 강력한 데이터 암호화를 제공합니다. 그러나 웹 팜처럼 암호화된 구성 파일 하나를 여러 서버에서 사용하려는 경우, 암호화 키를 내보내고 다른 서버에서 이 암호화 키를 가져오려면 RsaProtectedConfigurationProvider만 사용할 수 있습니다.

또한 .NET Framework를 사용하면 보호되는 구성 공급자를 직접 정의할 수도 있습니다. 자세한 내용은 보호되는 구성 공급자 구현을 참조하십시오.

보호되는 구성 공급자 구성

보호되는 구성 공급자를 직접 지정하거나 ASP.NET에 기본으로 제공된 공급자 중 하나를 사용할 수 있습니다. 기본적으로 Machine.config 파일에는 다음과 같은 보호되는 구성 공급자가 지정되어 있습니다.

구성 파일의 configProtectedData 섹션에 보호되는 구성 공급자를 지정합니다. 사용자 지정 설정을 사용하여 고유한 공급자를 직접 지정하려면 providers 요소의 add 요소를 사용하여 새 공급자 인스턴스를 선언합니다. configProtectedData 요소의 defaultProvider 특성을 사용하면 공급자 인스턴스를 기본 공급자로 식별할 수 있습니다.

다음 예제에서는 SampleProvider를 이름으로 사용하여 RsaProtectedConfigurationProvider 인스턴스를 구성한 후 이 인스턴스를 기본 공급자로 설정합니다.

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

구성 섹션을 암호화하는 경우 보호되는 구성 공급자 인스턴스의 이름을 사용합니다. 자세한 내용은 구성 섹션 암호화 및 해독을 참조하십시오.

보호되는 구성 공급자 옵션

보호되는 구성 공급자는 각각 구성 파일에서 공급자 선언의 특성을 사용하여 설정할 수 있는 옵션을 노출합니다. 모든 공급자에는 공급자 인스턴스에 대한 keyName과 type 및 description 특성이 필요합니다. 뿐만 아니라 이러한 옵션은 각 공급자 형식에 대해 고유합니다.

다음 표에서는 RsaProtectedConfigurationProvider의 구성 옵션에 대해 설명합니다.

특성

설명

type

보호되는 구성 공급자의 형식입니다. 다음 예제에서는 RsaProtectedConfigurationProvider의 형식 정의를 보여 줍니다.

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

description

공급자 인스턴스에 대한 설명입니다.

keyContainerName

Web.config 파일의 내용을 암호화하거나 해독하는 데 사용되는 RSA 키 컨테이너의 이름입니다.

참고:
ASP.NET 프로세스에는 지정된 RSA 키 컨테이너에 대한 읽기 권한이 있어야 합니다. Aspnet_regiis.exe 도구에 -pa 스위치를 지정하여 RSA 키 컨테이너에 대한 권한을 부여할 수 있습니다. 자세한 내용은 보호되는 구성 RSA 키 컨테이너 가져오기 및 내보내기를 참조하십시오.

useMachineContainer

RSA 키 컨테이너가 컴퓨터 수준 키 컨테이너이면 true이고, 사용자 수준 키 컨테이너이면 false입니다. 자세한 내용은 보호되는 구성을 사용하여 구성 정보 암호화를 참조하십시오.

useOAEP

암호화하고 해독할 때 OAEP(Optimal Asymmetric Encryption Padding)를 사용하려면 true이고, 그렇지 않으면 false입니다. 자세한 내용은 RSAOAEPKeyExchangeFormatter 클래스를 참조하십시오.

cspProviderName

Windows 암호화 API CSP(암호화 서비스 공급자)의 이름입니다. 자세한 내용은 ProviderName을 참조하십시오.

다음 표에서는 DpapiProtectedConfigurationProvider의 구성 옵션에 대해 설명합니다.

특성

설명

type

보호되는 구성 공급자의 형식입니다. 다음 예제에서는 DpapiProtectedConfigurationProvider의 형식 정의를 보여 줍니다.

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

description

공급자 인스턴스에 대한 설명입니다.

keyEntropy

암호화된 정보를 해독할 수 있는 다른 응용 프로그램으로부터 보호하기 위해 암호화 키와 함께 포함할 응용 프로그램별 값입니다. 자세한 내용은 Windows DPAPI(데이터 보호 API)의 CryptProtectData 메서드에 대한 OptionalEntropy 매개 변수를 참조하십시오.

useMachineProtection

컴퓨터별 보호를 사용하려면 true이고, 사용자 계정별 보호를 사용하려면 false입니다. 이 특성을 true로 설정하면 컴퓨터에서 실행 중인 모든 프로세스에 의해 데이터 보호가 해제될 수 있으므로 ACL(액세스 제어 목록)을 사용하여 암호화된 데이터에 대한 액세스를 제한하는 것이 좋습니다. 자세한 내용은 Windows DPAPI(데이터 보호 API)의 CryptProtectData 메서드에 대한 dwFlags 매개 변수의 CRYPTPROTECT_LOCAL_MACHINE 값을 참조하십시오.

참고 항목

작업

연습: 보호되는 구성을 사용하여 구성 정보 암호화

기타 리소스

보호되는 구성을 사용하여 구성 정보 암호화