White Box криптографія


Традиційно криптографія пропонує засоби для передачі конфіденційної інформації, роблячи її нерозбірливою для всіх, крім одержувача повідомлення. Криптографія, яка використовувалася в стародавні біблійні часи, передбачала метод, при якому текст вручну замінювався в повідомленні на "текст підміни" для приховування його вихідного змісту. Через багато років, під час Другої світової війни, криптографія широко використовувалася в електромеханічних машинах (для прикладу машина Enigma). В даний час криптографія стає все більш поширеною, в значній мірі спираючись на обчислювальну потужність комп'ютерів і надійну математичну базу. Криптографія, як випливає з назви, намагається приховати дані від зловмисників, використовуючи різні методи. Теоретично концепція звучить ідеально, але реальний життєвий досвід довів, що в гру вступає безліч чинників і аспектів навколишнього середовища, які негативно впливають на міцність криптографічного алгоритму. Звичайні засоби не в змозі забезпечити надійне рішення того, як реагувати на різні сценарії атак, які намагаються використовувати властиві криптографії уразливості. Професор Пітер Г. Нейманн, фахівець в області інформаційної безпеки, говорив: «Якщо ви думаєте, що криптографія - це рішення вашої проблеми, ви не знаєте, в чому полягає ваша проблема». У цій статті розглядаються традиційні методи криптографії, з акцентом на впровадженні White Box шифрування.

У типових реалізаціях DRM (Digital Rights Management - управління правами на електронні продукти), де криптографічні алгоритми є частиною рішення щодо забезпечення безпеки, використовується відомий надійний алгоритм, що базується на секретності криптографічного ключа. Таке рішення не підходить в більшості випадків, оскільки платформи, на яких виконуються ці додатки, знаходяться під контролем потенційно ворожих кінцевих користувачів. Традиційне вихідне припущення для криптографії - це Black Box надбудова (чорний ящик), яка передбачає, що зловмисник не має доступу до ключа шифрування, може контролювати тільки вхідні дані шифрування (відкритий текст) і має доступ до отриманих вихідних даних (зашифрований текст). Довгий час це вважалося вірним і для електронних пристроїв, таких як смарт-карти, але були розроблені зловмисні атаки, що використовують витік інформації з Black Box (такі як Differential Power Analysis - диференціальні атаки по енергоспоживанню), що дозволяють хакерам отримати секретні ключі, які використовуються всередині Black Box.


Необхідність White Box криптографії

Популярні криптографічні алгоритми, такі як симетричний алгоритм шифрування - AES, не призначені для роботи в середовищах, де можна спостерігати за їх виконанням. Насправді, стандартні криптографічні моделі припускають, що кінцевим точкам обробки інформації потрібно довіряти. Якщо ці кінцеві точки знаходяться в потенційно ворожому середовищі, то криптографічні ключі можуть бути безпосередньо видно зловмисникам, що відстежує виконання програми, і привести до спроби витягти ці ключі, вбудовані або створені додатком, з пам'яті.

Це загальна проблема для програм, що працюють на комп'ютерах, мобільних пристроях, телевізійних приставках IPTV та іншому обладнанні, що використовує дані, захищені DRM. Активно відстежуючи стандартні криптографічні API-інтерфейси або дампи пам'яті, хакери можуть отримувати криптографічні ключі щоразу, коли вони використовуються. Один із прикладів успішної атаки на витяг ключів на основі пам'яті дозволив інструменту BackupHDDVD скопіювати вміст захищеного DVD-диска і видалити DRM із захищеного мультимедійного вмісту.


Складнощі створення White Box криптографії
Вимога щоб цінна інформація, така, як дані про ліцензування та інші комерційні таємниці, повинна бути прихована під час роботи в повністю прозорому середовищі, створює різні проблеми:
• Як зашифрувати або дешифрувати контент без безпосереднього розкриття криптографічного ключа або даних?
• Як реалізувати надійні механізми шифрування, знаючи, що хакери можуть спостерігати або змінювати код під час виконання?

 
Традиційна Black Box криптографія


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

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





 
Gray Box криптографія

 
Сценарій Gray Box передбачає, що зловмисник має частковий фізичний доступ до ключу, або що є «витік» так званої інформації в побічну каналі. Атаки по побічним каналам (SCA) використовують інформацію, що просочилася з фізичної реалізації криптографічної системи. Витік пасивно спостерігається через інформацію про час виконання алгоритму, споживанні енергії, електромагнітне випромінювання і так далі. Захист від атак по побічним каналам важливий, тому що атаки можуть бути реалізовані швидко і з низькими витратами. Публічно доступна інформація, що отримується по побічним каналам, дозволяє хакерам ефективно розкривати частини ключа і, як наслідок, різко знижувати його криптографічну ефективність і загальну надійність системи.

Gray Box криптографія фактично є побічним продуктом традиційної реалізації Black Box криптографії. Навіть смарт-карти, які сприймаються як пристрої, здатні забезпечити надійний захист і виконують внутрішню криптографію, насправді пропускають інформацію у зовнішній світ. Зрозуміло, що сценарії, що передбачувані в Black Box, в дійсності є лише окремими випадками Gray Box криптографії.

 
Концепція White Box криптографії

 
White Box криптографія йде врозріз з вищезгаданими традиційними моделями безпеки.

На відміну від попередніх реалізацій, коли зловмисникові було надано тільки Black Box, тобто доступ до вхідних та вихідних даних, а також до криптографічного алгоритму, що піддався атаці, і він припускав нульову видимість внутрішніх операцій, White Box натомість забезпечує повну видимість. Криптографічні методи White Box спрямовані на захист програмних реалізацій криптографічних алгоритмів від відновлення ключа, навіть якщо зловмисник має повний контроль над машиною, яка виконує шифрування, що особливо корисно в сфері DRM захисту.


White Box криптографія
Сценарій White Box, на відміну від раніше описаних сценаріїв, охоплює набагато більш серйозні загрози, припускаючи, що хакери мають повну видимість і контроль над всіма операціями в системі. Хакери можуть вільно спостерігати за динамічним виконанням коду (в якому використовуються екземпляри криптографічних ключів), а деталі внутрішнього алгоритму повністю видно і можуть змінюватися за бажанням. Незважаючи на цю повністю прозору методологію, White Box криптографія інтегрує шифрування таким чином, щоб не розкривати криптографічні ключі. Очевидно, що алгоритми, побудовані для моделей як Black Box, так Gray Box, недоцільні в умовах роботи в ненадійних середовищах. Хакери не намагатимуться зламати шифр, використовуючи тільки кошти, доступні в сценаріях Black Box і Gray Box, замість цього вони спостерігатимуть за виконанням коду і при використанні незахищеного ключа отримувати до нього доступ. Традиційні алгоритми криптографії, представлені в сценарії White Box, припускають наявність ключа як невід'ємної частини реалізації алгоритму. Алгоритм шифрування захищений в сценарії White Box, так як ключ шифрування відсутня в пам'яті і не може бути витягнутий, навіть динамічно. Тому вибір найбільш підходящої і найбільш безпечною криптографічного моделі є єдиною лінією захисту від зловмисних загроз.

Методологія реалізації White Box
Як тоді можна надійно «заховати» ключ в коді, що виконується, припускаючи, що його можна повністю контролювати і змінювати? Абстрактно це досягається шляхом об'єднання ефекту секретного ключа разом з даними, специфічними для реалізації і використанням математичної операції, в якій гарантується, що операцію практично неможливо інвертувати. Як приклад, великий внутрішній запас міцності асиметричного алгоритму RSA став можливий завдяки простому перемножуванню великих простих цілих чисел, так як інвертувати таку математичну операцію - це дуже складна і ресурсномістка задача (розкласти кінцевий результат на його споконвічні множники - прості цілі числа). Крім того, реалізація алгоритму криптографії типу White Box може тільки шифрувати або дешифрувати дані. Реалізація, як згадувалося раніше, заснована на математичній операції, яку надзвичайно важко інвертувати. Цей факт дозволяє побудувати систему, яка працює аналогічно повній схемі асиметричного шифрування (з відкритим і закритим ключами), але на рівні продуктивності набагато ближче до стандартного симетричного шифру.

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

Цей конкретний метод особливо корисний для захисту каналу зв'язку, захищеного апаратним пристроєм, таким як апаратної ключ захисту. Зловмисник не може витягти ключ, який використовується для безпечного каналу зв'язку, і тому не може ні розшифрувати дані, що проходять через канал, ні впровадити дані в канал, оскільки у нього немає засобів для їх правильного шифрування. Такий підхід допомагає ефективно протидіяти створенню табличних емуляторів - популярного способу взлому DRM-захисту з використанням ключа.

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

White Box в продуктах Sentinel
Захищений канал зв'язку, що надається продуктами Gemalto Sentinel, гарантує, що зв'язок між захищеним додатком і апаратним ключем захисту зашифрований і не може бути скомпрометованим. На відміну від попередньої реалізації, метою якої було приховати ключ шифрування, нова реалізація зосереджена на White Box криптографії, де передбачається, що зловмисник може відстежити захищений додаток і середу виконання при пошуку ключа шифрування. Беручи це припущення як частини проекту, алгоритм і ключі шифрування замінюються спеціальними бібліотеками API конкретного постачальника, які реалізують те ж саме шифрування, але вбудовують ключі шифрування як частину алгоритму таким чином, щоб гарантувати, що вони ніколи не присутні в пам'яті і, отже, не можуть бути вилучені. Генерація специфічних для постачальника бібліотек виконується на серверах Gemalto з використанням багаторівневої системи забезпечення безпеки. Крім того, кожна бібліотека генерується індивідуально і захищається (шифрується і обфусціруется) унікальним чином для кожного постачальника програмного забезпечення, що робить неможливим загальний злом.

Gemalto є першим і єдиним постачальником, який запропонував White Box криптографію як невід'ємну частину свого портфелю рішень Sentinel по монетизації програмного забезпечення. Ця нова технологія, що дозволяє захищати криптографічний ключ, а не розбивати його і відкривати тільки фрагмент за раз. З точки зору безпеки це гарантує, що захищений ключ залишається прихованим від хакерів і, отже, не схильний до реконструкції під час потенційної атаки.

White Box криптографія є додатковим важливим компонентом, який дозволяє розробникам захищати свої додатки від зворотного інжинірингу, злому і створення емуляторів. Методологія White Box криптографії Gemalto інтегрується в процес розробки програмного забезпечення, дозволяючи впровадити додатковий рівень захисту безпосередньо на рівні вихідного коду, що забезпечує високоефективний підхід до захисту програмного забезпечення.

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

Мається на увазі, що захисту програмного забезпечення необхідно приділяти особливу увагу на всіх етапах проектування і реалізації, а також постійно вдосконалювати механізми захисту в рамках життєвого циклу продукту і випуску нових версій. Додатково до White Box криптографії, повинні бути використані додаткові заходи безпеки для подальшого зміцнення загальної схеми захисту. Безпека - це не кінцевий стан, це безперервний процес, що вимагає витрат на свою реалізацію. Тому вкрай важливо правильно оцінювати необхідний рівень безпеки, який диктується самим додатком, тобто значення того, що повинно бути захищене в поєднанні з понесеними втратами, прийнятими при ігноруванні потенційних ризиків.


Додаткові матеріали по темі:
1. Towards Security Notions for White box Cryptography https://cosic.esat.kuleuven.be/publications/article-1260.pdf
2. White box Cryptography: Formal Notions and (Im) possibility Results https://eprint.iacr.org/2008/273.pdf
3. White box (software engineering) on Wikipedia https://en.wikipedia.org/wiki/White_box_(software_engineering)
4. What is a white-box implementation of a cryptographic algorithm? https://crypto.stackexchange.com/questions/241/what-is-a-white-box-implementation-of-a-cryptographicalgorithm






 

Зворотній зв'язок