Perlindungan konten dengan enkripsi dinamis dan pengiriman kunci

Logo Azure Media Services v3


Peringatan

Azure Media Services akan dihentikan pada 30 Juni 2024. Untuk informasi selengkapnya, lihat Panduan Penghentian AMS.

Gunakan Azure Media Services untuk mengamankan media Anda sejak meninggalkan komputer Anda sepanjang jalan melalui penyimpanan, pemrosesan, dan pengiriman. Dengan Media Services, Anda dapat mengirimkan konten langsung dan sesuai permintaan yang dienkripsi secara dinamis dengan Standar Enkripsi Lanjutan (AES-128) atau salah satu dari tiga sistem manajemen hak digital (DRM) utama: Microsoft PlayReady, Google Widevine, dan Apple FairPlay.

FairPlay Streaming adalah teknologi Apple yang hanya tersedia untuk video yang ditransfer melalui Streaming Langsung HTTP (HLS) di perangkat iOS, di Apple TV, dan di Safari di macOS. Media Services juga dilengkapi dengan layanan untuk mengirimkan kunci AES serta lisensi DRM (PlayReady, Widevine, serta FairPlay) kepada klien yang memiliki otoritas. Jika konten dienkripsi dengan kunci AES yang jelas dan dikirim melalui HTTPS, konten tidak jelas sampai mencapai klien.

Di Media Services v3, kunci konten dikaitkan dengan Streaming Locator (lihat contoh ini). Jika menggunakan layanan pengiriman kunci Media Services, Anda dapat mengizinkan Azure Media Services menghasilkan kunci konten untuk Anda. Anda harus membuat kunci konten sendiri jika menggunakan layanan pengiriman kunci Anda sendiri, atau jika perlu menangani skenario ketersediaan tinggi yang mengharuskan Anda memiliki kunci konten yang sama dalam dua pusat data.

Saat streaming diminta oleh pemutar, Media Services menggunakan kunci yang ditentukan untuk mengenkripsi konten Anda secara dinamis dengan kunci penghapusan AES atau enkripsi DRM. Untuk mendekripsi streaming, pemutar meminta kunci dari layanan pengiriman kunci Media Services atau layanan pengiriman kunci yang Anda tentukan. Untuk memutuskan apakah pengguna diizinkan untuk mendapatkan kunci, layanan akan mengevaluasi kebijakan kunci konten yang Anda tentukan untuk kunci tersebut.

sistem perlindungan konten

Anda dapat menggunakan REST API, atau pustaka klien Media Services untuk mengonfigurasi kebijakan otorisasi dan autentikasi untuk lisensi dan kunci Anda.

Widevine tidak tersedia di wilayah GovCloud.

Catatan

Layanan media akan memberlakukan TLS 1.2 untuk semua permintaan ke asal streaming KeyDelivery, RESTv2, Streaming Endpoint, serta Live Event. Akun dengan penggunaan TLS 1.0 atau 1.1 yang ada dikecualikan dari penerapan ini. Jika Anda ingin memberlakukan TLS 1.2 untuk semua permintaan Anda ke titik akhir layanan media ini, harap hubungi dukungan AMS.

Browser yang mendukung klien DRM

Browser umum mendukung klien DRM berikut:

Browser Enkripsi
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Opera Widevine
Safari FairPlay

Mengontrol akses konten

Anda dapat mengontrol siapa saja yang memiliki akses ke konten Anda dengan mengonfigurasi kebijakan kunci konten. Media Services mendukung berbagai cara untuk mengautentikasi pengguna yang membuat permintaan kunci. Klien (pemutar) harus memenuhi kebijakan sebelum kunci dapat dikirimkan ke klien. Kebijakan kunci konten dapat memiliki pembatasan terbuka atau token.

Kebijakan kunci konten terbatas terbuka dapat digunakan jika Anda ingin menerbitkan lisensi ke siapa saja yang tidak memiliki otorisasi. Misalnya, jika pendapatan Anda berbasis iklan dan tidak berbasis langganan.

Dengan kebijakan kunci konten yang dibatasi token, kunci konten hanya dikirim ke klien yang memberikan token JWT yang valid atau token web sederhana (SWT) dalam permintaan lisensi/kunci. Token ini harus diterbitkan oleh STS.

Menggunakan Azure Active Directory sebagai STS

Anda dapat menggunakan Azure Active Directory sebagai STS. STS harus dikonfigurasi untuk membuat token yang ditandatangani dengan kunci yang ditentukan dan klaim masalah yang Anda tentukan dalam konfigurasi pembatasan token. Layanan pengiriman lisensi/kunci Media Services menampilkan lisensi atau kunci yang diminta kepada klien jika kedua kondisi berikut terpenuhi:

  • Token valid.
  • Klaim dalam token cocok dengan token yang dikonfigurasi untuk lisensi atau kunci.

Saat mengonfigurasi kebijakan yang dibatasi token, Anda harus menentukan parameter kunci verifikasi utama, penerbit, dan audiens. Kunci verifikasi utama berisi kunci yang digunakan untuk menandatangani token. Penerbit adalah STS yang menerbitkan token. Audiens, kadang disebut cakupan, menjelaskan niat token atau sumber daya yang aksesnya diotorisasi token. Layanan pengiriman kunci/lisensi Azure Media Services memvalidasi bahwa nilai dalam token cocok dengan nilai dalam templat.

Pencegahan pemutaran ulang token

Fitur Pencegahan Pemutaran Ulang Token memungkinkan Anda menetapkan batas berapa kali token yang sama dapat digunakan untuk meminta kunci atau lisensi. Anda dapat menambahkan klaim jenis urn:microsoft:azure:mediaservices:maxuses dalam token, di mana nilainya adalah berapa kali token dapat digunakan untuk memperoleh lisensi atau kunci. Semua permintaan berikutnya dengan token yang sama ke Pengiriman Kunci akan menampilkan respons yang tidak sah.

Pertimbangan

  • Pelanggan harus memiliki kendali atas pembuatan token. Klaim perlu ditempatkan dalam token itu sendiri.
  • Saat menggunakan fitur ini, permintaan dengan token yang waktu kedaluwarsanya lebih dari satu jam sejak permintaan diterima ditolak dengan respons yang tidak sah.
  • Token secara unik diidentifikasi berdasarkan tanda tangannya. Setiap perubahan pada payload (misalnya, perbarui ke waktu kedaluwarsa atau klaim) akan mengubah tanda tangan token dan akan dihitung sebagai token baru yang belum pernah ditemui oleh Pengiriman Kunci.
  • Pemutaran gagal jika token telah melebihi maxuses nilai .
  • Fitur ini dapat digunakan untuk semua konten yang ada dan dilindungi (hanya token yang diterbitkan perlu diubah).
  • Fitur ini berfungsi dengan JWT dan SWT.

Menggunakan STS kustom

Pelanggan dapat memilih untuk menggunakan STS kustom untuk menyediakan token. Alasannya meliputi:

  • Penyedia identitas (IDP) Anda tidak mendukung STS.

  • Pelanggan mungkin memerlukan kontrol yang lebih fleksibel atau lebih ketat untuk mengintegrasikan STS dengan sistem penagihan pelanggan.

    Misalnya, operator layanan OTT mungkin menawarkan beberapa paket pelanggan, seperti premium, dasar, dan olahraga. Operator mungkin ingin mencocokkan klaim dalam token dengan paket pelanggan sehingga hanya konten dalam paket tertentu yang tersedia. Dalam hal ini, STS kustom memberikan fleksibilitas dan kontrol yang diperlukan.

  • Untuk menyertakan klaim kustom dalam token guna memilih antara ContentKeyPolicyOptions yang berbeda dengan parameter lisensi DRM yang berbeda, misalnya lisensi langganan versus lisensi sewa.

  • Untuk menyertakan klaim yang mewakili pengidentifikasi kunci konten dari kunci yang aksesnya diberikan oleh token.

Saat menggunakan STS kustom, dua perubahan berikut harus dibuat:

  • Saat mengonfigurasi layanan pengiriman lisensi untuk aset, Anda perlu menentukan kunci keamanan yang digunakan untuk verifikasi oleh STS kustom, bukan kunci saat ini dari Azure Active Directory.
  • Saat token JTW dihasilkan, kunci keamanan ditentukan sebagai pengganti kunci privat sertifikat X509 saat ini di Azure AD.

Ada dua jenis kunci keamanan:

  • Kunci simetris: Kunci yang sama digunakan untuk membuat dan memverifikasi JWT.
  • Kunci asimetris: Pasangan kunci publik-privat dalam sertifikat X509 digunakan dengan kunci privat untuk mengenkripsi/membuat JWT dan dengan kunci publik untuk memverifikasi token.

Catatan

Jika Anda menggunakan .NET Framework/C# sebagai platform pengembangan Anda, sertifikat X509 yang digunakan untuk kunci keamanan asimetris harus memiliki panjang kunci setidaknya 2048. Panjang kunci ini adalah persyaratan kelas System.IdentityModel.Tokens.X509AsymmetricSecurityKey dalam .NET Framework. Jika tidak, pengecualian berikut dihilangkan: IDX10630: 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' untuk penandatanganan tidak boleh kurang dari '2048' bit.

Menggunakan layanan pengiriman lisensi/kunci selain Azure Media Services

Anda dapat mengedit templat kebijakan utama jika Anda ingin menggunakan layanan pengiriman lisensi/kunci yang berbeda.

Panduan, tutorial, dan sampel

Sampel .Net Digital Rights Management menunjukkan kepada Anda cara menerapkan sistem multi-DRM dengan Media Services v3 dengan menggunakan .NET.

Ada sampel perlindungan konten tambahan yang tersedia untuk Node.JS dan Python:

Node.JS Python Deskripsi
Pengunggahan Node.JS dan mengalirkan HLS dan DASH dengan PlayReady dan Widevine DRM Pengunggahan Python dan mengalirkan HLS dan DASH dengan PlayReady dan Widevine DRM Menunjukkan cara menyandikan dan melakukan streaming menggunakan Widevine dan PlayReady DRM
Perlindungan dan streaming konten Node.JS Basic Playready DRM Perlindungan dan streaming konten Python Basic Playready DRM Menunjukkan cara mengenkode dan mengalirkan menggunakan PlayReady DRM
Perlindungan dan streaming konten Node.JS Basic Widevine DRM Perlindungan dan streaming konten Python Basic Widevine DRM Menunjukkan cara mengenkode dan mengalirkan menggunakan Widevine DRM

Dapatkan bantuan dan dukungan

Anda dapat menghubungi Media Services dengan pertanyaan atau mengikuti pembaruan kami dengan salah satu metode berikut: