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, 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 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също