2012-01-08 7 views
1

ASP.Net 4.0 프로젝트의 web.config 부분을 암호화해야하지만 AES를 사용해야하며 기본값은 Triple DES 인 것으로 보입니다. 대신 AES 암호화를 사용하도록 말할 수 있습니까? 나는 다음과 같은 명령을 수행 명령 프롬프트에서 aspnet_regiis로 AES 암호화를 선택/시행하여 web.config 값을 암호화하는 방법은 무엇입니까?

:

aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp 
aspnet_regiis -pe "connectionStrings" -app "/<myapp>" 

는 내가 적절한 CSP (-csp)를 선택하여 AES로 암호화 방법을 설정 내려고하지만 난 찾거나 그림 수 없어 오른쪽 하나의 이름을 밖으로.

그리고 암호화하여 Web.config의 라인들 중 하나

이다 :

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> 

답변

2

제공자는 경우 aspnet_regiis 할 -prov 매개 변수를 사용하여 선택된다. 공급자는 configProtectedData 섹션을 사용하여 web/machine.config에 등록됩니다. RSA 및 DPAPI가이 Machine.config에서 사전 구성된 알고리즘입니다 내 컴퓨터에

<configProtectedData> 
    <providers> 
     <add name="AesProvider" 
      type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" 
      description="Uses an AES session key to encrypt and decrypt" 
      keyContainerName="iisConfigurationKey" cspProviderName="" 
      useOAEP="false" useMachineContainer="true" 
      sessionKey="aSessionKeyGoesHere" /> 
    </providers> 
</configProtectedData> 

: AES를 등록하기 위해서는이 같은 것을 사용합니다.

aspnet_regiis -pe "connectionStrings" -app "/<myapp>" -prov "AesProvider" 
+0

재 : sessionKey = "aSessionKeyGoesHere을"

는 AES 공급자가 사용하여 구성 섹션을 암호화 할 수 있어야 등록되어 제공이 인터넷 요청 세션에 관련인가요? 이 값을 어떻게 설정합니까? 또는 적절한 값을 계산하거나 산출하는 방법은 무엇입니까? –

+0

또한, 내 app 및 machine.config의 web.config에서이 구현을 시도했지만 항상이 오류가 발생합니다. 구성 섹션 암호화 중 ... 'Microsoft.ApplicationHost.AesProtectedConfigurationProvider'를 어셈블리에서로드 할 수 없습니다. 'System.Configuration, 버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = b03f5f7f11d50a3a'. 실패했습니다! –

+0

sessionKey는 사용할 AES 암호화 키입니다. 아마도 AesProtectedConfigurationProvider는 프레임 워크 기록의 어느 시점에서 사용 가능한 암호화 공급자에서 제거되었으며 이제는 RSA 및 DPAPI 만 핵심 부분입니다. 이전의 일부 암호화 샘플 및 machine.config 샘플에서 참조 된 것 이외에 Aes 공급자의 소스를 찾을 수 없었습니다. – PHeiberg

관련 문제