Технический обзор eCDN Майкрософт
Введение
Microsoft eCDN управляет одноранговой сетью CDN на основе WebRTC (P2P), которая предоставляет видеопотоки HLS и MPEG-DASH. Для работы решения не требуется дополнительного программного или клиентского подключаемого модуля или оборудования. Все, что вам нужно, — это совместимый с HTML5 веб-браузер или классическое приложение Teams.
Microsoft eCDN решает проблему перегрузки сети, которая возникает во время крупных потоковых событий, таких как собрания всех рук. Если каждый сотрудник пытается watch один и тот же поток одновременно, ссылка на офисного провайдера становится насыщенной. Однако при развертывании eCDN Майкрософт во время этих крупных потоковых событий формируется эффективная сеть сетки P2P, что значительно снижает нагрузку на канал ISP.
100 % основанная на стандартах служба SaaS также означает следующее:
Время, необходимое для тестирования и развертывания eCDN Майкрософт, составляет всего несколько дней.
Microsoft eCDN по своей сути является безопасным, так как оно соответствует всем стандартам безопасности Microsoft O365 и состоит из кода JavaScript, который выполняется в ограниченной изолированной среде стандартных веб-браузеров или клиента потоковой платформы.
Общие сведения о системе
Microsoft eCDN работает как служба, которая управляет одноранговых узлов, предоставляя аналитику и контроль. Система предназначена для обеспечения совместимости с существующими отраслевыми стандартами и технологиями. Это означает, что он предназначен для работы с:
Протоколы потоковой передачи на основе HTTP, такие как HLS и MPEG-DASH.
Видеопроигрыватели на основе HTML5 (JWPlayer, Video.js, Clappr, Kaltura и т. д.) и любой собственный проигрыватель Android или iOS (ExoPlayer, AVPlayer и т. д.)
Сети CDN на основе HTTP: Akamai, Fastly, CloudFront, Cloudflare, Azure CDN и т. д.
Серверы потоковой передачи: Wowza, Nimble, nginx rtmp module и т. д.
Технологии DRM: Widevine, PlayReady, FairPlay и т. д.
Чтобы обеспечить полную совместимость с существующими технологиями и инфраструктурой, модель доставки содержимого, используемая Корпорацией Майкрософт eCDN, является гибридной. То есть каждое средство просмотра может одновременно скачивать ресурсы как из сети P2P, так и из сети HTTP.
На высоком уровне система eCDN состоит из:
Служба обнаружения пиринга. Отвечает за обнаружение одноранговых узлов.
Switchboard: отвечает за создание начальных P2P-подключений между зрителями.
Конвейер данных. Использует все данные телеметрии службы и сохраняет их в хранилище данных для использования аналитики.
Подключаемый модуль проигрывателя. Отвечает за перехват и пересылку запросов, связанных с видео, в клиентский пакет SDK.
Клиентский пакет SDK. Отвечает за интеллектуальный запрос видеоресурсов из HTTP/P2P и сшивание буферов данных в режиме реального времени.
Клиентский пакет SDK подключается к серверной части (служба обнаружения пиринга, коммутатор, конвейер данных).
Служба обнаружения отправляет пакету SDK клиента набор одноранговых узлов, которые, по ее мнению, будут полезны для этого конкретного средства просмотра. Одноранговые узлы выбираются на основе близкого расположения сети, выделения кэша, релевантности потока и других параметров.
Клиентский пакет SDK устанавливает подключения к каналу данных WebRTC с указанным набором одноранговых узлов с помощью switchboard.
HTTP-запросы, созданные видеопроигрывателем, перехватываются подключаемым модулем проигрывателя и перенаправляются в пакет SDK клиента eCDN Майкрософт, который на основе измерений в режиме реального времени решает, следует ли получить нужный ресурс из сети P2P, из HTTP или из обоих одновременно, чтобы предоставить этот ресурс проигрывателю наиболее эффективно и своевременно.
Запросы манифеста, лицензия DRM и шифрование всегда извлекаются с пограничного http-сервера, чтобы получить самую актуальную копию и соответствовать механизмам авторизации.
Независимо от того, клиентский пакет SDK запрашивает авторизацию для создания одноранговых подключений из серверной части Microsoft eCDN. После авторизации клиентский пакет SDK начинает скачивать ресурсы из HTTP и P2P.
Общие сведения о логике клиента
Клиентский пакет SDK получает содержимое одновременно из источников HTTP и P2P. Это означает, что на взаимодействие с пользователем не будут негативно влиять сегменты, которые не были своевременно возвращены, или из-за недостаточной скорости подключения источника P2P.
Безопасность
Microsoft eCDN соответствует стандартам безопасности Microsoft O365.
Эта служба так же безопасна, как и любая традиционная служба CDN на основе сервера. Так как это гибридное решение, использующее eCDN в сочетании с традиционным HTTP-сервером, мы используем имеющуюся у клиента инфраструктуру безопасности (маркеры, ключи, файлы cookie и т. д.).
Что касается обмена данными, одноранговые узлы соединены друг с другом через канал данных WebRTC, который представляет собой безопасный канал, использующий протокол SCTP через шифрование DTLS. Кроме того, каждое средство просмотра подключается к серверной части через безопасное подключение Websocket, использующее шифрование TLS. Таким образом, ни данные, отправляемые между средствами просмотра, ни метаданные, отправляемые между каждым средством просмотра и серверной частью, не могут быть скомпрометированы.
С точки зрения безопасности потоков существует несколько сценариев:
Проверка подлинности при запуске сеанса
В этом случае каждый сеанс начинается с того, что сервер запрашивает у средства просмотра идентификатор пользователя и пароль. Если эти учетные данные действительны, сервер отправит файл манифеста средству просмотра, а видеопроигрыватель начнет запрашивать сегменты и дополнительные манифесты с HTTP-сервера соответствующим образом. Microsoft eCDN не вставляется в процесс проверки, и средство просмотра должно пройти через одни и те же шлюзы проверки подлинности независимо от того, развернуто ли eCDN Майкрософт. Только зрители, авторизованные для потока, могут участвовать в совместном доступе P2P для этого потока и предоставлять общий доступ только во время реального просмотра потока.
Токенизация с повременным URL-адресом
В этом случае URL-адрес манифеста содержит дополнительный маркер, который кодирует несколько сведений об агенте пользователя средства просмотра (IP-адрес, срок действия и т. д.). Злоумышленник, который каким-либо образом получает URL-адрес манифеста либо путем входа в систему, либо другим способом, может распространить его среди несанкционированных пользователей, но эти пользователи не смогут получить доступ к потоку, так как URL-адрес манифеста токенизирован, а HTTP-сервер отклонит любые попытки проверки из-за несоответствия IP-адреса или другого агента пользователя или из-за истечения времени. При использовании eCDN Майкрософт все запросы манифеста отправляются непосредственно на HTTP-сервер, поэтому проверка не может быть скомпрометирована.
Защита содержимого сегмента видео
Неавторизованные пользователи, получающие доступ к URL-адресам потока, могут по-прежнему пытаться получить доступ к содержимому сегментов видео через другие одноранговые узлы. Если сегменты не зашифрованы, существует следующий риск: несанкционированный пользователь может получить URL-адрес сегмента от другого пользователя, найти другие одноранговые узлы с соответствующим ресурсом и попытаться запросить этот ресурс непосредственно у этих пользователей (даже если сервер мультимедиа или CDN не разрешают доступ к этому ресурсу).
Если включена маркеризация содержимого, убедитесь, что пользователь прошел проверку подлинности на уровне ресурсов, прежде чем другие одноранговые узлы смогут отправлять данные этому пользователю. Это детализированный механизм, который может предоставлять доступ к определенным ресурсам и отклонять доступ к другим ресурсам в том же сеансе.
Дополнительные меры защиты включают шифрование:
Шифрование
Рассмотрим, например, поток HLS, защищенный с помощью шифрования AES-128. Злоумышленники могут отправить URL-адрес манифеста несанкционированным пользователям или даже самим сегментам видео, но до тех пор, пока неавторизованные пользователи не имеют доступа к ключу расшифровки, они не смогут watch поток. Ключ можно отправить конечному пользователю различными способами, например с помощью манифеста main, HTML-страницы или другого пути. Независимо от того, служба не вставляет себя в этот процесс, и ключ доставляется в видеопроигрыватель с помощью того же механизма независимо от того, развернута служба или нет. Это означает, что ключ так же защищен с eCDN Майкрософт или без нее.
DRM
Вариант использования DRM похож на вариант использования шифрования. Единственное отличие заключается в том, что лицензия и ключи распространяются механизмом DRM, а не вещателем. Здесь также eCDN Майкрософт не мешает распространению лицензии или ключей и, следовательно, не компрометируют их.