Атаки по сторонним каналам: как работают side-channel атаки и чем они опасны для криптосистем

Атаки по сторонним каналам: как работают side-channel атаки и чем они опасны для криптосистем

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

Что такое side-channel атаки?

Side-channel атаки (от англ. “боковые каналы” — side channels) направлены на получение конфиденциальной информации путем анализа нешифрованной информации, доступной как побочный продукт работы защищаемой системы. Это не прямые атаки на алгоритм шифрования, которые основаны на его слабостях.

В отличие от стeganографических методов скрытия данных или криптоаналитических подходов (которым требуется знание самого алгоритма и ключа), side-channel атаки извлекают информацию о секретных параметрах (ключах) напрямую из физического поведения системы во время выполнения защищенного процесса. Это делает такие атаки особенно опасными, так как они не зависят от слабостей алгоритма в чистом виде.

Основные принципы работы

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

Измеримые метрики

  • Временные характеристики: разное время выполнения операций при обработке различных данных.
  • Потребление энергии: электрический ток, потребляемый процессором и другими компонентами системы во время криптографической операции может варьироваться. Эти изменения фиксируются специальными приборами.
  • Излучение тепла: количество тепла, выделяемого процессором и другими компонентами во время выполнения операций, также может зависеть от обрабатываемых данных и используемых алгоритмических шагов.
  • Электромагнитные излучения: ЭМП (электромагнитное излучение) сопровождает работу процессоров. Анализ частотного спектра этого излучения может выдать информацию о выполняемых операциях.
  • Звуковые шумы: некоторые компоненты компьютера (например, память) могут издавать характерные звуки при работе с данными разной природы.

Предпосылка для атаки

Ключевым моментом является то, что эти физические характеристики системы (ciphertexts, plaintexts, ключи) не являются частью шифровальной ямы (cryptobox) в теоретическом смысле. Они возникают из-за реализации алгоритмов на аппаратных или программных платформах и их взаимодействия с физическими ресурсами.

Side-channel атаки используют корреляцию между этими внешними (или не полностью защищенными) метриками и секретной информойой внутри системы. Примером может быть зависимость времени выполнения операции шифрования от конкретного бита ключа или входных данных.

Типичные виды side-channel атак

Существует множество различных типов SCA, но наиболее частыми являются:

DPA (Differential Power Analysis)

Differential Power Analysis — это классическая техника анализа энергопотребления. Взломщик измеряет напряжение на шинах питания процессора или ток, потребляемый им во время выполнения операций, и анализирует корреляции между этими измерениями и секретными данными (ключами).

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

Криптоаналитические атаки на основе времени (Ciphertext Timing Attacks)

Ciphertext Timing Attacks, основанные на времени, являются подвидом SCA. Они измеряют время выполнения операций шифрования/дешифрования в зависимости от ciphertexts — зашифрованных данных.

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

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

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

Программно-временные атаки (Program Code Timing Attacks)

CPU timing attacks, как и другие программные атаки на основе времени, анализируют разницу во времени выполнения операций в зависимости от входных данных.

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

Почему SCA опасны для криптосистем?

Внешний вид side-channel атак может быть следующим:

  • Атака происходит на физическом уровне, используя измерения реальных показателей работы системы.
  • Данные (ключ) получаются в результате наблюдения за ними во время их использования. Криптография сама по себе не предотвращает это.
  • SCA используют реализацию алгоритма, а не только сам алгоритм или его параметры. Поэтому даже криптографически сильный алгоритм может быть подвержен SCA из-за слабой реализации.

Основная опасность заключается в том, что:

  • Слабость не в алгоритме, а в его реализации: Идеальный (теоретически) безопасный алгоритм может стать уязвимым из-за того, как он написан и оптимизирован на аппаратном или программном уровне.
  • Нарушение принципа реализации: Классические криптографические методы часто не учитывают физические аспекты работы системы. SCA нарушают этот принцип, используя “дыры” в физической защите.
  • Уникальность и сила: В отличие от слабых алгоритмов (weak crypto), которые легко взламывают любым методом криптоанализа, SCA часто требуют доступа или измерения физических параметров системы. Это делает их уникальными угрозой и показывает насколько глубокие могут быть проблемы безопасности.

Таким образом, несмотря на кажущуюся надежность сложных математических алгоритмов шифрования (AES, RSA), защита криптосистем должна включать борьбу со side-channel атаками. Это требует особого внимания при разработке и тестировании программного обеспечения и аппаратных платформ — создания так называемой “спецификации реализации”.


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *