МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ЗВІТ
до лабораторної роботи № 4
Дослідження методів ЗПЗ та їх реалізація
з курсу
"Програмний захист інформації"
Львів - 2013
Мета роботи – дослідити методи захисту програмного забезпечення та їх реалізацію
ЗАВДАННЯ
Розроблення програмного забезпечення (ПЗ) у якому реалізовано метод захисту від НСД та розповсюдження :
Розробити годинник *
*які мають працювати у demo режимі до моменту введення ліцензійного ключа.
.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Системи захисту ПЗ широко поширені й перебувають у постійному розвитку, завдяки розширенню ринку ПЗ й телекомунікаційних технологій. Необхідність використання систем захисту (СЗ) ПЗ обумовлена рядом проблем, серед яких варто виділити: незаконне використання алгоритмів, що є інтелектуальною власністю автора, при написанні аналогів продукту (промислове шпигунство); несанкціоноване використання ПЗ (крадіжка й копіювання); несанкціонована модифікація ПЗ з метою впровадження програмних зловживань; незаконне поширення й збут ПЗ (піратство).
Існуючі системи захисту програмного забезпечення можна класифікувати по ряду ознак, серед яких можна виділити метод установки, використовувані механізми захисту й принцип функціонування.
Системи захисту ПЗ по методу установки можна підрозділити на системи, установлювані на скомпільовані модулі ПЗ; системи, що вбудовують у вихідний код ПЗ до компіляції; і комбіновані.
Системи першого типу найбільш зручні для виробника ПЗ, тому що легко можна захистити вже повністю готове й протестоване ПЗ (звичайно процес установки захисту максимально автоматизований і зводиться до вказівки імені файлу, що захищається, і натисканню "Enter"), а тому й найбільш популярні. У той же час стійкість цих систем досить низка (залежно від принципу дії СЗ), тому що для обходу захисту досить визначити точку завершення роботи "конверта" захисту й передачі керування захищеній програмі, а потім примусово зберегти її в незахищеному вигляді.
Системи другого типу незручні для виробника ПЗ, тому що виникає необхідність навчати персонал роботі із програмним інтерфейсом (API) системи захисту з витікаючими звідси грошовими й часовими витратами. Крім того, ускладнюється процес тестування ПЗ й знижується його надійність, тому що крім самого ПЗ помилки може містити API системи захисту або процедури, його що використають. Але такі системи є більше стійкими до атак, тому що тут зникає чітка границя між системою захисту і як самим ПЗ.
По використовуваних механізмах захисту СЗ можна класифікувати на: системи, що використовують складні логічні механізми; системи, що використовують шифрування захисту ПЗ; і комбіновані системи.
Системи першого типу використовують різні методи й прийоми, орієнтовані на утруднення дизасемблювання, налагодження й аналізу алгоритму СЗ і ПЗ. Цей тип СЗ найменш стійкий до атак, тому що для подолання захисту досить проаналізувати логічні процедури перевірки й належним чином їх модифікувати.
Більше стійкими є системи другого типу. Для дезактивації таких захистів необхідне визначення ключа дешифрації ПЗ.
Самими стійкими до атак є комбіновані системи.
Для захисту ПЗ використовується ряд методів, таких як:
Алгоритми заплутування - використаються хаотичні переходи в різні частини коду, впровадження помилкових процедур - "пустишок", холості цикли, перекручування кількості реальних параметрів процедур ПЗ, розкид ділянок коду по різних областях ОЗУ й т.п.
Алгоритми мутації - створюються таблиці відповідності операндів - синонімів і заміна їх один на одного при кожному запуску програми за певною схемою або випадковим образом, випадкові зміни структури програми.
Алгоритми компресії даних - програма запаковується, а потім розпаковується в міру виконання.
Алгоритми шифрування даних - програма шифрується, а потім розшифровується в міру виконання.
Обчислення складних математичних виразів у процесі відпрацьовування механізму захисту - елементи логіки захисту залежать від рез...