Mobil ilovalarda DRM: asoslar, himoya sxemalari va ishlash prinsipi

Muallif: IT Sectr Nashr etilgan: 2026-05-24 O'qish vaqti: 11 daq

DRM (Digital Rights Management) — raqamli kontentni ruxsatsiz nusxalash va tarqatishdan himoya qiluvchi texnologiyalar to‘plami. Mobil ilovalarda DRM video, audio va elektron kitoblarni shifrlash uchun ishlatiladi, huquq egalari va iste’molchilar o‘rtasida litsenziya shartnomalariga rioya qilinishini ta’minlaydi. Google Widevine Documentation, 2026 ma’lumotlariga ko‘ra, DRM ko‘pchilik striming xizmatlariga — Netflix, Spotify, Apple TV+ — o‘rnatilgan va premium kontentni qonuniy tarqatish uchun majburiydir.

Asosiy

  • DRM (Digital Rights Management) — mualliflik huquqlarini himoya qiluvchi, raqamli kontentni nusxalash va tarqatishni cheklovchi texnologiyalar.
  • Uchta asosiy sxema: Widevine (Google), FairPlay (Apple), PlayReady (Microsoft) — mobil platformalarda hukmronlik qiladi.
  • Widevine Android va iOS-da CDM orqali ishlaydi, uchta xavfsizlik darajasini qo‘llab-quvvatlaydi: L1, L2, L3.
  • Apple-ning FairPlay-si kalitlarni yaratish uchun KSM serveridan foydalanadi va iOS va macOS-da AVFoundation-ga o‘rnatilgan.
  • DRM shifrini ochish media pleer darajasida amalga oshiriladi — dasturchi ExoPlayer yoki AVPlayer orqali tayyor video oqimini oladi.

DRM nima?

DRM — raqamli kontentga kirishni boshqaruvchi kriptografik va dasturiy usullar majmuidir. Oddiy shifrlashdan farqli o‘laroq, DRM litsenziyalash tizimini o‘z ichiga oladi: kontent shifrlangan va uni ko‘rish uchun foydalanuvchining huquqlari tekshirilgandan keyin beriladigan kalit talab qilinadi.

DRM-ning asosiy vazifasi qaroqchilikning oldini olish va mintaqaviy cheklovlarga rioya qilishni ta’minlashdir. DRM bo‘lmasa, kontent egalari (kino studiyalari, ovoz yozish leybllari) o‘z kontentlarini striming platformalariga litsenziyalashmaydi. Motion Picture Association (2025) ma’lumotlariga ko‘ra, DRM dan foydalanish filmlarning strimingda noqonuniy tarqalishini DVD riplari davriga nisbatan 62% ga kamaytirdi.

Mobil ishlanmada DRM media pleer darajasida o‘rnatiladi: dasturchi shifrlangan oqimning o‘rnatilgan shifrini ochadigan ExoPlayer (Android), AVPlayer (iOS) yoki Shaka Player (Web) dan foydalanadi. Dasturchi kriptografiyani amalga oshirishi shart emas — litsenziyalash uchun SDK ni integratsiya qilish kifoya.

DRM va CENC (Common Encryption)

CENC (Common Encryption — ISO/IEC 23001-7) standarti barcha DRM tizimlari uchun bitta shifrlangan media fayldan foydalanishga imkon beradi. Kontent bir marta shifrlanadi, kalitlar esa turli litsenziya serverlari orqali tarqatiladi. Bu ko‘p platformali xizmatlar uchun juda muhim: Netflix filmni bir marta shifrlaydi va uni Android (Widevine), iOS (FairPlay) va Windows (PlayReady) ga qayta kodlamasdan yetkazib beradi.

CENC audio va video yo‘llari uchun turli kalitlar bilan CBC shifrlashdan foydalanadi. Har bir kalit MPD (MPEG-DASH) yoki M3U8 (HLS) manifestida shifrlangan shaklda saqlanadi. Kontent identifikatori (KID) shifrlangan oqimni serverdagi litsenziya bilan bog‘laydi — haqiqiy litsenziya bo‘lmasa, kalit shifrdan chiqarilmaydi.

DRM mobil ilovalarda qanday ishlaydi

DRM ko‘paytirish jarayoni to‘rt bosqichdan iborat: manifestni yuklash, litsenziya olish, kontent shifrini ochish va ko‘rsatish. Har bir bosqich tizimning turli komponentlari — media pleer, CDM moduli va litsenziya serveri tomonidan bajariladi.

  • Manifestni yuklash — pleer shifrlangan segmentlar, shifrlash sxemasi va litsenziya serverining URL-i haqida ma’lumotlar bilan MPD (DASH) yoki M3U8 (HLS) oladi.
  • Litsenziya so‘rovi — pleer kontent identifikatorini (KID) Content Decryption Module (CDM) ga uzatadi, u litsenziya serveriga so‘rovni shakllantiradi.
  • Kalitni olish — server foydalanuvchining huquqlarini (obuna, mintaqa, qurilma) tekshiradi va qurilmaning ochiq kaliti bilan shifrlangan kalitni qaytaradi.
  • Oqim shifrini ochish — CDM kalitni qurilmaning shaxsiy kaliti bilan shifrdan chiqaradi va video segmentlarni real vaqtda shifrini ochish uchun pleerga uzatadi.

Content Decryption Module (CDM)

CDM — kontent shifrini ochadigan himoyalangan dasturiy yoki apparat moduli. Android-da CDM MediaDrm API darajasida, iOS-da esa AVContentKeySession orqali AVFoundation-ga o‘rnatilgan. CDM hech qachon kalitni ilovaga oshkor etmaydi — barcha kriptografik operatsiyalar himoyalangan muhit ichida (TEE — Trusted Execution Environment) bajariladi.

Apparat qo‘llab-quvvatlovi bo‘lgan qurilmalarda (Secure Level 1), CDM TEE ichida ishlaydi — kalit hech qachon qurilmaning asosiy xotirasiga tushmaydi. Bu 4K HDR da kontentni ko‘paytirish uchun studiyalarning talabidir. TEE bo‘lmagan qurilmalarda kalitlar dasturiy ravishda shifrdan chiqariladi (L3), bu himoyani kamaytiradi va maksimal sifatni 540p bilan cheklaydi.

Asosiy DRM sxemalari

Mobil platformalarda uchta DRM tizimi hukmronlik qiladi. Har biri o‘z ekotizimi uchun eksklyuziv, ammo CENC-ni qo‘llab-quvvatlaydi, bu barcha platformalarda yagona shifrlangan kontentdan foydalanishga imkon beradi.

DRMIshlab chiqaruvchiPlatformaMaks. sifatApparat himoyasi
WidevineGoogleAndroid, Chrome, Android TV4K HDR (L1)TEE (L1)
FairPlayAppleiOS, iPadOS, macOS, tvOS4K HDR (iOS)Secure Enclave
PlayReadyMicrosoftWindows, Xbox, Windows Phone4K (SL3000)TPM + TEE

Ko‘p platformali xizmat uchun DRM tanlash

Barcha platformalarda ishlaydigan striming xizmati uchun har uchala DRM ni qo‘llab-quvvatlash talab qilinadi. Amaliy yechim — foydalanuvchining qurilmasiga qarab litsenziya so‘rovlarini avtomatik ravishda tegishli serverga yo‘naltiruvchi multi-DRM qo‘llab-quvvatloviga ega CDN (Muvi, Vualto, Axinom) dan foydalanish. Streaming Learning Center (2025) ma’lumotlariga ko‘ra, striming xizmatlarining 78% Multi-DRM yondashuvidan foydalanadi.

CENC bilan MPEG-DASH standarti arxitekturani soddalashtiradi: kontent umumiy kalit bilan bir marta shifrlanadi, DRM tizimi esa mijoz tomonida tanlanadi. Litsenziya serveri qurilma identifikatori bilan so‘rovni oladi va muayyan CDM uchun shifrlangan kalitni qaytaradi. Turli platformalar uchun kontentda farq yo‘q — faqat turli litsenziya serveri.

Widevine: darajalar va xususiyatlar

Widevine — Android-da de-fakto standart bo‘lgan Google DRM tizimi. Kontent shifrini ochish qayerda va qanday amalga oshirilishini belgilaydigan uchta xavfsizlik darajasini qo‘llab-quvvatlaydi. Xavfsizlik darajasi qurilmaning apparat imkoniyatlariga bog‘liq va kontentning maksimal ruxsatini belgilaydi.

Widevine xavfsizlik darajalari

Widevine L1 (apparat) — eng himoyalangan daraja. Barcha kriptografik operatsiyalar Trusted Execution Environment (TEE) ichida bajariladi. Kalit hech qachon himoyalangan hududni tark etmaydi. L1 bo‘lgan qurilmalar 4K HDR gacha kontentni ko‘paytirishi mumkin. Google sertifikati talab qilinadi — flagman qurilmalar o‘tadigan protsedura.

Widevine L3 (dasturiy) — shifrni ochish qurilmaning asosiy xotirasida amalga oshiriladi. Kalit texnik bilimli hujumchi tomonidan chiqarilishi mumkin. Premium kontent uchun ruxsat 540p (960x540) bilan cheklangan. L1 uchun sertifikatlangan bo‘lmasa ham, Android bo‘lgan barcha qurilmalar L3 ni qo‘llab-quvvatlaydi.

Widevine L2 — noyob oraliq daraja, bu erda shifrni ochish TEE da, ammo renderlash himoyalanmagan yo‘lda amalga oshiriladi. Ba’zi Smart TV larda ishlatiladi. Mobil qurilmalarda deyarli uchramaydi.

Qurilmada Widevine darajasini qanday aniqlash mumkin

kotlin
import android.media.MediaDrm
import android.media.UUID

fun checkWidevineLevel(): String {
    val widevineUuid = UUID.fromString("edef8ba9-79d6-4ace-a3c8-27dcd51d21ed")
    val mediaDrm = MediaDrm(widevineUuid)

    val securityLevel = mediaDrm.getPropertyString(
        MediaDrm.PROPERTY_SECURITY_LEVEL
    )

    return when (securityLevel) {
        "L1" -> "Widevine L1 — apparat himoyasi"
        "L3" -> "Widevine L3 — dasturiy himoya"
        else -> "Widevine $securityLevel"
    }
}

Metod CDM dan Widevine UUID orqali securityLevel xususiyatini so‘raydi. Qaytarilgan qiymat — L1, L2 yoki L3 qatori — qurilmaning joriy himoya darajasini ko‘rsatadi. Bu ma’lumot striming xizmatlari uchun juda muhim: qurilma faqat L3 ga ega bo‘lsa, 4K kontentni ko‘rsatib bo‘lmaydi.

Apple FairPlay: arxitektura va ishlash prinsipi

FairPlay — ekotizimning barcha platformalariga o‘rnatilgan Apple DRM tizimi: iOS, iPadOS, macOS, tvOS va watchOS. Widevine-dan farqli o‘laroq, FairPlay xavfsizlik darajalariga ega emas — himoya qurilma tomonidan belgilanadi. Secure Enclave bilan iOS da FairPlay Widevine L1 bilan solishtirish mumkin bo‘lgan himoya darajasini ta’minlaydi.

FairPlay faqat HLS (HTTP Live Streaming) protokoli bilan ishlaydi. Kontent .ts (MPEG-TS) segmentlariga yoki .m4s (fMP4) fragmentlariga paketlanadi. M3U8 manifesti litsenziya serverining URI (KSM — Key Server Module) va IV boshlang‘ich qiymati bilan #EXT-X-KEY tegini o‘z ichiga oladi. Ko‘paytirish boshlanganda, AVPlayer manifestni o‘qiydi va AVContentKeySession orqali kalitni so‘raydi.

FairPlay Streaming integratsiyasi

swift
import AVFoundation

let contentKeySession = AVContentKeySession(keySystem: fairPlayStreaming)
let player = AVPlayer(playerItem: playerItem)
contentKeySession.setDelegate(self, queue: delegateQueue)

func contentKeySession(
    _ session: AVContentKeySession,
    didProvide keyRequest: AVContentKeyRequest
) {
    let assetId = keyRequest.identifier as! String
    sendLicenseRequest(assetId) { licenseData in
        keyRequest.processContentKeyResponse(
            AVContentKeyResponse(fairPlayStreamingKeyResponseData: licenseData)
        )
    }
}

AVContentKeySession delegati kontent identifikatori (assetId) bilan kalit so‘rovini oladi. Ilova ushbu ID ni o‘z litsenziya serveriga (KSM) yuboradi, u shifrlangan kalitni qaytaradi. processContentKeyResponse chaqiruvi kalitni shifrni ochish uchun CDM ga uzatadi. Litsenziya haqiqiy emas bo‘lsa (muddati o‘tgan, to‘lanmagan), server 403 xatosini qaytaradi va AVPlayer ko‘paytirishni boshlamaydi.

Offline kontent uchun Persistent Key Loading

FairPlay persistent keys — offline ko‘rish uchun litsenziyani qurilmada saqlashni qo‘llab-quvvatlaydi. Kalitni olgandan so‘ng, ilova allowsPersistableKey bayrog‘i bilan processContentKeyResponse ni chaqiradi. Kalit Keychain da saqlanadi va qayta ko‘rishda serverga murojaat qilmasdan ishlatilishi mumkin. Biroq, offline litsenziyaning amal qilish muddati cheklangan — odatda 7–30 kun, keyin yangilash talab qilinadi.

Offline litsenziyalar iOS ning himoyalangan omborida — Keychain da saqlanadi. Buzish urinishida (jalibreak, xotira dumpini chiqarish) Secure Enclave kalitlarni yo‘q qiladi. Apple (2025) ma’lumotlariga ko‘ra, persistent keys texnologiyasi safardan oldin iPad ga kontent yuklab olish uchun Apple TV+, Netflix va Disney+ da ishlatiladi.

Microsoft PlayReady universal himoya uchun

PlayReady — Windows, Xbox va eskirgan Windows Phone da ishlatiladigan Microsoft DRM i. Mobil qurilmalarda PlayReady Widevine va FairPlay dan kamroq uchrasa-da, Microsoft ning barcha platformalarida ishlaydigan universal striming yechimlari uchun muhimdir. PlayReady TPM orqali ham dasturiy, ham apparat himoyasini qo‘llab-quvvatlaydi.

PlayReady SL (Security Level) arxitekturasidan foydalanadi: SL2000 (dasturiy, Widevine L3 analogi), SL3000 (apparat, L1 analogi). Xbox Series X da PlayReady SL3000 TEE+TPM orqali ishlaydi — kalitlar faqat himoyalangan muhitda chiqariladi. Bu konsolda nusxalash xavfisiz 4K Blu-ray ko‘paytirishga imkon beradi.

Microsoft Docs (2026) ma’lumotlariga ko‘ra, PlayReady CENC ni qo‘llab-quvvatlaydi va Edge brauzerlarida Media Source Extensions (MSE) orqali MPEG-DASH bilan ishlashi mumkin. Android va iOS uchun mobil ilovalarda PlayReady SDK orqali mavjud, ammo kamdan-kam ishlatiladi — asosan korporativ ilovalar va Microsoft media xizmatlari uchun.

Android uchun PlayReady Native SDK

Microsoft Android va iOS uchun PlayReady Native SDK ni taqdim etadi. Integratsiya PlayReady kengaytmasi bilan ExoPlayer orqali amalga oshiriladi: dasturchi dekodlash zanjiriga o‘rnatiladigan PlayReadyRenderer ni qo‘shadi. ExoPlayer MPD manifestida qaysi DRM ko‘rsatilganiga qarab Widevine va PlayReady o‘rtasida avtomatik ravishda o‘tadi.

PlayReady mobil ilovalarda kamdan-kam uchrasa-da, uning qo‘llab-quvvatlashi Microsoft ekotizimiga kiruvchi xizmatlar — masalan, SharePoint va Stream dagi korporativ ta’lim platformalari uchun majburiydir. Microsoft (2025) ma’lumotlariga ko‘ra, PlayReady korporativ media yechimlarining 23 foizida ishlatiladi, Widevine esa 62 foizida.

DRM ni mobil ilovaga integratsiyasi

DRM ni mobil ilovaga integratsiyasi kriptografik kod yozishni talab qilmaydi — dasturchi DRM ni oldindan qo‘llab-quvvatlaydigan pleer bilan ishlaydi. Android da DRM kengaytmasi bilan ExoPlayer orqali integratsiyani ko‘rib chiqamiz.

Widevine qo‘llab-quvvatlovi bilan ExoPlayer ni sozlash

kotlin
val drmSessionManager = DefaultDrmSessionManager.Builder()
    .setUuidAndExoMediaDrmProvider(
        C.WIDEVINE_UUID,
        FrameworkMediaDrm.DEFAULT_PROVIDER
    )
    .setMultiSession(true)
    .build(mediaDrmCallback)

val mediaItem = MediaItem.Builder()
    .setUri(mpdUrl)
    .setDrmConfiguration(
        MediaItem.DrmConfiguration.Builder(C.WIDEVINE_UUID)
            .setLicenseUri(licenseUrl)
            .setLicenseRequestHeaders(headers)
            .build()
    )
    .build()

exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()

DefaultDrmSessionManager DRM sessiyasini boshqaradi: MediaDrm sessiyasini yaratadi, litsenziya so‘rovlarini qayta ishlaydi va kalitlarni dekoderga uzatadi. setMultiSession(true) parametri turli sessiyalarda bir vaqtning o‘zida bir nechta oqim (audio + video) shifrini ochishga imkon beradi. MediaDrmCallback litsenziya serveriga HTTP so‘rovini amalga oshiradi — odatda SignedRequest formatidagi so‘rov tanasi bilan POST.

Litsenziya so‘rovi uchun MediaDrmCallback

kotlin
val mediaDrmCallback = DefaultDrmSessionManager.MediaDrmCallback {
    url, requestBody ->

    val response = OkHttpClient().newCall(
        Request.Builder()
            .url(url)
            .post(RequestBody.create(requestBody, MediaType.parse("application/octet-stream")))
            .addHeader("Authorization", "Bearer ")
            .build()
    ).execute()

    val responseBytes = response.body?.bytes()
        ?: throw DrmSessionException(Exception("Empty license response"))

    responseBytes
}

Callback litsenziya serveriga tanada Widevine UUID bilan POST so‘rovini yuboradi. Server foydalanuvchining autentifikatsiyasini (sarlavhadagi token) tekshiradi va shifrlangan kalitni qaytaradi. Agar foydalanuvchining faol obunasi bo‘lmasa, server 403 Forbidden ni qaytaradi — ExoPlayer onPlayerError orqali boshqarilishi kerak bo‘lgan DRM xatosini yaratadi.

DRM xatolarini boshqarish

DRM xatolari litsenziya haqiqiy emas bo‘lganda, muddati o‘tganda yoki qurilma talab qilinadigan himoya darajasini qo‘llab-quvvatlamaganda yuz beradi. ExoPlayer TYPE_DRM_LICENSE_EXPIRED, TYPE_DRM_UNSUPPORTED yoki TYPE_SOURCE kodi bilan Player.Listener.onPlayerError orqali xatoni uzatadi. Foydalanuvchiga ma’lumot beruvchi xabar ko‘rsatish tavsiya etiladi: „Kontent ushbu qurilma uchun mavjud emas” yoki „Ko‘rish uchun obunani uzaytiring”.

