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

(перенаправлено с «Side-channel криптоанализ»)

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

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

Введение

править

Криптографический примитив[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 года.

Литература

править

Ссылки

править