Huawei WisePlay Dijital Haklar Yönetimi Nedir?
Dijital haklar yönetimi (İngilizce: Digital Rights Management kısaca DRM), dijital medya kopya haklarını korur. Amaç, dijital medyanın yetkisiz olarak yeniden dağıtımını yasaklamak ve tüketicilerin satın alınan içeriği kopyalayabilecekleri yolları kısıtlamaktır.
Genel olarak DRM sistemleri, kopyalamayı engelleyen ve içeriğe erişilebilecek zaman dilimini belirten veya kurulabileceği cihazların sayısını sınırlayan bir kod yapısıdır.
Piyasada farkli DRM çözümleri vardır, sık kullanılan çözümlerden biri, Google tarafından sağlanan Android ve Google’ın yerel cihazlarında kullanılan Widevine DRM’dir.
Öte yandan, bu makalenin de amaçları doğrultusunda Huawei WisePlay DRM çözümü analiz edilecektir. WisePlay DRM, telifsiz (WisePlay, bu çözüm için bir lisans ücreti talep etmez), standartlara dayalı dijital içerik telif hakkı koruma yetenekleri sağlar, hem donanım hem de yazılım düzeyinde DRM yeteneklerini destekler ve geliştiricilere yüksek kaliteli dijital içerik hizmeti oluşturur.
WisePlay DRM’in Temel Özellikleri
1) Çevrimiçi Oynatma (Video on Demand/Canlı TV)
Oturum kapatıldığında içerik lisansının silindiği çözüm türüdür.
2) Çevrimdışı Oynatma (Video on Demand)
İçerik lisansının cihazda saklandığı çözüm türüdür.
3) Donanım ve Yazılım Seviyesinde DRM Çözümü
WisePlay DRM hem donanım hem de yazılım düzeyinde şifreleme yeteneğine sahiptir.
Donanım ve yazılım düzeyinde şifreleme arasındaki fark, cihazın güvenlik düzeyinde bulunmaktadır. Hizmet sağlayıcıların çoğu, yüksek kalite için donanım düzeyinde DRM talep eder; örneğin 4K video medya içeriğinde veri korunması.
Cihazın Trusted Execution Environment (kısaca TEE) katmanında çalışan güvenilir uygulamalar için donanım düzeyinde şifreleme özelliği gereklidir ve bu da cihazın çip yeteneklerine bağlıdır. Bu düzeyde, yazılım düzeyinde şifreleme yeteneği gerekli değildir.
Yazılım düzeyinde DRM veri şifreleme ve diğer işlemler Rich Operating System Execution Environment (kısaca REE) katmanında gerçekleştirilir. İçerik güvenliği yazılımla korunmaktadır.
4) Çoklu İçerik Formatlarını Destekleme
WisePlay DRM, en sık kullanılan uyarlanabilir akış içeriği formatlarını destekler. Bunlar:
- fMP4 DASH
- fMP4 HLS
- TS HLS
5) Çoklu Şifreleme Algoritmalarını Destekleme
WisePlay DRM, en sık kullanılan içerik şifreleme formatlarını destekler. Bunlar:
- CENC
- AES128-CTR
- AES128-CBC
Geliştirme Senaryoları
1) Çevrimiçi Lisans Edinme
- WisePlay DRM’in UUID özelliğinin desteklenip desteklenmediğini kontrol etmek için isCryptoSchemeSupported () yöntemini çağırın.
- Bir MediaDrm nesnesi oluşturun ve WisePlay DRM’in UUID’sini aktarın. UUID, her DRM türünün küresel olarak kimliğini gösterir. (Not: Wiseplay DRM UUID kimliği= 3d5e6d35–9b9a-41e8-b843-dd3c6e72c42c)
- Oturum açmak ve sessionId almak için MediaDrm’in openSession () yöntemini çağırın.
- İstek gövdesindeki KeyRequest nesnesini almak için MediaDrm’in getKeyRequest () yöntemini çağırın. Giriş parametreleri aşağıdaki şekilde açıklanmıştır:
sessionId: openSession yöntemi tarafından döndürülen oturum kimliği.
initData:
a) keyType, MediaDrm.KEY_TYPE_STREAMING veya MediaDrm.KEY_TYPE_OFFLINE olarak ayarlanmışsa, initData değerini psshbox değerine ayarlayın. (psshbox değeri, Dash akışları için MPD dosyasından ve HLS akışları için M3U8 dosyasından elde edilir.)
b) keyType, MediaDrm.KEY_TYPE_RELEASE olarak ayarlanmışsa initData parametresi boş bırakılabilir.
mimeType: medya tipi, örneğin, video/mp4 veya video/webm. Lisansı silmek için bu parametre boş bırakılabilir.
keyType:
a) Çevrimiçi lisans elde etmek için parametre MediaDrm.KEY_TYPE_STREAMING olarak ayarlanmalıdır.
b) Çevrimdışı lisans elde etmek için parametre MediaDrm.KEY_TYPE_OFFLINE olarak ayarlanmalıdır.
c) Lisansı silmek için parametre MediaDrm.KEY_TYPE_RELEASE olarak ayarlanmalıdır.
optionalParameters: Bu kısım boş bırakılabilir.
- POST modunda sunucuya çevrimiçi lisans isteği gönderin. Önceki adımda KeyRequest’in getData() yöntemi kullanılarak elde edilen verilere istek başlığındaki Content-Type’ı application/json olarak istek gövdesini ayarlayın.
- Sunucudan bir yanıt aldıktan sonra, sunucu yanıtının içeriğini eklentiye aktarmak için allowKeyResponse() yöntemini kullanın. Giriş parametresi, sunucudan alınan lisans verilerinin bayt dizisidir.
2) Çevrimdışı Lisans Edinme
- Süreç, çevrimiçi lisans alma işlemiyle aynıdır. Fark, MediaDrm’in getKeyRequest API’sini çağırmak için girdi parametresinde yatmaktadır. getKeyRequest API’sinin MediaDrm.keyType parametresi MediaDrm.KEY_TYPE_OFFLINE olarak ayarlanmalıdır.
- Çevrimdışı lisans edindikten sonra, lisansın kimliğini belirten keySetId’yi sorgulamak için allowKeyResponse() yöntemini çağırın ve sonrasında yeniden kullanmak için güvenli bir yerde saklayın.
3) Çevrimdışı Lisansla İçerik Oynatma
- MediaDrm’in restoreKeys() yöntemini çağırın ve keySetId parametresini edinin. Bu lisans çevrimdışı içeriğin daha sonradan tekrar oynatılmasında kullanılmaktadır.
- Lisansın süresi dolduysa ya da keySetId mevcut değilse, restoreKeys yöntemini çağırma işlemi başarısız olacaktır.
- Lisansın süresi dolduysa, codec bileşenini başlatmayın.
4) Çevrimdışı Lisansın Silinmesi
- Süreç, çevrimiçi lisans alma işlemiyle aynıdır. Fark, MediaDrm’in getKeyRequest API’sini çağırmak için girdi parametresinde yatmaktadır. keyType parametresi MediaDrm.KEY_TYPE_RELEASE olarak ayarlanmalıdır ve initData parametresi boş bırakılabilir.
Notlar
- WisePlay DRM şimdilik Huawei Kirin 990 çip setine sahip cihazlarda desteklenmektedir (EMUI 10.1 ve sonrası yüklü).
- Cihazda HMS Core SDK 4.0.0 ve sonrası yüklü olmalıdır.
- WisePlay DRM şimdilik Kurumsal Geliştiriciler için kullanıma.
- Huawei Developer’a nasıl katılabilir, geliştirici hesabına nasıl kaydolabilir ve uygulamalarınızı Huawei AppGallery’de nasıl yayımlayabilirsiniz vb. gibi daha fazla bilgi için lütfen aşağıdaki linke gidin.