В компьютерной безопасности атака по побочному каналу — это любая атака, основанная на дополнительной информации, которая может быть собрана из-за фундаментального способа реализации компьютерного протокола или алгоритма , а не из-за недостатков в конструкции самого протокола или алгоритма (например , изъянов, обнаруженных в криптоанализ криптографического алгоритма ) или незначительные , но потенциально разрушительные ошибки или упущения в реализации . (Криптоанализ также включает поиск атак по побочным каналам.) Информация о времени, энергопотреблении, электромагнитных утечках и звуке являются примерами дополнительной информации, которая может быть использована для облегчения атак по побочным каналам.
Некоторые атаки по побочным каналам требуют технических знаний о внутренней работе системы, хотя другие, такие как дифференциальный анализ мощности, эффективны как атаки «черного ящика» . Рост количества приложений Web 2.0 и программного обеспечения как услуги также значительно повысил возможность атак по побочным каналам в сети, даже если передача данных между веб-браузером и сервером зашифрована (например, с помощью шифрования HTTPS или WiFi ), согласно данным исследователям из Microsoft Research и Университета Индианы . [1]
Попытки взломать криптосистему путем обмана или принуждения людей, имеющих законный доступ, обычно не считаются атаками по побочным каналам: см. социальную инженерию и криптоанализ с помощью резинового шланга .
Общие классы атак по побочным каналам включают:
Во всех случаях основополагающий принцип заключается в том, что физические эффекты, вызванные работой криптосистемы ( на стороне ), могут предоставить полезную дополнительную информацию о секретах в системе, например, криптографический ключ , частичную информацию о состоянии, полные или частичные открытые тексты и так далее. Термин криптофтора (секретная деградация) иногда используется для обозначения деградации материала секретного ключа в результате утечки по побочным каналам.
ААтака по побочному каналу кэша работает путем мониторинга критических для безопасности операций, таких как запись в T-таблице AES[2][3][4]или модульное возведение в степень, умножение или доступ к памяти. [5]Затем злоумышленник может восстановить секретный ключ в зависимости от доступа, сделанного (или не сделанного) жертвой, выведя ключ шифрования. Кроме того, в отличие от некоторых других атак по побочным каналам, этот метод не создает сбоев в текущей криптографической операции и невидим для жертвы.
В 2017 году были обнаружены две уязвимости ЦП (получившие название Meltdown и Spectre ), которые могут использовать побочный канал на основе кэша, чтобы позволить злоумышленнику утечь содержимое памяти других процессов и самой операционной системы.
Атака по времени отслеживает перемещение данных в процессор или память и из них на оборудовании, на котором работает криптосистема или алгоритм. Просто наблюдая за изменениями в продолжительности выполнения криптографических операций, можно было бы определить весь секретный ключ. Такие атаки включают статистический анализ измерений времени и были продемонстрированы в различных сетях. [6]
Атака с анализом мощности может предоставить еще более подробную информацию, наблюдая за энергопотреблением аппаратного устройства, такого как процессор или криптографическая схема. Эти атаки грубо делятся на простой анализ мощности (SPA) и дифференциальный анализ мощности (DPA). Одним из примеров является Collide+Power, который затрагивает почти все процессоры. [7] [8] [9] В других примерах используются подходы машинного обучения . [10]
Колебания тока также генерируют радиоволны , что позволяет проводить атаки, анализирующие измерения электромагнитных (ЭМ) излучений. Эти атаки обычно используют те же статистические методы, что и атаки с анализом мощности.
Атака по побочному каналу на основе глубокого обучения [11] [12] [ 13 ] с использованием информации о мощности и электромагнитной совместимости на нескольких устройствах была продемонстрирована с возможностью взлома секретного ключа другого, но идентичного устройства всего за несколько минут. единственный след.
Известны исторические аналоги современных атак по побочным каналам. Недавно рассекреченный документ АНБ показывает, что еще в 1943 году инженер с телефоном Bell наблюдал на осциллографе поддающиеся расшифровке выбросы, связанные с расшифрованными выходными данными определенного шифрующего телетайпа. [14] По словам бывшего офицера МИ5 Питера Райта , Британская служба безопасности проанализировала выбросы французского шифровального оборудования в 1960-х годах. [15] В 1980-х годах советских злоумышленников подозревали в установке жучков внутри пишущих машинок IBM Selectric для отслеживания электрического шума, генерируемого при вращении и наклоне печатного шарика, ударяющего о бумагу; характеристики этих сигналов могли определить, какая клавиша была нажата. [16]
Потребляемая мощность устройств вызывает нагрев, который компенсируется эффектом охлаждения. Изменения температуры создают термически вызванное механическое напряжение. Это напряжение может привести к низкому уровню акустического излучения от работающих процессоров (в некоторых случаях около 10 кГц). Недавнее исследование Шамира и др. предположил, что таким же способом можно получить информацию о работе криптосистем и алгоритмов. Это атака акустического криптоанализа .
Если можно наблюдать поверхность чипа ЦП или, в некоторых случаях, корпуса ЦП, инфракрасные изображения также могут предоставить информацию о коде, исполняемом на ЦП, что известно как атака с использованием тепловизионного изображения . [ нужна цитата ]
Примеры атак по оптическому побочному каналу включают сбор информации из индикатора активности жесткого диска [17] и считывание небольшого количества фотонов, испускаемых транзисторами при изменении их состояния. [18]
Также существуют побочные каналы, основанные на распределении, и они относятся к информации, которая просачивается в результате выделения (а не использования) ресурса, такого как пропускная способность сети, клиентам, которые одновременно запрашивают конкурирующий ресурс. [19]
Поскольку атаки по побочным каналам основаны на взаимосвязи между информацией, передаваемой (утечкой) через побочный канал, и секретными данными, контрмеры делятся на две основные категории: (1) устранить или сократить выпуск такой информации и (2) устранить связь между утечка информации и секретные данные, то есть сделать утечку информации несвязанной или, скорее, некоррелированной с секретными данными, обычно посредством некоторой формы рандомизации зашифрованного текста, которая преобразует данные таким образом, что их можно отменить после криптографической операции. (например, дешифрование) завершено.
В первой категории теперь коммерчески доступны дисплеи со специальной защитой для уменьшения электромагнитного излучения и снижения восприимчивости к атакам TEMPEST . Кондиционирование и фильтрация линий электропередачи могут помочь предотвратить атаки по мониторингу электропитания, хотя такие меры следует использовать осторожно, поскольку даже очень небольшие корреляции могут остаться и поставить под угрозу безопасность. Физические корпуса могут снизить риск тайной установки микрофонов (для противодействия акустическим атакам) и других устройств микромониторинга (против атак, связанных с потреблением энергии процессором или тепловизионными атаками).
Другая мера противодействия (пока из первой категории) — заглушить излучаемый канал шумом. Например, для предотвращения атак по времени можно добавить случайную задержку, хотя злоумышленники могут компенсировать эти задержки путем усреднения нескольких измерений (или, в более общем смысле, использования большего количества измерений в анализе). Когда количество шума в побочном канале увеличивается, злоумышленнику необходимо собрать больше измерений.
Еще одной контрмерой из первой категории является использование программного обеспечения для анализа безопасности для выявления определенных классов атак по побочным каналам, которые можно обнаружить на этапах проектирования самого базового оборудования. Атаки по времени и атаки кэша можно идентифицировать с помощью определенных коммерчески доступных программных платформ для анализа безопасности, которые позволяют при тестировании идентифицировать саму уязвимость атаки, а также эффективность архитектурного изменения для обхода уязвимости. Наиболее комплексным методом применения этой контрмеры является создание безопасного жизненного цикла разработки оборудования, который включает в себя использование всех доступных платформ анализа безопасности на соответствующих этапах жизненного цикла разработки оборудования. [20]
В случае атак по времени против целей, время вычислений которых квантуется в дискретные количества тактовых циклов, эффективной контрмерой является разработка изохронного программного обеспечения, то есть запускаемого в течение точно постоянного периода времени, независимо от секретных значений. Это делает невозможными атаки по времени. [21] Такие контрмеры может быть трудно реализовать на практике, поскольку на некоторых процессорах даже отдельные инструкции могут иметь переменное время синхронизации.
Одной из частичных мер противодействия простым энергетическим атакам, но не атакам дифференциального анализа мощности, является разработка программного обеспечения так, чтобы оно было «безопасным для ПК» в «модели безопасности программного противодействия». В программе, защищенной ПК, путь выполнения не зависит от секретных значений. Другими словами, все условные ветвления зависят только от публичной информации. (Это более строгое условие, чем изохронный код, но менее строгое, чем код без ветвей.) Несмотря на то, что операции умножения потребляют больше энергии, чем NOP, практически на всех процессорах, использование постоянного пути выполнения предотвращает такие зависящие от операции различия в мощности ( различия во власти из-за выбора одной ветви над другой) от утечки любой секретной информации. [21] В архитектурах, где время выполнения инструкций не зависит от данных, программа, защищенная ПК, также невосприимчива к атакам по времени. [22] [23]
Другой способ, которым код может быть неизохронным, заключается в том, что современные процессоры имеют кэш памяти: доступ к редко используемой информации влечет за собой большие потери времени, раскрывая некоторую информацию о частоте использования блоков памяти. Криптографический код, разработанный для защиты от атак кэша, пытается использовать память только предсказуемым образом (например, получать доступ только к входным, выходным данным и данным программы и делать это в соответствии с фиксированным шаблоном). Например, следует избегать поиска в таблице , зависящего от данных, поскольку кэш может выявить, к какой части таблицы поиска осуществлялся доступ.
Другие частичные контрмеры пытаются уменьшить объем информации, утекающей из-за разницы в мощности, зависящей от данных. Некоторые операции используют мощность, которая коррелирует с количеством битов 1 в секретном значении. Использование кода с постоянным весом (например, использование вентилей Фредкина или двухканального кодирования) может уменьшить утечку информации о весе Хэмминга секретного значения, хотя пригодные для использования корреляции, вероятно, останутся, если балансировка не будет идеальной. Эту «сбалансированную схему» можно аппроксимировать в программном обеспечении, совместно манипулируя данными и их дополнением. [21]
Несколько «безопасных ЦП» были построены как асинхронные ЦП ; у них нет глобальной привязки времени. Хотя эти процессоры были предназначены для того, чтобы затруднить атаки по времени и мощности, [21] последующие исследования показали, что изменения времени в асинхронных схемах труднее устранить. [24]
Типичным примером второй категории (декорреляции) является метод, известный как ослепление . В случае расшифровки RSA с секретным показателем и соответствующими показателем и модулем шифрования метод применяется следующим образом (для простоты в формулах опущено модульное сокращение на m ): перед расшифровкой, то есть перед вычислением результата для Учитывая зашифрованный текст , система выбирает случайное число и шифрует его с помощью общедоступного показателя для получения . Затем выполняется расшифровка для получения . Поскольку система дешифрования выбрала , она может вычислить обратный модуль , чтобы исключить множитель из результата и получить фактический результат расшифровки. Для атак, требующих сбора информации по побочным каналам в результате операций с данными, контролируемыми злоумышленником , ослепление является эффективной контрмерой, поскольку фактическая операция выполняется над рандомизированной версией данных, над которой злоумышленник не имеет контроля или даже знаний.
Более общей мерой противодействия (поскольку она эффективна против всех атак по побочным каналам) является мера маскировочного противодействия. Принцип маскировки заключается в том, чтобы избегать прямого манипулирования каким-либо конфиденциальным значением, а скорее манипулировать его общим доступом: набором переменных (называемых «общими ресурсами»), такими как (где находится операция XOR ). Злоумышленник должен восстановить все значения общих ресурсов, чтобы получить какую-либо значимую информацию. [25]
Недавно моделирование «белого ящика» было использовано для разработки общих мер противодействия на уровне схемы с низкими издержками [26] как против электромагнитных атак, так и против атак по побочным каналам питания. Чтобы свести к минимуму влияние металлических слоев более высокого уровня в ИС, действующих как более эффективные антенны, [27] идея состоит в том, чтобы встроить в криптоядро схему подавления сигнатур, [28] [29] маршрутизируемую локально внутри нижнего уровня. металлические слои, что обеспечивает устойчивость к атакам как по мощности, так и по боковым электромагнитным каналам.