Средства защиты потокового вещания в 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.