Дослідження методів ЗПЗ та їх реалізація

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмний захист інформації

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” ЗВІТ до лабораторної роботи № 4 Дослідження методів ЗПЗ та їх реалізація з курсу "Програмний захист інформації" Львів - 2013 Мета роботи – дослідити методи захисту програмного забезпечення та їх реалізацію ЗАВДАННЯ Розроблення програмного забезпечення (ПЗ) у якому реалізовано метод захисту від НСД та розповсюдження : Розробити годинник * *які мають працювати у demo режимі до моменту введення ліцензійного ключа. . КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Системи захисту ПЗ широко поширені й перебувають у постійному розвитку, завдяки розширенню ринку ПЗ й телекомунікаційних технологій. Необхідність використання систем захисту (СЗ) ПЗ обумовлена рядом проблем, серед яких варто виділити: незаконне використання алгоритмів, що є інтелектуальною власністю автора, при написанні аналогів продукту (промислове шпигунство); несанкціоноване використання ПЗ (крадіжка й копіювання); несанкціонована модифікація ПЗ з метою впровадження програмних зловживань; незаконне поширення й збут ПЗ (піратство). Існуючі системи захисту програмного забезпечення можна класифікувати по ряду ознак, серед яких можна виділити метод установки, використовувані механізми захисту й принцип функціонування. Системи захисту ПЗ по методу установки можна підрозділити на системи, установлювані на скомпільовані модулі ПЗ; системи, що вбудовують у вихідний код ПЗ до компіляції; і комбіновані. Системи першого типу найбільш зручні для виробника ПЗ, тому що легко можна захистити вже повністю готове й протестоване ПЗ (звичайно процес установки захисту максимально автоматизований і зводиться до вказівки імені файлу, що захищається, і натисканню "Enter"), а тому й найбільш популярні. У той же час стійкість цих систем досить низка (залежно від принципу дії СЗ), тому що для обходу захисту досить визначити точку завершення роботи "конверта" захисту й передачі керування захищеній програмі, а потім примусово зберегти її в незахищеному вигляді. Системи другого типу незручні для виробника ПЗ, тому що виникає необхідність навчати персонал роботі із програмним інтерфейсом (API) системи захисту з витікаючими звідси грошовими й часовими витратами. Крім того, ускладнюється процес тестування ПЗ й знижується його надійність, тому що крім самого ПЗ помилки може містити API системи захисту або процедури, його що використають. Але такі системи є більше стійкими до атак, тому що тут зникає чітка границя між системою захисту і як самим ПЗ. По використовуваних механізмах захисту СЗ можна класифікувати на: системи, що використовують складні логічні механізми; системи, що використовують шифрування захисту ПЗ; і комбіновані системи. Системи першого типу використовують різні методи й прийоми, орієнтовані на утруднення дизасемблювання, налагодження й аналізу алгоритму СЗ і ПЗ. Цей тип СЗ найменш стійкий до атак, тому що для подолання захисту досить проаналізувати логічні процедури перевірки й належним чином їх модифікувати. Більше стійкими є системи другого типу. Для дезактивації таких захистів необхідне визначення ключа дешифрації ПЗ. Самими стійкими до атак є комбіновані системи. Для захисту ПЗ використовується ряд методів, таких як: Алгоритми заплутування - використаються хаотичні переходи в різні частини коду, впровадження помилкових процедур - "пустишок", холості цикли, перекручування кількості реальних параметрів процедур ПЗ, розкид ділянок коду по різних областях ОЗУ й т.п. Алгоритми мутації - створюються таблиці відповідності операндів - синонімів і заміна їх один на одного при кожному запуску програми за певною схемою або випадковим образом, випадкові зміни структури програми. Алгоритми компресії даних - програма запаковується, а потім розпаковується в міру виконання. Алгоритми шифрування даних - програма шифрується, а потім розшифровується в міру виконання. Обчислення складних математичних виразів у процесі відпрацьовування механізму захисту - елементи логіки захисту залежать від результату обчислення значення якої-небудь формули або групи формул. Методи утруднення дизасемблювання - використовуються різні прийоми, спрямовані на запобігання дизасемблювання в пакетному режимі. Методи утруднення налагодження - використовуються різні прийоми, спрямовані на ускладнення налагодження програми. Емуляція процесорів і операційних систем - створюється віртуальний процесор і/або операційна система (не обов'язково реально існуючі) і програма-перекладач із системи команд IBM у систему команд створеного процесора або ОС, після такого перекладу ПЗ може виконуватися тільки за допомогою емулятора, що різко утрудняє дослідження алгоритму ПЗ. Нестандартні методи роботи з апаратним забезпеченням - модулі системи захисти звертаються напряму до апаратної частини ЕОМ, минаючи процедури операційної системи, і використовують маловідомі або не документовані її можливості. За принципом функціонування СЗ можна поділити на: - пакувальники/шифратори; - СЗ від несанкціонованого копіювання; - СЗ від несанкціонованого доступу (НСД). Пакувальники/шифратори Спочатку, основною метою пакувальників/шифраторів було зменшення обсягу модуля, що виконує, на диску без шкоди для функціональності програми, але пізніше на перший план вийшла мета захисту ПЗ від аналізу його алгоритмів і несанкціонованої модифікації. Для досягнення цього використовуються алгоритми компресії даних; прийоми, пов'язані з використанням недокументованих особливостей операційних систем (ОС) і процесорів; шифрування даних, алгоритми мутації, заплутування логіки програми, приведення ОС у нестабільний стан на час роботи ЗД і ін. Переваги: У рамках періоду безпечного використання дані системи забезпечують високий рівень захисту ПЗ від аналізу його алгоритмів. Методи упакування/шифрації набагато збільшують стійкість систем захисту інших типів. Недоліки: Практично всі застосовувані методи сповільнюють виконання коду ПЗ. Шифрування/упакування коду ПЗ викликає утруднення при відновленні (update) і виправленні помилок (bugfix, servicepack). Можливе підвищення апаратно-програмних вимог ПЗ. У чистому видгляді дані системи не застосовні для авторизації використання ПЗ. Ці системи застосовні лише до продуктів невеликого обсягу (до 1 мегабайта). Даний клас систем уразливий, тому що програмний код, в остаточному підсумку, розпаковується або розшифровується для виконання. Упакування й шифрування коду, що виконує, вступає в конфлікт із забороною коду, що самомодифікується, у сучасних ОС. СЗ від несанкціонованого копіювання СЗ від несанкціонованого копіювання здійснюють "прив'язку" ПЗ до дистрибутивного носія (гнучкий диск, CD ...). Даний тип захистів ґрунтується на глибокому вивченні роботи контролерів накопичувачів, їхніх фізичних показників, нестандартних режимів розбивки, читання/запису й т.п. При цьому на фізичному рівні створюється дистрибутивний носій, що володіє (приблизно) неповторними властивостями (звичайно це досягається за допомогою нестандартної розмітки носія інформації або/і запису на нього додаткової інформації - пароля або мітки), а на програмному - створюється модуль, настроєний на ідентифікацію й аутентификацію носія по його унікальним властивостям. При цьому можливо застосування прийомів, використовуваних пакувальниками/шифраторами. Переваги: Утруднення нелегального копіювання й поширення ПЗ; Захист прав користувача на придбане ПЗ. Недоліки: Більша трудомісткість реалізації системи захисту; Із продажів через необхідність фізичної передачі дистрибутивного носія інформації; Підвищення системних вимог через захист (наявність накопичувача); Зниження стійкості до відмов ПЗ; Несумісність захисту й апаратури користувача (накопичувач, контролер); На час роботи ЗД займається накопичувач; Загроза крадіжки захищеного носія; СЗ від НСД СЗ від НСД здійснюють попередню або періодичну аутентификацію користувача ПО або його комп'ютерної системи шляхом запиту додаткової інформації. До цього типу СЗ можна віднести системи парольного захисту ПЗ, системи "прив'язки" ПЗ до комп'ютера користувача, системи з " ключовими дисками" і апаратно-програмні системи з електронними ключами. У першому випадку "ключову" інформацію вводить користувач, у другому - вона отримується в унікальних параметрах комп'ютерної системи користувача, у третьому - вона зберігається на диску й у четвертому випадку "ключова" інформація зчитується з мікросхем електронного ключа. ХІД РОБОТИ Я, використовуючи середовище програмування PHP, створила демонстраційну програму годинника. Після запуску програми на комп’ютері, вона починає працювати в демо режимі. Ознакою демо режиму є напис чорними літерами зверху екрану «Незареєстрована версія» та кнопка «зареєструватися»: / Для того, щоб зареєструвати програму необхідно ввести відповідний ключ. Розглянемо, як відбувається процедура реєстрації. / У випадку коли коди співпадають, з’являється відповідне повідомлення і на головному вікні зникає напис «Ви ввели невірний ключ!» та кнопка «Реєстрація»: AAAA-BBBB-1234-CCCC / Вигляд головного вікна після успішної реєстрації (виведення програми з демо режиму): / ВИСНОВКИ Під час виконання даної лабораторної роботи я ознайомилася з основними принципами та підходами для захисту програмного забезпечення. Було створено тестову програму яка працює в демо режимі до введення реєстраційного ключа, що генерується на основі імені користувача. В даному випадку цей тип захисту дуже легко обійти, оскільки не використовуються інші міри захисту (шифрування, упаковка, прив’язка до апаратної частини і т.д.), тому він призначений лише для демонстрації подібних алгоритмів захисту.
Антиботан аватар за замовчуванням

18.09.2013 12:09-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!