В компьютерной безопасности атака по сторонним каналам — это любая атака, основанная на дополнительной информации, которая может быть собрана из-за фундаментального способа реализации компьютерного протокола или алгоритма , а не из-за недостатков в конструкции самого протокола или алгоритма (например, недостатков, обнаруженных при криптоанализе криптографического алгоритма ) или незначительных, но потенциально разрушительных ошибок или упущений в реализации . (Криптоанализ также включает поиск атак по сторонним каналам.) Информация о времени, энергопотреблении, электромагнитных утечках и звуке являются примерами дополнительной информации, которая может быть использована для содействия атакам по сторонним каналам.
Некоторые атаки по сторонним каналам требуют технических знаний о внутренней работе системы, хотя другие, такие как дифференциальный анализ мощности, эффективны как атаки черного ящика . Рост приложений Web 2.0 и программного обеспечения как услуги также значительно повысил вероятность атак по сторонним каналам в Интернете, даже когда передачи между веб-браузером и сервером зашифрованы (например, через шифрование HTTPS или WiFi ), согласно исследователям из Microsoft Research и Университета Индианы . [1]
Попытки взломать криптосистему путем обмана или принуждения людей к законному доступу обычно не считаются атаками по побочным каналам: см. социальную инженерию и криптоанализ методом «резинового шланга» .
Общие классы атак по побочным каналам включают в себя:
Во всех случаях основополагающий принцип заключается в том, что физические эффекты, вызванные работой криптосистемы ( на стороне ), могут предоставить полезную дополнительную информацию о секретах в системе, например, криптографический ключ , частичную информацию о состоянии, полные или частичные открытые тексты и т. д. Термин криптофтора (секретная деградация) иногда используется для обозначения деградации секретного ключевого материала в результате утечки по побочным каналам.
ААтака по сторонним каналам кэша работает путем мониторинга критических для безопасности операций, таких какAEST[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] локально проложенной внутри металлических слоев более низкого уровня, что приводит к устойчивости как к силовым, так и к электромагнитным сторонним каналам атак.