Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

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

Система захисту від копіювання або система захисту авторських прав–комплекс засобів, що забезпечують утруднення або заборону нелегального розповсюдження, використання та / або зміни програмних продуктів.

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

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

1. Мета і задачі дослідження та заплановані результати

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

Основні завдання дослідження:

  1. Огляд літератури з проблеми.
  2. Огляд існуючих технологій і рішень щодо захисту авторського права за стеганграфічними методами.
  3. Аналіз архітектури існуючих рішень. Порівняння технологій. Переваги та недоліки запропонованих методів захисту авторського програмного забезпечення.
  4. Пошук усунення недоліків існуючих алгоритмів захисту авторського права ПЗ.
  5. Формування вимог до покращеного алгоритму захисту авторського права ПЗ з використанням стеганографічних засобів захисту.
  6. Розробка власного алгоритму захисту авторського ПЗ з використанням стеганографії.

Об'єкт дослідження: цифрова стеганографія.

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

В рамках магістерської роботи планується отримання актуальних наукових результатів за наступними напрямками:

  1. Актуальність застосування захисних механізмів ПЗ на базі стеганогрфії.
  2. Потенційна ефективність захисних механізмів ПЗ на базі стеганографії.
  3. Модифікація відомих методів захисту за стеганографічними методами.

2. Проблеми захисту програмних продуктів

У питанні про захист програмного продукту може постати два основних питання: Кому належить авторство даного продукту? та Чи отримана дана копія продукту з дотриманням угод?(наприклад, чи була копія куплена або ж була отримана за допомогою піратства). Перше питання може бути вирішене простим впровадженням інформації про автора в продукт. Друге ж питання може бути вирішене впровадженням інформації про копії (номер копії або дані про суб'єкта, який придбав екземпляр). Але якщо таку інформацію розмістити без спроби її приховування, то зловмисники можуть видалити або модифікувати цю інформацію в своїх цілях. Щоб уникнути таких ситуації цю інформацію (мітку) можна спробувати приховати або зашифрувати. З цією метою застосовуються різного роду методи стеганографічних і криптографічних впроваджень міток. У разі виникнення питання про приналежність авторства при наявності спору між потенційними авторами можна буде підтвердити авторство, розкривши мітку авторства, впроваджену в спірний екземпляр продукту. Такий тип мітки називаються цифровими водяними знаками (ЦВЗ)[1].

У разі виникнення питання про те, чи отримана копія з дотриманням угод, може бути витягнута мітка з даними про копію, ідентифікують копію. Такі мітки називаються цифровими відбитками (ЦВ)[2]. Таким чином, для попереднього захисту програмного продукту автору необхідно вирішити наступні питання:

3. Огляд досліджень та розробок

Методи захисту за засобами стеганографії як об'єкти досліджень проявилися відносно недавно. З появою цифрової стеганографії часто в якості контейнерів для стегоповідомлень використовувалися медіа–файли, такі як зображення, відеофайли, звукові файли. Для вбудовування цифрових водяних знаків (ЦВЗ) в програмне забезпечення потрібні більш складні алгоритми. Нижче розглянута література на тему застосування цифрових міток до програмного забезпечення (англ. Software watermarking).

3.1 Актуальність теми

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

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

На графіку, зображеному на малюнку 1 видно, що в іноземній літературі термін стеганографія зустрічається частіше, особливо в літературі, виданої в США англійською мовою. Більшу частину першого десятиріччя XXI століття першість утримувала німецька література.

Динаміка вживання терміна "стеганографія" в літературі

Малюнок 1 – Динаміка вживання терміну стеганографія в літературі

Кадрів: 9
Циклів: 8

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

Динаміка вживання термінів "цифрова" та "стеганографія" в літературі

Малюнок 2 – Динаміка вживання термінів цифрова та стеганографія в літературі

Кадрів: 9
Циклів: 8

3.2 Огляд національних джерел

У розглянутій книзі А. Щербакова Защита от копирования[3], виданій в 1992 р розглядаються найбільш поширені методи захисту ПЗ, що застосовувалися 30 років тому. Всі наведені в книзі методи зав'язані на захисті від копіювання ПЗ з ліцензійного носія, дизассемблирования ПО.

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

Корисною виявилася глава №6 Выполнение защищённых программ и работа с защищёнными данными в якій були описані принципи побудови зовнішнього завантажувача виконуваних модулів, які виробляють якусь перевірку умови запуску і роботи програмного забезпечення. Це допоможе зробити завантажувач, яких не дасть працювати ПЗ якщо, наприклад, мітка була виявлена і модифікована.

У статті Peering Inside The PE[4] описується структура PE файлу. Portable Executable файл – основний тип виконуваних файлів в операційних системах сімейства Windows. Тут поетапно пояснюється процес запуску виконуваних файлів, призначення і структура заголовків, принцип вирівнювання в пам'яті. Це дає уявлення про можливість вбудовуванні міток в заповнені нульовими значеннями в результаті вирівнювання секціями. Зі структури заголовків можна дізнатися правила адресації заголовків і секторів для того, щоб уникнути конфліктів при вбудовуванні мітки. У зв'язці з методами побудови зовнішнього завантажувача це допоможе приховати вміст мітки (і коду програми в цілому) від кінцевого користувача.

У навчальному посібнику Монахова М.Ю. і Ташмухамедової В.Ф. Защита авторских прав [5] крім опису захисту ПЗ з юридичної сторони, також описуються основи технічних методів і засобів захисту авторських прав на програмне забезпечення. Як і у багатьох інших матеріалах, присвячених технічним методам захисту ПЗ наводяться принципи шифрування коду програми при зберіганні його на локальному носії, і розшифровка коду тільки на момент його виконання. Тут описані найбільш поширені методи розтину захисту, також методи протидії їм, що вельми корисно для захисту впровадженої інформаційної мітки. Як і в книзі А. Щербакова Защита от копирования, тут говориться що відладчики використовують стандартні переривання, тому, маючи ідентифікатори цих переривань, можна змінити їх вектори, і тим самим ускладнити процес налагодження зловмисниками. Тут описані методи впровадження мітки, що базуються на особливостях структури PE файлів, описаної в статті Peering Inside the PE.

Середа С.А. у своїй роботі на тему Оценка эффективности защиты программного обеспечения [6] виділяє два типи засобів захисту ПЗ: пакувальники/шифратори; СЗ від несанкціонованого копіювання та несанкціонованого доступу. Перші спочатку використовувалися для компресії даних і зменшення об'єму виконуваного модуля, але, як каже сам автор, пізніше на перший план вийшла мета захисту ПЗ від аналізу його алгоритмів і несанкціонованої модифікації. Такий прийом може також бути використаний для збереження цілісності мітки в виконуваному модулі.

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

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

З метою ускладнення копіювання і запуску ПЗ на декількох машинах багатьма авторами, як можливий захід для аутентифікації ПК, пропонується використовувати якісь незмінні або рідко змінювані параметри забезпечення. Наприклад, це може бути ідентифікатор ЖМД або ЦП. Але проблема в тому, що відкрита архітектура ПК фактично знеособлює кожен IBM–PC–сумісну машину і, по–перше, може спрацювати та не дати доступ до роботи користувачеві, який легально отримав дану копію ПЗ, але змінив значущі для аутентифікації апаратні вузли, а по–друге, може, навпаки, бути одурена, якщо запит на дані про апаратну конфігурацію будуть перехоплені, і замість реальних даних у відповідь на запит будуть відправлені дані, що задовольняють перевірку дозволу доступу[7].

3.3 Огляд міжнародних джерел

У літературі [8] пропонується метод вбудовування мітки, заснований на доказі з нульовим розголошенням (англ. Zero–knowledge proof). Для його опису потрібно ввести поняття перевіряючого (англ. Verifier) і доказуючого (англ. Prover). Доказуючий – це агент або суб'єкт, який заявляє, що знає доказ твердження і намагається його довести. Перевіряючий – це агент або суб'єкт, який намагається дізнатися доказ від перевіряючого. В кінці взаємодії, званого протоколом, доказуючий переконує перевіряючого в тому, що він знає доказ, при цьому не передаючи ніяких додаткових знань про вміст інформації, знання якої перевіряється.

Одним з найбільш відомих протоколів ідентифікації особи за допомогою доказу з нульовим знанням є протокол, запропонований Амосом Фіатом (англ. Amos Fiat) і Аді Шаміром (англ. Adi Shamir), стійкість якого грунтується на складності вилучення квадратного кореня за модулем досить великого складеного числа n, факторизація якого невідома[9]. У тій же книзі автор підтверджує наші спостереження про те, що стеганографічні методи для медіа–об'єктів активно розвивалися з 90–х років XX ст., але ті ж методи, що застосовуються в сфері програмного забезпечення стали темою для вивчення відносно недавно.

Інший спосіб пропонується в матеріалах міжнародної конференції 2015 року з архітектурної, енергетичної та інформаційної інженерії[10]. Він називається Вдосконалений алгоритм динамічного програмного водяного знака на основі R–дерева англ. “Improved dynamic software watermarking algorithm based on R–tree”). Цей алгоритм розбитий на 4 етапи:

  1. Розподіл водяного знака на основі правила перенесення змінних m–n (Watermarking–sharing based on m–n variable carrying rule).
  2. Етап нульового кодування(Zero coding).
  3. Перетворення за допомогою факторіальної системи числення зі змінною основою (Variable–Base Factorial Number System).
  4. Виконання функцій, пов'язаних з R–деревами (R–tree related features).

Цей метод, як видно з його назви, є вдосконаленим алгоритмом оригінального алгоритму динамічного програмування ЦВЗ на основі R–дерева[11], і в порівнянні з ним має велику стійкість до адитивних атак, і атак, пов'язаних з підміною ЦВЗ.

4. Порівняння стеганографічних способів впровадження мітки в програмний продукт

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

Переваги:

Недоліки:

На сьогоднішній день одним з найпоширеніших розширень виконуваних файлів є EXE. Їх структура не прив'язана до мові програмування, на якому був написаний програмний продукт. Тому впровадження міток в об'єктні коди має велику універсальність і незалежність від програмного інтерфейсу.

Один з таких способів заснований на наявності вільних ділянок в об'єктних кодах програм, що зберігаються в виконуваних файлах, там можуть міститися повністю або частково вільні сектори файлу. Даний метод спирається на те, що секції в Portable Executable (PE) файлі після процедури вирівнювання заповнюють відсутні байти нульовим значенням, щоб довжина секції була кратна певному значенню(див. мал. 3).

Принцип вирівнювання

Малюнок 3 – Принцип вирівнювання

На малюнку 3 видно, що розмір секцій у фізичній пам'яті = 0x28 байт, тоді як у віртуальній пам'яті, розмір повинен бути кратний 0x50. Для цього байти з адресами 0x28–0x50 заповняться нульовими байтами 0x00, в таких ділянках і можуть бути заховані мітки.

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

Переваги:

Недоліки:

Другим способом впровадження в об'єктний код є зміна ділянок об'єктних кодів, які не впливають на працездатність Програмного продукт. Наприклад, структура файлів виконуваних PE–файлів така, що зміна значень деяких полів не позначиться на функціональності програмного продукту (див. мал. 4 та мал. 5)[5].

Фрагмент об'єктного коду без впровадженої мітки

Малюнок 4 – Фрагмент об'єктного коду без впровадженої мітки

Фрагмент об'єктного коду із впровадженою міткою

Малюнок 5 – Фрагмент об'єктного коду із впровадженою міткою

Наприклад, DOS–заголовок має розмір 64 байти, з яких 6 байт є критично важливими: 2 байти відведені для сигнатури MZ на початку кожного PE–файлу, без якого файл просто не запуститися, і 4 байти для зберігання зміщення до PE–заголовка. Залишається 58 байт для довільного повідомлення.

Переваги:

Недоліки:

Третій спосіб впровадження мітки в об'єктний код грунтується на тому, щоб в разі її зміни або видалення, порушувалася працездатність програмного продукту. Такий метод може бути реалізований на етапі кодування продукту або реалізований як окремий модуль, який, якщо буде виявлено порушення цілісності мітки в разі ЦВЗ, І якщо виявиться розбіжність даних контрольних даних в разі ЦВ, виконає відповідні заходи[4].

Переваги:

Недоліки:

Висновки

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

На час написання даного реферату магістерська робота ще не була завершена. Остаточне завершення: Травень 2021 року. Повний текст роботи і матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.

Перелік посилань

  1. Мельников Ю., Теренин А., Погуляев В. Цифровые водяные знаки – новые методы защиты информации. PC Week N48, 2007.
  2. Орешин Е. Эффективные способы защиты авторских и смежных прав в Интернете. Журнал Суда по интеллектуальным правам N9, 2015, с. 48‑55.
  3. Щербаков А. Защита от копирования. – М.: ЭДЭЛЬ, 1992. – 79 с.
  4. Peering Inside the PE: A Tour of the Win32 Portable Executable File Format. – Режим доступу: https://docs.microsoft.com/ru-ru/previous-versions/ms809762(v=msdn.10)
  5. Монахов М., Ташмухамедова В. Защита авторских прав на программное обеспечение. Владимирский государственный университет, 2009. – с. 58.
  6. Середа С. Оценка эффективности систем защиты программного обеспечения. – Режим доступу: http://www.security.ase.md/publ/ru/pubru30.html
  7. Anderson R. SecurityEngineering. – N.Y.JohnWiley&Sons, 2001. – p. 612.
  8. M. Barni et al. (Eds.): IWDW 2005, LNCS 3710, pp. 299–312, 2005.©Springer–Verlag Berlin Heidelberg 2005.
  9. Feige U., Fiat A., Shamir A. Zero Knowledge Proofs of Identity // Journal of Cryptology. – 1988. – vol. 1, Iss. 2. – pp. 77–94.
  10. L. He & J.F. Xu Improved dynamic software watermarking algorithm based on R–tree // Architectural, energy and information engineering (AEIE 2015), Xiamen, China, 2015 – С. 531‑535.
  11. Xu, H. & Chen, H. & Feng, D. & Li, D.. (2005). Dynamic software watermarking algorithm. 33. 172‑174.