УДК 004.056.53(043.2)

Науковий керівник – А.Б.Петренко , д.т.н., проф.

Козаченко С.В.

Національний авіаційний університет, Київ

 

Захист програмних засобів від несанкціонованого копіювання та розповсюдження

                                                 

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

Мета – розгляд заходів та засобів захисту програмних засобів від несанкціонованого копіювання та розповсюдження.

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

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

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

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

1. спеціальні регістри для зберігання реквізитів захисту: паролів, ідентифікаційних кодів, або рівнів грифів секретності;

 2. пристрої вимірювання індивідуальних характеристик людини (голосу, відбитків) з метою його ідентифікації;

 3. схеми переривання передачі інформації в лінії зв'язку з метою періодичної перевірки адреси видачі даних;

4. пристрої для шифрування інформації (криптографічні методи).

 

Розрізняють наступні види захисту програм:

·        локальний програмний захист – це запит програми на введення ключа при інсталюванні чи старті;

·        мережевий локальний – метод заснований на використанні можливостей локальної мережі;

·        мережевий глобальний – метод заснований на використанні можливостей глобальної мережі;

·        захист за допомогою «ключових» носіїв – цей тип захисту мав місце в минулому і базувався виключно на створенні будь-яких унікальних за своїми властивостями носіїв (дискет, CD-дисків. Flash накопичувачів тощо);

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

·        активація програм з прив’язкою їх  до певних параметрів комп’ютерів.

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

    Також можливе використання таких методів захисту як:

Алгоритми заплутування - використаються хаотичні переходи в різні частини коду, впровадження помилкових процедур - "пустишок", холості цикли, перекручування кількості реальних параметрів процедурПЗ, розкид ділянок коду по різних областяхОЗУ й т.п.

Алгоритми мутації - створюються таблиці відповідності операндів - синонімів і заміна їх один на одного при кожному запуску програми за певною схемою або випадковим образом, випадкові зміни структури програми.

Алгоритми компресії даних - програма запаковується, а потім розпаковується в міру виконання.

Алгоритми шифрування даних - програма шифрується, а потім розшифровується в міру виконання.

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

Методи утруднення налагодження - використовуються різні прийоми, спрямовані на ускладнення налагодження програми.

Емуляція процесорів і операційних систем - створюється віртуальний процесор і/або операційна система (не обов'язково реально існуючі) і програма-перекладач із системи команд IBM у систему команд створеного процесора або ОС, після такого перекладу ПЗ може виконуватися тільки за допомогою емулятора, що різко утрудняє дослідження алгоритму ПЗ.

Нестандартні методи роботи з апаратним забезпеченням - модулі системи захисти звертаються до апаратур ЕОМ, минаючи процедури операційної системи, і використовуютьмаловідомі або недокументовані її можливості.

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