В современной криптографии широко используются асимметричные алгоритмы шифрования и электронной подписи. Большинство их реализаций имеет зарубежное происхождение и вызывает обоснованные сомнения в надёжности.

Насколько можно доверять средствам шифрования, призванным защищать вашу приватность и коммерческую тайну? Нет ли в популярных криптографических продуктах скрытых лазеек, оставленных разработчиками в корыстных целях или под давлением спецслужб? На эти вопросы отвечают профессиональные криптографы, специалисты российской технологической компании «Криптонит».

Существует раздел криптографии с интересным названием — клептография (kleptography). В нём изучаются методы скрытного ослабления систем шифрования и их использования в нелегальных целях. Например, для получения конфиденциальных данных, обхода антивирусов, межсетевых экранов и других средств информационной безопасности.

Термин «Клептография» был введён в 1996 году Адамом Янгом и Моти Юнгом — известными консультантами по криптографии, работающими на Министерство обороны США и частные компании.

Изначально они называли клептографией внедрение трудно выявляемого бэкдора исключительно в схемы асимметричной криптографии. Такой бэкдор давал возможность вычислить секретный ключ пользователя по его открытому ключу, но только тем, кто знал некий секрет. Как вариант — это был ещё один секретный ключ, общий для бэкдоров одного типа и не зависящий от действий пользователя.

Шифрование для малвари

Клептография стала теоретической основой криптовирологии — методов разработки вредоносного ПО, шифрующего свой код и/или трафик на открытом ключе. К примеру, в последние годы распространились трояны-вымогатели.

В отличие от предшественников, они уже не просто выполняют на компьютере жертвы шифрование файлов, используя блочный алгоритм (AES, ThreeFish, Serpent, «Кузнечик»). Если бы они этим ограничивались, то вирусный аналитик смог бы проанализировать код трояна и его действия, чтобы найти ключ Ksym — общий для операций шифрования и расшифрования, поскольку все эти алгоритмы симметричные.

Для усложнения атаки современные вирмейкеры прибегают к хитрости: они дополнительно зашифровывают Ksym на открытом ключе (Ko) и отправляют его создателю трояна, после чего удаляют с затиранием свободного места случайными данными. Восстановить Ksym как удалённый файл становится невозможно. Теперь он существует только в зашифрованном виде.

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

Другой пример из области криптовирологии — бэкдоры, крадующие конфиденциальную информацию. Они отправляют данные как трафик, зашифрованный открытым ключом. Такой метод широко применяется в легитимных коммуникациях (TLS/IPSec/PGP), поэтому не выделяется на общем фоне. При использовании клептографических бэкдоров сложно даже обнаружить факт утечки данных, не говоря уже о попытке выяснить, что и куда передавалось с компьютера жертвы.

Без криптовирологии не появились бы APT — сложные постоянно присутствующие угрозы. Как правило, часть их компонентов и все взаимодействия с управляющим сервером зашифрованы. Поэтому антивирусы не обнаруживают новые APT до тех пор, пока их действия не станут более явными.

Почти клептография

Близко к клептографии примыкают  классические программные и аппаратные закладки, зачастую устанавливаемые самими разработчиками, или их контрагентами. Вспомните скандал с бэкдорами в оборудовании Cisco, или аналогичные обвинения компании Huawei правительством США.

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

Например, только в 2014 году выяснилось, что по требованию Агентства национальной безопасности США компания RSA Security ослабила генератор псевдослучайных чисел Dual_EC_DRBG  таким образом, чтобы он проходил все стандартные проверки надёжности, но имел «математическую особенность», на порядки снижающую реально выдаваемое количество вариантов. К моменту публикации этот ГПСЧ использовался на протяжении двенадцати лет в популярной криптографической библиотеке BSAFE, а также в OpenSSL, ОС Windows и других массовых продуктах.

Иногда в своём стремлении сохранить возможность расшифровки трафика без ведома пользователя западные спецслужбы готовы применять клептографию на аппаратном уровне. В начале девяностых правительство США инициировало массовый выпуск микросхемы Clipper (VLSO MYK-78). Предполагалось, что она будет устанавливаться во все телефоны и шифровать голосовую связь, оставляя АНБ возможность простой расшифровки за счёт встроенного бэкдора. Только исключительная дороговизна проекта не позволила превратить его в жизнь.

В современных материнских платах есть другая микросхема, в которой легко реализовать скрытый криптографический функционал. Речь идёт о TPM (модуль доверенной платформы), наличие которого проверяет при установке Windows 11.

Дополняет картину технология Intel ME и система исправлений микрокода в процессорах AMD, которые дают возможность внедрить клептографический бэкдор непосредственно в них уже после выпуска, любых проверок и начала использования.

Скрытые каналы в мобильных сетях

Усилиями независимых исследователей программные закладки всё чаще находятся и в других популярных криптографических системах. Недавно такой бэкдор был обнаружен в алгоритмах шифрования GEA-1 и GEA-2, которые применялись в сетях GSM первых трёх поколений. С приходом LTE они должны были кануть в лету, но по факту многие мобильные операторы продолжают использовать их и сейчас ради совместимости со старым оборудованием.

Новое исследование показало, что алгоритм GEA-1 был намеренно ослаблен так, чтобы вместо 2^64 теоретически возможных вариантов ключа на практике было не более 2^40 (то есть, в 16 777 216 раз меньше).

Для реализации атаки на соединение, зашифрованное GEA-1, вообще не требуется активных методик атаки. Достаточно пассивно перехватить всего 65 бит зашифрованных данных, для которых известен открытый текст. Это легко выполнимо, поскольку в начале каждого соединения идёт стандартный обмен данными с достаточно длинными заголовками пакетов предсказуемого содержания.

Атака на соединение с шифрованием GEA-2 сложнее, но принципиально такая же. Разница в том, что нужно перехватить уже 1600 бит ключевого потока (зашифрованных данных с известным содержимым), а затем перебрать 2^45 вариантов ключа. С учётом доступности программно-определяемых радиосистем (SDR), это вполне осуществимо за разумное время (часы, дни) даже без наличия у атакующей стороны собственных многопроцессорных кластеров — спасибо сервисам облачных вычислений.

Перечисленные выше примеры приводят к простому выводу: нет оснований доверять зарубежным криптографическим продуктам. Нужно разрабатывать собственные!

Доверять нельзя разрабатывать

В девяностых годах запятая в этом подзаголовке стояла бы слева: зарубежные средства криптографии в России применялись повсеместно, и реальной альтернативы им не было. С нулевых годов правительством предпринимались попытки провести аудит и лицензировать отдельные криптографические продукты. Тогда и обратили пристальное внимание на проблему клептографии.

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

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

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


  1. MAXH0
    27.04.2022 09:53
    +11

    Важная и интересная тема. К сожалению, сознательно замалчиваемая.

    Только развивать надо не российскую/ индусскую/ китайскую/ арабскую криптографию, а формировать международные институты по контролю над стандартами с участием всех заинтересованных сторон. И, аналогично, требуется публичное научное обсуждение проблемы. А не замыкаться в тесных кружках национальных спецслужб.


  1. makkarpov
    27.04.2022 10:05
    +9

    Перечисленные выше примеры приводят к простому выводу: нет оснований доверять зарубежным криптографическим продуктам. Нужно разрабатывать собственные!

    То ли дело Кузнечик со своим отечественным бекдором - это, как известно, совсем-совсем другое.


    1. fedorro
      27.04.2022 13:55
      +1

      Поэтому нужно шифровать Кузнечиком, потом AES, ну и ещё одним, по вкусу ????


      1. Ul3ainee
        27.04.2022 14:38

        XOR'ить с одноразовым шифроблокнотом же!


        1. fedorro
          27.04.2022 14:44

          Ну этот блокнот ещё нужно сгенерить надёжным способом без закладок. А ещё, по хорошему, он должен быть объемом как сами шифрованные данные, что не всегда возможно ????


          1. Ul3ainee
            27.04.2022 15:27

            Сгенерить — это не сложно, будем по-старинке мышкой елозить и кнопки давить. В качестве дополнительных источников энтропии можно в вебку рожи корчить и в микрофон завывать и материться. Всё исключительно в оффлайне, разумеется. За рабочую смену можно весьма знатно нагенерировать. А сами данные скоро надо будет экономнее передавать, благо телеком-оборудования не особо-то будет. Вот видите, как оно всё ладненько само и сложилось.
            P.S.: Представил такого «шифровальшика» за работой и чаем поперхнулся)))


            1. MAXH0
              27.04.2022 16:47
              +1

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


      1. MAXH0
        27.04.2022 14:58

        Угу. Разбить архив на блоки. Четные зашифровать Кузнечиком/AES, нечетные AES/Кузнечик. Все опять сложить в один архив и зашифровать сверху!


  1. yukon39
    27.04.2022 14:43
    +2

    «Смешались в кучу кони, люди»

    В одной статье и про алгоритмы, и про ПО реализующее эти алгоритмы, и про железо на котором выполняются это ПО. Из этой троицы «национально уязвимы» только последние два пункта: ПО и железо.

    Любое ПО реализующее уязвимый алгоритм на любом железе будет иметь всю ту же «базовую» уязвимость алгоритма. И «национальность» такого алгоритма значения не имеет.

    При этом, конечно, вполне разумно иметь свои реализации стойких алгоритмов. А вот насчет «давайте придумаем свои», кхм, ну можно конечно, только скорее всего получим очередную вариацию известных классов алгоритмов, которые будут обладать все теми же эксплуатационными свойствами.

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


    1. saipr
      28.04.2022 11:36

      Насчёт кучи всё верно!!!
      И проблема не математике, не в криптографических алгоритмах, а в их программной реализации реализации. Именно в реализации могут находиться всякие закладки. И если мы хотим быть уверены в безопасности той же криптографии, то надо написать и сертифицировать это ПО. Ведь посмотрите, криптографические алгоритмы одни и те же, а их реализация может быть разной: OpenSSL, NSS, GnuTls, GCrypt и т.д. Даже Google сделал реализацию под себя. Вот только нет ни одной аналогичной отечественной реализации


  1. Scratch
    27.04.2022 18:07
    -4

    Перечисленные выше примеры показывают

    Они показывают, что "наши" ничем не лучше, и могут продвигать свой обосравшийся кузнечик только за счет политической воли, а не благодаря конкурентным преимуществам


  1. hddscan
    27.04.2022 18:37
    +2

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

    на мой взгляд немного непонятна причинно-следственная связь.

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

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

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

    Так вот. Включение российских стандартов шифрования в международные протоколы никак не изменит проблемы с конкретной реализацией протокола. Особенно учитывая тот факт, что ВСЕ спецслужбы мира хотят иметь свой backdoor.

    Хотя конечно позиция "этот backdoor кого надо backdoor" весьма логична с точки зрения любого государства.


  1. strvv
    28.04.2022 17:50

    какие есть несложные в количестве логических элементов алгоритмы с несимметричным шифрованием, я под простейшее устройство как концепт ищу на простую плис?

    если не по теме - просьба подсказать где есть возможность спросить ребят, без баттерхерта на ровном месте.
    т.к. я вижу в большинстве сложные рекуррентные алгоритмы, а тут бы 2-4 перемешивания...