ASP.NET 유틸리티를 사용하여 자격 증명 및 세션 상태 연결 문자열을 암호화하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 329290 - 이 문서가 적용되는 제품 보기.
중요?이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 레지스트리를 백업하는 것이 좋습니다. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리 백업, 복원 및 수정 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 Microsoft Windows 레지스트리 설명
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 Aspnet_setreg.exe 유틸리티를 사용하여 자격 증명과 세션 상태 연결 문자열을 암호화하는 방법을 단계별로 설명합니다. Microsoft ASP.NET 버전 1.0에서 다음 작업을 수행하려면 구성 파일에서 일반 텍스트 자격 증명을 저장해야 합니다.
  • ASP.NET 작업자 프로세스 ID 변경
  • 가장(impersonation) ID 지정
  • 세션 상태에 대한 연결 문자열 지정
Microsoft 기술 자료 문서 329250("참조" 절)에 설명되어 있는 핫픽스를 적용하면 다음 구성 섹션에 일반 텍스트 대신 레지스트리에 저장되어 있는 암호화된 데이터를 사용할 수 있습니다.
  • <identity userName= password= />
  • <processModel userName= password= />
  • <sessionState stateConnectionString= sqlConnectionString= />

소개

레지스트리에서 안전한 키 아래에 위의 특성 값을 암호화하고 저장하려면 Aspnet_setreg.exe 유틸리티를 사용하십시오. 자격 증명을 암호화하려면 CryptProtectData 함수에 CRYPTPROTECT_LOCAL_MACHINE 플래그를 사용하십시오. 해당 컴퓨터에 액세스 권한을 가진 모든 사용자가 CryptUnprotectData를 호출할 수 있으므로 암호화된 데이터가 강력한 DACL(임의의 액세스 제어 목록)과 함께 보안 레지스트리 키 아래에 저장됩니다. ASP.NET은 구성 파일을 구문 분석할 때 보안 레지스트리 키를 읽고 CryptUnprotectData를 사용하여 데이터를 해독합니다.

System ID로 실행되는 Inetinfo.exe에서 <processModel /> 섹션을 읽습니다. ASP.NET 작업자 프로세스의 사용자 이름과 암호를 저장하는 레지스트리 키를 읽으려면 해당 시스템 계정에 이 키에 대한 읽기 권한이 있어야 합니다.

ASP.NET 작업자 프로세스(Aspnet_wp.exe)는 <identity /> 섹션과 <sessionState /> 섹션을 읽습니다. 이러한 레지스트리 키를 읽으려면 작업자 프로세스에 이 키에 대한 읽기 권한이 있어야 합니다. 콘텐츠가 UNC(범용 명명 규칙) 공유에서 호스트되는 경우에는 이 UNC 공유에 액세스하는 데 사용되는 계정은 이 키를 읽을 수 있는 사용 권한이 있어야 합니다.

기본적으로 Aspnet_setreg.exe가 만드는 레지스트리 키는 System, Administrator 및 Creator Owner 계정에 모든 권한을 부여합니다. Regedt32.exe를 사용하면 레지스트리 키에서 DACL을 수정할 수 있습니다. 허가 받지 않은 사용자는 레지스트리 키를 읽을 수 없어야 합니다.

IIS 다시 시작

변경 사항을 적용하려면 Microsoft 인터넷 정보 서비스(IIS)를 다시 시작해야 합니다. IIS를 다시 시작하여 새로운 ASP.NET 작업자 프로세스를 시작합니다. 이렇게 하려면 시작, 실행을 차례로 누르고 열기 상자에 iisreset를 입력한 다음 확인을 누릅니다.

참고?다시 구성한 서버가 도메인 컨트롤러인 경우 해당 서버를 다시 시작해야 합니다.

추가 정보

Aspnet_setreg.exe 다운로드 및 실행

Microsoft 다운로드 센터에서 다음 파일을 다운로드할 수 있습니다.

그림 축소그림 확대
다운로드
지금 Aspnet_setreq.exe 패키지 다운로드(영문)
릴리스 날짜: 2003년 4월 11일

Microsoft 지원 파일을 다운로드하는 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
119591 온라인 서비스로부터 Microsoft 지원 파일을 구하는 방법
Microsoft는 파일을 게시한 날짜에 사용할 수 있는 최신의 바이러스 예방 프로그램으로 이 파일을 검사했습니다. 이 파일은 무단으로 변경할 수 없는 보안이 향상된 서버에 보관됩니다.

사용할 수 있는 모든 명령줄 스위치와 그 사용 방법을 표시하려면 명령 프롬프트에서 명령줄 스위치 없이 이 도구를 실행하십시오. 이 도구를 C:\Tools\에 저장한 경우 사용 가능한 모든 스위치와 스위치의 도움말을 표시하려면 명령 프롬프트에서 다음 명령을 실행하십시오.
C:\Tools>aspnet_setreg.exe

구성 파일에 암호화된 특성 사용

경고?레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다.

참고?이 도구는 HKEY_LOCAL_MACHINE 하위 트리 아래에 레지스트리 키를 만듭니다. 기본적으로, 관리자만 이 하위 트리에 키를 만들 수 있습니다. 이 레지스트리 키를 성공적으로 만들려면 관리자로 로그온해야 합니다.
  1. <identity> 섹션에서 사용할 userName 특성과 password 특성을 암호화합니다. 이 문서에서 설명하는 다른 절에 대해서도 이러한 작업을 수행할 수 있습니다. 이들 특성을 암호화하려면 명령줄에 다음 명령을 입력합니다.
    c:\Tools>aspnet_setreg.exe -k:SOFTWARE\MY_SECURE_APP\identity -u:"yourdomainname\username" -p:"password"
    이 명령은 userNamepassword 특성을 암호화하고, 사용자가 지정한 위치에서 레지스트리 키를 만든 다음 이 레지스트리 키에 특성을 저장합니다. 이 명령은 또한 ASP.NET이 이러한 키를 사용하여 레지스트리에서 해당 정보를 읽어 올 수 있도록 Web.config 파일이나 Machine.config 파일을 변경하는 방법을 지정하는 출력도 생성합니다.

    이 명령을 실행하면 다음과 같은 형태의 출력이 나타납니다.
    Please edit your configuration to contain the following:

    userName="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,userName"
    password="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,password"

    The DACL on the registry key grants Full Control to System, Administrators, and Creator Owner.

    If you have encrypted credentials for the <identity/> configuration section, or a connection
    string for the <sessionState/> configuration section, ensure that the process identity has
    Read access to the registry key. Furthermore, if you have configured IIS to access content on a
    UNC share, the account used to access the share will need Read access to the registry key.
    Regedt32.exe may be used to view/modify registry key permissions.

    You may rename the registry subkey and registry value in order to prevent discovery.
  2. 이 레지스트리 키를 가리키도록 해당 구성 파일을 수정합니다. 이 값을 <identity> 섹션에서 사용해야 할 경우 결과로 나타나는 <identity> 섹션은 아래와 비슷합니다.
    <identity impersonate="true"
    userName="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,userName"
    password="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,password" />
    					
  3. Aspnet_wp.exe 프로세스 계정에 읽기 권한을 부여합니다. 레지스트리 키의 사용 권한을 변경하는 방법에 대한 자세한 내용은 "Regedt32.exe를 사용하여 이 레지스트리 키에서 ASP.NET 계정에 사용 권한 부여" 절을 참조하십시오.

Regedt32.exe를 사용하여 이 레지스트리 키에서 ASP.NET 계정에 사용 권한 부여

경고?레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다.
  1. 시작, 실행을 차례로 누르고 열기 상자에 regedt32를 입력한 다음 확인을 누릅니다.
  2. HKEY_LOCAL_MACHINE\SOFTWARE\MY_SECURE_APP\
    하위 키를 누릅니다.
  3. 보안 메뉴에서 사용 권한을 눌러 사용 권한 대화 상자를 엽니다.

    Microsoft Windows XP나 Windows Server 2003에서 해당 레지스트리 키를 마우스 오른쪽 단추로 누른 다음 사용 권한을 누릅니다.
  4. 추가를 누릅니다. 열리는 대화 상자에 yourservername\ASPNET(또는 Windows Server 2003(IIS 6.0)을 사용할 경우 yourservername\NetWork Service)을 입력한 다음 확인을 누릅니다.
  5. 방금 추가한 계정에 읽기 권한이 있는지 확인한 다음 확인을 누릅니다.
  6. 레지스트리 편집기를 닫습니다.

참조

이 문서에 설명하는 기능을 사용할 수 있는 핫픽스에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
329250 FIX: processModel, identity 및 sessionState의 보다 강력한 자격 증명 방법
Microsoft Windows 레지스트리에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 Microsoft Windows 레지스트리 설명
ASP.NET에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
315158 FIX: 도메인 컨트롤러에서 비 관리자 도메인 계정을 사용하면 ASP.NET이 작동하지 않는다
317012 ASP.NET에서 프로세스 및 요청 ID




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 329290 - 마지막 검토: 2007년 10월 29일 월요일 - 수정: 8.4
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
키워드:?
kbproductlink kbdownload kbconfig kbfix kbhowtomaster kbsecurity kbstate KB329290

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com