Widevine: mi ez, DRM és biztonsági szintek

Szerző: IT Sectr Megjelenés: 2026-05-24 Olvasási idő: 8 perc

Widevine — egy Google által kifejlesztett DRM-technológia a videótartalmak védelmére az engedély nélküli másolástól mobileszközökön, Smart TV-ken és webplatformokon. A tartalom titkosítása a CDM modulon keresztül történik, amely világszerte 4 milliárd eszközön támogatott. A Widevine technológia biztosítja a kompatibilitást Android, iOS, Chrome és Smart TV rendszerekkel, lehetővé téve a streaming szolgáltatások számára a prémium tartalmak védelmét bármely platformon.

Főbb pontok

  • Widevine — DRM-megoldás a Google-tól videók védelmére mobilalkalmazásokban és a weben.
  • Három szint biztonság: L1 (hardveres titkosítás), L2 (szoftveres), L3 (csak a felhőben biztonságos).
  • CDM — Content Decryption Module, a kulcskomponens a tartalom visszafejtéséhez.
  • Licencelés a Google licenckiszolgálóján keresztül történik, amely kulcsokat bocsát ki a dekódoláshoz.
  • Kompatibilitás az EME-vel (Encrypted Media Extensions) lehetővé teszi a működést bármely böngészőben.

Mi az a Widevine?

Widevine — egy szabadalmaztatott DRM-technológia, amelyet a Google 2010-ben vásárolt fel, és amely az Android ökoszisztémában a videótartalmak védelmének de facto szabványává vált. A legnagyobb streaming szolgáltatások, köztük a Netflix, Amazon Prime Video, Disney+ és a Hulu használják a tartalmak engedély nélküli másolásának és terjesztésének megakadályozására.

A Widevine támogatja az AES-128 CBC szabvány szerinti titkosítást tartalomkulcsok segítségével, amelyek csak hitelesített eszközökre kerülnek továbbításra egy biztonságos licencelési csatornán keresztül. A rendszer végpontok közötti védelmet biztosít a szerveren történő titkosítástól a felhasználó eszközén történő dekódolásig.

A Widevine története és fejlődése

A Widevine Technologies céget 1999-ben alapították, és eredetileg kábeltelevíziós platformokon történő tartalomvédelemre fejlesztett megoldásokat. Miután a Google 2010-ben felvásárolta, a technológiát mobil platformokhoz igazították és integrálták az Android operációs rendszerbe a 4.4 KitKat verziótól kezdődően. 2015-től a Widevine a Google Mobile Services tanúsítás kötelező összetevőjévé vált.

2018-ban a Google bemutatta a Widevine Modular DRM-et, amely lehetővé tette az eszközgyártók számára, hogy az operációs rendszer kódjának módosítása nélkül hardveresen implementáljanak különböző védelmi szinteket. Napjainkban a Widevine Modular több mint 4 milliárd eszközön támogatott, és ez a fő DRM mechanizmus Androidon.

A Widevine architektúrája

A Widevine architektúrája három kulcsfontosságú összetevőből áll: Content Decryption Module (CDM), licenckiszolgáló és tartalomtitkosító eszköz. A CDM végzi a visszafejtést a kliens oldalon, és együttműködik a hardveres Trusted Execution Environment (TEE) környezettel a kulcsok biztonságos tárolása érdekében.

A Google licenckiszolgálója a tartalomszolgáltató által meghatározott irányelvek alapján kezeli a kulcsok kibocsátását, amelyek időbeli korlátozásokat, eszközszámot és lejátszási minőséget határoznak meg. A titkosító eszköz a szolgáltató oldalán készíti elő a tartalmat, MPEG-DASH vagy HLS formátumba csomagolva CENC titkosítással.

Hogyan működik a Widevine DRM?

A védelmi folyamat a tartalom csomagolási szakaszával kezdődik, amikor a médiafájlt a tartalomkulcs segítségével titkosítják a szolgáltató szerverén. A titkosított adatfolyam CDN-en keresztül kerül a felhasználó eszközére, ahol a CDM licencet kér a licenckiszolgálótól.

A licenckiszolgáló ellenőrzi az eszköz hitelességét és a tartalomhoz való hozzáférés jogát. Ha az ellenőrzés sikeres, a kiszolgáló kiad egy licencet a kulccsal, amelyet a CDM használ a visszafejtéshez. A licenc tartalmazhat korlátozásokat a megtekintési időre és felbontásra vonatkozóan.

Licenc csereprotokoll

A licenc csere a Widevine-ben az EME (Encrypted Media Extensions) protokollon keresztül valósul meg böngészőkben, vagy SDK-n keresztül mobil platformokon. A licenckérést a CDM képezi és HTTPS-en keresztül küldi a licenckiszolgálónak, ami biztosítja a kulcsok védelmét az átvitel során történő elfogás ellen.

A kiszolgáló feldolgozza a kérést és visszaad egy licencet, amely szintén titkosítva van, és csak az eszköz CDM-je tudja visszafejteni. A kulcs hardveres kötése egy adott eszközhöz megakadályozza annak más platformokra történő átvitelét.

Titkosítási szabványok támogatása

A Widevine az ISO/IEC 23001-7-ben meghatározott Common Encryption (CENC) szabványokat használja, ami biztosítja a kompatibilitást az MPEG-DASH és HLS formátumokkal. Az AES-128 titkosítás CTR vagy CBC módban kerül alkalmazásra a médiafolyamok védelmére.

A kulcsszármaztatáshoz HKDF (HMAC-based Key Derivation Function) kerül használatra, amely lehetővé teszi egyedi kulcsok generálását a tartalom minden szegmenséhez. A HLS támogatás a Widevine-ben a Modular 2.0 verziótól került hozzáadásra, ami kiterjesztette a kompatibilitást az Apple platformokkal.

Példa licenckérésre Androidon

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 biztonsági szintek: L1, L2, L3

A Widevine három biztonsági szintet határoz meg, amelyek a kriptográfiai műveletek végrehajtási módjában és a tartalom feldolgozásában különböznek. Az L1 szint maximális védelmet nyújt, az L3 minimálisat, az L2 pedig középső pozíciót foglal el.

SzintVédelem típusaEszközkövetelményekMaximális felbontás
L1HardveresTEE SoC szinten4K Ultra HD
L2HibridTEE kulcsokhoz, szoftver videóhoz1080p
L3SzoftveresCsak szoftveres CDM720p

L1 szint — hardveres titkosítás

Az L1 szint megköveteli a Trusted Execution Environment (TEE) jelenlétét hardver szinten, ahol az összes kriptográfiai művelet végrehajtásra kerül. A tartalomkulcsok soha nem hagyják el a TEE-t, ami kizárja azok kinyerését még a fő operációs rendszer kompromittálása esetén is.

Az L1 tanúsítvánnyal rendelkező eszközök 4K minőségben és HDR-ben játszhatnak le tartalmat, mivel a visszafejtett videó adatfolyam közvetlenül a védett video kimenetre kerül, a felhasználói folyamatok hozzáférése nélkül.

L3 szint — szoftveres titkosítás

Az L3 szint az összes kriptográfiai műveletet szoftveresen hajtja végre a szokásos felhasználói térben. Ez a legkevésbé biztonságos mód, amelyben a kulcsok kinyerhetők az eszköz RAM-jából.

A Widevine L3 a lejátszási minőséget 720p-re korlátozza, ami alkalmassá teszi alacsony kategóriás eszközökön vagy hardveres védelem nélküli asztali böngészőkben történő nézésre.

Biztonsági szint ellenőrzése az eszközön

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

Widevine integrálása mobilalkalmazásokba

A Widevine integrálása mobilalkalmazásokba a szabványos MediaDrm (Android) és AVContentKeySession (iOS) API-kon keresztül történik. A legtöbb esetben a fejlesztőnek nem kell közvetlenül DRM-mel dolgoznia — a lejátszókönyvtárak, mint az ExoPlayer és az AVPlayer, automatikusan kezelik a licencelést.

Integráció Androidon

Androidon a Widevine a MediaDrm osztályon keresztül integrálható, amely közvetlen hozzáférést biztosít a CDM-hez. Streaming alkalmazásokhoz ajánlott az ExoPlayer használata a DrmSessionManager modullal, amely automatikusan kezeli a licenckéréseket.

A lejátszó inicializálásakor meg kell adni a Widevine séma UUID-jét (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) és a licenckiszolgáló URL-jét, amelyet a tartalomszolgáltató biztosít. Az ExoPlayer automatikusan kezeli a licenc kérésének és megújításának ciklusát.

ExoPlayer konfiguráció Widevine-hez

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

Integráció webes lejátszókkal

Webes platformokon a Widevine a Media Source Extensions (MSE) és az Encrypted Media Extensions (EME) segítségével működik. A Chromium-alapú böngészők beépítve támogatják a Widevine CDM-et, és a fejlesztőnek csak egy EME-munkamenetet kell inicializálnia a megfelelő konfigurációval.

A Widevine böngészőben történő használatához meg kell adni a licenc inicializálót keySystem típussal `com.widevine.alpha`. A MediaKeys példány létrehozása után a böngésző automatikusan kezeli a licenckéréseket.

Licencelési hibák kezelése

A Widevine integrálásakor fontos a licencelési hibák helyes kezelése, amelyek hozzáférési jogok hiánya, előfizetés lejárata vagy eszköz inkompatibilitása esetén fordulnak elő. A TYPE_EXPIRED_LICENSE hiba a licenc megújítását igényli a kiszolgálóhoz intézett ismételt kéréssel, a TYPE_OUTPUT_NOT_ALLOWED pedig a video kimenet DRM-irányelvekkel való összeférhetetlenségét jelzi.

Ajánlott egy exponenciális késleltetésű újrapróbálkozási mechanizmus implementálása átmeneti hálózati hibák esetén, és egy érthető üzenet megjelenítése a felhasználó számára állandó licencelési elutasítások esetén. A DRM-munkamenetek hibanaplózása segít a tartalomszolgáltatóknak az eszközproblémák azonosításában és az irányelvek optimalizálásában.

Widevine és alternatív DRM

A Widevine versenyez az Apple FairPlay-jével és a Microsoft PlayReady-jével, amelyek a három fő DRM-megoldást alkotják a mobil platformok piacán. Minden technológiának megvannak a maga előnyei és korlátai a platform ökoszisztémájával összefüggésben.

DRM-megoldások összehasonlítása

JellemzőWidevineFairPlayPlayReady
FejlesztőGoogleAppleMicrosoft
Fő platformAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Maximális szintL1 (4K)L1 megfelelő (4K)SL3000 (4K)
Hardveres védelemTEESecure EnclaveTPM + TEE

DRM kiválasztása a projekthez

A DRM kiválasztása az alkalmazás célplatformjaitól függ. Android-first projektekhez a Widevine a természetes választás, mivel előre telepítve van az összes Google Mobile Services tanúsítvánnyal rendelkező eszközön, és nem igényel további licencdíjat.

Multiplatform projektekhez gyakran multi-DRM megközelítést alkalmaznak olyan licenc aggregátorokkal, mint az Axinom, EZDRM és Vualto, amelyek egységes API-t biztosítanak mindhárom DRM-rendszerrel való munkához. Ez csökkenti az integráció összetettségét és központosítja a licenckezelést.

Gyakran Ismételt Kérdések

Mi az a Widevine DRM?

Widevine — egy DRM technológia a Google-tól, amely a digitális videótartalmak engedély nélküli másolás elleni védelmére szolgál. A streaming szolgáltatások használják a videók titkosítására és a hozzáférés kezelésére egy licencrendszeren keresztül.

Milyen Widevine biztonsági szintek léteznek?

A Widevine három szintet támogat: L1 hardveres titkosítással a TEE-ben, L2 hibrid megközelítéssel és L3 teljesen szoftveres implementációval. Az L1 lehetővé teszi a tartalom lejátszását 4K-ban, az L3 720p minőségre korlátozódik.

Hogyan ellenőrizhető a Widevine szint Androidon?

A Widevine szint Androidon a MediaDrm osztályon keresztül ellenőrizhető a securityLevel tulajdonság lekérdezésével. Ehhez létre kell hozni egy MediaDrm példányt a Widevine UUID-vel és meg kell hívni a getPropertyString metódust, vagy harmadik féltől származó alkalmazások, mint a DRM Info használhatók.

Miben különbözik a Widevine a FairPlay-től?

A Widevine-t a Google fejlesztette Androidra és Chrome-ra, míg a FairPlay-t az Apple iOS-re, tvOS-re és Safari-ra. Mindkettő támogatja a hardveres titkosítást és a 4K-t, de a Widevine szélesebb körben elterjedt Android-eszközökön, míg a FairPlay az Apple ökoszisztémában számít de facto szabványnak.

Szükséges-e licenc a Widevine használatához?

A Widevine mobilalkalmazásban történő használatához nincs szükség külön licencre — a technológia be van építve a tanúsított Android-eszközökbe és a Chrome-ba. A díjat csak a tartalomszolgáltatóknak számítják fel a licenckiszolgáló használatáért.

Összefoglaló

  • Widevine — a fő DRM mechanizmus Androidon, amely hardveres vagy szoftveres titkosítással védi a videótartalmakat.
  • Három szint L1, L2, L3 határozza meg a maximális lejátszási minőséget és a kulcsvédelem mértékét.
  • CDM (Content Decryption Module) végzi a tartalom visszafejtését a kliens oldalon licenckulcsok segítségével.
  • Integráció ExoPlayer, MediaDrm Androidon és EME webes platformokon keresztül történik.
  • iOS-hez FairPlay szükséges, ami a multi-DRM megközelítést elengedhetetlenné teszi multiplatform projektekhez.
  • Widevine Modular támogatja a CENC titkosítást és kompatibilis az MPEG-DASH és HLS formátumokkal.
  • A Google licenckiszolgálója a tartalomszolgáltató által meghatározott irányelvek alapján kezeli a tartalomhoz való hozzáférést.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is