2009-06-10 3 views
4

안녕하세요, 이 질문이 이전에 요청되었는지 여부는 알 수 없습니다. 하지만 web.config의 연결 문자열을 암호화하고 싶습니다. 내 응용 프로그램은 웹 팜에 배포됩니다.웹 팜의 web.config 암호화

나는 이것에 관해 약간의 blog를 읽으려고했지만 혼란 스러웠다. 누군가 내게 그들이 실제로 시도하고 성공한 링크를 말할 수 있습니까?

답변

2

the RSA Protected Configuration provider을 사용합니다. 그 페이지는 가벼운 독서는 아니지만 필요한 것이 있습니다.

나는 그렇게 (기사에서 예) 같은 명령을 사용하는 것이 좋습니다

다음 aspnet_regiis.exe -pef "connectionStrings"C

: \ MachineRSA이

+0

웹 팜에서 이것을 시도한 적이 있습니까? – alice7

+0

예,하지만 우리는 가져 오기/내보내기 키를 사용하지 않습니다. 인스턴스별로 암호화를 수행합니다. 그럼에도 불구하고 기사의 요약에서 "Aspnet_regiis.exe 도구를 사용하여 Web.config 및 Machine.config 파일에있는 연결 문자열과 같은 중요한 데이터를 암호화 할 수 있습니다. 서버간에 RSA 키를 쉽게 내보내고 가져올 수 있습니다. 따라서 RSA 암호화는 웹 팜의 여러 서버에서 사용되는 구성 파일을 암호화하는 데 특히 효과적입니다. " – lance

+0

빠른 질문 하나, 웹 팜 시나리오에서 키를 가져 오거나 내 보내야한다는 것을 어떻게 알 수 있습니까? 선택 사항입니까? 나에게 어떤 시나리오를 줄 수 있습니까? – alice7

1

연결 문자열을 암호화하기 전에, 당신이 무엇을 생각 프로젝트 \ 그들을 암호화하여 보호하려고합니다. 응용 프로그램은 일반 텍스트 연결 문자열에 순서대로 액세스해야하므로 키에 액세스해야합니다. 따라서 ASP.Net 응용 프로그램을 손상시키는 공격자는 키와 보호 된 연결 문자열을 훔칠 수 있습니다. 따라서 암호화가 실제로 많은 이점을 추가하지는 않습니다.

암호화 대신 운영 직원이 파일을 처리하는 방식과 프로덕션 환경에서 적용되는 파일 사용 권한에 중점을 둡니다. 응용 프로그램이 실행되는 ASP.Net 작업자 풀 계정에 대해서만 읽기 권한을 허용하십시오.

+0

슬프게도 일부 비즈니스 규정은 논리적 인 방식으로 생각하지 않으며 이러한 종류의 문제를 처리해야합니다. – Justin

2

RSAProtectedConfigurationProvider는 컴퓨터 수준 또는 사용자 수준 키를 사용하여 암호화 할 수 있습니다. 기본값은 기계 수준입니다. 즉, web.config를 암호화 한 다음 웹 팜의 모든 컴퓨터에 배포 할 수 없습니다. 암호화 및 해독 할 키가 해당 시스템에만 있으므로 각 시스템에서 암호화해야합니다.

당신은 사용자 수준 키를 사용하거나 모든 웹 팜 시스템에서 핵심 공유함으로써이 문제를 해결 얻을 수 있습니다 :