Widevine: wat is het, DRM en beveiligingsniveaus

Auteur: IT Sectr Gepubliceerd: 2026-05-24 Leestijd: 8 min

Widevine — een DRM-technologie ontwikkeld door Google om video-inhoud te beschermen tegen ongeautoriseerd kopiëren op mobiele apparaten, Smart TV's en webplatforms. Versleuteling van inhoud wordt uitgevoerd via de CDM-module, die wordt ondersteund op 4 miljard apparaten wereldwijd. Widevine-technologie zorgt voor compatibiliteit met Android, iOS, Chrome en Smart TV, waardoor streamingdiensten premium inhoud op elk platform kunnen beschermen.

Belangrijkste punten

  • Widevine — DRM-oplossing van Google voor videobescherming in mobiele apps en op het web.
  • Drie niveaus van beveiliging: L1 (hardwarematige versleuteling), L2 (software), L3 (alleen veilig in de cloud).
  • CDM — Content Decryption Module, de sleutelcomponent voor het ontsleutelen van inhoud.
  • Licentieverlening wordt beheerd via de licentieserver van Google, die sleutels voor decodering uitgeeft.
  • Compatibiliteit met EME (Encrypted Media Extensions) maakt werking in elke browser mogelijk.

Wat is Widevine?

Widevine — een propriëtaire DRM-technologie die in 2010 door Google is overgenomen en de de facto standaard is geworden voor de bescherming van video-inhoud in het Android-ecosysteem. Het wordt gebruikt door de grootste streamingdiensten, waaronder Netflix, Amazon Prime Video, Disney+ en Hulu, om ongeautoriseerd kopiëren en verspreiden van inhoud te voorkomen.

Widevine ondersteunt versleuteling volgens de AES-128 CBC-standaard met behulp van inhoudssleutels die alleen naar geautoriseerde apparaten worden verzonden via een beveiligd licentiekanaal. Het systeem zorgt voor end-to-end bescherming van het moment van versleuteling op de server tot decodering op het apparaat van de gebruiker.

Geschiedenis en ontwikkeling van Widevine

Het bedrijf Widevine Technologies werd opgericht in 1999 en ontwikkelde oorspronkelijk oplossingen voor inhoudsbescherming op kabeltelevisieplatforms. Na de overname door Google in 2010 werd de technologie aangepast voor mobiele platforms en geïntegreerd in Android vanaf versie 4.4 KitKat. Sinds 2015 is Widevine een verplicht onderdeel van Google Mobile Services-certificering.

In 2018 introduceerde Google Widevine Modular DRM, waarmee apparaatfabrikanten verschillende beschermingsniveaus hardwarematig kunnen implementeren zonder de OS-code te wijzigen. Tegenwoordig wordt Widevine Modular ondersteund op meer dan 4 miljard apparaten en is het het belangrijkste DRM-mechanisme op Android.

Architectuur van Widevine

De architectuur van Widevine bestaat uit drie belangrijke componenten: Content Decryption Module (CDM), licentieserver en gereedschap voor inhoudsversleuteling. CDM voert ontsleuteling aan de clientzijde uit en werkt samen met de hardwarematige Trusted Execution Environment (TEE) voor veilige opslag van sleutels.

De licentieserver van Google beheert het uitgeven van sleutels op basis van het beleid van de inhoudsaanbieder, dat beperkingen definieert voor tijd, aantal apparaten en afspeelkwaliteit. Het versleutelingsgereedschap bereidt inhoud aan de aanbiederzijde voor door het in MPEG-DASH- of HLS-formaat met CENC-versleuteling te verpakken.

Hoe werkt Widevine DRM?

Het beschermingsproces begint met de verpakkingsfase, wanneer het mediabestand wordt versleuteld met de inhoudssleutel op de server van de aanbieder. De versleutelde stream wordt via CDN naar het apparaat van de gebruiker gestuurd, waar CDM een licentie aanvraagt bij de licentieserver.

De licentieserver verifieert de authenticiteit van het apparaat en het recht op toegang tot de inhoud. Als de verificatie slaagt, geeft de server een licentie met de sleutel af die CDM gebruikt voor ontsleuteling. De licentie kan beperkingen bevatten voor kijktijd en resolutie.

Licentie-uitwisselingsprotocol

Licentie-uitwisseling in Widevine wordt geïmplementeerd via het EME-protocol (Encrypted Media Extensions) in browsers of via SDK op mobiele platforms. Het licentieverzoek wordt gegenereerd door CDM en via HTTPS naar de licentieserver gestuurd, wat bescherming biedt tegen onderschepping van sleutels tijdens transport.

De server verwerkt het verzoek en retourneert een licentie die ook versleuteld is en alleen door de CDM van het apparaat kan worden ontsleuteld. Hardwarematige binding van de sleutel aan een specifiek apparaat voorkomt overdracht naar andere platforms.

Ondersteuning voor versleutelingsstandaarden

Widevine gebruikt Common Encryption (CENC)-standaarden zoals gedefinieerd in ISO/IEC 23001-7, wat compatibiliteit met MPEG-DASH- en HLS-formaten garandeert. AES-128-versleuteling in CTR- of CBC-modus wordt toegepast voor de bescherming van mediastreams.

Voor sleutelafleiding wordt HKDF (HMAC-based Key Derivation Function) gebruikt, waarmee unieke sleutels voor elk segment van de inhoud kunnen worden gegenereerd. HLS-ondersteuning in Widevine is toegevoegd vanaf Modular 2.0, wat de compatibiliteit met Apple-platforms heeft uitgebreid.

Voorbeeld van licentieverzoek op 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-beveiligingsniveaus: L1, L2, L3

Widevine definieert drie beveiligingsniveaus die verschillen in de manier waarop cryptografische bewerkingen worden uitgevoerd en inhoud wordt verwerkt. Niveau L1 biedt maximale bescherming, L3 — minimale, L2 neemt een tussenpositie in.

NiveauType beschermingApparaatvereistenMaximale resolutie
L1HardwareTEE op SoC-niveau4K Ultra HD
L2HybrideTEE voor sleutels, software voor video1080p
L3SoftwareAlleen software-CDM720p

Niveau L1 — hardwarematige versleuteling

Niveau L1 vereist de aanwezigheid van Trusted Execution Environment (TEE) op hardwareniveau, waar alle cryptografische bewerkingen worden uitgevoerd. Inhoudssleutels verlaten nooit de TEE, wat uitsluit dat ze kunnen worden uitgelezen, zelfs als het belangrijkste besturingssysteem wordt gecompromitteerd.

Apparaten met L1-certificering kunnen inhoud afspelen in 4K-kwaliteit en HDR, omdat de ontsleutelde videostream rechtstreeks naar de beveiligde video-uitgang wordt gestuurd zonder toegang van gebruikersprocessen.

Niveau L3 — softwarematige versleuteling

Niveau L3 voert alle cryptografische bewerkingen softwarematig uit in de gewone gebruikersruimte. Dit is de minst veilige modus, waarbij sleutels uit het RAM van het apparaat kunnen worden uitgelezen.

Widevine L3 beperkt de afspeelkwaliteit tot 720p, waardoor het geschikt is om te bekijken op instapapparaten of desktopbrowsers zonder hardwarematige bescherming.

Beveiligingsniveau controleren op een apparaat

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

Integratie van Widevine in mobiele apps

Integratie van Widevine in mobiele apps gebeurt via standaard API's MediaDrm (Android) en AVContentKeySession (iOS). In de meeste gevallen hoeft de ontwikkelaar niet direct met DRM te werken — bibliotheken van spelers zoals ExoPlayer en AVPlayer verzorgen de licentieverlening automatisch.

Integratie op Android

Op Android wordt Widevine geïntegreerd via de klasse MediaDrm, die directe toegang tot CDM biedt. Voor streaming-apps wordt aanbevolen ExoPlayer te gebruiken met de DrmSessionManager-module, die automatisch licentieverzoeken beheert.

Bij het initialiseren van de speler moet de UUID van het Widevine-schema (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) en de URL van de licentieserver van de inhoudsaanbieder worden opgegeven. ExoPlayer verwerkt automatisch de cyclus van licentieaanvragen en -vernieuwing.

ExoPlayer configureren voor 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()

Integratie met webspelers

Op webplatforms werkt Widevine via Media Source Extensions (MSE) en Encrypted Media Extensions (EME). Browsers op basis van Chromium ondersteunen Widevine CDM ingebouwd, en de ontwikkelaar hoeft alleen een EME-sessie met de juiste configuratie te initialiseren.

Om met Widevine in een browser te werken, moet de licentie-initiator met keySystem-type `com.widevine.alpha` worden opgegeven. Na het maken van een MediaKeys-instantie verwerkt de browser automatisch licentieverzoeken.

Foutafhandeling bij licentieverlening

Bij integratie van Widevine is het belangrijk om fouten bij licentieverlening correct af te handelen, die optreden bij gebrek aan toegangsrechten, verlopen abonnement of apparaatincompatibiliteit. Fout TYPE_EXPIRED_LICENSE vereist verlenging van de licentie via een nieuw verzoek aan de server, en TYPE_OUTPUT_NOT_ALLOWED duidt op incompatibiliteit van de video-uitgang met DRM-beleid.

Het wordt aanbevolen een herhalingsmechanisme met exponentiële vertraging te implementeren voor tijdelijke netwerkfouten en de gebruiker een begrijpelijk bericht te tonen bij permanente weigeringen van licentieverlening. Foutregistratie van DRM-sessies helpt inhoudsaanbieders problemen met apparaten te identificeren en beleid te optimaliseren.

Widevine en alternatieve DRM

Widevine concurreert met FairPlay van Apple en PlayReady van Microsoft, waarmee het de drie belangrijkste DRM-oplossingen op de mobiele platformmarkt vormt. Elke technologie heeft zijn voor- en nadelen gerelateerd aan het platformecosysteem.

Vergelijking van DRM-oplossingen

KenmerkWidevineFairPlayPlayReady
OntwikkelaarGoogleAppleMicrosoft
Belangrijkste platformAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Maximaal niveauL1 (4K)Equivalent L1 (4K)SL3000 (4K)
Hardwarematige beschermingTEESecure EnclaveTPM + TEE

DRM kiezen voor een project

De keuze van DRM hangt af van de doelplatforms van de app. Voor Android-first projecten is Widevine de natuurlijke keuze, omdat het vooraf is geïnstalleerd op alle gecertificeerde apparaten met Google Mobile Services en geen extra licentiekosten vereist.

Voor cross-platform projecten wordt vaak een multi-DRM aanpak gebruikt met licentie-aggregators zoals Axinom, EZDRM en Vualto, die een uniforme API bieden voor het werken met alle drie DRM-systemen. Dit vermindert de integratiecomplexiteit en centraliseert het licentiemanagement.

Veelgestelde vragen

Wat is Widevine DRM?

Widevine — een DRM-technologie van Google, ontworpen om digitale video-inhoud te beschermen tegen ongeautoriseerd kopiëren. Het wordt gebruikt door streamingdiensten om video te versleutelen en de toegang ertoe te beheren via een licentiesysteem.

Welke beveiligingsniveaus van Widevine bestaan er?

Widevine ondersteunt drie niveaus van beveiliging: L1 met hardwarematige versleuteling in TEE, L2 met een hybride aanpak en L3 met volledig softwarematige implementatie. L1 maakt afspelen van inhoud in 4K mogelijk, L3 is beperkt tot 720p-kwaliteit.

Hoe controleer ik het Widevine-niveau op Android?

Het Widevine-niveau op Android kan worden gecontroleerd via de klasse MediaDrm door de eigenschap securityLevel op te vragen. Hiervoor wordt een MediaDrm-instantie met de Widevine-UUID gemaakt en getPropertyString aangeroepen, of worden apps van derden zoals DRM Info gebruikt.

Waarin verschilt Widevine van FairPlay?

Widevine is ontwikkeld door Google voor Android en Chrome, en FairPlay voor iOS, tvOS en Safari. Beide ondersteunen hardwarematige versleuteling en 4K, maar Widevine is breder verspreid op Android-apparaten, terwijl FairPlay de de facto standaard is in het Apple-ecosysteem.

Is een licentie nodig om Widevine te gebruiken?

Voor het gebruik van Widevine in een mobiele app is geen aparte licentie nodig — de technologie is ingebouwd in gecertificeerde Android-apparaten en Chrome. Kosten worden alleen in rekening gebracht bij inhoudsaanbieders voor het gebruik van de licentieserver.

Samenvatting

  • Widevine — het belangrijkste DRM-mechanisme op Android dat video-inhoud beschermt via hardwarematige of softwarematige versleuteling.
  • Drie niveaus L1, L2, L3 bepalen de maximale afspeelkwaliteit en mate van sleutelbescherming.
  • CDM (Content Decryption Module) voert ontsleuteling van inhoud aan de clientzijde uit met behulp van licentiesleutels.
  • Integratie gebeurt via ExoPlayer, MediaDrm op Android en EME op webplatforms.
  • Voor iOS is FairPlay vereist, wat een multi-DRM aanpak noodzakelijk maakt voor cross-platform projecten.
  • Widevine Modular ondersteunt CENC-versleuteling en is compatibel met MPEG-DASH- en HLS-formaten.
  • De licentieserver van Google beheert de toegang tot inhoud op basis van het beleid van de inhoudsaanbieder.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook