Сбер вакансии Backend
Сбер вакансии Backend
Сбер вакансии Backend
Написать пост

Как обеспечить авторизованный доступ к видеоконтенту

Отредактировано

В статье поговорим с экспертом о том, как и какие технологические решения помогают реализовывать авторизованный доступ к контенту.

4К открытий4К показов

В период тотального коронавирусного локдауна потребление онлайн-видео достигло пика. И сейчас этот тренд только набирает обороты. Так, по данным Emarketer, в сравнении с 2020 годом средний объём просматриваемого видеоконтента в США вырос с 133 до 140 минут. А к концу 2022 года прогнозируется более 145 минут в день. При этом стремительно растёт потребление контента по подписке. Чуть менее трети (30,8%) всех доходов от подписок на видеосервисы в США приходится на Netflix, более четверти (25,9%) на Disney и 13,2% на YouTube Premium.

Чтобы разрабатывать качественные видеосервисы, за подписку на которые зрители будут готовы платить, необходимо не только предложить непревзойдённый пользовательский опыт, но и обеспечить одновременно комфортную и безопасную дистрибуцию видео. В статье поговорим о последнем — как и какие IT-решения помогают реализовывать авторизованный доступ к видеоконтенту.

Несанкционированный доступ к контенту

Существует несколько вариантов получения доступа к закрытому контенту. Самые популярные способы можно поделить на две категории.

Первая: на уровне авторизации

  • Через передачу данных учётной записи третьим лицам. К ним относим родственников, друзей, коллег и аудиторию публичных сообществ и форумов.
  • Продажа или лизинг, когда пользователи перепродают или временно предоставляют доступ к своему аккаунту.
  • Утечки и кража данных учётных записей.

Вторая: на уровне доставки контента

  • Несанкционированная загрузка видео: по прямой ссылке из кода страницы или консоли инструментов разработчика; с помощью плагинов браузера для скачивания с видеохостингов; через использование отдельного софта (например, VLC или FFmpeg);
  • Скринкаст с помощью как программных, так и аппаратных средств.

Если на уровне авторизации более-менее понятно, как обеспечить защиту (например, через блокировку двух и более одновременных сессий от одного пользователя, использование технологии единого входа (SSO), мониторинг подозрительной активности), то со вторым вариантом могут возникнуть проблемы. Остановимся подробнее собственно на защите контента.

Эволюция защиты контента

Массовое распространение видео по запросу (VoD) началось задолго до того, как браузеры могли проигрывать видеопотоки в защищённом виде. Первыми, кто дал доступ к контенту и столкнулся с его защитой, стали кабельные сети. Для них были созданы механизмы защиты, за 30 лет продемонстрировавшие определённую степень надежности.

На тот момент основной проблемой было то, что люди могли свободно подключаться к кабельным сетям и получать доступ к контенту, который изначально был для них закрыт или доступен только по подписке. В качестве решения были выпущены ТВ-приставки со специальными картами. Они идентифицировали пользователя и декодировали зашифрованный сигнал.

Как обеспечить авторизованный доступ к видеоконтенту 1
Карта декодирования в ТВ-приставке

В Интернете необходимость защиты контента также появилась не сразу. Первое время в сети размещался только бесплатный видеоконтент. А крупные правообладатели его не загружали, опасаясь отсутствия надёжных систем защиты. Уже с развитием платного видеостриминга площадки организовывать доступ к нему своими силами.

Сегодня практически любой сервис, предоставляющий доступ к контенту, использует CDN (Content Delivery Network). Это географически распределенная инфраструктура, которая обеспечивает быструю доставку контента пользователям веб-сервисов и сайтов.

Сервера, входящие в состав CDN, располагаются так, чтобы сделать время ответа для пользователей сервиса минимальным. При этом чаще всего это стороннее решение, и нередко используется сразу несколько провайдеров (Multi-CDN). В этом случае к контенту, размещённому на узлах провайдера, имеет доступ любой человек со ссылкой. Здесь и возникает необходимость разграничения прав доступа к контенту в распределённой и слабо связанной системе, которая, более того, открыта для всех в Интернете.

Одним из известных решений для защиты потокового видеоконтента стало шифрование протокола HLS (HTTP Live Streaming). Apple назвали его HLS AES и предложили для безопасной передачи медиафайлов по HTTP. Несмотря на шифрование сегментов видео по стандарту AES-128, сами ключи передавались в открытом виде, что позволяло перехватить их. Защиту этих ключей нужно было делать в любом случае (защищённый HTTPS-канал тогда ещё не был распространён). Поэтому каждый реализовал систему доступа по-своему.

В ландшафте технологий защиты мультимедийного контента от копирования прочно заняли позиции три основных технологии DRM (Digital Rights Management): PlayReady от Microsoft, Widevine от Google и Fairplay от Apple.

Сегодня широко используются два стриминговых протокола. Это HLS, представленный Apple в 2009 году, и более современный MPEG-DASH (Dynamic Adaptive Streaming over HTTP), который стал первым решением потоковой передачи видео с адаптивным битрейтом, получившим статус международного стандарта.

Сосуществование двух протоколов и возросшая потребность проигрывания онлайн-видео в браузерах подтолкнули к унификации системы защиты контента. Поэтому в сентябре 2017 года Консорциум Всемирной паутины (W3C) утвердил Encrypted Media Extensions (EME) — спецификацию о взаимодействии браузеров и модулей расшифровки контента, в основу которой легли пятилетние разработки Netflix, Google, Apple и Microsoft.

Как обеспечить авторизованный доступ к видеоконтенту 2
EME предоставляет плееру стандартизированный набор API для взаимодействия с CDM. Источник: OTTVerse

По своей сути, EME — это расширение для работы в браузерах с медиа, которое предоставляет API для работы с модулем шифрования. И оставляет при этом свободу в реализации серверной части и минимизирует риск несовместимости. То есть можно использовать как проприетарные DRM (Playready, Widevine, Fairplay), так и Open Source DRM или собственное решение.

Однако есть и противники шифрования контента и проприетарных DRM-систем. Так организация Free Software Foundation даже объявила 6 мая днём противостояния технологиям DRM, считая, что компании с помощью них покушаются на личную свободу пользователей. Стандартным браузерам есть альтернативы: например, EME-Free сборка от Firefox. В ней нет плагина Widevine, который Firefox использует в своих обычных версиях, поэтому файлы, защищённые от копирования, не будут воспроизводиться.

Существуют и варианты DRM-решений, которые базируются на Open Source. К примеру, в Китае реализуется спецификация системы ключей China DRM, которая предназначена для работы со схемой защиты ISO Common Encryption (CENC) и EME.

Полноценная DRM-система и три кита шифрования контента

Внедрение DRM и механизмов авторизации — наиболее надёжный способ защиты от несанкционированного доступа к видеоконтенту. При этом чтобы избежать проблем совместимости и минимизировать дыры, важно соблюдать три рекомендации.

1. Шифровать видеоконтент несколькими ключами

Как это работает? Исходный видеофайл делится на несколько небольших частей, каждая из которых шифруется отдельным ключом. Чтобы дешифровать контент, который можно свободно перехватить с CDN, недостаточно получить ключи. Устройство должно их запросить. При этом полученные ключи подходят не ко всем, а только к нескольким видеофайлам. С пользовательской стороны никаких изменений нет: плеер получает ключи дешифрования по мере того, как юзер просматривает видео.

Этого уже достаточно, чтобы видео нельзя было скачать наиболее очевидными для обычных пользователей способами, например, через VLC-плеер, FFmpeg или соответствующие расширения, которые встроены в браузер.

2. Получать ключи для дешифровки контента через сервер лицензий

Как минимум, все запросы к серверу лицензий должны идти по защищенному HTTPS-каналу для предотвращения MITM attack (перехвата ключей). Как максимум, в этом случае стоит использовать одноразовый пароль (OTP, One Time Password).

Выдавать ключи по запросу ID-контента или ID-ключа — плохая защита. Для разграничения доступа, как минимум, необходимо авторизовать пользователя на сайте — чтобы идентифицировать его по ID-сессии. В этом случае вместе с ID-контентом или ID-ключом также передаётся токен пользователя. Это может быть сессия или любой другой идентификатор, который позволит однозначно определить юзера. Сервер лицензий запрашивает информацию о том, есть ли доступ к контенту для данного токена, и только в случае положительного ответа отдаёт ключи шифрования.

Обычно сервер лицензий обращается в ваш API и запоминает у себя в сессии результат ответа, чтобы снизить нагрузку на сервис.

3. Ограничивать время жизни ключей

Для этого используется non-persistent лицензия, которая действует только в рамках текущей сессии. Устройство пользователя запрашивает лицензию перед каждым воспроизведением или по мере воспроизведения видео.

При использовании persistent-ключей пользователь получает доступ к контенту даже тогда, когда его уже отозвали (за исключением видео, которые доступны оффлайн).

Как обеспечить авторизованный доступ к видеоконтенту 3
Схема работы DRM=системы. Источник: OTTVerse

Другие способы защиты контента

Защита видеоконтента не ограничивается только шифрованием и внедрением DRM-системы. К ним можно добавить ещё несколько способов.

  • Наложение динамических водяных знаков оверлеем в плеере или при транскодировании видео. Это может быть логотип компании, или ID пользователя, по которому можно его идентифицировать. Сама по себе технология не способна предотвратить утечку видеоконтента, а скорее носит психологический характер.
  • DNA coding, когда видео кодируется в 4-5 разных вариантах и для каждого пользователя формируется своя последовательность вариантов. Этот процесс можно разделить на две части. В начале цепочка видео генерируется через встраивание символов в каждый кадр исходного несжатого контента. Кадры кодируются и отправляются на хранение на сервер. Далее пользователь запрашивает защищенный контент у поставщика, который связывает с клиентом цифровой отпечаток. Он может быть создан в реальном времени или его можно взять из базы данных, которая содержит строку символов, относящуюся к цепочкам видео. Эти символы используются для создания видео с водяными знаками путем переключения между группами изображений из цепочек видео.
Как обеспечить авторизованный доступ к видеоконтенту 4

Подводя итог

Вышеперечисленные способы защиты не могут дать 100% гарантии от несанкционированного доступа и распространения видеоконтента. Однако комплексное внедрение инструментов защиты данных, включая шифрование, поможет организовать безопасный авторизованный доступ к видео. И содействовать защите авторского права.

Технологии защиты становятся совершеннее, не создавая дополнительных помех пользователю, и упрощают жизнь разработчикам. Так что делая ставку на удобство продукта, доступность и высокое качество контента, со временем можно рассчитывать, что подписка станет реальной альтернативой открытым источникам.

Следите за новыми постами
Следите за новыми постами по любимым темам
4К открытий4К показов