Р. П. Шевчук // Опорний конспект лекцій з дисципліни „Методи та засоби захисту програмного забезпечення", для студентів напрямку „Комп’ютерні науки"


ТЕМА 4. МЕТОДИ ЗАХИСТУ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ



Pdf көрінісі
бет10/23
Дата10.09.2023
өлшемі0.66 Mb.
#477061
түріКонспект
1   ...   6   7   8   9   10   11   12   13   ...   23
Опорний конспект лекцій з дисципліни Методи та засоби захисту програмного забезпечення

ТЕМА 4. МЕТОДИ ЗАХИСТУ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 
 
 
4.1. Мотиви захисту програмного забезпечення 
Під мотивами захисту ПЗ розуміється «зміст захисту ПЗ» або «від чого 
захищають ПЗ».
Комерційні програми зазвичай захищають від несанкціонованого тиражування. 
Наявність доступу тільки до носія інформації з дистрибутивом (набором 
інсталяційних файлів) програмного продукту не повинна давати можливості 
встановити працездатну копію програми. Тобто даних дистрибутива, який можна 
скопіювати або непомітно взяти на декілька днів, не повинно вистачати для 
створення працездатної копії програми. Подібні обмеження можуть бути реалізовані 
різними способами. Наприклад, дуже багато комерційних програм при інсталяції 
вимагають ввести серійний номер, надрукований на коробці або вказаний в одному з 
документів, що додаються до програмного продукту (у Microsoft - в сертифікаті 
автентичності). 
Також часто виникає потреба обмежити число користувачів, що одночасно 
працюють з програмою. Тобто людина, яка придбала ліцензію на одне робоче місце, 
не повинна мати можливості створити 2 робочих місця, що функціонують 
одночасно. Це досягається за рахунок використання апаратних ключів, менеджерів 
ліцензій і процедури активації. 
Для деяких програмних продуктів (зокрема ігор) часто використовується 
прив'язка до носія інформації, наприклад компакт-диску. Тобто для запуску гри 
потрібна наявність в приводі оригінального компакт-диска, який захищений від 
копіювання стандартними засобами. 
Для комерційних Trialwre програмних продуктів, обмежених за часом або 
числом запусків, необхідно правильно реалізувати зберігання лічильників, щоб 
зловмисник не зміг примусити працювати програму, просто перевівши годинник або 
видаливши файл, в який записується кількість запусків програми або число 
оброблених файлів. 
Умовно безкоштовні продукти, на відміну від обмежених по функціональності 
версій комерційних програм, після введення реєстраційного коду повинні надавати 
доступ до всіх функцій, передбачених в повній версії програми. Тобто в 
безкоштовно поширюваній версії програми повинні бути реалізовані всі функції 
повної версії. Отже для цієї моделі розповсюдження, бажано так організувати захист, 
щоб зловмисник не зміг дістатися до функцій, властивих тільки повній версії, поки в 
його розпорядженні не буде правильного реєстраційного коду чи іншої необхідної 
інформації. 
Процедури перевірки правильності серійних номерів, а також реєстрації 
віконних кодів і кодів активації повинні будуватися так, щоб зловмисник не міг 
самостійно генерувати правильні коди і, в той же час, довжина кодового рядка не 
була дуже великою. 
Також може виникнути потреба захищати будь-які виконувані файли від 
внесення змін, дизасемблювання, дослідження під відлагоджувачем та інше. 


21 
 
4.2. Реєстраційні коди 
Процедура реєстрації ПЗ полягає у введені певної інформації про споживача 
ПЗ (заповнення своєрідної реєстраційної картки) та надсилання її виробникові через 
електронну пошту, Інтернет... Після цього споживачеві надсилається реєстраційний 
код, після введення якого він стає зареєстрованим користувачем і отримує 
передбачувані привілеї (технічну підтримку, гарантійне обслуговування та інше). У 
свою чергу виробник ПЗ поповнює статистичну інформацію про своїх клієнтів. 
Оскільки ім'я користувача не є унікальним, кожен екземпляр продукції, що 
продається, доцільно пов'язувати з деяким значенням, що не повторюється - 
серійним номером. Цей номер вказується користувачем при заповненні 
реєстраційної картки і надалі використовується при спілкуванні з виробником. А в 
додатку до програмних продуктів серійний номер цілком може виконувати і 
допоміжну функцію - обмежувати нелегальне копіювання. Якщо програма при 
встановлені вимагає ввести правильний серійний номер, вкравши (скопіювавши) 
носій з дистрибутивом програми, який однаковий у всіх користувачів, отримати 
робочу копію програми не вдасться. А розповсюдження серійного номера дозволяє 
знайти і покарати асоційованого з цим номером користувача. 
В деяких випадках після встановлення програми (неважливо, з введенням 
серійного номера або без) для одержання доступу до всіх функцій програми 
користувачеві необхідно виконати ще одну процедуру — реєстрацію або, як це тепер 
називає Microsoft, активацію. Така поведінка характерна для більшості Shareware-
продуктів, а також для програм, розробники яких вважають, що користувач не має 
права працювати, поки не повідомить про себе всі необхідні відомості, навіть якщо 
він вже придбав ліцензію.
При введені одержаного реєстраційного коду спрацьовує механізм захисту ПЗ, 
який перевіряє вірність введеного коду. При цьому можливість обчислювати вірні 
коди повинна завжди залишатися тільки в руках розробника. Для того, щоб 
супротивник, виправивши декілька байт, не зміг заставити ПЗ працювати так, як 
ніби він був коректно зареєстрований чи активований, необхідно частину 
програмного коду або даних, доступ до яких дозволений тільки легальним 
користувачам зашифрувати стійким алгоритмом, а ключ шифрування обчислювати, 
використовуючи реєстраційний код. Тоді без знання реєстраційного коду отримати 
повноцінну версію програми не вдасться. Подібну функціональність забезпечують, 
програми ASProtect (ASPack Software) і EXECryptor (SoftCompIete Development). 
Визначимо декілька критеріїв, по яких можна порівнювати властивості різних 
методів генерації і перевірки кодів: 

можливість пов'язати код з ім'ям користувача або характеристиками 
комп'ютера; 

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

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

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


22 

довжина ключового рядка (зручність користувача). 
Всі методи перевірки правильності кодів можна, умовно, розділити на три 
категорії: 

алгоритмічні, що базуються на принципі "чорного ящика"; 

алгоритмічні, що базуються на математично складному завданні; 

табличні. 
Будь-які алгоритмічні методи дозволяють пов'язати код з ім'ям користувача 
або інформацією про його комп'ютер, тим самим ускладнивши отримання декількох 
копій програми, що виглядають як легальні. При використанні "чорного ящика" 
розробник має намір заплутати алгоритм перевірки, щоб його було важче зрозуміти і 
обернути. Такий підхід, напевно, використовується частіше за всіх інших. Якщо 
процедура перевірки написана без грубих помилок, то отримати з неї правильний 
код неможливо, але, знаючи один правильний код і обернувши процедуру перевірки, 
зламувач може обчислити будь-які нові коди. 
Алгоритмічні методи перевірки реєстраційного коду, що базуються на 
складному математичному завданні, не потребують приховування деталей реалізації. 
Їх особливість в тому, що для генерації коду і перевірки його правильності 
використовуються два різних алгоритми і отримання алгоритму генерації з
алгоритму перевірки є математичним завданням, що не має на теперішній час 
ефективного рішення. Найчастіше для цих цілей використовуються криптографічні 
алгоритми з відкритим ключем. Проте у асиметричної криптографії є одна 
особливість: розмір блоку, над яким проводяться операції, досить великій. Так, для 
RSA-1024 розмір блоку (а значить, і мінімальний розмір реєстраційного коду) 
складає 128 байт. А щоб двійкові дані можна було ввести з клавіатури, їх кодують, 
наприклад, алгоритмом MIME64, який збільшує розмір блоку на третину. Тобто 
довжина кодового рядка складе як мінімум 172 символи. Очевидно, що ввести без 
помилок безглузду послідовність такої довжини, що складається з букв, цифр і 

Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   23




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет