Enkripsi HLS menggunakan AES-128 untuk mengamankan video. Metode ini kompatibel dengan semua pemain HLS dan memerlukan manajemen kunci serta layanan token untuk kontrol akses. Enkripsi HLS sering digunakan di platform pendidikan online dan layanan streaming konten eksklusif yang membutuhkan keamanan tinggi. Topik ini menjelaskan cara mengimplementasikan enkripsi HLS untuk pengiriman video dan dekripsi untuk pemutaran.
Prinsip Kerja
ApsaraVideo VOD menggunakan teknologi enkripsi amplop, di mana penyedia layanan menghasilkan kunci data (DK) dan kunci data terbungkus (EDK) melalui Alibaba Cloud Key Management Service (KMS). DK mengenkripsi konten video, sedangkan EDK disimpan bersama dengan video yang telah dienkripsi. Selama pemutaran, layanan dekripsi mengambil DK untuk mendekripsi video.
Untuk memvalidasi URL dekripsi, Anda dapat mengaktifkan Enkripsi M3U8 dan Penulisan Ulang. Secara default, MtsHlsUriToken ditulis ulang, menambahkan lapisan enkripsi tambahan pada akses data HLS.
Prasyarat
Akun Alibaba Cloud Anda memiliki saldo yang cukup. Meskipun enkripsi HLS gratis, biaya transkoding diperlukan karena enkripsi memerlukan proses transcoding. Untuk detail harga, lihat Transkoding Media.
ApsaraVideo VOD harus diaktifkan. Untuk informasi lebih lanjut, lihat Aktivasi ApsaraVideo VOD.
ApsaraVideo VOD harus diberi otorisasi untuk mengakses KMS. Otorisasi dapat dilakukan di halaman Otorisasi Akses Sumber Daya Cloud.
Domain yang dipercepat harus ditambahkan ke ApsaraVideo VOD. Untuk informasi lebih lanjut, lihat Tambahkan nama domain untuk CDN.
SDK ApsaraVideo VOD harus diintegrasikan. Dalam topik ini, SDK ApsaraVideo VOD untuk Java digunakan sebagai contoh.
Proses Enkripsi dan Dekripsi
Unggah dan Enkripsi

Dekripsi dan Pemutaran
(Direkomendasikan) Enkripsi M3U8 dan Penulisan Ulang Diaktifkan

Enkripsi M3U8 dan Penulisan Ulang Dinonaktifkan

Enkripsi Video
Unggah video Anda dan terima callback.
Untuk memastikan bahwa video yang mendukung enkripsi HLS tidak secara otomatis ditranscoding, gunakan template grup No Transcoding bawaan sistem saat mengunggahnya ke ApsaraVideo VOD. Ini mencegah proses transcoding otomatis dipicu selama unggah.
Unggah video menggunakan Konsol ApsaraVideo VOD atau API.
Konfigurasikan notifikasi acara. Saat Anda menerima pesan callback FileUploadComplete, itu berarti video telah berhasil diunggah ke ApsaraVideo VOD.
Siapkan layanan manajemen kunci.
Buat kunci layanan.
Kunci layanan adalah kunci utama di KMS yang digunakan untuk menghasilkan kunci enkripsi HLS. Kegagalan membuat kunci layanan akan menyebabkan kesalahan saat memanggil operasi GenerateKMSDataKey.
Di pojok kiri atas halaman, pilih wilayah tempat Anda ingin membuat kunci layanan.
CatatanKunci layanan harus dibuat di wilayah yang sama dengan server asal tempat video Anda disimpan. Misalnya, jika video Anda disimpan di China (Shanghai), kunci layanan juga harus dibuat di China (Shanghai).

Masuk ke Konsol ApsaraVideo VOD. Di panel navigasi sebelah kiri, pilih Configuration Management > Media Processing > HLS Encryption.
Di halaman Enkripsi HLS, klik Create Service Key.
Setelah kunci layanan dibuat, sistem akan memberi tahu The service key is created. Anda dapat melihat kunci layanan di bagian Key Information.
CatatanJika Anda telah diberitahu bahwa kunci layanan telah berhasil dibuat tetapi masih tidak dapat melihat kunci tersebut, mungkin karena peran terhubung layanan hilang. Anda dapat memberi otorisasi ulang untuk memulihkan peran tersebut dan kemudian segarkan halaman untuk melihat kunci layanan.
Hasilkan DK.
Untuk menghasilkan DK dan EDK, panggil operasi GenerateKMSDataKey tanpa parameter input apa pun. Setelah berhasil, CiphertextBlob dalam respons menyediakan EDK yang diformat AES_128 untuk enkripsi HLS dan transcoding, sedangkan Plaintext dalam respons berisi DK.
Buat grup template transcoding untuk enkripsi HLS.
Selama proses enkripsi HLS, Anda memerlukan dua grup template transcoding: grup template No Transcoding bawaan dan grup template transcoding kustom. Berikut cara membuat grup template transcoding kustom untuk enkripsi HLS:
Masuk ke Konsol ApsaraVideo VOD. Di panel navigasi sebelah kiri, pilih Configuration Management > Media Processing > Transcoding Template Groups.
Di halaman Grup Template Transcoding, klik Buat Grup Template Transcoding.
Di bagian Parameter Dasar, atur Encapsulation Format ke hls. Di bagian Advanced Parameters, aktifkan Video Encryption dan atur Encryption Method ke Kriptografi Proprietary Alibaba Cloud. Untuk parameter lainnya, konfigurasikan sesuai kebutuhan aktual Anda. Untuk deskripsi parameter, lihat Template Transcoding.

