Halaman ini menjelaskan secara singkat opsi yang disediakan Media CDN untuk membantu mencegah distribusi konten Anda yang tidak sah.
Media CDN menawarkan opsi berikut untuk membantu melindungi konten Anda dari distribusi yang tidak sah.
Token (pendekatan yang direkomendasikan): Media CDN menggunakan token untuk membantu melindungi konten.
Token adalah media pertukaran permintaan yang ditandatangani, seperti cookie yang ditandatangani, URI dengan parameter kueri, atau komponen jalur. Token valid yang ditampilkan oleh penonton digunakan untuk mengautentikasi akses ke konten Anda. Penonton dengan token yang tidak valid atau token yang hilang akan dicegah mengakses konten Anda.
Anda dapat memilih untuk menggunakan autentikasi token tunggal atau token ganda. Token diperlukan untuk autentikasi token ganda.
Saat autentikasi token ganda digunakan, Media CDN menggunakan dua token, token berdurasi singkat dan token berdurasi panjang.
Google merekomendasikan token untuk integrasi baru karena menawarkan keuntungan berikut:
- Memberikan kompatibilitas dengan jaringan penayangan konten (CDN) non-Google.
- Mendukung penandatanganan khusus jalur.
- Mengaktifkan penandatanganan beberapa header.
- Menawarkan kontrol akses dan pencabutan terperinci.
- Meminimalkan dampak token yang disusupi.
- Dapat menyematkan data arbitrer dan ID sesi.
Tanda tangan: Media CDN menggunakan satu tanda tangan untuk membantu melindungi konten. Tanda tangan memungkinkan Anda melakukan penandatanganan URL lengkap, termasuk host dan protokol.
Anda dapat menggunakan kedua opsi tersebut secara bersamaan untuk membantu melindungi konten Anda.
Cara kerja autentikasi token ganda
Autentikasi token ganda menggunakan dua token untuk mengautentikasi permintaan ke konten Anda: token berdurasi singkat untuk memulai pemutaran, dan token berdurasi panjang untuk sisa sesi pemutaran.
Untuk menggunakan autentikasi token ganda, Anda mengonfigurasi server aplikasi untuk mengeluarkan token berdurasi singkat ke agen pengguna. Kemudian, Anda mengonfigurasi Media CDN untuk merespons token berdurasi singkat. Anda dapat menempatkan token dalam parameter kueri pilihan Anda, atau menempatkan token dalam cookie. Untuk informasi selengkapnya, lihat Menggunakan autentikasi token ganda.
Token berdurasi singkat yang dihasilkan oleh server aplikasi Anda membantu melindungi manifes utama (terkadang disebut playlist multivarian). 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 durasi singkat
yang diotorisasi, Media CDN akan membuat token durasi panjang yang ditandatangani. Anda dapat menggunakan token dalam
parameter kueri bernama tunggal atau dalam cookie. Token berdurasi panjang
mendukung penayangan program berdurasi penuh. Token berdurasi panjang yang ditandatangani
yang 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 pendek dan panjang. Sebagai praktik terbaik, Google merekomendasikan agar Anda mengonfigurasi waktu habis masa berlaku token berdurasi singkat yang dihasilkan di server aplikasi menjadi satu menit. Anda harus menetapkan waktu habis masa berlaku token berdurasi panjang yang dihasilkan Media CDN ke durasi yang lebih besar dari durasi konten Anda, hingga maksimum satu hari.
Alur permintaan untuk autentikasi token ganda
Berikut ini penjelasan alur permintaan:
Pelihat 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.
Aplikasi pemutar Anda meminta manifes utama dari Media CDN. Permintaan menyertakan token durasi singkat sebagai nilai parameter kueri URI dalam format parameter kueri dengan nama tunggal.
Media CDN memverifikasi token berdurasi singkat dan parameter yang ditandatangani token.
- Jika token valid, Media CDN akan membuat token tanda tangan berdurasi panjang. Media CDN menampilkan token dalam header Set-Cookie, atau dengan mengubah URI manifes dan segmen dalam manifes utama untuk menyertakan token.
- Jika token tidak valid, Media CDN akan merespons dengan respons
HTTP 403 Forbidden
.
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 maupun sebagai parameter URI.
Media CDN memverifikasi token tanda tangan berdurasi panjang:
- Jika token berdurasi panjang valid untuk permintaan tertentu, Media CDN akan menayangkan konten yang diminta.
- Jika token berdurasi panjang tidak valid (karena token sudah tidak berlaku atau jalur tidak valid), Media CDN akan merespons dengan respons
HTTP 403 Forbidden
.
Proses ini diulang hingga pemutaran media berakhir atau masa berlaku tanda tangan durasi lama berakhir.
Format token yang didukung untuk permintaan yang ditandatangani dengan token ganda
Permintaan yang ditandatangani dengan token ganda CDN Media mendukung beberapa format, bergantung pada jenis token.
Permintaan ditandatangani 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) dengan kunci simetris untuk kompatibilitas dengan kode aplikasi yang ada dan CDN lainnya.
Untuk menggunakan HMAC, Anda menggunakan Secret Manager untuk menyimpan secret HMAC. Kemudian, Anda memberikan akses ke akun layanan Media CDN untuk mengakses secret yang disimpan. Sebagai praktik terbaik, Google merekomendasikan penggunaan 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 di project yang Anda izinkan secara eksplisit.
Akun layanan memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
Dengan PROJECT_NUMBER sebagai nomor project Anda.
Untuk mengaktifkan akun layanan Media CDN, buat setidaknya
satu resource Media CDN, seperti EdgeCacheOrigin
.
Permintaan yang ditandatangani berdurasi lama
Untuk permintaan yang ditandatangani berdurasi lama, Media CDN menggunakan tanda tangan Ed25519
yang ditandatangani dengan kunci yang dikelola Google dan dikaitkan dengan
resource EdgeCacheKeyset
.
CDN Media mendukung format token tunggal untuk token berdurasi panjang, yang dapat digunakan dalam parameter kueri bernama tunggal untuk streaming HLS, atau dalam cookie.
Cara kerja permintaan yang ditandatangani
Permintaan yang ditandatangani menggunakan tanda tangan atau token untuk memverifikasi bahwa setiap pelihat telah diautentikasi untuk mengakses konten. Anda dapat mengonfigurasi Media CDN agar aksesnya dicakup ke salah satu hal berikut:
- URI persis atau awalan URI untuk waktu terbatas
- Klien tertentu
- Untuk permintaan yang ditandatangani menggunakan token, hingga lima jalur dengan karakter pengganti
Untuk menggunakan permintaan yang ditandatangani, Anda membuat kunci untuk menandatangani dan memverifikasi tanda tangan. Kemudian, Anda mengonfigurasi rute, yang memungkinkan Anda mengoptimalkan perilaku berdasarkan jenis konten, atribut klien, dan persyaratan keaktualan Anda. Permintaan yang ditandatangani dapat diterapkan berdasarkan per rute, yang membantu Anda melindungi endpoint tertentu.
Setiap layanan Media CDN dapat menggunakan kumpulan beberapa kunci. Kumpulan kunci juga dikenal sebagai kumpulan kunci. Keyset memungkinkan Anda memutar kunci dan mendistribusikan kunci pribadi di seluruh infrastruktur Anda sendiri tanpa gangguan.
Anda dapat mengonfigurasi Media CDN untuk menggunakan permintaan atau token yang ditandatangani untuk membantu melindungi konten.
Untuk permintaan yang ditandatangani menggunakan token, Anda dapat menempatkan token di salah satu hal berikut:
- Dalam parameter kueri pilihan Anda
- Dalam cookie
Untuk mengetahui informasi selengkapnya, lihat Membuat token.
Untuk permintaan yang ditandatangani menggunakan tanda tangan, Anda dapat menggunakan salah satu format berikut:
- URI persis dengan parameter kueri: Anda menentukan
URLPrefix
dengan URI persis 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.
Pertimbangan
Bagian berikut membahas berbagai faktor yang perlu dipertimbangkan untuk membantu mencegah distribusi konten Anda tanpa izin.
Pertimbangan keamanan
Media CDN memvalidasi semua permintaan yang cocok dengan rute yang dikonfigurasi dengan
cdnPolicy.signedRequestMode
dari REQUIRE_SIGNATURES
atau REQUIRE_TOKENS
.
Sebaiknya validasi permintaan di origin Anda. Meskipun Media CDN menolak permintaan yang tidak valid dan tidak ditandatangani untuk rute yang memerlukan tanda tangan, klien mungkin menemukan cara untuk mengakses origin Anda secara langsung. Lapisan validasi tambahan membantu memberikan pendekatan pertahanan menyeluruh untuk melindungi konten Anda.
Tabel berikut menjelaskan skenario saat Media CDN memvalidasi permintaan:
Permintaan memiliki tanda tangan | Tanda tangan valid? | signedRequestMode | Perilaku | Kode status |
---|---|---|---|---|
Tidak | T/A | REQUIRE_SIGNATURES atau REQUIRE_TOKENS |
Permintaan tanpa tanda tangan atau token diperlakukan seolah-olah tanda tangan tersebut tidak valid. | HTTP 403 |
Ya | Tidak | REQUIRE_SIGNATURES atau REQUIRE_TOKENS |
Tanda tangan atau token dianggap tidak valid jika sudah tidak berlaku atau memiliki URL yang tidak cocok atau kunci yang salah. Tanda tangan atau token yang tidak valid akan ditolak di edge CDN. | HTTP 403 |
Ya | Ya | REQUIRE_SIGNATURES atau REQUIRE_TOKENS |
Tanda tangan atau token divalidasi, dan respons ditayangkan dengan konten dari cache atau asal. | HTTP 200 |
Ya | Ya | Tidak ada atau DISABLED |
Tidak ada validasi yang dilakukan, dan respons ditayangkan kepada pengguna secara langsung. | HTTP 200 |
Ya | Tidak | Tidak ada atau DISABLED |
Tidak ada validasi yang dilakukan, dan respons ditayangkan kepada pengguna secara langsung. | HTTP 200 |
Saat aplikasi mendeteksi tanda tangan yang tidak valid, pastikan aplikasi
merespons dengan kode status HTTP 403 (Forbidden)
.
Kode status HTTP 403
tidak dapat di-cache.
Jika aplikasi Anda mengirimkan kode status yang dapat di-cache ke permintaan yang tidak valid, permintaan mendatang yang valid mungkin salah ditolak.
Batas URI
Sebagian besar klien HTTP modern mendukung URI dengan panjang hingga 8.000 karakter. Namun, beberapa perangkat lama atau khusus mungkin memiliki batas 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=
danKeyName=
). - Untuk stempel waktu Unix, 10 karakter
- Untuk
KeyName
, lima karakter - Untuk nilai
Signature
yang dienkode base64, 43 karakter
Sebagai praktik terbaik, pastikan URI tidak lebih dari 2.000 karakter menggunakan parameter kueri sebagai token. URI yang lebih pendek mencegah perangkat mengirim URI yang terpotong ke CDN Media.
Perangkat streaming video lama
Beberapa perangkat streaming video lama mungkin tidak sepenuhnya mendukung lampiran cookie ke permintaan segmen media atau manifes. Jika Anda memiliki perangkat dengan masalah umum dalam menangani cookie HTTP, konfigurasikan Media CDN untuk menggunakan parameter kueri untuk permintaan yang ditandatangani dan pertukaran token ganda.
Kepatuhan izin dan privasi
Anda bertanggung jawab penuh atas kepatuhan izin dan privasi yang diperlukan saat menggunakan cookie untuk menukar token berdurasi singkat. Saat Media CDN dikonfigurasi untuk menggunakan permintaan yang ditandatangani dengan token ganda, Google akan menerbitkan dan mengelola cookie yang digunakan untuk token berdurasi lama.
Penagihan
Untuk mempelajari lebih lanjut cara penagihan Secret Manager, lihat Harga.
Pengambilan secret oleh Media CDN di-cache secara internal, sehingga secara signifikan mengurangi frekuensi pengambilan secret dari Secret Manager. Pengambilan yang dikurangi juga secara signifikan mengurangi frekuensi akses yang diamati dan ditagih oleh Secret Manager.
Untuk mengetahui informasi selengkapnya tentang penyimpanan secret ke dalam cache di Media CDN, lihat Ringkasan kunci.