보조 기술에 대한 보안 고려 사항
보조 기술은 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의 다른 애플리케이션 위에 표시하려는 애플리케이션에 의해서입니다.
참고 항목
UWP 애플리케이션에는 사용 가능한 옵션으로 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 애플리케이션 개발 요구 사항을 참조하세요.
관련 항목