Взломана DRM-защита Widevine L3

    На днях специалист по кибербезопасности Дэвид Бьюкенен из Великобритании заявил об успешном взломе технологии защиты аудио/видео контента Widevine L3. Взлом дает возможность дампить все данные, которые передаются через защищенный этой технологией канал связи.

    Widevine L3 является разработкой корпорации Google. Она используется для защиты авторского контента, распространяемого по сети. В частности, эта технология внедрена в сервисы Netflix, Disney, Amazon Video, BBC, HBO, Facebook, Hulu, Spotify и т.п.

    Для декодирования защищенного контента используется CDM-модуль. Он работает, в частности, в браузерах Chrome, ChromeOS, Android и Firefox. Также его применяют Samsung, Intel, Sony и LG в ряде своих продуктов.

    Стоит отметить, что Widevine L3 — самый слабый уровень защиты от Google. Чаще всего с ним работают для распространения медиаконтента низкого качества (ниже 1080р). Уже второй уровень защиты дает возможность выполнять криптографические операции на стороне аппаратно изолированного TEE-окружения (Trusted Execution Environment, например, Intel SGX, ARM TrustZone и AMD PSP).


    Взлом был осуществлен благодаря ошибке в реализации алгоритма шифрования Whitebox AES-128. Как оказалось, алгоритм подвержен атаке DFA (Differential Fault Analysis). Она позволяет получить доступ к ключу шифрования, после чего аудио и видео-контент, зашифрованный при помощи Widevine L3, становится возможным сохранять без особых проблем.

    Что касается Widevine второго и первого уровней, то их найденный метод не затрагивает.

    Данных о том, поделился ли Бьюкенен информацией о найденной уязвимости с Google перед публикацией технических подробностей, нет. Также непонятно, будет ли Google менять что-либо в Widevine L3.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 17

      +8
      Пикантность ситуации добавляет то, что в качестве «атакующей стороны» выступает легальный владелец устройства.

      На криптоспике это звучит так:

      Алиса хочет отправить Бобу сообщение так, чтобы Боб мог его прочитать, но не мог с ним ничего сделать. Боб берёт и сохраняет полученное сообщение.
        0
        В чем пикантность? Смысл как раз в том: сжечь после прочтения
          +3
          Пикантность в том, что Боб не хочет ничего сжигать. Более того, Бобу очень не нравится, когда в его очки для чтения встраивают огнемёты с удалённым управлением.
            0
            Но ведь Боб вне зависимости от того, что хочет, он связан офертой с Алисой
              +2
              В которой написано, что нельзя нарушать права Алисы. Право на цитирование записано в законе:
              Статья 1274. Свободное использование произведения в информационных, научных, учебных или культурных целях:

              «1. Допускается без согласия автора или иного правообладателя и без выплаты вознаграждения, но с обязательным указанием имени автора, произведение которого используется, и источника заимствования: цитирование в оригинале и в переводе в научных, полемических, критических или информационных целях правомерно обнародованных произведений в объеме, оправданном целью цитирования, включая воспроизведение отрывков из газетных и журнальных статей в форме обзоров печати».


              Лениво искать, но поверьте, что в американском праве fair use ещё больше развит.

              А никакая офферта не может ограничивать законные права.
        +2
        Столько шума на ровном месте развели.
        Давным давно существует плагин Widevine L3 для chrome. Его использовали все подряд, включая плагины для Kodi, чтоб Нетфликс смотреть (в 720p). Плагин на выходе давал расшированный поток, который можно было уже сразу на торренты выкладывать.
        «Заслуга» этого товарища, что он, видимо, не только расшифровал поток, но и достал оригинальный ключ шифрования из обфусцированного кода. Что, в принципе, не сильно-то и нужно было.
          +2
          Он выдает не сжатый битстрим, а расшифрованные и раскодированные сырые видеокадры, которые пригодны для вывода на экран, но которые для сохранения в файл нужно повторно кодировать видеокодеком, что медленно и ухудшает качество (ну, или просто сохранять, но размер будет огромный). А здесь же речь именно о взломе DRM, т.е. расшифровки файлов до состояния оригинальных.
            0

            Там есть decrypt и decryptAndDecode. Первый именно что просто расшифровывает. Иначе на том же chromeos не задействовать аппаратный декодер.

              0
              Судя по документу, в ChromeOS дешифрование и декодирование видео происходит аппаратно, там Widevine L1, а не только L3. Подозреваю, что получить битстрим в таком случае не получится. У вас есть другая информация?
                0

                Как и в Андроид, там все зависит от конкретного устройства. Те, что постарше с L3.
                Гуглите по "kodi widevine", а не офф доки. :-)

                  0
                  Я прочитал информацию о реализации плагина для Netflix, для компьютеров используется L3 и программное декодирование средствами Widevine. Только на Android возможно аппаратное ускорение и высокие разрешения, т.к. используется библиотека Widevine для Android, которая использует TEE (Widevine L1) на совместимых устройствах.
                    0
                    В плагине нетфликс нет вообще wv (ну в том, что я видел).
                    Они все используют плагин inputstream.adaptive.  Вот код его реализации wv: github.com/peak3d/inputstream.adaptive/blob/master/wvdecrypter/wvdecrypter.cpp По нему можно делать выводы.
                      0
                      По ссылке находится обертка над функциями из библиотеки. См. readme:
                      wvdecrypter

                      This piece of software implements a CencSingleSampleDecrypter wich can be used with inputstream.mpd addon.

                      wvdecrypter is developed to decrypt widevine encrypted media content. On most operating systems it is necessary to provide third part software ([lib]w*devi*ecdm.dll/so).


                      Installation:

                      search your kodi addon folder for «inputstream.mpd.[dll / so]
                      go into this folder with the file named above
                      create a new folder „decrypter“
                      copy the shared library from the build step into this new folder „decrypter“
                      search your system for [lib]w*devi*ecdm.dll/so (asterix's must be replaced) and copy it also into the new decrypters folder.

                      Насколько я понимаю, расшифровка до первоначальных данных возможна только в случае отсутствующего флага SSD_SECURE_PATH в зашифрованном потоке. Если этот флаг установлен, то декодирование потока происходит в библиотеке widevine (без аппаратного ускорения), а wvdecrypter получает несжатую картинку. Могу ошибаться, поправьте, если я не прав, но я всегда именно так представлял работу Widevine и других похожих DRM-технологий. Этот флаг часто не устанавливают?
              0
              но которые для сохранения в файл нужно повторно кодировать видеокодеком, что медленно и ухудшает качество (ну, или просто сохранять, но размер будет огромный)

              «Медленно» — аж 5% загрузки процессора i5 при кодировании «на лету» потока 720p в относительно неплохом качестве
              «ухудшает качество» — если мы хотим записанный стрим крутить в кинотеатре, то формально да, ухудшает. Для типичного варианта использования вроде «записать файлик и посмотреть его потом на планшете» ничего вы там глазами не заметите
                0
                «Медленно» — аж 5% загрузки процессора i5 при кодировании «на лету» потока 720p в относительно неплохом качестве
                Только если использовать аппаратное кодирование, которое не настолько эффективно, как программное.
                «ухудшает качество» — если мы хотим записанный стрим крутить в кинотеатре, то формально да, ухудшает. Для типичного варианта использования вроде «записать файлик и посмотреть его потом на планшете» ничего вы там глазами не заметите
                Звук можно тоже с выхода аудиокарты записывать, а затем кодировать в MP3, но так никто не делает. Это может быть приемлемо во многих случаях, но такой релиз не примут на серьезных торрент-трекерах.
                  0
                  О божемой, да каждый первый релиз на «серьезных торрент-трекерах» именно так и сделан. В смысле не со звуком из выхода аудиокарты, а с видео из расшифрованого видивайном и снова пожатого кадра.
                    0
                    Это замечание относилось только к аудио, в случае, если вы захотите откуда-то рипнуть музыкальный альбом, защищенный DRM.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое