Средства защиты потокового вещания в Wowza Streaming Engine

2018-08-03 14:21:00

Медиасервер Wowza Streaming Engine позволяет не только организовать трансляцию live потока и VOD контента на плееры абонентов, но и позволяет защитить передаваемый поток от несанкционированного просмотра и перехвата. Так как доступ к медиаконтенту осуществляется по ссылке на ресурс под управлением Wowza Streaming Engine, простое копирование данной ссылки, как минимум, не должно приводить к просмотру любым желающим. Wowza предоставляет несколько способов защиты контента.

Самый простой метод защиты контента доступный в Wowza Streaming Engine - это модуль referer validate . Хотя он и не является частью Wowza Streaming Engine по умолчанию, его можно скачать бесплатно и достаточно просто сконфигурировать. Суть защиты этим методом сводится к проверке домена из заголовка HTTP запроса - referer со списком разрешенных доменов прописанном на стороне Wowza. Соответственно, если проверка не прошла , поток в плеере проигрываться не будет. Метод применим, прежде всего, при просмотре потока на веб странице, но во многих случаях может использоваться с мобильными устройствами и приставками. Главное что бы перед запросом на просмотр потока плеером код HTML страницы или приложения выполнял дополнительный HTTP запрос к Wowza , в котором направляется referer и имя потока. Если сверка домена из referer прошла , то Wowza запоминает IP источника запроса и разрешает просмотр потока с заданным именем , с данного IP адреса - поток проигрывается в плеере. Разрешение действует в течение определенного периода времени. Метод плохо работает с NAT адресами , да и referer легко компрометируется . Надежность защиты таким методом низкая.

Следующий по надежности метод - это защита сессионным ключом, так называемый SecureToken. Метод является частью функциональности Wowza и вся настройка ( со стороны Wowza ) может быть осуществлена через веб интерфейс управления Wowza Streaming Engine. Суть метода заключается в добавлении в запрос на просмотр потока строки параметров ( токен ) , которые проверяются на стороне Wowza . Токен формируется скриптом веб сервера ( портала, middleware ) и состоит из набора параметров , а также хеш строки. Хэш формируется с использованием ключа безопасности заданного на стороне веб сервера и в настройках Wowza. Тем самым формирование токена, обеспечивающего возможность просмотра потока , сторонними средствами становится крайне сложной задачей. Период валидности токена так же настраивается. Но в тоже время , если не включать IP адрес источника запроса в параметры формирования токена , ссылка на просмотр поток может быть скопирована вместе с токеном. После добавления IP в параметры формирования токена копирование ссылки будет невозможно , но возникают некоторые сложности с NAT адресами. Аутентификации пользователя на стороне Wowza как таковой не происходит. Логика разрешения просмотра того или иного потока должна быть реализована на стороне веб сервера. SecureToken обеспечивает базовый метод защиты от несанкционированного просмотра.

Наиболее надежным методом защиты контента является использование DRM системы. При этом нужно понимать, что DRM не является составной частью Wowza и не поставляется в виде отдельного модуля. В Wowza Streaming Engine включен компонент Wowza DRM, который позволяет использовать Wowza со сторонними DRM системами, но Wowza DRM не является самостоятельной системой проверки и разграничения прав пользователей. Действительно надежную защиту могут обеспечить только те системы, где проверка ключей доступа встроена в клиентское устройство на уровне операционной системы, реализована в браузере или в плеере. На рынке представлено несколько таких систем, но наибольшее распространение получили решения от лидеров IT индустрии : Google Widevine, Apple FairPlay и Microsoft PlayReady , что и не удивительно. Данные системы защиты контента сертифицированы студиями производителей видеопродукции и их применение , фактически, является обязательным требованием для приобретения прав на показ контента. Wowza DRM включает в себя API , при помощи которого можно создать собственный модуль работы с вышеобозначенными системами напрямую. Но дело это достаточно сложное как и в технической части , так и в организационной. Тем более что использовать только одну из систем не получится. Widevine в общем случае не работает на устройствах Apple, FairPlay не поддерживается нигде кроме устройств Apple, в браузерах Microsoft используется PlayReady. Выходом из ситуации является использование услуг провайдера DRM ( или MultiDRM ) , который обеспечивает поддержку всех системы в рамках своей технической платформы , а конечному пользователю предлагается уже единая точка взаимодействия систем. Помимо API для разработки собственного решения интеграции Wowza DRM включает в себя уже готовые компоненты для работы с такими провайдерами DRM как BuyDRM , EZDRM, castLabs DRMtoday и Verimatrix. С технической точки зрения все DRM системы организованы одинаково. Весь трафик шифруется согласно криптографическим алгоритмам AES , а ключи шифрования создаются , проверяются и периодически обновляются на сервер обмена ключей. Сервер обмена ключей обычно представляет из себя облачный сервис провайдера DRM. Услуги любого DRM провайдера , конечно, платные. И не самые дешевые. Как альтернативный вариант можно рассмотреть разработку собственного компонента обмена ключей и использование его с Wowza DRM для защиты контента. Степень защищенности будет меньше, но в тоже время можно создать полноценную систему проверки и разграничения прав доступа к контенту, не зависящую от сторонних поставщиков услуг. Шифрование трафика будет осуществляться при помощи все того же алгоритма AES.