Enkripsi HTTP Live Streaming (HLS) menggunakan algoritma AES-128. Metode ini kompatibel dengan semua pemutar HLS dan memanfaatkan layanan manajemen kunci serta token untuk kontrol akses. Enkripsi HLS banyak digunakan dalam skenario yang memerlukan keamanan tinggi, seperti pendidikan daring dan streaming konten eksklusif. Topik ini menjelaskan cara menggunakan enkripsi HLS untuk mengenkripsi video dan mendekripsinya saat diputar.
Cara kerja
ApsaraVideo VOD menggunakan enkripsi amplop. Layanan Anda memanfaatkan Alibaba Cloud Key Management Service (KMS) untuk menghasilkan kunci data (DK) dan kunci data teramplop (EDK). Setelah Anda menggunakan DK untuk mengenkripsi video, video terenkripsi dan EDK disimpan. Saat pemutaran, layanan dekripsi mengambil DK untuk mendekripsi video tersebut.
Untuk melakukan otentikasi keamanan pada alamat dekripsi, Anda dapat mengaktifkan Enkripsi dan penulisan ulang M3U8 guna menambahkan lapisan perlindungan tambahan pada proses akses data HLS. Parameter penulisan ulang default adalah MtsHlsUriToken. Untuk informasi selengkapnya tentang cara mengaktifkan Enkripsi dan penulisan ulang M3U8 serta cara kerjanya, lihat Konfigurasi Enkripsi dan penulisan ulang M3U8.
Prasyarat
Alibaba Cloud Video Encryption (enkripsi HLS) adalah layanan gratis. Namun, transkoding video diperlukan untuk menggunakan fitur ini. Operasi transkoding dikenai biaya layanan. Untuk informasi selengkapnya tentang penagihan, lihat Penagihan transkoding media.
ApsaraVideo VOD telah diaktifkan. Untuk informasi selengkapnya, lihat Mengaktifkan ApsaraVideo VOD.
Anda telah memberikan izin yang diperlukan kepada ApsaraVideo VOD untuk mengakses KMS. Anda dapat memberikan izin tersebut melalui halaman Otorisasi Akses Sumber Daya Cloud.
Nama domain yang dipercepat telah dikonfigurasi di ApsaraVideo VOD. Untuk informasi selengkapnya, lihat Tambahkan nama domain yang dipercepat.
Kit pengembangan perangkat lunak (SDK) sisi server ApsaraVideo VOD telah diinstal. Untuk informasi selengkapnya, lihat SDK sisi server. Topik ini menggunakan SDK untuk Java sebagai contoh.
Proses Enkripsi dan Dekripsi
Proses unggah dan enkripsi

Proses dekripsi dan pemutaran
Enkripsi dan penulisan ulang M3U8 diaktifkan (Direkomendasikan)

Enkripsi dan penulisan ulang M3U8 tidak diaktifkan

Enkripsi Video
Unggah video dan terima callback.
Untuk mencegah video yang dienkripsi HLS ditranskode secara otomatis, gunakan kelompok templat bawaan No Transcoding saat mengunggahnya ke ApsaraVideo VOD.
Unggah video menggunakan konsol ApsaraVideo VOD atau dengan memanggil operasi API. Untuk informasi selengkapnya, lihat Unggah file media menggunakan konsol ApsaraVideo VOD dan Unggah media.
Konfigurasikan notifikasi event untuk ApsaraVideo VOD. Saat Anda menerima pesan callback Video Upload Completed, berarti video telah berhasil diunggah ke ApsaraVideo VOD. Untuk informasi selengkapnya tentang cara mengonfigurasi notifikasi event, lihat Notifikasi event.
Siapkan layanan enkripsi.
Buat kunci layanan.
Kunci layanan adalah kunci enkripsi utama di KMS dan diperlukan untuk menghasilkan kunci enkripsi standar. Jika Anda tidak membuat kunci layanan, akan muncul error saat memanggil operasi GenerateDataKey untuk menghasilkan kunci.
Di pojok kiri atas halaman, klik ID wilayah untuk beralih ke wilayah tempat Anda ingin membuat kunci layanan.
CatatanKunci layanan harus berada di wilayah yang sama dengan server origin tempat video Anda disimpan. Misalnya, jika video Anda disimpan di Tiongkok (Shanghai), kunci layanan juga harus dibuat di Tiongkok (Shanghai).

