Атака сторонніми каналами
Атака сторонніми каналами (англ. side channel attack) — клас атак, спрямований на вразливості практичного втілення криптосистеми. На відміну від теоретичного криптоаналізу, атака сторінніми каналами використовує інформацію про фізичні процеси у пристрої, які не розглядаються у теоретичному описі криптографічного алгоритму. Деякі атаки сторонніми каналами вимагають знання внутрішніх дій системи на якій втілено алгоритм, інші, такі як диференційній аналіз енерговикористання, дієві як атаки на чорний ящик. Такі отаки значно поширились після публікації результатів Пола Кохера в 1996 році.[1].
Вступ
Криптографічний примітив можна розглядати з двох різних точок зору: з одного боку, це абстрактний математичний об'єкт (алгоритм, можливо параметризований ключем, що переводить деякий текст на вході в текст на виході); з іншого боку, цей примітив зрештою треба втілити у програмі, що виконуватиметься на певному процесорі та іншому обладнані, таким чином він володітиме певними особливостями саме цієї реалізації.
«Класичний» криптоаналіз розглядає криптографічні примітиви з першої точки зору. Другий підхід використовується в криптоаналізі сторонніми каналами. Серед параметрів притаманних певному втіленню зазвичай використовують час виконання, спожиту потужність, звуки, які видає пристрій, випромінювання та інші. Атакам сторонніми каналами властива менше потужність ніж традиційні атаки, основані на математичному аналізі криптографічного алгоритму, але разом з тим вони значно дієвіші. На поточний момент більшість практично здійснених вдалих атак використовуються слабкості у втілені і розташуванні механізмів криптоалгоритму.[2]
Класифікація атак
Атаки сторонніми каналами в літературі зазвичай класифікують за такими ортогональними принципами [3]:
Контроль над процесом обчислення
Залежно від ступеню впливу на процес обчислення атаки можна поділити на:
- Пасивні — нападник отримує без помітного впливу на систему; система при цьому продовжує діяти як і раніше.
- Активні — нападник впливає на систему, в наслідку чого змінюється її поведінка; така зміна може бути непомітною для системи яку атакують, але криптоаналітик в змозі використати цю інформацію.
Спосіб доступу до системи
Залежно від рівня доступу[4] до апаратного модуля можна виділити три класа атак[5]:
- Насильницькі (англ. invasive) — відкриття системи криптоаналітиком і отримання прямого доступу до внутрішніх компонентів.
- Напівнасильницькі (англ. semi-invasive) — вплив на внутрішні компоненти відбувається без безпосереднього контакту з пристроєм: наприклад за допомогою лазерного проміню.[6]
- Ненасильницькіий (англ. non-invasive) — без впливу на досліджувану систему; використовується лише інформація доступна зовні: наприклад час обчислення або спожита енергія.
Варто зазначити, що пристрій обладнується захисними механізмами, що захищають від проникнення (насильницьких атак).[7] Помітити і запобігти ненасильницьким атакам практично неможливо. Ненасильницькі атаки також вигідніші з економіної точки зору: масштабні атаки майже не вимагають збільшення вартості обладнання.[6]
Застосовуваний метод аналізу
В залежності від методів застосовуваних для аналізу отриманої інформації, атаки сторонніми каналами можна поділити на[8]:
- Прості (англ. simple side channel attack) — дослідження прямої залежності між процесами у пристрої та отриманою криптоаналітиком інформацією; корисна інформація в сигналі повинна бути віддільна від шумів.
- Різницеві (англ. differential side channel attack) — криптоаналітик використовує статистичні методи для дослідження залежності між вхідним і вихідним каналами та інформацією отриманою стороннім каналом; використовується безліч вимірів, особлива обробка сигналу та керування помилками.[9]
Відомі типи атак
Атака зондуванням
Атака зондуванням (англ. probing attack) — насильницька пасивна проста атака. ля отримання інформації пристрій відкривається, за допомогою оптичного мікроскопа вивчається друкована плата і встановлюються щупи на провідники, якими йдуть сигнали, або за допомогою мікроскопа[10] досліджується стан комірок пам'яті.[11] [12] процес спрощується при використанні зондувального приладу, яка включає мікроскопи і мікроманіпулятори для встановлення щупів на поверхні чипа. Такі прилади використовуються в напівпровідниковій промисловості для перевірки зразків виробів; ціна на вторинному ринку складаєблизько 10000$.[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]:
- Зміна напруги живлення криптосистеми. Відхилення в живлені, що сильно перевищують задані виробником норми, можуть призвести до помилок на певних етапах роботи, не заважаючи пристрою завершити процес шифрування. [21]
- Зміна будови шифратора (порушення електричних контактів).
- Зміна тактової частоти шифрувального пристрою. При точному керуванні відхиленням тактової частоти від заданої норми, можна досягти повної зміни виконання інструкцій в пристрої, аж до невиконання певної інструкції. [22] Такі атаки особливо застосовні до смарт-карт, тактовий сигнал для яких подається зовнішнім генератором.
- Вплив лазерним променем або сфокусованим світовим пучком. За допомогою такого впливу можна змінювати стан комірки пам'яті і впливати на умовні переходи в виконанні коду.[6]
- Вплив змінним магнітним полем. Змінне магнітне поле викликає в ланцюгах пристрою вихрові струми, які можуть змінювати стан комірок пам'яті.
- Міщення пристрою в сильне електромагнітне поле.
- Підвищення температури якоїсь частини шифратора.
Різновиди помилок
Атаки по помилках обчислень можна впорядкувати по типу отриманої помилки[20]:
- Сталі або змінні помилки. Сталі мають сили впродовж дії усього алгоритму, наприклад встановлення значення в комп'ютерній пам'яті або зміна шляху проходження сигналу. Змінні помилки відбиваються лише на певних етапах.
- Місце виникнення помилки: місцева помилка, наприклад зміна комірки пам'яті, або помилка в довільному місці пристрою, наприклад атака за допомогою електромагнітного поля.
- Час впливу: деякі атаки вимагають застосування впливу в певний час, як наприклад зміна тактової частоти, інші ж дозволяють здійснити атаку в ширшому діапазоні часу роботи.
- Тип помилки: зміна значення біта, установка встановленого значення, змін азначення групи бітів повністю, зміна потоку виконання команд та інші
Приклади атак на помилки обчислень
Атаки на основі помилок обчислень вивчаються з 1996[23] і відтоді майже для всіх алгоритмів показали можливість зламу за допомогою такого типу атак. Серед відомих алгоритмів можна виділити:
- Атакі на RSA, що викортсовують китайську теорему про залишки[23][24]
- Диференціальний криптоаналіз по помилках обчислень DES[25]
- Криптоаналіз AES[22]
- Диференціальний криптоаналіз систем, що ґрунтуються на еліптичних кривих[26]
Атаки по енергоспоживанню
Атака по енергоспоживанню (англ. 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] Не всім алгоритмам шифрування властива гомоморфність, тим більше повна.
Примітки
- Kocher, Paul. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems // Advances in Cryptology—CRYPTO’96 : journal. — Vol. 1109. — P. 104—113. — DOI: .
- YongBin Zhou, DengGuo Feng, 2006, с. 3.
- YongBin Zhou, DengGuo Feng, 2006, с. 8-9.
- А саме фізичного, електричного або логічного рівнів інтерфейсів доступних криптоаналітику.
- 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: .
- S. Skorobogatov, R. Anderson. Optical Fault Induction Attacks // CHES : журнал. — UK : Springer-Verlag London, 2003. — P. 2—12. — ISBN 3-540-00409-2. — DOI: .
- Information Technology Laboratory (25 травня 2001). Security requirements for cryptographic modules (pdf). Federeal information processing standarts publication (англійською). National Institute of Standards and Technology. Архів оригіналу за 20 травня 2012. Процитовано 18 листопада 2011.
- YongBin Zhou, DengGuo Feng, 2006.
- 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: .
- Використовується електронні та іонні мікроскопи
- 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.
- Dr Sergei Skorobogatov (3 червня 2011). Side-channel attacks: new directions and horizons. Design and Security of Cryptographic Algorithms and Devices (ECRYPT II) (англійською). Архів оригіналу за 20 травня 2012. Процитовано 18 листопада 2011.
- Ross Anderson. Security engineering: a guide to building dependable distributed systems. — New York : John Wiley & Sons, 2001. — С. 291—297. — ISBN 0470068523.
- 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.
- 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.
- 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. — No. 106, № 3. — DOI:10.1.1.106.2169.
- 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.
- David Brumley and Dan Boneh. Remote timing attacks are practical // Proceedings of the 12th conference on USENIX Security Symposium : сборник. — 2003. — Vol. 12.
- 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.
- Jean-Jacques Quisquater, Francois Koeune (2010-10). Side Channel Attacks. State-of-the-art (англійською). с. pp. 12—13. Архів оригіналу за 9 травня 2012. Процитовано 24 листопада 2011.
- 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.
- Johannes Blömer, Jean-Pierre Seifert. Fault Based Cryptanalysis of the Advanced Encryption Standard (AES) // Financial Cryptography : журнал. — 2003. — Vol. 2742. — С. 162—181. — DOI:10.1007/978-3-540-45126-6_12.
- 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. — С. 37-51. — DOI:10.1.1.48.9764.
- 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.
- 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. — С. 513—525. — DOI:10.1.1.140.2571.
- I. Biehl, B. Meyer, and V. Muller. Differential fault attacks on elliptic curve cryptosystems // Advances in Cryptology — CRYPTO 2000 : сборник. — Springer-Verlag, 2000. — Vol. 1880. — С. 131—146. — DOI:10.1.1.107.3920.
- Paul Kocher , Joshua Jaffe , Benjamin Jun. Differential Power Analysis // Proc. of Advances in Cryptology (CRYPTO '99), LNCS : збірка. — 1999. — Vol. 1666. — С. 388—397. — DOI:10.1.1.40.1788.
- Adi Shamir (2011). A Top View of Side Channel Attacks (pdf) (англійською). с. pp. 24—27. Архів оригіналу за 20 травня 2012. Процитовано 23 листопада 2011.
- 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. — С. 200—210. — DOI:10.1007/3-540-45418-7_17.[недоступне посилання з листопадаа 2019]
- 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.
- 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.
- 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.
- 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.
- 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.
- Adi Shamir, Eran Tromer (2011). Acoustic cryptanalysis: On nosy people and noisy machines (англійською). Архів оригіналу за 20 травня 2012. Процитовано 25 листопада 2011.
- 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.
- Markus Kuhn (2002). Optical Emission Security – Frequently Asked Questions (англійською). Архів оригіналу за 20 травня 2012. Процитовано 23 листопада 2011.
- Joe Loughry and David A. Umphress. Information Leakage from Optical Emanations // ACM Transactions on Information and System Security : журнал. — 2002. — Vol. 5, no. 3. — С. 262—289. — DOI:10.1145/545186.545189.
- YongBin Zhou, DengGuo Feng, 2006, с. 22-24.
- Goldwasser S. and Bellare M. (1996—2001). Lecture Notes on Cryptography. Summer course on cryptography, MIT (англійською). Архів оригіналу за 20 травня 2012. Процитовано 27 листопада 2011.
Джерела
- YongBin Zhou, DengGuo Feng. Side-Channel Attacks: Ten Years After Its Publication and the Impacts on Cryptographic Module Security Testing // Information Security Seminar WS 0607. — 2006. — 23 January.