Захист програмного забезпеченняЗахист програмного забезпечення — комплекс заходів, спрямованих на захист програмного забезпечення від несанкціонованого придбання, використання, розповсюдження, модифікування, вивчення і відтворення аналогів. Захист від несанкціонованого використання програм — система заходів, спрямованих на протидію нелегальному використанню програмного забезпечення. При захисті можуть застосовуватися організаційні, юридичні, програмні та програмно-апаратні засоби. Захист від копіювання програмного забезпечення застосовується рідко, у зв'язку з необхідністю його поширення і установки на комп'ютери користувачів. Однак, від копіювання може захищатися ліцензія на програму (при поширенні на фізичному носії) або її окремі алгоритми. Технічні засоби захистуМетоди можна класифікувати за способом розповсюдження захищеного програмного забезпечення та типом носія ліцензії. Локальний програмний захистВимога введення серійного номера (ключа) при встановленні/запуску. Історія цього методу почалася тоді, коли програми поширювалися тільки на фізичних носіях (наприклад, компакт-дисках). На коробці з диском був надрукований серійний номер, що підходить тільки до даної копії програми. З поширенням мереж, очевидним недоліком стала проблема поширення образів дисків і серійних номерів мережею. Тому зараз метод використовується тільки в сукупності з одним або більше інших методів (наприклад, організаційних)[1]. Мережевий програмний захист
Сканування мережі виключає одночасний запуск двох програм з одним реєстраційним ключем на двох комп'ютерах в межах однієї локальної мережі. Недолік в тому, що брандмауер можна налаштувати так, щоб він не пропускав пакети, що належать захищеній програмі. Правда, налаштування брандмауера вимагає деяких користувацьких навичок. Крім того, програми можуть взаємодіяти по мережі (наприклад, при організації мережевої гри). У цьому випадку брандмауер повинен пропускати такий трафік[1].
Якщо програма працює з будь-яким централізованим сервером і без нього марна (наприклад, сервери онлайн-ігор, сервери оновлень антивірусів). Вона може передавати серверу свій серійний номер; якщо номер неправильний, сервер відмовляє в послузі. Недолік в тому, що, існує можливість створити сервер, який не робить такої перевірки. Наприклад, існував сервер battle.da, який за функціями був аналогічний Battle.net (від компанії Blizzard Entertainment), але пускав неавторизованих користувачів копій ігор. Зараз цей сервер закрито, але існує чимала кількість PvPGN-серверів, які також не перевіряють реєстраційних номерів. Захист за допомогою компакт-дисківПрограма може вимагати оригінальний компакт-диск. Зокрема, такий спосіб застосовується в іграх. Стійкість таких захистів невелика, через широкий набір інструментів зняття образів компакт-дисків.[2] Як правило, цей спосіб захисту застосовується для захисту програм, записаних на цьому компакт-диску, що є одночасно ключовим.
Перші два методи практично марні через можливості зняття повного образу диска з використанням відповідного прикладного ПЗ. Третій метод вважається більш надійним (використовується, зокрема, в захисті StarForce). Але існують програми, які можуть емулювати диски з урахуванням геометрії розташування даних, тим самим обходячи й цей захист. В StarForce, в числі інших перевірок, також виконується перевірка можливості запису на вставлений диск. Якщо вона можлива, то диск вважається не ліцензійним. Однак, якщо образ буде записаний на диск CD-R, то зазначена перевірка пройде. Існує можливість приховати тип диска, щоб CD-R або CD-RW було видно як звичайний CD-ROM. Однак, в драйвер захисту може бути вбудована перевірка на наявність емуляції[1]. В даний час[коли?] найбільшу популярність у світі мають системи захисту від копіювання SecuROM, StarForce, SafeDisc, CD-RX і Tages.[3] Для багатьох програм зазначений метод захисту недоступний через відмінність способу розповсюдження (наприклад, shareware-програми). Захист за допомогою електронних ключів![]() Електронний ключ (донгл), вставлений в один з портів комп'ютера (з інтерфейсом USB, LPT або COM) містить ключові дані, звані також ліцензією, записані в нього розробником:
Переваги захисту з використанням електронних ключів:
Стійкість захисту ґрунтується на тому, що ключова інформація захисту (криптографічні ключі, завантажуваний код) не залишає ключа в процесі роботи з ним. Основні недоліки:
Раніше до недоліків можна було також віднести невисоку швидкодію ключа (у порівнянні з CPU комп'ютера). Однак сучасні ключі досягають продуктивності в 1.25 DMIPS (приклад — HASP, Guardant), а техніка захисту за їх допомогою не передбачає постійного обміну з ключем. Проблеми з установкою ключа на певні апаратні платформи, що існували раніше, на даний момент[коли?] вирішені за допомогою мережевих ключів (які здатні працювати з однією або більше копіями захищеної програми, просто перебуваючи з ними в одній локальній мережі) і за допомогою програмних або апаратних засобів «перекидання» USB-пристроїв по мережі. Прив'язка до параметрів комп'ютера й активаціяПрив'язка до інформації про користувача/серійних номерів компонентів його комп'ютера і подальша активація програмного забезпечення в даний час використовується досить широко (приклад: ОС Windows). У процесі встановлення програма підраховує код активації — контрольне значення, яке однозначно відповідає встановленим складовим комп'ютера і параметрам встановленої ОС. Це значення передається розробнику програми. На його основі розробник генерує ключ активації, який підходить для активації програми тільки на зазначеній машині (копіювання встановлених файлів на інший комп'ютер призведе до непрацездатності програми). Перевага в тому, що не потрібно ніякого специфічного апаратного забезпечення, і програму можна поширювати за допомогою цифрової дистрибуції (через Інтернет). Основний недолік: якщо користувач здійснює модернізацію комп'ютера (у випадку прив'язки до "заліза"), захист відмовляє. Автори багатьох програм у подібних випадках готові дати новий реєстраційний код. Наприклад, Microsoft в Windows XP дозволяє раз у 120 днів генерувати новий реєстраційний код (але у виняткових випадках, зателефонувавши в службу активації, можна отримати новий код і після закінчення цього терміну). Як прив'язки використовуються, в основному, серійний номер BIOS материнської плати, серійний номер вінчестера. В цілях приховування від користувача, дані про захист можуть розташовуватися в нерозміченій області жорсткого диска. До недавнього часу такий захист розроблявся і впроваджувався розробниками самого програмного продукту. Проте зараз існують SDK для роботи з програмними ключами, наприклад HASP SL від компанії Аладдін Р. Д. Також все більшого поширення набувають сервіси, що пропонують одночасно функціонал навісного захисту і сервера активації/ліцензування (приклад: Guardant Online, Protect online). Захист програм від копіювання шляхом перенесення їх в онлайнІншим напрямом захисту програм є використання підходу SaaS, тобто надання функціоналу цих програм (всього або частини), як сервісу. При цьому код програми розміщений і виконується на сервері, доступному в глобальній мережі. Доступ до нього здійснюється за принципом тонкого клієнта. Це один з небагатьох випадків, коли реалізується захист від копіювання. Код виконується на «довіреній» стороні, звідки не може бути скопійований. Однак, і тут виникає низка проблем, пов'язаних з безпекою:
Виникають також питання довіри до сервісу (зокрема правові), оскільки йому фактично «у відкритому вигляді» передаються як саме ПЗ, так і дані, які воно обробляє (наприклад, персональні дані користувачів). Захист коду від аналізуМожна виокремити засоби захисту безпосередньо коду програми від аналізу і використання в інших програмах. Зокрема, застосовуються обфускатори — програми потрібні для заплутування коду з метою захисту від його аналізу, модифікації та несанкціонованого використання. Захист програмного забезпечення на мобільних платформахСпособи захисту програмного забезпечення для мобільних платформ від копіювання зазвичай ґрунтуються на неможливості рядового користувача зчитувати/змінювати збережені в ППЗУ апарату дані. Може також використовуватися активація програмного забезпечення. Застарілі технічні засоби захистуУ минулому використовувались й інші методи захисту від нелегального використання. Ключова дискетаМетод був поширений за часів MS-DOS, зараз, в силу старіння технології FDD, практично не застосовується. Є чотири основних способи створення на дискетах міток, що не копіюються:
Запис некопійовних міток на жорсткий дискДеякі старі програми для DOS створювали на жорсткому диску місця, що не копіюються. Наприклад, файл довжиною 1 байт займає на диску один кластер (не менше 512 байт), і в решту 511 байт можна записати деяку інформацію. Ця практика майже не використовується, оскільки великим є ризик втрати даних. Прив'язка до деякого фізичного об'єктаЛіцензія програми може прив'язуватися до деякого фізичного об'єкта, наприклад:
Юридичні засоби захистуЗгідно із законодавством, програмний код прирівнюється до літературних творів й до нього застосовуються всі відповідні нормативні акти. В контексті захисту використовується така термінологія: Передбачена відповідальність, згідно з чинним законодавством, як за використання контрафактних примірників програм для ЕОМ і баз даних, так і за подолання застосовуваних технічних засобів захисту. Організаційні засоби захистуОсновний принцип організаційних заходів захисту полягає в неможливості повноцінного використання програмного продукту без відповідної підтримки з боку розробника: докладної документації користувача , «гарячої лінії» підтримки системи навчання користувачів, оновлення версій і БД тощо. Іноді захист дорогих програмних комплексів від копіювання здійснюється організаційними заходами (наприклад, надання пробної копії тільки за запитом, або встановлення повнофункціональної версії програмного комплексу на пробний період при укладенні відповідної угоди). Організаційні заходи захисту застосовуються, як правило, великими розробниками до досить великих і складних програмних продуктів[4]. Недоліки технічних методів захистуУразливості сучасних методів захистуУразливості сучасних методів захисту можна досить строго класифікувати в залежності від використаного методу захисту.
Багато захисних засобів надають інструменти протидії злому: дестабілізація зневаджувача; шифрування коду, що виключає вивчення коду в статиці за допомогою дизасемблера; заплутування коду, «помилкові гілки», які збивають хакера з пантелику; перевірка цілісності файлу, що не дає накладати латки; віртуалізація коду з власною системою команд. Всі ці методи перешкоджають вивченню та аналізу логіки захисту, підвищують її стійкість[4]. Використання автоматичних засобів захистуІснує проблема, пов'язана з нестачею ресурсів (зокрема часових) у розробників ПЗ. Їм може не вистачати часу, фінансів або кваліфікації на реалізацію власного стійкого захисту. Вони змушені користуватися сторонніми автоматичними засобами захисту. Ці засоби прикріплюють до скомпільованої програми захисний модуль. Перевага такого захисту в тому, що його можна встановити на будь-яку програму (навіть без доступу до сирцевого коду програми). Недолік в самому підході — «шаблонності» методу. Стандартні захисти мають велику ймовірність бути зламаними, оскільки встановлюються на кілька програм і тим самим забезпечують попит на ринку злому. Проте, автоматичні засоби ускладнюють злом програми. Їх іноді доцільно використовувати або коли захисту немає взагалі, або в сукупності з реалізацією власного унікального захисту[4]. Проблема «краще, ніж легальне»Це одна з фундаментальних проблем технічних засобів захисту. Полягає вона в тому, що система захисту неминуче створює користувачеві незручності, і тому, з точки зору користувача, зламана програма в якомусь сенсі краща, ніж оригінальна. Наприклад:
З цієї причини навіть власники ліцензійних копій іноді встановлюють зламане програмне забезпечення нарівні з ліцензійним. Див. також
Примітки
Посилання
|
Portal di Ensiklopedia Dunia