Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SPEKE API v2.1 - Kontrak enkripsi
Kontrak enkripsi menentukan kunci konten mana yang melindungi trek mana di dalam streamset tertentu, berdasarkan karakteristik trek.
Menggunakan beberapa kunci konten untuk trek yang berbeda dalam streamset adalah praktik terbaik industri yang direkomendasikan. Ini tidak wajib, tetapi kami sarankan menggunakan setidaknya dua tombol konten yang berbeda: satu untuk trek audio dan satu untuk trek video. Menggunakan kunci konten tunggal untuk mengenkripsi beberapa trek dimungkinkan. Namun, enkripsi harus secara eksplisit memberi sinyal ini dalam dokumen CPIX yang dikirim ke penyedia kunci. Secara umum, enkripsi selalu menjelaskan dengan tepat berapa banyak kunci konten yang diperlukan dan bagaimana mereka digunakan untuk mengenkripsi berbagai trek media.
Prinsip
Anda dapat menemukan kontrak enkripsi di <cpix:ContentKeyUsageRuleList> bagian dokumen CPIX. Pada bagian ini, setiap kunci konten yang didefinisikan di <cpix:ContentKeyList> bagian tersebut sesuai dengan <cpix:ContentKeyUsageRule> elemen tertentu, yang harus mencakup:
-
ContentKeyUsageRule@intendedTrackTypeatribut yang dapat mereferensikan satu atau lebih sub-komponen, dipisahkan oleh tanda '+' jika beberapa sub-komponen digunakan. Nilai harusContentKeyUsageRule@intendedTrackTypeunik dalam kontrak enkripsi, dan tidak dapat digunakan dalam beberapaContentKeyUsageRuleelemen. -
satu atau lebih
<cpix:AudioFilter>atau elemen<cpix:VideoFilter>anak, tergantung pada nilaiContentKeyUsageRule@intendedTrackTypeatribut.
Aturan yang mengatur hubungan ini adalah sebagai berikut:
-
Ketika semua trek audio dan video dari streamset perlu dilindungi dengan kunci konten unik, string
'ALL'harus digunakan sebagai nilaiContentKeyUsageRule@intendedTrackTypeatribut. Contoh 1 menunjukkan kasus penggunaan seperti itu. Dalam situasi ini, elemen a<cpix:AudioFilter />dan<cpix:VideoFilter />anak tanpa atribut apa pun harus disertakan. Kombinasi<cpix:AudioFilter>and/or<cpix:VideoFilter>elemen lainnya tidak valid dalam konteks khusus ini. -
Untuk semua kasus penggunaan lainnya, nilai
ContentKeyUsageRule@intendedTrackTypeatribut dapat didefinisikan secara bebas, dan jumlah<cpix:AudioFilter />dan elemen<cpix:VideoFilter />anak harus sesuai dengan jumlah sub-komponen yang digabungkan melalui tanda '+'. Contoh 2/3/4/5/6/7/9/10 menggambarkan persyaratan ini, ketika satu sub-komponen hadir dalam nilaiContentKeyUsageRule@intendedTrackTypeatribut. Contoh 8 mengilustrasikannya ketika beberapa sub-komponen digunakan.ContentKeyUsageRule@intendedTrackType="SD+HD"dijelaskan oleh dua elemen<cpix:VideoFilter>anak yang berbeda dengan nilai atribut yang berbeda.ContentKeyUsageRule@intendedTrackType="HDR+HFR+UHD"dijelaskan oleh tiga elemen<cpix:VideoFilter>anak yang berbeda dengan nilai atribut yang berbeda.
Penyaring
CPIX mendefinisikan beberapa elemen dan atribut penyaringan, tetapi SPEKE hanya mendukung sebagian darinya. Tabel berikut merangkum perbedaan-perbedaan ini:
| Jenis filter CPIX | Dukungan SPEKE secara keseluruhan | Atribut filter didukung oleh SPEKE | Atribut filter tidak didukung oleh SPEKE |
|---|---|---|---|
|
<cpix : >VideoFilter |
Ya |
MinPixels, MaxPixels, hdr, MinFPS, MaxFPS (atribut opsional) |
WCG |
|
<cpix : >AudioFilter |
Ya |
MinChannels, MaxChannels (atribut opsional) |
|
|
<cpix : >KeyPeriodFilter |
Ya |
periodID (atribut wajib) |
|
|
<cpix : >BitrateFilter |
Tidak |
N/A |
N/A |
|
<cpix : >LabelFilter |
Tidak |
N/A |
N/A |
Menurut spesifikasi CPIX untuk VideoFilter, [MinPixels, maxPixels] adalah rentang semua inklusif di kedua dimensi, meskipun (MinFPS, MaxFPS] hanya inklusif untuk dimensi MaxFPS. Untuk AudioFilter, [MinChannels, MaxChannels] adalah rentang inklusif di kedua dimensi.
Situasi bermasalah
Ada situasi di mana informasi yang diberikan dalam kontrak enkripsi mungkin sebagian, ambigu, atau salah. Dalam kasus ini, penting bahwa enkripsi dan penyedia kunci berperilaku dengan tepat dan menjamin perlindungan konten yang tepat. Tabel berikut menyajikan perilaku yang disarankan dalam situasi ini:
| Dalam situasi ini | Tindakan enkripsi | Tindakan penyedia utama |
|---|---|---|
|
Tidak ada aturan yang berlaku untuk satu atau lebih trek di streamset (lihat contoh 3 di bawah) |
Enkripsi harus melihat konfigurasinya (di luar muatan CPIX) dan memverifikasi bahwa trek yang terkait tidak memerlukan enkripsi. Jika itu bukan harapan, enkripsi harus membuat kesalahan dan menghentikan pemrosesan. |
Tidak relevan: penyedia utama tidak memiliki pengetahuan tentang struktur streamset. |
|
Beberapa aturan tumpang tindih dan menyarankan beberapa kunci konten untuk mengenkripsi trek tertentu |
Enkripsi harus menerapkan yang terakhir ContentKeyUsageRule berhasil dievaluasi dalam urutan dokumen. |
Tidak relevan: penyedia utama tidak memiliki pengetahuan tentang struktur streamset. |
|
Kontrak enkripsi berubah dalam satu siklus SPEKE request/response |
Enkripsi harus mengajukan pengecualian dan menghentikan pemrosesan, karena penyedia kunci tidak bertanggung jawab untuk menentukan kontrak enkripsi. |
Untuk mencegah situasi ini terjadi sejak awal, penyedia kunci tidak boleh mengubah kontrak enkripsi yang diterima dalam muatan CPIX dari permintaan SPEKE. |
|
Kontrak enkripsi yang salah format: pengecualian kendala intendedTrackType/Filters kardinalitas, filter atau atribut yang tidak didukung |
Enkripsi harus mengajukan pengecualian, menghentikan pemrosesan dan tidak mengirim permintaan SPEKE ke penyedia kunci, karena kemungkinan besar akan mengakibatkan perlindungan konten yang salah atau meninggalkan beberapa trek tidak terlindungi. |
Penyedia kunci harus mengajukan pengecualian dan mengembalikan kesalahan 'Kontrak enkripsi yang tidak berbentuk'. |
|
Kontrak enkripsi yang terbentuk dengan baik, tetapi melanggar batasan tingkat keamanan DRM: sebagai contoh, kunci konten tunggal diminta untuk melindungi trek audio dan trek video UHD |
Jika enkripsi telah mengetahui batasan tingkat keamanan DRM, itu harus meningkatkan pengecualian, menghentikan pemrosesan dan tidak mengirim permintaan SPEKE ke penyedia kunci, karena kemungkinan besar akan menghasilkan perlindungan konten yang salah. |
Penyedia kunci harus mengajukan pengecualian dan mengembalikan kesalahan 'Kontrak enkripsi CPIX yang diminta tidak didukung'. |
|
Kontrak enkripsi hilang |
Enkripsi tidak boleh mengirim dokumen CPIX yang tidak mengandung elemen atau apapun VideoFilter . AudioFilter |
Penyedia kunci harus mengajukan pengecualian dan mengembalikan kesalahan 'Kontrak enkripsi CPIX Hilang'. |
Contoh Kontrak Enkripsi
Contoh 1: satu kunci konten untuk semua trek audio dan video
<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="ALL"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 2: satu kunci konten untuk semua trek video, satu kunci konten untuk semua trek audio
<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 3: satu kunci konten untuk semua trek video, trek audio yang tidak terenkripsi
<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 4: beberapa kunci konten untuk trek video yang berbeda (SD/HD), satu kunci konten untuk semua trek audio
<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD video tracks (more than 1024x576) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 5: beberapa kunci konten untuk trek video yang berbeda (SD/HD/UHD), satu kunci konten untuk semua trek audio
<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD video tracks (more than 1024x576, up to 1920x1080) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" maxPixels="2073600" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD video tracks (more than 1920x1080) --> <cpix:ContentKeyUsageRule kid="75c6fa78-8b5d-6d75-9653-26f41b78d1a3" intendedTrackType="UHD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="2073601" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 6: beberapa kunci konten untuk trek video yang berbeda (SD/HD/UHD1/UHD2), satu kunci konten untuk semua trek audio
<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD video tracks (more than 1024x576, up to 1920x1080) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" maxPixels="2073600" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD1 video tracks (more than 1920x1080, up to 4096x2160) --> <cpix:ContentKeyUsageRule kid="75c6fa78-8b5d-6d75-9653-26f41b78d1a3" intendedTrackType="UHD1"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="2073601" maxPixels="8847360" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD2 video tracks (more than 4096x2160) --> <cpix:ContentKeyUsageRule kid="63d2ec36-6b7c-9f34-4546-97d01f36f7c5" intendedTrackType="UHD2"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="8847361" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 7: beberapa kunci konten untuk trek video yang berbeda (SD/HD1/HD2/UHD1/UHD2), satu kunci konten untuk semua trek audio
<cpix:ContentKeyUsageRuleList> <!-- Rule for SD video tracks (up to 1024x576) --> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="589824" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD1 video tracks (more than 1024x576, up to 1280x720) --> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HD1"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="589825" maxPixels="921600" /> </cpix:ContentKeyUsageRule> <!-- Rule for HD2 video tracks (more than 1280x720, up to 1920x1080) --> <cpix:ContentKeyUsageRule kid="cda406d8-9d87-4f76-92da-31110e756176" intendedTrackType="HD2"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="921601" maxPixels="2073600" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD1 video tracks (more than 1920x1080, up to 4096x2160) --> <cpix:ContentKeyUsageRule kid="75c6fa78-8b5d-6d75-9653-26f41b78d1a3" intendedTrackType="UHD1"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="2073601" maxPixels="8847360" /> </cpix:ContentKeyUsageRule> <!-- Rule for UHD2 video tracks (more than 4096x2160) --> <cpix:ContentKeyUsageRule kid="63d2ec36-6b7c-9f34-4546-97d01f36f7c5" intendedTrackType="UHD2"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter minPixels="8847361" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks --> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 8: beberapa kunci konten untuk trek video yang berbeda (berdasarkan beberapa jenis atribut), satu kunci konten untuk semua trek audio
<cpix:ContentKeyUsageRuleList> <!-- Rule for SD and HD video tracks--> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="SD+HD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter maxPixels="442368" maxFps="30" hdr="false"/> <cpix:VideoFilter minPixels="442369" maxPixels="2073600" maxFps="30" hdr="false"/> </cpix:ContentKeyUsageRule> <!-- Rule for HDR, HFR and UHD video tracks--> <cpix:ContentKeyUsageRule kid="37e3de05-9a3b-4c69-8970-63c17a95e0b7" intendedTrackType="HDR+HFR+UHD"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter hdr="true" /> <cpix:VideoFilter minFps="30" /> <cpix:VideoFilter minPixels="2073601" /> </cpix:ContentKeyUsageRule> <!-- Rule for all audio tracks--> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 9: satu kunci konten untuk semua trek video, beberapa tombol konten untuk trek audio stereo dan multisaluran
<cpix:ContentKeyUsageRuleList> <!-- Rule for video tracks--> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <!-- Rule for stereo audio tracks--> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="STEREO_AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter maxChannels="2"/> </cpix:ContentKeyUsageRule> <!-- Rule for multichannel audio tracks--> <cpix:ContentKeyUsageRule kid="7ae8e96f-309e-42c3-a510-24023d923373" intendedTrackType="MULTICHANNEL_AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter minChannels="3"/> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
Contoh 10: satu kunci konten untuk semua trek video, beberapa tombol konten untuk stereo dan dua jenis trek audio multisaluran
<cpix:ContentKeyUsageRuleList> <!-- Rule for video tracks--> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="VIDEO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> <!-- Rule for stereo audio tracks--> <cpix:ContentKeyUsageRule kid="53abdba2-f210-43cb-bc90-f18f9a890a02" intendedTrackType="STEREO_AUDIO"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter maxChannels="2"/> </cpix:ContentKeyUsageRule> <!-- Rule for multichannel audio tracks (3 to 6 channels)--> <cpix:ContentKeyUsageRule kid="7ae8e96f-309e-42c3-a510-24023d923373" intendedTrackType="MULTICHANNEL_AUDIO_3_6"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter minChannels="3" maxChannels="6"/> </cpix:ContentKeyUsageRule> <!-- Rule for multichannel audio tracks (7 channels and more)--> <cpix:ContentKeyUsageRule kid="81eb3761-55ff-4d22-a31d-94f01bbfd8ba" intendedTrackType="MULTICHANNEL_AUDIO_7"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter minChannels="7"/> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>