- •Методи захисту інформації – лекції…
- •Системи захисту програмного забезпечення
- •1. Класифікація систем захисту програмного забезпечення
- •2. Переваги і недоліки основних систем захисту
- •2.1. Пакувальники, шифратори
- •2.2. Системи захисту від несанкціонованого копіювання
- •2.3. Системи захисту від несанкціонованого доступу
- •2.3.2. Системи «прив'язки» по
- •2.3.3. Програмно-апаратні засоби захисту по з електронними ключами
- •2.3.4. Засоби захисту по з «ключовими дисками»
- •3. Показники ефективності систем захисту
- •Актуальність даної теми та мета лекції:
- •Посилання на попередній матеріал:
- •Виклад основного матеріалу:
- •Шифр частоколу
- •4). Застосування магічних квадратів.
- •4) Шифр Плейфера (або Play-fair)
- •5) Афінна підстановка
- •Поліалфавітні:
- •Система шифрування Віжінера
- •Гомофонічні
- •Висновки
Системи захисту програмного забезпечення
1. Класифікація систем захисту програмного забезпечення
Системи захисту програмного забезпечення (СЗПЗ) широко поширені і знаходяться в постійному розвитку, завдяки розширенню ринку програмного забезпечення і телекомунікаційних технологій. Необхідність використання систем захисту СЗПО обумовлена поруч проблем, серед яких варто виділити: незаконне використання алгоритмів, що є інтелектуальною власністю автора, при написанні аналогів продукту (промислове шпигунство); несанкціоноване використання ПО (крадіжка і копіювання); несанкціонована модифікація ПО з метою введення програмних зловживань; незаконне поширення і збут ПО (піратство).
Існуючі системи захисту програмного забезпечення можна класифікувати по ряду ознак, серед яких можна виділити:
• метод установки;
• використовувані механізми захисту;
• принцип функціонування.
Системи захисту ПО по методу установки можна підрозділити на:
1) системи, установлювані на скомпільовані модулі ПО;
2) системи, що вбудовуються у вихідний код ПО до компіляції;
3) комбіновані.
Системи першого типу найбільш зручні для виробника ПО, тому що легко можна захистити вже цілком готове й протестоване ПО, а тому і найбільше популярні. У той же час стійкість цих систем досить низька (у залежності від принципу дії СЗ), тому що для обходу захисту досить визначити крапку завершення роботи «конверта» захисту і передачі керування захищеній програмі, а потім примусово її зберегти в незахищеному виді.
Системи другого типу незручні для виробника ПО, тому що виникає необхідність навчати персонал роботі з програмним інтерфейсом (API) системи захисту з витікаючими звідси грошовими і тимчасовими витратами. Крім того, ускладнюється процес тестування ПО і знижується його надійність, тому що крім самого ПО помилки може містити API системи захисту або процедури, його що використовують. Але такі системи є більш стійкими до атак, тому що тут зникає чітка границя між системою захисту і як таким ПО.
Найбільш живучими є комбіновані системи захисту. Зберігаючи переваги і недоліки систем другого типу, вони максимально утрудняють аналіз і дезактивацію своїх алгоритмів.
По використовуваних механізмах захисту СЗ можна класифікувати на:
1) системи, що використовують складні логічні механізми;
2) системи, що використовують шифрування захищаючого ПО;
3) комбіновані системи.
Системи першого типу використовують різні методи і прийоми, орієнтовані на утруднення дизассемблирования, налагодження й аналізу алгоритму СЗ і що захищається ПО. Цей тип СЗ найменш стійкий до атак, тому що для подолання захисту досить проаналізувати логікові процедур перевірки і належним образом їх модифікувати. Більш стійкими є системи другого типу. Для дезактивації таких захистів необхідно визначення ключа дешифрування ПО. Самими стійкими до атак є комбіновані системи.
Для захисту ПО використовується ряд методів:
1. Алгоритми заплутування – використовуються хаотичні переходи в різні частини коду, упровадження помилкових процедур – «пустышек», неодружені цикли, перекручування кількості реальних параметрів процедур ПО, розкид ділянок коду по різних областях ОЗУ і т.п.
2. Алгоритми мутації – створюються таблиці відповідності операндів – синонімів і заміна їхній один на одного при кожнім запуску програми за визначеною схемою або випадковим образом, випадкові зміни структури програми.
3. Алгоритми компресії даних – програма упаковується, а потім розпаковуються в міру виконання.
4. Алгоритми шифрування даних – програма шифрується, а потім розшифровуються в міру виконання.
5. Обчислення складних математичних виражень у процесі відпрацьовування механізму захисту – елементи логіки захисту залежать від результату обчислення значення якої-небудь формули або групи формул. 6. Методи утруднення дизассемблирования – використовуються різні прийоми, спрямовані на запобігання дизассемблирования в пакетному режимі.
7. Методи утруднення налагодження – використовуються різні прийоми, спрямовані на ускладнення налагодження програми.
8. Эмуляция процесорів і операційних систем – створюється віртуальний процес - сміття і/або операційна система (не обов'язково існуючі) і програма перекладач із системи команд IBM у систему команд створеного процесора або ОС, після такого перекладу ПО може виконуватися тільки за допомогою эмулятора, що різко утрудняє дослідження алгоритму ПО.
9. Нестандартні методи роботи з апаратним забезпеченням – модулі системи захисти звертаються до апаратури ЕОМ, минаючи процедури ОС, і використовують маловідомі або недокументовані її можливості.
У свою чергу, зловмисники так само застосовують ряд методів і засобів для порушення систем захисту. Ситуація протистояння розроблювачів СЗПО і зломисників постійно змінюється за рахунок комбінування уже відомих методів захисту і нападу, а так само за рахунок створення і використання нових методів.
За принципом функціонування СЗ можна підрозділити на наступні:
1) пакувальники/шифратори;
2) СЗ від несанкціонованого копіювання;
3) СЗ від несанкціонованого доступу (НСД).
