COPP 概觀
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
以下是應用程式必須使用認證輸出保護通訊協定 (COPP) 執行的基本步驟。
取得驅動程式的憑證鏈結
- 建置 DirectShow 播放圖表,使用影片混合轉譯器 (VMR-7 或 VMR-9) 或 增強的視 訊轉譯器篩選 (EVR) 。
- 查詢 IAMCertifiedOutputProtection 介面的 VMR。
- 呼叫 IAMCertifiedOutputProtection::KeyExchange。 這個方法會從驅動程式傳回 128 位亂數,以及包含驅動程式 2048 位 RSA 公開金鑰的憑證鏈結。
驗證憑證鏈結
- 驗證憑證鏈結。 如果憑證鏈結無效,請停止。
- 檢查 CRL () 的憑證撤銷清單。 如果憑證鏈結中的任何憑證出現在撤銷清單中,請停止。
- 從憑證鏈結取得 RSA 公開金鑰。
初始化 COPP 會話
- 產生 128 位 AES 工作階段金鑰。 此金鑰用來簽署資料,並確認已簽署的資料未遭到竄改。
- 產生兩個密碼編譯安全的 32 位亂數。 第一個是狀態序號,第二個是命令序號。 每次應用程式傳送命令或狀態要求時,都會遞增對應的序號,並在 COPP 命令或要求資料中包含此號碼。
- 從圖形驅動程式串連 128 位亂數、AES 會話索引鍵、狀態序號和命令序號。 使用驅動程式的公開金鑰來加密此位元組陣列,並將結果傳遞至 IAMCertifiedOutputProtection::SessionSequenceStart。
傳送 COPP 命令和狀態要求
- 呼叫 IAMCertifiedOutputProtection::P rotectionStatus來查詢可用的保護類型和其他資訊。
- 呼叫 IAMCertifiedOutputProtection::P rotectionCommand來設定所需的保護層級。
- 定期查詢目前的本機保護層級。 如果本機保護等級意外變更,或偵測到問題,請停止播放。
相關主題