Немного об атаках по побочным каналам

Публикация: 25 Август 2014 - 14:48, редакция: 29.09.2014 14:02

 

Head: side channel

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

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

Вот ключ, вот данные, вот подпись! Какой еще побочный канал?

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

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

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

Некоторые каналы утечки

Побочным каналом, теоретически, может быть любое проявление «признаков жизни» устройством, на котором работает криптосхема. Приведем лишь некоторые из них (подробнее см. работы [1] и [6]):

  • время вычислений;
  • энергопотребление;
  • электромагнитное излучение;
  • акустический канал (шумы, возникающие при работе вычислительного средства).

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

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

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

Время = информация

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

Для начала приведем еще один пример из книги Б. Шнайера, который хорошо показывает, что время обработки тех или иных данных может многое сказать о самих данных:

Представьте себе атаку, направленную против склада: вы хотите узнать, что находится внутри. У вас нет возможности заглянуть на склад, чтобы посмотреть, как там расположены вещи. Однако вы можете попросить служащего «получить» материал для вас. Время, которое ему потребуется для того, чтобы сделать ту или иную вещь, скажет вам многое об этом складе. Он каждый раз тратит много времени на то, чтобы принести картридж? Должно быть, картриджи находятся в самом дальнем углу. Расходует ли он больше времени на то, чтобы принести стопку бумаги, через каждые 10 запросов? Тогда, должно быть, бумага сложена в коробки по 10 пачек. Ему требуется больше времени на то, чтобы принести карандаши, чем на то, чтобы принести резинки? Это говорит о том, какие коробки лежат сверху.

Напомним, как вычисляется общий ключ  в алгоритме Диффи-Хеллмана: K=Yx mod P, где Y – открытый ключ абонента B, а x – секретный ключ абонента A. Пусть для возведения в степень используется схема Горнера:

def getSessionKey( Y, x, P ):

    ind = 1 << ( x.bit_length() - 1 )

    K = 1

    while ind > 0:

        if x & ind:

            res = (((K*K)%P)*Y)%P

        else:

            K = (K*K)%P

        ind >>= 1

    return K

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

Simple Gorner

Если противник может измерить время, за которое абонент A вырабатывает общий ключ, то он может сделать вывод о весе его секретного ключа. Это дает ему информацию, которую он может использовать, например, при подборе ключа. Так, для 512-битного ключа тот факт, что его вес находится в диапазоне от 490 до 500, сокращает количество вариантов при переборе примерно в 2128 раз (примерно 1038), фактически снижая длину ключа с 512 до 384 битов.

Скажи мне, сколько ты ешь, я скажу тебе, какой у тебя ключ

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

AES power

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

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

Пример того, как такой метод может быть применен для вскрытия ключа симметричного алгоритма шифрования, а именно DES, приведен в работе [5]. Ниже представлен график энергопотребления во время выполнения 2-го и 3-го раундов преобразования. Пики, отмеченные стрелками, свидетельствуют о том, что определенные биты ключа равны 1.

DES SPA

Основные методы противодействия

Приведем несколько базовых методов противодействия такого рода атакам.

Для того чтобы защититься от побочных каналов по времени, используют алгоритмы, трудоемкость которых не зависит (или не сильно зависит) от входных данных. Простейшим приемом, позволяющим избавиться от побочного канала в приведенном выше примере со схемой Горнера, является добавление лишнего модульного умножения в ветку else, результат которого игнорируется. На следующем графике красным цветом отмечена зависимость времени вычисления от веса секретного ключа после добавления фиктивной операции умножения:

Gorner 2

График показывает, что в среднем это приводит к потере производительности, но устраняет побочный канал по времени.

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

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

Balancing

В этой же работе приводится иллюстрация применения метода, предложенного в работе [9], состоящего во внедрении случайного шума:

Power noise

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

Защищено ли от «побочки» то, что представлено на рынке?

Ведущие разработчики СКЗИ, в том числе компания «КРИПТО-ПРО», учитывают возможности существования широкого класса побочных каналов. Для их устранения применяется целый ряд методов. Также прилагаются определенные усилия для широкого внедрения технологий, изначально устойчивых к некоторым видам атак по побочным каналам. В качестве примера можно упомянуть исследования (см. [3]), связанные с возможностью применения в провайдере скрученных эллиптических кривых Эдвардса (см. [4]), работа с которыми будет поддержана в наших продуктах уже в ближайшем будущем.

Также стоит отметить, что в ряде решений, разрабатываемых в рамках рабочих групп Технического комитета по стандартизации «Криптографическая защита информации» (ТК26), прилагаются существенные усилия с целью исключить возможность проведения атак по побочным каналам. Это, в частности, приводит к появлению таких с первого взгляда «параноидальных» требований, как максимальный объем обрабатываемой на одном симметричном ключе информации, который в некоторых режимах протокола ESP IPsec может быть равен 1 КБ (см. [10]).

Литература

[1] Жуков А.Е. Криптоанализ по побочным каналам. Информационно-методический журнал «Защита информации. Инсайд», №5, 2010 г.

[2] Шнайер Б. Секреты и ложь. Безопасность данных в цифровом мире.  СПб.: Питер, 2003 г.

[3] Алексеев Е.К., Ошкин И.Б., Попов В.О., Смышляев С.В., Сонина Л.А. О перспективах использования скрученных кривых Эдвардса со стандартом ГОСТ Р 34.10-2012 и алгоритмом ключевого обмена на его основе. Материалы конференции Рускрипто-2014.

[4] Hisil H., Wong K.K-H., Carter G., Dawson E. Twisted Edwards Curves Revisited. IACR Cryptology ePrint Archive, 2008.

[5] Kocher P., Jaffe J., Jun B. Differential power analysis. CRYPTO’99, LNCS 1666, pp. 388-397, 1999.

[6] YongBin Zhou, DengGuo Fengю. Side-Channel Attacks: Ten Years After Its Publication and the Impacts on Cryptographic Module Security Testing. IACR Eprint archive. http://eprint.iacr.org/2005/388

[7] Matveev S. GOST 28147-89 masking against side channel attacks. CTCrypt-2014.

[8] Kocher  P., Jaffe J., Jun B., Rohatgi P. Introduction to differential power analysis. J Cryptogr Eng (2011) 1: 5–27.

[9] Kocher P., Jaffe J., Jun B. Using unpredictable information to minimize leakage from smartcards and other cryptosystems. US Patent 6,327,661.

[10] ТЕХНИЧЕСКАЯ СПЕЦИФИКАЦИЯ.  ИСПОЛЬЗОВАНИЕ ГОСТ 28148-89 ПРИ ШИФРОВАНИИ ВЛОЖЕНИЙ В ПРОТОКОЛАХ IPSEC ESP. http://tc26.ru/methods/project/

Станислав Смышляев, к.ф.-м.н.,

 начальник отдела защиты информации

ООО "КРИПТО-ПРО"


Евгений Алексеев, к.ф.-м.н.,

инженер-аналитик 1 категории

ООО "КРИПТО-ПРО"

Иллюстрация – Кирилл Таран