Widevine: L1, L2, L3 – что они значат на самом деле

Автор: Николай СапуновОбновлено: август 202626 мин чтения
Содержание статьи +

TL;DR

Widevine – это система управления цифровыми правами от Google, встроенная в каждый браузер на движке Chromium и почти в каждое Android-устройство. У неё три уровня безопасности – L1, L2 и L3, – и именно уровень, который сообщает устройство, определяет, какие разрешения видео с платным стримингом оно может получить. L1 хранит ключи расшифровки, ключ контента и декодированный кадр внутри Trusted Execution Environment – изолированного аппаратного «защитного отсека» процессора – и требуется для 1080p и 4K от крупных студий; L3 запускает весь конвейер в обычной программной памяти, и именно его выдаёт каждый десктопный Chrome, ограничивая разрешение 480p или 720p; L2 – редкий промежуточный случай, когда ключи хранятся в железе, а пиксели декодируются программно. Уровень не выбирается плеером или сайтом – он закладывается в устройство на заводе в ходе сертификации Widevine, проверяется через Android-API MediaDrm или через строку robustness в EME-запросе на лицензию и применяется лицензионным сервером ещё до выдачи ключа контента. В 2026 году картина простая: Android-смартфон с L1, Smart TV с L1 или Apple TV с FairPlay получают 4K; Linux-машина, десктопный Chrome и Firefox – 480p–720p; всё остальное находится где-то посередине, и задача вашего OTT-продукта – определить уровень до того, как вы обещаете разрешение, которое не сможете предоставить.

Зачем это знать

Если вы продаёте платное видео, уровень Widevine, определяемый устройством зрителя, – это ключевое поле, которое подтверждает или опровергает ваше маркетинговое обещание о 4K. Продакт-менеджер, дочитавший статью, уйдёт с пониманием, почему Chrome на MacBook показывает Netflix в 540p, а тот же Netflix на iPad – в 1080p (разные DRM, разный уровень надёжности, разные требования студий). Инженер получит конкретный путь в коде, по которому запрашивается уровень, схему pssh и tenc, связывающую лимиты разрешения с уровнем безопасности (подробности – в статье Common Encryption (CENC) подробно), а также точные значения robustness, передаваемые в requestMediaKeySystemAccess. Основатель, оценивающий риски пиратства, уйдёт с обоснованным ответом на вопрос: «насколько L1 сложнее взломать, чем L3?» – кратко: в 2019 году исследователь взломал white-box-криптографию L3 за выходные на обычном ноутбуке (атака Бьюкенена через Differential Fault Analysis на white-box AES в L3); после выхода Widevine 5 в 2014 году публично не было зафиксировано ни одного взлома production-уровня L1.

Это вторая часть пары. Параллельная статья – DRM 101: почему три системы и почему вы ставите все три – объясняет, почему одной Widevine недостаточно; эта статья – почему на практике одна Widevine превращается в три.

Что вообще такое «уровень безопасности»

Прежде чем переходить к буквам и цифрам, зафиксируем суть. Уровень безопасности Widevine – это контракт между Google и производителем устройства о том, где именно в «железе» устройства происходят опасные операции: расшифровка ключа контента, расшифровка видеосэмплов и вывод декодированных кадров на экран.

Опасных операций три, и мест, где они могут произойти, тоже три:

  1. Разбор лицензии – когда устройство получает зашифрованную лицензию от лицензионного сервера, оно расшифровывает её и извлекает ключ контента.
  2. Расшифровка сэмпла – получив зашифрованный видеосэмпл (часть I-кадра, P-кадра или B-кадра), устройство расшифровывает его с помощью ключа контента.
  3. Декодированный кадр – после расшифровки декодер преобразует сэмпл в пиксели и отправляет их на дисплей.

Trusted Execution Environment, сокращённо TEE – это отдельный, изолированный режим работы процессора, недоступный для обычной операционной системы Android или Linux. Все три операции могут выполняться либо внутри TEE, либо в обычной памяти приложения – той же, в которой, например, ваш браузер отображает веб-страницу. Уровень Widevine – это краткая характеристика такой комбинации.

L1 – все три операции выполняются внутри TEE. Ключи никогда не попадают в обычную память CPU, зашифрованные сэмплы не попадают в обычную память, а декодированные кадры передаются напрямую из TEE в контроллер дисплея по защищённому видеоканалу. Операционная система не может получить доступ ни к ключам, ни к декодированным пикселям; запущенный поверх ОС инструмент для записи экрана отображает чёрный прямоугольник вместо видео.

L2 – разбор лицензии и расшифровка сэмпла происходят внутри TEE, но декодированные кадры возвращаются в обычную память приложения для софтового декодера. Ключи остаются в безопасности, а пиксели – нет. На практике L2 встречается редко: построить TEE дорого, а добавление к нему защищённого видеоканала (что и превращает L2 в L1) обходится относительно дёшево. На производственной картинке 2026 года фактически остаются только два уровня: L1 и L3.

L3 – никакого TEE. Все три операции выполняются в обычной памяти приложения. И ключи, и сэмплы, и декодированные кадры доступны операционной системе. Криптография остаётся настоящей – AES-128, RSA, те же примитивы, что и в L1, – но реализована программно и скрыта с помощью технологии под названием white-box cryptography, которая пытается сделать извлечение ключа невозможным при помощи статического анализа. White-box-криптографию уже дважды успешно взломали публично: Дэвид Бьюкенен в 2019 году с помощью атаки Differential Fault Analysis и Томер Хадад в 2020 году – через боковой канал в RSA. Ключи L3 для семейства CDM 4.10.х стали публично известными. Именно поэтому студии не разрешают использовать L3 для расшифровки 1080p.

Самое полезное предложение этой статьи – следующее. Уровень безопасности определяется устройством, а не контентом. Зашифрованный файл остаётся неизменным вне зависимости от того, на каком устройстве его воспроизводят; меняется лишь то, каким устройствам лицензионный сервер готов выдать ключ и какие разрешения конкретная лицензия в каждом случае активирует.

Рисунок 1. Граница доверия на уровнях L1, L2 и L3. TEE – пунктирный синий прямоугольник; «обычная память» – всё, что за его пределами.

Где какой уровень живёт в 2026 году

Это та самая таблица, которую любой продуктовой команде стоит распечатать и повесить над столом.

Класс устройстваТипичный уровень WidevineДопустимое разрешение по контракту
Современный Android-смартфон (Pixel 6+, S22+, Xiaomi 12+)L14K UHD
Старые Android-смартфоны (2016–2019)L1 или L3 (по-разному)1080p или 480p
Android TV / Google TV (2020+)L14K UHD
Fire TV Stick 4K (Gen 2+)L14K UHD
Chromecast with Google TVL14K UHD
ChromeOS-устройство (Chromebook 2020+)L11080p
Desktop Chrome / Edge на WindowsL3720p (Edge через PlayReady SL3000 – 1080p+)
Desktop Chrome / Edge на macOSL3720p (Safari через FairPlay – 4K)
Desktop Chrome на LinuxL3720p
Desktop Firefox (любая ОС)L3720p
Smart TV Tizen / webOS (приоритет PlayReady)n/a (PlayReady)4K через PlayReady SL3000

Источники – публикуемые вендорами матрицы устройств (Bitmovin, Widevine Security Levels in Depth, документация Bunny.net по Widevine) – сверены с реестром совместимости устройств в интеграционной консоли integration.widevine.com (новая консоль, заменившая partnerdash.google.com 17 декабря 2025 года).

Главный паттерн в этой таблице стоит запомнить. Любое устройство, созданное для использования в гостиной, имеет L1; любое устройство, предназначенное для общих вычислений, – L3. Этот разрыв – как раз тот инженерный рубеж между «я сделал устройство, чтобы крутить видео» и «я сделал устройство, чтобы делать что угодно». Chromecast, Roku, Samsung TV – это компактные закрытые встраиваемые компьютеры с проверенной цепочкой загрузки, измеренной прошивкой и аппаратным TEE на уровне чипа. MacBook с Chrome – это универсальный ноутбук, к которому отладчик можно подключить сотнями способов, и Google не может присвоить ему L1, не нарушая гарантии безопасности.

Самый частый вопрос про эту таблицу – «почему десктопный Chrome выдаёт только 720p?» – можно ответить одним абзацем. Десктопный Chrome запускает Widevine CDM как обычный процесс браузера в обычной пользовательской памяти. Ключи, которые он хранит, защищены лишь white-box-криптографией – то есть программной обфускацией. Студии знают, что ключи уровня L3 можно извлечь, и считают такую защиту слабой – поэтому не лицензируют контент выше 720p (а зачастую даже 540p или 480p). Тот же Chrome на Chromebook использует тот же код, но загружает ключи из TPM (Trusted Platform Module), а декодер работает в аппаратно изолированной среде – поэтому студии разрешают 1080p. Меняется не браузер – меняется «корпус».

Рисунок 2. Какой уровень Widevine даёт какое разрешение в production-внедрениях 2026 года.

Строка robustness: как EME запрашивает уровень

Когда веб-страница хочет воспроизвести защищённое видео в браузере, она вызывает одну функцию: navigator.requestMediaKeySystemAccess, определённую в спецификации W3C Encrypted Media Extensions (EME) (рекомендация, 2017; актуальный черновик – W3C EME 2). Вызов запрашивает у браузера, доступна ли ключевая система com.widevine.alpha, и – что важно – какой уровень robustness браузер может обеспечить.

У Widevine шесть уровней надёжности. Их полезно прочитать вслух – это первый урок по работе с DRM:

  • SW_SECURE_CRYPTO – программные ключи, программное декодирование. Widevine L3.
  • SW_SECURE_DECODE – программные ключи, программное декодирование. Widevine L3 (разница с SW_SECURE_CRYPTO историческая; сегодня оба варианта означают L3).
  • HW_SECURE_CRYPTO – аппаратные ключи, программное декодирование. Widevine L2.
  • HW_SECURE_DECODE – аппаратные ключи, аппаратное декодирование сжатых сэмплов. Widevine L1.
  • HW_SECURE_ALL – аппаратные ключи, аппаратное декодирование и защищённый видеоканал от декодированного кадра до дисплея. Widevine L1 в строгом профиле. Netflix требует это для 4K.
  • "" (пустая строка) – браузеру задан запрос «дай всё, что можешь». Большинство браузеров при пустом значении robustness автоматически переходят к SW_SECURE_CRYPTO (L3). Это самая распространённая ошибка в продакшене: сайт, забывший указать robustness, тихо получает 720p на устройстве, способном выдать 1080p.

Строка robustness попадает внутрь EME-запроса на лицензию, который CDM отправляет лицензионному серверу (или прокси лицензий вашего пакаджера). Сервер использует её как один из входных параметров для принятия решения: «Сертифицировано ли это устройство для указанного уровня robustness и допускает ли контент разблокировку при таком уровне?» Если оба условия выполняются, сервер выдаёт ключ контента с ограничением по максимальному разрешению, определяемому на основе robustness. Если хотя бы одно условие не выполняется, сервер возвращает лицензию, которая позволяет расшифровывать только нижние уровни разрешения.

Минимальный production-JavaScript для сервиса с разрешением 1080p и выше:

const config = [{
  initDataTypes: ['cenc'],
  videoCapabilities: [{
    contentType: 'video/mp4; codecs="avc1.640028"',
    robustness: 'HW_SECURE_ALL',
  }],
  audioCapabilities: [{
    contentType: 'audio/mp4; codecs="mp4a.40.2"',
    robustness: 'SW_SECURE_CRYPTO',
  }],
}];

navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
  .then(keySystemAccess => {
    // устройство сертифицировано для L1 HW_SECURE_ALL — 4K разрешён
  })
  .catch(err => {
    // упасть на менее строгий конфиг (HW_SECURE_DECODE, потом SW_SECURE_CRYPTO),
    // и согласно этому переписать набор доступных ступеней в манифесте
  });

Паттерн: сначала строгий, потом откат. Никогда не начинайте с самого мягкого конфига – иначе 1080p уйдёт L3-зрителю, а десктопный Chrome получит бесплатное повышение, на которое ваш контракт со студией не подписывался. Та же логика – для нативного Android, где уровень читается через MediaDrm.getPropertyString("securityLevel") и сразу возвращает одну из строк "L1", "L2", "L3" – никаких маппингов robustness не требуется.

Что находится внутри L1: TEE, защищённый видеоканал и HDCP

Фраза «все три операции происходят внутри TEE» скрывает за собой четыре компонента инфраструктуры, которые должны быть реализованы в чипе ещё до того, как это утверждение станет верным. Стоит разобрать каждый из них – каждый из четырёх представляет собой точку, где L1 может выйти из строя и незаметно откатиться до L3.

1. Проверенная загрузка (verified boot). При включении устройства небольшой фрагмент кода, встроенный в кремний (boot ROM – память, записанная на чипе на заводе и доступная только для чтения), проверяет подпись загрузчика перед его запуском. Загрузчик проверяет подпись ядра, ядро – подпись системного образа, а системный образ – подпись бинарника Widevine TEE. Если хотя бы одна подпись не совпадает, цепочка проверяется, и устройство отказывается загружать следующий этап. Ключи для проверки подписей хранятся совместно Google и производителем устройства. Без verified boot не бывает L1. Именно поэтому рутованные Android-устройства теряют уровень L1: для рутования требуется разблокировать загрузчик, а разблокированный загрузчик нарушает работу verified boot. В результате Widevine при следующей загрузке обнаруживает повреждённую цепочку и понижает уровень безопасности до L3. Подробное описание цепочки можно найти в документации Widevine на integration.widevine.com и в спецификации Android Verified Boot 2.0.

2. Сам TEE. На устройствах с архитектурой ARM (почти каждый Android-телефон и почти каждый Smart TV) TEE – это защищённый мир, реализованный с помощью ARM TrustZone и работающий параллельно с обычной операционной системой. У процессора два режима – «обычный мир» и «защищённый мир» – и сам чип гарантирует, что код из обычного мира не сможет получить доступ к памяти защищённого. Переход между режимами осуществляется с помощью одной инструкции – Secure Monitor Call (SMC), описанной в техническом справочнике ARM TrustZone. Когда модуль Widevine CDM из обычного мира запрашивает у защищённого мира расшифровку лицензии, он вызывает SMC и передаёт зашифрованную лицензию; защищённый мир возвращает хендл на ключ контента – но сам ключ никогда не передаётся. Ключ не пересекает границу. На устройствах с архитектурой x86 (Chromebook, некоторые Windows-устройства на ARM) аналогичными технологиями выступают Intel SGX или AMD SEV; принцип работы остаётся тем же.

3. Защищённый видеоканал. После расшифровки видеосэмпла внутри TEE декодированные YUV-пиксели передаются на дисплей по аппаратно изолированной шине, недоступной для прослушивания операционной системой. На Android используется защищённая поверхность GPU, на Apple TV – путь CoreMedia, доступный исключительно для FairPlay. ОС не получает доступа к пикселям: запись экрана отображает чёрный прямоугольник. Защищённый видеоканал – именно то, что отличает L1 от L2: у L2 есть TEE, но декодированные пиксели возвращаются в обычную память.

4. HDCP на выходе. Когда декодированный кадр покидает чип через HDMI-кабель, он снова шифруется с помощью технологии High-bandwidth Digital Content Protection (HDCP) и только после этого передаётся по кабелю. HDCP 2.2 требуется для воспроизведения 4K-видео у большинства крупных студий; HDCP 1.4 достаточно для 1080p. Приёмный телевизор расшифровывает кадр и отображает его. Если на HDMI-трассе находится устройство, не поддерживающее HDCP (например, дешёвый HDMI-устройство захвата или AV-ресивер без поддержки HDCP), аутентификация по HDCP не проходит, и источник снижает разрешение до 480p или вообще показывает чёрный экран. Именно поэтому фраза «подключил 4K-ресивер, а Netflix перешёл в SD» – типичный запрос в службу поддержки: ресивер поддерживает только HDCP 1.4.

Пятислойная архитектура – вот почему L1 так сложно атаковать: чтобы получить доступ к декодированным пикселям, злоумышленнику нужно обойти проверку подлинности загрузки, выйти из обычной операционной системы в защищённую среду, преодолеть изоляцию памяти TEE, перехватить защищённый видеоканал и обойти защиту HDCP – и всё это так, чтобы чип не обнаружил атаку и не аннулировал свои ключи. Каждый из этих слоёв – отдельный исследовательский проект. Общая поверхность атаки настолько мала, что с момента перехода Widevine с версии 4 на версию 5 (модульная архитектура DRM) в 2014 году не появилось ни одной публичной воспроизводимой атаки на L1.

Рисунок 3. Конвейер L1. Каждый блок на этой схеме – потенциальная цель для атакующего.

Почему L3 – дёшево, полезно и обречено на 720p

L3 – это уровень защиты Widevine, который остаётся, если убрать поддержку аппаратного чипа. Он работает везде, где функционирует обычный процессор: в любом Chrome на любом ноутбуке под любой операционной системой. CDM – это единая общая библиотека (на Windows – widevinecdm.dll; на macOS – .dylib внутри директории Frameworks Chrome), загружаемая в адресное пространство процесса браузера.

Защита основана на white-box cryptography: реализации AES и RSA внутри CDM устроены так, что ключи математически переплетены с таблицами поиска алгоритма. Идея в том, что реверс-инженер, анализирующий бинарник, не сможет указать на конкретные байты и сказать: «вот здесь ключи». Метод впервые был представлен в научной литературе Чоу и соавторами в 2002 году, и с тех пор каждые несколько лет появляются новые работы, описывающие его взлом. Наиболее значимый публичный прорыв – атака Дэвида Бьюкенена 2019 года с использованием Differential Fault Analysis (DFA), позволившая извлечь мастер-ключи L3 из десктопного Chrome CDM и опубликованная в виде инструмента widevine-l3-decryptor. Год спустя Томер Хадад продемонстрировал обновлённую атаку на актуальную версию CDM через побочный канал RSA. Оба исследователя сообщили о своих находках в Google; компания ротация ключей CDM и выпустила обновлённые сборки. Цикл продолжается.

Именно поэтому студии ограничивают L3 разрешением 720p (а зачастую – 540p или 480p). Конкретные значения зависят от условий контракта со студией: у Netflix самые строгие требования – он разрешает максимум 720p в L3, даже если браузер заявляет SW_SECURE_DECODE; Amazon Prime Video и Disney+ также ограничивают разрешение до 720p, но дополнительно снижают качество звука до стерео; более мелкие сервисы в рамках соглашений bring-your-own-license могут разрешать 1080p на уровне L3. Полезное обобщение: если пользователь смотрит в десктопной версии Chrome, не указывайте 1080p в манифесте, если контракт со студией не разрешает это, а лицензионный сервер не настроен выдавать ключи для 1080p в L3.

Отдельный абзац – про операционную реальность. Несмотря на то что L3 «сломан», практическая ценность пиратства L3-контента в 2026 году остаётся низкой. Пират, которому нужны HD-утечки в 1080p, предпочитает использовать HDMI-захват с аппаратного Smart TV (цифровой аналог «аналоговой дыры»), а не пытаться взломать white-box AES. Защита уровня L3 достаточна, чтобы отпугнуть случайный обмен: нетехнический пользователь не сможет скопировать поток из Chrome и передать его другу – и для 720p этого, как правило, вполне достаточно студиям.

Где живёт уровень: разговор с лицензионным сервером

Уровень безопасности зрителя определяется тремя участниками: устройством, лицензионным сервером и политикой владельца контента. Их взаимодействие краткое.

Шаг 1. Устройство загружается, бинарник Widevine TEE подключается, и Widevine запрашивает у защищённой области чипа его идентичность (сертификат устройства был выдан чипу на производстве сервером Widevine Provisioning Server, WVPS). CDM запоминает уровень сертификации чипа – L1, L2 или L3.

Шаг 2. Приложение вызывает requestMediaKeySystemAccess со строкой robustness (или, в нативной реализации Android, без строки – фреймворк MediaDrm сообщает уровень напрямую). Браузер сопоставляет значение robustness с запрашиваемым уровнем и проверяет, соответствует ли устройство этому уровню.

Шаг 3. Запускается воспроизведение. Плеер анализирует манифест (HLS или DASH), сталкивается с зашифрованным сегментом и запрашивает у CDM лицензию. CDM формирует запрос на лицензию, включающий: (a) идентификатор ключа контента (KID, из бокса tenc – см. нашу статью Common Encryption (CENC) подробно), (b) сертификат устройства и (c) требуемый уровень защиты (robustness). CDM подписывает запрос приватным ключом устройства и отправляет его на лицензионный сервер.

Шаг 4. Лицензионный сервер проверяет сертификат устройства (в том числе список отзыва), сверяет запрошенный уровень robustness с сертифицированным уровнем устройства и сопоставляет запрос с политикой контента – набором правил, привязанных к ключу контента в базе сервера. Политика контента определяет условия использования: «этот ключ может быть выдан L1-устройствам для 4K, L1-устройствам для 1080p с понижением разрешения, если отсутствует HDCP, и L3-устройствам с ограничением до 720p, но никому больше». Сервер выбирает максимально допустимый уровень robustness, который устройство может обеспечить и который разрешён политикой, формирует лицензию, шифрует её публичным ключом устройства и возвращает.

Шаг 5. CDM расшифровывает лицензию внутри TEE (L1) или в обычной памяти (L3), извлекает ключ контента и передаёт его декодеру. Воспроизведение начинается.

Самая частая ошибка любой команды на старте – считать, что «устройство L1» достаточно. Устройство L1 необходимо, но недостаточно. Лицензионный сервер должен быть настроен на выдачу L1-лицензий; политика контента должна разрешать запрашиваемое разрешение; манифест должен указывать правильный KID (один ключ на уровень разрешения – production-паттерн, см. блок «Типичные ошибки» ниже). Достаточно ошибиться в одном из трёх, чтобы то же самое L1-устройство, которое вчера показывало 4K, сегодня показало 480p.

Типичные ошибки (и как их поймать до выхода в продакшн)

«Ловушка: один ключ контента на все разрешения. Если зашифровать уровни 240p, 480p, 720p, 1080p и 4K одним и тем же KID, у лицензионного сервера остаётся только один выбор – выдать ключ или нет. То есть L3-устройство, успешно расшифровавшее 720p, автоматически сможет расшифровать и 1080p, и 4K – ведь один и тот же ключ подходит ко всем. Решение – один KID на каждый уровень разрешения: 240p–720p используют общий KID_A; 1080p – свой KID_B; 4K – свой KID_C. Тогда сервер выдаёт KID_A устройствам уровня L3, но при этом не выдаёт KID_B и KID_C. Такой подход – стандарт в production у всех крупных OTT-операторов; DASH-IF называет этот паттерн «multi-key per asset».»
«Ловушка: пустая строка robustness. Если веб-приложение забывает указать поле robustness в EME-конфигурации, браузер сам выбирает значение – а это почти всегда SW_SECURE_CRYPTO (L3). Смартфон уровня L1 у зрителя так и остаётся на L3, потому что сайт никогда не запросил более низкий уровень. Всегда задавайте robustness явно и реализуйте откат по уровням.»
«Ловушка: считать, что Android всегда показывает L1. Рутованные смартфоны, разблокированные загрузчики, кастомные ROM и поддельные прошивки незаметно понижают уровень безопасности устройства с L1 до L3. Единственный надёжный способ проверки – вызов MediaDrm.getPropertyString("securityLevel"); нельзя полагаться на разрешение в манифесте только потому, что версия ОС свежая. Бесплатное приложение DRM Info в Google Play предоставляет информацию пользователю; для тестирования – используйте Android API MediaDrm.»
«Ловушка: запросить HW_SECURE_ALL на Chromecast Audio. Промис requestMediaKeySystemAccess отклоняется, если устройство не может обеспечить запрошенный уровень защищённости. Запрос HW_SECURE_ALL на слабом Android TV (устройство может поддерживать L1 для видео, но не иметь защищённого видеоканала) отклоняется полностью, и плеер переходит в состояние «DRM недоступен», а не «L1 с понижением». Всегда при отказе пробуйте снова с более мягким уровнем защищённости, а не останавливайте воспроизведение.»

Где здесь Фора Софт

Мы строим и эксплуатируем Widevine-защищённое OTT-видео, видеоконференции и телемедицину в семи вертикалях, где поставляем продукты: стриминг, OTT/Internet TV, WebRTC, видеонаблюдение, e-learning, телемедицина, AR/VR – с момента запуска модульной архитектуры Widevine в 2014 году. Реальная работа, которая окупается, редко выглядит как «интегрировать Widevine»; это матрица QA по устройствам, подтверждающая, что и 1080p Smart TV в спальне клиента, и L3-десктопный Chrome на его ноутбуке ведут себя корректно; это перевод 14-страничного контракта со студией в 40 строк JSON-политики на лицензионном сервере; это production-уровневая система откатов robustness, которая не оставляет зрителя с чёрным экраном, если у него разблокирован загрузчик. Мы делаем эти вещи по умолчанию, а не как «доп».

Ключевые выводы

  • Уровень безопасности Widevine определяется чипом устройства, а не сайтом или плеером.
  • Уровень L1 хранит ключи, сэмплы и декодированные кадры внутри защищённой среды выполнения (Trusted Execution Environment) с защищённым видеоканалом; уровень L3 размещает всё в обычной памяти.
  • Любое устройство для гостиной, выпущенное после 2020 года, относится к L1; любой десктопный браузер на универсальном ноутбуке – к L3.
  • White-box-криптография уровня L3 была публично взломана дважды, поэтому студии ограничивают его разрешением 720p и ниже.
  • Ключ контента под конкретное разрешение выдаёт не устройство, а лицензионный сервер – именно поэтому multi-key-упаковка (один KID на ступень) является стандартом в продакшене.
  • Всегда указывайте значение параметра robustness явно: пустая строка незаметно понижает L1-устройство до L3-лицензии.

Что почитать дальше

CTA

Поговорите со стриминговым инженером – обсудите запуск OTT с защитой Widevine с нашей командой. · Посмотрите наши кейсы – production OTT и телемедицина из портфолио Фора Софт. · Скачайте чек-лист по определению уровня Widevine – одностраничный референс с матрицей QA, лестницей откатов robustness и правилами политики лицензионного сервера.

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.