Mencegah distribusi yang tidak sah

Halaman ini menjelaskan secara singkat opsi yang disediakan Media CDN untuk membantu mencegah distribusi konten Anda tanpa izin.

Media CDN mendukung beberapa opsi permintaan bertanda tangan untuk membantu melindungi konten Anda dari distribusi yang tidak sah. Token adalah media pertukaran permintaan yang ditandatangani, seperti cookie yang ditandatangani, URI dengan parameter kueri, atau komponen jalur. Token valid yang diberikan oleh penonton digunakan untuk mengautentikasi akses ke konten Anda. Penonton dengan token yang tidak valid atau token yang hilang tidak akan dapat mengakses konten Anda.

Media CDN menawarkan opsi permintaan yang ditandatangani berikut untuk autentikasi klien:

  • Tanda tangan: Media CDN menggunakan tanda tangan tunggal untuk membantu melindungi konten.

  • Token: Media CDN menggunakan token untuk membantu melindungi konten. Anda dapat memilih untuk menggunakan autentikasi token tunggal atau token ganda.

    Saat autentikasi dual-token digunakan, Media CDN akan menggunakan dua token, yaitu token berdurasi singkat dan token berdurasi panjang, untuk membantu melindungi konten.

Tanda tangan memungkinkan Anda melakukan penandatanganan URL lengkap, termasuk host dan protokol.

Token menawarkan kemampuan berikut:

  • Kompatibilitas dengan CDN non-Google
  • Penandatanganan khusus jalur
  • Kemampuan untuk menandatangani lebih dari satu header
  • Kemampuan untuk menyematkan data dan ID sesi arbitrer

Kami merekomendasikan token untuk integrasi baru. Token diperlukan untuk autentikasi dual token.

Anda dapat menggunakan permintaan yang ditandatangani dan permintaan autentikasi token ganda secara bersamaan untuk membantu melindungi konten Anda.

Cara kerja permintaan yang ditandatangani

Permintaan yang ditandatangani menggunakan tanda tangan atau token untuk memverifikasi bahwa setiap pelihat diautentikasi untuk mengakses konten. Anda dapat mengonfigurasi Media CDN sehingga aksesnya tercakup ke salah satu dari hal berikut:

  • URI atau awalan URI yang tepat untuk waktu yang terbatas
  • Klien tertentu
  • Untuk permintaan bertanda tangan yang menggunakan token, maksimal lima jalur dengan karakter pengganti

Untuk menggunakan permintaan yang ditandatangani, Anda membuat kunci untuk menandatangani dan memverifikasi tanda tangan. Kemudian, Anda mengonfigurasi rute untuk mengoptimalkan perilaku berdasarkan jenis konten, atribut klien, dan persyaratan keaktualan Anda. Permintaan yang ditandatangani dapat diterapkan per rute, yang membantu Anda melindungi endpoint tertentu.

Setiap layanan Media CDN dapat menggunakan kumpulan beberapa kunci. Kumpulan kunci ini juga dikenal sebagai keyset. Keyset memungkinkan Anda memutar kunci dan mendistribusikan kunci pribadi di seluruh infrastruktur Anda sendiri tanpa gangguan.

Anda dapat mengonfigurasi Media CDN agar menggunakan token atau permintaan yang ditandatangani untuk membantu melindungi konten.

Untuk permintaan bertanda tangan yang menggunakan tanda tangan, Anda dapat menggunakan salah satu format berikut:

  • URI persis dengan parameter kueri: Anda menentukan URLPrefix dengan URI yang tepat dan menambahkan parameter kueri yang sama ke beberapa URI.
  • Awalan URI dengan parameter kueri: Anda menentukan URLPrefix dengan awalan URI dan menambahkan parameter kueri yang sama ke beberapa URI.
  • Komponen jalur: Anda menentukan komponen jalur, yang memungkinkan URI manifes relatif mewarisi komponen URI yang ditandatangani.
  • Cookie yang ditandatangani: Anda menentukan awalan URI dalam cookie, yang memungkinkan akses ke URI apa pun dengan awalan yang Anda tentukan.

Untuk mengetahui informasi selengkapnya, lihat Membuat tanda tangan.

Untuk permintaan bertanda tangan yang menggunakan token, Anda dapat menempatkan token tersebut di salah satu opsi berikut:

  • Dalam parameter kueri pilihan Anda
  • Di cookie

Untuk mengetahui informasi selengkapnya, lihat Membuat token.

Cara kerja autentikasi dual-token

Autentikasi dual-token menggunakan dua token untuk mengautentikasi permintaan ke konten: token berdurasi singkat untuk inisiasi pemutaran, dan token berdurasi panjang untuk sisa sesi pemutaran.

Untuk menggunakan autentikasi token ganda, konfigurasikan server aplikasi Anda untuk menerbitkan token berdurasi singkat untuk agen pengguna. Kemudian, Anda akan mengonfigurasi Media CDN untuk merespons token berdurasi singkat. Anda dapat menempatkan token dalam parameter kueri yang Anda pilih, atau menempatkan token dalam cookie. Untuk mengetahui informasi selengkapnya, lihat Menggunakan autentikasi token ganda.

Token berdurasi singkat yang dibuat oleh server aplikasi Anda membantu melindungi manifes utama (terkadang disebut playlist multi-varian). Masa berlaku permintaan yang ditandatangani cukup singkat untuk meminta manifes utama, tetapi tidak untuk menonton semua konten yang terdapat dalam manifes.

Saat menerima permintaan dengan token berdurasi singkat yang diotorisasi, Media CDN akan menghasilkan token berdurasi panjang yang ditandatangani. Anda dapat menggunakan token tersebut baik dalam parameter kueri dengan nama tunggal maupun dalam cookie. Token berdurasi panjang mendukung penayangan program berdurasi penuh. Token berdurasi panjang yang ditandatangani dan dihasilkan oleh Media CDN menggunakan tanda tangan Ed25519 yang ditandatangani dengan kunci yang dikelola Google yang terkait dengan resource EdgeCacheKeyset.

Anda dapat menyesuaikan waktu habis masa berlaku token berdurasi singkat dan panjang. Sebagai praktik terbaik, sebaiknya Anda mengonfigurasi waktu habis masa berlaku token berdurasi singkat yang dihasilkan di server aplikasi Anda menjadi satu menit. Anda harus menetapkan waktu habis masa berlaku token berdurasi panjang yang dihasilkan Media CDN dengan durasi yang lebih panjang dari panjang konten Anda, hingga maksimal satu hari.

Alur permintaan untuk autentikasi dual-token

Berikut penjelasan alur permintaan:

  1. Penampil meminta metadata dari server aplikasi Anda untuk media yang ingin mereka lihat. Server aplikasi Anda menampilkan URI manifes utama yang ditandatangani dengan token berdurasi singkat.

  2. Aplikasi pemutar Anda meminta manifes utama dari Media CDN. Permintaan tersebut menyertakan token berdurasi singkat sebagai nilai parameter kueri URI dalam format parameter kueri bernama tunggal.

  3. Media CDN memverifikasi token berdurasi singkat dan parameter token yang ditandatangani.

    1. Jika token valid, Media CDN akan membuat token tanda tangan berdurasi panjang. Media CDN menampilkan token di header Set-Cookie, atau dengan mengubah URI segmen dan manifes dalam manifes utama agar menyertakan token.
    2. Jika token tidak valid, Media CDN akan merespons dengan respons HTTP 403 Forbidden.
  4. Aplikasi pemutar menerima manifes utama dari Media CDN, lalu meminta playlist media atau segmen media yang dirujuk dalam manifes utama. Permintaan harus menyertakan token berdurasi panjang, baik sebagai cookie yang ditandatangani atau sebagai parameter URI.

  5. Media CDN memverifikasi token tanda tangan berdurasi panjang:

    1. Jika token berdurasi panjang valid untuk permintaan tertentu, Media CDN akan menayangkan konten yang diminta.
    2. Jika token berdurasi panjang tidak valid (karena token yang sudah tidak berlaku atau jalur yang tidak valid), Media CDN akan merespons dengan respons HTTP 403 Forbidden.
  6. Proses ini berulang hingga pemutaran media berakhir atau tanda tangan berdurasi panjang berakhir.

Format token yang didukung untuk permintaan yang ditandatangani dengan token ganda

Permintaan dual-token Media CDN mendukung beberapa format, bergantung pada jenis token.

Permintaan bertanda tangan berdurasi singkat

Untuk permintaan bertanda tangan berdurasi singkat, Media CDN mendukung token yang ditandatangani dengan tanda tangan Ed25519 secara default. Anda juga dapat menggunakan kode autentikasi pesan berbasis hash (HMAC) kunci simetris untuk kompatibilitas dengan kode aplikasi yang ada dan CDN lainnya.

Untuk menggunakan HMAC, Anda menggunakan Secret Manager untuk menyimpan rahasia HMAC. Kemudian berikan akses ke akun layanan Media CDN untuk mengakses rahasia yang tersimpan. Sebagai praktik terbaik, sebaiknya gunakan penandatanganan asimetris dengan tanda tangan Ed25519 untuk keamanan dan performa.

Akun layanan Media CDN dimiliki oleh project Media CDN, dan tidak ditampilkan dalam daftar akun layanan project Anda. Akun layanan hanya memberikan akses ke resource Media CDN dalam project yang Anda izinkan secara eksplisit.

Akun layanan memiliki format berikut:

service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

Dengan PROJECT_NUMBER adalah nomor project Anda.

Untuk mengaktifkan akun layanan Media CDN layanan, buat minimal satu resource Media CDN, seperti EdgeCacheOrigin.

Permintaan bertanda tangan berdurasi panjang

Untuk permintaan bertanda tangan berdurasi panjang, Media CDN menggunakan tanda tangan Ed25519 yang ditandatangani dengan kunci yang dikelola Google dan terkait dengan resource EdgeCacheKeyset.

Media CDN mendukung format token tunggal untuk token berdurasi panjang, yang dapat digunakan dalam parameter kueri bernama tunggal untuk streaming HLS, atau dalam cookie.

Pertimbangan

Bagian berikut membahas item, seperti:

Batas URI

Sebagian besar klien HTTP modern mendukung URI hingga 8.000 karakter. Namun, beberapa perangkat lama atau khusus mungkin memiliki batasan yang lebih ketat. Secara umum, URI yang ditandatangani menambahkan sekitar 125 karakter ke URI permintaan, yang mencakup hal berikut:

  • Jika semua nama kolom digunakan, sekitar 67 karakter untuk setiap kolom (seperti Expires= dan KeyName=).
  • Untuk stempel waktu Unix, 10 karakter
  • Untuk KeyName, lima karakter
  • Untuk nilai Signature berenkode base64, 43 karakter

Sebagai praktik terbaik, pertahankan URI kurang dari 2.000 karakter menggunakan parameter kueri sebagai token. URI yang lebih singkat mencegah perangkat mengirim URI yang terpotong ke Media CDN.

Perangkat streaming video lama

Beberapa perangkat streaming video lama mungkin tidak sepenuhnya mendukung penambahan cookie ke permintaan manifes atau segmen media. Jika Anda memiliki perangkat dengan masalah umum dalam menangani cookie HTTP, konfigurasikan Media CDN agar menggunakan parameter kueri untuk permintaan bertanda tangan dan pertukaran token ganda.

Anda bertanggung jawab sepenuhnya atas izin dan kepatuhan privasi yang diperlukan saat menggunakan cookie untuk menukar token berdurasi singkat. Ketika Media CDN dikonfigurasi untuk menggunakan permintaan bertanda tangan dual-token, Google akan mengeluarkan dan mengelola cookie yang digunakan untuk token berdurasi panjang.

Penagihan

Untuk mempelajari lebih lanjut cara penagihan Secret Manager, lihat bagian Harga.

Pengambilan Media CDN untuk secret di-cache secara internal, sehingga mengurangi frekuensi pengambilan secret dari Secret Manager secara signifikan. Pengurangan pengambilan juga secara signifikan mengurangi tingkat akses yang diamati dan ditagih oleh Secret Manager kepada Anda.

Untuk mengetahui informasi selengkapnya tentang caching rahasia di Media CDN, lihat Ringkasan kunci.