Setelah membuat grup template transcoding, temukan ID-nya di halaman Grup Template Transcoding. Simpan ID ini, karena Anda akan memerlukannya nanti untuk enkripsi dan transcoding HLS.

Inisiasi permintaan enkripsi dan transcoding HLS.
Panggil operasi SubmitTranscodeJobs untuk memulai enkripsi dan transcoding HLS.
Jika Anda telah mengonfigurasi notifikasi acara di ApsaraVideo VOD, transcoding video selesai ketika Anda menerima callback StreamTranscodeComplete atau TranscodeComplete.
Lihat hasil enkripsi HLS.
Setelah transcoding selesai, Anda dapat menentukan apakah enkripsi HLS berhasil dengan menggunakan metode berikut:
Metode 1: Masuk ke Konsol ApsaraVideo VOD. Di panel navigasi sebelah kiri, pilih Media Files > Audio/Video. Di halaman Video dan Audio, temukan video yang Anda unggah dan klik Kelola di kolom Tindakan. Di tab URL Video, jika keluaran video dalam format selain MP4 ada, dan HLS Encryption ditandai pada file M3U8, enkripsi HLS berhasil.

Metode 2: Salin URL file M3U8 yang ditandai dengan HLS Encryption, jalankan perintah
curl -v "URL file M3U8", dan periksa hasilnya. JikaURL dekripsi yang Anda tentukan saat memulai enkripsi HLS sama dengan nilai DecryptKeyUri, enkripsi HLS berhasil.Metode 3: Panggil operasi GetTranscodeTask dan lewatkan nilai parameter JobId yang dikembalikan di Langkah 4. Jika nilai TranscodeTemplateId dalam respons cocok dengan ID grup template transcoding yang dibuat di Langkah 3 dan TranscodeJobStatus menunjukkan "Transcoding berhasil," enkripsi HLS berhasil.
(Direkomendasikan) Enkripsi M3U8 dan Penulisan Ulang
Setelah mengaktifkan fitur enkripsi M3U8 dan penulisan ulang, sistem akan secara otomatis menambahkan parameter enkripsi (seperti algoritma enkripsi, URI kunci, dan parameter autentikasi) setelah tag #EXT-X-KEY di file playlist M3U8. Saat klien memproses file playlist M3U8 yang ditulis ulang, ia menggunakan URI kunci (yang mencakup parameter autentikasi) untuk meminta kunci dekripsi. Klien kemudian mendekripsi file transport stream (TS) menggunakan kunci ini dan algoritma yang ditentukan, memastikan akses terenkripsi ke aliran HLS.
Langkah 1: Aktifkan pass-through parameter untuk enkripsi HLS
Masuk ke konsol ApsaraVideo VOD dan aktifkan Parameter Pass-through for HLS Encryption.
Setelah mengaktifkan Parameter Pass-through for HLS Encryption, file playlist M3U8 dapat dimodifikasi. Secara spesifik, ini melibatkan modifikasi URI di tag #EXT-X-KEY dengan menambahkan parameter yang dibawa dalam permintaan klien di akhir. Secara default, MtsHlsUriToken ditulis ulang.
Prasyarat
Berbagi Sumber Daya Lintas Asal (CORS) harus dikonfigurasi.
Alibaba Cloud Gov Cloud tidak mendukung pass-through parameter untuk enkripsi HLS.
Prosedur
Masuk ke Konsol ApsaraVideo VOD.
Di panel navigasi sebelah kiri, temukan Configuration Management.
Pilih CDN Configuration > Domain Names. Halaman Domain Names akan ditampilkan.
Cari nama domain yang ingin dikonfigurasi, lalu klik Configure pada kolom Actions.
Di panel navigasi sebelah kiri nama domain, klik Video Related.
Di bagian Pemutaran Terenkripsi, aktifkan Parameter Pass-through for HLS Encryption.

Setelah Anda mengaktifkan fitur ini, sistem akan secara otomatis menangani autentikasi dengan menulis ulang parameter Token saat Anda melewati parameter enkripsi HLS. Parameter yang ditulis ulang adalah
MtsHlsUriToken, dan nilainya adalahtest. Selama dekripsi dan pemutaran CDN,MtsHlsUriToken=testakan ditambahkan di akhir URI di tag#EXT-X-KEYfile playlist M3U8.
Langkah 2: Kirim permintaan yang mencakup parameter MtsHlsUriToken
Kirim permintaan ke point of presence (POP) untuk mengakses file playlist M3U8 dan sertakan MtsHlsUriToken dalam permintaan.
Untuk mendapatkan MtsHlsUriToken, Anda harus menyiapkan layanan token.
Kode sampel berikut menunjukkan cara mendapatkan MtsHlsUriToken. Tabel berikut menjelaskan parameter dalam kode sampel. Anda dapat memodifikasinya berdasarkan kebutuhan bisnis Anda.
Langkah 3: Dekripsi file pemutaran
Setelah menerima permintaan klien, POP akan mendekripsi file pemutaran setelah autentikasi berhasil.
Jika nilai MtsHlsUriToken yang dihasilkan di Langkah 2 adalah test, Alibaba Cloud CDN akan menambahkan MtsHlsUriToken=test di akhir URI di tag #EXT-X-KEY file playlist M3U8 selama dekripsi dan pemutaran.
Anda perlu mengimplementasikan logika validasi autentikasi sendiri. Untuk referensi, Anda dapat meninjau kode sampel yang disediakan untuk menyiapkan layanan dekripsi dengan enkripsi M3U8 dan penulisan ulang diaktifkan di bagian Putar video.
Putar video
(Direkomendasikan) Enkripsi M3U8 dan Penulisan Ulang Diaktifkan
Siapkan layanan dekripsi.
Siapkan layanan HTTP lokal untuk mendekripsi video Anda.
Panggil operasi DecryptKMSDataKey untuk mendekripsi DK. Nilai
PlainTextdalam respons berisi DK. DK ini adalah versi Base64-decoded dari parameterPlainTextyang dikembalikan dalam respons ke operasi GenerateKMSDataKey.Jika Anda ingin memverifikasi URL dekripsi, aktifkan enkripsi M3U8 dan penulisan ulang. Secara default,
MtsHlsUriTokenditulis ulang. Dengan cara ini, data Anda dilindungi selama akses data HLS. Kode yang digunakan untuk menyiapkan layanan dekripsi bervariasi berdasarkan apakah fitur enkripsi M3U8 dan penulisan ulang diaktifkan atau tidak. Bagian berikut menjelaskan kode sampel:Dapatkan URL pemutaran dan kredensial video terenkripsi Anda.
Panggil operasi GetVideoPlayAuth untuk mendapatkan kredensial pemutaran dan panggil operasi GetPlayInfo untuk mendapatkan URL pemutaran.
Putar video terenkripsi.
Enkripsi HLS mendukung semua pemain yang kompatibel dengan HLS. Anda dapat menggunakan pemain yang dikembangkan sendiri atau ApsaraVideo Player untuk memutar video terenkripsi.
Jika Anda menggunakan ApsaraVideo Player untuk memutar video terenkripsi, Anda harus mendapatkan token dan informasi autentikasi. Untuk informasi lebih lanjut, lihat Cara memutar video terenkripsi. Jika Anda menggunakan pemain pihak ketiga, implementasikan logika pemutaran sendiri.
Prosedur berikut menjelaskan cara ApsaraVideo Player menguji pemutaran:
(Direkomendasikan) Enkripsi M3U8 dan Penulisan Ulang Diaktifkan
Enkripsi M3U8 dan Penulisan Ulang Dinonaktifkan
Siapkan layanan dekripsi.
Siapkan layanan HTTP lokal untuk mendekripsi video Anda.
Panggil operasi DecryptKMSDataKey untuk mendekripsi DK. Nilai
PlainTextdalam respons berisi DK. DK ini adalah versi Base64-decoded dari parameterPlainTextyang dikembalikan dalam respons ke operasi GenerateKMSDataKey.Kode sampel:
Dapatkan URL pemutaran dan kredensial video terenkripsi Anda.
Panggil operasi GetVideoPlayAuth untuk mendapatkan kredensial pemutaran dan panggil operasi GetPlayInfo untuk mendapatkan URL pemutaran.
Putar video terenkripsi.
Enkripsi HLS mendukung semua pemain yang kompatibel dengan HLS. Anda dapat menggunakan pemain yang dikembangkan sendiri atau ApsaraVideo Player untuk memutar video terenkripsi.
Jika Anda menggunakan ApsaraVideo Player untuk memutar video terenkripsi, Anda harus mendapatkan token dan informasi autentikasi. Untuk informasi lebih lanjut, lihat Cara memutar video terenkripsi. Jika Anda menggunakan pemain pihak ketiga, implementasikan logika pemutaran sendiri.
Prosedur berikut menjelaskan cara ApsaraVideo Player menguji pemutaran:
Enkripsi M3U8 dan Penulisan Ulang Dinonaktifkan