На днях специалист по кибербезопасности Дэвид Бьюкенен из Великобритании заявил об успешном взломе технологии защиты аудио/видео контента 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.

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


  1. amarao
    07.01.2019 16:25
    +7

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

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

    Алиса хочет отправить Бобу сообщение так, чтобы Боб мог его прочитать, но не мог с ним ничего сделать. Боб берёт и сохраняет полученное сообщение.


    1. Protos
      07.01.2019 18:05

      В чем пикантность? Смысл как раз в том: сжечь после прочтения


      1. amarao
        07.01.2019 18:35
        +2

        Пикантность в том, что Боб не хочет ничего сжигать. Более того, Бобу очень не нравится, когда в его очки для чтения встраивают огнемёты с удалённым управлением.


        1. Protos
          07.01.2019 19:51

          Но ведь Боб вне зависимости от того, что хочет, он связан офертой с Алисой


          1. amarao
            07.01.2019 19:58
            +2

            В которой написано, что нельзя нарушать права Алисы. Право на цитирование записано в законе:

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

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


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

            А никакая офферта не может ограничивать законные права.


  1. TMC
    07.01.2019 16:39
    +3

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


    1. ValdikSS
      08.01.2019 01:59
      +1

      Он выдает не сжатый битстрим, а расшифрованные и раскодированные сырые видеокадры, которые пригодны для вывода на экран, но которые для сохранения в файл нужно повторно кодировать видеокодеком, что медленно и ухудшает качество (ну, или просто сохранять, но размер будет огромный). А здесь же речь именно о взломе DRM, т.е. расшифровки файлов до состояния оригинальных.


      1. TMC
        08.01.2019 11:13

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


        1. ValdikSS
          08.01.2019 13:18

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


          1. TMC
            08.01.2019 13:36

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


            1. ValdikSS
              08.01.2019 14:01

              Я прочитал информацию о реализации плагина для Netflix, для компьютеров используется L3 и программное декодирование средствами Widevine. Только на Android возможно аппаратное ускорение и высокие разрешения, т.к. используется библиотека Widevine для Android, которая использует TEE (Widevine L1) на совместимых устройствах.


              1. TMC
                08.01.2019 19:58

                В плагине нетфликс нет вообще wv (ну в том, что я видел).
                Они все используют плагин inputstream.adaptive.  Вот код его реализации wv: github.com/peak3d/inputstream.adaptive/blob/master/wvdecrypter/wvdecrypter.cpp По нему можно делать выводы.


                1. ValdikSS
                  08.01.2019 21:47

                  По ссылке находится обертка над функциями из библиотеки. См. 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-технологий. Этот флаг часто не устанавливают?


      1. tangro
        08.01.2019 18:30

        но которые для сохранения в файл нужно повторно кодировать видеокодеком, что медленно и ухудшает качество (ну, или просто сохранять, но размер будет огромный)

        «Медленно» — аж 5% загрузки процессора i5 при кодировании «на лету» потока 720p в относительно неплохом качестве
        «ухудшает качество» — если мы хотим записанный стрим крутить в кинотеатре, то формально да, ухудшает. Для типичного варианта использования вроде «записать файлик и посмотреть его потом на планшете» ничего вы там глазами не заметите


        1. ValdikSS
          08.01.2019 18:40

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


          1. tangro
            08.01.2019 20:55

            О божемой, да каждый первый релиз на «серьезных торрент-трекерах» именно так и сделан. В смысле не со звуком из выхода аудиокарты, а с видео из расшифрованого видивайном и снова пожатого кадра.


            1. ValdikSS
              08.01.2019 21:47

              Это замечание относилось только к аудио, в случае, если вы захотите откуда-то рипнуть музыкальный альбом, защищенный DRM.