COPP 개요
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
COPP(Certified Output Protection Protocol)를 사용하기 위해 애플리케이션에서 수행해야 하는 기본 단계는 다음과 같습니다.
드라이버의 인증서 체인 가져오기
- 비디오 혼합 렌더러(VMR-7 또는 VMR-9) 또는 EVR( 고급 비디오 렌더러 필터)을 사용하여 비디오를 렌더링하는 DirectShow 재생 그래프를 빌드합니다.
- IAMCertifiedOutputProtection 인터페이스에 대한 VMR을 쿼리합니다.
- IAMCertifiedOutputProtection::KeyExchange를 호출합니다. 이 메서드는 드라이버의 2048비트 RSA 공개 키를 포함하는 인증서 체인과 함께 드라이버에서 128비트 난수를 반환합니다.
인증서 체인 유효성 검사
- 인증서 체인의 유효성을 검사합니다. 인증서 체인이 유효하지 않으면 중지합니다.
- CRL(인증서 해지 목록)을 확인합니다. 인증서 체인의 인증서가 해지 목록에 표시되면 중지합니다.
- 인증서 체인에서 RSA 공개 키를 가져옵니다.
COPP 세션 초기화
- 128비트 AES 세션 키를 생성합니다. 이 키는 데이터에 서명하고 서명된 데이터가 변조되지 않았는지 확인하는 데 사용됩니다.
- 두 개의 암호화 보안 32비트 난수를 생성합니다. 첫 번째는 상태 시퀀스 번호이고 두 번째는 명령 시퀀스 번호입니다. 애플리케이션이 명령 또는 상태 요청을 보낼 때마다 해당 시퀀스 번호를 증가시키고 COPP 명령 또는 요청 데이터에 이 숫자를 포함합니다.
- 그래픽 드라이버, AES 세션 키, 상태 시퀀스 번호 및 명령 시퀀스 번호의 128비트 난수를 연결합니다. 드라이버의 공개 키를 사용하여 이 바이트 배열을 암호화하고 결과를 IAMCertifiedOutputProtection::SessionSequenceStart에 전달합니다.
COPP 명령 및 상태 요청 보내기
- IAMCertifiedOutputProtection::P rotectionStatus를 호출하여 사용 가능한 보호 유형 및 기타 정보를 쿼리합니다.
- IAMCertifiedOutputProtection::P rotectionCommand를 호출하여 원하는 보호 수준을 설정합니다.
- 현재 로컬 보호 수준을 주기적으로 쿼리합니다. 로컬 보호 수준이 예기치 않게 변경되거나 문제가 감지되면 재생을 중지합니다.
관련 항목