Copyright en eigendom op het web

Encrypted Media Extensions

Encrypted Media Extensions (EME) zorgt voor een Application Programming Interface (API) voor webapplicaties zodat deze kunnen kunnen communiceren met content protection systemen. In feite komt het erop neer dat deze technologie het mogelijk maakt voor een webbrowser om versleutelde digitale content beschikbaar te maken via streaming technologie. EME is ontworpen om applicaties die versleutelde digitale content aanbieden te laten werken op elke browser (die deze technologie ondersteunt), ongeacht welk systeem er gebruikt wordt om de beveiliging te realiseren.

EME is een uitbreiding van de HTMLMediaElement specificatie. Het feit dat EME een uitbreiding is betekent dat ondersteuning voor deze technologie optioneel is. Als de browser deze extensie niet ondersteunt, kan deze browser versleutelde content niet beschikbaar maken. Het is belangrijk om op te merken dat EME geen specificatie is voor een DRM systeem of een content protection systeem. Maar zorgt het voor een gedeelde interface voor DRM systemen om digitale content via het web beveiligd beschikbaar te maken.

EME maakt gebruik van de volgende externe componenten:

  • Key System: Een mechanisme om digitale content te beveiligen.
  • Content Decryption Module (CDM): Client-side software mechanisme dat ervoor zorgt dat gencrypteerde content afgespeeld kan worden.
  • License (Key) server: Communiceert met het CDM en geeft een geschikte key af waarmee content ontsleuteld kan worden.
  • Packaging service: Deze service codeert en versleutelt de content zodat deze verspreidt en gebruikt kan worden (nadat deze niet meer versleuteld is).

Hoewel EME met een license server communiceert om een key te verkrijgen, is EME niet verantwoordelijk is voor het bijhouden van gebruikers identiteit en authenticiteit. Deze functionaliteit moet door de applicatie geboden worden. Hoewel EME geen DRM functionaliteit specificeert, eist EME dat browsers de Clear Key technologie ondersteunen om ten minste één gezamenlijk ondersteunde Key Systeem te hebben. Clear Key is een redelijk eenvoudige manier om content te beveiligen waarbij eenzelfde Key de content versleutelt evenals ontgrendelt tijdens het afspelen. Het wordt aanbevolen om slechts Clear Key te gebruiken voor test doeleinden.

Hoe werkt EME?

Hieronder volgt een korte uitwerking van de manier waarop de componenten van EME met elkaar communiceren:

  1. Een webapplicatie probeert digitale content beschikbaar te maken die versleuteld is
  2. De browser herkent dat dat de content versleuteld is en activeert het needkey event met bijbehorende metadata (initData) over de versleuteling
  3. De applicatie behandelt het needkey event waarbij:
    1. Als er nog geen MediaKeys object geassocieerd is met de content, kies een beschikbaar Key Systeem en License Server URL. Dit gebeurt door MediaKeys.isTypeSupported() aan te roepen om te kijken welke Key Systemen beschikbaar zijn. Daarna wordt er een MediaKeys object aangemaakt voor een beschikbaar Key Systeem. Een MediaKeys object wordt gebruikt om de sleutels te representeren die de content weer bruikbaar kunnen maken met behulp van de CDM.
    2. Wanneer het MediaKey object aangemaakt is, koppel deze aan een media element met behulp van setMediaKeys(). Dit zorgt ervoor dat de Keys gebruikt kunnen worden om de content te ontgrendelen tijdens het streamen.
  4. De applicatie geeft de data verkregen door het needkey event door aan een CDM door CreateSession() aan te roepen op het MediaKeys object. Deze methode zorgt voor de creatie van een MediaKeySession object waarin later de geldigheidsduur van een licentie en bijbehorende Keys worden opgeslagen.
  5. De CDM vuurt een message event. Dit event staat voor een vraag aan een license server om een Key te verkrijgen
  6. Het MediaKeySessionobject ontvangt deze aanvraag en stuurt hem door naar de license server
  7. De applicatie ontvangt een reactie met eventueel een Key van de license server en stuurt deze reactie door naar de CDM door de update() methode in het MediaKeySession object
  8. De CDM kan nu beginnen met het ontgrendelen van de digitale content met behulp van de verkregen Key(s)
  9. Het afspelen van de digitale content begint
EME flow
Figuur 1 geeft een typische flow weer van een EME operatie