Encrypted Media Extensions
Encrypted Media Extensions (EME) — это спецификация, разработанная Консорциумом Всемирной паутины (W3C) и реализованная в веб-браузерах, которая предоставляет стандартизированный интерфейс для воспроизведения защищённого авторским правом медиаконтента (аудио и видео) в HTML5 без использования сторонних плагинов, таких как Adobe Flash или Microsoft Silverlight. EME не является системой шифрования или управления цифровыми правами (DRM) сама по себе, а служит связующим звеном между браузером и модулями дешифрования контента (Content Decryption Module, CDM), которые реализуют конкретные DRM-схемы.
История
До появления EME веб-браузеры не имели встроенной поддержки защищённого видеоконтента, что вынуждало сервисы потокового вещания (например, Netflix, Hulu) использовать устаревшие технологии, такие как Adobe Flash или Microsoft Silverlight, которые требовали установки дополнительных плагинов. Эти решения были не только неудобны для пользователей, но и создавали уязвимости в безопасности.
В 2012 году W3C начал работу над стандартизацией API для воспроизведения защищённого контента в HTML5. Первоначальный проект EME был предложен компанией Google в 2013 году. Разработка встретила сопротивление со стороны правозащитных организаций, таких как Electronic Frontier Foundation (EFF), которые утверждали, что EME нарушает принципы открытости и безопасности веб-стандартов.
Несмотря на критику, в сентябре 2017 года W3C утвердил EME в качестве официального веб-стандарта. В 2020 году спецификация была обновлена до версии 2.0, добавившей поддержку новых типов ключей и улучшенную обработку ошибок.
Архитектура и принцип работы
EME работает как посредник между веб-приложением (например, плеером на сайте) и CDM, который является программным или аппаратным модулем, отвечающим за дешифрование контента. Основные компоненты архитектуры:
- HTMLMediaElement — стандартный HTML-элемент
<video>или<audio>, который воспроизводит медиапоток. - MediaKeys — объект, представляющий набор ключей для дешифрования.
- MediaKeySession — сессия, управляющая обменом сообщениями между браузером и сервером лицензий.
- Content Decryption Module (CDM) — модуль, реализующий конкретную DRM-схему (например, Widevine, PlayReady, FairPlay).
Процесс воспроизведения защищённого контента с использованием EME включает следующие шаги:
- Инициализация: Веб-приложение создаёт объект
MediaKeysдля выбранного CDM (например,"com.widevine.alpha"для Widevine). - Прикрепление: Объект
MediaKeysпривязывается к HTMLMediaElement. - Запрос лицензии: При загрузке зашифрованного медиафайла браузер генерирует запрос на получение лицензии (ключа) от сервера лицензий.
- Получение лицензии: Веб-приложение отправляет запрос на сервер лицензий, который возвращает ключ в зашифрованном виде.
- Дешифрование: CDM дешифрует контент в реальном времени, используя полученный ключ.
- Воспроизведение: Дешифрованный медиапоток передаётся на HTMLMediaElement для воспроизведения.
Поддерживаемые DRM-системы
EME не определяет конкретную DRM-систему, а предоставляет интерфейс для их взаимодействия с браузером. Наиболее распространённые CDM:
- Widevine (Google) — используется в Chrome, Firefox, Opera, Android. Поддерживает три уровня безопасности: L1 (аппаратное дешифрование), L2 (программное дешифрование с защитой ключа), L3 (программное дешифрование без защиты).
- PlayReady (Microsoft) — используется в Internet Explorer, Edge, Windows 10/11. Поддерживает аппаратное и программное дешифрование.
- FairPlay (Apple) — используется в Safari на macOS и iOS. Работает исключительно с аппаратным дешифрованием.
- Adobe Access (Adobe) — устаревшая система, редко используемая в EME.
Выбор CDM зависит от браузера и операционной системы. Например, Chrome на Windows может поддерживать Widevine и PlayReady, а Safari — только FairPlay.
Критика и противоречия
EME является одним из самых спорных веб-стандартов. Основные претензии:
- Нарушение открытости: EME требует использования проприетарных CDM, которые не могут быть проверены на наличие уязвимостей или вредоносного кода. Это противоречит принципам открытого веба.
- Безопасность: CDM часто реализуются в виде закрытых двоичных модулей, что создаёт риски для безопасности пользователей. Например, в 2019 году была обнаружена уязвимость в Widevine L3, позволявшая извлекать ключи дешифрования.
- Цензура и контроль: EME может использоваться для ограничения доступа к контенту в определённых регионах или для блокировки неавторизованного копирования, что критикуется правозащитными организациями.
- Сложность реализации: Разработчикам веб-приложений приходится поддерживать несколько DRM-систем, что увеличивает сложность и стоимость разработки.
В 2017 году EFF подала жалобу в Федеральную торговую комиссию США, утверждая, что EME нарушает антимонопольное законодательство. Однако жалоба была отклонена.
Применение
EME широко используется в следующих областях:
- Потоковое видео: Сервисы Netflix, Amazon Prime Video, Disney+, YouTube (для платного контента) и другие используют EME для защиты видеоконтента от несанкционированного копирования.
- Аудиоконтент: Платформы, такие как Spotify и Apple Music, применяют EME для защиты аудиофайлов.
- Образовательные платформы: Системы дистанционного обучения, такие как Coursera и Udemy, используют EME для защиты видеоуроков.
- Игровые сервисы: Некоторые облачные игровые платформы, например, GeForce Now, применяют EME для защиты видеопотока.
Альтернативы
Существуют альтернативные подходы к защите контента в вебе:
- HTTP Live Streaming (HLS) с AES-128: Использует простое шифрование без DRM, но не защищает от копирования ключа.
- Common Encryption (CENC): Стандарт ISO для шифрования медиафайлов, который может использоваться с EME.
- Clear Key: Простая система шифрования, не требующая CDM, но не обеспечивающая высокую защиту.
Реализация в браузерах
Поддержка EME зависит от браузера и платформы:
- Google Chrome: Поддерживает Widevine (L1/L3) на Windows, macOS, Linux, Android. На Windows также поддерживает PlayReady.
- Mozilla Firefox: Поддерживает Widevine (L3) на Windows, macOS, Linux. На Android — Widevine (L1/L3).
- Microsoft Edge: Поддерживает PlayReady и Widevine на Windows. На macOS — Widevine.
- Apple Safari: Поддерживает FairPlay на macOS и iOS.
- Opera: Поддерживает Widevine (L3) на Windows, macOS, Linux.
Интересные факты
- EME является единственным веб-стандартом W3C, который получил официальное возражение от Electronic Frontier Foundation (EFF) и других правозащитных организаций.
- В 2018 году компания Netflix выпустила открытый инструмент для тестирования EME, который позволяет разработчикам проверять совместимость своих плееров.
- Некоторые браузеры, такие как Tor Browser, отключают EME по умолчанию из соображений безопасности.
Источники
- W3C. «Encrypted Media Extensions (EME) Specification». W3C Recommendation, 2017.
- Electronic Frontier Foundation. «EME: A Web Standard That Breaks the Web». EFF, 2017.
- Google. «Widevine DRM Overview». Google Developers, 2020.
- Microsoft. «PlayReady DRM for Web». Microsoft Docs, 2021.
- Apple. «FairPlay Streaming Overview». Apple Developer Documentation, 2022.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →