Атаки по сторонним каналам

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

Что такое атаки по сторонним каналам

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

Типы побочных каналов

1. Время. Есть атаки, использующие временные характеристики (например, сколько времени занимает операция шифрования).

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

2. Электромагнитное излучение. Атаки, использующие EM-излучение, исходящее от устройства при выполнении криптографических операций.

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

3. Акустические утечки. Да, есть утечки, обусловленные звуками, издаваемыми компьютерным оборудованием.

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

4. Потребляемая мощность. Атаки, основанные на анализе потребляемой устройством энергии при проведении операций.

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

5. Утечки данных через каналы управления памятью. Это, например, атаки типа page-fault attacks.

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

Защита от атак через сторонние каналы

  1. Понимание того, как возникают такие утечки, поможет их предотвратить на этапе разработки.

  2. Замаскированное программирование (Masking). Использование техник, которые делают выполнение операций не зависимым от входных данных.

  3. Постоянное время выполнения операций. Проверка соответствия время выполнения операций, независимо от входных данных.

  4. Физическая безопасность. Применение защиты от EM-излучения, акустических и других физических утечек.

  5. Регулярное тестирование на проникновение. Это помогает обнаружить новые уязвимости.

Last updated