많은 개발자들이 보안에 대해 민감해 하고 수업 때마다 받는 질문중에 하나가 암호화된 데이타의 저장에 대한 질문을 많이 받는다. MSDN에서 받을 수 있는 aspnet_setreg.exe를 사용하면 아래와 같은 문자열들을 노출시키지 않고 레지스트리에 저장된 암호화된 데이타를 복구해서 사용할 수 있다.
보통은 아래와 같이 web.config파일에서 SQL Server를 사용한 상태관리와 StateService를 위한 상태관리의 사용자ID와 암호가 노출된다.
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
아래와 같이 툴을 다운로드 받아서 실행하면 레지스트리에 암호화된 데이타로 연결문자열이 저장된다.
aspnet_setreg.exe
?k:"SOFTWARE\Connection"
-c:"server=(local);Database=northwind;uid=sa;pwd=1;"
툴을 수행된 결과로 붙여넣기를 할 수 있는 문자열이 생성된다. 그러면 아래의 문자열을 원래의 문자열 대신 사용할 수 있다. 레지스트리에 접근할 수 있는 유저만 해당 데이타를 볼 수 있다. 실제 보게되어도 암호화 되어 있기 때문에 어느정도 안심하고 사용할 수 있다.
sqlConnectionString=
"registry:HKLM\SOFTWARE\Connection,ConnectionString"