web.config 암호화

asp.net 2.0 에서는 민감한 데이터를 암호화를 하기 위해서 Aspnet_regiis.exe 툴을 사용할 수 있습니다.

db 연결 문자열 부분을 말하는 거죠...

web.config 나 machine.config 파일 부분에서 사용이 가능합니다.

web form에서 다중의 서버상에 사용되는 configuration 파일들을 암호화하기 위해

부분적으로 RSA 암화화를 효과적으로 만들어 줍니다.

 

web.config 에서 connectionStrings 세션부분에 암호화를 해볼까요..

아래는 connectionStrings 세션부분에 db를 연결하는 부분을 기술했습니다.

 

<connectionStrings>

     <add name = "MyLocalSQLServer"

       connectionString = "Initial Catalog = aspnetdb ;

       data source = localhost ; Integrated Security = SSPI ;"

       providerName = "System.Data.SqlClient"/>

</connectionStrings>

 

이 세션부분에 대해서 암호화를 하기 위새서 먼저 명령 프롬프트를 실행시키시고,

 

aspnet_regiis -pe "connectionStrings" -app "/MachineRSA"

 

실행하면 암호화가 됩니다. 여기서 -app 다음에 MachineRSA 라고..가상디렉토리명을 기재하기고.

-pe는 구성섹션을 암호화 하는 것을 의미합니다.

 

aspnet_regiis.exe -pef "connectionStrings" C:\Projects\MachineRSA

 

-pef 인수를 사용해서 직접 물리적인 경로로 암호화를 할 수 있습니다.

 

영문 .net framework 일 경우 아래와 같은 결과값을 반환해 줍니다.

 

Encrypting configuration section..

Succeeded!

복고화는 아래와 같이 -pd를 사용해서 해제하면 됩니다.

aspnet_regiis.exe -pd "connectionStrings" C:"\Projects\MachineRSA

 

 

디폴트는 RSA암호화 방식을 사용하는데 이 키가 machine.config 파일에 있습니다.

하지만 iis용 계정인 network service 계정이 이 키에 대한 접근 권한이 없다면 에러가 날 수 있습니다.

아래와 같은 명령어로 권한을 주면 해결이 가능하답니다.

 

aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Auhority\Network Service"

 

실행하면 아래와 같은 내용으로 출력 해줍니다.

 

Adding ACL for access to the RSA Key container...

Succeeded!

신고

'☆Develpoer > └ .net' 카테고리의 다른 글

SQLHelper.cs  (1) 2007.10.05
새로고침(refresh) 막는법  (0) 2007.10.05
web.config 암호화  (2) 2007.10.05
문자열의 선언  (0) 2007.09.27
ASP.NET AJAX를 지원하지 않는 웹호스팅에 AJAX 사용하기  (2) 2007.07.30
System.Web.Extensions 오류  (1) 2007.07.30