44
Stefan Lederer, CEO Paul MacDougall, Solution Architect How to Provide Protected Content to Desktop, Mobile,TVs & Streaming Boxes W5 - DRM Workflows

DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Embed Size (px)

Citation preview

Page 1: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Stefan Lederer, CEO

Paul MacDougall, Solution Architect

How to Provide Protected Content to

Desktop, Mobile,TVs & Streaming Boxes

W5 - DRM Workflows

Page 2: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Agenda ● Who are we?

● Video Problems on the Web

● Content Protection Technologies

● DRM and its variants

● Example implementation

● What’s next?

Page 3: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Global Locations

● US - San Francisco, Chicago,

New York, Seatle

● Europe - Austria, Netherlands

● APAC - Hong Kong

● LATAM - Sao Paulo

Who’s behind us

Privately funded by worldwide leading

venture capital firms:

Business Angel Investors

● Chris Kaiser – former VP

Engineering Netflix

● Edward Kozel – former CTO

Cisco

● David Helgason – founder of

Unity

● Brendan Iribe – founder and

CEO of Oculus

● Dries Buytaert – founder of

Drupal and CTO of Acquia

Track record

Founded in 2013 after co-creating

MPEG-DASH standard

Technology leading Video

Infrastructure for the Web:

Encoding, HTML5 Player, Analytics,

Cloud Storage and Delivery

Integrations

Global customer base: 250

companies, 6 continents

About Bitmovin

Founders Co-created the

MPEG-DASH standard

● Used by Netflix and Youtube

● 50 % U.S. Peak Internet Traffic

● 10 US PTC Patents

● 20+ Papers in Multimedia

● Author of the MPEG DASH

Reference Software

Page 4: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Bitmovers All Around The World

Page 5: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes
Page 6: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Online Video

Problems

Page 7: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Solution

Full-Stack Video

Infrastructure API

Page 8: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Bitmovin Encoding

● Up to 100x Real-Time

● Massive compute options –

Google, AWS, Kubernetes, etc..

● Massive Parallelization

● 100% customizable

● Unlimited bit rates

● For H.264/AVC, H.265/HEVC

and VP9

● Get to market fast with new video

● Fully Customizable API

● Fully Customizable Profiles

● Many API Clients and Examples

● DRM Support for

DASH/HLS/MP4

● Offline DRM Support

Page 9: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Managed On-Premise

Encoding

Page 10: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

HTML5 Player

● Fully configurable startup & seeking behaviour

○ i.e. minimum quality, limit resolution to player

resolution, etc.

● Flexibility to create own adaptation algorithm using

the API

Fastest Video Startup

● Fastest loading player on the

market

● < 300ms until first frame

● 9 patents on adaptive bitrate

adaptation

Page 11: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Premium Video =

$$$*

*If you can:

Sell it or Rent it

Distribute it

Protect it from

unauthorized access

Image idea: treasure chest + pirates (content

gets pirated)

Page 12: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Common Ways to

Lockdown Video

Assets:

Tokenization

Encryption

DRM

Page 13: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Encryption

Encrypts the the

transmission of the video

stream

Why use it?

● Easy to implement

● Good enough for most use cases

● SAMPLE-AES and AES-128

But...

● Software-level key handling lacks of control

over output instances and devices

● For online viewing only

Page 14: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

DRM - Digital Rights

Management

Encrypts content and

dictates usage rights for

video playback at SW &

HW levels

Why use it?

● Highest level of protection

● Selectable output control

● Offline viewing possible

But...

● $$$ to implement - licensing and development

● Customer experience negatively impacted

● More places thing can break

● Typically, each device supports just one DRM

Use for

● High value content

● When required by content agreement

Page 15: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Many Providers

Page 16: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

How Does DRM

Work?

The video content is

encrypted with a content key

System generates license

files to accompany the

content

System allows playback for

an authenticated user and

device

Page 17: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

DRM Technologies

by Provider

Widevine Modular &

Classic

PlayReady

Fairplay

PrimeTime

Page 18: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Widevine Modular

DRM OverviewWidevine Modular (successor to Classic)

● Google’s DRM - Extensive support for Google ecosystem

● Supports DASH with CENC

● Supports Hardware Security (TEE)

● Can limit content quality server-side

● Rights expression/policy enforcement

Widevine ClassicGoogle legacy technology

Only supports .WVM (Google proprietary packaging)

EOLed - provided as-is with no improvements

Rarely used in US

Page 19: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

PlayReady DRM

Overview

Microsoft PlayReady

● Microsoft DRM - broad platform support,

including many smart TVs

● Most robust rights management

● Pre-cache licenses (fine grain sunrise and

sunset of keys)

Page 20: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

FairPlay DRM

Overview

Apple Fairplay

● No rights expression or policy enforcement

● Needs Key Security Module on Key Server

● Needs code to relay key requests

Page 21: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Adobe PrimeTime

DRM Overview

Adobe Primetime (successor to Access)

● Fine-grained policy management system

(whitelist apps, devices, domains)

● Support for key and license rotation

Page 22: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Premium Video &

Adoption of HTML5

Enables playing premium

video content directly in

the browser. No Plug-ins!

● MPEG-DASH - industry standard for adaptive

streaming

● W3C Media Source Extensions (MSEs) -

“extends HTMLMediaElement to allow

JavaScript to generate media streams for

playback.”

● W3C Encrypted Media Extensions (EMEs) -

“extends HTMLMediaElement providing APIs

to control playback of protected content.”

Page 23: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Proprietary

Ecosystems Will

Disappear

Page 24: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Open Ecosystems

are Winning:

HTML5 MSE/EME,

DASH, etc.

Page 25: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Is it that easy to

build a video player?

Page 26: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

DRM Support in

HTML5 Browsers

Source: http://www.ezdrm.com/html/compare-drm.asp

Page 27: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

DRM Support in

Mobile Devices

Source: http://www.ezdrm.com/html/compare-drm.asp

Page 28: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

DRM Support in

OTT Devices

Source: http://www.ezdrm.com/html/compare-drm.asp

Page 29: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

DRM Support in

Connected TVs &

Game Consoles

Source: http://www.ezdrm.com/html/compare-drm.asp

Page 30: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Multi-DRM

Maximum device reach

● Traditional (before DASH) Multi-DRM setups

need to encrypt and package the content for

each DRM separately

● DASH CENC/EME - allows key association

from different DRM’s with the same video

● Except for Apple (FairPlay with HLS on

devices & in Safari)

● Multi-DRM Providers:EZ DRM, ExpressPlay,

Intertrust, Irdeto, Axinom, BuyDRM,

Verimatrix, and others

Page 31: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Hollywood &

UltraViolet

Implement a DRM

accepted by the studios

● Industry wide entitlement locker

● Digital Entertainment Content Ecosystem

(DECE) - consortium of 85 studios, consumer

electronics manufs, retailers, etc.

● UltraViolet - a set of standards for the digital

distribution of premium Hollywood content

● Approved DRMs: Widevine, PlayReady,

PrimeTime, Marlin, OMA, DivXDRM

● But not Apple Fairplay

Page 32: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Implementing a

DRM Workflow

DRM Keyflow

● Identity Management

● Entitlement Management

○ What content can you watch

○ Download

○ Rent time

○ Quality (SD/HD)

● Key exchange

Page 33: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Implementing a

DRM Workflow

End user requests

playback of content Your

Entitlement

Server

License

ServerEnd User

Page 34: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Implementing a

DRM Workflow

License Server checks

with your Entitlement

Server if user is entitled

to watch content

Your

Entitlement

Server

License

ServerEnd User

Page 35: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Implementing a

DRM Workflow

Entitlement Server says

yes Your

Entitlement

Server

License

ServerEnd User

Page 36: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Implementing a

DRM Workflow

Key is given to End User,

playback is permitted Your

Entitlement

Server

License

ServerEnd User

Page 37: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Demonstration

Sample DRM server

response for encoding

files

<EZDRM xmlns="">

<WideVine diffgr:id="WideVine1" msdata:rowOrder="0" diffgr:hasChanges="inserted">

<ContentID>iSWudw/m/0SlDgg7UxkWuA==</ContentID>

<Key>Qab1RE+g2t5cVrsz1I42qw==</Key>

<KeyHEX>41a6f5444fa0dade5c56bb33d48e36ab</KeyHEX>

<KeyID>9Akq2ajvVbOMXEYV63iIpA==</KeyID>

<KeyIDGUID>f4092ad9-a8ef-55b3-8c5c-4615eb7888a4</KeyIDGUID>

<KeyIDHEX>f4092ad9a8ef55b38c5c4615eb7888a4</KeyIDHEX>

<PSSH>

EhD0CSrZqO9Vs4xcRhXreIikGghtb3ZpZG9uZSIQiSWudw/m/0SlDgg7UxkWuEjj3JWbBg==

</PSSH>

<ServerURL>https://widevine-dash.ezdrm.com/proxy?pX=CF1AEB</ServerURL>

<ServerGet>

request = {"policy": "","tracks": [{"type": "SD"}],"content_id": "iSWudw/m/0SlDgg7UxkWuA=="}

</ServerGet>

<ResponseRaw>

{"status": "OK","drm": [{"type": "WIDEVINE","system_id":

"edef8ba979d64acea3c827dcd51d21ed"}],"tracks": [{"type": "SD","key_id":

"9Akq2ajvVbOMXEYV63iIpA==","key": "Qab1RE+g2t5cVrsz1I42qw==","pssh": [{"drm_type":

"WIDEVINE","data":

"EhD0CSrZqO9Vs4xcRhXreIikGghtb3ZpZG9uZSIQiSWudw/m/0SlDgg7UxkWuEjj3JWbBg=="}]}]}

</ResponseRaw>

</WideVine>

<PlayReady diffgr:id="PlayReady1" msdata:rowOrder="0" diffgr:hasChanges="inserted">

<Key>Qab1RE+g2t5cVrsz1I42qw==</Key>

<KeyHEX>41a6f5444fa0dade5c56bb33d48e36ab</KeyHEX>

<KeyIDGUID>f4092ad9-a8ef-55b3-8c5c-4615eb7888a4</KeyIDGUID>

<LAURL>

https://playready.ezdrm.com/cency/preauth.aspx?pX=CFD36D

</LAURL>

<Checksum>ajppWh0L7Wk=</Checksum>

</PlayReady>

</EZDRM>

/paulmacdougall/Streamin

g-Media-East-2017-DRM

Page 38: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Demonstration

DASH Manifest for CENC

DRM protected content

/paulmacdougall/Streamin

g-Media-East-2017-DRM

Page 39: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Testing the DRM

Workflow

● VMs are perilous!

● Chrome needs SSL (https)

● Must have full HDCP signal chain

Page 40: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

What’s Next? Widevine Modular offering persistent license support

Intel offering TEE locker in new chipsets

CMAF - New implementation set of existing

standards to simplify content delivery, with fMP4 as

video standard.

CBC vs CTR

Previously required one set of file encrypted with

CBC for FairPlay and one CTR for Widevine and

PlayReady.

Page 41: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

Current

M2TS

AVC/h.264

HLS DASH

FairPlayPlayReady,

Widevine, etc.

Apple Users Everyone else

AES-128 CBC AES-128 CTR

fMP4

Separate files on

storage/CDN

Page 42: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

CMAF

+ CMAD Media Object Model

compatible with DASH

Data Model

+ Segment formats based on

ISOBMFF

- Different manifest formats

(MPD vs m3u8)

- CENC: AES-128 CBC

(HLS) vs AES-128 CTR (all

others) mode

Page 43: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

CMAF

AES-128 CBC

fMP4

AVC/h.264

HLS DASH

FairPlayPlayReady,

Widevine, etc.

Apple Users Everyone else

Only manifests (.m3u8 &

.mpd), small text files, are

replicated on storage and

CDN

Page 44: DRM Workflows: How to Provide Protected Content to Desktop, Mobile, TVs, & Streaming Boxes

www.bitmovin.com