Настройка AES-128 для работы с VOD
Что такое AES-128
AES-128 (от англ. Advanced Encryption Standard) — это алгоритм блочного шифрования, основанный на нескольких подстановках и перестановках, происходящих с блоками данных по 16 байт. Длина ключа этого вида шифрования равна 128 бит.
Шифрование подходит, когда нужно разрешить определенному кругу зрителей доступ к контенту, например, к контенту по подписке для тех, кто ее оплатил.
AES-128 очень надежный и используется в качестве стандарта шифрования для систем высокой безопасности, поэтому перехватить и расшифровать ключи сложно.
Для максимальной защиты можно комбинировать шифрование AES-128 и блокировку по странам или доменам.
Как AES-128 работает с VOD
Мы доставляем видео по протоколу HLS, при котором оно разбивается на плейлисты, состоящие из фрагментов (чанков).
Фрагменты видео, используя алгоритм AES-128, передаются в зашифрованном виде, ключ расшифровки видео для зрителей передается в отдельном запросе.
Процесс получения ключа расшифровки:
- Запрос на просмотр видео передаётся на ваш сервер.
- Он анализируется на наличие cookie и других параметров сессии.
- Если запрос не содержит определенные параметры, доступ к видео не предоставляется.
- Если запрос содержит определенные параметры, сервер отправляет GET-запрос к API G-Core Labs на получение ключа.
- API G-Core Labs предоставляет ключ серверу.
- Сервер передает ключ зрителю, доступ к просмотру видео предоставляется.
Настройка AES-128 для работы с VOD
Настройки на платформе «Стриминг»
Для подключения возможности передавать видео с использованием шифрования AES-128 обратитесь в техническую поддержку на почту support@gcorelabs.com или в чат.
После включения шифрования в URL M3U8 видео добавятся символы _s_ :
https://videos.access.com/videos/854_0sKTplhwDSmbV9Z_s_/master.m3u8
Обратите внимание! После подключения шифрования запрос на просмотр видео и получение ключа расшифровки отправляются на серверы «Стриминга».
На серверах «Стриминга» нет настроек, позволяющих понимать, по какому принципу разрешать или запрещать просмотр видео конкретному зрителю, поэтому просмотр будет разрешен всем зрителям.
Чтобы избежать этого, выполните настройки на своем сервере, описанные ниже.
Настройки на вашем сервере
Для перенаправления и обработки запросов на получение ключа расшифровки необходимо настроить сервер:
1. Создайте API, на который будет приходить запрос получения ключа расшифровки.
Если вам нужна помощь с созданием серверного API, пожалуйста, напишите нам на почту support@gcorelabs.com или в чат.
2. Создайте домен, на который зритель будет перенаправлен для проверки и получения ключа. Домен должен подставляться в ссылку после символов _s_ следующим образом:
https://videos.access.com/videos/854_0sKTplhwDSmbV9Z_s_videos.access.com/master.m3u8
3. В случае успешной валидации зрителя сервер должен отправить GET-запрос к API G-Core Labs для получения ключа расшифровки:
Get https://api.gcdn.co/vp/api/videos/854_0sKTplhwDSbV9Z/encryption
Где:
854 — это id клиента
_0sKTplhwDSbV9Z — это слаг, идентифицирующий видео
4. После получения ключа сервер должен передать его зрителю в таком виде, в котором он его получил от API G-Core Labs.
Пример ключа:
W�U����<)B�4�
Чтобы передать ключ в таком формате пригодятся заголовки:
- content-transfer-encoding: binary
- content-type: application/octet-stream