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

Атака по энергопотреблению на алгоритм RSA. Левый пик соответствует операции быстрого возведения в степень без умножения, правый — с умножением, что позволяет восстановить значение обрабатываемых битов.

Атака по сторонним (или побочным) каналам (англ. side-channel attack) — класс атак, направленный на уязвимости в практической реализации криптосистемы. В отличие от теоретического криптоанализа, атака по сторонним каналам использует информацию о физических процессах в устройстве, которые не рассматриваются в теоретическом описании криптографического алгоритма. Хотя подобные атаки были хорошо известны уже в 1980-х годах, они получили широкое распространение после публикации результатов Полом Кохером[англ.] в 1996 году[1].

Криптографический примитив[2] можно рассматривать с двух разных точек зрения: с одной стороны, это абстрактный математический объект (алгоритм, возможно параметризованный ключом, переводящий некоторый входной текст в выходной текст); с другой стороны, этот примитив в конечном счёте должен быть реализован в программе, исполняемой на определённом процессоре, на определённом оборудовании, таким образом, он будет обладать определённой спецификой, присущей именно этой реализации.

«Классический» криптоанализ рассматривает криптографические примитивы с первой точки зрения. Второй подход используется в криптоанализе по побочным каналам. Среди параметров специфичных для конкретной реализации обычно используют время выполнения операций, потребляемую мощность, электромагнитное излучение, звуки, издаваемые устройством, и другие. Атаки по сторонним каналам обладают меньшей общностью чем традиционные атаки, основанные на математическом анализе криптографического алгоритма, но в то же время они существенно эффективнее. На текущий момент большинство осуществлённых на практике удачных атак используют слабости в реализации и размещении механизмов криптоалгоритма.[3]

Классификация атак

[править | править код]

Атаки по сторонним каналам в литературе обычно классифицируют по следующим независимым признакам[4]:

Контроль над вычислительным процессом

[править | править код]

В зависимости от степени воздействия на вычислительный процесс атаки можно разделить на:

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

Способ доступа к системе

[править | править код]

В зависимости от уровня доступа[5] к аппаратному модулю можно выделить три класса атак[6]:

  • Агрессивные (англ. invasive) — вскрытие системы криптоаналитиком и получение прямого доступа к внутренним компонентам.
  • Полуагрессивные (англ. semi-invasive) — воздействие на внутренние компоненты происходит без непосредственного контакта с устройством: например с помощью лазерного луча[7].
  • Неагрессивные (англ. non-invasive) — без воздействия на исследуемую систему; используется только внешне доступная информация: например время вычисления или потребляемая энергия.

Следует заметить, что устройства обычно оборудуются защитными механизмами, защищающими от проникновения (агрессивных атак)[8]. Неагрессивные же атаки заметить и предотвратить практически невозможно. Неагрессивные атаки также более выгодны с экономической точки зрения: масштабные атаки почти не требуют увеличения стоимости оборудования.[7]

Применяемый метод анализа

[править | править код]

В зависимости от методов, применяемых для анализа полученной информации, атаки по сторонним каналам можно поделить на[4]:

  • Простые (англ. simple side-channel attack) — исследование прямой зависимости между процессами в устройстве и полученной криптоаналитиком информацией; полезная информация в сигнале должна быть отделима от уровня шумов.
  • Разностные (англ. differential side-channel attack) — криптоаналитик использует статистические методы для исследования зависимости между входными данными и информацией, полученной по стороннему каналу; используется множество измерений, специальная обработка сигнала и коррекция ошибок[9].

Известные типы атак

[править | править код]

Атака зондированием

[править | править код]

Атака зондированием (англ. 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]:

Экранирование

[править | править код]

Достаточно сильное физическое экранирование устройства позволяет устранить почти все побочные каналы утечки информации. Недостатком экранирования является существенное увеличение стоимости и размеров устройства.

Добавление шума

[править | править код]

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

Уравнивание времени выполнения операций

[править | править код]

Чтобы криптоаналитик не смог провести атаку по времени исполнения все этапы шифрования в устройстве должны выполняться за одинаковое время. Добиться этого можно следующими способами:

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

Очевидным недостатком таких решений является замедление работы устройства. Также такие меры не помогают от динамических задержек, таких как промах в кэш.

Балансировка энергопотребления

[править | править код]

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

Устранение условных переходов

[править | править код]

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

Независимость вычислений от данных

[править | править код]

Если вычисления явно не зависят от входных данных или секретного ключа, то криптоаналитик также не сможет их получить из информации по побочному каналу. Добиться этого можно несколькими способами:

  • Маскирование (англ. masking) — способ при котором к входным данным применяется некоторая маска, производятся вычисления и обратная коррекция маски. Таким образом при атаке по сторонним каналам криптоаналитик получит некоторое промежуточное значение, не раскрывающее входных данных.
  • Произведение вычислений вслепую (англ. blinding) — подход в криптографии, при котором устройство предоставляет функцию шифрования, не зная при этом реальных входных и выходных данных. Впервые подобный подход был применён к алгоритму RSA и основан на свойстве гомоморфности функции шифрования[40].

Примечания

[править | править код]
  1. Kocher, Paul. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems (англ.) // Advances in Cryptology—CRYPTO’96 : journal. — 1996. — Vol. 1109. — P. 104—113. — doi:10.1007/3-540-68697-5_9. Архивировано 24 сентября 2015 года.
  2. Что такое криптографический примитив? Криптография: Общие вопросы (7 октября 2010). — «Источником примитивов являются труднорешаемые математические проблемы (например проблема дискретного логарифма может служить основой однонаправленной функции) и специально созданные конструкции (блочные шифры, хеш-функции).» Дата обращения: 27 ноября 2011. Архивировано 13 мая 2012 года.
  3. YongBin Zhou, DengGuo Feng, 2006, p. 3.
  4. 1 2 YongBin Zhou, DengGuo Feng, 2006, pp. 8—9.
  5. Таковыми являются физический, электрический или логический уровень интерфейсов доступных криптоаналитику.
  6. Anderson R., Bond M., Clulow J., Skorobogatov, S. Cryptographic processors – a survey (англ.) // Proceedings of the IEEE : журнал. — 2006. — Vol. 94, iss. 2. — P. 357—369. — ISSN 0018-9219. — doi:10.1109/JPROC.2005.862423. Архивировано 4 марта 2016 года.
  7. 1 2 3 S. Skorobogatov, R. Anderson. Optical Fault Induction Attacks (англ.) // CHES : журнал. — UK, 2003. — P. 2—12. — ISBN 3-540-00409-2. — doi:10.1109/JPROC.2005.862423. Архивировано 7 ноября 2011 года.
  8. Information Technology Laboratory. Security requirements for cryptographic modules (англ.) (pdf). Federeal information processing standarts publication. National Institute of Standards and Technology (25 мая 2001). Дата обращения: 18 ноября 2011. Архивировано 20 мая 2012 года.
  9. Le, T. H.; Clediere, J.; Serviere, C.; Lacoume, J. L.;. Noise Reduction in Side Channel Attack Using Fourth-Order Cumulant (англ.) // Information Forensics and Security, IEEE Trans on : сборник. — 2007. — Vol. 2, iss. 4. — P. 710—720. — ISSN 1556-6013. — doi:10.1109/TIFS.2007.910252.
  10. Используются электронные и ионные микроскопы
  11. 1 2 O. Kömmerling, M. G. Kuhn. Design principles for Tamper-Resistant smartcard processors (англ.) // Proceedings of the USENIX Workshop on Smartcard Technology : сборник. — 1999. — P. 9—20. Архивировано 4 ноября 2016 года.
  12. Dr Sergei Skorobogatov. Side-channel attacks: new directions and horizons (англ.). Design and Security of Cryptographic Algorithms and Devices (ECRYPT II) (3 июня 2011). Дата обращения: 18 ноября 2011. Архивировано 20 мая 2012 года.
  13. Ross Anderson. Security engineering: a guide to building dependable distributed systems. — New York: John Wiley & Sons, 2001. — С. 291—297. — 591 с. — ISBN 0470068523. Архивировано 24 августа 2007 года.
  14. 1 2 Paul C. Kocher. Timing attacks on implementations of Diffie-Hellmann, RSA, DSS, and other systems (англ.) // Advances in Cryptology — CRYPTO '96 : сборник. — Springer, 1996. — Vol. 1109. — P. 104—113. Архивировано 22 октября 2010 года.
  15. J.-F. Dhem, F. Koeune, P.-A. Leroux, P. Mestre, J.-J. Quisquater, J.-L. Willems. A practical implementation of the timing attack (англ.) // Proceedings of the The International Conference on Smart Card Research and Applications : сборник. — London, UK: Springer-Verlag, 1998. — P. 167—182. — ISBN 3-540-67923-5. Архивировано 6 июня 2010 года.
  16. James Nechvatal, Elaine Barker Lawrence Bassham, Morris Dworkin, James Foti and Edward Roback. Report on the development of the advanced encryption standard (AES) (англ.) // Journal of Research of the National Institute of Standards and Technology : журнал. — 2001. — Iss. 106, no. 3. — doi:10.1.1.106.2169. Архивировано 30 декабря 2010 года.
  17. Yukiyasu Tsunoo , Teruo Saito , Tomoyasu Suzaki , Maki Shigeri. Cryptanalysis of DES implemented on computers with cache (англ.) // Proc. of CHES 2003, Springer LNCS : сборник. — Springer-Verlag, 2003. — P. 62—76. — doi:10.1.1.135.1221. Архивировано 3 декабря 2013 года.
  18. David Brumley and Dan Boneh. Remote timing attacks are practical (англ.) // Proceedings of the 12th conference on USENIX Security Symposium : сборник. — 2003. — Vol. 12. Архивировано 28 июля 2011 года.
  19. Werner Schindler , François Koeune , Jean-Jacques Quisquater. Improving Divide and Conquer Attacks against Cryptosystems by Better Error Detection/Correction Strategies (англ.) // Proc. of 8th IMA International Conference on Cryptography and Coding : сборник. — 2001. — P. 245—267. — doi:10.1.1.13.5175. Архивировано 18 января 2006 года.
  20. 1 2 Jean-Jacques Quisquater, Francois Koeune. Side Channel Attacks. State-of-the-art (англ.) pp. 12—13 (октябрь 2010). Дата обращения: 24 ноября 2011. Архивировано 9 мая 2012 года.
  21. Barenghi, A.; Bertoni, G.; Parrinello, E.; Pelosi, G. Low Voltage Fault Attacks on the RSA Cryptosystem (англ.) // Workshop on Fault Diagnosis and Tolerance in Cryptography : сборник. — 2009. — P. 23—31. — ISBN 978-1-4244-4972-9. — doi:10.1109/FDTC.2009.30.
  22. 1 2 Johannes Blömer, Jean-Pierre Seifert. Fault Based Cryptanalysis of the Advanced Encryption Standard (AES) (англ.) // Financial Cryptography : журнал. — 2003. — Vol. 2742. — P. 162—181. — doi:10.1007/978-3-540-45126-6_12. Архивировано 17 июля 2014 года.
  23. 1 2 D. Boneh, R. A. DeMillo, and R. J. Lipton. On the importance of checking cryptographic protocols for faults (англ.) // Advances in Cryptology — EUROCRYPT '97 : сборник. — Springer, 1997. — Vol. 1233. — P. 37—51. — doi:10.1.1.48.9764. Архивировано 5 сентября 2017 года.
  24. Marc Joye, Arjen K. Lenstra, and Jean-Jacques Quisquater. Chinese remain-dering based cryptosystems in the presence of faults (англ.) // Journal of Cryptology : журнал. — 1999. — No. 4. — P. 241—245. — doi:10.1.1.55.5491. Архивировано 10 сентября 2003 года.
  25. Eli Biham and Adi Shamir. Differential Fault Analysis of Secret Key Cryptosystems (англ.) // Proceedings of the 17th Annual International Cryptology Conference on Advances in Cryptology (CRYPTO '97) : сборник. — Springer-Verlag, 1997. — Vol. 1294. — P. 513—525. — doi:10.1.1.140.2571. Архивировано 10 августа 2014 года.
  26. I. Biehl, B. Meyer, and V. Muller. Differential fault attacks on elliptic curve cryptosystems (англ.) // Advances in Cryptology — CRYPTO 2000 : сборник. — Springer-Verlag, 2000. — Vol. 1880. — P. 131—146. — doi:10.1.1.107.3920. Архивировано 17 декабря 2021 года.
  27. 1 2 Paul Kocher , Joshua Jaffe , Benjamin Jun. Differential Power Analysis (англ.) // Proc. of Advances in Cryptology (CRYPTO '99), LNCS : сборник. — 1999. — Vol. 1666. — P. 388—397. — doi:10.1.1.40.1788. Архивировано 27 сентября 2011 года.
  28. Adi Shamir. A Top View of Side Channel Attacks (англ.) (pdf) pp. 24—27 (2011). — Презентация, содержащая пример атака по вариации напряжения USB-порта. Дата обращения: 23 ноября 2011. Архивировано 20 мая 2012 года.
  29. Jean-Jacques Quisquater and David Samyde. ElectroMagnetic Analysis (EMA): Measures and Counter-measures for Smart Cards (англ.) // E-SMART '01 Proceedings of the International Conference on Research in Smart Cards: Smart Card Programming and Security : сборник. — Springer-Verlag, 2001. — Vol. 2140. — P. 200—210. — doi:10.1007/3-540-45418-7_17. (недоступная ссылка)
  30. Karine Gandolfi , D. Naccache , C. Paar , Karine G. , Christophe Mourtel , Francis Olivier. Electromagnetic Analysis: Concrete Results (англ.) // Proceedings of the Third International Workshop on Cryptographic Hardware and Embedded Systems : сборник. — Springer-Verlag, 2001. — P. 251—261. — ISBN 3-540-42521-7. Архивировано 5 марта 2016 года.
  31. Vincent Carlier , Hervé Chabanne , Emmanuelle Dottax , Hervé Pelletier , Sagem Sa. Electromagnetic Side Channels of an FPGA Implementation of AES (англ.) // Computer as a Tool, 2005. EUROCON 2005 : сборник. — 2005. Архивировано 8 мая 2013 года.
  32. E. De Mulder , P. Buysschaert , S. B. Örs , P. Delmotte , B. Preneel , I. Verbauwhede. Electromagnetic Analysis Attack on a FPGA Implementation of an Elliptic Curve Cryptosystem (англ.) // EUROCON: Proceedings of the International Conference on “Computer as a tool : сборник. — 2005. — P. 1879—1882. — doi:10.1109/EURCON.2005.1630348. Архивировано 4 марта 2016 года.
  33. Pierre-alain Fouque , Gaëtan Leurent , Denis Réal , Frédéric Valette. Practical Electromagnetic Template Attack on HMAC (англ.) // Cryptographic Hardware and Embedded Systems - CHES 2009 : сборник. — 2009. — P. 66—80. — doi:10.1.1.156.4969. Архивировано 12 июня 2011 года.
  34. Li Zhuang, Feng Zhou, and J. D. Tygar. Keyboard acoustic emanations revisited (англ.) // Proceedings of the 12th ACM conference on Computer and communications security : сборник. — 2005. — P. 373—382. — doi:10.1145/1102120.1102169. Архивировано 3 мая 2013 года.
  35. Adi Shamir, Eran Tromer. Acoustic cryptanalysis: On nosy people and noisy machines (англ.) (2011). — Предварительное описание концепции. Дата обращения: 25 ноября 2011. Архивировано 20 мая 2012 года.
  36. Kuhn, M. G. Optical time-domain eavesdropping risks of CRT displays (англ.) // Security and Privacy, 2002. Proceedings. 2002 IEEE Symposium on : сборник. — 2002. — P. 3—18. — doi:10.1109/SECPRI.2002.1004358. Архивировано 6 октября 2011 года.
  37. Markus Kuhn. Optical Emission Security – Frequently Asked Questions (англ.) (2002). Дата обращения: 23 ноября 2011. Архивировано 20 мая 2012 года.
  38. Joe Loughry and David A. Umphress. Information Leakage from Optical Emanations (англ.) // ACM Transactions on Information and System Security : журнал. — 2002. — Vol. 5, iss. 3. — P. 262—289. — doi:10.1145/545186.545189. Архивировано 1 октября 2011 года.
  39. YongBin Zhou, DengGuo Feng, 2006, pp. 22—24.
  40. Goldwasser S. and Bellare M. Lecture Notes on Cryptography (англ.). Summer course on cryptography, MIT (1996—2001). Дата обращения: 27 ноября 2011. Архивировано 20 мая 2012 года.

Литература

[править | править код]