Content protection, HLS with AES-128 Encryption
Apple HTTP Live Streaming Encryption
HLS DRM doesn’t always have to be at Hollywood-grade levels. Sometimes, simply adding extra layers of security with AES encryption is sufficient. The HISPlayer Unity Video Player supports HLS AES 128 Encryption on Android, iOS, WebGL, Windows, MacOS and VR.
HLS AES Encryption
Apple HLS supports two encryption methods:
- AES-128 It encrypts the whole segment with the Advanced Encryption Standard (AES) using a 128-bit key, Cipher Block Chaining (CBC), and PKCS7 padding. The CBC will be restarted with each segment using the Initialization Vector (IV) provided.
- SAMPLE-AES It encrypts each individual media sample (e.g., video, audio, etc.) by its own with AES. The specific encryption and packaging depends on the media format, e.g., H.264, AAC, etc. SAMPLE-AES allows fine grained encryption modes, e.g., just encrypt I frames, just encrypt 1 out of 10 samples, etc. This could decrease the complexity of the decryption process. Several advantages result out of this approach as fewer CPU cycles are needed and for example mobile devices need less power consumption, higher resolutions can be effectively decrypted, etc.
HISPlayer Unity SDK Content Protection Overview
Content protection supported by the HISPlayer Unity Player SDK is as follows:
-
Windows Desktop & UWP
- HLS with AES-128 encryption
- Custom HTTP Authorization Headers
-
Android
- Widevine Level 3 DRM
- DRM Token at Unity
- HLS with AES-128 encryption
- Custom HTTP Authorization Headers
- iOS
- DRM content protection
- HLS with AES-128 encryption
- Custom HTTP Authorization Headers
-
macOS
-
HLS with AES-128 clear-key, direct key, and key request using an auth token in the HTTP header (“Authorization” field). More information about HLS encryption can be read in the RFC here: https://tools.ietf.org/html/draft-pantos-http-live-streaming-23
- Custom HTTP Authorization Headers
-
- WebGL
- HLS with AES-128 encryption
- Custom HTTP Authorization Headers
- Meta Quest
- Widevine Level 1 DRM
- DRM Token at Unity
- HLS with AES-128 encryption
- Custom HTTP Authorization Headers
Read about Custom HTTP Authorization Headers here.