Widevine: co to je, DRM a úrovně zabezpečení

Autor: IT Sectr Publikováno: 2026-05-24 Doba čtení: 8 min

Widevine — technologie DRM vyvinutá společností Google pro ochranu video obsahu před neoprávněným kopírováním na mobilních zařízeních, Smart TV a webových platformách. Šifrování obsahu se provádí prostřednictvím modulu CDM, který je podporován na 4 miliardách zařízení po celém světě. Technologie Widevine zajišťuje kompatibilitu s Androidem, iOS, Chrome a Smart TV a umožňuje streamovacím službám chránit prémiový obsah na jakékoli platformě.

Hlavní body

  • Widevine — řešení DRM od Google pro ochranu videa v mobilních aplikacích a na webu.
  • Tři úrovně zabezpečení: L1 (hardwarové šifrování), L2 (softwarové), L3 (bezpečné pouze v cloudu).
  • CDM — Content Decryption Module, klíčová komponenta pro dešifrování obsahu.
  • Licencování je řízeno prostřednictvím licenčního serveru Google, který vydává klíče pro dekódování.
  • Kompatibilita s EME (Encrypted Media Extensions) umožňuje fungování v libovolném prohlížeči.

Co je Widevine?

Widevine — proprietární technologie DRM, kterou Google získal v roce 2010 a která se stala de facto standardem pro ochranu video obsahu v ekosystému Android. Používají ji největší streamovací služby, včetně Netflixu, Amazon Prime Video, Disney+ a Hulu, k prevenci neoprávněného kopírování a šíření obsahu.

Widevine podporuje šifrování podle standardu AES-128 CBC pomocí klíčů obsahu, které jsou přenášeny pouze autorizovaným zařízením prostřednictvím zabezpečeného licenčního kanálu. Systém zajišťuje end-to-end ochranu od okamžiku šifrování na serveru až po dekódování na zařízení uživatele.

Historie a vývoj Widevine

Společnost Widevine Technologies byla založena v roce 1999 a původně vyvíjela řešení pro ochranu obsahu na kabelových televizních platformách. Po akvizici Googlem v roce 2010 byla technologie přizpůsobena pro mobilní platformy a integrována do operačního systému Android od verze 4.4 KitKat. Od roku 2015 se Widevine stal povinnou součástí certifikace Google Mobile Services.

V roce 2018 Google představil Widevine Modular DRM, který umožnil výrobcům zařízení implementovat různé úrovně ochrany hardwarově bez změny kódu operačního systému. Dnes je Widevine Modular podporován na více než 4 miliardách zařízení a je hlavním DRM mechanismem na Androidu.

Architektura Widevine

Architektura Widevine se skládá ze tří klíčových komponent: Content Decryption Module (CDM), licenčního serveru a nástroje pro šifrování obsahu. CDM provádí dešifrování na straně klienta a spolupracuje s hardwarovým Trusted Execution Environment (TEE) pro bezpečné ukládání klíčů.

Licenční server Google spravuje vydávání klíčů na základě politik poskytovatele obsahu, které definují časová omezení, počet zařízení a kvalitu přehrávání. Nástroj pro šifrování připravuje obsah na straně poskytovatele a balí jej do formátu MPEG-DASH nebo HLS s šifrováním CENC.

Jak funguje Widevine DRM?

Proces ochrany začíná fází balení obsahu, kdy je mediální soubor zašifrován pomocí klíče obsahu na serveru poskytovatele. Zašifrovaný proud je přenesen na zařízení uživatele prostřednictvím CDN, kde CDM požaduje licenci od licenčního serveru.

Licenční server ověřuje autenticitu zařízení a právo přístupu k obsahu. Pokud je ověření úspěšné, server vydá licenci s klíčem, který CDM použije k dešifrování. Licence může obsahovat omezení týkající se doby sledování a rozlišení.

Protokol výměny licencí

Výměna licencí ve Widevine je implementována prostřednictvím protokolu EME (Encrypted Media Extensions) v prohlížečích nebo prostřednictvím SDK na mobilních platformách. Požadavek na licenci je generován CDM a odeslán na licenční server přes HTTPS, což zajišťuje ochranu proti zachycení klíčů během přenosu.

Server zpracuje požadavek a vrátí licenci, která je rovněž zašifrována a může být dešifrována pouze CDM zařízení. Hardwarové vázání klíče ke konkrétnímu zařízení zabraňuje jeho přenosu na jiné platformy.

Podpora šifrovacích standardů

Widevine používá standardy Common Encryption (CENC) definované v ISO/IEC 23001-7, což zajišťuje kompatibilitu s formáty MPEG-DASH a HLS. Šifrování AES-128 v režimu CTR nebo CBC je aplikováno pro ochranu mediálních proudů.

Pro odvození klíčů se používá HKDF (HMAC-based Key Derivation Function), která umožňuje generování jedinečných klíčů pro každý segment obsahu. Podpora HLS ve Widevine byla přidána od verze Modular 2.0, což rozšířilo kompatibilitu s platformami Apple.

Příklad požadavku na licenci na Androidu

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)
}

Úrovně zabezpečení Widevine: L1, L2, L3

Widevine definuje tři úrovně zabezpečení, které se liší způsobem provádění kryptografických operací a zpracování obsahu. Úroveň L1 poskytuje maximální ochranu, L3 — minimální, L2 zaujímá střední pozici.

ÚroveňTyp ochranyPožadavky na zařízeníMaximální rozlišení
L1HardwarováTEE na úrovni SoC4K Ultra HD
L2HybridníTEE pro klíče, software pro video1080p
L3SoftwarováPouze softwarový CDM720p

Úroveň L1 — hardwarové šifrování

Úroveň L1 vyžaduje přítomnost Trusted Execution Environment (TEE) na hardwarové úrovni, kde jsou prováděny všechny kryptografické operace. Klíče obsahu nikdy neopouštějí TEE, což vylučuje jejich extrakci i v případě kompromitace hlavního operačního systému.

Zařízení s certifikací L1 mohou přehrávat obsah v kvalitě 4K a HDR, protože dešifrovaný video proud je přenášen přímo na chráněný video výstup bez přístupu uživatelských procesů.

Úroveň L3 — softwarové šifrování

Úroveň L3 provádí všechny kryptografické operace softwarově v běžném uživatelském prostoru. Jedná se o nejméně bezpečný režim, při kterém mohou být klíče extrahovány z operační paměti zařízení.

Widevine L3 omezuje kvalitu přehrávání na 720p, což jej činí vhodným pro sledování na zařízeních nižší třídy nebo desktopových prohlížečích bez hardwarové ochrany.

Kontrola úrovně zabezpečení na zařízení

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

Integrace Widevine v mobilních aplikacích

Integrace Widevine v mobilních aplikacích se provádí prostřednictvím standardních API MediaDrm (Android) a AVContentKeySession (iOS). Ve většině případů nemusí vývojář pracovat přímo s DRM — knihovny přehrávačů jako ExoPlayer a AVPlayer zpracovávají licencování automaticky.

Integrace na Androidu

Na Androidu se Widevine integruje prostřednictvím třídy MediaDrm, která poskytuje přímý přístup k CDM. Pro streamovací aplikace se doporučuje používat ExoPlayer s modulem DrmSessionManager, který automaticky spravuje požadavky na licence.

Při inicializaci přehrávače je třeba zadat UUID schématu Widevine (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) a URL licenčního serveru poskytnutého poskytovatelem obsahu. ExoPlayer automaticky zpracovává cyklus požadavku a obnovy licence.

Konfigurace ExoPlayer pro 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()

Integrace s webovými přehrávači

Na webových platformách Widevine funguje prostřednictvím Media Source Extensions (MSE) a Encrypted Media Extensions (EME). Prohlížeče založené na Chromiu mají Widevine CDM vestavěný a vývojář stačí inicializovat relaci EME se správnou konfigurací.

Pro práci s Widevine v prohlížeči je třeba zadat iniciátor licence s typem keySystem `com.widevine.alpha`. Po vytvoření instance MediaKeys prohlížeč automaticky zpracovává požadavky na licence.

Zpracování chyb licencování

Při integraci Widevine je důležité správně zpracovávat chyby licencování, které vznikají při nedostatku přístupových práv, vypršení předplatného nebo nekompatibilitě zařízení. Chyba TYPE_EXPIRED_LICENSE vyžaduje obnovení licence prostřednictvím opakovaného požadavku na server, zatímco TYPE_OUTPUT_NOT_ALLOWED označuje nekompatibilitu video výstupu s DRM politikami.

Doporučuje se implementovat mechanismus opakovaných pokusů s exponenciálním zpožděním pro dočasné síťové chyby a zobrazovat uživateli srozumitelnou zprávu při trvalém odmítnutí licencování. Protokolování chyb relací DRM pomáhá poskytovatelům obsahu identifikovat problémy se zařízeními a optimalizovat politiky.

Widevine a alternativní DRM

Widevine konkuruje FairPlay od Apple a PlayReady od Microsoftu, čímž tvoří tři hlavní DRM řešení na trhu mobilních platforem. Každá technologie má své výhody a omezení spojená s ekosystémem platformy.

Srovnání DRM řešení

VlastnostWidevineFairPlayPlayReady
VývojářGoogleAppleMicrosoft
Hlavní platformaAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Maximální úroveňL1 (4K)Ekvivalent L1 (4K)SL3000 (4K)
Hardwarová ochranaTEESecure EnclaveTPM + TEE

Výběr DRM pro projekt

Výběr DRM závisí na cílových platformách aplikace. Pro Android-first projekty je Widevine přirozenou volbou, protože je předinstalován na všech certifikovaných zařízeních s Google Mobile Services a nevyžaduje dodatečný licenční poplatek.

Pro multiplatformní projekty se často používá multi-DRM přístup s licenčními agregátory jako Axinom, EZDRM a Vualto, které poskytují jednotné API pro práci se všemi třemi DRM systémy. To snižuje složitost integrace a centralizuje správu licencí.

Často kladené otázky

Co je Widevine DRM?

Widevine — technologie DRM od Google, určená k ochraně digitálního video obsahu před neoprávněným kopírováním. Používají ji streamovací služby k šifrování videa a správě přístupu k němu prostřednictvím licenčního systému.

Jaké úrovně zabezpečení Widevine existují?

Widevine podporuje tři úrovně zabezpečení: L1 s hardwarovým šifrováním v TEE, L2 s hybridním přístupem a L3 s plně softwarovou implementací. L1 umožňuje přehrávání obsahu ve 4K, L3 je omezen na kvalitu 720p.

Jak zkontrolovat úroveň Widevine na Androidu?

Úroveň Widevine na Androidu lze zkontrolovat prostřednictvím třídy MediaDrm dotazem na vlastnost securityLevel. K tomu se vytvoří instance MediaDrm s UUID Widevine a zavolá se getPropertyString, nebo se použijí aplikace třetích stran jako DRM Info.

Čím se Widevine liší od FairPlay?

Widevine byl vyvinut Googlem pro Android a Chrome, zatímco FairPlay pro iOS, tvOS a Safari. Oba podporují hardwarové šifrování a 4K, ale Widevine je rozšířenější na zařízeních s Androidem, zatímco FairPlay je de facto standardem v ekosystému Apple.

Je potřeba licence k používání Widevine?

Pro používání Widevine v mobilní aplikaci není vyžadována samostatná licence — technologie je vestavěna do certifikovaných zařízení s Androidem a Chrome. Poplatek je účtován pouze poskytovatelům obsahu za používání licenčního serveru.

Shrnutí

  • Widevine — hlavní DRM mechanismus na Androidu, který zajišťuje ochranu video obsahu prostřednictvím hardwarového nebo softwarového šifrování.
  • Tři úrovně L1, L2, L3 zabezpečení určují maximální kvalitu přehrávání a stupeň ochrany klíčů.
  • CDM (Content Decryption Module) provádí dešifrování obsahu na straně klienta pomocí licenčních klíčů.
  • Integrace se provádí prostřednictvím ExoPlayer, MediaDrm na Androidu a EME na webových platformách.
  • Pro iOS je vyžadován FairPlay, což činí multi-DRM přístup nezbytným pro multiplatformní projekty.
  • Widevine Modular podporuje šifrování CENC a je kompatibilní s formáty MPEG-DASH a HLS.
  • Licenční server Google spravuje přístup k obsahu na základě politik stanovených poskytovatelem obsahu.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také