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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Атака по енергозбереженню на алгоритм RSA. Лівий пік відповідає операції швидкого піднесення до степеня без множення, правий (ширший) — із множенням, що уможливлює відновити значення бітів, що обробляються

Атака сторонніми каналами (англ. side channel attack) — клас атак, спрямований на вразливості практичного втілення криптосистеми. На відміну від теоретичного криптоаналізу, атака сторінніми каналами використовує інформацію про фізичні процеси у пристрої, які не розглядаються у теоретичному описі криптографічного алгоритму. Деякі атаки сторонніми каналами вимагають знання внутрішніх дій системи на якій втілено алгоритм, інші, такі як диференційній аналіз енерговикористання, дієві як атаки на чорний ящик. Найпотужніші атаки сторонніми каналами покладаються на статистичні методи Пола Кохера.[Джерело?]

Вступ[ред.ред. код]

Криптографічний примітив можна розглядати з двох різних точок зору: з одного боку, це абстрактний математичний об'єкт (алгоритм, можливо параметризований ключем, що переводить деякий текст на вході в текст на виході); з іншого боку, цей примітив зрештою треба втілити у програмі, що виконуватиметься на певному процесорі та іншому обладнані, таким чином він володітиме певними особливостями саме цієї реалізації.

«Класичний» криптоаналіз розглядає криптографічні примітиви з першої точки зору. Другий підхід використовується в криптоаналізі сторонніми каналами. Серед параметрів притаманних певному втіленню зазвичай використовують час виконання, спожиту потужність, звуки, які видає пристрій, випромінювання та інші. Атакам сторонніми каналами властива менше потужність ніж традиційні атаки, основані на математичному аналізі криптографічного алгоритму, але разом з тим вони значно дієвіші. На поточний момент більшість практично здійснених вдалих атак використовуються слабкості у втілені і розташуванні механізмів криптоалгоритму.[1]

Класифікація атак[ред.ред. код]

Атаки сторонніми каналами в літературі зазвичай класифікують за такими ортогональними принципами [2]:

Контроль над процесом обчислення[ред.ред. код]

Залежно від ступеню впливу на процес обчислення атаки можна поділити на:

  • Пасивні — нападник отримує без помітного впливу на систему; система при цьому продовжує діяти як і раніше.
  • Активні — нападник впливає на систему, в наслідку чого змінюється її поведінка; така зміна може бути непомітною для системи яку атакують, але криптоаналітик в змозі використати цю інформацію.

Спосіб доступу до системи[ред.ред. код]

Залежно від рівня доступу[3] до апаратного модуля можна виділити три класа атак[4]:

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

Варто зазначити, що пристрій обладнується захисними механізмами, що захищають від проникнення (насильницьких атак).[6] Помітити і запобігти ненасильницьким атакам практично неможливо. Ненасильницькі атаки також вигідніші з економіної точки зору: масштабні атаки майже не вимагають збільшення вартості обладнання.[5]

Застосовний метод аналізу[ред.ред. код]

В залежності від методів зстосовних для аналізу отриманої інфи, атаки сторонніми каналами можна поділити на[2]:

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

Відомі типи атак[ред.ред. код]

Атака зондуванням[ред.ред. код]

Атака зондуванням (англ. probing attack) — насильницька пасивна проста атака. ля отримання інформації пристрій відкривається, за допомогою оптичного мікроскопа вивчається друкована плата і встановлюються щупи на провідники, якими йдуть сигнали, або за допомогою мікроскопа[8] досліджується стан комірок пам'яті.[9]}}[10] процес спрощується при використанні зондувального приладу, яка включає мікроскопи і мікроманіпулятори для встановлення щупів на поверхні чипа. Такі прилади використовуються в напівпровідниковій промисловості для перевірки зразків виробів; ціна на вторинному ринку складаєблизько 10000$.[9] Щоб спростити спостереження криптоаналітик зазвичай уповільнює тактову частоту роботи приладу.[11]

Атаки по часу[ред.ред. код]

Докладніше: Атака по часу

Атака по часу (англ. timing attack) — перша серед широко відомих атак сторонніми каналами, запропонована Полом Кохером 1996[12] і застосована на практиці проти алгоритму RSA 1998.[13] Атака основана на припущені, що різні операції виконуються в пристрої за різний час, залежно від поданих на вхід даних. Так, вимірюючи час обчислень і проводячи статистичний аналіз даних, можна отримати повну інформацію про секретний ключ.

Вирізняють ступені схильності алгоритмів до даного типу атак[14]:

  • Атака неможлива на алгоритми, операції яких виконуються за однаковий час на всіх платформах: зсув, циклічний зсув та інші бітові операції над фіксованим числом біт.
  • Можлива атака на алгоритми, що використовують додавання і віднімання.
  • Особливо схильні до таких атак алгоритми, що використовують множення, ділення, піднесення до степеня і бітові операції на довільним числом біт.

Одним з різновидів атак по часу є також атаки на кеш (англ. cache-based attacks). Цей тип атак ґрунтується на вимірюваннях часу і частоти промахів в кеш процесора і спрямований на програмні реалізації шифрів[15]

Атаки по часу також можна застосовувати віддалено. Так наприклад, відомі атаки по мережі на сервери, що використовують OpenSSL.[16]

Серед розповсюджених алгоритмів атаці по часу схильні DES, AES, [17] IDEA, RC5.[12]

Атаки по помилках обчислень[ред.ред. код]

Атака по помилках обчислень (англ. fault–induction attack) — активна атака. Основна ідея — здійснення різних впливів на шифратор з метою утворення викривлення інформації на деяких етапах шифрування. Керуючи цими викривленнями і порівнюючи висліди на різних етапах роботи пристрою, криптоаналітик може відновити секретний ключ. Вивчення атак на основі помилок обчислень зазвичай розділяються на дві гілки: одна вивчає теоретичні можливості для утворення помилок в самому алгоритмі, друга досліджує методі впливу для втілення цих помилок в конкретних пристроях.

Методи впливу[ред.ред. код]

Найрозповсюдженіші методи впливу[18]:

  • Зміна напруги живлення криптосистеми. Відхилення в живлені, що сильно перевищують задані виробником норми, можуть призвести до помилок на певних етапах роботи, не заважаючи пристрою завершити процес шифрування. [19]
  • Зміна будови шифратора (порушення електричних контактів).
  • Зміна тактової частоти шифрувального пристрою. При точному керуванні відхиленням тактової частоти від заданої норми, можна досягти повної зміни виконання інструкцій в пристрої, аж до невиконання певної інструкції. [20] Такі атаки особливо застосовні до смарт-карт, тактовий сигнал для яких подається зовнішнім генератором.
  • Вплив лазерним променем або сфокусованим світовим пучком. За допомогою такого впливу можна змінювати стан комірки пам'яті і впливати на умовні переходи в виконанні коду.[5]
  • Вплив змінним магнітним полем. Змінне магнітне поле викликає в ланцюгах пристрою вихрові струми, які можуть змінювати стан комірок пам'яті.
  • Міщення пристрою в сильне електромагнітне поле.
  • Підвищення температури якоїсь частини шифратора.

Різновиди помилок[ред.ред. код]

Атаки по помилках обчислень можна впорядкувати по типу отриманої помилки[18]:

  • Сталі або змінні помилки. Сталі мають сили впродовж дії усього алгоритму, наприклад встановлення значення в комп'ютерній пам'яті або зміна шляху проходження сигналу. Змінні помилки відбиваються лише на певних етапах.
  • Місце виникнення помилки: місцева помилка, наприклад зміна комірки пам'яті, або помилка в довільному місці пристрою, наприклад атака за допомогою електромагнітного поля.
  • Час впливу: деякі атаки вимагають застосування впливу в певний час, як наприклад зміна тактової частоти, інші ж дозволяють здійснити атаку в ширшому діапазоні часу роботи.
  • Тип помилки: зміна значення біта, установка встановленого значення, змін азначення групи бітів повністю, зміна потоку виконання команд та інші

Приклади атак на помилки обчислень[ред.ред. код]

Атаки на основі помилок обчислень вивчаються з 1996[21] і відтоді майже для всіх алгоритмів показали можливість зламу за допомогою такого типу атак. Серед відомих алгоритмів можна виділити:

Атаки по енергоспоживанню[ред.ред. код]

Атака по енергоспоживанню (англ. power analysis attack) — пасивна атака, запропонована Полом Кохером у 1999.[25] Сутність цієї атака полягає в тому, що в процесі роботи шифратора криптоаналітик з високим ступенем точності вимірює енергоспоживання пристрою і таким чином отримує інформацію про виконувані в пристрої дії та їх параметри. Через те, що живлення пристрою зазвичай подається ззовні, така атаку атаку легко втілити: достатньо послідовно в коло живлення резистор і точно вимірювати струм, що проходить крізь нього. Інший спосіб — вимірювати зміну напруги на входах і виходах пристрою під час шифрування.[26]

Атаки за потужністю вирізняються високою дієвістю з точки зору затрат на криптоаналіз. Так наприклад, проста атака за потужністю (англ. simple power analysis) на смарт-карту здійсненна за кілька секунд, а декотрі варіанти різницевих атак за потужністю (англ. differential power analysis) дозволяють отримати секретний ключ за 15 вимірів.[25]

Атаки по електромагнітному випроміненню[ред.ред. код]

Атака по електромагнітному випроміненню (англ. electromagnetic analysis attacks) — пасивна атака. Електронні пристрої шифрування під час роботи випромінюють електромагнітне випромінення. Зв'язуючи певні спектральні компоненти цього випромінення з операціями виконуваними на пристрої, модно отримати достатньо інформації для визначення секретного ключа або інформації, що обробляється.

Прикладом такої атаки є перехоплення ван Эйка здійснене в 1986. В подальшому атаки по електромагнітному випроміненню застосовувались до різних шифрів, наприклад:

Акустичні атаки[ред.ред. код]

Акустична атака (англ. acoustic attack) — пасивна атака, спрямована на отримання інформації зі звуків створюваних пристроєм. Історично тип таких атак пов'язується з прослуховуванням принтерів і клавіатур,[32]}} але в останні роки знайшли вразливості, що дозволяють викоритсовувати акустичні атаки на внутрішні складові шифраторів.[33]

Атаки по видимому випроміненню[ред.ред. код]

Атака по видимому випроміненню (англ. visible light attack) — пасивна атака, запропонована Маркусом Куном у 2002.[34] У своїй роботі він показав, що використовуючи високоточний давач інтенсивності світла можна виміряти зміни в інтенсивності розсіяного від монітора світла, і таким чином відновити зображення на екрані[35] Цей тип атак також можна застосовувати до шифраторів, що використовують світлодіодні індикатори, аналізуючи дані від яких можна отримати інформацію про операції в пристрої.[36]

Методи протидії[ред.ред. код]

Методи протидії атакам сторонніми каналами залежать від особливостей втілення алгоритму і необхідного ступеня захищеності пристрою. Існують офіційні стандарти щодо захищеності пристроїв, такі як TEMPEST і FIPS. В літературі, присвяченій атакам сторонніми каналами, виділяють такі спільні методи протидії[2]:

Застування[ред.ред. код]

Досить потужне фізичне застування пристрою дозволяє усунути майже всі побічні канали витоку інформації. Вадою застування є істотне збільшення вартості і розмірів пристрою.

Додавання шуму[ред.ред. код]

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

Вирівнювання часу виконання операцій[ред.ред. код]

Щоб криптоаналітик не міг провести атаку по часу виконання всі етапи шифрування в пристрої мають виконуватись за однаковий час. Досягти цього можна такими способами:

  • Додавання фіксованої затримки. Якщо відома кінцева апаратна платформа, то можна розрахувати час виконання кожної операції і вирівняти їх додав фіксовані затримані.
  • Одночасне виконання декількох можливих операцій. Якщо в якийсь момент алгоритму має виконуватись або множення або квадратування, то треба виконати обидві операції,а непотрібний результат відкинути.

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

Зрівноважування енергоспоживання[ред.ред. код]

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

Усунення умовних переходів[ред.ред. код]

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

Незалежність обчислень від даних[ред.ред. код]

Якщо обчислення не залежать від вхідних даних або секретного ключа, то криптоаналітик не зможе їх отримати з інформації зі стороннього каналу. Здобутися цього можна такими способами:

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

Примітки[ред.ред. код]

  1. YongBin Zhou, DengGuo Feng, 2006, p. 3
  2. а б в YongBin Zhou, DengGuo Feng, 2006, pp. 8-9
  3. А саме фізичного, електричного або логічного рівнів інтерфейсів доступних криптоаналітику.
  4. Anderson R., Bond M., Clulow J., Skorobogatov, S. Cryptographic processors – a survey 94 (2006) (2) С. 357—369. DOI:10.1109/JPROC.2005.862423.
  5. а б в S. Skorobogatov, R. Anderson. Optical Fault Induction Attacks UK: Springer-Verlag London (2003) С. 2—12. DOI:10.1109/JPROC.2005.862423.
  6. Information Technology Laboratory (2001-05-25). «Security requirements for cryptographic modules» (pdf). Federeal information processing standarts publication (англійською). National Institute of Standards and Technology. Архів оригіналу за 2012-05-21. Процитовано 2011-11-18. 
  7. Le, T. H.; Clediere, J.; Serviere, C.; Lacoume, J. L.; Noise Reduction in Side Channel Attack Using Fourth-Order Cumulant 2 (2007) (4) С. 710-720. DOI:10.1109/TIFS.2007.910252.
  8. Використовується електронні та іонні мікроскопи
  9. а б O. Kömmerling, M. G. Kuhn. Design principles for Tamper-Resistant smartcard processors (1999) С. 9—20.
  10. Dr Sergei Skorobogatov (2011-06-03). «Side-channel attacks: new directions and horizons». Design and Security of Cryptographic Algorithms and Devices (ECRYPT II) (англійською). Архів оригіналу за 2012-05-21. Процитовано 2011-11-18. 
  11. Ross Anderson. Security engineering: a guide to building dependable distributed systems. — New York: John Wiley & Sons, 2001. — С. 291—297. — ISBN 0470068523
  12. а б Paul C. Kocher. Timing attacks on implementations of Diffie-Hellmann, RSA, DSS, and other systems 1109 Springer (1996) С. 104—113.
  13. J.-F. Dhem, F. Koeune, P.-A. Leroux, P. Mestre, J.-J. Quisquater, J.-L. Willems. A practical implementation of the timing attack London, UK: Springer-Verlag (1998) С. 167—182.
  14. 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. — В. 106. — № 3. — doi:10.1.1.106.2169
  15. 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. — С. 62—76. — doi:10.1.1.135.1221
  16. David Brumley and Dan Boneh. Remote timing attacks are practical (англ.) // Proceedings of the 12th conference on USENIX Security Symposium : сборник. — 2003. — Т. 12.
  17. 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. — С. 245—267. — doi:10.1.1.13.5175
  18. а б Jean-Jacques Quisquater, Francois Koeune (2010-10). «Side Channel Attacks. State-of-the-art» (англійською). с. pp. 12—13. Архів оригіналу за 2012-05-10. Процитовано 2011-11-24. 
  19. 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. — С. 23—31. — ISBN 978-1-4244-4972-9. — doi:10.1109/FDTC.2009.30
  20. а б Johannes Blömer, Jean-Pierre Seifert. Fault Based Cryptanalysis of the Advanced Encryption Standard (AES) (англ.) // Financial Cryptography : журнал. — 2003. — Т. 2742. — С. 162—181. — doi:10.1007/978-3-540-45126-6_12
  21. а б 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. — Т. 1233. — С. 37-51. — doi:10.1.1.48.9764
  22. Marc Joye, Arjen K. Lenstra, and Jean-Jacques Quisquater. Chinese remain-dering based cryptosystems in the presence of faults (англ.) // Journal of Cryptology : журнал. — 1999. — № 4. — С. 241—245. — doi:10.1.1.55.5491
  23. 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. — Т. 1294. — С. 513—525. — doi:10.1.1.140.2571
  24. I. Biehl, B. Meyer, and V. Muller. Differential fault attacks on elliptic curve cryptosystems (англ.) // Advances in Cryptology — CRYPTO 2000 : сборник. — Springer-Verlag, 2000. — Т. 1880. — С. 131—146. — doi:10.1.1.107.3920
  25. а б Paul Kocher , Joshua Jaffe , Benjamin Jun. Differential Power Analysis (англ.) // Proc. of Advances in Cryptology (CRYPTO '99), LNCS : збірка. — 1999. — Т. 1666. — С. 388—397. — doi:10.1.1.40.1788
  26. Adi Shamir (2011). «A Top View of Side Channel Attacks» (pdf) (англійською). с. pp. 24—27. Архів оригіналу за 2012-05-21. Процитовано 2011-11-23. 
  27. 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. — Т. 2140. — С. 200—210. — doi:10.1007/3-540-45418-7_17
  28. 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. — С. 251—261. — ISBN 3-540-42521-7.
  29. 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.
  30. 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. — С. 1879—1882. — doi:10.1109/EURCON.2005.1630348
  31. 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. — С. 66—80. — doi:10.1.1.156.4969
  32. Li Zhuang, Feng Zhou, and J. D. Tygar. Keyboard acoustic emanations revisited (англ.) // Proceedings of the 12th ACM conference on Computer and communications security : збірник. — 2005. — С. 373—382. — doi:10.1145/1102120.1102169
  33. Adi Shamir, Eran Tromer (2011). «Acoustic cryptanalysis: On nosy people and noisy machines» (англійською). Архів оригіналу за 2012-05-21. Процитовано 2011-11-25. 
  34. Kuhn, M. G. Optical time-domain eavesdropping risks of CRT displays (англ.) // Security and Privacy, 2002. Proceedings. 2002 IEEE Symposium on : збірка. — 2002. — С. 3—18. — doi:10.1109/SECPRI.2002.1004358
  35. Markus Kuhn (2002). «Optical Emission Security – Frequently Asked Questions» (англійською). Архів оригіналу за 2012-05-21. Процитовано 2011-11-23. 
  36. Joe Loughry and David A. Umphress. Information Leakage from Optical Emanations (англ.) // ACM Transactions on Information and System Security : журнал. — 2002. — В. 3. — Т. 5. — С. 262—289. — doi:10.1145/545186.545189
  37. Goldwasser S. and Bellare M. (1996—2001). «Lecture Notes on Cryptography». Summer course on cryptography, MIT (англійською). Архів оригіналу за 2012-05-21. Процитовано 2011-11-27. 

Див. також[ред.ред. код]