Спосіб захисту ліцензійного програмного забезпечення від несанкціонованого використання

Завантажити PDF файл.

Формула / Реферат

1. Спосіб захисту ліцензійного програмного забезпечення, який полягає в тому, що на носії записують програмне забезпечення з попередньо введеним в нього неповторним кодом, вводять в програмне забезпечення з використанням елементів захисту код апаратури та код копії програмного забезпечення з наступним встановленням програмного забезпечення на комп'ютері, якщо процес встановлення ліцензійного програмного забезпечення здійснюють через Інтернет, який відрізняється тим, що попередньо програму розділюють на дві частини, першу з яких поставляють на носії, що міститься фізично у користувача, яка, крім здійснення основних функцій програми, забезпечує цілісність програмного продукту, а другу частину програмного продукту розміщують на віддаленому сервері, фізично не доступному користувачу, здійснюють перевірку на можливість порушення ліцензії користувачем, до неї також включають неповторний код апаратури і код копії програмного забезпечення, при цьому після запуску користувачем першої частини виконують з'єднання двох частин через Інтернет, а при відсутності з'єднання з другою частиною блокують можливість виконання програми або її деяких функцій.

2. Спосіб захисту ліцензійного програмного забезпечення за п. 1, який відрізняється тим, що деякі ділянки коду частини програмного забезпечення, що фізично знаходиться у користувача, оброблюють методами, що заплутують код програми, або шифрують, а ключ для розшифрування зберігають в частині програмного забезпечення, що знаходиться на віддаленому сервері.

Текст

Реферат: Спосіб захисту ліцензійного програмного забезпечення полягає в тому, що на носії записують програмне забезпечення з попередньо введеним в нього неповторним кодом, вводять в програмне забезпечення з використанням елементів захисту код апаратури та код копії програмного забезпечення з наступним встановленням програмного забезпечення на комп'ютері, якщо процес встановлення ліцензійного програмного забезпечення здійснюють через Інтернет. При цьому попередньо програму розділюють на дві частини, першу з яких поставляють на носії, що міститься фізично у користувача, яка, крім здійснення основних функцій програми, забезпечує цілісність програмного продукту, а другу частину програмного продукту розміщують на віддаленому сервері, фізично не доступному користувачу, здійснюють перевірку на можливість порушення ліцензії користувачем, до неї також включають неповторний код апаратури і код копії програмного забезпечення, при цьому після запуску користувачем першої частини виконують з'єднання двох частин через Інтернет, а при відсутності з'єднання з другою частиною блокують можливість виконання програми або її деяких функцій. UA 68078 U (12) UA 68078 U UA 68078 U 5 10 15 20 25 30 35 40 45 50 55 Корисна модель належить до обчислювальної техніки і може бути використана для захисту ліцензійного програмного забезпечення від несанкціонованого використання та розповсюдження. Спосіб може використовуватися власниками ліцензій для наступних цілей: захист від несанкціонованого використання програмного забезпечення; виявлення факту порушення ліцензії та блокування правопорушника; розповсюдження програмного забезпечення через Інтернет без використання носіїв інформації; видача та подовження ліцензій через Інтернет. Програмне забезпечення, як продукт діяльності висококваліфікованих фахівців, що звичайно розробляється для комерційного використання, в усьому технологічно та економічно розвиненому світі, відрізняється великою трудомісткістю та цінністю. Тому несанкціоноване використання програмного продукту найчастіше несе збитки його розробнику. Відомий спосіб захисту програмної продукції від несанкціонованого використання та копіювання [1], призначений для створення технологічних перешкод порушенню авторських та суміжних прав при розповсюдженні та використанні програмної продукції, який полягає в тому, що найбільш цінна частина програмного продукту, яка інтерпретує головний алгоритм, розміщується на віддаленому сервері і надається у режимі Хостингу. Недоліком цього способу є те, що при розробці досить складних і найбільш цінних функцій програми можуть виникати труднощі надання їх у режимі Хостингу, а також низька ефективність при використанні в тому випадку, коли об'єм даних, що передаються для обробки інформації (вхідна інформація), досить великий. Адже в цьому випадку для достатньої роботи програми необхідний досить великий пропускний канал Інтернету. Відомий спосіб захисту програмного забезпечення [2], який включає використання зовнішнього апаратного засобу, захищений від втручання ззовні, для винесення деяких функцій алгоритму програми, що захищаються. Недоліком такого способу є необхідність використання зовнішнього апаратного засобу, що може призвести до невиправданих складнощів у використанні програмного продукту легальним користувачем; неможливість розповсюдження програмного продукту розробником через Інтернет без носіїв інформації, що в свою чергу збільшить ціну ліцензії. Прототипом обрано відомий спосіб захисту програмного забезпечення від несанкціонованого використання та розповсюдження, який оснований на тому, що в програмний продукт вводять неповторний код, що утворюється з використанням копії програми, коду апаратури, зокрема серійного номера жорсткого диска, на сервері розробника та передається користувачу через Інтернет [3]. Недоліком такого способу є недостатня захищеність від можливості копіювання та розповсюдження користувачем, який отримав потрібний функціональний елемент, завдяки можливості використання так званої віртуальної машини [4], яка може згенерувати необхідні коди апаратури на іншому комп'ютері, зокрема серійний номер жорсткого диска. Внаслідок цього ліцензійне програмне забезпечення може бути встановлено та безперешкодно використовуватися на інших комп'ютерах без отримання ліцензії. При створені корисної моделі було поставлено завдання розробити більш ефективний спосіб захисту програмного забезпечення від несанкціонованого використання та розповсюдження і надати можливість власнику ліценції виявляти та блокувати порушення ліценції. Поставлене завдання досягається тим, що на носії записують програмне забезпечення з попередньо введеним в нього неповторним кодом, вводять в програмне забезпечення з використанням елементів захисту код апаратури та код копії програмного забезпечення з наступним встановленням програмного забезпечення на комп'ютері, якщо процес встановлення ліцензійного програмного забезпечення здійснюється через Інтернет. При цьому попередньо програму розділяють на дві частини, перш з яких поставляють на носії, що міститься фізично у користувача, і крім здійснення основних функцій програми, забезпечує цілісність програмного продукту. Другу частину програмного продукту розміщують на віддаленому сервері, зокрема сервері довіреного центру, фізично недоступному користувачу, здійснюють перевірку на можливість порушення ліцензії користувачем, до неї також включено неповторний код апаратури і код копії програмного забезпечення, при цьому після запуску користувачем першої частини виконується з'єднання двох частин через Інтернет, а при відсутності з'єднання з другою частиною блокується можливість виконання програми або її деяких функцій. Також деякі ділянки коду частини програмного забезпечення, що фізично знаходиться у користувача шифрують або оброблюють методами заплутування коду, а ключ для розшифрування зберігають в частині, яка знаходиться на віддаленому сервері. 1 UA 68078 U 5 10 15 20 25 30 35 40 45 50 55 Розміщення кодів апаратури та копії програмного забезпечення у другій частині фізично недоступній користувачу, а також здійснення перевірки на випадок порушення ліцензії виключає можливість користувачу модифікувати ці дані. Забезпечення цілісності першої частини та з'єднання двох частин між собою забезпечує захист від можливості розповсюдження нелегальних копій програмного забезпечення завдяки використанню віртуальної машини. Шифрування або оброблення методами, що заплутують код програми, ускладнює можливість аналізу програмного забезпечення зловмиснику. Таким чином, нові ознаки при взаємодії з відомими ознаками забезпечують більш ефективний захист програмної продукції від несанкціонованого використання та розповсюдження за рахунок використання нових дій, зокрема розміщення неповторного коду, необхідного для ідентифікації користувача та комп'ютера з установленою програмою, на віддаленому сервері, чим в свою чергу надають можливість власнику ліценції виявляти та блокувати порушення ліценції, що дозволяє розширити сферу використання. Це забезпечує усій заявленій сукупності ознак відповідність критерію "новизна" та приводить до нових технічних результатів. Спосіб реалізують наступним чином. При розробці програмного забезпечення воно розділяється на дві окремі частини. Перша частина містить основні функції програми, що представляють цінність користувачу і розповсюджується розробником довільним чином - на аби яких носіях інформації та через Інтернет. Деякі важливі блоки коду можуть бути зашифровані або оброблені відомими методами заплутування перетворень [5], що забезпечить захист від можливого дослідження коду програми шляхом так званої зворотної розробки [6]. Інша частина містить лише захисні функції програмного забезпечення та введений неповторний код після кожної придбаної ліцензії окремим легальним користувачем. Ці дві частини діалектично узгоджені, та не можуть використовуватися окремо одна від одної користувачем. Першу частину користувач може отримати безкоштовно, але перед першим запуском програми він повинен придбати ліцензію на сайті розробника або довіреного представника, для чого ввести реєстраційні дані та виконати оплату. Розробник може представляти можливість вибору ліценцій та періоду їх дії. Різні ліценції можуть передбачати такі обмеження як, кількість запусків програми за деякий період, кількість оброблених даних, кількість створених документів, кількість можливих змін апаратного забезпечення, що дозволяється користувачу. При кожному запуску програми або при виконанні її деякої базової функції перша частина посилає другій наступні дані: ідентифікатор та пароль користувача, код цілісності програмного забезпечення, код апаратури, ідентифікатор сесії (неповторюване випадкове число) та код функції, що користувач хоче виконати. Це дозволяє йому при отриманні позитивного рішення, розшифрувати необхідний блок коду програми та перейти до його виконання. Для підтвердження переданих даних використовується електронний цифровий підпис. Віддалена частина генерує електронний цифровий підпис, а частина, що фізично знаходиться у користувача, перевіряє достовірність підпису по відкритому ключу. Друга частина перевіряє виконання умови не порушення ліцензії і у випадку її порушення блокує ліцензію користувача, а в іншому випадку підтверджує можливість шляхом передачі ідентифікатора сесії підписаного закритим ключем електронним цифровим підписом модуля захисту. Приклад конкретного виконання. Нехай перша частина програми Progl встановлена на комп'ютері користувача U, а друга Prog2 на віддаленому сервері, що належить розробникам програми або їх довіреній особі. Розробник повинен вибрати систему електронного цифрового підпису і згенерувати пару ключів - відкритий ключ e і закритий ключ d. Закритий ключ d повинен зберігатися в Prog2, а відкритий ключ є у Progl. Перед першим запуском програми користувач повинен отримати ідентифікатор (логін) I і пароль Р. Кожен раз, коли користувач U намагається виконати одну з дій встановлених розробником, наприклад запуск програми, створення, відкриття або збереження документа, Progl повинна посилати запит Prog2 про можливість продовжити роботу, здійснивши наступні кроки передачі даних: 1. У першій частині програми Progl генерується випадкове число - номер сесії SESSION. 2. У Progl обчислюється деяке число F - код апаратури обчислювальної машини, де вона встановлена. 3. Progl передає дані /, Р, SESSION, F другій частині програми Prog2. 4. Prog2 перевіряє можливість використання програми користувачу з ідентифікатором I, паролем Р і кодом апаратури F. 2 UA 68078 U 5 10 15 20 25 30 35 40 5. У разі підтвердження можливості запуску програми Progl, Prog2 обчислює електронний цифровий підпис С для SESSION, використовуючи закритий ключ d. 6. Prog2 відправляє значення С програмного забезпечення Progl. 7. В Progl здійснюється перевірка справжності підпису С за відомим відкритим ключем e. Якщо підпис справжній, то програма продовжує виконуватися, в іншому випадку завершує роботу. У якості механізму електронного цифрового підпису використай алгоритм RSA [7], який реалізований на основі бібліотеки для роботи з довгими числами libgmp-3.dll [8]. Даний спосіб на відміну від існуючих дозволяє розробнику легко розпоширювати програмне забезпечення через Інтернет, слідкувати за процесом використання наданих ліцензій, виявляти правопорушення та блокувати ліцензії, а також запропонувати такі типи ліцензії, які обмежують кількість запусків програми або виконання якихось базових дій - створення документа, оброблення даних, експорт даних, генерування звіту та інші. Надання ліцензій через Інтернет забезпечує користувачу можливість швидко подовжити дію ліцензії або замінити одну ліцензію на іншу. При випробуваннях запропонованого способу захисту програмної продукції виявилося, що простота реалізації зв'язку між першою та другою частинами програми дозволить використовувати його як в великих так і в невеликих програмах і не підвищує вартість розробки. Виходячи з вищевикладеного можна зробити висновок, що технічне рішення, яке заявляється, задовольняє критерію "Промислове застосування". Джерела інформації: 1. Пат. 80106, Україна, МПК G06F12/14, G06K13/00, G06F21/00. Спосіб захисту програмної продукції від несанкціонованого використання та копіювання [Електронний ресурс] / Г.М. Дашкієв. - № 20040706180; заявл. 26.07.2004; опубл. 27.08.2007, Бюл. № 13,2007 р.-6 с: ил. 2. Пат. 26708, Україна, МПК G06F21/00. Спосіб захисту програмного забезпечення [Електронний ресурс] / В.М. Вервейко. - № U200701813; заявл. 21.02.2007; опубл. 10.10.2007.-3 с.: ил. 3. Пат. 54337, Україна, МПК G06F12/00. Спосіб захисту ліцензійного програмного забезпечення [Електронний ресурс] / В.К. Ободяк. - № U201003943; заявл. 06.04.2010; опубл. 10.11.2010, Бюл. № 21,2010 р.-2 с: ил. 4. Виртуальная машина [Електронний ресурс]. Режим доступу: http://ru.wikipedia.org/wiki/Bиртуальная_машина. 5. Буинцев, Д.Н. Метод защиты программных средств на основе запутывающих преобразований [Електронний ресурс]: дис. … канд. техн. наук: 05.13.19. - Томск, 2006,121 с. 6. Обратная разработка [Електронний ресурс]. Режим доступу: http://m.wikipedia.org/wiki/Oбратная_paзработкa. 7. Молдовян Н.А. Введение в криптосистемы с открытым ключом. [Текст] / Н.А. Молдовян, А.А. Молдовян. - СПб.: БХВ - Петербург, 2005.-288 с. 8. 15.GMP Install Instruction for Windows Platform [Електронний ресурс]. - Режим доступу: http://cs.nyu.edu/exact/core/gmp/. ФОРМУЛА КОРИСНОЇ МОДЕЛІ 45 50 55 60 1. Спосіб захисту ліцензійного програмного забезпечення, який полягає в тому, що на носії записують програмне забезпечення з попередньо введеним в нього неповторним кодом, вводять в програмне забезпечення з використанням елементів захисту код апаратури та код копії програмного забезпечення з наступним встановленням програмного забезпечення на комп'ютері, якщо процес встановлення ліцензійного програмного забезпечення здійснюють через Інтернет, який відрізняється тим, що попередньо програму розділюють на дві частини, першу з яких поставляють на носії, що міститься фізично у користувача, яка, крім здійснення основних функцій програми, забезпечує цілісність програмного продукту, а другу частину програмного продукту розміщують на віддаленому сервері, фізично не доступному користувачу, здійснюють перевірку на можливість порушення ліцензії користувачем, до неї також включають неповторний код апаратури і код копії програмного забезпечення, при цьому після запуску користувачем першої частини виконують з'єднання двох частин через Інтернет, а при відсутності з'єднання з другою частиною блокують можливість виконання програми або її деяких функцій. 2. Спосіб захисту ліцензійного програмного забезпечення за п. 1, який відрізняється тим, що деякі ділянки коду частини програмного забезпечення, що фізично знаходиться у користувача, оброблюють методами, що заплутують код програми, або шифрують, а ключ для 3 UA 68078 U розшифрування зберігають в частині програмного забезпечення, що знаходиться на віддаленому сервері. Комп’ютерна верстка В. Мацело Державна служба інтелектуальної власності України, вул. Урицького, 45, м. Київ, МСП, 03680, Україна ДП “Український інститут промислової власності”, вул. Глазунова, 1, м. Київ – 42, 01601 4

Дивитися

Додаткова інформація

Назва патенту англійською

Method for protection of license software from unauthorized use

Автори англійською

Andruschenko Dmtro Mykhailovych, Kozina Halyna Leonidivna, Karpukov Leoind Matviiovych

Назва патенту російською

Способ защиты лицензионного программного обеспечения от несанкционированного использования

Автори російською

Андрущенко Дмитрий Михайлович, Козина Галина Ленидовна, Карпуков Леонид Матвеевич

МПК / Мітки

МПК: G06F 12/00

Мітки: використання, захисту, спосіб, ліцензійного, програмного, несанкціонованого, забезпечення

Код посилання

<a href="https://ua.patents.su/6-68078-sposib-zakhistu-licenzijjnogo-programnogo-zabezpechennya-vid-nesankcionovanogo-vikoristannya.html" target="_blank" rel="follow" title="База патентів України">Спосіб захисту ліцензійного програмного забезпечення від несанкціонованого використання</a>

Подібні патенти