Masuk ke konsol ApsaraVideo VOD. Di panel navigasi sebelah kiri, pilih Configuration Management > Media Processing > HLS Standard Encryption.
Pada halaman Standard Encryption, klik Create Service Key.
Setelah kunci layanan dibuat, pesan akan ditampilkan. Anda dapat melihat kunci layanan Anda di bagian Key Information.
CatatanJika muncul pesan bahwa kunci layanan telah dibuat tetapi Anda tidak dapat melihatnya, kemungkinan peran terkait layanan belum tersedia. Anda dapat memberikan kembali izin untuk memulihkan peran tersebut, lalu refresh halaman untuk melihat kunci layanan.
Panggil operasi API untuk menghasilkan kunci data.
Panggil operasi GenerateDataKey untuk menghasilkan DK dan EDK. Anda tidak perlu meneruskan parameter apa pun untuk operasi ini. Setelah panggilan berhasil, `CiphertextBlob` dalam tanggapan merupakan EDK dalam format AES-128. Anda harus menyimpan nilai ini untuk enkripsi standar dan transkoding. `Plaintext` dalam tanggapan merupakan DK.
Buat grup template transcoding untuk enkripsi HLS.
Proses enkripsi HLS memerlukan dua kelompok templat transkoding: kelompok templat bawaan No Transcoding dan kelompok templat transkoding enkripsi HLS kustom. Langkah-langkah berikut menjelaskan cara membuat kelompok kustom:
Masuk ke konsol ApsaraVideo VOD. Di panel navigasi sebelah kiri, pilih Configuration Management > Media Processing > Transcoding Template Groups.
Di halaman Kelompok Templat Transkoding, buat kelompok templat untuk enkripsi HLS.
Atur Encapsulation Format menjadi hls. Di bagian Advanced Parameters, aktifkan Video Encryption dan pilih Alibaba Cloud Encryption. Anda dapat mengonfigurasi parameter lain sesuai kebutuhan. Untuk informasi selengkapnya, lihat Templat transkoding.

Setelah templat dibuat, Anda dapat melihat ID kelompok templat transkoding di halaman Transcoding Template Groups. Simpan ID tersebut. Anda akan memerlukannya nanti saat memulai enkripsi dan transkoding HLS.

Memulai enkripsi dan transkoding HLS.
Panggil operasi SubmitTranscodeJobs untuk memulai enkripsi dan transkoding HLS.
Jika Anda telah mengonfigurasi notifikasi event untuk ApsaraVideo VOD, transkoding video selesai ketika Anda menerima pesan callback Transcoding of a Single-definition Video Completed atau Transcoding of All-definition Videos Completed.
Lihat hasil enkripsi HLS.
Setelah transkoding selesai, Anda dapat menggunakan tiga metode berikut untuk menentukan apakah enkripsi standar berhasil.
Metode 1: Masuk ke konsol ApsaraVideo VOD dan pilih Media Files > Audio/Video > Manage > Video URL. Pada halaman Video URL, jika video memiliki output dalam beberapa format, seperti file MP4 asli, periksa apakah aliran video m3u8 diberi label HLS Standard Encryption. Jika label tersebut ada, enkripsi HLS berhasil.

Metode 2: Salin URL file M3U8 yang menggunakan HLS Standard Encryption. Jalankan perintah
curl -v "URL file M3U8"untuk memeriksa konten M3U8. Jika konten tersebut berisi kunciURI="<URI dekripsi yang Anda teruskan untuk enkripsi standar, yaitu nilai parameter DecryptKeyUri>", video tersebut dilindungi oleh enkripsi HLS.Metode 3: Panggil operasi GetTranscodeTask. Teruskan nilai parameter JobId yang dikembalikan di Langkah 4. Jika parameter TranscodeTemplateId yang dikembalikan merupakan ID kelompok templat transkoding yang Anda buat di Langkah 3 dan parameter TranscodeJobStatus bernilai TranscodeSuccess, enkripsi HLS berhasil.
Enkripsi dan penulisan ulang HLS (M3U8) (Direkomendasikan)
Setelah Anda mengaktifkan fitur enkripsi dan penulisan ulang M3U8, sistem secara otomatis menambahkan parameter enkripsi, seperti algoritma enkripsi, URI kunci, dan parameter otentikasi, ke tag #EXT-X-KEY dalam Media Playlist (file M3U8) protokol HLS. Saat klien mengurai file M3U8 yang ditulis ulang, klien tersebut menggunakan URI kunci dengan parameter otentikasi untuk meminta kunci dekripsi. Klien kemudian menggunakan kunci dan algoritma yang ditentukan untuk mendekripsi shard TS. Proses ini memberikan perlindungan akses terenkripsi untuk media streaming HLS.
Langkah 1: Aktifkan transmisi parameter enkripsi standar
Di konsol ApsaraVideo VOD, aktifkan Parameter Pass-through for HLS Encryption.
Mengaktifkan Parameter Pass-through for HLS Encryption memungkinkan Anda memodifikasi file M3U8 untuk HLS. Fitur ini memodifikasi URI dalam tag #EXT-X-KEY dengan menambahkan parameter dari permintaan klien. Nama parameter default adalah MtsHlsUriToken.
Prasyarat
Berbagi sumber daya lintas asal (CORS) telah dikonfigurasi. Untuk informasi selengkapnya, lihat Konfigurasi berbagi sumber daya lintas asal.
Fitur ini saat ini tidak didukung di Alibaba Gov Cloud.
Prosedur
Masuk ke Konsol ApsaraVideo VOD.
Di panel navigasi sebelah kiri, klik Configuration Management.
Klik CDN Configuration > Domain Names untuk menuju halaman Domain Names.
Temukan nama domain target dan klik Configure di kolom Actions.
Di panel navigasi sebelah kiri halaman nama domain, klik Video Related.
Di bagian Encrypted Playback, aktifkan sakelar Parameter Pass-through for HLS Encryption.

Setelah Anda mengaktifkan fitur ini, saat parameter enkripsi HLS ditransmisikan, sistem mengotentikasi permintaan Anda dengan menulis ulang parameter otentikasi token. Nama parameter yang ditulis ulang adalah
MtsHlsUriToken, dan nilainya adalahtest. Saat Alibaba Cloud CDN mendekripsi video untuk pemutaran,MtsHlsUriToken=testditambahkan di akhir URI dalam tag#EXT-X-KEYfile M3U8.
Langkah 2: Kirim permintaan yang mencakup parameter MtsHlsUriToken
Klien mengirim permintaan yang mencakup parameter MtsHlsUriToken ke titik kehadiran (POP) CDN untuk mengakses file M3U8.
Untuk mendapatkan MtsHlsUriToken, Anda harus membangun layanan token untuk menerbitkan token pengguna. Layanan ini menghasilkan MtsHlsUriToken.
Token yang dihasilkan oleh kode berikut adalah MtsHlsUriToken. Parameter berikut dalam kode contoh harus diubah sesuai kebutuhan Anda:
Langkah 3: Dekripsi dan putar file
Setelah POP CDN menerima permintaan dari klien, video akan didekripsi dan diputar jika otentikasi berhasil.
Jika nilai parameter MtsHlsUriToken yang dihasilkan di Langkah 2 adalah test, MtsHlsUriToken=test ditambahkan di akhir URI dalam tag #EXT-X-KEY file M3U8 saat CDN mendekripsi video untuk pemutaran.
Anda harus mengimplementasikan logika otentikasi. Untuk informasi selengkapnya, lihat kode contoh untuk layanan dekripsi saat enkripsi dan penulisan ulang M3U8 diaktifkan di Putar video.
Putar video
Enkripsi dan penulisan ulang M3U8 diaktifkan (Direkomendasikan)
Siapkan layanan dekripsi.
Siapkan layanan HTTP lokal untuk mendekripsi video.
Panggil operasi Decrypt untuk mendekripsi kunci.
PlainTextdalam tanggapan adalah kunci data (DK). DK ini merupakan data hasil dekode Base64 dariPlainTextyang dikembalikan oleh operasi GenerateDataKey.Untuk melakukan otentikasi keamanan pada alamat dekripsi, Anda dapat mengaktifkan Enkripsi dan penulisan ulang M3U8. Hal ini menambahkan lapisan perlindungan tambahan pada proses akses data HLS. Parameter penulisan ulang default adalah
MtsHlsUriToken. Kode untuk menyiapkan layanan dekripsi berbeda tergantung pada apakah Anda mengaktifkan Enkripsi dan penulisan ulang M3U8.Dapatkan URL pemutaran video dan kredensial.
Panggil operasi GetVideoPlayAuth untuk mendapatkan kredensial pemutaran atau panggil operasi GetPlayInfo untuk mendapatkan URL pemutaran.
Putar video terenkripsi.
Enkripsi HLS kompatibel dengan semua pemutar HLS. Anda dapat menggunakan pemutar yang dikembangkan sendiri atau Pemutar Video Apsara untuk memutar video terenkripsi.
Jika Anda menggunakan Pemutar Video Apsara, Anda harus mendapatkan token dan informasi otentikasi sesuai persyaratan Pemutar Video Apsara sebelum pemutaran. Untuk informasi selengkapnya, lihat Putar video terenkripsi. Jika Anda menggunakan pemutar selain Pemutar Video Apsara, Anda harus mengimplementasikan logika pemutaran.
Bagian berikut menjelaskan proses internal penggunaan Pemutar Video Apsara untuk pemutaran uji coba:
Enkripsi dan penulisan ulang M3U8 diaktifkan (Direkomendasikan)
Enkripsi M3U8 dan Penulisan Ulang Dinonaktifkan
Siapkan layanan dekripsi.
Siapkan layanan HTTP lokal untuk mendekripsi video.
Panggil operasi Decrypt untuk mendekripsi kunci.
PlainTextdalam tanggapan adalah kunci data (DK). DK ini merupakan data hasil dekode Base64 dariPlainTextyang dikembalikan oleh operasi GenerateDataKey.Berikut adalah contohnya:
Dapatkan URL pemutaran video dan kredensial.
Panggil operasi GetVideoPlayAuth untuk mendapatkan kredensial pemutaran atau panggil operasi GetPlayInfo untuk mendapatkan URL pemutaran.
Putar video terenkripsi.
Enkripsi HLS kompatibel dengan semua pemutar HLS. Anda dapat menggunakan pemutar yang dikembangkan sendiri atau Pemutar Video Apsara untuk memutar video terenkripsi.
Jika Anda menggunakan Pemutar Video Apsara, Anda harus mendapatkan token dan informasi otentikasi sesuai persyaratan Pemutar Video Apsara sebelum pemutaran. Untuk informasi selengkapnya, lihat Putar video terenkripsi. Jika Anda menggunakan pemutar selain Pemutar Video Apsara, Anda harus mengimplementasikan logika pemutaran.
Bagian berikut menjelaskan proses internal penggunaan Pemutar Video Apsara untuk pemutaran uji coba:
Enkripsi M3U8 dan Penulisan Ulang Dinonaktifkan