Widevine — Google tərəfindən mobil cihazlarda, Smart TV və veb platformalarında video məzmunun icazəsiz surətdə çıxarılmasından qorunması üçün hazırlanmış DRM texnologiyasıdır. Məzmunun şifrələnməsi dünya üzrə 4 milyard cihazda dəstəklənən CDM modulu vasitəsilə həyata keçirilir. Widevine texnologiyası Android, iOS, Chrome və Smart TV ilə uyğunluğu təmin edərək, streaming xidmətlərinə premium məzmunu istənilən platformada qorumağa imkan verir.
Əsas məqamlar
Widevine — 2010-cu ildə Google tərəfindən satın alınmış və Android ekosistemində video məzmunun qorunması üçün de-fakto standarta çevrilmiş xüsusi DRM texnologiyasıdır. Netflix, Amazon Prime Video, Disney+ və Hulu daxil olmaqla ən böyük streaming xidmətləri tərəfindən məzmunun icazəsiz surətdə çıxarılmasının və yayılmasının qarşısını almaq üçün istifadə olunur.
Widevine yalnız səlahiyyətli cihazlara təhlükəsiz lisenziyalaşdırma kanalı vasitəsilə ötürülən məzmun açarlarından istifadə edərək AES-128 CBC standartına uyğun şifrələməni dəstəkləyir. Sistem serverdə şifrələmə anından istifadəçi cihazında dekodlaşdırmaya qədər tam mühafizəni təmin edir.
Widevine Technologies şirkəti 1999-cu ildə təsis edilmiş və ilkin olaraq kabel televiziya platformalarında məzmunun qorunması üçün həllər hazırlamışdır. 2010-cu ildə Google tərəfindən satın alındıqdan sonra texnologiya mobil platformalar üçün uyğunlaşdırılmış və Android 4.4 KitKat versiyasından etibarən əməliyyat sisteminə inteqrasiya edilmişdir. 2015-ci ildən Widevine Google Mobile Services sertifikasiyasının məcburi komponentinə çevrilmişdir.
2018-ci ildə Google Widevine Modular DRM-i təqdim etdi ki, bu da cihaz istehsalçılarına əməliyyat sistemi kodunu dəyişdirmədən müxtəlif mühafizə səviyyələrini aparat səviyyəsində həyata keçirməyə imkan verdi. Hal-hazırda Widevine Modular 4 milyarddan çox cihazda dəstəklənir və Android-də əsas DRM mexanizmidir.
Widevine arxitekturası üç əsas komponentdən ibarətdir: Content Decryption Module (CDM), lisenziya serveri və məzmun şifrələmə vasitəsi. CDM müştəri tərəfində şifrənin açılmasını həyata keçirir və açarların təhlükəsiz saxlanması üçün aparat Trusted Execution Environment (TEE) ilə qarşılıqlı əlaqədə olur.
Google lisenziya serveri məzmun təminatçısının siyasətləri əsasında açarların verilməsini idarə edir, bu siyasətlər vaxt məhdudiyyətlərini, cihazların sayını və çoxalma keyfiyyətini müəyyən edir. Şifrələmə vasitəsi təminatçı tərəfində məzmunu hazırlayır, onu CENC şifrələməsi ilə MPEG-DASH və ya HLS formatında paketləyir.
Mühafizə prosesi məzmunun paketlənməsi mərhələsindən başlayır, media faylı təminatçı serverində məzmun açarından istifadə edərək şifrələnir. Şifrələnmiş axın CDN vasitəsilə istifadəçi cihazına ötürülür, burada CDM lisenziya serverindən lisenziya tələb edir.
Lisenziya serveri cihazın həqiqiliyini və məzmun əldə etmə hüququnu yoxlayır. Yoxlama uğurlu olarsa, server CDM-in şifrəni açmaq üçün istifadə etdiyi açar ilə lisenziya verir. Lisenziyada baxış vaxtı və qətnamə ilə bağlı məhdudiyyətlər ola bilər.
Widevine-də lisenziya mübadiləsi brauzerlərdə EME (Encrypted Media Extensions) protokolu və ya mobil platformalarda SDK vasitəsilə həyata keçirilir. Lisenziya sorğusu CDM tərəfindən formalaşdırılır və HTTPS üzərindən lisenziya serverinə göndərilir, bu da açarların ötürülmə zamanı ələ keçirilməsindən qorunmasını təmin edir.
Server sorğunu emal edir və yalnız cihazın CDM-i tərəfindən şifrəsi açıla bilən lisenziyanı qaytarır. Aparat bağlaması açarın konkret cihaza bağlanmasını təmin edərək onun digər platformalara köçürülməsinin qarşısını alır.
Widevine ISO/IEC 23001-7-də müəyyən edilmiş Common Encryption (CENC) standartlarından istifadə edir ki, bu da MPEG-DASH və HLS formatları ilə uyğunluğu təmin edir. AES-128 şifrələməsi CTR və ya CBC rejimində media axınlarının qorunması üçün tətbiq olunur.
Açar çıxarılması üçün HKDF (HMAC-based Key Derivation Function) istifadə olunur ki, bu da məzmunun hər seqmenti üçün unikal açarlar yaratmağa imkan verir. HLS dəstəyi Widevine-də Modular 2.0 versiyasından əlavə edilmişdir ki, bu da Apple platformaları ilə uyğunluğu genişləndirmişdir.
@Throws
fun requestLicense(): ByteArray {
val drmSessionManager = mediaDrm.createSession(
sessionId,
List("keyRequestType", "init")
)
val request = mediaDrm.getKeyRequest(
sessionId,
schemeData.get("mimeType"),
KeyType.STREAMING,
mutableMapOf()
)
return licenseService.acquire(request.data)
}
Widevine müəyyən edir kriptoqrafik əməliyyatların icra üsulu və məzmunun işlənməsi ilə fərqlənən üç təhlükəsizlik səviyyəsi. L1 səviyyəsi maksimum qorunma təmin edir, L3 — minimal, L2 isə aralıq mövqe tutur.
| Səviyyə | Qorunma növü | Cihaz tələbləri | Maksimum qətnamə |
|---|---|---|---|
| L1 | Aparat | SoC səviyyəsində TEE | 4K Ultra HD |
| L2 | Hibrid | Açarlar üçün TEE, video üçün proqram | 1080p |
| L3 | Proqram | Yalnız proqram CDM | 720p |
L1 səviyyəsi bütün kriptoqrafik əməliyyatların icra olunduğu aparat səviyyəsində Trusted Execution Environment (TEE) tələb edir. Məzmun açarları heç vaxt TEE-ni tərk etmir, bu da əsas əməliyyat sistemi kompromat edilsə belə onların çıxarılmasını istisna edir.
L1 sertifikatlı cihazlar məzmunu 4K və HDR keyfiyyətində oxuda bilər, çünki şifrəsi açılmış video axını birbaşa qorunan video çıxışına ötürülür, istifadəçi proseslərinin girişi olmadan.
L3 səviyyəsi bütün kriptoqrafik əməliyyatları adi istifadəçi məkanında proqram vasitəsilə icra edir. Bu, açarların cihazın operativ yaddaşından çıxarıla biləcəyi ən az təhlükəsiz rejimdir.
Widevine L3 oxutma keyfiyyətini 720p ilə məhdudlaşdırır, bu da onu aşağı səviyyəli cihazlarda və ya aparat qorunması olmayan masaüstü brauzerlərdə izləmək üçün uyğun edir.
fun getSecurityLevel(): String {
val mediaDrm = MediaDrm(UUID.fromString(
"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
))
val level = mediaDrm.getPropertyString(
"securityLevel"
)
return level.ifEmpty { "L3" }
}
Widevine-in inteqrasiyası mobil tətbiqlərdə standart MediaDrm (Android) və AVContentKeySession (iOS) API-ləri vasitəsilə həyata keçirilir. Əksər hallarda tərtibatçı birbaşa DRM ilə işləməli deyil — ExoPlayer və AVPlayer kimi oxutma kitabxanaları lisenziyalaşdırmanı avtomatik idarə edir.
Android-də Widevine CDM-ə birbaşa giriş təmin edən MediaDrm sinfi vasitəsilə inteqrasiya olunur. Streaming tətbiqləri üçün lisenziya sorğularını avtomatik idarə edən DrmSessionManager modulu ilə ExoPlayer-dan istifadə etmək tövsiyə olunur.
Oxuducunu işə salarkən Widevine sxeminin UUID-sini (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) və məzmun təminatçısı tərəfindən verilən lisenziya serverinin URL-ni göstərmək lazımdır. ExoPlayer lisenziya sorğusu və yeniləmə dövrünü müstəqil idarə edir.
val drmLicenseUrl = "https://license.service.com/wv"
val mediaItem = MediaItem.Builder()
.setUri(Uri.parse(streamUrl))
.setDrmKeyRequestUrl(drmLicenseUrl)
.setDrmKeyRequestHeaders(
mapOf("Authorization" to token)
)
.build()
val exoPlayer = ExoPlayer.Builder(context)
.build()
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
Veb platformalarında Widevine Media Source Extensions (MSE) və Encrypted Media Extensions (EME) vasitəsilə işləyir. Chromium əsaslı brauzerlər Widevine CDM-i daxili dəstəkləyir və tərtibatçı üçün yalnız düzgün konfiqurasiya ilə EME sessiyasını işə salmaq kifayətdir.
Brauzerdə Widevine ilə işləmək üçün keySystem növü `com.widevine.alpha` olan lisenziya başlatıcısını göstərmək lazımdır. MediaKeys nümunəsi yaradıldıqdan sonra brauzer lisenziya sorğularını avtomatik idarə edir.
Widevine inteqrasiyası zamanı giriş hüquqlarının olmaması, abunəliyin bitməsi və ya cihaz uyğunsuzluğu səbəbindən yaranan lisenziyalaşdırma xətalarını düzgün idarə etmək vacibdir. TYPE_EXPIRED_LICENSE xətası serverə təkrar sorğu vasitəsilə lisenziyanın yenilənməsini tələb edir, TYPE_OUTPUT_NOT_ALLOWED isə video çıxışının DRM siyasətləri ilə uyğunsuzluğunu göstərir.
Müvəqqəti şəbəkə xətaları üçün eksponensial gecikmə ilə təkrar cəhd mexanizmini tətbiq etmək və daimi lisenziyalaşdırma imtinalarında istifadəçiyə anlaşıqlı mesaj göstərmək tövsiyə olunur. DRM sessiyalarının xəta jurnalı məzmun təminatçılarına cihaz problemlərini aşkar etməyə və siyasətləri optimallaşdırmağa kömək edir.
Widevine rəqabət aparır Apple-dan FairPlay və Microsoft-dan PlayReady ilə, mobil platforma bazarında üç əsas DRM həllini formalaşdıraraq. Hər bir texnologiyanın platforma ekosistemi ilə bağlı öz üstünlükləri və məhdudiyyətləri var.
| Xüsusiyyət | Widevine | FairPlay | PlayReady |
|---|---|---|---|
| Tərtibatçı | Apple | Microsoft | |
| Əsas platforma | Android, Chrome | iOS, tvOS, Safari | Windows, Xbox, UWP |
| Maksimum səviyyə | L1 (4K) | L1 ekvivalenti (4K) | SL3000 (4K) |
| Aparat qorunması | TEE | Secure Enclave | TPM + TEE |
DRM seçimi tətbiqin hədəf platformalarından asılıdır. Android-first layihələri üçün Widevine təbii seçimdir, çünki o, Google Mobile Services ilə sertifikatlaşdırılmış bütün cihazlarda öncədən quraşdırılmışdır və əlavə lisenziya haqqı tələb etmir.
Çarpaz platformalı layihələr üçün tez-tez hər üç DRM sistemi ilə işləmək üçün vahid API təmin edən Axinom, EZDRM və Vualto kimi lisenziya aqreqatorlarından istifadə edərək multi-DRM yanaşması tətbiq olunur. Bu, inteqrasiya mürəkkəbliyini azaldır və lisenziya idarəçiliyini mərkəzləşdirir.
Tez-tez verilən suallar
Widevine — rəqəmsal video məzmunun icazəsiz surətdə çıxarılmasından qorunması üçün Google-dan DRM texnologiyasıdır. Streaming xidmətləri tərəfindən videonu şifrələmək və lisenziyalaşdırma sistemi vasitəsilə ona girişi idarə etmək üçün istifadə olunur.
Widevine üç səviyyə təhlükəsizliyi dəstəkləyir: TEE-də aparat şifrələməsi ilə L1, hibrid yanaşma ilə L2 və tam proqram təminatı ilə L3. L1 4K-da məzmun oxutmağa imkan verir, L3 720p keyfiyyəti ilə məhdudlaşır.
Android-də Widevine səviyyəsini MediaDrm sinfi vasitəsilə securityLevel xassəsini sorğulayaraq yoxlamaq olar. Bunun üçün Widevine UUID-si ilə MediaDrm nümunəsi yaradılır və getPropertyString çağırılır və ya DRM Info kimi üçüncü tərəf tətbiqlərindən istifadə olunur.
Widevine Google tərəfindən Android və Chrome üçün, FairPlay isə iOS, tvOS və Safari üçün hazırlanmışdır. Hər ikisi aparat şifrələməsini və 4K-nı dəstəkləyir, lakin Widevine Android cihazlarında daha geniş yayılmışdır, FairPlay isə Apple ekosistemində de-fakto standartdır.
Mobil tətbiqdə Widevine istifadəsi üçün ayrıca lisenziya tələb olunmur — texnologiya sertifikatlaşdırılmış Android cihazlarına və Chrome-a quraşdırılmışdır. Ödəniş yalnız lisenziya serverindən istifadə edən məzmun təminatçılarından alınır.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun