Widevine: шта је то, DRM и нивои безбедности

Аутор: IT Sectr Објављено: 2026-05-24 Време читања: 8 мин

Widevine — DRM технологија коју је развио Google за заштиту видео садржаја од неовлашћеног копирања на мобилним уређајима, Smart TV и веб платформама. Шифровање садржаја се врши путем CDM модула, који је подржан на 4 милијарде уређаја широм света. Widevine технологија обезбеђује компатибилност са Android-ом, iOS-ом, Chrome-ом и Smart TV-ом, омогућавајући стриминг сервисима да заштите премијум садржај на било којој платформи.

Главне тачке

  • Widevine — DRM решење од Google-а за заштиту видеа у мобилним апликацијама и вебу.
  • Три нивоа безбедности: L1 (хардверско шифровање), L2 (софтверско), L3 (безбедно само у облаку).
  • CDM — Content Decryption Module, кључна компонента за дешифровање садржаја.
  • Лиценцирање се управља путем Google сервера лиценци који издаје кључеве за декодирање.
  • Компатибилност са EME (Encrypted Media Extensions) омогућава рад у било ком прегледачу.

Шта је Widevine?

Widevine — власничка DRM технологија коју је Google купио 2010. године и која је постала де факто стандард за заштиту видео садржаја у Android екосистему. Користе је највећи стриминг сервиси, укључујући Netflix, Amazon Prime Video, Disney+ и Hulu, за спречавање неовлашћеног копирања и дистрибуције садржаја.

Widevine подржава шифровање према стандарду AES-128 CBC коришћењем кључева садржаја који се преносе само овлашћеним уређајима преко безбедног канала за лиценцирање. Систем обезбеђује заштиту од краја до краја, од тренутка шифровања на серверу до декодирања на уређају корисника.

Историја и развој Widevine-а

Компанија Widevine Technologies основана је 1999. године и првобитно је развијала решења за заштиту садржаја на кабловским телевизијским платформама. Након што ју је Google купио 2010. године, технологија је прилагођена за мобилне платформе и интегрисана у Android оперативни систем почевши од верзије 4.4 KitKat. Од 2015. године Widevine је постао обавезна компонента Google Mobile Services сертификације.

2018. године Google је представио Widevine Modular DRM, који је омогућио произвођачима уређаја да имплементирају различите нивое заштите хардверски без измене кода оперативног система. Данас је Widevine Modular подржан на преко 4 милијарде уређаја и главни је DRM механизам на Android-у.

Архитектура Widevine-а

Архитектура Widevine-а се састоји од три кључне компоненте: Content Decryption Module (CDM), сервера лиценци и алата за шифровање садржаја. CDM врши дешифровање на клијентској страни и сарађује са хардверским Trusted Execution Environment (TEE) за безбедно чување кључева.

Google сервер лиценци управља издавањем кључева на основу политика провајдера садржаја, које дефинишу временска ограничења, број уређаја и квалитет репродукције. Алат за шифровање припрема садржај на страни провајдера, пакујући га у MPEG-DASH или HLS формат са CENC шифровањем.

Како функционише Widevine DRM?

Процес заштите почиње фазом паковања садржаја, када се медијска датотека шифрује помоћу кључа садржаја на серверу провајдера. Шифровани ток се преноси на уређај корисника преко CDN-а, где CDM захтева лиценцу од сервера лиценци.

Сервер лиценци проверава аутентичност уређаја и право приступа садржају. Ако провера буде успешна, сервер издаје лиценцу са кључем који CDM користи за дешифровање. Лиценца може садржати ограничења у погледу времена гледања и резолуције.

Протокол размене лиценци

Размена лиценци у Widevine-у је имплементирана кроз протокол EME (Encrypted Media Extensions) у прегледачима или кроз SDK на мобилним платформама. Захтев за лиценцу формира CDM и шаље га на сервер лиценци преко HTTPS-а, што обезбеђује заштиту од пресретања кључева у транзиту.

Сервер обрађује захтев и враћа лиценцу која је такође шифрована и може је дешифровати само CDM уређаја. Хардверско повезивање кључа са одређеним уређајем спречава његов пренос на друге платформе.

Подршка за стандарде шифровања

Widevine користи стандарде Common Encryption (CENC) дефинисане у ISO/IEC 23001-7, што обезбеђује компатибилност са MPEG-DASH и HLS форматима. AES-128 шифровање у CTR или CBC моду се примењује за заштиту медијских токова.

За извођење кључева користи се HKDF (HMAC-based Key Derivation Function) која омогућава генерисање јединствених кључева за сваки сегмент садржаја. Подршка за HLS у Widevine-у је додата од верзије Modular 2.0, што је проширило компатибилност са Apple платформама.

Пример захтева за лиценцу на Android-у

kotlin
@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: L1, L2, L3

Widevine дефинише три нивоа безбедности који се разликују по начину извршавања криптографских операција и обраде садржаја. Ниво L1 пружа максималну заштиту, L3 — минималну, L2 заузима средњу позицију.

НивоТип заштитеЗахтеви за уређајМаксимална резолуција
L1ХардверскаTEE на нивоу SoC4K Ultra HD
L2ХибриднаTEE за кључеве, софтвер за видео1080p
L3СофтверскаСамо софтверски CDM720p

Ниво L1 — хардверско шифровање

Ниво L1 захтева присуство Trusted Execution Environment (TEE) на хардверском нивоу, где се извршавају све криптографске операције. Кључеви садржаја никада не напуштају TEE, што искључује њихово издвајање чак и у случају компромитовања главног оперативног система.

Уређаји са L1 сертификацијом могу да репродукују садржај у 4K квалитету и HDR-у, јер се дешифровани видео ток преноси директно на заштићени видео излаз без приступа корисничких процеса.

Ниво L3 — софтверско шифровање

Ниво L3 извршава све криптографске операције софтверски у обичном корисничком простору. Ово је најмање безбедан режим у којем се кључеви могу издвојити из RAM меморије уређаја.

Widevine L3 ограничава квалитет репродукције на 720p, што га чини погодним за гледање на уређајима ниже класе или десктоп прегледачима без хардверске заштите.

Провера нивоа безбедности на уређају

kotlin
fun getSecurityLevel(): String {
    val mediaDrm = MediaDrm(UUID.fromString(
        "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    ))
    val level = mediaDrm.getPropertyString(
        "securityLevel"
    )
    return level.ifEmpty { "L3" }
}

Интеграција Widevine у мобилне апликације

Интеграција Widevine-а у мобилне апликације врши се путем стандардних MediaDrm (Android) и AVContentKeySession (iOS) API-ја. У већини случајева, програмер не мора директно да ради са DRM-ом — библиотеке плејера као што су ExoPlayer и AVPlayer аутоматски управљају лиценцирањем.

Интеграција на Android-у

На Android-у се Widevine интегрише путем MediaDrm класе која пружа директан приступ CDM-у. За стриминг апликације препоручује се коришћење ExoPlayer-а са DrmSessionManager модулом који аутоматски управља захтевима за лиценце.

При иницијализацији плејера потребно је навести UUID Widevine шеме (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) и URL сервера лиценци који обезбеђује провајдер садржаја. ExoPlayer самостално управља циклусом захтева и обнављања лиценци.

Конфигурација ExoPlayer-а за Widevine

kotlin
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()

Интеграција са веб плејерима

На веб платформама Widevine ради путем Media Source Extensions (MSE) и Encrypted Media Extensions (EME). Прегледачи засновани на Chromium-у имају уграђен Widevine CDM, и програмеру је довољно да иницијализује EME сесију са исправном конфигурацијом.

За рад са Widevine-ом у прегледачу потребно је навести иницијатор лиценце са типом keySystem `com.widevine.alpha`. Након креирања инстанце MediaKeys, прегледач аутоматски обрађује захтеве за лиценце.

Обрада грешака лиценцирања

При интеграцији Widevine-а важно је правилно обрађивати грешке лиценцирања које настају при недостатку права приступа, истеку претплате или некомпатибилности уређаја. Грешка TYPE_EXPIRED_LICENSE захтева обнављање лиценце кроз поновни захтев серверу, а TYPE_OUTPUT_NOT_ALLOWED указује на некомпатибилност видео излаза са DRM политикама.

Препоручује се имплементација механизма поновног покушаја са експоненцијалним кашњењем за привремене мрежне грешке и приказивање разумљиве поруке кориснику при трајним одбијањима лиценцирања. Евидентирање грешака DRM сесија помаже провајдерима садржаја да идентификују проблеме са уређајима и оптимизују политике.

Widevine и алтернативни DRM

Widevine се такмичи са FairPlay-ем од Apple-а и PlayReady-јем од Microsoft-а, формирајући три главна DRM решења на тржишту мобилних платформи. Свака технологија има своје предности и ограничења везана за екосистем платформе.

Поређење DRM решења

КарактеристикаWidevineFairPlayPlayReady
ПрограмерGoogleAppleMicrosoft
Главна платформаAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Максимални нивоL1 (4K)Еквивалент L1 (4K)SL3000 (4K)
Хардверска заштитаTEESecure EnclaveTPM + TEE

Избор DRM-а за пројекат

Избор DRM-а зависи од циљних платформи апликације. За Android-first пројекте Widevine је природан избор, јер је пред инсталиран на свим сертификованим уређајима са Google Mobile Services и не захтева додатну лиценцну накнаду.

За вишеплатформске пројекте често се користи мулти-DRM приступ са агрегаторима лиценци као што су Axinom, EZDRM и Vualto, који пружају јединствени API за рад са сва три DRM система. Ово смањује сложеност интеграције и централизује управљање лиценцама.

Често постављана питања

Шта је Widevine DRM?

Widevine — DRM технологија од Google-а, намењена заштити дигиталног видео садржаја од неовлашћеног копирања. Користе је стриминг сервиси за шифровање видеа и управљање приступом кроз систем лиценцирања.

Који нивои безбедности Widevine постоје?

Widevine подржава три нивоа безбедности: L1 са хардверским шифровањем у TEE, L2 са хибридним приступом и L3 са потпуно софтверском имплементацијом. L1 омогућава репродукцију садржаја у 4K, L3 је ограничен на квалитет 720p.

Како проверити ниво Widevine-а на Android-у?

Ниво Widevine-а на Android-у може се проверити путем MediaDrm класе, захтевањем својства securityLevel. За то се креира инстанца MediaDrm са Widevine UUID-ом и позива getPropertyString, или се користе апликације трећих страна попут DRM Info.

По чему се Widevine разликује од FairPlay-а?

Widevine је развио Google за Android и Chrome, а FairPlay — за iOS, tvOS и Safari. Оба подржавају хардверско шифровање и 4K, али је Widevine шире распрострањен на Android уређајима, док је FairPlay де факто стандард у Apple екосистему.

Да ли је потребна лиценца за коришћење Widevine-а?

За коришћење Widevine-а у мобилној апликацији није потребна посебна лиценца — технологија је уграђена у сертификоване Android уређаје и Chrome. Накнада се наплаћује само провајдерима садржаја за коришћење сервера лиценци.

Резиме

  • Widevine — главни DRM механизам на Android-у, који обезбеђује заштиту видео садржаја путем хардверског или софтверског шифровања.
  • Три нивоа безбедности L1, L2, L3 одређују максимални квалитет репродукције и степен заштите кључева.
  • CDM (Content Decryption Module) врши дешифровање садржаја на клијентској страни коришћењем лиценцних кључева.
  • Интеграција се врши путем ExoPlayer-а, MediaDrm-а на Android-у и EME-а на веб платформама.
  • За iOS је потребан FairPlay, што чини мулти-DRM приступ неопходним за вишеплатформске пројекте.
  • Widevine Modular подржава CENC шифровање и компатибилан је са MPEG-DASH и HLS форматима.
  • Google сервер лиценци управља приступом садржају на основу политика које је поставио провајдер садржаја.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође