Widevine: что это такое, DRM и уровни безопасности

Автор: IT Sectr Опубликовано: 2026-05-24 Время чтения: 8 мин

Widevine — это технология DRM, разработанная Google для защиты видеоконтента от неавторизованного копирования на мобильных устройствах, Smart TV и веб-платформах. Шифрование контента выполняется через модуль CDM, который поддерживается на 4 миллиардах устройств по всему миру. Технология Widevine обеспечивает совместимость с Android, iOS, Chrome и Smart TV, позволяя сервисам стриминга защищать премиум-контент на любых платформах.

Главное

  • Widevine — DRM-решение от Google для защиты видео в мобильных приложениях и вебе.
  • Три уровня безопасности: L1 (аппаратное шифрование), L2 (программное), L3 (безопасное только в облаке).
  • CDM — Content Decryption Module, ключевой компонент для расшифровки контента.
  • Лицензирование управляется через сервер лицензий Google, выдающий ключи для декодирования.
  • Совместимость с EME (Encrypted Media Extensions) позволяет работать в любом браузере.

Что такое Widevine?

Widevine — это проприетарная технология DRM, приобретённая Google в 2010 году и ставшая стандартом де-факто для защиты видеоконтента в экосистеме Android. Она используется крупнейшими стриминговыми сервисами, включая Netflix, Amazon Prime Video, Disney+ и Hulu, для предотвращения неавторизованного копирования и распространения контента.

Widevine поддерживает шифрование по стандарту AES-128 CBC с использованием ключей контента, которые передаются только авторизованным устройствам через защищённый канал лицензирования. Система обеспечивает сквозную защиту от момента шифрования на сервере до декодирования на устройстве пользователя.

История и развитие Widevine

Компания Widevine Technologies была основана в 1999 году и изначально разрабатывала решения для защиты контента на кабельных телевизионных платформах. После приобретения Google в 2010 году технология была адаптирована для мобильных платформ и интегрирована в ОС Android начиная с версии 4.4 KitKat. С 2015 года Widevine стал обязательным компонентом сертификации Google Mobile Services.

В 2018 году Google представила Widevine Modular DRM, которая позволила производителям устройств реализовывать разные уровни защиты аппаратно без изменения кода ОС. Сегодня Widevine Modular поддерживается на более чем 4 миллиардах устройств и является основным DRM-механизмом на Android.

Архитектура Widevine

Архитектура Widevine состоит из трёх ключевых компонентов: Content Decryption Module (CDM), сервера лицензий и средства шифрования контента. CDM выполняет дешифровку на стороне клиента и взаимодействует с аппаратным Trusted Execution Environment (TEE) для безопасного хранения ключей.

Сервер лицензий Google управляет выдачей ключей на основе политик контент-провайдера, которые определяют ограничения по времени, количеству устройств и качеству воспроизведения. Инструмент шифрования подготавливает контент на стороне провайдера, упаковывая его в формат MPEG-DASH или HLS с шифрованием CENC.

Как работает Widevine DRM?

Процесс защиты начинается с этапа упаковки контента, когда медиафайл шифруется с использованием ключа контента на сервере провайдера. Зашифрованный поток передаётся на устройство пользователя через CDN, где CDM запрашивает лицензию у сервера лицензий.

Сервер лицензий проверяет аутентичность устройства и право доступа к контенту. Если проверка проходит успешно, сервер выдаёт лицензию с ключом, который CDM использует для расшифровки. Лицензия может содержать ограничения по времени просмотра и разрешению.

Протокол обмена лицензиями

Обмен лицензиями в Widevine реализован через протокол EME (Encrypted Media Extensions) в браузерах или через SDK на мобильных платформах. Запрос лицензии формируется CDM и отправляется на сервер лицензий по HTTPS, что обеспечивает защиту от перехвата ключей в транзите.

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

Поддержка стандартов шифрования

Widevine использует стандарты Common Encryption (CENC), определённые в ISO/IEC 23001-7, что обеспечивает совместимость с форматами MPEG-DASH и HLS. Шифрование AES-128 в режиме CTR или CBC применяется для защиты медиапотоков.

Для ключевой деривации используется HKDF (HMAC-based Key Derivation Function), что позволяет генерировать уникальные ключи для каждого сегмента контента. Поддержка HLS в Widevine добавлена с версии Modular 2.0, что расширило совместимость с платформами Apple.

Пример запроса лицензии на Android

kotlin
@Throws
fun requestLicense(): ByteArray {
    val drmSessionManager = mediaDrm.createSession(
        sessionId,
        List("keyRequestType", "init")
    )
    val request = mediaDrm.getKeyRequest(
        sessionId,
        schemeData.get("mimeType"),
        KeyType.STREAMING,
        mutableMapOf()
    )
    return licenseService.acquire(request.data)
}

Уровни безопасности Widevine: L1, L2, L3

Widevine определяет три уровня безопасности, которые различаются по способу выполнения криптографических операций и обработки контента. Уровень L1 обеспечивает максимальную защиту, L3 — минимальную, L2 занимает промежуточное положение.

УровеньТип защитыТребования к устройствуМаксимальное разрешение
L1АппаратнаяTEE на уровне SoC4K Ultra HD
L2ГибриднаяTEE для ключей, софт для видео1080p
L3ПрограммнаяТолько программный CDM720p

Уровень L1 — аппаратное шифрование

Уровень L1 требует наличия Trusted Execution Environment (TEE) на аппаратном уровне, где выполняются все криптографические операции. Ключи контента никогда не покидают TEE, что исключает их извлечение даже при компрометации основной ОС.

Устройства с сертификацией L1 могут воспроизводить контент в качестве 4K и HDR, так как расшифрованный видеопоток передаётся напрямую в защищённый видеовыход без доступа со стороны пользовательских процессов.

Уровень L3 — программное шифрование

Уровень L3 выполняет все криптографические операции программно в обычном пользовательском пространстве. Это наименее безопасный режим, при котором ключи могут быть извлечены из оперативной памяти устройства.

Widevine L3 ограничивает качество воспроизведения до 720p, что делает его пригодным для просмотра на младших устройствах или десктопных браузерах без аппаратной защиты.

Проверка уровня безопасности на устройстве

kotlin
fun getSecurityLevel(): String {
    val mediaDrm = MediaDrm(UUID.fromString(
        "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    ))
    val level = mediaDrm.getPropertyString(
        "securityLevel"
    )
    return level.ifEmpty { "L3" }
}

Интеграция Widevine в мобильные приложения

Интеграция Widevine в мобильные приложения выполняется через стандартные API MediaDrm (Android) и AVContentKeySession (iOS). В большинстве случаев разработчику не требуется напрямую работать с DRM — библиотеки плееров, такие как ExoPlayer и AVPlayer, обрабатывают лицензирование автоматически.

Интеграция на Android

На Android Widevine интегрируется через класс MediaDrm, который предоставляет прямой доступ к CDM. Для стриминговых приложений рекомендуется использовать ExoPlayer с модулем DrmSessionManager, который автоматически управляет запросами лицензий.

При инициализации плеера необходимо указать UUID схемы Widevine (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) и URL сервера лицензий, который предоставляет контент-провайдер. ExoPlayer самостоятельно обрабатывает цикл запроса и обновления лицензий.

Конфигурация ExoPlayer для Widevine

kotlin
val drmLicenseUrl = "https://license.service.com/wv"
val mediaItem = MediaItem.Builder()
    .setUri(Uri.parse(streamUrl))
    .setDrmKeyRequestUrl(drmLicenseUrl)
    .setDrmKeyRequestHeaders(
        mapOf("Authorization" to token)
    )
    .build()

val exoPlayer = ExoPlayer.Builder(context)
    .build()
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()

Интеграция с веб-плеерами

На веб-платформах Widevine работает через Media Source Extensions (MSE) и Encrypted Media Extensions (EME). Браузеры на основе Chromium поддерживают Widevine CDM встроенно, и разработчику достаточно инициализировать сессию EME с правильной конфигурацией.

Для работы с Widevine в браузере необходимо указать инициатор лицензии с типом keySystem `com.widevine.alpha`. После создания экземпляра MediaKeys браузер автоматически обрабатывает запросы лицензий.

Обработка ошибок лицензирования

При интеграции Widevine важно корректно обрабатывать ошибки лицензирования, которые возникают при отсутствии прав доступа, истечении подписки или несовместимости устройства. Ошибка TYPE_EXPIRED_LICENSE требует обновления лицензии через повторный запрос к серверу, а TYPE_OUTPUT_NOT_ALLOWED указывает на несовместимость видеовыхода с политиками DRM.

Рекомендуется реализовать механизм повторных попыток с экспоненциальной задержкой при временных сетевых ошибках и показывать пользователю понятное сообщение при постоянных отказах лицензирования. Логирование ошибок DRM-сессий помогает контент-провайдерам выявлять проблемы с устройствами и оптимизировать политики.

Widevine и альтернативные DRM

Widevine конкурирует с FairPlay от Apple и PlayReady от Microsoft, формируя три основных DRM-решения на рынке мобильных платформ. Каждая технология имеет свои преимущества и ограничения, связанные с экосистемой платформы.

Сравнение DRM-решений

ХарактеристикаWidevineFairPlayPlayReady
РазработчикGoogleAppleMicrosoft
Основная платформаAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Максимальный уровеньL1 (4K)Эквивалент L1 (4K)SL3000 (4K)
Аппаратная защитаTEESecure EnclaveTPM + TEE

Выбор DRM для проекта

Выбор DRM зависит от целевых платформ приложения. Для Android-first проектов Widevine является естественным выбором, так как он предустановлен на всех сертифицированных устройствах с Google Mobile Services и не требует дополнительной лицензионной платы.

Для кросс-платформенных проектов часто используется мульти-DRM подход с использованием агрегаторов лицензий, таких как Axinom, EZDRM и Vualto, которые предоставляют единый API для работы со всеми тремя DRM-системами. Это снижает сложность интеграции и централизует управление лицензиями.

Часто задаваемые вопросы

Что такое Widevine DRM?

Widevine — это технология DRM от Google, предназначенная для защиты цифрового видеоконтента от неавторизованного копирования. Она используется стриминговыми сервисами для шифрования видео и управления доступом к нему через систему лицензирования.

Какие уровни безопасности Widevine существуют?

Widevine поддерживает три уровня безопасности: L1 с аппаратным шифрованием в TEE, L2 с гибридным подходом и L3 с полностью программной реализацией. L1 позволяет воспроизводить контент в 4K, L3 ограничен качеством 720p.

Как проверить уровень Widevine на Android?

Проверить уровень Widevine на Android можно через класс MediaDrm, запросив свойство securityLevel. Для этого создаётся экземпляр MediaDrm с UUID Widevine и вызывается getPropertyString, или используются сторонние приложения типа DRM Info.

Чем Widevine отличается от FairPlay?

Widevine разработан Google для Android и Chrome, а FairPlay — для iOS, tvOS и Safari. Оба поддерживают аппаратное шифрование и 4K, но Widevine шире распространён на Android-устройствах, а FairPlay является стандартом де-факто в экосистеме Apple.

Нужна ли лицензия на использование Widevine?

Для использования Widevine в мобильном приложении отдельная лицензия не требуется — технология встроена в сертифицированные устройства Android и Chrome. Плата взимается только с контент-провайдеров за использование сервера лицензий.

Итоги

  • Widevine — основной DRM-механизм на Android, обеспечивающий защиту видеоконтента через аппаратное или программное шифрование.
  • Три уровня безопасности L1, L2, L3 определяют максимальное качество воспроизведения и степень защиты ключей.
  • CDM (Content Decryption Module) выполняет расшифровку контента на стороне клиента с использованием лицензионных ключей.
  • Интеграция выполняется через ExoPlayer, MediaDrm на Android и EME на веб-платформах.
  • Для iOS требуется FairPlay, что делает мульти-DRM подход необходимым для кросс-платформенных проектов.
  • Widevine Modular поддерживает шифрование CENC и совместим с форматами MPEG-DASH и HLS.
  • Сервер лицензий Google управляет доступом к контенту на основе политик, заданных контент-провайдером.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также