확장 성을 위해 MEF를 사용하는 .NET 4 응용 프로그램이 있습니다. 내 주요 응용 프로그램에는 Host
, Application
및 Contracts
의 세 가지 어셈블리가 있습니다..NET에서 CAS를 사용하여 MEF 확장 프로그램을 잠글 수있는 방법은 무엇입니까?
Host
은 컨테이너를 만들고 구성을 수행하는 "부팅 스트래핑"실행 파일입니다.
에는 내 응용 프로그램의 논리가 포함되어 있으며 타사 확장 점이 더 있습니다.
Contracts
에는 확장 점에 사용되는 인터페이스 (및 일부 도우미 클래스)가 포함되어 있습니다.
따라서 타사 응용 프로그램을 개발중인 사람은 Contracts
에 대한 참조를 포함해야하지만 Application
에 대한 참조는 포함하지 않아야합니다.
내 보안 모델은 다음과 같이해야한다고 생각 해요 :해야
Host
및Application
을 SecurityCriticalContracts
해야 SecuritySafeCritical- 모든 제 3 자 확장해야 보안 투명성
기본적으로 1. 만족할 것으로 생각합니다. 어셈블리 속성을 사용하여 2.를 구현할 수 있다는 것을 알고 있습니다. 문제는 규칙 3을 어떻게 집행합니까? 운영 체제가 다운로드 한 모든 확장 프로그램을 신뢰할 수 없다고 플래그하여 자동으로 이렇게합니까? 다운로드 한 확장 어셈블리가 완전히 신뢰할 수 있습니까?
: "다운로드 한 확장 어셈블리가 완전히 신뢰하게하는 것이 가능합니까?"
다음은이 주제에 대한 MSDN 문서입니다 확장 기능이 다운로드되는 방식에 따라 달라질 수 있습니다. 사용자가 수동으로 어셈블리를 다운로드 한 다음 -Properties를 마우스 오른쪽 버튼으로 클릭하고 "차단 해제"를 선택하면 로컬 어셈블리와 같은 시스템을 찾습니다. – JaredReisinger
@JaredReisinger : 그건 의미가 있습니다. 제 3 자도 어셈블리에 서명 할 수 있다고 생각하지만, 프로세스에 대해서는 잘 모릅니다. –