SPEKEAPIv2 - Kontrak enkripsi - Spesifikasi Pertukaran Kunci Pengemas dan Encoder Aman API

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

SPEKEAPIv2 - Kontrak enkripsi

Kontrak enkripsi menentukan kunci konten mana yang melindungi trek mana di dalam streamset tertentu, berdasarkan karakteristik trek.

Menggunakan beberapa tombol konten untuk trek yang berbeda dalam streamset, meskipun merupakan praktik terbaik industri yang direkomendasikan, tidak wajib, tetapi direkomendasikan - setidaknya dua tombol konten yang berbeda, satu untuk trek audio dan satu untuk trek video. Menggunakan kunci konten tunggal untuk mengenkripsi beberapa trek dimungkinkan tetapi perlu secara eksplisit ditandai dalam CPIX dokumen yang dikirim oleh enkripsi ke penyedia kunci. Secara umum, enkripsi selalu menjelaskan dengan tepat berapa banyak kunci konten yang diperlukan dan bagaimana mereka dimanfaatkan untuk mengenkripsi berbagai trek media.

Prinsip

Kontrak enkripsi terletak di <cpix:ContentKeyUsageRuleList> bagian CPIX dokumen. Pada bagian ini, setiap kunci konten yang didefinisikan dalam <cpix:ContentKeyList> bagian 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 ContentKeyUsageRule@intendedTrackType harus unik dalam kontrak enkripsi, dan tidak dapat digunakan dalam beberapa ContentKeyUsageRule elemen.

  • satu atau lebih <cpix:AudioFilter> atau elemen <cpix:VideoFilter> anak, tergantung pada nilai ContentKeyUsageRule@intendedTrackType atribut.

Aturan yang mengatur hubungan ini adalah sebagai berikut:

  • Ketika semua trek audio dan video streamset perlu dilindungi dengan kunci konten yang unik, string 'ALL' harus digunakan sebagai nilai ContentKeyUsageRule@intendedTrackType atribut. 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> dan/atau <cpix:VideoFilter> elemen lainnya tidak valid dalam konteks khusus ini.

  • Untuk semua kasus penggunaan lainnya, nilai ContentKeyUsageRule@intendedTrackType atribut dapat didefinisikan secara bebas, dan jumlah <cpix:AudioFilter /> dan elemen <cpix:VideoFilter /> anak harus sesuai dengan jumlah sub-komponen yang dikumpulkan melalui tanda '+'. Contoh 2/3/4/5/6/7/9/10 menggambarkan persyaratan ini, ketika satu sub-komponen hadir dalam nilai atribut. ContentKeyUsageRule@intendedTrackType Contoh 8 mengilustrasikannya ketika beberapa sub-komponen ContentKeyUsageRule@intendedTrackType="SD+HD" digunakan: dijelaskan oleh dua elemen <cpix:VideoFilter> anak yang berbeda dengan nilai atribut yang berbeda, dan ContentKeyUsageRule@intendedTrackType="HDR+HFR+UHD" dijelaskan oleh tiga elemen <cpix:VideoFilter> anak yang berbeda dengan nilai atribut yang berbeda.

Filter

CPIXmendefinisikan beberapa elemen penyaringan dan atribut, tetapi hanya SPEKE mendukung sebagian dari itu. Tabel berikut merangkum perbedaan-perbedaan ini:

CPIXjenis filter SPEKEDukungan keseluruhan Filter atribut yang didukung oleh SPEKE Filter atribut 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

Sesuai CPIX spesifikasi untuk VideoFilter, [minPixels,maxPixels] adalah rentang semua inklusif di kedua dimensi, sedangkan (minFps,maxFps] hanya inklusif untuk dimensi. maxFps Karena 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 direkomendasikan dalam situasi ini:

Dalam situasi ini Enkripsi harus/harus... Penyedia kunci harus/harus...

Tidak ada aturan yang berlaku untuk satu atau beberapa trek di streamset (lihat contoh 3 di bawah)

Enkripsi harus melihat konfigurasinya (di luar CPIX muatan) dan memverifikasi bahwa trek yang bersangkutan tidak memerlukan enkripsi. Jika bukan harapan, enkripsi harus melempar kesalahan dan menghentikan pemrosesan.

Tidak relevan: penyedia kunci 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 kunci tidak memiliki pengetahuan tentang struktur streamset.

Kontrak enkripsi berubah dalam satu siklus SPEKE permintaan/respons

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 memodifikasi kontrak enkripsi yang diterima dalam CPIX muatan SPEKE permintaan.

Kontrak enkripsi cacat: intendedTrackType /Filter pengecualian kendala kardinalitas, filter atau atribut yang tidak didukung

Enkripsi harus mengajukan pengecualian, menghentikan pemrosesan dan tidak mengirim SPEKE permintaan ke penyedia kunci, karena kemungkinan besar akan mengakibatkan perlindungan konten yang salah atau membiarkan beberapa trek tidak terlindungi.

Penyedia kunci akan mengajukan pengecualian dan mengembalikan kesalahan 'Kontrak enkripsi yang salah bentuk'.

Kontrak enkripsi yang terbentuk dengan baik, tetapi melanggar batasan tingkat DRM keamanan: sebagai contoh, satu kunci konten diminta untuk melindungi trek audio dan trek video UHD

Jika enkripsi memiliki pengetahuan tentang batasan tingkat DRM keamanan, itu harus meningkatkan pengecualian, menghentikan pemrosesan dan tidak mengirim SPEKE permintaan ke penyedia kunci, karena kemungkinan besar akan menghasilkan perlindungan konten yang salah.

Penyedia kunci harus mengajukan pengecualian dan mengembalikan kesalahan 'Kontrak CPIX enkripsi yang diminta tidak didukung'.

Kontrak enkripsi tidak ada

Enkripsi tidak akan mengirim CPIX dokumen yang tidak mengandung elemen VideoFilter atau AudioFilter apa pun.

Penyedia kunci akan mengajukan pengecualian dan mengembalikan kesalahan 'Kontrak CPIX enkripsi yang 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 tombol 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 tombol 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 tombol 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 tombol 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 tombol 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="20736001" /> </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 tombol konten untuk semua trek video, beberapa tombol konten untuk trek audio stereo dan multichannel

<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"/> <AudioFilter minChannels="3"/> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>

Contoh 10: satu tombol konten untuk semua trek video, beberapa tombol konten untuk stereo dan dua jenis trek audio multichannel

<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>