Digital Video Introduction

Online streaming

General architecture

general architecture

[TODO]

Progressive download and adaptive streaming

progressive download

adaptive streaming

[TODO]

Content protection

We can use a simple token system to protect the content. The user without a token tries to request a video and the CDN forbids her or him while a user with a valid token can play the content, it works pretty similarly to most of the web authentication systems.

token protection

The sole use of this token system still allows a user to download a video and distribute it. Then the DRM (digital rights management) systems can be used to try to avoid this.

drm

In real life production systems, people often use both techniques to provide authorization and authentication.

DRM

Main systems

What?

DRM means Digital rights management, it's a way to provide copyright protection for digital media, for instance, digital video and audio. Although it's used in many places it's not universally accepted.

Why?

Content creator (mostly studios) want to protect its intelectual property against copy to prevent unauthorized redistribution of digital media.

How?

We're going to describe an abstract and generic form of DRM in a very simplified way.

Given a content C1 (i.e. an hls or dash video streaming), with a player P1 (i.e. shaka-clappr, exo-player or ios) in a device D1 (i.e. a smartphone, TV, tablet or desktop/notebook) using a DRM system DRM1 (widevine, playready or FairPlay).

The content C1 is encrypted with a symmetric-key K1 from the system DRM1, generating the encrypted content C'1.

drm general flow

The player P1, of a device D1, has two keys (asymmetric), a private key PRK1 (this key is protected1 and only known by D1) and a public key PUK1.

1protected: this protection can be via hardware, for instance, this key can be stored inside a special (read-only) chip that works like a black-box to provide decryption, or by software (less safe), the DRM system provides means to know which type of protection a given device has.

When the player P1 wants to play the content C'1, it needs to deal with the DRM system DRM1, giving its public key PUK1. The DRM system DRM1 returns the key K1 encrypted with the client''s public key PUK1. In theory, this response is something that only D1 is capable of decrypting.

K1P1D1 = enc(K1, PUK1)

P1 uses its DRM local system (it could be a SOC, a specialized hardware or software), this system is able to decrypt the content using its private key PRK1, it can decrypt the symmetric-key K1 from the K1P1D1 and play C'1. At best case, the keys are not exposed through RAM.

K1 = dec(K1P1D1, PRK1) P1.play(dec(C'1, K1))

drm decoder flow

Next chapter
How to use jupyter
Next Chapter