HISPlayer and HLS 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’s Unity Video Player with DRM Content Protection & AES-128
Content protection schemes supported by the HISPlayer Unity Video Player Plugin are as follows:
-
Windows Desktop & UWP
- HLS with AES-128 clear-key, direct key, and key request
-
Android
- Widevine Level 1 DRM
- DRM Token at Unity
- HLS with AES-128 clear-key, direct key, and key request
- iOS
- DRM content protection
- HLS with AES-128 encryption
-
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
-
- WebGL
- HLS with AES-128 encryption