Enkripsi HLS menggunakan AES-128 dan kompatibel dengan semua pemutar HLS. Dikombinasikan dengan manajemen kunci dan layanan token, fitur ini cocok untuk skenario keamanan tinggi seperti pendidikan daring dan streaming konten eksklusif.
Cara kerja
ApsaraVideo VOD menggunakan enkripsi amplop. Penyedia layanan menggunakan Alibaba Cloud Key Management Service (KMS) untuk menghasilkan kunci data (DK) dan kunci data terbungkus (EDK). DK digunakan untuk mengenkripsi video, sedangkan EDK disimpan bersama video tersebut. Saat pemutaran, klien mengambil DK dari layanan dekripsi untuk mendekripsi video.
Untuk mengamankan URL dekripsi, aktifkan Enkripsi dan penulisan ulang M3U8, yang menambahkan lapisan perlindungan tambahan pada proses akses data HLS. Parameter penulisan ulang default adalah MtsHlsUriToken. Untuk mempelajari cara mengaktifkan fitur ini dan cara kerjanya, lihat Enkripsi dan penulisan ulang M3U8.
Prasyarat
-
Enkripsi HLS adalah layanan gratis. Namun, fitur ini memerlukan transkoding video, yang dikenai biaya. Untuk detail harga, lihat Penagihan transkoding media.
-
Anda telah mengaktifkan ApsaraVideo VOD. Untuk petunjuknya, lihat Aktifkan ApsaraVideo VOD.
-
Anda telah memberi otorisasi kepada ApsaraVideo VOD untuk mengakses Key Management Service (KMS) Anda. Anda dapat memberikan izin yang diperlukan di halaman Otorisasi Akses Sumber Daya Cloud.
-
Anda telah menambahkan nama domain yang dipercepat di ApsaraVideo VOD. Untuk petunjuknya, lihat Tambahkan nama domain yang dipercepat.
-
Anda telah menginstal SDK sisi server yang diperlukan. Untuk informasi selengkapnya, lihat SDK sisi server. Topik ini menggunakan SDK untuk Java sebagai contoh.
Alur kerja enkripsi dan dekripsi
Alur kerja unggah dan enkripsi

Alur kerja dekripsi dan pemutaran
Penulisan ulang M3U8 diaktifkan (Direkomendasikan)

Penulisan ulang M3U8 dinonaktifkan

Enkripsi video
-
Unggah video Anda dan terima callback.
Untuk mencegah video yang mendukung Enkripsi HLS agar tidak ditranskode secara otomatis, Anda harus menggunakan kelompok templat bawaan No Transcoding saat mengunggah video ke ApsaraVideo VOD. Hal ini mencegah transkoding otomatis selama proses unggah.
-
Untuk mengunggah video menggunakan Konsol ApsaraVideo VOD, lihat Unggah file di Konsol ApsaraVideo VOD. Untuk mengunggah video menggunakan API sisi server, lihat Unggah media.
-
Konfigurasikan notifikasi event untuk ApsaraVideo VOD. Pesan callback untuk event Video upload completed menunjukkan bahwa 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 harus digunakan untuk menghasilkan kunci bagi Enkripsi HLS. Jika Anda tidak membuat kunci layanan, operasi GenerateKMSDataKey akan mengembalikan error.
-
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 video Anda. Misalnya, jika video Anda disimpan di China (Shanghai), kunci layanan juga harus dibuat di wilayah China (Shanghai).
Wilayah yang tersedia adalah China (Shanghai), China (Beijing), China (Shenzhen), Jepang (Tokyo), Singapura, Indonesia (Jakarta), India (Mumbai), dan Jerman (Frankfurt).
-
Masuk ke Konsol ApsaraVideo VOD. Di panel navigasi sebelah kiri, pilih Configuration Management > Media Processing > HLS Standard Encryption.
-
Di halaman Enkripsi HLS, klik Create Service Key.
Setelah kunci layanan dibuat, pesan konfirmasi akan muncul. Anda kemudian dapat melihat kunci tersebut di bagian Key Information.
CatatanJika muncul pesan sukses tetapi Anda tidak dapat melihat kuncinya, penyebabnya mungkin karena peran terkait layanan belum ada. Anda dapat memberikan otorisasi ulang kepada ApsaraVideo VOD untuk memulihkan peran tersebut, lalu refresh halaman untuk melihat kunci layanan.
-
-
Panggil operasi API untuk menghasilkan kunci data (DK).
Panggil operasi GenerateKMSDataKey untuk menghasilkan kunci data (DK) dan kunci data terbungkus (EDK). Anda tidak perlu mengirimkan parameter apa pun. Setelah panggilan berhasil, bidang
Plaintextdalam respons berisi DK, dan bidangCiphertextBlobberisi EDK dalam format AES-128. Simpan nilaiCiphertextBlobuntuk pekerjaan transkoding Enkripsi HLS.
-
-
Buat kelompok templat transkoding untuk Enkripsi HLS.
Proses Enkripsi HLS memerlukan dua kelompok templat transkoding: kelompok templat bawaan No Transcoding dan kelompok templat transkoding kustom untuk Enkripsi HLS. Untuk membuat kelompok templat transkoding kustom, lakukan langkah-langkah berikut:
-
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 transkoding untuk Enkripsi HLS.
Atur Encapsulation Format menjadi hls. Di bagian Advanced Parameters, aktifkan Video Encryption dan pilih opsi Alibaba Cloud Encryption. Konfigurasikan parameter lain sesuai kebutuhan. Untuk informasi selengkapnya tentang parameter tersebut, lihat Templat transkoding.
-
Setelah kelompok templat dibuat, temukan kelompok templat baru tersebut dalam daftar di halaman Kelompok Templat Transkoding dan catat ID-nya. ID kelompok templat ini diperlukan untuk konfigurasi enkripsi.
-
-
Kirimkan pekerjaan transkoding Enkripsi HLS.
-
Panggil operasi SubmitTranscodeJobs untuk mengirimkan pekerjaan transkoding Enkripsi HLS.
-
Jika Anda telah mengonfigurasi notifikasi event, pesan callback untuk event Single Definition Transcoding Complete atau Transcode complete menunjukkan bahwa pekerjaan transkoding telah selesai.
-
-
Verifikasi hasil Enkripsi HLS.
Setelah pekerjaan transkoding selesai, gunakan salah satu metode berikut untuk memverifikasi enkripsi.
-
Metode 1: Masuk ke Konsol ApsaraVideo VOD. Buka halaman detail file Audio/Video dan klik tab Video URL. Di daftar URL video, periksa kolom format untuk tag HLS Encryption pada file output M3U8. Kehadiran tag ini mengonfirmasi bahwa enkripsi berhasil.
-
Metode 2: Salin URL file M3U8 yang memiliki tag HLS Standard Encryption. Jalankan perintah
curl -v "URL file M3U8"untuk mengambil konten M3U8. Periksa konten tersebut untuk informasi kunci berikut:URI="<URI dekripsi yang Anda berikan sebagai nilai parameter DecryptKeyUri>". Jika informasi ini ada, enkripsi berhasil. -
Metode 3: Panggil operasi GetTranscodeTask dan masukkan nilai parameter
JobIdyang dikembalikan di Langkah 4. Enkripsi berhasil jika nilaiTranscodeTemplateIddalam respons sesuai dengan ID kelompok templat transkoding yang Anda buat di Langkah 3 danTranscodeJobStatusbernilaiTranscodeSuccess.
-
Enkripsi HLS (M3U8) dan penulisan ulang (Direkomendasikan)
Dengan Enkripsi dan penulisan ulang M3U8 diaktifkan, sistem secara otomatis menambahkan parameter enkripsi, termasuk algoritma, URI kunci, dan parameter autentikasi, ke tag #EXT-X-KEY dalam Daftar Putar Media HLS (file M3U8). Saat klien mengurai file M3U8 yang ditulis ulang, klien tersebut menggunakan URI kunci dengan parameter autentikasi untuk meminta kunci dekripsi, lalu mendekripsi segmen transport stream (TS) dengan algoritma yang ditentukan.
Langkah 1: Aktifkan transmisi parameter untuk enkripsi HLS
Di Konsol ApsaraVideo VOD, aktifkan Parameter Pass-through for HLS Encryption.
Setelah Anda mengaktifkan Parameter Pass-through for HLS Encryption, ApsaraVideo VOD menulis ulang file M3U8, memodifikasi URI di tag #EXT-X-KEY dengan menambahkan parameter dari permintaan klien. Nama parameter default adalah MtsHlsUriToken.
Prasyarat
Anda telah mengonfigurasi Berbagi sumber daya lintas asal (CORS). Untuk informasi selengkapnya, lihat Konfigurasi Berbagi sumber daya lintas asal.
Fitur ini tidak tersedia di Alibaba Cloud Gov Cloud.
Prosedur
-
Masuk ke Konsol ApsaraVideo VOD.
-
Di panel navigasi sebelah kiri, klik Configuration Management.
-
Klik CDN Configuration > Domain Names untuk membuka halaman Domain Names.
-
Temukan nama domain yang ingin Anda kelola dan klik configure di kolom Actions.
-
Di halaman konfigurasi domain, klik Video Related di panel navigasi sebelah kiri.
-
Di bagian encrypted playback, aktifkan sakelar Parameter Pass-through for HLS Encryption. Secara default, sakelar ini dimatikan, dan nama parameternya adalah
MtsHlsUriToken.
-
Setelah Anda mengaktifkan fitur ini, ApsaraVideo VOD menangani autentikasi dengan menulis ulang parameter token. Parameter yang ditulis ulang adalah
MtsHlsUriToken, dan nilainya adalahtest. Selama pemutaran terdekripsi, Titik kehadiran (POP) menambahkanMtsHlsUriToken=testke URI di tag#EXT-X-KEYfile M3U8.
Langkah 2: Kirim permintaan dengan MtsHlsUriToken
Untuk mengakses file M3U8, klien mengirim permintaan yang mencakup parameter MtsHlsUriToken ke Titik kehadiran (POP).
Anda harus membangun layanan token untuk menghasilkan dan menerbitkan MtsHlsUriToken bagi pengguna.
Kode berikut menghasilkan MtsHlsUriToken. Anda harus mengubah parameter berikut sesuai kebutuhan bisnis Anda:
Langkah 3: Dekripsi dan putar file
Saat menerima permintaan dari klien, Titik kehadiran (POP) melakukan autentikasi. Jika autentikasi berhasil, POP mendekripsi dan memutar file tersebut.
Jika parameter MtsHlsUriToken yang dihasilkan di Langkah 2 memiliki nilai test, POP menambahkan MtsHlsUriToken=test ke URI di tag #EXT-X-KEY file M3U8 selama pemutaran terdekripsi.
Anda harus mengimplementasikan logika autentikasi. Sebagai referensi, lihat kode contoh layanan dekripsi untuk enkripsi dan penulisan ulang M3U8 di Putar video.
Putar video
Dengan penulisan ulang M3U8 (direkomendasikan)
-
Siapkan layanan dekripsi.
Siapkan layanan HTTP lokal untuk mendekripsi video.
Panggil operasi DecryptKMSDataKey untuk mendekripsi kunci data. Kunci data dalam respons,
PlainText, adalah versi hasil decoding Base64 dari nilaiPlainTextyang dikembalikan oleh operasi GenerateKMSDataKey.Untuk menambahkan lapisan keamanan ekstra dengan memverifikasi URL dekripsi, aktifkan Enkripsi dan penulisan ulang M3U8. Fitur ini menambahkan token ke URL permintaan kunci. Nama parameter default adalah
MtsHlsUriToken. Implementasi layanan dekripsi Anda bergantung pada apakah fitur ini diaktifkan atau tidak. -
Dapatkan URL pemutaran video atau kredensial.
Panggil operasi GetVideoPlayAuth untuk mendapatkan kredensial pemutaran, atau panggil operasi GetPlayInfo untuk mendapatkan URL pemutaran.
-
Mainkan video terenkripsi.
Enkripsi standar HLS kompatibel dengan semua pemutar HLS. Anda dapat menggunakan pemutar buatan sendiri atau Pemutar Video Apsara untuk memutar video terenkripsi.
Jika Anda menggunakan Pemutar Video Apsara, dapatkan token dan informasi autentikasi yang diperlukan untuk memutar video. Untuk informasi selengkapnya, lihat Putar video terenkripsi. Jika Anda menggunakan pemutar lain, implementasikan logika pemutaran.
Bagian berikut menjelaskan proses pemutaran internal Pemutar Video Apsara:
Dengan penulisan ulang M3U8 (direkomendasikan)
Tanpa penulisan ulang M3U8
-
Siapkan layanan dekripsi.
Siapkan layanan HTTP lokal untuk mendekripsi video.
Panggil operasi DecryptKMSDataKey untuk mendekripsi kunci data. Kunci data dalam respons,
PlainText, adalah versi hasil decoding Base64 dari nilaiPlainTextyang dikembalikan oleh operasi GenerateKMSDataKey.Sebagai contoh:
-
Dapatkan URL pemutaran video atau kredensial.
Panggil operasi GetVideoPlayAuth untuk mendapatkan kredensial pemutaran, atau panggil operasi GetPlayInfo untuk mendapatkan URL pemutaran.
-
Mainkan video terenkripsi.
Enkripsi standar HLS kompatibel dengan semua pemutar HLS. Anda dapat menggunakan pemutar buatan sendiri atau Pemutar Video Apsara untuk memutar video terenkripsi.
Jika Anda menggunakan Pemutar Video Apsara, dapatkan token dan informasi autentikasi yang diperlukan untuk memutar video. Untuk informasi selengkapnya, lihat Putar video terenkripsi. Jika Anda menggunakan pemutar lain, implementasikan logika pemutaran.
Bagian berikut menjelaskan proses pemutaran internal Pemutar Video Apsara:
Tanpa penulisan ulang M3U8