Loading AI tools
Из Википедии, свободной энциклопедии
Атака по сторонним (или побочным) каналам (англ. side-channel attack) — класс атак, направленный на уязвимости в практической реализации криптосистемы. В отличие от теоретического криптоанализа, атака по сторонним каналам использует информацию о физических процессах в устройстве, которые не рассматриваются в теоретическом описании криптографического алгоритма. Хотя подобные атаки были хорошо известны уже в 1980-х годах, они получили широкое распространение после публикации результатов Полом Кохером[англ.] в 1996 году[1].
Криптографический примитив[2] можно рассматривать с двух разных точек зрения: с одной стороны, это абстрактный математический объект (алгоритм, возможно параметризованный ключом, переводящий некоторый входной текст в выходной текст); с другой стороны, этот примитив в конечном счёте должен быть реализован в программе, исполняемой на определённом процессоре, на определённом оборудовании, таким образом, он будет обладать определённой спецификой, присущей именно этой реализации.
«Классический» криптоанализ рассматривает криптографические примитивы с первой точки зрения. Второй подход используется в криптоанализе по побочным каналам. Среди параметров специфичных для конкретной реализации обычно используют время выполнения операций, потребляемую мощность, электромагнитное излучение, звуки, издаваемые устройством, и другие. Атаки по сторонним каналам обладают меньшей общностью чем традиционные атаки, основанные на математическом анализе криптографического алгоритма, но в то же время они существенно эффективнее. На текущий момент большинство осуществлённых на практике удачных атак используют слабости в реализации и размещении механизмов криптоалгоритма.[3]
Атаки по сторонним каналам в литературе обычно классифицируют по следующим независимым признакам[4]:
В зависимости от степени воздействия на вычислительный процесс атаки можно разделить на:
В зависимости от уровня доступа[5] к аппаратному модулю можно выделить три класса атак[6]:
Следует заметить, что устройства обычно оборудуются защитными механизмами, защищающими от проникновения (агрессивных атак)[8]. Неагрессивные же атаки заметить и предотвратить практически невозможно. Неагрессивные атаки также более выгодны с экономической точки зрения: масштабные атаки почти не требуют увеличения стоимости оборудования.[7]
В зависимости от методов, применяемых для анализа полученной информации, атаки по сторонним каналам можно поделить на[4]:
Атака зондированием (англ. probing attack) — агрессивная пассивная простая атака. Для получения информации устройство вскрывается, с помощью оптического микроскопа исследуется печатная плата и устанавливаются щупы на проводники, по которым идут сигналы, или же с помощью микроскопа[10] исследуется состояние ячеек памяти[11][12]. Процесс упрощается при использовании зондирующей установки, включающей в себя микроскопы и микроманипуляторы для установки щупов на поверхности чипа. Такие установки используются в полупроводниковой промышленности для тестирования образцов продукции; цена на вторичном рынке составляет[когда?] порядка 10 тыс. долларов[11]. Чтобы упростить наблюдение, криптоаналитик обычно замедляет тактовую частоту работы устройства[13].
Атака по времени (англ. timing attack) — первая из широко известных атак по сторонним каналам, предложенная Полом Кохером в 1996 году[14] и применённая на практике против алгоритма RSA в 1998 году[15]. Атака основана на предположении, что различные операции выполняются в устройстве за различное время, в зависимости от поданных входных данных. Таким образом, измеряя время вычислений и проводя статистический анализ данных, можно получить полную информацию о секретном ключе.
Выделяют степени подверженности алгоритмов данному типу атак[16]:
Одной из разновидностей атак по времени также являются атаки на кэш (англ. cache-based attacks). Данный тип атак основывается на измерениях времени и частоты промахов в кэш процессора и направлен на программные реализации шифров[17].
Атаки по времени также могут применяться удалённо. Так, например, известны атаки по сети на сервера использующие OpenSSL[18].
Из распространённых алгоритмов атаке по времени подвержены DES, AES[19], IDEA, RC5[14].
Атака по ошибкам вычислений (англ. fault–induction attack) — активная атака. Основная идея — осуществление различных воздействий на шифратор с целью возникновения искажения информации на некоторых этапах шифрования. Управляя этими искажениями и сравнивая результаты на разных этапах работы устройства, криптоаналитик может восстановить секретный ключ. Изучение атак на основе ошибок вычислений обычно разделяется на две ветви: одна изучает теоретические возможности для осуществления различных ошибок в исполнении алгоритма, другая исследует методы воздействия для реализации этих ошибок в конкретных устройствах.
Наиболее распространённые методы воздействия[20]:
Атаки по ошибкам вычислений могут быть классифицированы по типу полученной ошибки[20]:
Атаки на основе ошибок вычислений изучаются с 1996 года[23] и с тех пор почти для всех алгоритмов была показана возможность взлома с помощью такого типа атак. Среди известных алгоритмов можно выделить:
Атака по энергопотреблению, или атака по потребляемой мощности (англ. power analysis attack) — пассивная атака, предложенная Полом Кохером в 1999 году[27]. Суть данной атаки состоит в том, что в процессе работы шифратора криптоаналитик с высокой точностью измеряет энергопотребление устройства и таким образом получает информацию о выполняемых в устройстве операциях и их параметрах. Так как питание устройства обычно предоставляется внешними источниками, такая атака очень легко осуществима: достаточно поставить последовательно в цепь питания резистор и точно измерять ток, проходящий через него. Другой способ — измерять изменения напряжения на выходах устройства в процессе шифрования[28].
Атаки по потребляемой мощности отличаются высокой эффективностью с точки зрения затрат на криптоанализ. Так например простая атака по потребляемой мощности (англ. simple power analysis) на смарт-карту осуществима за несколько секунд, а некоторые варианты разностных атак по потребляемой мощности (англ. differential power analysis) позволяют получить секретный ключ всего за 15 измерений[27].
Атака по электромагнитному излучению (англ. electromagnetic analysis attacks) — пассивная атака. Электронные шифрующие устройства излучают электромагнитное излучение во время своей работы. Связывая определённые спектральные компоненты этого излучения с операциями выполняемыми в устройстве, можно получить достаточно информации для определения секретного ключа или самой обрабатываемой информации.
Примером этого вида атак является перехват ван Эйка, осуществлённый в 1986 году. В дальнейшем атаки по электромагнитному излучению применялись к различным шифрам, таким как:
Акустическая атака (англ. acoustic attack) — пассивная атака, направленная на получение информации из звуков, производимых устройством. Исторически данный тип атак связывается с прослушкой работы принтеров и клавиатур,[34] но в последние годы были найдены уязвимости позволяющие использовать акустические атаки направленные на внутренние компоненты электронных шифраторов[35].
Атака по видимому излучению (англ. visible light attack) — пассивная атака, предложенная Маркусом Куном в 2002 году[36]. В своей работе он показал, что используя высокоточный датчик интенсивности света можно измерить изменения в интенсивности рассеянного от монитора света, и таким образом восстановить изображение на экране[37]. Данный тип атак также можно применить к шифраторам, использующим светодиодные индикаторы, анализируя данные от которых можно получить информацию об операциях в устройстве[38].
Методы противодействия атакам по побочным каналам зависят от конкретной реализации алгоритма и необходимой степени защищённости устройства. Существуют официальные стандарты по защищённости криптографических устройств, такие как TEMPEST и FIPS. В литературе, посвящённой атакам по сторонним каналам, выделяют следующие общие методы противодействия[39]:
Достаточно сильное физическое экранирование устройства позволяет устранить почти все побочные каналы утечки информации. Недостатком экранирования является существенное увеличение стоимости и размеров устройства.
Добавление шума существенно усложняет задачу криптоаналитика. Шумы уменьшают процент полезной информации в побочном канале, делая её нецелесообразной по затратам или вообще невозможной. Шум может быть добавлен как программно (введение случайных вычислений), так и аппаратно (установка различных генераторов шума).
Чтобы криптоаналитик не смог провести атаку по времени исполнения все этапы шифрования в устройстве должны выполняться за одинаковое время. Добиться этого можно следующими способами:
Очевидным недостатком таких решений является замедление работы устройства. Также такие меры не помогают от динамических задержек, таких как промах в кэш.
По возможности при проведении операций должны быть задействованы все аппаратные части устройства (например регистры или вентили), на неиспользуемых частях следует проводить ложные вычисления. Таким образом можно добиться постоянства энергопотребления устройством и защититься от атак по энергопотреблению.
Защититься от множества атак по сторонним каналам можно устранив в алгоритме операции условного перехода, зависящие от входных данных или секретного ключа. В идеале алгоритм вообще не должен содержать операторов ветвления, зависящих от входных данных или ключа, и все вычисления должны производиться с помощью элементарных побитовых операций.
Если вычисления явно не зависят от входных данных или секретного ключа, то криптоаналитик также не сможет их получить из информации по побочному каналу. Добиться этого можно несколькими способами:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.