Криптопроцесор
Криптопроцесор — система-на-чипі або мікропроцесор, призначений для виконання криптографічних операцій, у корпусі з багатьма заходами фізичного захисту, які забезпечують стійкість до несанкціонованого доступу.
Призначення криптопроцесора — слугувати основою підсистеми безпеки, зменшуючи або усуваючи вимоги до захисту решти компонентів інформаційної системи.
Класифікація
Класифікація криптопроцесорів візначається Положенням про порядок розроблення, виробництва та експлуатації засобів криптографічного захисту інформації[1]. У відповідності до цього положення криптороцесори можуть бути класифіковані як апаратні або апаратно-програмні засоби криптографічного захисту інформації. Слід відзначити різницю у визначенні належності до апаратних та апаратно-програмних засобів. За Положенням про порядок розроблення, виробництва та експлуатації засобів криптографічного захисту інформації
- до апаратних засобів відносяться ті, алгоритм функціонування (у тому числі криптографічні функції) яких реалізовується в оптичних, механічних мікроелектронних або інших спеціалізованих пристроях та не може бути змінений під час експлуатації;
- до апаратно-програмних засобів відносяться ті, алгоритм функціонування (у тому числі криптографічні функції) яких реалізується програмним забезпеченням, яке встановлюється під час виробництва засобу КЗІ у спеціальному запам'ятовуючому пристрої, виконується в ньому та може бути змінено лише під час виробництва.
За FIPS 140-2 Security Requirements for Cryptographic Modules[2] апаратні криптопроцесори можуть включати програмне забезпечення, яке неможливо змінити. Таким чином, апаратні за визначенням за FIPS 140-2 криптопроцесори можуть за Положенням про порядок розроблення, виробництва та експлуатації засобів криптографічного захисту інформації відноситись як до апаратних, так і апаратно-програмних.
Приклади
Смарт-картка є імовірно найбільш поширеним прикладом криптопроцесора, хоча і більш складні, і більш універсальні криптопроцесори, широко використовуються в системах, таких як банкомати, телеприставки, військове обладнання та портативне обладнання захищеного зв'язку. Деякі криптопроцесори можуть виконувати навіть операційні системи загального призначення, такі як Linux всередині їхньої межі безпеки. Криптопроцесори приймають інструкції в зашифрованому вигляді, розшифровують до відкритих (розшифрованих) інструкцій, які потім, виконуються в одному чипі криптопроцесора, та недосяжно зберігаються. Таким чином, ніколи не розкриваючи розшифровані програмні інструкції, криптопроцесор запобігає несанкціонованому доступу до програм техніками, які можуть мати законний доступ до шини даних підсистеми. Це відомо як шифрування шини[3]. Дані, оброблені за допомогою криптопроцесора, також часто зашифровані.
Trusted Platform Module - реалізація криптопроцесора, який привносить поняття довірених обчислень у звичайні персональні комп'ютери, створюючи безпечне середовище. Передбачається, що це значно ускладнить незаконне копіювання програмного забезпечення, дозволить утворити стійке до злому оточення завантаження та забезпечити постійне шифрування зовнішніх носіїв.
Чипи безпеки для вбудовуємих систем також здатні забезпечити той же рівень фізичного захисту ключів та інших секретів, що і смарт-картки або TPM, але у меншому, простішому та дешевшому упакуванні. Вони часто використовуються для побудування пристроїв криптографічної автентифікації, і дозволяють автентифікувати периферію, аксесуари або витратні матеріали. Як і TPM, вони повністю реалізують криптографічні перетворення, призначені для вбудовування в системи, як правило, напаюються на плати.
Апаратний модуль безпеки містить один або декілька криптопроцесорів. Ці пристрої є високопродуктивними криптопроцесорами, призначеними для використання разом з високопродуктивними серверами. Апаратний модуль безпеки може мати багато рівнів фізичного захисту з криптопроцесором, виконаним у вигляді єдиного чипа, як найбільш захищеним компонентом. Криптопроцесор не виводить ключі або виконуємі інструкції на шину, окрім як у зашифрованій формі, а також затирає ключі нулями при спробі їх перехоплення або несанкціонованого доступу. Чип(-и) шифрування можуть бути поміщені у єдиний корпус в апаратному модулі безпеки з іншими процесорами і мікросхем пам'яті, які зберігають і обробляють зашифровані дані. Будь-яка спроба видалити розкрити корпус викличе знищення ключів у крипточипі шляхом обнулення. Апаратний модуль безпеки також може бути частиною комп'ютера (наприклад банкомата), який працює всередині замкненого сейфу для запобігання крадіжці, підміні та злому.
Криптопроцесори у складі смарт-карток, електронних ключів, апаратних модулів безпеки широко використовуються у надійних засобах електронного цифрового підпису.
Стандартизація
Вимоги до безпеки визначаються:
CWA 1469:2004 Secure signature-creation devices “EAL 4+”
CWA 14167-3 Cryptographic module for CSP key generation services protection profile CMCKG-PP
Функції
Заходи безпеки, які реалізуються у криптопроцесорах:
- Упакування, яке виявляє та свідчить про злом.
- Шари з провідника у чипі, які унеможливлюють читання внутрішніх сигналів.
- Кероване виконання, яке унеможливлює витік інформації за рахунок спостереження за затримками.
- Автоматичне знищення секретів при спробі злому.
- Ланцюг безпечного завантаження, який автентифікує операційну систему перед завантаженням.
- Автентифікація програм перед запуском.
- Апаратні регістри керування можливостями, які реалізують модель односпрямованого поділу привілеїв.
Рівень безпеки
Криптопроцесори, хоча і є корисними, але не є невразливими до атак, особливо з боку порушника, який має добре обладнання (такого як, наприклад, урядові розвідувальні організації), який може спрямувати на злом багато ресурсів.
Одна атака на криптопроцесор спрямована проти IBM 4758.[4] Команда Кембріджського університету доповіла про успішне отримання секретної інформації з IBM 4758 з використанням поєднання математичних методів та пристроїв, спеціально призначених для злому. Тим не менше, ця атака не є практичною у реальному світі порушнику потрібен повний доступ до прикладного інтерфейсу програмування пристрою. Нормальною та рекомендованою практикою є використання системи керування доступом так, щоб ніхто не міг організувати атаку.
Вразливість була пов’язана з програмним забезпеченням, яке було завантажене до IBM 4758, а не архітектурою IBM 4758, ця атака є нагадуванням, що системи безпеки сильні настільки, наскільки сильною є найслабша ланка: сильна ланка апаратного забезпечення є марною через помилки у структурі та специфікації програмного забезпечення, яке у нього завантажено.
Смарт-картки є значно більш вразливими, оскільки вони відкриті до фізичних атак. До того ж апаратні закладки можуть підірвати безпеку у смарт-картках та інших криптопроцесорах поки не зроблено вкладень у заходи проектування, спрямованіпроти закладок.[5]
У випадку застосувань повнодискового шифрування, особливо реалізованих без паролю на завантаження, криптопроцесор не буде захищеним від атаки холодного завантаження[6] якщо залишкові заряди від даних можуть бути використані, щоб зкинути вміст оперативної пам’яті після операційної системи, яка зчитала криптографічний ключ з TPM.
Тим не менш, якщо все конфіденційні дані зберігаються тільки в пам'яті криптопроцесора, а не в зовнішньому сховищі, і криптопроцесор розроблений, щоб бути здатним не виявляти ключі або розшифровані дані на контактних площадках чипа або виводах, то такі захищені дані будуть доступні тільки за допомогою зондування чипа криптопроцесора після видалення корпусу та металевих захисних шарів з чипа криптопроцесора. Для цього потрібне фізичне володіння пристроєм, а також навички і устаткування більше ніж те, що є в наявності у більшості технічних кадрів.
Інші методи атаки включають ретельно аналіз часу виконання різних операцій, які можуть змінюватися в залежності від секретного значення або відображення поточного споживання в залежності від часу, для того, щоб визначити відмінності в тому, як відрізняється обробка бітів '0' від обробки біта '1'. Або порушник може застосувати екстремальні температури, надмірно високі або низькі тактову частоту або напругу живлення, що перевищують визначені у специфікації, для того, щоб викликати несправність. Внутрішня конструкція криптопроцесора може бути адаптована для запобігання цим атакам.
Деякі безпечні криптопроцесори містять подвійні ядра процесора, і генерують недоступні ключі шифрування, коли це необхідно, так що навіть якщо використовуються методи зворотної інженерії, вони не виявлять будь-які ключі, які необхідні для розшифрування програмного забезпечення, яке завантажується з зашифрованої флеш-пам'яті або мережі між ядрами. [7]
Перша конструкція єдиного чипа була призначена для захисту від копіювання програмного забезпечення (див патент США 4168396, Сент 18, 1979) і був натхненний Білом Гейтсом у Відкритому листі любителям.
Посилання
- Положення про порядок розроблення, виробництва та експлуатації засобів криптографічного захисту інформації.
- http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf
- R. Elbaz, та ін. (2005). Hardware Engines for Bus Encryption — A Survey.
- attack on the IBM 4758. Архів оригіналу за 16 вересня 2004. Процитовано 25 січня 2016.
- Waksman, Adam (2010). Tamper Evident Microprocessors. Proceedings of the IEEE Symposium on Security and Privacy (Oakland, California).
- J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, and Edward W. Felten. Lest We Remember: Cold Boot Attacks on Encryption Keys. — Princeton University, . Процитовано 2008-02-22.
- Secure CPU complies with DOD anti-tamper mandate
Зовнішні посилання
- Ross Anderson, Mike Bond, Jolyon Clulow and Sergei Skorobogatov, Cryptographic Processors — A Survey, April 2005 (PDF). This is not a survey of cryptographic processors; it is a survey of relevant security issues.
- Robert M. Best, US Patent 4,278,837, July 14, 1981
- R. Elbaz, et al., Hardware Engines for Bus Encryption — A Survey, 2005 (PDF).
- David Lie, Execute Only Memory, .
- Extracting a 3DES key from an IBM 4758
- J. D. Tygar and Bennet Yee, A System for Using Physically Secure Coprocessors, Dyad