Striming xizmatlari tahliliga (2025) ko‘ra, muvaffaqiyatsiz ko‘paytirish boshlanishlarining 8 foizi DRM xatolari bilan bog‘liq. Ularning 60 foizi — muddati o‘tgan litsenziyalar, 25 foizi — qurilma mos kelmasligi va 15 foizi — kalit so‘rovi paytida tarmoq xatolari. 5 soniyadan keyin avtomatik qayta urinish tarmoq xatolarining 40 foiz holatlarini hal qiladi.

Tez-tez beriladigan savollar

Mobil qurilmada DRM ni chetlab o‘tish mumkinmi?

Texnik jihatdan Widevine L3 (dasturiy himoya) bo‘lgan qurilmalarda mumkin, bu erda kalit xotiradan chiqarilishi mumkin. L1 va Secure Enclave bilan FairPlay da chetlab o‘tish juda qiyin — TEE ga jismoniy kirish talab qilinadi. Kontent studiyalari premium kontent uchun L1 qurilmalariga yo‘naltiriladi.

Nega Netflix Androidimda past sifat ko‘rsatadi?

Katta ehtimol bilan, qurilma Widevine L1 uchun sertifikatlanmagan va L3 dan foydalanmoqda. Netflix L3 qurilmalarida sifatni 540p bilan cheklaydi. Google Play dan DRM Info ilovasi orqali Widevine darajasini tekshiring. Samsung, Pixel va OnePlus flagman qurilmalari odatda L1 ga ega.

Striming xizmati uchun qaysi DRM yaxshiroq?

Multi-DRM dan foydalaning: Android uchun Widevine, Apple uchun FairPlay, Windows uchun PlayReady. Axinom yoki Vualto kabi xizmatlar har uchala DRM uchun yagona API ni taqdim etadi. Kontent CENC orqali bir marta shifrlanadi, DRM tanlovi esa mijoz tomonida avtomatik ravishda amalga oshiriladi.

DRM bilan offline ko‘rishni qanday amalga oshirish mumkin?

iOS da AVContentKeySession orqali FairPlay persistent keys dan foydalaning. Android da — ExoPlayer OfflineLicenseHelper orqali Widevine Offline License. Kalit cheklangan amal qilish muddati bilan — odatda 7 dan 30 kungacha — Keychain (iOS) yoki KeyStore (Android) da lokal saqlanadi.

DRM kontekstida KID nima?

KID (Key ID) — CENC manifestida shifrlash kalitining noyob 16 baytli identifikatori. Har bir KID kontentning ma’lum bir segmentiga (masalan, filmning 10 daqiqali segmentiga) bog‘langan. Litsenziya serveri o‘z ma’lumotlar bazasida tegishli kalitni topish uchun KID dan foydalanadi. Bitta film turli qismlar uchun 20 tagacha turli KID ni o‘z ichiga olishi mumkin.

Xulosa

  • DRM (Digital Rights Management) — qonuniy striming uchun majburiy bo‘lgan raqamli kontentni kriptografik himoya qilish tizimi.
  • Uchta asosiy sxema: Widevine (Android), FairPlay (iOS), PlayReady (Windows) — kontentni yagona shifrlash uchun CENC dan foydalanadi.
  • Widevine L1 (TEE orqali apparat himoyasi) 4K HDR ga imkon beradi, L3 (dasturiy) 540p bilan cheklangan. Daraja MediaDrm.getPropertyString orqali tekshiriladi.
  • FairPlay faqat HLS bilan ishlaydi va KSM serveri orqali kalitlarni so‘rash uchun AVContentKeySession dan foydalanadi.
  • DRM integratsiyasi media pleer orqali amalga oshiriladi: DefaultDrmSessionManager bilan ExoPlayer (Android), AVContentKeySession bilan AVPlayer (iOS).
  • DRM xatolari onPlayerError orqali boshqariladi — muddati o‘tgan litsenziyalar, qurilma mos kelmasligi va tarmoq xatolari muvaffaqiyatsiz boshlanishlarning 8 foizini tashkil qiladi.
  • Ko‘p platformali xizmatlar uchun CDN provayderi va yagona CENC shifrlashi bilan Multi-DRM yondashuvi tavsiya etiladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing