Microsoft Corporation
업데이트한 날짜: 2006년 9월
Windows Vista 개발자를 위한 정보 (영문)에서는 Windows Vista에 포함된 새롭고 확장된 기능에 대한 깊이 있는 내용에 관심이 있는 개발자, 기타 기술 전문가 및 관리자를 위한 내용을 다루고 있습니다. 이 정보는 Windows Vista 개발자 센터 (영문)에 간단한 기사 형식으로 약 2주에 한 번씩 게시됩니다. 이러한 기사는 여기에서 다운로드 가능한 Windows 도움말 파일을 요약한 것입니다.
참고 이 항목은 시험판 설명서이며 이후 릴리스에서 변경될 수 있습니다.
참고 이 기사에 대한 의견은 Vistadev@microsoft.com으로 전자 메일을 보내 주십시오.
목차
이 기사에는 사용자 계정 컨트롤(UAC) 호환 응용 프로그램을 작성하려는 응용 프로그램 개발자를 지원하기 위한 정보가 포함되어 있습니다. 이 기사는 다음 섹션으로 구성되어 있습니다.
- 사용자 계정 컨트롤을 사용하는 이유—UAC의 개발 배경
- UAC 작동 원리—UAC 기능에 대한 자세한 내용
- UAC가 응용 프로그램에 미치는 영향—응용 프로그램을 UAC 호환으로 만들어야 하는지 여부를 판단하는 방법
- Windows Vista용 응용 프로그램 설계—UAC 호환 응용 프로그램을 설계하는 방법
- 표준 사용자를 위한 응용 프로그램 배포 및 패치—표준 사용자를 위해 응용 프로그램을 배포하는 방법
- 일반적인 문제 해결—Microsoft .NET 응용 프로그램에서 발생하는 일반적인 개발 및 설치 문제 나열
-
참조—가상화 참조 및 보안 설정 참조 포함
참고 이 기사의 전체 내용은 여기에서 다운로드 가능한 Windows 도움말 파일에서 볼 수 있습니다. 도움말 파일에서 이 항목을 찾으려면 Fundamentals(기본), Secure Applications(보안 응용 프로그램), Developing Secure Applications(보안 응용 프로그램 개발)를 순서대로 확장한 다음 User Account Control (UAC)(사용자 계정 컨트롤)을 클릭하면 됩니다.
사용자 계정 컨트롤을 사용하는 이유
응용 프로그램 개발자들은 과도한 사용자 권한 및 Windows 권한을 요구하는 Microsoft Windows 응용 프로그램을 계속해서 개발하고 있으며, 이러한 응용 프로그램은 대개 실행하는 사용자가 관리자일 것을 요구합니다. 이로 인해 필요한 최소 사용자 권한 및 Windows 권한으로 Windows를 실행하는 사용자는 극소수에 불과한 실정입니다. 배포 및 사용의 용이함과 보안 사이에서 균형을 잡고자 하는 많은 기업들은 표준 사용자 응용 프로그램의 호환성 문제를 피하기 위해 대부분 관리자로 데스크톱을 배포하는 방법에 의존했습니다.
이외에도 Microsoft Windows Vista 이전 컴퓨터에서 표준 사용자로 운영 체제를 실행하기 어려운 이유를 자세히 설명하자면 다음과 같습니다.
- 많은 Windows 응용 프로그램에서 로그온한 사용자가 관리자일 것을 요구하지만 실제로 관리자 수준의 액세스가 필요한 것은 아닙니다. 이러한 응용 프로그램은 실행을 허용하기 전에 다음과 같은 다양한 관리자 액세스 확인을 수행합니다.
a. 관리자 액세스 토큰 확인
b. 시스템 보호 위치에 "모든 액세스" 액세스 요청
c. %ProgramFiles%, %WinDir% 및 HKLM\Software와 같은 보호 위치에 데이터 쓰기 - 많은 Windows 응용 프로그램이 최소 권한에 대한 개념 없이 설계되고 있으며 사용자 기능과 관리자 기능을 별도의 프로세스로 분리하지 않고 있습니다.
- Windows 2000 및 Windows XP는 기본적으로 새 사용자 계정을 생성할 때 관리자로 생성합니다. 따라서 표준 사용자의 경우 날짜 및 시간, 전원 관리 제어판과 같은 핵심 Windows 구성 요소가 제대로 작동하지 않습니다.
- Windows 2000 및 Windows XP 관리자는 각각 관리 작업을 위한 계정과 일상적인 작업을 위한 표준 사용자 계정으로 분리하여 두 개의 사용자 계정을 만들어야 합니다. 따라서 사용자는 관리 작업을 수행하려면 표준 사용자 계정에서 로그오프하고 관리자로 다시 로그인하거나 '다음 계정으로 실행' 기능을 사용해야 합니다.
Microsoft는 사용자 계정 컨트롤(UAC)을 통해 기업 및 가정에서 표준 사용자 데스크톱 배포를 간소화하는 기술을 제공하고 있습니다.
UAC 팀은 원래 Microsoft Windows NT 3.1 운영 체제에서 설계되었던 Windows 보안 아키텍처를 바탕으로 유연하면서도 좀 더 안전한 표준 사용자 모델을 구현하기 위한 방법을 모색했습니다. 이전 버전의 Windows에서는 로그온 프로세스 중에 한 명의 관리자에 대해 하나의 액세스 토큰이 생성되었습니다. 관리자의 액세스 토큰에는 대부분의 Windows 권한과 관리자 SID(보안 식별자)가 포함되어 있습니다. 이 액세스 토큰은 관리자가 응용 프로그램을 설치하고 운영 체제를 구성하고 모든 리소스에 액세스할 수 있도록 합니다.
UAC 팀은 Windows Vista에서 액세스 토큰 생성 과정에 전혀 다른 접근 방식을 사용했습니다. 관리자가 Windows Vista 컴퓨터로 로그인하면 필터링된 표준 사용자 액세스 토큰과 전체 관리자 액세스 토큰이라는 두 개의 액세스 토큰이 생성됩니다. 관리자의 액세스 토큰으로 데스크톱(Explorer.exe)을 시작하지 않고 표준 사용자 액세스 토큰이 사용됩니다. 모든 하위 프로세스는 이 초기 데스크톱(explorer.exe 프로세스)에서 상속되며, 이는 Windows Vista의 공격 취약 부분을 제한하는 데 도움이 됩니다. 기본적으로 관리자를 포함한 모든 사용자는 표준 사용자로 Windows Vista 컴퓨터에 로그온합니다.
참고 앞의 설명에 대한 한 가지 예외로 컴퓨터에 대한 게스트 로그온이 있으며 이 경우에는 표준 사용자보다 사용자 권한 및 권한이 적습니다.
관리자가 응용 프로그램 설치와 같은 관리 작업을 수행하려고 시도하면 UAC는 사용자에게 작업을 승인할 것인지 묻는 메시지를 표시합니다. 사용자가 작업을 승인하면 관리자의 전체 관리자 액세스 토큰으로 작업이 시작됩니다. 기본 관리자 프롬프트 동작은 이와 같으며, 로컬 Security Policy Manager(보안 정책 관리자) 스냅인(secpol.msc) 및 그룹 정책(gpedit.msc)을 통해 구성할 수 있습니다.
참고 UAC를 사용하는 Windows Vista 컴퓨터의 관리자 계정은 '관리자 승인 모드의 관리자 계정'이라고도 합니다. 관리자 승인 모드는 관리자에 대한 기본 사용자 환경을 식별합니다.
관리를 위한 각 권한 상승은 프로세스별로 수행되므로 다른 프로세스가 사용자에게 승인을 요청하지 않고 액세스 토큰을 사용하는 현상이 발생하지 않습니다. 따라서 관리자는 응용 프로그램이 설치하는 항목을 더 세분화하여 제어할 수 있으며, 로그온한 사용자가 전체 관리자 액세스 토큰으로 실행하기를 기다리는 악의적인 소프트웨어에도 효과적으로 대응할 수 있습니다.
표준 사용자는 또한 UAC 인프라를 사용하여 흐름에 따라 권한을 높이고 관리 작업을 수행할 수 있습니다. 표준 사용자가 관리 작업을 수행하려고 시도하면 UAC는 사용자에게 관리자 계정을 위한 유효한 자격 증명을 입력하도록 요구합니다. 기본 표준 사용자 프롬프트 동작은 이와 같으며, 로컬 Security Policy Manager(보안 정책 관리자) 스냅인(secpol.msc) 및 그룹 정책(gpedit.msc)을 통해 구성할 수 있습니다.
Windows Vista 업데이트
다음 업데이트는 Windows Vista에 적용된 기능상의 누적 핵심 변경 내용을 반영합니다.
- 많은 Windows 응용 프로그램에서 로그온한 사용자가 관리자일 것을 요구하지만 실제로 관리자 수준의 액세스가 필요한 것은 아닙니다. 이러한 응용 프로그램은 실행을 허용하기 전에 다음과 같은 다양한 관리자 액세스 확인을 수행합니다.
- 기본적으로 UAC 사용
- 이후의 모든 사용자 계정은 표준 사용자로 생성
- 보안 데스크톱에 기본적으로 권한 상승 프롬프트 표시
- 배경 응용 프로그램에 대한 권한 상승 프롬프트를 작업 표시줄로 최소화
- 사용자의 로그온 경로에서 권한 상승 차단
- 새 설치에서 기본 제공 계정 관리자 계정은 기본적으로 사용하지 않도록 설정
- 사용자 계정 컨트롤 및 원격 시나리오
-
새 기본 ACL(Access Control List) 설정
위에 나열된 Windows Vista 업데이트 목록에 대한 자세한 내용은 여기에서 다운로드 가능한 Windows 도움말 파일에서 볼 수 있습니다.
UAC 작동 원리
이 섹션에서는 응용 프로그램 개발자를 위한 UAC의 구조적 및 기능적 구성 요소에 대해 설명하고 'Windows Vista의 새로운 기술' 및 'UAC 아키텍처'에 대한 내용을 다룹니다.
Windows Vista의 새로운 기술
다음 섹션에서는 Windows Vista의 새로운 기술을 설명합니다.
- 설치 관리자 검색
- Windows Installer 4.0을 사용한 표준 사용자 패치
- 사용자 인터페이스 권한 격리
-
가상화
Windows Vista의 새로운 기술 및 액세스 토큰 변경 사항에 대한 자세한 내용은 여기에서 다운로드 가능한 Windows 도움말 파일의 New Technology(새로운 기술) 섹션에서 볼 수 있습니다.
UAC 아키텍처
다음 다이어그램에서는 Windows Vista에서 실행 파일이 시작되는 프로세스 흐름을 보여 줍니다.
UAC 아키텍처
다음은 UAC 아키텍처 다이어그램에 표시된 프로세스 흐름에 대한 설명 및 실행 파일이 시작될 때 UAC의 구현 방법에 대한 설명입니다.
표준 사용자 시작 경로
Windows Vista 표준 사용자 시작 경로는Windows XP 시작 경로와 비슷하지만 약간 수정된 부분이 있습니다.
- ShellExecute()가 CreateProcess()를 호출합니다.
- CreateProcess()가 AppCompat, Fusion 및 설치 관리자 검색을 호출하여 응용 프로그램에 권한 상승이 필요한지 여부를 평가합니다. 그 다음 실행 파일의 응용 프로그램 매니페스트에 저장되어 있는 requestedExecutionLevel을 확인하기 위해 실행 파일에 대한 검사가 수행됩니다. AppCompat 데이터베이스는 응용 프로그램의 응용 프로그램 호환성 수정 항목을 위한 정보를 저장합니다. 설치 관리자 검색이 설치 실행 파일을 검색합니다.
- CreateProcess()가 ERROR_ELEVATION_REQUIRED를 나타내는 Win32 오류 코드를 반환합니다.
- ShellExecute()는 이 새로운 오류를 대기하다가 오류를 수신하면 응용 프로그램 정보 서비스(AIS)를 호출하여 권한 상승 시작을 시도합니다.
권한 상승 시작 경로
Windows Vista 권한 상승 시작 경로는 새로운 Windows 시작 경로입니다.
- AIS는 ShellExecute()에서 호출을 수신하고 요청된 실행 수준 및 그룹 정책을 다시 평가하여 권한 상승의 허용 여부를 결정하고 권한 상승 사용자 환경을 정의합니다.
- 요청된 실행 수준에 권한 상승이 필요한 경우 이 서비스는 ShellExecute()에서 전달된 HWND를 사용하여 그룹 정책을 기반으로 호출자의 대화형 데스크톱에서 권한 상승 프롬프트를 시작합니다.
- 사용자가 승인하거나 유효한 자격 증명을 제시하면 그 다음 AIS가 필요한 경우 적절한 사용자와 연결된 해당 액세스 토큰을 검색합니다. 예를 들어 highestAvailable의 requestedExecutionLevel을 요청하는 응용 프로그램은 로컬 Administrators 그룹의 구성원이 아닌 Backup Operators 그룹의 구성원인 사용자에 대한 다양한 액세스 토큰을 검색하게 됩니다.
AIS는 관리자 액세스 토큰을 공급하고 호출자의 대화형 데스크톱을 지정하면서 CreateProcessAsUser() 호출을 다시 수행합니다.
UAC가 응용 프로그램에 미치는 영향
응용 프로그램이 UAC에 의해 영향을 받는지 여부는 응용 프로그램의 현재 상태에 따라 달라집니다. Microsoft Windows® 보안 요구 사항을 준수하기 위한 별도의 변경이 필요 없는 경우도 일부 있습니다. 그러나 기간 업무(LOB) 응용 프로그램을 비롯한 일부 응용 프로그램의 경우 Windows Vista UAC 환경에서 올바르게 작동하려면 설치, 기능 및 업데이트 프로세스를 변경해야 합니다.
참고 응용 프로그램이 Windows XP에서 표준 사용자로 잘 작동한다면 Windows Vista에서도 표준 사용자로 잘 작동합니다.
이 항목에 대한 자세한 내용은 여기에서 다운로드 가능한 Windows 도움말 파일에서 다음 하위 섹션을 참조하십시오.
- Why Do I Need to Remove My Application's Administrative Dependencies?(응용 프로그램의 관리 종속성을 제거해야 하는 이유)
- Reducing Your Application's Total Cost of Ownership(응용 프로그램의 총 소유 비용 절감)
- How Do I Determine If My Application Has Administrative Dependencies?(응용 프로그램에 관리 종속성이 있는지 확인하는 방법)
-
What Are the Requirements If I Have a Legitimate Administrator Application?(신뢰할 수 있는 관리자 응용 프로그램이 있는 경우의 요구 사항)
Windows Vista용 응용 프로그램 설계
다음 목록은 Windows Vista용 응용 프로그램을 설계하기 위한 워크플로를 나타냅니다.
- 1단계: 응용 프로그램을 테스트하여 응용 프로그램 호환성을 확인합니다.
- 2단계: 응용 프로그램을 표준 사용자, 관리자 또는 혼합 사용자 응용 프로그램 중 하나로 분류합니다.
- 3단계: 응용 프로그램의 기능을 UAC 호환성을 위해 다시 설계합니다.
- 4단계: 응용 프로그램의 사용자 인터페이스를 UAC 호환성을 위해 다시 설계합니다.
- 5단계: 응용 프로그램의 설치 관리자를 다시 설계합니다.
- 6단계: 응용 프로그램의 응용 프로그램 매니페스트를 만들고 삽입합니다.
- 7단계: 응용 프로그램을 테스트합니다.
- 8단계: 응용 프로그램에 Authenticode 서명을 추가합니다.
- 9단계: Windows Vista 로고 프로그램에 참여합니다.
위에 나열된 여러 단계에서는 개발자를 위한 예제와 코드 샘플이 제공됩니다. 위에 나열된 단계에 대한 자세한 내용은 여기에서 다운로드 가능한 Windows 도움말 파일에서 볼 수 있습니다.
표준 사용자를 위한 응용 프로그램 배포 및 패치
일반적으로 기업에서는 관리 비용을 절감하기 위해 자동화된 방식으로 사용자의 워크스테이션에 응용 프로그램을 설치하는 방법을 고려해야 합니다. 기본적으로 이 문제는 두 가지 부분, 즉 응용 프로그램을 배포용 패키지로 만드는 방법과 이를 배포하는 데 사용할 기술로 구성됩니다. 규모가 작은 기업 환경에서는 견고한 자동 배포 메커니즘이 필요 없을 수도 있습니다. 표준 사용자를 위한 응용 프로그램 배포 및 패치에 대한 자세한 내용은 여기에서 다운로드 가능한 Windows 도움말 파일에서 볼 수 있습니다.
일반적인 문제 해결
다음 섹션에서는 Windows Vista의 응용 프로그램에서 발생하는 일반적인 문제에 대해 설명합니다.
일반적인 문제에는 다음이 포함됩니다.
- ActiveX 설치 문제
- ActiveX 문서 설치 안 함
- 응용 프로그램, 프레임워크 또는 추가 기능 필요
- 설치/패치에 관리 권한 필요
- 사용자별 응용 프로그램 설정 위치
-
UAC/DR 응용 프로그램에서 기본적으로 보호 디렉터리에 저장하려는 문제
자세한 내용은 여기에서 다운로드 가능한 Windows 도움말 파일의 Troubleshooting Common Issues(일반적인 문제 해결) 섹션을 참조하십시오.
참조
이 섹션에는 가상화 참조 및 보안 설정 참조가 포함되어 있습니다.
자세한 내용은 Windows 도움말 파일에서 References(참조) 섹션을 참고하십시오.
참고 이 기사의 전체 내용은 여기에서 다운로드 가능한 Windows 도움말 파일에서 볼 수 있습니다. 도움말 파일에서 이 항목을 찾으려면 Fundamentals(기본), Secure Applications(보안 응용 프로그램),Developing Secure Applications(보안 응용 프로그램 개발)를 순서대로 확장한 다음 User Account Control (UAC)(사용자 계정 컨트롤)을 클릭하면 됩니다.
원본 위치 <http://www.microsoft.com/korea/msdn/library/ko-kr/dnlong/html/wvduac.aspx>
'IT > Window' 카테고리의 다른 글
Loopback Adapter 구성 (0) | 2008.01.19 |
---|---|
[펌]윈도우 설치후 한영키가 Alt 키로 작동? (1) | 2007.12.30 |
Win Vista & 2008 Frontpage Server Extensions 설치 (0) | 2007.12.27 |
응용 프로그램에서 Windows Vista 사용자 계정 컨트롤 사용 (0) | 2007.12.26 |
IE7 의 탭 단축키 설명 (0) | 2007.10.26 |