Widevine : ce que c'est, DRM et niveaux de sécurité expliqués

Auteur : IT Sectr Publié le : 2026-05-24 Temps de lecture : 8 min

Widevine est une technologie DRM développée par Google pour protéger le contenu vidéo contre la copie non autorisée sur les appareils mobiles, les Smart TV et les plateformes web. Le chiffrement du contenu est effectué via le module CDM, qui est pris en charge sur 4 milliards d'appareils dans le monde. La technologie Widevine assure la compatibilité avec Android, iOS, Chrome et Smart TV, permettant aux services de streaming de protéger le contenu premium sur n'importe quelle plateforme.

Points clés

  • Widevine — une solution DRM de Google pour protéger la vidéo dans les applications mobiles et le web.
  • Trois niveaux de sécurité : L1 (chiffrement matériel), L2 (logiciel), L3 (sécurisé uniquement dans le cloud).
  • CDM — Content Decryption Module, composant clé pour déchiffrer le contenu.
  • La licence est gérée via le serveur de licences Google qui émet des clés pour le décodage.
  • La compatibilité avec EME (Encrypted Media Extensions) permet de fonctionner dans n'importe quel navigateur.

Qu'est-ce que Widevine ?

Widevine est une technologie DRM propriétaire acquise par Google en 2010 et devenue le standard de facto pour la protection du contenu vidéo dans l'écosystème Android. Elle est utilisée par les principaux services de streaming, dont Netflix, Amazon Prime Video, Disney+ et Hulu, pour empêcher la copie et la distribution non autorisées du contenu.

Widevine prend en charge le chiffrement AES-128 CBC à l'aide de clés de contenu qui sont transmises uniquement aux appareils autorisés via un canal de licence sécurisé. Le système offre une protection de bout en bout, du chiffrement sur le serveur au décodage sur l'appareil de l'utilisateur.

Histoire et développement de Widevine

Widevine Technologies a été fondée en 1999 et a d'abord développé des solutions de protection de contenu pour les plateformes de télévision par câble. Après son acquisition par Google en 2010, la technologie a été adaptée pour les plateformes mobiles et intégrée au système d'exploitation Android à partir de la version 4.4 KitKat. Depuis 2015, Widevine est un composant obligatoire de la certification Google Mobile Services.

En 2018, Google a présenté Widevine Modular DRM, qui a permis aux fabricants d'appareils de mettre en œuvre différents niveaux de protection par matériel sans modifier le code du système d'exploitation. Aujourd'hui, Widevine Modular est pris en charge sur plus de 4 milliards d'appareils et constitue le principal mécanisme DRM sur Android.

Architecture de Widevine

L'architecture de Widevine se compose de trois composants clés : le Content Decryption Module (CDM), le serveur de licences et l'outil de chiffrement de contenu. Le CDM effectue le déchiffrement côté client et interagit avec le Trusted Execution Environment (TEE) matériel pour le stockage sécurisé des clés.

Le serveur de licences Google gère l'émission des clés en fonction des politiques du fournisseur de contenu, qui définissent des restrictions sur le temps, le nombre d'appareils et la qualité de lecture. L'outil de chiffrement prépare le contenu côté fournisseur, en l'empaquetant au format MPEG-DASH ou HLS avec le chiffrement CENC.

Comment fonctionne Widevine DRM ?

Le processus de protection commence à l'étape d'empaquetage du contenu, lorsque le fichier multimédia est chiffré à l'aide d'une clé de contenu sur le serveur du fournisseur. Le flux chiffré est transmis à l'appareil de l'utilisateur via CDN, où le CDM demande une licence au serveur de licences.

Le serveur de licences vérifie l'authenticité de l'appareil et le droit d'accès au contenu. Si la vérification réussit, le serveur émet une licence avec une clé que le CDM utilise pour le déchiffrement. La licence peut contenir des restrictions sur le temps de visionnage et la résolution.

Protocole d'échange de licences

L'échange de licences dans Widevine est implémenté via le protocole EME (Encrypted Media Extensions) dans les navigateurs ou via SDK sur les plateformes mobiles. La demande de licence est générée par le CDM et envoyée au serveur de licences via HTTPS, assurant la protection contre l'interception des clés en transit.

Le serveur traite la demande et retourne une licence qui est également chiffrée et ne peut être déchiffrée que par le CDM de l'appareil. La liaison matérielle de la clé à un appareil spécifique empêche son transfert vers d'autres plateformes.

Prise en charge des normes de chiffrement

Widevine utilise les normes Common Encryption (CENC) définies dans l'ISO/IEC 23001-7, garantissant la compatibilité avec les formats MPEG-DASH et HLS. Le chiffrement AES-128 en mode CTR ou CBC est utilisé pour protéger les flux multimédia.

Pour la dérivation de clés, HKDF (HMAC-based Key Derivation Function) est utilisé, permettant de générer des clés uniques pour chaque segment de contenu. La prise en charge de HLS dans Widevine a été ajoutée avec la version Modular 2.0, élargissant la compatibilité avec les plateformes Apple.

Exemple de demande de licence sur 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)
}

Niveaux de sécurité Widevine : L1, L2, L3

Widevine définit trois niveaux de sécurité qui diffèrent par la manière dont les opérations cryptographiques sont effectuées et le contenu est traité. Le niveau L1 offre une protection maximale, L3 une protection minimale et L2 occupe une position intermédiaire.

NiveauType de protectionExigences de l'appareilRésolution maximale
L1MatérielleTEE au niveau du SoC4K Ultra HD
L2HybrideTEE pour les clés, logiciel pour la vidéo1080p
L3LogicielleCDM logiciel uniquement720p

Niveau L1 — chiffrement matériel

Le niveau L1 nécessite un Trusted Execution Environment (TEE) au niveau matériel, où toutes les opérations cryptographiques sont effectuées. Les clés de contenu ne quittent jamais le TEE, empêchant leur extraction même si le système d'exploitation principal est compromis.

Les appareils certifiés L1 peuvent lire le contenu en qualité 4K et HDR, car le flux vidéo déchiffré est envoyé directement à une sortie vidéo protégée sans accès des processus utilisateur.

Niveau L3 — chiffrement logiciel

Le niveau L3 effectue toutes les opérations cryptographiques par logiciel dans l'espace utilisateur normal. C'est le mode le moins sécurisé, où les clés peuvent être extraites de la RAM de l'appareil.

Widevine L3 limite la qualité de lecture à 720p, ce qui le rend adapté à la visualisation sur les appareils d'entrée de gamme ou les navigateurs de bureau sans protection matérielle.

Vérification du niveau de sécurité sur un appareil

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

Intégration de Widevine dans les applications mobiles

L'intégration de Widevine dans les applications mobiles s'effectue via les API standard MediaDrm (Android) et AVContentKeySession (iOS). Dans la plupart des cas, le développeur n'a pas besoin de travailler directement avec DRM — les bibliothèques de lecteurs comme ExoPlayer et AVPlayer gèrent les licences automatiquement.

Intégration sur Android

Sur Android, Widevine est intégré via la classe MediaDrm, qui fournit un accès direct au CDM. Pour les applications de streaming, il est recommandé d'utiliser ExoPlayer avec le module DrmSessionManager, qui gère automatiquement les demandes de licence.

Lors de l'initialisation du lecteur, vous devez spécifier l'UUID du schéma Widevine (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) et l'URL du serveur de licences fournie par le fournisseur de contenu. ExoPlayer gère automatiquement le cycle de demande et de renouvellement des licences.

Configuration d'ExoPlayer pour 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()

Intégration avec les lecteurs web

Sur les plateformes web, Widevine fonctionne via Media Source Extensions (MSE) et Encrypted Media Extensions (EME). Les navigateurs basés sur Chromium ont Widevine CDM intégré, et le développeur n'a qu'à initialiser une session EME avec la bonne configuration.

Pour utiliser Widevine dans un navigateur, vous devez spécifier un initiateur de licence avec le type keySystem `com.widevine.alpha`. Après avoir créé une instance MediaKeys, le navigateur gère automatiquement les demandes de licence.

Gestion des erreurs de licence

Lors de l'intégration de Widevine, il est important de gérer correctement les erreurs de licence qui surviennent en raison d'un manque de droits d'accès, d'une expiration d'abonnement ou d'une incompatibilité de l'appareil. L'erreur TYPE_EXPIRED_LICENSE nécessite une mise à jour de la licence via une nouvelle demande au serveur, tandis que TYPE_OUTPUT_NOT_ALLOWED indique une incompatibilité de la sortie vidéo avec les politiques DRM.

Il est recommandé de mettre en œuvre un mécanisme de nouvelles tentatives avec backoff exponentiel pour les erreurs réseau temporaires et d'afficher un message clair à l'utilisateur en cas d'échec permanent de licence. La journalisation des erreurs de sessions DRM aide les fournisseurs de contenu à identifier les problèmes d'appareils et à optimiser les politiques.

Widevine et les DRM alternatives

Widevine concurrence FairPlay d'Apple et PlayReady de Microsoft, formant les trois principales solutions DRM sur le marché des plateformes mobiles. Chaque technologie a ses propres avantages et limitations liés à l'écosystème de la plateforme.

Comparaison des solutions DRM

CaractéristiqueWidevineFairPlayPlayReady
DéveloppeurGoogleAppleMicrosoft
Plateforme principaleAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Niveau maximumL1 (4K)Équivalent à L1 (4K)SL3000 (4K)
Protection matérielleTEESecure EnclaveTPM + TEE

Choix du DRM pour un projet

Le choix du DRM dépend des plateformes cibles de l'application. Pour les projets axés sur Android, Widevine est le choix naturel car il est préinstallé sur tous les appareils certifiés avec Google Mobile Services et ne nécessite pas de frais de licence supplémentaires.

Pour les projets multiplateformes, une approche multi-DRM est souvent utilisée avec des agrégateurs de licences comme Axinom, EZDRM et Vualto, qui fournissent une API unifiée pour travailler avec les trois systèmes DRM. Cela réduit la complexité d'intégration et centralise la gestion des licences.

Questions fréquentes

Qu'est-ce que Widevine DRM ?

Widevine est une technologie DRM de Google conçue pour protéger le contenu vidéo numérique contre la copie non autorisée. Elle est utilisée par les services de streaming pour chiffrer la vidéo et gérer l'accès via un système de licences.

Quels sont les niveaux de sécurité de Widevine ?

Widevine prend en charge trois niveaux de sécurité : L1 avec chiffrement matériel dans TEE, L2 avec une approche hybride et L3 avec une implémentation entièrement logicielle. L1 permet la lecture de contenu en 4K, L3 est limité à la qualité 720p.

Comment vérifier le niveau Widevine sur Android ?

Vous pouvez vérifier le niveau Widevine sur Android via la classe MediaDrm en demandant la propriété securityLevel. Pour cela, créez une instance MediaDrm avec l'UUID Widevine et appelez getPropertyString, ou utilisez des applications tierces comme DRM Info.

En quoi Widevine diffère-t-il de FairPlay ?

Widevine est développé par Google pour Android et Chrome, tandis que FairPlay est pour iOS, tvOS et Safari. Les deux prennent en charge le chiffrement matériel et la 4K, mais Widevine est plus répandu sur les appareils Android, tandis que FairPlay est le standard de facto dans l'écosystème Apple.

Une licence est-elle nécessaire pour utiliser Widevine ?

Pour utiliser Widevine dans une application mobile, aucune licence séparée n'est nécessaire — la technologie est intégrée dans les appareils Android certifiés et Chrome. Des frais ne sont facturés qu'aux fournisseurs de contenu pour l'utilisation du serveur de licences.

Résumé

  • Widevine est le principal mécanisme DRM sur Android, offrant une protection du contenu vidéo par chiffrement matériel ou logiciel.
  • Les trois niveaux de sécurité L1, L2, L3 déterminent la qualité de lecture maximale et le degré de protection des clés.
  • CDM (Content Decryption Module) effectue le déchiffrement du contenu côté client à l'aide de clés de licence.
  • L'intégration se fait via ExoPlayer, MediaDrm sur Android et EME sur les plateformes web.
  • Pour iOS FairPlay est requis, ce qui rend une approche multi-DRM nécessaire pour les projets multiplateformes.
  • Widevine Modular prend en charge le chiffrement CENC et est compatible avec les formats MPEG-DASH et HLS.
  • Le serveur de licences Google gère l'accès au contenu en fonction des politiques définies par le fournisseur de contenu.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi