Исторические справки

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

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

С развитием теории информации, начатой Клодом Шенноном в 1948 году, и появлением вычислительных машин общего назначения, развитие криптографии вышло на новый уровень. В то время и до конца XX века перед прикладным шифрованием ставились две основные цели:

  • Шифр должен иметь достаточную стойкость, чтобы злоумышленник, обладая значительными вычислительными ресурсами, не мог расшифровать сообщение без знания секретного ключа за разумное время;

  • Чтобы на одном ключе можно было зашифровать как можно больше данных (так называемая нагрузка на ключ).

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

Вызовы и требования

Интернет вещей (IoT) представляет собой индустрию, основанную на обмене данных, и защита этих данных является неотъемлемой частью. Особенно важна безопасность устройств класса LPWAN, которые имеют ограниченные вычислительные возможности и работают с небольшими пакетами данных. Требования к криптографии для таких устройств выглядят следующим образом:

  • Работа с малыми пакетами данных. Устройства отправляют небольшие пакеты данных через радиоканал с редкими сеансами связи. Криптографический алгоритм должен быть способен шифровать и расшифровывать эти маленькие пакеты данных эффективно. Желательно использовать алгоритмы с переменной длиной блока, чтобы адаптироваться к различным размерам пакетов данных.

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

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

  • Работа без постоянно активного канала связи. Устройства осуществляют связь через редкие сеансы связи, обычно раз в час или раз в день.

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

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

Разработка криптографии для Интернета вещей, особенно для устройств класса LPWAN, представляет собой сложную задачу. Это требует учета специфических требований, таких как работа с малыми пакетами данных, минимизация накладных расходов на трафик, вычислительная эффективность и работа без постоянно активного канала связи. Кроме того, криптографические решения должны быть готовы к новым вызовам, таким как угрозы квантовых вычислений, и обеспечивать безопасность данных в условиях быстрого развития и распространения IoT.

Атака, основанная на квантовых вычислениях

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

Симметричные

Асимметричные

Малый оверхэд

Меньше требований к ресурсам

Квантовая стойкость

Гарантируют авторство, время отправки и неизменность сообщения

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

Не гарантируют авторство (только неизменность сообщения)

Требуют безопасного распределения ключей

Огромный оверхэд

Большая вычислительная сложность (у пост-квантовых – еще больше)

Требуют постоянной синхронизации отозванных сертификатов (ключей)

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

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

Теперь мы освежили в памяти, чем отличаются симметричные и асимметричные шифры. Оказалось, что практически все современные асимметричные шифры и криптоалгоритмы, лежащие в их основе, беззащитны перед квантовым компьютером, обычно при этом говорят об алгоритме Шора. Однако, здесь тоже необходимо уточнить, какой квантовый компьютер необходим – ведь квантовые компьютеры существуют, при этом ассиметричные шифры успешно применяются (например, RSA). При этом симметричные шифры оказались в основном квантово-устойчивыми (т.е. компьютер не получает такого значительного преимущества): например, известный квантовый алгоритм Гровера дает квадратичное ускорение при подборе ключа в шифре AES, что может быть компенсировано удвоением длины ключа.

Однако, как уже было упомянуто, симметричные криптографические схемы требуют распределения ключей между участниками: это может быть как распределённая генерация таких ключей (QKD, Диффи-Хеллман), так и их физическая доставка (курьеры). Очевидно, что доставка курьерами – «технология» прошлого века. QKD – дорого и имеет физические ограничения на расстояние. Диффи-Хеллман – не квантово-стойкий и требует замены. Для решения проблемы квантового взлома NIST в 2016 г. запустил программу разработки квантово-стойких (или пост-квантовых) алгоритмов, и в 2022 отобрал из них кандидатов на федеральный стандарт[1].

Из описанного видно, что симметричные алгоритмы являются лучшими кандидатами для Интернета вещей в пост-квантовую эпоху, а главным барьером - распределение ключей. Современные асимметричные шифры и криптоалгоритмы, использующиеся в них, подвержены угрозе квантовых компьютеров, особенно алгоритм Шора. Однако стоит отметить, что необходимость квантового компьютера для взлома асимметричных шифров зависит от их конкретной реализации. Например, асимметрические шифры, такие как RSA, все еще безопасны, несмотря на существование квантовых компьютеров. С другой стороны, симметричные шифры оказываются более устойчивыми к квантовым атакам. Например, известный квантовый алгоритм Гровера дает квадратичное ускорение при подборе ключа в шифре AES, но это может быть компенсировано увеличением длины ключа.

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

Варианты развития

Если зафиксировать криптостойкость, которая, как правило, определяется из бизнес-требований, то между частотой смены ключей и сложностью шифра существует связь: чем чаще меняется ключ, чем более простым может быть шифр. Более простой шифр значит менее требовательный к вычислительным ресурсам. Крайней точкой на этой шкале выступает шифр Вернама[2], где в качестве функции преобразования данных на ключе используется XOR простое побитовое сложение сообщения и ключа. Такой шифр расходует объем ключей, равный объему сообщения, объем сообщения при этом не меняется. Доказано, что шифр Вернама обладает абсолютной криптостойкостью, то есть не может быть взломан никакими средствами при выполнении двух условий: каждый ключ истинно случаен и используется только один раз. Кстати, у этого шифра есть богатая история - ведь именно он применялся в докомпьютерную эпоху шпионами. Тогда для этого шпион получал набор ключей в виде шифроблокнота.

Может показаться, что шифр Вернама идеален, но главный его недостаток - гигантский расход ключа - делает его неприемлемым в бытовом применении: например, 1 час видеоконференции потребляет от 0,5 до 7,2 ГБ трафика в зависимости от разрешения. Это означало бы, что предварительно все стороны должны иметь такой же объем ключей, доставленных безопасным образом. Однако такой способ применяется в некоторых дипломатических каналах связи, когда вопросы удобства и стоимости уступают требованиям конфиденциальности.

Примеры и оценки

Давайте оценим, насколько реально применение шифра Вернама в реальных сценариях.
Сценарий 1. Датчик температуры и влажности. Предположим, нам нужно передавать показания сенсора температуры и влажности с аграрного поля. Пусть он измеряет температуру от 0 до +50оС с шагом 0.5оС и влажность от 0 до 99% с шагом 1%. Итого по 100 значений или по 7 битом. Зарезервируем по 1 байту на избыточность (например, проверку четности), получим 2 байта полезных данных за одно измерение. Предположим, измерения происходят каждый час в течение 10 лет 2Б х 24ч х 365д х 10лет = 175 200 Б, т.е. <200 кБ на весь срок службы устройства. Мы помним, что для применения этого шифра нам понадобятся такого же объема ключи.

Сценарий 2. Счетчик воды. Измерение расхода воды от 0 до 10 000 м3 с точностью 1% - 1 000 000 значений, 20 бит + избыточность = 3Б. Ежедневные измерения в течение 16 лет:
3Б х 365д х 16лет = 17 520 Б, на порядок меньше предыдущего случая.
Мы здесь сознательно не рассматриваем сценарии таких подключенных устройств, как смартфоны, счетчики электричества, камеры видеонаблюдения или автомобили. Это устройства со значительным энергоресурсом и производительным процессором, что относит их к другому классу. Единственное ограничение, с которым человечество может столкнуться при росте парка таких устройств, это дефицит спектра, но это другая история.

Это всего лишь оценки, которые, однако, дают понять о величинах какого порядка в передаче данных идет речь. Оказывается, что при применении самого расточительного на ключи шифра Вернама это сотни килобайт. Даже если эти объемы возрастут на несколько порядков, это не будет проблемой при нынешней стоимости на флэш-память. При этом существует множество промежуточных вариантов на шкале «расход ключа – сложность» при фиксированной криптостойкости.

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

Детали реализации

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

В качестве элемента инфраструктуры для работы с криптографией (ключи, операции шифрования) давно применяются HSM (hardware security module). Они достигли зрелости и вряд ли тут можно что-то серьезно улучшить. На конечных устройствах хорошей практикой является применение модуля безопасности (secure element), в качестве которого в сотовых устройствах выступает SIM карта (включая разновидности eSIM, iSIM и т.п.). В свою очередь SIM карта является программной реализацией на чипе UICC, который также применяется в банковских платежных картах с другим составом микрокода. UICC может быть представлен не только как сменяемая карта, но и как впаянный чип (eUICC) или как IP-блок для размещения на другом чипе[3] (iUICC).

Распространенность, доказанная безопасность и дешевизна чипа UICC делает его кандидатом №1 на роль модуля безопасности в устройствах Интернета вещей. Это поддерживается также концепцией GSMA IoT SAFE[4] (IoT SIM Applet For Secure End-2-End Communication), которая ставит SIM карту на роль корня доверия в устройствах. При этом ключевой материал может храниться не только на самом UICC, но и на внешнем к нему накопителе в крипто-контейнере, доступ к которому будет иметь только модуль безопасности. При необходимости обновления ключевого материала можно использовать зрелую технологию Key Wrap, давно применяющуюся для синхронизации ключей в HSM.

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

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


[1]NIST, Selected Algorithms 2022

[2]Wikipedia, The Vernam cipher

[3]Kigen iSIM

[4]GSMA IoT SAFE


Олег Гурин, BDM

Кирилл Лебедев, CEO

Основатели SIBlink

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


  1. gev
    24.05.2023 18:47
    +1

    а как доставлять, хранить и выбирать эти ключи на другой стороне?


  1. ogun Автор
    24.05.2023 18:47

    Например, они могут генериться и храниться в облаке в HSM . Выбирать ключ по алгоритму, который нужно придумать


    1. gev
      24.05.2023 18:47

      Тогда как ключ попадет в устройство?
      А если не облако, а локальный сервер?
      200К на ключи от одного устройства, а на 1000? а больше?


      1. ogun Автор
        24.05.2023 18:47

        Ключи попадут на устройство при его инициализации, например, по протоколу Key Wrap.

        Локальный сервер - это и есть облако (или облачко) для устройства.

        На 1 000 понадобится 200М, на 1 млн - 200Г, на 1 млрд - 200 Т и т.д.


  1. saipr
    24.05.2023 18:47

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

    Мне кажется этот вывод коррелируется с другим выводом:


    Автору неизвестны случаи взлома рассмотренного алгоритма, отсюда он полагает, что изложенное выше позволяет сделать вывод о том, что в настоящее время эксплуатируется весьма надежный алгоритм криптографической защиты информации ГОСТ 28147-89, опирающийся на ключ, длина которого обеспечивает необходимую стойкость. Автор также полагает, что данному алгоритму уготована долгая и достойная судьба и в третьем тысячелетии, а его создатели заслуживают большого уважения и признательности их потомков.

    Правда на смену ГОСТ 28147-89 пришли Магма и Кузнечик.


    1. ogun Автор
      24.05.2023 18:47

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


      1. VelocidadAbsurda
        24.05.2023 18:47

        И какие проблемы исполнить эти алгоритмы на смарткарте? Да, не будет акселератора под них, как под вездесущий AES, однако и ваш Виженер там будет в софтовой (пусть и простой) реализации (кстати, если в итоге смарткарта, то почему Виженер, а не то, что она поддерживает аппаратно?). Полно случаев, когда люди, к примеру, используют софтовый SHA-512 на дешёвых картах, не поддерживающих его, вполне сравнимая с ГОСТами сложность реализации.


        1. klebed
          24.05.2023 18:47

          Ну потенциальных проблем немало. Самая очевидная - это количество операций и количество энергии, которые вы затрачиваете на каждый байт информации. И представьте при этом, что вы работаете от батарейки CR2032. Насколько сократится жизненный цикл устройства от применения тяжелого алгоритма? И насколько такой подход увеличит время ответа? (тоже может быть важно)

          Понятно, что это не всегда критично...


        1. ogun Автор
          24.05.2023 18:47

          Смарткарта, подключенная к USB, и смарткарта, которая должна работать от батарейки 10 лет (по концепции LPWAN), это две разные ситуации.

          Про оверхэд: Магма имеет блок 64 бита, а Кузнечик - 128. Во многих случаях это сильно превышает объем сообщения от устройства. То есть устройство должно еще потратить ресурсы (батарею и спектр) на передачу этого распухшего пакета по радио.

          Идеально нужен переменный размер блока/ сообщения.


  1. suurtoll
    24.05.2023 18:47

    В сценарии счетчика с передачей 1 числа 1 раз в месяц вполне себе рабочее решение. А в сценарии датчика умного дома (передача по требованию, сопряжение разных устройств разных вендоров, аутентификация) - нет.


    1. gev
      24.05.2023 18:47

      и что делать?


    1. vvzvlad
      24.05.2023 18:47

      Да просто в случае схемы сети, отличной от звезды все станет гораздо сложнее.


  1. csharpreader
    24.05.2023 18:47

    Вот сижу и думаю: что будет, если «злоумышленник взломает» мою умную лампочку в туалете. Кошмар!


    1. PrinceKorwin
      24.05.2023 18:47

      Через такую лампочку получают доступ в локальную сеть. А там дальше уже есть куда развернуться. Истории с вроде бы Филиппом были. Когда дроннами подделали к умным лампочкам и их перепрошивали и получали доступ в периметр здания.


      1. ogun Автор
        24.05.2023 18:47

        Или, например, кто-то проатакует с этой лампочки "объект", потом придут специальные люди и заберут лампочку как вещдок, а владельца - в СИЗО "до выяснения".


  1. code_panik
    24.05.2023 18:47

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

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


    1. ogun Автор
      24.05.2023 18:47

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