Jalur Media Terproteksi
Topik ini membahas tiga topik yang saling terkait: lingkungan yang dilindungi, gateway interoperabilitas media, serta pencabutan dan pembaruan.
- Lingkungan yang dilindungi (PE) adalah serangkaian teknologi yang memungkinkan konten yang dilindungi mengalir dari dan melalui Windows Vista dengan cara yang dilindungi. Semua komponen di dalam lingkungan yang dilindungi tepercaya dan prosesnya dilindungi dari perubahan.
- Jalur media yang dilindungi (PMP) adalah executable yang berjalan di lingkungan yang dilindungi.
- Jika komponen tepercaya di PE disusupi, setelah proses jatuh tempo, komponen tersebut akan dicabut. Namun, Microsoft menyediakan mekanisme perpanjangan untuk menginstal versi komponen tepercaya yang lebih baru ketika tersedia.
Untuk informasi tentang penandatanganan kode komponen media yang dilindungi, lihat laporan resmi Penandatanganan Kode untuk Komponen Media Terlindungi di Windows Vista.
Topik ini berisi bagian berikut:
- Lingkungan Terlindungi
- Desain Lingkungan yang Dilindungi
- Jalur Media Terproteksi
- Gambaran Umum Negosiasi Kebijakan
- Pencabutan dan Perpanjangan
- Perlindungan Tautan Output
- Topik terkait
Lingkungan Terlindungi
Perlindungan konten mencakup beberapa teknologi, yang masing-masing mencoba memastikan bahwa konten tidak dapat digunakan dengan cara yang tidak konsisten dengan niat pemilik atau penyedia konten. Teknologi ini termasuk perlindungan salinan, perlindungan tautan, akses bersyarat, dan manajemen hak digital (DRM). Dasar dari masing-masing adalah kepercayaan: Akses ke konten hanya diberikan kepada komponen perangkat lunak yang mematuhi ketentuan penggunaan yang ditetapkan ke konten tersebut.
Untuk meminimalkan ancaman terhadap konten yang dilindungi, Perangkat Lunak Windows Vista dan Media Foundation memungkinkan kode tepercaya berjalan di lingkungan yang dilindungi. PE adalah seperangkat komponen, pedoman, dan alat yang dirancang untuk meningkatkan perlindungan terhadap pembajakan konten.
Sebelum memeriksa PE lebih dekat, penting untuk memahami ancaman yang dirancang untuk meminimalkan. Misalkan Anda menjalankan aplikasi media dalam proses mode pengguna. Aplikasi ini ditautkan ke berbagai pustaka tautan dinamis (DLL) yang berisi plug-in media, seperti decoder. Proses lain juga berjalan dalam mode pengguna, dan berbagai driver dimuat dalam kernel. Jika tidak ada mekanisme kepercayaan, ancaman berikut ada:
- Aplikasi dapat mengakses media yang dilindungi secara langsung atau meretas memori proses.
- Plug-in dapat mengakses konten secara langsung atau meretas memori proses.
- Proses lain dapat meretas memori proses media baik secara langsung atau dengan menyuntikkan kode.
- Driver kernel dapat meretas memori proses media.
- Konten mungkin dikirim ke luar sistem melalui media yang tidak terlindungi. (Perlindungan tautan dirancang untuk mengurangi ancaman ini.)
Desain Lingkungan yang Dilindungi
Lingkungan yang dilindungi berjalan dalam proses terpisah yang dilindungi dari aplikasi media. Fitur proses windows Vista yang dilindungi menghentikan proses lain agar tidak mengakses proses yang dilindungi.
Ketika proses yang dilindungi dibuat, komponen kernel inti mengidentifikasi komponen dan plug-in yang tidak tepercaya sehingga lingkungan yang dilindungi dapat menolak untuk memuatnya. Komponen tepercaya adalah komponen yang telah ditandatangani dengan tepat oleh Microsoft. Kernel juga melacak modul yang dimuat ke dalamnya, memungkinkan lingkungan yang dilindungi untuk menghentikan pemutaran konten yang dilindungi jika modul yang tidak tepercaya dimuat. Sebelum komponen kernel dimuat, kernel memeriksa untuk menentukan apakah komponen tersebut tepercaya. Jika tidak, komponen tepercaya yang sudah ada di PE menolak untuk memproses konten yang dilindungi. Untuk mengaktifkan ini, komponen PE secara berkala melakukan jabat tangan yang dilindungi secara kriptografis dengan kernel. Jika komponen mode kernel yang tidak tepercaya ada, jabat tangan gagal dan menunjukkan kepada PE bahwa komponen yang tidak tepercaya ada.
Jika komponen tepercaya disusupi, setelah proses jatuh tempo, komponen tersebut dapat dicabut. Microsoft menyediakan mekanisme perpanjangan untuk menginstal versi tepercaya yang lebih baru jika tersedia.
Jalur Media Terproteksi
Jalur media yang dilindungi (PMP) adalah PE utama yang dapat dieksekusi untuk Media Foundation. PMP dapat diperluas, sehingga mekanisme perlindungan konten pihak ketiga dapat didukung.
PMP menerima konten yang dilindungi dan kebijakan terkait dari sumber Media Foundation apa pun menggunakan sistem perlindungan konten apa pun, termasuk yang disediakan oleh pihak ketiga. Ini mengirim konten ke sink Media Foundation apa pun, selama sink mematuhi kebijakan yang ditentukan oleh sumber. Ini juga mendukung transformasi antara sumber dan sink, termasuk transformasi pihak ketiga, selama mereka dipercaya.
PMP berjalan dalam proses yang dilindungi yang diisolasi dari aplikasi media. Aplikasi hanya memiliki kemampuan untuk bertukar pesan perintah dan kontrol dengan PMP, tetapi tidak memiliki akses ke konten setelah diteruskan ke PMP. Diagram berikut mengilustrasikan hubungan ini.
Kotak berbayang mewakili komponen yang mungkin disediakan oleh pihak ketiga. Semua komponen yang dibuat di dalam proses yang dilindungi harus ditandatangani dan dipercaya.
Aplikasi membuat instans Sesi Media di dalam proses yang dilindungi dan menerima penunjuk ke Sesi Media proksi, yang mengarahkan penunjuk antarmuka ke seluruh batas proses.
Sumber media dapat dibuat baik dalam proses aplikasi, seperti yang ditunjukkan di sini, atau di dalam proses yang dilindungi. Jika sumber media dibuat di dalam proses aplikasi, sumber membuat proksi untuk dirinya sendiri dalam proses yang dilindungi.
Semua komponen alur lainnya, seperti dekode dan sink media, dibuat dalam proses yang dilindungi. Jika objek ini mengekspos antarmuka kustom apa pun untuk aplikasi, mereka harus menyediakan proksi/stub DCOM untuk marshal antarmuka.
Untuk menerapkan kebijakan pada konten yang dilindungi saat mengalir melalui alur, PMP menggunakan tiga jenis komponen: otoritas kepercayaan input (ITAs), otoritas kepercayaan output (OTAs), dan objek kebijakan. Komponen-komponen ini bekerja sama untuk memberikan atau membatasi hak untuk menggunakan konten, dan untuk menentukan perlindungan tautan yang harus digunakan saat memutar konten, seperti Perlindungan Konten Digital Bandwidth Tinggi (HDCP).
Otoritas Kepercayaan Input
ITA dibuat oleh sumber media tepercaya, dan melakukan beberapa fungsi:
- Menentukan hak untuk menggunakan konten. Hak dapat mencakup hak untuk memutar konten, mentransfernya ke perangkat, dan sebagainya. Ini mendefinisikan daftar yang diurutkan dari sistem perlindungan output yang disetujui dan kebijakan output yang sesuai untuk setiap sistem. ITA menyimpan informasi ini dalam objek kebijakan.
- Menyediakan dekripsi yang diperlukan untuk mendekripsi konten.
- Membangun kepercayaan dengan modul kernel di lingkungan yang dilindungi, untuk memastikan bahwa ITA berjalan di dalam lingkungan tepercaya.
ITA dikaitkan dengan aliran individual yang berisi konten yang dilindungi. Aliran hanya dapat memiliki satu ITA, dan instans ITA hanya dapat dikaitkan dengan satu aliran.
Otoritas Kepercayaan Output
OTA dikaitkan dengan output tepercaya. OTA mengekspos tindakan yang dapat dilakukan output tepercaya pada konten, seperti pemutaran atau penyalinan. Perannya adalah untuk memberlakukan satu atau beberapa sistem perlindungan output yang diperlukan oleh ITA. OTA meminta objek kebijakan yang disediakan oleh ITA untuk menentukan sistem perlindungan mana yang harus diberlakukan.
Objek Kebijakan
Objek kebijakan merangkum persyaratan perlindungan konten ITA. Ini digunakan oleh mesin kebijakan untuk menegosiasikan dukungan perlindungan konten dengan OTA. Objek kebijakan kueri OTAs untuk menentukan sistem perlindungan apa yang harus mereka terapkan pada setiap output konten saat ini.
Membuat Objek di PMP
Untuk membuat objek di jalur media terproteksi (PMP), IMFMediaSource memanggil IMFPMPHostApp::ActivateClassById, dengan input yang ditentukan yang diformat IStream dengan cara berikut:
Format: (All DWORD values are serialized in little-endian order)
[GUID (content protection system guid, obtained from Windows.Media.Protection.MediaProtectionSystemId)]
[DWORD (track count, use the actual track count even if all tracks are encrypted using the same data, note that zero is invalid)]
[DWORD (next track ID, use -1 if all remaining tracks are encrypted using the same data)]
[DWORD (next track's binary data size)]
[BYTE* (next track's binary data)]
{ Repeat from "next track ID" above for each stream }
Gambaran Umum Negosiasi Kebijakan
Ada tiga persyaratan mendasar yang harus dipenuhi sebelum konten yang dilindungi dapat diproses dalam PMP. Pertama, konten yang dilindungi harus dikirim hanya ke output tepercaya. Kedua, hanya tindakan yang diizinkan yang harus diterapkan ke aliran. Ketiga, hanya sistem perlindungan output yang disetujui yang harus digunakan untuk memutar aliran. Mesin kebijakan berkoordinasi antara ITA dan OTAs untuk memastikan bahwa persyaratan ini terpenuhi.
Cara termampu untuk memahami proses adalah dengan menelusuri contoh yang disederhanakan yang mengidentifikasi langkah-langkah yang diperlukan untuk memutar konten Advanced System Format (ASF) yang dilindungi oleh Windows Media Digital Rights Management (WMDRM).
Saat pengguna meluncurkan aplikasi pemutar dan membuka file ASF yang memiliki aliran audio yang dilindungi dan aliran video yang dilindungi, langkah-langkah berikut harus dilakukan:
- Aplikasi ini membuat sumber media ASF dan sesi jalur media (PMP) yang dilindungi. Media Foundation membuat proses PMP.
- Aplikasi ini membuat topologi parsial yang berisi simpul sumber audio yang terhubung ke perender audio, dan simpul sumber video yang terhubung ke perender video (EVR) yang disempurnakan. Untuk perender, aplikasi tidak secara langsung membuat perender. Sebaliknya, aplikasi membuat dalam proses yang tidak terlindungi objek yang dikenal sebagai objek aktivasi. PMP menggunakan objek aktivasi untuk membuat perender dalam proses yang dilindungi. (Untuk informasi selengkapnya tentang objek aktivasi, lihat Objek Aktivasi.)
- Aplikasi menetapkan topologi parsial pada sesi PMP.
- Sesi PMP menserialisasikan topologi dan meneruskannya ke host PMP dalam proses yang dilindungi. Host PMP mengirimkan topologi ke mesin kebijakan.
- Pemuat topologi memanggil IMFInputTrustAuthority::GetDecrypter pada ITA dan menyisipkan dekripsi ke dalam topologi segera hilir dari simpul sumber yang sesuai.
- Pemuat topologi menyisipkan dekoder audio dan video di hilir simpul dekripsi.
- Mesin kebijakan memindai simpul yang disisipkan untuk menentukan apakah ada yang mengimplementasikan antarmuka IMFTrustedOutput . EVR dan perender audio menerapkan IMFTrustedOutput, karena mereka mengirim data di luar PMP.
- Setiap ITA mengonfirmasi bahwa ia berjalan di dalam proses yang dilindungi dengan melakukan jabat tangan kriptografi dengan modul kernel lingkungan yang dilindungi.
- Untuk setiap aliran, mesin kebijakan menegosiasikan kebijakan dengan mendapatkan objek kebijakan dari ITA dan meneruskannya ke OTA. OTA menyediakan daftar sistem perlindungan yang didukungnya, dan objek kebijakan menunjukkan sistem perlindungan mana yang harus diterapkan, bersama dengan pengaturan yang benar. OTA kemudian menerapkan pengaturan ini. Jika tidak dapat melakukannya, konten akan diblokir.
Pencabutan dan Perpanjangan
Komponen tepercaya dapat dicabut jika disusupi atau ditemukan melanggar perjanjian lisensi di mana awalnya dipercaya. Mekanisme perpanjangan ada untuk menginstal versi komponen yang lebih baru dan lebih tepercaya.
Komponen tepercaya ditandatangani menggunakan sertifikat kriptografi. Microsoft menerbitkan daftar pencabutan global (GRL) yang mengidentifikasi komponen yang telah dicabut. GRL ditandatangani secara digital untuk memastikan keasliannya. Pemilik konten dapat memastikan, melalui mekanisme kebijakan, bahwa versi GRL saat ini ada di komputer pengguna.
Perlindungan Tautan Output
Saat konten video premium dilihat, bingkai yang didekripsi dan tidak dikompresi berjalan melintasi konektor fisik ke perangkat tampilan. Penyedia konten mungkin mengharuskan bingkai video dilindungi pada saat ini, saat mereka melakukan perjalanan di seluruh konektor fisik. Berbagai mekanisme perlindungan ada untuk tujuan ini, termasuk High-Bandwidth Digital Content Protection (HDCP) dan DisplayPort Content Protection (DPCP). OTA video memberlakukan perlindungan ini dengan menggunakan Output Protection Manager (OPM). Manajer Perlindungan Output mengirimkan perintah ke driver grafis, dan driver grafis memberlakukan mekanisme perlindungan tautan apa pun yang diperlukan oleh kebijakan.
Topik terkait