Widevine — это собственная система управления цифровыми правами (DRM), разработанная Google . Он обеспечивает защиту контента для мультимедиа. Widevine разделен на три уровня безопасности с разными уровнями защиты в зависимости от оборудования, установленного на устройстве. Widevine включен в большинство основных веб-браузеров, а также в Android и iOS .
Первоначально Widevine была разработана компанией Internet Direct Media, которая позже была переименована в Widevine Technologies. После нескольких раундов финансирования компания была приобретена Google в 2010 году за нераскрытую сумму.
Widevine был создан базирующейся в Сиэтле компанией Internet Direct Media в 1999 году под названием Widevine Cypher. [1] Компания, основанная исполнительным директором Брайаном Бейкером и исследователем криптографии Джереми Хорвицем, сменила название на Widevine Technologies. [2] [3]
В феврале 2001 года компания Widevine Technologies выпустила Widevine Cypher Enterprise; в то время такие методы, как запись экрана и мониторинг сетевых запросов, были обычным явлением. Widevine Cypher использовал шифрование DES-X для предотвращения этих методов. [4] В апреле Widevine Technologies заключила партнерское соглашение со стриминговой компанией Midstream Technologies из Бельвью . [5] Бейкер вернулся в компанию в 2001 году, проведя ее через процесс реструктуризации; процесс включал рекапитализацию компании и увольнение многих ее сотрудников. [6]
В июне 2003 года Widevine Technologies получила финансирование в размере 7,8 миллиона долларов США от венчурных компаний Constellation Ventures и Pacesetter Capital. [7] В том же году компания Widevine Technologies заключила партнерское соглашение с тайваньской телекоммуникационной компанией Chunghwa Telecom , стремясь обеспечить безопасность их услуги видео по запросу . [8] В 2004 году Widevine Technologies получит дополнительное финансирование от Constellation Ventures и Pacesetter Capital, а также Phoenix Capital Partners в рамках раунда финансирования под руководством VantagePoint Venture Partners, что принесет компании 13 миллионов долларов. [9]
Widevine Technologies занялась созданием цифровых водяных знаков в 2005 году, сотрудничая с компанией по обработке контента TVN Entertainment (ныне Vubiquity) для своей системы Mensor. [10] Widevine Mensor вставляет в сигнал 64-битную полезную нагрузку — операция, не требующая больших вычислительных затрат. [11]
В апреле 2006 года Constellation Ventures, Pacesetter Capital, Phoenix Capital Partners и VantagePoint Venture Partners присоединились к компании цифровых коммуникаций Cisco Systems и канадской телекоммуникационной компании Telus , чтобы инвестировать 16 миллионов долларов в Widevine Technologies. Участие Cisco в инвестициях последовало за приобретением производителя телеприставок Scientific Atlanta за 7 миллиардов долларов. [12] В рамках шестилетнего соглашения Widevine получила контракт с Telus на использование ее технологии на платформах Telus. [13]
3 августа 2007 года компания Widevine Technologies подала иск о нарушении патентных прав против компании по обеспечению безопасности контента Verimatrix . [14] Обе компании достигли мирового соглашения в марте 2010 года. [15]
Число продавцов, использующих Widevine, неуклонно увеличивалось вплоть до 2010 года. В августе 2008 года CinemaNow использовала Widevine, чтобы расширить сферу своей деятельности на несколько устройств, включая Nintendo Wii , проигрыватели дисков от LG и Samsung , а также iPhone и iPod . [16] Чтобы реализовать DRM в Microsoft Silverlight для браузеров, не использующих Microsoft Windows , Microsoft работала с Widevine Technologies. [17] Widevine также была внедрена в несколько потоковых сервисов с использованием Adobe Flash , включая контент от Sony и Warner Bros. , распространяемый в виртуальной социальной сети Gaia Online . [18]
В декабре 2009 года Widevine получила дополнительное финансирование в размере 15 миллионов долларов от телекоммуникационной компании Liberty Global и Samsung Ventures, дочерней компании венчурного капитала Samsung. [19] Samsung расширит использование Widevine в июне 2010 года. [20] LoveFilm подписала соглашение с Widevine в июле 2010 года. [21]
3 декабря 2010 года Google объявила о приобретении Widevine за нераскрытую сумму. [22] Приобретение произошло в тот же день, когда Viacom подала апелляцию по делу Viacom против YouTube , касающемуся роли Google в загрузке пользователями контента, принадлежащего Viacom, на YouTube . [23] В отчете CNN в феврале 2011 года сообщалось, что Google заплатила за Widevine 150 миллионов долларов, несмотря на то, что внутренняя оценка компании составляла от 30 до 40 миллионов долларов, что сделало это девятое по величине приобретение компании на тот момент. [24]
Widevine разделен на три уровня безопасности. Используемый уровень безопасности зависит от использования доверенной среды выполнения (TEE) на клиентском устройстве. Например, процессоры ARM Cortex-A реализуют технологию TrustZone , позволяющую полностью выполнять криптографию и обработку видео внутри TEE. [25] В Widevine L1 расшифровка и обработка мультимедиа полностью происходят в TEE, и контент доступен в исходном разрешении. В Widevine L2 расшифровка и обработка мультимедиа происходит с помощью программного обеспечения или специального видеооборудования, несмотря на наличие TEE, и контент доступен в фиксированном разрешении. В Widevine L3 расшифровка и обработка мультимедиа происходят программно, TEE отсутствует, а контент доступен в фиксированном разрешении. [26]
В Android Widevine L1 может быть реализован в Stagefright, движке воспроизведения мультимедиа Android. [27] Это реализовано в чипах Qualcomm , где компонент OpenMAX (OMX) взаимодействует с видеодрайвером на уровне ядра . Мультимедийная память выделяется с помощью драйвера модуля управления памятью для ION, диспетчера памяти, представленного в Android 4.0 для работы с различными интерфейсами управления памятью в Android. [28] Затем выделяется буфер ввода/вывода, а содержимое расшифровывается и сохраняется в защищенном входном буфере в TrustZone. [29]
Widevine использует несколько стандартов и спецификаций, включая общее шифрование MPEG (CENC), расширения зашифрованного мультимедиа (EME), расширения источника мультимедиа (MSE) и динамическую адаптивную потоковую передачу через HTTP (DASH). [30] Кроме того, Widevine поддерживает протокол HTTP Live Streaming (HLS), разработанный Apple Inc. в 2009 году . [31]
В одной реализации Widevine браузер получает зашифрованный контент из сети доставки контента (CDN). Затем контент отправляется в модуль расшифровки контента (CDM), который создает запрос лицензии для отправки на сервер лицензий. Затем игрок получает лицензию от сервера лицензий и передает ее CDM. Чтобы расшифровать поток, CDM отправляет носитель и лицензию модулю OEMCrypto, необходимому для расшифровки контента. [32] OEMCrypto — это интерфейс к TEE; большинство реализаций гарантируют, что ключи сеанса, ключи расшифрованного содержимого и поток расшифрованного содержимого недоступны для других работающих приложений. Обычно это достигается с помощью вторичного процессора с отдельной памятью . [33] Затем контент отправляется в видеостек и отображается конечному пользователю частями. [34] Сообщения о запросе лицензии и ответе на лицензию отправляются и принимаются с использованием протокольных буферов . [35]
Поставщики могут реализовать свой собственный прокси-сервер на сервере лицензий в тех случаях, когда авторизация пользователя управляется уже существующим прокси-сервером поставщика. [36] Эта настройка требует использования прокси-сервера в качестве посредника. [37] Widevine требует использования сервисных сертификатов, начиная с Chrome 59, а также iOS и некоторых конфигураций ChromeOS . [38] [примечание 1] Прокси-сервер может отказаться выдавать лицензии для браузеров, которые не реализуют «проверяемую» структуру, также известную как проверенный медиа-путь (VMP). Примечательно, что браузеры, работающие под управлением Linux , не включены в VMP. [40] Аналогично, версия защиты широкополосного цифрового контента (HDCP), используемая на клиентском устройстве, может быть принудительно реализована прокси-сервером. [41]
В устройствах Widevine L1 предоставление сертификата обычно выполняется один раз. Во время подготовки CDM создает одноразовый номер и извлекает ключи для расшифровки сертификата и проверки целостности, а также динамически генерируемые буферы. Ключ устройства рассматривается как корень доверия (RoT). Клиентский ключ, полученный из RoT, защищает запрос с помощью HMAC . [42] RoT устанавливается с помощью компонента, поставляемого на заводе, называемого «ящиком для ключей». Поле ключей имеет длину 128 байт с двумя специальными полями. Целостность ящика для ключей проверяется путем проверки соответствия последних восьми байтов магическому числу («kbox») с последующей проверкой циклическим избыточным кодом (CRC-32). [43] Остальные 120 байтов содержат внутренний идентификатор устройства (32 байта), ключ расширенного стандарта шифрования (16 байтов) и токен обеспечения (72 байта). [44]
Каждый ключ контента связан со 128-битным блоком управления ключом, определяющим ограничения безопасности. Блок управления ключами обеспечивает требования безопасности пути передачи данных на таких клиентах, как Android, где видео и аудио шифруются отдельно, а также предоставляет значение тайм-аута для TEE. Блок зашифрован по алгоритму AES-128-CBC со случайным вектором инициализации (IV), а поля определены в порядке байтов с обратным порядком байтов. Значения блока включают поле проверки, поле продолжительности (выраженное в секундах), одноразовый номер и биты управления, все по 32 бита каждый. [45] Биты управления представляют собой серию битовых полей, управляющих версией HDCP, которую можно использовать, типом пути данных, следует ли использовать одноразовый номер или нет, и используемой системой общего управления копированием (CGMS). [46] Несмотря на это, поставщики по-прежнему могут шифровать аудио и видео одним и тем же ключом или вообще не шифровать аудио. [47]
Widevine включен в большинство основных веб-браузеров, включая Google Chrome . Производные Chromium , включая Microsoft Edge , Vivaldi , [48] и Opera , также реализуют Widevine. [49] С июня 2016 года Firefox напрямую поддерживает Widevine, пытаясь удалить поддержку NPAPI . [50] Кроме того, Widevine поддерживается на Android и iOS. [30] Потоковые сервисы, использующие Widevine, включают Netflix , Disney+ , [51] Amazon Prime Video , Max , Hulu , Paramount+ и Discovery+ . [52] Начиная с Android 5 , версия Google Chrome, используемая в Android, поддерживает Widevine. [53] В феврале 2021 года в Firefox для Android был добавлен Widevine. [54]
В Android Widevine реализуется через подключаемый модуль уровня аппаратной абстракции (HAL). Библиотека Widevine на Android преобразует вызовы API Android DRM в вызовы Widevine CDM, и ее роль варьируется в зависимости от реализованного уровня безопасности; в Widevine L1 библиотека Widevine действует как прокси для TEE, а в L3 библиотека содержит запутанный CDM. Кроме того, библиотека liboemcrypto.so
маршалирует и демаршалирует запросы к трастлету Widevine для Widevine L1 через специализированный драйвер TEE, например, QSEEComAPI.so
для Qualcomm Secure Execution Environment (QSEE). [55]
iOS не поддерживает DASH или CENC. Чтобы обойти это ограничение, Widevine преобразует DASH в HLS; Универсальный преобразователь DASH (UDT) анализирует манифест DASH с помощью синтаксического анализатора XML , такого как libxml2 . Затем UDT создает список воспроизведения HLS. [56]
Widevine эксплуатировалась несколько раз. Исследователи из Университета Бен-Гуриона в Негеве обнаружили уязвимость в Widevine в июне 2016 года; уязвимость позволяла пользователям получать расшифрованную версию защищенного контента в кэше . [57]
В январе 2019 года исследователь безопасности Дэвид Бьюкенен заявил, что взломал Widevine L3 с помощью атаки дифференциального анализа ошибок в реализации AES-128 « белого ящика» Widevine , что позволило Бьюкенену получить исходный ключ, используемый для шифрования потока. Затем поток MPEG-CENC можно было расшифровать с помощью ffmpeg . [58] [59] Похожая уязвимость была использована в октябре 2020 года. [60]
В 2021 году версия Widevine L3 для Android была подвергнута обратному проектированию и взломана исследователями безопасности. [61] В том же году Ци Чжао представил первую атаку, взломавшую Widevine L1 в Android, восстановив ящик с ключами L1. [62]
remote_attestation_verified
этот параметр включен. remote_attestation_verified
требует использования доверенного платформенного модуля (TPM) и включается при загрузке для устройств с TPM. [39]