보조 기술에 대한 보안 고려 사항
보조 기술은 Windows 데스크톱에서 실행되며 접근성 사용자가 운영 체제 및 새 Windows UI의 애플리케이션을 포함하여 컴퓨터에서 실행되는 다른 애플리케이션과 상호 작용하는 데 도움이 되는 애플리케이션입니다. 보조 기술 애플리케이션은 운영 체제 및 기타 애플리케이션에서 정보를 검색한 다음 사용자가 액세스할 수 있는 방식으로 정보를 제공하여 작동합니다. 보조 기술 애플리케이션은 사용자의 입력에 따라 운영 체제 및 기타 애플리케이션을 프로그래밍 방식으로 "구동"할 수도 있습니다.
보조 기술 애플리케이션의 특성상 프로세스 경계를 넘고 자체보다 더 높은 무결성 수준(IL)에서 실행되는 프로세스에 액세스할 수 있어야 합니다. (보조 기술 애플리케이션은 중간 IL에서 실행됩니다.) 예를 들어 사용자가 관리 권한이 필요한 작업을 수행하려고 하면 Windows에서 사용자에게 계속 동의를 요청하는 대화 상자를 표시합니다. 이 대화 상자는 악성 소프트웨어가 사용자 입력을 시뮬레이션할 수 없도록 교차 프로세스 통신으로부터 보호하기 위해 더 높은 IL에서 실행됩니다. 마찬가지로 데스크톱 로그온 화면은 다른 프로세스에서 액세스할 수 없도록 더 높은 IL에서 실행됩니다.
보조 기술 애플리케이션은 일반적으로 보호된 시스템 UI 요소 또는 더 높은 권한 수준에서 실행될 수 있는 다른 프로세스에 액세스해야 합니다. 따라서 보조 기술 애플리케이션은 시스템에서 신뢰할 수 있어야 하며 특별한 권한으로 실행해야 합니다.
더 높은 IL 프로세스에 액세스하려면 보조 기술 애플리케이션이 애플리케이션 매니페스트에서 UIAccess 플래그를 설정하고 관리자 권한이 있는 사용자가 시작해야 합니다.
참고 항목
액세스 권한은 다음과 같이 제한됩니다.
- 매니페스트에 UIAccess가 없는 애플리케이션은 중간 IL로 시작하고 관리자 권한("medium+" IL) 프로세스 UI에 액세스할 수 없습니다.
- 매니페스트에 UIAccess가 있고 관리자 그룹에 없는 사용자가 시작한 애플리케이션은 "medium+" IL로 시작하고 상승된 UI에 액세스할 수 없습니다(오른쪽 클릭을 통해 시작된 앱과 같이 "높음" IL로 실행되는 것은 없음 -> 관리자 권한으로 실행).
- 애플리케이션에는 UI 액세스가 있으며 관리자가 "높음" IL로 시작하고 동일한 IL을 가지므로 상승된 UI에 액세스할 수 있습니다.
UIAccess는 프로세스가 IL 경계를 통해 위로 이동하기에 충분하지 않습니다.
더 높은 IL 프로세스에 액세스할 수 있는 것 외에도 이러한 권한이 있는 보조 기술 애플리케이션은 언제든지 z 순서에서 가장 높은 애플리케이션으로 실행될 수 있습니다. 즉, 보조 기술 애플리케이션은 사용자가 필요할 때마다 표시되고 사용할 수 있습니다.
Important
이전에 나열된 시나리오 중 어느 것도 시스템 IL에서 실행되는 UI에 대한 액세스를 제공하지 않습니다. 이 작업은 SYSTEM(및 시스템 IL) 아래의 UAC(사용자 계정 컨트롤) 데스크톱에서 프로세스가 시작된 경우에만 가능합니다. 이 경우 UIAccess를 설정해도 효과가 없습니다.
보조 기술 애플리케이션에 대한 UIAccess 요구 사항
보조 기술 애플리케이션은 데스크톱 및 새 Windows UI에서 실행되는 다른 프로세스와 상호 작용하여 시스템 및 애플리케이션에서 정보를 가져오는 Windows Windows 데스크톱 애플리케이션입니다. 그런 다음 보조 기술 애플리케이션은 접근성 사용자에게 정보를 제공할 수 있습니다.
보조 기술 애플리케이션은 애플리케이션 매니페스트에서 UIAccess 플래그를 설정하여 다른 프로세스에 액세스할 수 있습니다. UIAccess 플래그를 사용하려면 보조 기술 애플리케이션이 다음 요구 사항을 충족해야 합니다.
- 접근성 시나리오에 대한 정보를 제공하기 위해 다른 애플리케이션의 정보를 표시, 상호 작용 또는 반영해야 합니다.
- 이 정보를 가져오거나 표시하려면 맨 위 창으로 실행해야 합니다.
UIAccess를 사용하려면 보조 기술 애플리케이션이 다음을 수행해야 합니다.
- 더 높은 권한 수준에서 실행되는 애플리케이션과 상호 작용하려면 인증서로 서명해야 합니다.
- 시스템에서 신뢰해야 합니다. 액세스하려면 UAC(사용자 계정 제어) 프롬프트가 필요한 안전한 위치에 애플리케이션을 설치해야 합니다. 예를 들어 Program Files 폴더입니다.
- uiAccess 플래그를 포함하는 매니페스트 파일을 사용하여 빌드합니다.
UIAccess를 사용하면 안 됩니다.
보조 기술이 아닌 애플리케이션별.
대상 접근성 시나리오와 관련이 없는 정보 또는 UI를 표시하는 보조 기술 애플리케이션을 통해
새 Windows UI의 다른 애플리케이션 위에 표시하려는 애플리케이션에 의해서입니다.
참고 항목
새 Windows UI용으로 개발된 애플리케이션에는 사용 가능한 옵션으로 UIAccess가 없습니다.
애플리케이션 매니페스트 파일에서 UIAccess 설정
보호된 시스템 UI에 액세스하려면 매니페스트 파일에 특수 특성이 포함된 매니페스트 파일을 사용하여 애플리케이션을 빌드해야 합니다. 이 uiAccess 특성은 다음 코드 예제와 같이 requestedExecutionLevel 태그에 포함됩니다.
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
uiAccess="true" />
</requestedPrivileges>
</security>
</trustInfo>
이 코드의 수준 특성 값은 예제일 뿐입니다.
UIAccess 는 기본적으로 "false"입니다. 특성을 생략하거나 매니페스트가 없는 경우 애플리케이션은 보호된 UI에 액세스할 수 없습니다.
Windows 보안, 서명 애플리케이션 및 매니페스트 만들기에 대한 자세한 내용은 Windows Vista 및 Windows Server 2008 개발자 스토리: UAC(사용자 계정 컨트롤)에 대한 Windows Vista 애플리케이션 개발 요구 사항을 참조하세요.
관련 항목