DRM защита контента с Flussonic Media Server
Flussonic Media Server поддерживает работу со следующими системами DRM: KeyOS и Conax, а также поддерживает метод шифрования AES128.
Многие серверы DRM периодически меняют (ротируют) ключи с целью более надежной защиты. Flussonic ротирует ключи сам — он запрашивает у DRM сервера новый ключ каждые 10 минут.
Описание механизма защиты DRM
Apple в спецификации протокола HLS описывает два штатных механизма шифрования: AES-128 и SAMPLE-AES.
Flussonic Media Server поддерживает оба механизма, а также Conax DRM.
Механизмы отличаются лишь непосредственным способом шифрования данных и работают по трехсторонней схеме:
- Flussonic запрашивает и получает ключ для шифрования контента от сервера ключей и URL этого ключа.
- Клиент получает от Flussonic шифрованный контент и URL ключа для дешифрования.
- Сервер ключей получает от клиента запрос на ключ для дешифрования и решает: отдавать ключ или нет.
Если клиент получает контент от Flussonic по безопасному соединению и общается с сервером ключей по HTTPS, то можно надеяться на то, что он сможет расшифровать видео и проиграть его, не открыв доступ к нешифрованному контенту неавторизованным пользователям.
Механизмы получения ключа для видео-потоков и для файлов не отличаются.
Настройка шифрования
Flussonic Media Server хранит контент в нешифрованном виде. Шифруется контент при отдаче клиенту.
Чтобы включить шифрование, добавьте строку drm
в настройки потока или зоны файлов, укажите метод шифрования и сервер ключей. Далее на этой странице приводятся примеры настройки для разных методов DRM.
После сохранения настроек Flussonic будет шифровать контент для всех протоколов, которые могут работать с указанным методом шифрования.
Внимание! Необходимо отключить все протоколы, которые несовместимы с выбранным DRM.
Если указанный метод шифрования поддерживается в протоколе HLS, но у вас остался работающим протокол HDS, то пользователь сможет без проблем проиграть видео по HDS без шифрования.
Чтобы этого не произошло, надо отключить все лишние протоколы для нужного потока или зоны файлов:
stream channel0 { rtsp off; rtmp off; hds off; mpegts off; dash off; } file vod { rtsp off; rtmp off; hds off; mpegts off; dash off; }
Теперь доступ к контенту доступен только по протоколу HLS.
DRM для файлов и потоков
В случае с файлами, внешний сервер ключей не может явно указывать ключ, потому что не знает, когда будет открыт на чтение файл.
Необходимо сконфигурировать файл на явное обращение к серверу ключей:
file drm { path priv; hds off; rtmp off; rtsp off; dash off; drm aes128 keyserver=http://192.168.0.80:4500/; }
При такой конфигурации Flussonic будет делать HTTP GET запросы к серверу ключей с параметром ?name=:
http://192.168.0.80:4500/?name=drm/bunny.mp4&number=1
В ответ Flussonic ожидает ответ, в котором первые 32 байта будут HEX представлением ключа, используемого для шифрования.
Также в этом ответе ожидается заголовок X-Key-Url
, который будет сообщен клиенту.
Поэтому X-Key-Url
клиент будет ожидать 16-байтный ключ (не в HEX виде) для дешифровки.
Conax DRM
Пример конфигурации, строка drm
:
drm conax keyserver=https://uSeR:Passw0rd@cas-gateway:12346;
Подробнее смотрите на странице DRM Conax.
BuyDRM (KeyOS)
Пример конфигурации, строка drm
:
drm keyos userkey=596f7572-2075-7365-725f-6b6579202020;
Подробнее смотрите на странице BuyDRM (KeyOS).
Защита DVR архива с помощью DRM
Архив шифруется посегментно одним ключом, и каждые 10 минут Flussonic запрашивает новый ключ для следующей группы сегментов.
Внимание! Чтобы DRM защита DVR архива работала, сервер ключей должен хранить старые ключи (по старым URL) не менее по времени, чем глубина архива.