문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

신뢰할 수 있는 응용 프로그램

Silverlight

신뢰할 수 있는 응용 프로그램은 높은 권한을 요구하도록 구성하는 응용 프로그램입니다. 이러한 응용 프로그램에는 특별한 설치 요구 사항이 있지만 기본 Silverlight 샌드박스의 일부 제한을 무시할 수 있습니다. 예를 들어 신뢰할 수 있는 응용 프로그램은 키보드 제한 없이 사용자 파일에 액세스하고 전체 화면 모드를 사용할 수 있습니다.

기본적으로 Silverlight 기반 응용 프로그램은 부분 신뢰에서 실행합니다. 이러한 샌드박스 응용 프로그램은 로컬 컴퓨터에 대한 액세스가 제한되며 악의적인 동작을 방지하는 기타 방법을 통해 통제됩니다. 그러나 이러한 제약 조건으로 인해 때때로 유용하거나 필요한 시나리오, 특히 LOB(Line-of-business)에 유용하거나 필요한 시나리오가 방지됩니다.

Silverlight 5 베타에서는 시스템 관리자가 신뢰할 수 있는 응용 프로그램을 사용하여 브라우저 내부 실행 응용 프로그램을 실행할 수 있지만 신뢰할 수 있는 응용 프로그램은 일반적으로 브라우저 외부에서 실행하는 응용 프로그램입니다. 이는 엔터프라이즈 배포와 업데이트를 간소화할 수 있으며 브라우저 내에서 WebBrowserNotificationWindow 클래스를 사용할 수 있습니다. 자세한 내용은 방법: 신뢰할 수 있는 응용 프로그램이 브라우저 내에서 실행되도록 허용을 참조하십시오.

Visual Studio 프로젝트 디자이너를 사용하여 높은 신뢰 수준을 요구하도록 응용 프로그램을 구성할 수 있습니다. 디자이너에서는 응용 프로그램 매니페스트에서 적절한 값을 설정합니다. 매니페스트를 다시 빌드하지 않고 기존 응용 프로그램에 대해 매니페스트를 업데이트할 수도 있습니다. 일반적으로 높은 신뢰를 사용하도록 기능을 수정해야 합니다. 구성에 대한 자세한 내용은 방법: 브라우저 외부 실행 지원을 위해 응용 프로그램 구성을 참조하십시오.

높은 신뢰가 필요한 브라우저 외부 실행 응용 프로그램을 설치하면 기본 설치 대화 상자가 보안 경고로 대체됩니다. 이 경고에는 응용 프로그램에서 사용자 데이터를 액세스할 수 있으므로 신뢰할 수 있는 웹 사이트에서만 응용 프로그램을 설치해야 한다고 표시되어 있습니다. 설치 이후에 응용 프로그램은 이 항목에 설명된 동작을 제외하고 일반 브라우저 외부 실행 응용 프로그램처럼 동작합니다.

보안 경고는 응용 프로그램에 유효한 디지털 서명이 있는지 여부에 따라 다릅니다. 유효한 서명이 없는 응용 프로그램(확인되지 않은 응용 프로그램이라고도 함)은 큰 보안 위험이 있으므로, 경고가 더욱 두드러집니다. 다음 이미지는 디지털 서명을 추가하기 전과 후의 단일 응용 프로그램에 대한 보안 경고를 보여 줍니다.

확인되지 않은 응용 프로그램에 대한 보안 경고

확인되지 않은 응용 프로그램에 대한 보안 경고
확인된 응용 프로그램에 대한 보안 경고

확인된 응용 프로그램에 대한 보안 경고

자세한 내용은 이 항목의 "응용 프로그램 서명" 단원을 참조하십시오.

대부분의 Silverlight 설명서에서는 모든 응용 프로그램이 브라우저 호스팅된 샌드박스 응용 프로그램이라고 가정합니다. 이 항목에서는 신뢰할 수 있는 응용 프로그램과 샌드박스 응용 프로그램의 차이점에 대해 설명합니다. 특히, 높은 신뢰가 사용되는 기능과 응용 프로그램이 높은 신뢰 수준으로 실행되는지 여부를 결정하는 방법에 대해 설명합니다.

참고 참고:

Silverlight 5 베타에서 신뢰할 수 있는 응용 프로그램은 Silverlight의 이전 버전에서 사용할 수 없는 추가 기능을 갖고 있습니다. 특히, Silverlight 5 베타 신뢰할 수 있는 응용 프로그램은 다음을 수행할 수 있습니다.

  • 제한 없이 로컬 파일 시스템에 액세스합니다.

  • MethodAccessException 발생 없이 보안에 중요한 메서드에 액세스합니다. 이는 Windows 기반 응용 프로그램의 경우에만 지원됩니다.

  • 앞에서 언급했듯이 컴퓨터 및 응용 프로그램이 적절히 구성된 경우 브라우저 안에서 실행합니다.

  • 브라우저 외부에서 실행할 때 여러 창을 만듭니다. 자세한 내용은 Window 클래스를 참조하십시오.

  • Windows 기반 응용 프로그램을 위해 관리되지 않는 함수를 호출하는 데 플랫폼 호출을 사용합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

신뢰할 수 있는 응용 프로그램은 도메인 간 및 도메인 체계 간 액세스 제한을 따르지 않고 네트워킹 및 소켓 통신을 수행할 수 있습니다. 예를 들어 HTTP 프로토콜을 사용하는 특정 하위 도메인에서 설치한 응용 프로그램은 HTTPS 프로토콜을 사용하는 개별 하위 도메인의 미디어 파일에 액세스할 수 있습니다. 도메인 간 통신에 대한 자세한 내용은 Silverlight를 사용한 HTTP 통신 및 보안을 참조하십시오.

또한 신뢰할 수 있는 응용 프로그램은 완화된 정책 확인을 통해 System.Net.Sockets 네임스페이스의 네트워킹 클래스를 사용할 수 있습니다. 이러한 클래스로는 새 UdpAnySourceMulticastClientUdpSingleSourceMulticastClient 클래스가 있습니다.

신뢰할 수 있는 응용 프로그램은 도메인 간 정책 파일이 없어도 모든 호스트에서 모든 포트에 대해 TCP 연결을 만들 수 있습니다. 대상 포트는 더 이상 4502-4534 범위에 포함되지 않아도 됩니다. 마찬가지로, UdpAnySourceMulticastClientUdpSingleSourceMulticastClient 클래스를 사용하는 신뢰할 수 있는 응용 프로그램은 정책 응답자가 연결에 대해 권한을 부여하지 않아도 1024 이상의 모든 포트에서 멀티캐스트 그룹에 가입할 수 있습니다. 자세한 내용은 Silverlight의 네트워크 보안 액세스 제한을 참조하십시오.

샌드박스 응용 프로그램은 Content.FullScreenOptions 속성의 StaysFullScreenWhenUnfocused 설정과 Clipboard, AudioSinkVideoSink 클래스에 제공된 기능에 액세스하려면 사용자의 동의가 필요합니다. 신뢰할 수 있는 응용 프로그램은 AudioSink(마이크) 및 VideoSink(카메라) 기능에 액세스하는 경우를 제외하고 사용자 동의가 필요하지 않습니다.

Silverlight의 대부분의 동작은 단추 클릭 이벤트와 같은 사용자 시작 동작에 대한 응답으로 사용됩니다. 또한 이러한 기능은 사용자 시작 동작 1초 이내에 사용해야 합니다. 이 요구 사항은 응용 프로그램이 운영 체제 기능을 스푸핑하지 못하도록 하는 보안 기능입니다.

신뢰할 수 있는 응용 프로그램은 사용자 시작 동작 없이 이러한 대부분의 기능을 사용할 수 있습니다. 예를 들어 Application.Startup 이벤트 처리기에서 전체 화면 모드를 시작하거나 서식 지정 작업을 오래 수행한 이후에 Clipboard에 쓸 수 있습니다.

이전 단원에서 설명한 것처럼 신뢰할 수 있는 응용 프로그램은 사용자 시작 동작이나 사용자의 동의 없이 전체 화면 모드를 시작하여 유지할 수 있습니다. 또한 신뢰할 수 있는 응용 프로그램은 Content.FullScreenOptions 속성의 StaysFullScreenWhenUnfocused 설정을 사용할 수 있습니다.

신뢰할 수 있는 응용 프로그램에서 전체 화면 모드를 시작하는 경우 "전체 화면 모드를 종료하려면 Esc 키를 누르십시오."라는 메시지가 표시되지 않습니다. 신뢰할 수 있는 응용 프로그램은 키 입력을 자동으로 차단하지 않으며 전체 화면 모드에서 키보드 제한이 없습니다.

이 때문에 키보드 제한을 변경하고 Esc 키를 누르면 신뢰할 수 있는 응용 프로그램에서 전체 화면 모드가 종료되지 않습니다. 따라서 Esc 키를 다른 기능에 사용할 수 있습니다. 하지만 전체 화면 모드 종료를 위한 사용자 인터페이스를 지정해야 합니다.

자세한 내용은 전체 화면 지원을 참조하십시오.

신뢰할 수 있는 응용 프로그램은 완전히 사용자 지정된 사용자 인터페이스를 제공하기 위해 브라우저 외부 실행 응용 프로그램 창의 제목 표시줄과 테두리를 숨길 수 있습니다. 이 기능을 사용하는 방법은 방법: 브라우저 외부 실행 지원을 위해 응용 프로그램 구성을 참조하십시오.

제목 표시줄 및 테두리를 숨기면 Silverlight에서 흰색 배경에만 응용 프로그램 콘텐츠가 표시됩니다. 배경이 투명하지 않기 때문에 이 기능을 사용하여 비정형 응용 프로그램을 만들 수 없습니다. 하지만 모퉁이 반지름이 9픽셀인 둥근 모퉁이 사용 옵션이 있습니다. 자세한 내용은 WindowSettings.WindowStyle 속성을 참조하십시오.

제목 표시줄 및 테두리에 제공된 기능을 바꾸려면 Window 클래스의 API를 사용할 수 있습니다. 창 또는 창 테두리를 끌 수 있도록 허용하려면 DragMoveDragResize 메서드를 사용합니다. Left , Top, WidthHeight 속성을 사용하여 창 위치와 크기를 조정할 수도 있습니다. 창을 최소화 및 최대화하도록 허용하려면 WindowState 속성을 사용합니다. 창 닫기를 허용하려면 Close 메서드를 사용합니다.

신뢰할 수 있는 응용 프로그램은 System.IO 형식 및 사용할 수 없는 관련 형식을 액세스할 수 있습니다. 따라서 OpenFileDialogSaveFileDialog 클래스를 사용하지 않고 사용자 파일에 직접 액세스할 수 있습니다.

Silverlight 5 베타에서는 신뢰할 수 있는 응용 프로그램이 로컬 파일 시스템에 무제한 액세스합니다. 그러나 이전 버전의 신뢰할 수 있는 응용 프로그램에서는 사용자 폴더, 즉 MyDocuments, MyMusic, MyPicturesMyVideos 폴더의 파일만 액세스할 수 있습니다.

참고 참고:

이러한 폴더는 Windows 7 라이브러리에서 문서, 음악, 사진 및 비디오라는 이름으로 표시됩니다. 이러한 라이브러리 폴더는 일반적으로 사용자 폴더의 콘텐츠와 공유 미디어 폴더 등의 다른 폴더를 결합합니다. 하지만 신뢰할 수 있는 응용 프로그램은 OpenFileDialogSaveFileDialog 클래스를 사용하지 않는 한 사용자 폴더가 아닌 폴더에 액세스할 수 없습니다.

사용자 폴더에 대한 경로를 가져오려면 Environment.GetFolderPath 메서드를 사용해야 합니다. 이러한 경로를 직접 지정할 수 없습니다.

다음 표에서는 Silverlight 4가 대상으로 하는 신뢰할 수 있는 응용 프로그램에서 사용 가능한 System.IO 네임스페이스 내 클래스를 보여 줍니다. 또한 지원되지 않는 각 클래스의 멤버를 보여 줍니다.

class

지원되지 않는 멤버

Directory

GetCurrentDirectory

GetDirectoryRoot

SetCurrentDirectory

DirectoryInfo

Root

MoveTo

File

SetAttributes

FileInfo

모든 멤버 지원

FileStream

BeginRead

BeginWrite

CanRead

CanSeek

CanWrite

EndRead

EndWrite

Path

GetTempFileName

GetTempPath

StreamReader

Stream 인수를 사용하는 생성자

Stream 인수를 사용하는 생성자

자세한 내용은 표시된 참조 항목과 방법: 신뢰할 수 있는 응용 프로그램에서 로컬 파일 시스템 액세스를 참조하십시오.

신뢰할 수 있는 응용 프로그램은 네이티브 운영 체제의 일부 기능에 액세스할 수 있습니다. 예를 들어 Windows에서 신뢰할 수 있는 응용 프로그램은 자동화 기능을 사용하고 Office 제품군 및 다른 응용 프로그램에 노출된 구성 요소를 액세스하거나 조작할 수 있습니다. 뿐만 아니라 Silverlight 5 베타에서는 플랫폼 호출이 관리되지 않는 함수를 호출하도록 할 수 있습니다.

자동화 상호 작용에 대한 자세한 내용은 AutomationFactory방법: 신뢰할 수 있는 응용 프로그램에서 자동화 사용을 참조하십시오. 플랫폼 사용에 대한 자세한 내용은 방법: 신뢰할 수 있는 응용 프로그램에서 비관리 코드 호출을 참조하십시오.

응용 프로그램이 현재 높은 신뢰 수준으로 실행되고 있는지 여부를 결정하려면 HasElevatedPermissions 속성을 확인합니다. 이 기능은 응용 프로그램이 부분 신뢰 수준으로 실행되는 경우에 대체 코드 경로를 제공하는 데 유용합니다.

신뢰할 수 있는 응용 프로그램은 호스트 컴퓨터에 대한 모든 권한이 없더라도 개인 데이터에 액세스하여 위험을 야기할 수 있습니다. 따라서 보안 평가 및 감사를 수행할 때 신뢰할 수 있는 응용 프로그램을 완전 신뢰 응용 프로그램으로 처리해야 합니다. 사용자가 신뢰할 수 있는 응용 프로그램을 설치하거나 실행하지 못하도록 하려면 이 항목의 "높은 신뢰에 대한 정책 제한" 단원에 설명된 것처럼 시스템 관리자가 컴퓨터 정책 설정을 사용하여 액세스를 거부할 수 있습니다.

신뢰할 수 있는 응용 프로그램은 사용자가 관리자 권한으로 설치하더라도 사용자 권한으로 실행됩니다. 하지만 개발 과정에서 디버깅하여 신뢰할 수 있는 응용 프로그램이 높은 권한으로 실행될 수 있으므로 적절하게 테스트해야 합니다.

Silverlight에서는 균일한 권한(신뢰할 수 있는 권한 또는 샌드박스)을 가진 AppDomain 인스턴스 내에서 모든 응용 프로그램 코드를 실행합니다. 응용 프로그램에 집계되는 외부 구성 요소를 확인하고 검증하는 것은 응용 프로그램 개발자의 책임입니다.

브라우저 외부 실행 응용 프로그램은 호스트 웹 사이트의 보안 수준 내에서만 안전합니다. 따라서 사용자는 브라우저 외부 실행 응용 프로그램을 설치하거나 업데이트할 때 호스트 사이트의 보안을 사용해야 합니다. 다음 목록에서는 보안 향상을 위해 수행할 수 있는 일부 작업에 대해 설명합니다.

  • 이 항목의 "응용 프로그램 서명" 단원에 설명한 것처럼 응용 프로그램에 서명합니다.

  • 응용 프로그램에서 호스트 서버의 리소스에 액세스하는 경우 SilverlightHost.Source 속성 값이 예상된 원본 사이트 URI와 일치하는지 확인해야 합니다.

  • 응용 프로그램에서 중요한 정보를 처리하거나 서버에서 추가 코드를 로드하는 경우 응용 프로그램 URI 및 보안 통신에 HTTPS를 사용해야 합니다. 업데이트를 확인할 때는 항상 원래 응용 프로그램의 URI(프로토콜 포함)가 사용됩니다.

  • 브라우저 외부 실행 응용 프로그램은 연결을 사용할 수 있을 경우 HTTPS를 통해 네트워크 리소스에 액세스할 수 있습니다. 인증서가 만료되거나 잘못된 경우 네트워킹 호출이 실패합니다. 그러나 지금은 보안 채널에 대한 기본 제공 표시기가 없습니다. 신뢰 수준을 높이려면 자체 표시기를 제공합니다.

신뢰할 수 있는 브라우저 응용 프로그램은 Internet Explorer 보호 모드 같은 브라우저 보안 설정에 의해 부여된 제한의 적용을 받습니다.

일반 Silverlight 보안 지침에 대한 자세한 내용은 보안를 참조하십시오.

신뢰할 수 있는 응용 프로그램에 디지털 서명을 추가하면 응용 프로그램을 보안하고 설치 중에 사용자 신뢰 수준을 높일 수 있습니다. 또한 유효한 디지털 서명이 있는 신뢰할 수 있는 응용 프로그램에서만 브라우저 외부 실행 업데이트 메커니즘을 사용할 수 있습니다. 유효한 서명이 없는 신뢰할 수 있는 응용 프로그램을 업데이트하려면 사용자가 직접 이전 버전을 제거하고 새 버전을 설치해야 합니다. Silverlight 5 베타에서 신뢰할 수 있는 응용 프로그램도 브라우저 내에서 실행하려면 유효한 디지털 서명이 있어야 합니다. 추가 요구 사항에 대한 자세한 내용은 방법: 신뢰할 수 있는 응용 프로그램이 브라우저 내에서 실행되도록 허용을 참조하십시오.

디지털 서명을 신뢰할 수 있는 응용 프로그램에 추가하려면 Visual Studio 프로젝트 디자이너의 서명 탭을 사용할 수 있습니다. 이를 위해 프로젝트 메뉴에서 <ProjectName> 속성을 선택하고 서명 탭을 클릭한 다음 Sign the Xap File을 선택합니다. 그런 다음 사용 가능한 단추를 사용하여 기존 Authenticode X.509 코드 서명 인증서를 선택하거나 테스트 인증서를 만들 수 있습니다.

Authenicode X.509 코드 서명 인증서와 함께 SignTool.exe 유틸리티를 사용하여 디지털 서명을 추가할 수도 있습니다. 예를 들어 다음과 같은 명령줄을 사용할 수 있습니다.

signtool sign /v /f certificateFile.pfx   fileToSign

자세한 내용은 SignTool.exe(서명 도구)를 참조하십시오.

코드 서명은 신뢰할 수 있는 응용 프로그램에만 해당됩니다. 사용자가 응용 프로그램을 설치하거나 업데이트할 때마다 Silverlight에서는 서명과 인증서를 확인합니다. 유효한 서명 없이 신뢰할 수 있는 응용 프로그램을 설치할 수 있습니다. 하지만 원본 응용 프로그램과 업데이트에 서명이 있고 유효한 코드 서명 인증서가 동일하지 않은 경우 Silverlight에서 신뢰할 수 있는 응용 프로그램을 업데이트할 수 없습니다. 또한 업데이트 시점에 인증서가 만료되지 않아야 합니다. 따라서 배포 및 업데이트 계획을 수립할 때 인증서 만료 날짜를 고려하십시오.

참고 참고:

Silverlight에서는 원본 사이트 호스트가 localhost 또는 127.0.0.1인 경우 응용 프로그램 업데이트를 금지하지 않습니다. 따라서 디지털 서명 없이 업데이트 코드를 테스트할 수 있습니다.

응용 프로그램 업데이트에 대한 자세한 내용은 브라우저 외부 실행 지원을 참조하십시오.

시스템 관리자는 높은 신뢰 수준이 요구되는 브라우저 외부 실행 응용 프로그램을 사용자가 설치하거나 실행하지 못하도록 컴퓨터를 구성할 수 있습니다.

신뢰할 수 있는 응용 프로그램을 설치하지 못하도록 설정한 경우 신뢰할 수 있는 응용 프로그램을 설치하려고 시도해도 소용이 없습니다. 이 경우 이미 설치되어 있거나 관리자가 설치한 신뢰할 수 있는 응용 프로그램은 올바르게 작동합니다.

신뢰할 수 있는 응용 프로그램을 실행하지 못하도록 설정한 경우 신뢰할 수 있는 응용 프로그램을 실행하려고 시도하면 빈 브라우저 외부 실행 응용 프로그램 창이 표시됩니다. 일반적으로 신뢰할 수 있는 응용 프로그램을 실행하지 못하도록 설정한 경우 신뢰할 수 있는 응용 프로그램을 설치할 수도 없습니다.

자세한 내용은 그룹 정책 설정을 참조하십시오.

Windows Phone용 Silverlight Windows Phone용 Silverlight 및 Silverlight 3에서는 신뢰할 수 있는 응용 프로그램을 지원하지 않습니다.

커뮤니티 추가 항목

추가
표시: