UA77187C2 - Method for protecting software against unauthorized use by controlling the correspondence with a specified criterion - Google Patents
Method for protecting software against unauthorized use by controlling the correspondence with a specified criterion Download PDFInfo
- Publication number
- UA77187C2 UA77187C2 UA2004010473A UA2004010473A UA77187C2 UA 77187 C2 UA77187 C2 UA 77187C2 UA 2004010473 A UA2004010473 A UA 2004010473A UA 2004010473 A UA2004010473 A UA 2004010473A UA 77187 C2 UA77187 C2 UA 77187C2
- Authority
- UA
- Ukraine
- Prior art keywords
- program
- execution
- protected program
- protected
- protection
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Preparing Plates And Mask In Photomechanical Process (AREA)
- Stored Programmes (AREA)
Description
Опис винаходу
Даний винахід належить до галузі систем обробки даних у широкому сенсі цього слова, а точніше кажучи, 2 винахід відноситься до засобів захисту від неавторизованого використання програми, що функціонує в зазначених системах обробки даних.
Предмет даного винаходу відноситься, конкретніше, до способів захисту програм від неавторизованого використання на основі пристрою обробки і зберігання, причому цей пристрій звичайно реалізується у вигляді карти з мікрочипом або апаратного ключа на порту ОВ.
У згаданій галузі техніки основна проблема пов'язана з неавторизованим використанням програм користувачами, які не набули права на їхнє використання (ліцензію). Таке незаконне використання програм завдає явного збитку виробникам і продавцям програм, і/або будь-яким іншим особам, що використовують такі програми у своїх виробах. Щоб уникнути створення таких незаконних копій, для захисту подібних програм було запропоновано ряд рішень на основі наявних технічних можливостей. 12 Так, відомий спосіб захисту, що полягає у використанні апаратного захисного елемента - фізичного пристрою, названого електронним захисним ключем-заглушкою ("допдіе"). Такий захисний ключ має гарантувати виконання програми тільки за наявності ключа. Треба, проте, констатувати, що це вирішення неефективне, бо його можна легко обійти. Зловмисник може за допомогою спеціальних прийомів, наприклад дизасемблювання, вилучити команди контролю захисного ключа. При цьому стає можливим виготовити незаконні копії модифікованих версій програми, що не мають жодного захисту. Крім того, це вирішення не можна поширити на всі програми з огляду на складність підключення більш ніж двох захисних ключів до однієї системи.
Відповідно, задача, розв'язувана даним винаходом, полягає в усуненні зазначених хиб шляхом створення способу захисту програми від неавторизованого доступу, що використовує пристрій обробки і зберігання, спеціально створений для цієї мети, в тій мірі, у якій наявність такого пристрою необхідна для повноцінної с 29 роботи програми. Го)
Вирішення даної задачі досягнуто згідно з винаходом створенням способу захисту (на основі щонайменше одного незадіяного пристрою, що містить щонайменше засоби обробки і засоби запам'ятовування) від неавторизованого використання вразливої програми, яка функціонує в системі обробки даних. Спосіб згідно з винаходом полягає в тому, що: - 30 - У фазі захисту: с - визначають: - щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше -- частково, у пристрої, ча - щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання 35 програми, - - засоби детектування, що їх слід застосовувати у пристрої і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби примусу, що їх слід застосовувати у пристрої та які дозволяють проінформувати систему обробки « даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію, З 70 - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби детектування й засоби примусу; с створюють захищену програму: з» - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми серед характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї 45 вибраної характеристики виконання програми, 7 - за допомогою вибору щонайменше одного алгоритму, який у ході виконання вразливої програми -і використовує щонайменше один операнд і дозволяє одержати щонайменше один результат і для якого слід контролювати щонайменше одну характеристику виконання вибраної програми, - - за допомогою вибору щонайменше одного фрагмента коду вразливої програми, що містить щонайменше о 20 один вибраний алгоритм, - за допомогою створення вихідного коду захищеної програми на основі коду вразливої програми т модифікацієм щонайменше одного вибраного фрагмента коду вразливої програми, щоб одержати щонайменше один модифікований фрагмент коду захищеної програми, причому ця модифікація така, що: - в ході виконання захищеної програми перша виконувана частина виконується в системі обробки даних, а друга виконувана частина виконується у пристрої, який також містить засоби обробки, отриманому з незадіяного
ГФ) пристрою після завантаження інформації, - друга виконувана частина виконує щонайменше функціональну можливість щонайменше одного вибраного о алгоритму, - Її в ході виконання захищеної програми щонайменше одна вибрана характеристика виконання 60 контролюється за допомогою другої виконуваної частини, і недотримання критерію приводить до модифікації виконання захищеної програми; - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми реалізується перша виконувана частина, яка виконується в системі обробки бо даних, і щонайменше частина якої враховує, що контролюється принаймні одна характеристика виконання вибраної програми, - і другої частини об'єктного коду захищеної програми, що містить засоби експлуатації, що дозволяють застосовувати також засоби детектування й засоби примусу, причому друга частина об'єктного коду така, що після завантаження в незадіяний пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої контролюється принаймні одна характеристика виконання програми і за допомогою якої недотримання критерію приводить до модифікації виконання захищеної програми. - і завантажують другу частину об'єктного коду в незадіяний пристрій з одержанням пристрою, - а у фазі (3) використання, в ході якої відбувається виконання захищеної програми: 70 - в присутності пристрою: - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми, дотримано, припускають номінальне функціонування зазначених фрагментів захищеної програми й, отже, номінальне функціонування захищеної програми, - а якщо принаймні одного з критеріїв, що відповідають характеристиці контрольованого виконання одного 7/5 фрагмента захищеної програми, не дотримано, інформують систему обробки даних про зазначене недотримання і/або модифікують функціонування фрагмента захищеної програми таким чином, щоб функціонування захищеної програми було змінено. - тоді як за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на запуск виконання у пристрої функціональної можливості вибраного алгоритму, не забезпечується можливість коректно 2о Відповісти на цей запит, так що принаймні згаданий фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною.
Відповідно до варіанта здійснення способу за винаходом: - У фазі захисту: - визначають: с - як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю використання однієї функціональної можливості програми, і) - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною змінною для кількісного контролю, - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; ї- зо - конструюють засоби експлуатації, що дозволяють пристрою застосовувати засоби поновлення; - і модифікують захищену програму: со - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної «- для кількісного контролю використання однієї функціональної можливості програми, - за допомогою вибору: - - щонайменше однієї функціональної можливості захищеної програми, використання якої можна ї- проконтролювати з використанням змінної для кількісного контролю, - щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики використання згаданої функціональної можливості, - щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і « Відповідного межі використання зазначеної функціональної можливості, з с - ї щонайменше одного методу поновлення значення згаданої змінної для кількісного контролю залежно від використання зазначеної функціональної можливості, ;» - і за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини, залежно від використання зазначеної функціональної -І можливості, і враховується щонайменше одне перевищення порогового значення, - а у фазі використання, в присутності пристрою, в разі, якщо виявлено щонайменше одне перевищення ш- порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему обробки - даних і/або модифікують функціонування фрагмента захищеної програми, таким чином, щоб функціонування 5ор захищеної програми було змінено. бо Відповідно до іншого варіанта здійснення способу згідно з винаходом: "М - У фазі захисту: - визначають: - декілька відповідних порогових значень щонайменше для однієї змінної для кількісного контролю, - Ї різноманітні засоби примусу, що відповідають кожному зі згаданих порогів; - і модифікують захищену програму:
Ф) - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї змінної для кількісного ка контролю, з якою мають зв'язуватися декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості, 60 - за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного контролю, - і за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини різноманітними способами, 65 - а у фазі використання: - в присутності пристрою:
- у випадку, коли виявлене перевищення першого порогового значення, дають команду захищеній програмі не використовувати надалі відповідну функціональну можливість, - а в разі, коли виявлене перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми.
Відповідно до ще одного варіанта здійснення способу згідно з винаходом: - в фазі захисту: - визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного 7/0 Контролю; - конструюють засоби експлуатації, що дозволяють також пристрою задіяти засоби перезавантаження; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість /5 дозволу щонайменше на одне додаткове використання, - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому зазначена модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволено, - а у фазі перезавантаження: - поновлюють щонайменше одну вибрану змінну для кількісного контролю і щонайменше одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості.
Відповідно до варіанта здійснення способу згідно з винаходом: - У фазі захисту: сч - визначають: - як характеристику виконання програми, яка може бути проконтрольована, - профіль використання програми, і) - і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми; - і модифікують захищену програму: - за допомогою вибору як характеристики виконання контрольованої програми щонайменше одного профілю ї- зо використання програми, - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися со щонайменше один профіль використання, «- - і за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми друга виконувана частина дотримується - зв Всіх вибраних ознак виконання, ча - а у фазі використання, в присутності пристрою в разі, якщо виявлено, що не дотримано хоча б однієї ознаки виконання, інформують про це систему обробки даних і/або модифікують функціонування частини захищеної програми так, щоб функціонування захищеної програми було змінено.
Відповідно до подальшого варіанта здійснення способу згідно з винаходом: « - в фазі захисту: з с - визначають: - набір інструкцій, інструкції зі складу якого можуть виконуватися у пристрої, ;» - набір команд інструкцій для згаданого набору інструкцій, причому команди інструкцій можуть бути виконані в системі обробки даних, викликаючи у пристрої виконання інструкцій, - як профіль використання - зчеплення інструкцій, -І - якознаку виконання - бажане зчеплення для виконання інструкцій, - як засоби детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному,
Ш- - як засоби примусу - засоби, що дозволяють проінформувати систему обробки даних і/або модифікувати - функціонування фрагмента захищеної програми, якщо зчеплення інструкцій не відповідає бажаному; - конструюють засоби експлуатації що дозволяють пристрою виконувати інструкції з набору інструкцій, со причому виконання згаданих інструкцій викликається виконанням команд інструкцій у системі обробки даних; "М - і модифікують захищену програму: - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми: - за допомогою перетворення елементарних функцій на інструкції, 5Б - за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої, (Ф, - ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають ка використовуваним інструкціям, - а у фазі використання, в присутності пристрою, в разі, якщо виявлено, що зчеплення виконуваних у бо пристрої інструкцій не відповідає бажаному, інформують про це систему обробки даних і/або модифікують функціонування фрагмента захищеної програми так, щоб функціонування захищеної програми було змінено.
Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - визначають: 65 - як набір інструкцій - набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату,
- щонайменше для частини інструкцій, що працюють на регістрах: - частину, що задає функціональну можливість інструкції, - їчастину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, які відповідають: - полю ідентифікації інструкції, - для кожного операнда інструкції: - полю прапора, - полю ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле 70 передбаченої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр, - як засоби детектування - засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле прапора, контролювати рівність між полем генерованої ідентифікації, що відповідає регістру, використовуваному вказаним операндом, і полем передбаченої ідентифікації початкової адреси цього /5 операнда, - як засоби примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.
Відповідно до кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - модифікують захищену програму: - за допомогою вибору щонайменше однієї змінної, використовуваної щонайменше в одному вибраному алгоритмі, яка в ході виконання захищеної програми частково визначає стан захищеної програми, - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми щонайменше одна вибрана змінна або одна копія сч вибраної змінної знаходиться у пристрої, о - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому ця перша частина об'єктного коду така, що в ході виконання захищеної програми щонайменше один фрагмент першої виконуваної частини враховує, що принаймні одна змінна або щонайменше одна копія змінної знаходиться у пристрої, М зо - і другої частини об'єктного коду захищеної програми, причому ця друга частина об'єктного коду така, що після завантаження у пристрій і в ході виконання захищеної програми з'являється друга виконувана частина, за со допомогою якої щонайменше одна вибрана змінна або щонайменше одна копія вибраної змінної також «- знаходиться у пристрої, - а у фазі використання: ї- - в присутності пристрою, кожного разу, коли цього вимагає фрагмент першої виконуваної частини, р. використовують змінну або копію змінної, що знаходиться у пристрої так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною, - а за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на використання змінної або копії змінної, що знаходиться у пристрої, не забезпечується можливість коректної відповіді на « 70 вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма неє 7-3 с повнофункціональною. Відповідно до ще однієї кращої реалізації способу згідно з винаходом: - У фазі захисту: ;» - визначають: - як команду запуску - команду інструкції, - якзалежну функцію - інструкцію, -І - як настановний параметр, - щонайменше один аргумент для команди запуску, що відповідає, щонайменше частково, інформації, переданій системою обробки даних на пристрій, щоб викликати запуск відповідної
Ш- залежної функції, - - метод перейменування настановних параметрів, що дозволяє перейменувати настановні параметри, щоб одержати команди запуску з перейменованими настановними параметрами, со - | засоби відновлення, призначені для застосування у пристрої у фазі використання і що дозволяють знайти
І залежну функцію, що її необхідно виконати, виходячи з перейменованого настановного параметра; - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби відновлення; - і модифікують захищену програму: 5Б - за допомогою вибору у вихідному коді захищеної програми команд запуску, - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми за (Ф, допомогою перейменування настановних параметрів вибраних команд запуску, щоб приховати ідентичність ка відповідних залежних функцій, - і за допомогою створення: 60 - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми виконуються команди запуску з перейменованими настановними параметрами, - і другої частини об'єктного коду захищеної програми, що містить засоби експлуатації, що використовують також засоби відновлення, причому друга частина об'єктного коду така, що після завантаження в пристрій, у 65 ході виконання захищеної програми ідентичність залежних функцій, виконання яких викликано першою виконуваною частиною, відновлюється за допомогою другої виконуваної частини, а залежні функції виконуються за допомогою другої виконуваної частини, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає команда запуску з перейменованими настановними параметрами, яка міститься у фрагменті першої виконуваної частини, відновлюють у пристрої ідентичність відповідної залежної функції і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - тоді як за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на запуск виконання у пристрої залежної функції, не забезпечується можливість коректної відповіді на вказаний запит, /о так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною.
Відповідно до одного з варіантів здійснення способу згідно з винаходом: - У фазі захисту: - визначають, принаймні для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, які викликаються командами запуску, перейменовані настановні параметри яких є різними; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї команди запуску з перейменованими настановними параметрами, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми шляхом го Заміни щонайменше перейменованого настановного параметру команди запуску з вибраним настановним параметром на інший перейменований настановний параметр, що викликає запуск залежної функції з того ж сімейства.
Відповідно до варіанта реалізації спосіб згідно з винаходом включає: - у фазі захисту визначення, щонайменше для однієї залежної функції сімейства, алгоритмічно еквівалентних сч г Залежних функцій, - за допомогою зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної і) функції, яка виконується у пристрої, - або за допомогою використання поля ідентифікації інструкції і полів ідентифікації, передбачених для операндів. М зо Відповідно до варіанта реалізації способу згідно з винаходом: - у фазі захисту визначають: со - як метод перейменування настановних параметрів - метод кодування для кодування настановних «- параметрів, - і як засоби відновлення - засоби, що застосовують метод декодування для розкодування перейменованих -
Зв настановних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої. ї-
Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми щонайменше одного умовного переходу, « виконуваного щонайменше в одному вибраному алгоритмі, в с - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому . зазначена модифікація така, що в ході виконання захищеної програми функціональна можливість щонайменше а одного вибраного умовного переходу виконується, за допомогою другої виконуваної частини, у пристрої, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в -І ході виконання захищеної програми функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої,
Ш- - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що - після завантаження у пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконується функціональна можливість принаймні одного вибраного умовного переходу, со - а у фазі використання:
І - у присутності пристрою, кожного разу, коли цього вимагає фрагмент першої виконуваної частини, виконують у пристрої функції принаймні одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - а за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на виконання функцій умовного переходу в пристрої, не забезпечується можливість коректної відповіді на вказаний запит, так (Ф, що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є ка повнофункціональною.
Відповідно до наступного варіанту здійснення способу згідно з винаходом у фазі захисту модифікують бр Захищену програму: - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї серії вибраних умовних переходів, - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому згадана модифікація така, що в ході виконання захищеної програми глобальна функціональна можливість 65 щонайменше однієї вибраної серії умовних переходів виконується у пристрої за допомогою другої виконуваної частини,
- і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконується глобальна функціональна можливість принаймні однієї вибраної серії умовних переходів. 70 Спосіб згідно з винаходом дозволяє також захистити використання програми шляхом застосування пристрою обробки і зберігання, що його особливістю є здатність містити частину виконуваної програми. Звідси випливає, що будь-яка похідна версія програми, яка спробує функціонувати без пристрою обробки і зберігання, зажадає відтворення частини програми, що міститься у пристрої зберігання в ході виконання. Як наслідок ця похідна версія програми не буде повнофункціональною.
Інші різноманітні властивості винаходу стануть ясні з нижченаведеного опису, з посиланням на додані креслення, на яких показані як невичерпні приклади можливі варіанти і форми реалізації та використання винаходу.
Фіг.10 ії 11 являють собою функціональні блок-схеми, що ілюструють різноманітні представлення програми, відповідно не захищеної і захищеної способом згідно з винаходом.
На Фіг.20-22 наведені як приклади різноманітні форми виконання пристрою для здійснення способу за винаходом.
Фіг.30 і 31 являють собою функціональні блок-схеми, що пояснюють загальний принцип способу згідно з винаходом.
Фіг.40-43 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип сч ов Захисту за допомогою змінної.
Фіг.70-74 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип і) захисту за допомогою детектування й примусу.
Фіг.80-85 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою перейменування. ї- зо Фіг.90-92 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою умовного переходу. со
Фіг.100 являє собою схему, що ілюструє різноманітні фази здійснення винаходу. «-
На Фіг.110 наведений приклад реалізації системи, що дозволяє реалізувати стадію побудови фази захисту згідно з винаходом. -
На Фіг.120 наведений приклад реалізації пристрою передперсоналізації, використовуваного у способі захисту ї- згідно з винаходом.
На Фіг.130 наведений приклад реалізації системи, що дозволяє здійснити стадію виготовлення засобів для фази захисту згідно з винаходом.
На Фіг.140 наведений приклад реалізації системи, що дозволяє застосувати спосіб захисту згідно з « Винаходом. шщ с На Фіг.150 наведений приклад реалізації пристрою персоналізації, використовуваного у способі захисту згідно з винаходом. з Дані, що підтверджують можливість здійснення винаходу Надалі в описі використовуються такі визначення: - Системою З обробки даних є система, здатна виконувати програму. - Пристроєм обробки і зберігання є пристрій, здатний: -І - одержувати дані, передані системою З обробки даних, - повертати дані системі З обробки даних,
Ш- - зберігати дані в таємниці щонайменше частково, і зберігати щонайменше їхню частину навіть у випадку, - коли пристрій відключений від живлення, - ї здійснювати алгоритмічну обробку даних, причому дана обробка частково або цілком є секретною. со - Пристроєм 6 є пристрій зберігання або пристрій обробки і зберігання, що реалізує спосіб згідно з винаходом. "М - Незадіяним пристроєм 60 є пристрій, який не використовує спосіб згідно з винаходом, але який може одержати інформацію, що перетворює його на пристрій 6. - Передперсоналізований пристрій 66 являє собою незадіяний пристрій 60, що одержав частину інформації, ов яка дозволяє йому, після одержання додаткової інформації, бути перетвореним на пристрій 6. - Завантаження даних у незадіяний пристрій 60 або в передперсоналізований пристрій 66 відповідає передачі
Ф) інформації в незадіяний пристрій 60 або в передперсоналізований пристрій 66 і зберіганню згаданих переданих ка даних. Передача інформації може містити в собі зміну її формату. - Змінна, величина або функція, що міститься в системі З обробки даних, позначаються надалі заголовними во буквами, а змінна, величина або функція, що міститься у пристрої 6, позначаються надалі малими літерами. - "Захищеною програмою" є програма, що була захищена щонайменше на основі одного принципу захисту, реалізованого у способі згідно з винаходом. - "Уразливою програмою" є програма, що не була захищена жодним з принципів захисту, реалізованих у способі згідно з винаходом. 65 - У випадку, коли розходження між уразливою і захищеною програмою несуттєве, застосовується термін "програма".
- Програма може бути представлена в різноманітній формі відповідно до моменту її життєвого циклу, тобто як: - вихідний код, - об'єктний код, - дистрибутив, - динамічне представлення. - Представлення програми у вигляді вихідного коду розуміється як представлення, що дає після перетворення представлення у вигляді об'єктного коду. Представлення у вигляді вихідного коду може /о подаватися на різноманітних рівнях, від абстрактного концептуального рівня до рівня, безпосередньо виконуваного системою обробки даних або пристроєм обробки і зберігання. - Об'єктне представлення програми (представлення на рівні об'єктного коду) відповідає рівню представлення, на якому програма, після перенесення в дистрибутив і наступного завантаження в систему обробки даних або пристрій обробки і зберігання, може бути виконана. Це може бути, наприклад, двійковий код, /5 інтерпретований код тощо. - Дистрибутивом є фізичний або віртуальний носій, що містить об'єктне представлення, причому цей дистрибутив має надаватися в розпорядження користувача, щоб дозволити йому використовувати програму. - Динамічне представлення відповідає виконанню програми з дистрибутива. - Фрагмент програми відповідає певній її частині й може, наприклад, відповідати одній або декільком інструкціям (послідовним або ні) і/або одному або декільком функціональним блокам (послідовним або ні), і/або одній або декільком функціям, і/або одній або декільком підпрограмам, і/або одному або декільком модулям.
Фрагмент програми може відповідати і всій програмі цілком.
На Фіг.10 їі 11 наведені різноманітні представлення відповідно вразливої програми 2М у загальному вигляді і програми 2р, захищеної згідно з винаходом. сч
На Фіг.10 наведені різноманітні представлення вразливої програми 2у, що з'являються в ході її життєвого циклу. Вразлива програма 2у може з'являтися в одному з різноманітних виглядів, тобто як: і) - вихідний код 25; - об'єктний код 2мо; - дистрибутив 2уд, який може надаватися звичайно на фізичному носії, наприклад на компакт-диску, або у М зо Вигляді файлів, переданих по мережі (за стандартом СЗМ, по мережі Інтернет тощо); - у вигляді динамічного представлення 2ме, що відповідає виконанню вразливої програми 2м у системі З со обробки даних будь-яких відомих типів, які в класичному випадку містять принаймні один процесор 4. «-
Фіг.11 ілюструє різноманітні представлення захищеної програми 2р, що з'являються в ході її життєвого циклу. Захищена програма 2р може також з'являтися у вигляді: ї- - вихідного коду (представлення) 2рз, що містить першу частину вихідного коду, призначену для системи З ї- обробки даних, і, можливо, другу частину вихідного коду, призначену для пристрою 6, причому частина цих частин вихідного коду може звичайно міститися в загальних файлах; - об'єктного представлення 2ро, що містить першу частину 2роз об'єктного коду, призначену для системи З обробки даних, і, можливо, другу частину 2рои об'єктного коду, призначену для пристрою 6; « - дистрибутив у 2ра, що містить: з с - першу частину 2рідз дистрибутива, що містить першу частину 2роз об'єктного коду, причому ця перша частина 2раз дистрибутива призначена для системи З обробки даних і може бути представлена звичайно у ;» формі дистрибутива на фізичному носії, наприклад на компакт-диску, або у вигляді файлів, переданих по мережі (за стандартом ОЗМ, по мережі Інтернет тощо), - і другу частину 2рди дистрибутива, поданого у вигляді: - щонайменше одного незадіяного пристрою 60, -І - або щонайменше одного передперсоналізованого пристрою 66, у який була завантажена частина другої частини 2рои об'єктного коду і для якого користувач мусить завершити персоналізацію шляхом завантаження
Ш- додаткової інформації, щоб одержати пристрій 6, причому ця додаткова інформація може надходити, наприклад, - шляхом завантаження або передачі по мережі, - або щонайменше одного пристрою 6, у який була завантажена друга частина 2рои об'єктного коду; со - або у вигляді динамічного представлення 2ре, що відповідає виконанню захищеної програми 2р. Це
І динамічне представлення 2ре містить першу виконувану частину 2рез, що виконується в системі З обробки даних, і другу виконувану частину 2реи, що виконується у пристрої 6.
У випадку, коли розходження між різноманітними представленнями захищеної програми 2р несуттєве, дв Використовуються вирази "перша частина захищеної програми" і "друга частина захищеної програми".
Реалізація способу згідно з винаходом відповідно до динамічного представлення, проілюстрованого на
Ф) Фіг.11, використовує пристрій Тр захисту, що містить систему З обробки даних, сполучену лінією 5 зв'язку з ка пристроєм 6. Система З обробки даних може бути будь-якого типу і містить у звичайному варіанті щонайменше один процесор 4. Система З обробки даних може бути комп'ютером або бути частиною, наприклад, бо Візноманітних машин, пристроїв, стаціонарних або рухливих виробів, у тому числі будь-яких транспортних засобів. Лінія 5 зв'язку може бути здійснена будь-яким можливим способом, наприклад, по лінії послідовної передачі, по шині ОВ, по радіо, по оптичному каналу, по мережі або через пряме електричне з'єднання зі схемою системи З обробки даних тощо. Слід зазначити, що пристрій 6 може фізично знаходитися всередині тієї ж інтегральної схеми, що й процесор 4 системи З обробки даних. У цьому випадку пристрій 6 може розглядатися 65 ЯК співпроцесор стосовно до процесора 4 системи обробки даних, а лінія 5 зв'язку є внутрішньою лінією зв'язку в інтегральній схемі.
На Фіг.20-22 наведені як приклади, що не вичерпують можливі варіанти, різноманітні форми реалізації пристрою р захисту, який дозволяє реалізувати спосіб захисту згідно з винаходом.
У прикладі реалізації за Фіг.20 пристрій Тр захисту містить, як систему З обробки даних, комп'ютер і, як пристрій 6, карту 7 з мікрочипом та її інтерфейс 8, звичайно називаний пристроєм читання карт. Комп'ютер З зв'язаний з пристроєм 6 за допомогою лінії 5 зв'язку. В ході виконання захищеної програми 2р перша виконувана частина 2ревз, яка виконується в системі З обробки даних, і друга виконувана частина 2реиц, яка виконується в карті 7 з мікрочипом і в її інтерфейсі 8, мають бути функціональними, щоб захищена програма 2р була повнофункціональною. 70 У прикладі реалізації за Фіг.21 пристрій Тр захисту міститься у виробі У загального виду, що містить різноманітні органи 10, адаптовані до функції або до функцій, реалізованих таким виробом 9. Пристрій Тр захисту містить, з одного боку, систему З обробки даних, умонтовану у виріб 9, а з другого боку - пристрій 6, зв'язаний з виробом 9. Щоб виріб 9 був повнофункціональним, захищена програма 2р має бути повністю функціональною. Так, у ході виконання захищеної програми 2р і перша виконувана частина 2рез, яка /5 Виконується в системі З обробки даних, і друга виконувана частина 2реи, яка виконується у пристрої 6, мають бути працездатні. Ця захищена програма 2р дозволяє, отже, непрямим чином захистити від неавторизованого використання виріб 9 або одну з його функціональних можливостей. Виріб 9 може бути, наприклад, установкою, системою, машиною, іграшкою, електропобутовим приладом, телефоном.
У прикладі реалізації за Фіг.22 пристрій тр захисту містить множину комп'ютерів, а також частину Комунікаційної мережі. Система З обробки даних являє собою перший комп'ютер, зв'язаний за допомогою лінії 5 зв'язку мережного типу з пристроєм 6, який являє собою другий комп'ютер. Для реалізації винаходу другий комп'ютер б використовується як сервер ліцензій для захищеної програми 2р. У ході виконання захищеної програми 2р і перша виконувана частина 2рез, яка виконується в першому комп'ютері З, і друга виконувана частина 2реи, яка виконується в другому комп'ютері 6, мають бути функціональними, щоб захищена програма 2р сч була повнофункціональною.
Фіг.30 дозволяє пояснити точніше спосіб захисту згідно з винаходом. Слід зазначити, що вразлива програма (8) 2м розглядається як виконувана повністю в системі З обробки даних. Навпаки, у випадку реалізації захищеної програми 2р система З обробки даних містить засоби 12 передачі, зв'язані лінією 5 зв'язку із засобами 13 передачі, що становлять частину пристрою 6, що дозволяє сполучатися між собою першій виконуваній частини ї- зо 2грез і другій виконуваній частині 2реи захищеної програми 2р.
Слід мати на увазі, що засоби 12, 13 передачі реалізовані програмно або матеріально і здатні забезпечити со й, можливо, оптимізувати передачу даних між системою З обробки даних і пристроєм б. Ці засоби 12,13 - передачі пристосовані для того, щоб дозволити скористатися захищеною програмою 2р, яка є переважно незалежною від типу застосовуваної лінії 5 зв'язку. Ці засоби 12, 13 передачі не стосуються предмета винаходу ї- і не описуються докладніше, тому що вони добре відомі фахівцям. Перша частина захищеної програми 2р ї- містить команди. В ході виконання захищеної програми 2р виконання цих команд першою виконуваною частиною 2рез дозволяє здійснити зв'язок між першою виконуваною частиною 2рез і другою виконуваною частиною 2реи.
Надалі в описі ці команди подані у вигляді ІМ, ОТ або ТК.
Як показано на Фіг.31, щоб дозволити реалізацію другої виконуваної частини 2реи захищеної програми 2р, « пристрій 6 містить засоби 14 захисту. В разі, якщо пристрій 6 є запам'ятовуючим пристроєм, засоби 14 захисту шву) с містять засоби 15 запам'ятовування. У випадку, якщо пристрій 6 є пристроєм обробки і зберігання, засоби 14 захисту містять засоби 15 запам'ятовування і засоби 16 обробки. ;» Для спрощення подальшого опису будемо вважати, що в ході виконання захищеної програми 2р пристрій 6 є наявним або пристрій 6 відсутній. У дійсності, пристрій 6 у тому випадку, коли містить засоби 14 захисту, не пристосовані до виконання другої виконуваної частини 2реи захищеної програми 2р, також розглядається як -І відсутній щоразу, коли виконання захищеної програми 2р не є коректним. Іншими словами: - пристрій б, що фізично присутній і містить засоби 14 захисту, пристосовані до виконання другої
Ш- виконуваної частини 2реи захищеної програми 2р, завжди розглядається як присутній; - - пристрій б, що фізично присутній, але що містить непридатні засоби 14 захисту, тобто такі, що не дозволяють здійснити коректну реалізацію другої виконуваної частини грец захищеної програми 2р, со розглядається як присутній, якщо він функціонує коректно, і як відсутній, якщо він не функціонує коректно; "М - пристрій 6, фізично відсутній, завжди розглядається як відсутній.
У випадку, якщо пристрій б складається з карти 7 з мікрочипом і її інтерфейсу 8, засоби 13 передачі розділяються на дві частини, одна з яких знаходиться на інтерфейсі 8, а інша - на карті 7 з мікрочипом. У ов Цьому прикладі реалізації відсутність карти 7 з мікрочипом розглядається як еквівалент відсутності пристрою 6. Іншими словами, за відсутності карти 7 з мікрочипом і/або її інтерфейсу 8 засоби 14 захисту недоступні й,
Ф) отже, не дозволяють здійснити виконання другої виконуваної частини 2реи захищеної програми, так що ка захищена програма 2р не є повнофункціональною.
Згідно з винаходом, спосіб захисту спрямований на реалізацію принципу захисту, названого "детектування й бо примус", опис якого виконано з посиланням на Фіг.70-74.
Для реалізації принципу захисту за допомогою детектування й примусу визначаються: - щонайменше одна характеристика виконання програми, яка може бути проконтрольована, принаймні, частково у пристрої 6; - щонайменше один критерій, що його слід дотримуватися принаймні для однієї характеристики виконання 65 програми; - засоби 17 детектування, що їх необхідно застосовувати у пристрої б і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію; - засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформувати систему З обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію.
Для реалізації принципу захисту за допомогою детектування й примусу конструюють також засоби експлуатації, які дозволяють перетворити незадіяний пристрій 60 на пристрій 6, що принаймні реалізує засоби 17 детектування й засоби 18 примусу.
На Фіг.70 показані засоби, необхідні для реалізації принципу захисту за допомогою детектування й примусу.
Пристрій 6 містить засоби 17 детектування й засоби 18 примусу, що належать засобам 16 обробки. Засоби 18 7/0 примусу одержують інформацію про недотримання критерію від засобів 17 детектування.
Точніше кажучи, засоби 17 детектування використовують інформацію, що виходить від засобів 13 передачі і/або від засобів 15 запам'ятовування і засобів 16 обробки, щоб дотримувалася одна або декілька характеристик виконання програми. Кожній характеристиці виконання програми зіставляється принаймні один критерій, що його слід дотримуватися.
У випадку, якщо виявлено, що принаймні одна характеристика виконання програми не задовольняє щонайменше одному критерію, засоби 17 детектування інформують про це засоби 18 примусу. Ці засоби 18 примусу адаптовані для зміни відповідним чином стану пристрою 6.
Для реалізації принципу захисту за допомогою детектування й примусу мають бути вибрані також: - щонайменше одна характеристика виконання контрольованої програми, серед характеристик виконання, що 2о Можуть бути проконтрольовані; - щонайменше один критерій, що його слід дотримуватися принаймні для однієї вибраної характеристики виконання програми; - у вихідному коді 2уз уразливої програми, - щонайменше один алгоритм, для якого потрібно контролювати щонайменше одну характеристику виконання програми; с - у вихідному коді 2у5 уразливої програми, - щонайменше один фрагмент, що містить принаймні один вибраний алгоритм. і)
За виконання цих умов щонайменше один вибраний фрагмент коду 2уз уразливої програми модифікується, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що саме в ході виконання захищеної програми 2р: М зо - щонайменше один фрагмент першої виконуваної частини 2рез, яка виконується в системі З обробки даних, враховує, що принаймні одна характеристика виконання вибраної програми має бути проконтрольована, со щонайменше частково, у пристрої 6; «- - друга виконувана частина 2рец, яка виконується у пристрої 6, контролює, щонайменше частково, одну характеристику виконання вибраної програми. -
У ході виконання програми 2р, захищеної за допомогою принципу детектування й примусу, в присутності ча пристрою 6 має місце така ситуація: - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми 2р, дотримано, ці модифіковані фрагменти захищеної програми 2р функціонують належним чином й, отже, захищена програма 2р функціонує належним чином; « - якщо ж щонайменше одного з критеріїв, що відповідає характеристиці контрольованого виконання одного в с фрагмента захищеної програми 2р, не дотримано, система З обробки даних інформується про це і/або . функціонування фрагмента захищеної програми 2р модифікується таким чином, щоб функціонування захищеної и?» програми 2р було змінене.
Природно, що за відсутності пристрою 6 щонайменше один запит одного фрагмента першої виконуваної частини 2рез захищеної програми 2р на використання пристрою б не може бути коректно виконаний, так що -І принаймні ця частина не виконується коректно й, отже, захищена програма 2р не є повнофункціональною.
Для реалізації принципу захисту за допомогою детектування й примусу бажано використовувати два типи ш- характеристики виконання програми. - Перший тип характеристики виконання програми відповідає змінній контролю виконання програми, а другий тип відповідає профілю використання програми. Ці обидва типи характеристик можуть використовуватися со незалежно або в поєднанні.
І Для реалізації принципу захисту за допомогою детектування й примусу, що використовує як характеристику виконання програми змінну контролю виконання програми, мають визначатися: - у засобах 15 запам'ятовування - можливість запам'ятати щонайменше одну змінну контролю, що служить як дв Кількісна характеристика використання щонайменше однієї функціональної можливості програми; - у засобах 17 детектування - можливість спостерігати щонайменше одне порогове значення, зв'язане з (Ф, кожною змінною контролю; ка - засоби поновлення, що дозволяють поновити кожну змінну контролю залежно від використання функціональної можливості, з якою вона зв'язана. во Конструюють також засоби експлуатації, які задіюють, окрім засобів 17 детектування і засобів 18 примусу, також засоби поновлення.
Крім того, у вихідному коді 2уз уразливої програми вибираються: - щонайменше одна функціональна можливість уразливої програми 2Уу, що її використання можна проконтролювати за допомогою змінної для кількісного контролю; 65 - щонайменше одна змінна для кількісного контролю, що служить як кількісна характеристика згаданої функціональної можливості;
- щонайменше одне порогове значення, зв'язане зі змінною для кількісного контролю і відповідне межі використання вказаної функціональної можливості; - Її щонайменше один метод поновлення змінної для кількісного контролю відповідно до використання зазначеної функціональної можливості.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи: - поновлює значення змінної для кількісного контролю відповідно до використання згаданої функціональної 70 можливості; - і бере до уваги щонайменше одне перевищення порогового значення.
Іншими словами, в ході виконання захищеної програми 2р значення змінної для кількісного контролю поновлюється відповідно до використання згаданої функціональної можливості, й у разі перевищення порогового значення засобу 17 детектування інформують про це засоби 18 примусу, які приймають рішення, пристосоване 7/5 для того, щоб проінформувати систему З обробки даних і/або модифікувати обробку, здійснювану засобами 16 обробки. Це дозволяє модифікувати функціонування фрагмента захищеної програми 2р таким чином, щоб функціонування захищеної програми 2р було змінено.
Для реалізації першого кращого варіанта реалізації принципу захисту за допомогою детектування й примусу, який використовує як характеристику змінну для кількісного контролю, визначають: - щонайменше для однієї змінної для кількісного контролю - декілька відповідних порогових значень; - Ї різноманітні засоби примусу, що відповідають кожному з цих порогових значень.
У вихідному коді 2уз уразливої програми вибираються також: - щонайменше одна змінна для кількісного контролю, що служить як кількісна характеристика використання щонайменше однієї функціональної можливості програми, з якою мають зв'язуватися декілька порогових сч ов Значень, що відповідають різноманітним межам використання зазначеної функціональної можливості; - Ї щонайменше два порогових значення, зв'язані зі змінною для кількісного контролю. (8)
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи: - поновлює значення змінної для кількісного контролю відповідно до використання згаданої функціональної М
Зо Можливості; - і по-різному враховує перевищення різноманітних порогових значень. со
Іншими словами, у звичайному випадку в ході виконання захищеної програми 2р при перевищенні першого -/- ди порогового значення пристрій б інформує систему З обробки даних, даючи команду захищеній програмі 2р більше не використовувати цю функціональну можливість. Якщо ж захищена програма 2р продовжує ї- з5 Використовувати цю функціональну можливість, то може бути перевищене друге порогове значення. В разі ча перевищення другого порогового значення засоби 18 примусу можуть зробити непрацездатною вибрану функціональну можливість і/або зробити непрацездатною захищену програму 2р.
Для реалізації другого кращого варіанта принципу захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю, визначають засоби перезавантаження, що «
ДОЗВОЛЯЮТЬ щонайменше одне додаткове використання принаймні однієї функціональної можливості програми, з с контрольованої за допомогою змінної для кількісного контролю. . Конструюють також засоби експлуатації, де застосовані, крім засобів 17 детектування, засобів 18 примусу й а засобів відновлення, також і засоби перезавантаження.
Крім того, у вихідному коді 2уз уразливої програми вибирається щонайменше одна змінна для кількісного
Контролю, що служить для обмеження використання щонайменше однієї функціональної можливості програми, -І для якої існує можливість дозволу на щонайменше одне додаткове використання.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної
Ш- програми, причому ця модифікація така, що у фазі, названій фазою перезавантаження, щонайменше одне - додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволено. со У фазі перезавантаження відбувається поновлення щонайменше однієї вибраної змінної для кількісного
І контролю і/або щонайменше одного зв'язаного порогового значення, щоб дозволити принаймні одне додаткове використання відповідної функціональної можливості. Іншими словами, у фазі перезавантаження забезпечується можливість дозволити додаткові використання щонайменше однієї функціональної можливості захищеної ов програми 2р.
Для реалізації принципу захисту за допомогою детектування й примусу, що використовує як характеристику (Ф, профіль використання програми, як критерій, що його слід дотримуватися для цього профілю використання, має ка бути визначена щонайменше одна ознака виконання програми.
Крім того, у вихідному коді 2уз уразливої програми вибирають: 60 - щонайменше один профіль використання, що його слід контролювати; - ї щонайменше одну ознаку виконання, що її має дотримуватися щонайменше один профіль використання.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реим дотримується всіх вибраних ознак виконання. 65 Іншими словами, пристрій 6 саме контролює той спосіб, що ним виконується друга виконувана частина 2рем, і може інформувати систему З обробки даних і/або модифікувати функціонування захищеної програми 2р у випадку, якщо не дотримана хоча б одна ознака.
У ході виконання програми 2р, захищеної на основі даного принципу, в присутності пристрою 6 має місце така ситуація: - якщо всіх ознак виконання всіх модифікованих фрагментів захищеної програми 2р дотримано, то ці модифіковані фрагменти захищеної програми 2р функціонують належним чином, і, отже, захищена програма 2р функціонує належним чином; - якщо ж хоча б однієї ознаки виконання одного фрагмента захищеної програми 2р не дотримано, про це інформується система З обробки даних і/або функціонування фрагмента захищеної програми 2р модифікується /о0 таким чином, щоб функціонування захищеної програми 2р було змінено.
Можна передбачити контроль різноманітних ознак виконання, наприклад контроль наявності інструкцій, що містять генератор міток, або контроль зчеплення виконання щонайменше однієї частини інструкцій.
Для реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій, визначають: - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої 6; - набір команд інструкцій для цього набору інструкцій, причому ці команди інструкцій можуть бути виконані в системі З обробки даних. Виконання кожної з цих команд інструкцій у системі З обробки даних викликає у пристрої 6 виконання відповідної інструкції; - засоби 17 детектування, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному; - засоби 18 примусу, що дозволяють проінформувати систему З обробки даних і/або модифікувати виконання програми, якщо зчеплення інструкцій не відповідає бажаному.
Конструюють також засоби експлуатації що дозволяють пристрою б виконувати інструкції з набору інструкцій, причому виконання цих інструкцій викликається виконанням команд інструкцій у системі З обробки даних. с
Крім того, у вихідному коді 2уз уразливої програми вибирається щонайменше один алгоритм, який має бути винесений у пристрій 6 і для якого слід контролювати зчеплення щонайменше частини інструкцій. і)
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми 2р: - друга виконувана частина 2реи виконує щонайменше функціональну можливість вибраного алгоритму; ї- зо - вибраний алгоритм розкладається на інструкції; - задане зчеплення, що його мають дотримуватися принаймні деякі з інструкцій у ході їхнього виконання у со пристрої 6; «- - перша виконувана частина 2рез захищеної програми 2р виконує команди інструкцій, які запускають виконання інструкцій у пристрої 6. ї-
У ході виконання програми 2р, захищеної на основі цього принципу, в присутності пристрою 6 має місце така ї- ситуація: - якщо зчеплення інструкцій усіх модифікованих фрагментів захищеної програми 2р відповідає бажаному, ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 2р функціонує належним чином; « - якщо ж зчеплення інструкцій фрагмента захищеної програми 2р, виконуваних у пристрої 6, не відповідає з с бажаному, то система З обробки даних інформується про це і/або функціонування фрагмента захищеної програми 2р модифікується таким чином, щоб функціонування захищеної програми 2р було змінено. ;» На Фіг.71 наведений приклад реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій у випадку, якщо бажаного зчеплення дотримано. -І Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує команди Сі; інструкцій, що викликає у пристрої 6 виконання інструкцій і;, що належать до набору інструкцій. У
Ш- наборі інструкцій щонайменше деякі з інструкцій містять частину, що задає функціональну можливість - інструкції, ії частину, що дозволяє перевіряти бажане зчеплення для виконання інструкцій. У цьому прикладі 5о Команди Сі, інструкцій подані як ТКІС(і;), а бажаним зчепленням для виконання інструкцій є і дл, дня | ідо. со Виконання у пристрої 6 інструкції ід дає результат а, а виконання інструкції ід-- дає результат Б. Інструкція ід» "М використовує як операнд результати а і Б інструкцій і, і ід-я, а її виконання дає результат с.
З урахуванням того, що це зчеплення інструкцій, виконуваних у пристрої 6, відповідає бажаному, функціонування захищеної програми 2р відповідає нормальному або номінальному режиму.
На Фіг.72 наведений приклад реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше (Ф, частини інструкцій у випадку, якщо бажаного зчеплення не дотримано. ка Відповідно до цього приклада бажаним зчепленням для виконання інструкцій є завжди і й, дя і іп-». Проте зчеплення виконання інструкцій модифікується заміною інструкції і д на інструкцію ї., таким чином, що дійсно бо Виконуваним зчепленням є Її, ід І ідо. Виконання інструкції Її» дає результат а, тобто той самий результат, що й виконання інструкції ід. Проте не пізніше, ніж при виконанні інструкції ід-», засоби 17 детектування виявляють, що інструкція Її, не відповідає бажаній інструкції для вироблення результату а, використовуваного як операнд для інструкції ідо. Засоби 17 детектування інформують про це засоби 18 примусу, що модифікують, як наслідок, функціонування інструкції і дю, таким чином, що виконання інструкції і дя» дає результат с, який може 65 відрізнятися від с.
Зрозуміло, якщо виконання інструкції ї 4 дає результат а", відмінний від результату а інструкції ід, ясно, Що результат виконання інструкції ід-о може також відрізнятися від с.
Отже, якщо зчеплення виконання інструкцій, виконуваних у пристрої 6, не відповідає бажаному, можна одержати модифікацію функціонування захищеної програми 2р.
На Фіг.73 і 74 показаний кращий варіант реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій. Відповідно до цього кращого варіанта визначається набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату. 70 Як показано на Фіг.73, щонайменше для частини інструкцій, що працюють на регістрах, визначена частина
РЕ, що задає функціональну можливість інструкції, і частина РЕ, що задає бажане зчеплення для виконання інструкцій. Частина РЕ відповідає коду операцій, відомому фахівцеві. Частина РЕ, що визначає бажане зчеплення, містить відповідні бітові поля: - полю СІЇ ідентифікації інструкції; - ї для кожного операнда К інструкції, де К пробігає значення від 1 до К, К - кількість операндів інструкції: - полю СО, прапора, що вказує, чи варто перевіряти походження операнда К, - Її полю СІР,; ідентифікації, передбаченої для операнда й що вказує на очікувану ідентичність інструкції, яка згенерувала вміст операнда К.
Як показано на Фіг.74, набір інструкцій містить М регістрів, що належать засобам 16 обробки, де кожний 2о регістр названий К,, (м пробігає значення від 1 до М). Для кожного регістра Ку визначаються два поля, як-от: - функціональне поле СК, відоме фахівцеві і що дозволяє зберігати результат виконання інструкцій; - і поле Сібу, генерованої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр, тобто такої, що згенерувала вміст функціонального поля СЕ, Це поле Сібу генерованої ідентифікації поновлюється автоматично разом із вмістом поля СІЇ сч ов ідентифікації інструкції, згенерувавши функціональне поле Су. Поле СіІбу генерованої ідентифікації не є ні доступним, ані таким, що модифікується для будь-якої іншої інструкції, ії служить винятково для засобів 17 і) детектування.
В ході виконання інструкції засоби 17 детектування виконують для кожного операнда К такі операції: - зчитується поле СО, прапора; М зо - якщо цього вимагає поле СО, прапора, то зчитуються обидва поля: поле СІР,, передбаченої ідентифікації і поле СібС,, генерованої ідентифікації, що відповідає регістрам, використовуваним операндом К; со - перевіряється рівність обох полів СІР, і СІб,; «- - ії якщо рівність хибна, то засоби 17 детектування вважають, що зчеплення виконання інструкцій не дотримано. -
Засоби 18 примусу мають дозволяти модифікувати результат виконання інструкцій, коли засоби 17 ї- детектування проінформують їх про недотримання зчеплення інструкцій. Краща реалізація полягає в тому, щоб модифікувати функціональну частину РЕ виконуваної інструкції або функціональної частини РЕ наступних інструкцій.
Відповідно до іншої кращої характеристики винаходу, спосіб захисту спрямований на реалізацію так званого « принципу захисту за допомогою змінної, опис якого подано з посиланням на Фіг.40-43. з с Для реалізації принципу захисту за допомогою змінної у вихідному коді 2уз уразливої програми вибирається щонайменше одна змінна, яка в ході виконання вразливої програми 2у частково визначає її стан. Під станом ;» програми розуміється сукупність інформації, на даний момент необхідної для повного виконання цієї програми.
Таким чином, відсутність згаданої вибраної змінної перешкоджає повному виконанню цієї програми. Вибирається також щонайменше один фрагмент вихідного коду 2уз уразливої програми, що містить щонайменше одну -І вибрану змінну.
Щонайменше один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується, щоб
Ш- одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми - 2р щонайменше один фрагмент першої виконуваної частини 2рез, який виконується в системі З обробки даних, 5ор враховує, що принаймні одна вибрана змінна або щонайменше одна копія вибраної змінної знаходиться у со пристрої 6. "М На Фіг.40 наведений приклад представлення вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних мають місце: - у момент і присвоєння значення Х змінній М, що подано як М.--Х; - у момент Її присвоєння значення змінної М. змінній М, що подано як У«-У.4; - у момент із присвоєння значення змінної М. змінній 7, що подано як 74.М.. о На Фіг.41 наведений приклад першої форми реалізації винаходу, для якої змінна знаходиться у пристрої 6. У іме) цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р в присутності пристрою 6 здійснюються: бо - у момент Її виконання команди передачі, що викликає передачу даного Х від системи З обробки даних до змінної м, розташованої в засобах 15 запам'ятовування пристрою 6, причому ця команда передачі подана як
ОШТм., Х) і відповідає по завершенні присвоєнню значення Х змінній м; - у момент ї2 виконання команди передачі, що викликає передачу значення змінної м 4, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній У, причому ця команда передачі подана 65 як ІМ(м4) і відповідає по завершенні присвоєнню значення м. змінній У; - у момент їз виконання команди передачі, що викликає передачу значення змінної м 4, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній 7, причому ця команда передачі подана як ІМ(м4) і відповідає по завершенні присвоєнню значення у. змінній 7.
Слід зазначити, що в ході виконання захищеної програми 2р щонайменше одна змінна знаходиться у пристрої б. Так, коли цього вимагає частина першої виконуваної частини 2рез захищеної програми 2р, в присутності пристрою 6, значення цієї змінної, що знаходиться у пристрої 6, передається системі З обробки даних, щоб бути використаною першою виконуваною частиною 2рез захищеної програми 2р таким чином, щоб ця частина виконувалася коректно й, отже, захищена програма 2р була повнофункціональною.
На Фіг.42 наведений приклад другої форми реалізації винаходу, для якої копія змінної знаходиться у 7/0 пристрої 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р в присутності пристрою 6 здійснюються: - у момент ( присвоєння значення Х змінній М 4, що знаходиться в системі З обробки даних, а також виконання команди передачі що викликає передачу даного Х від системи З обробки даних до змінної м4, розташованої в засобах 15 запам'ятовування пристрою 6, причому ця команда передачі подана як ОШТ(м 4, Х); - у момент ї5 - присвоєння значення змінної М.змінній м; - у момент із - виконання команди передачі, що викликає передачу значення змінної м, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній 7, причому ця команда передачі подана як ІМ(м4).
Слід зазначити, що в ході виконання захищеної програми 2р щонайменше одна копія однієї змінної
Знаходиться у пристрої 6.
Так, коли цього вимагає частина першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, значення цієї копії змінної, що знаходиться у пристрої 6, передається системі З обробки даних, щоб бути використаною першою виконуваною частиною 2рез захищеної програми 2р таким чином, щоб ця частина виконувалася коректно й, отже, захищена програма 2р була повнофункціональною. с
На Фіг.43 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: і) - у момент Її виконання команди передачі ОШТ(м4, Х) не може викликати передачу даного Х змінній м з огляду на відсутність пристрою 6; - у момент їх виконання команди передачі ІМ(м4) не може викликати передачу значення змінної мі. системі З Кк. зо обробки даних з огляду на відсутність пристрою 6; - у момент їз виконання команди передачі ІМ(м4) не може викликати передачу значення змінної мі системі З со обробки даних з огляду на відсутність пристрою 6. «-
Таким чином, представляється, що за відсутності пристрою 6 щонайменше один запит одного фрагмента першої виконуваної частини 2рез на використання змінної або копії змінної, що знаходиться у пристрої 6, не ї- з5 Може бути коректно виконаний, отже, щонайменше ця частина не виконується коректно, й, отже, захищена ча програма 2р не є повнофункціональною.
Слід відзначити, що процеси передачі даних між системою З обробки даних і пристроєм 6 використовують тільки прості присвоєння (що проілюстровано на вищенаведених прикладах). Проте фахівець зможе скомбінувати їх з іншими операціями, щоб одержати складні операції, наприклад, ОШТ(м 4, 2"Х3) або « 2--(5М ну). шщ с Відповідно до іншої переважної характеристики винаходу спосіб захисту націлений на реалізацію принципу ц захисту, названого "перейменування", опис якого виконано з посиланням на Фіг.80-85. "» Для реалізації принципу захисту перейменуванням мають визначатися: - ансамбль залежних функцій, залежні функції якого можуть бути виконані за допомогою другої виконуваної частини 2реи у пристрої 6, можливо, із наступною передачею даних між системою З обробки даних і пристроєм 6 - (причому цей ансамбль залежних функцій може бути кінцевим чи ні); - ансамбль команд запуску для цих залежних функцій, причому ці команди запуску можуть виконуватися в системі З обробки даних і викликати у пристрої 6 виконання відповідних залежних функцій; - - для кожної команди запуску - настановний параметр, що відповідає, щонайменше частково, інформації, переданій першою виконуваною частиною 2рез другій виконуваній частині 2реуш, щоб викликати запуск со відповідної залежної функції, причому цей настановний параметр представляється у формі принаймні аргументу "і команди запуску; - метод перейменування настановних параметрів, призначений для застосування в ході модифікації вразливої програми і дозволяє перейменувати настановні параметри таким чином, щоб одержати команди запуску з перейменованими параметрами, дозволяючи приховати ідентичність відповідних залежних функцій; - засоби 20 відновлення, призначені для застосування у пристрої 6 у фазі використання і що дозволяють і) відновити початкові настановні параметри виходячи з перейменованих настановних параметрів, щоб знайти ко залежну функцію, що її необхідно виконати.
Для реалізації принципу захисту перейменуванням конструюють також засоби експлуатації, що дозволяють бо перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і засоби 16 обробки, на пристрій 6, що застосовує щонайменше засоби 20 відновлення.
Для реалізації принципу захисту перейменуванням у вихідному коді 2уз уразливої програми мають також вибиратися: - щонайменше один алгоритм, що використовує щонайменше один операнд і що видає принаймні один 65 результат; - ї щонайменше один фрагмент вихідного коду 2уз уразливої програми, що містить принаймні один вибраний алгоритм.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що: - у ході виконання захищеної програми 2р щонайменше один фрагмент першої виконуваної частини 2рев, яка виконується в системі З обробки даних, враховує, що функціональна можливість щонайменше одного вибраного алгоритму виконується у пристрої 6; - у ході виконання захищеної програми 2р друга виконувана частина 2реи, яка виконується у пристрої 6, виконує принаймні функціональну можливість щонайменше одного вибраного алгоритму; 70 - кожний вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми 2р кожний вибраний алгоритм виконується за допомогою другої виконуваної частини 2реи, використовуючи залежні функції.
Кожний вибраний алгоритм переважно розкладається на залежні функції та, (де п пробігає значення від 1 до
М), як-от: - можливо, на одну або декілька залежних функцій, що дозволяють надати один або декілька операндів для /5 пристрою 6, - на залежні функції, деякі з яких використовують один або декілька операндів і які в поєднанні здійснюють функціональну можливість вибраного алгоритму, що використовує ці операнди, - і, можливо, на одну або декілька залежних функцій, що дозволяють за допомогою пристрою 6 надати системі З обробки даних результат виконання вибраного алгоритму; - у ході виконання захищеної програми 2р друга виконувана частина 2реи виконує залежні функції га у; - у ході виконання захищеної програми 2р ці залежні функції запускаються командами запуску з перейменованими настановними параметрами; - Її впорядкування команд запуску вибране серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р. сч
Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує команди запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані і) настановні параметри. Це викликає у пристрої 6 відновлення за допомогою засобів 20 відновлення настановних параметрів, а потім виконання, за допомогою другої виконуваної частини 2реи, кожної з визначених вище залежних функцій Та». ї- зо Іншими словами, принцип захисту за допомогою перейменування полягає в тому, щоб перейменувати настановні параметри команд запуску, щоб одержати команди запуску з перейменованими настановними со параметрами, виконання яких у системі З обробки даних викликає у пристрої б виконання залежних функцій, що «- запускалися б командами запуску з неперейменованими настановними параметрами, проте без того, щоб вивчення захищеної програми 2р дозволило визначити ідентичність виконуваних залежних функцій. ї-
На Фіг.80 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої ї- програми 2м у системі З обробки даних у даний момент часу має місце розрахунок 2--К(Х, У), що відповідає присвоєнню змінній 2 результату виконання алгоритму, поданого функцією Е і який використовує операндиХ і У.
На Фіг.81 ії 82 наведений приклад реалізації винаходу. На Фіг.81 наведений приклад часткової реалізації винаходу. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини « 2рез захищеної програми 2р у присутності пристрою 6 виконуються: шщ с - у моменти ї, й - виконання елементарних команд СО., СО», що викликає у пристрої б виконання, за й допомогою другої виконуваної частини 2реи, відповідних залежних функцій та, тд», що забезпечують передачу и? даних Х, М з системи З обробки даних в області пам'яті відповідно х і у, розташовані в засобах 15 запам'ятовування пристрою 6, причому ці команди СО, СО» запуску подані відповідно як ОШТх, Х), ОТ (у, ХУ); - у моменти з 5 до їм.4 - виконання команд запуску з СОз до СОМ, що викликає у пристрої б виконання за -і допомогою другої виконуваної частини 2рец відповідних залежних функцій з ї4з до їду, причому ці команди запуску з СОз до СЮОк.я подані відповідно як ТКІС(Таз)-ТКІС(Такя), причому послідовність залежних функцій з їз
Ше до їдк.я, виконуваних у поєднанні, алгоритмічно еквівалентна функції Е (точніше кажучи, виконання цих команд - запуску приводить до виконання у пристрої 6 залежних функцій з Та» до Так.4, які використовують уміст областей 5р пам'яті х, у і повертають результат в область пам'яті 2 пристрою б); бо - а в момент їх здійснюється виконання команди СО у запуску, що викликає у пристрої б виконання, за "З допомогою другої виконуваної частини 2реи, залежної функції Таб, яка забезпечує передачу результату виконання алгоритму, що міститься в області пам'яті 2 пристрою 6, системі З обробки даних, щоб присвоїти його змінній 7. Ця команда подана як ІМ(2).
У даному прикладі, щоб повністю реалізувати винахід, як настановний параметр вибраний перший аргумент команд ОТ запуску й аргумент команд ТКС і ІМ запуску. Вибрані в такий спосіб настановні параметри іФ) перейменовуються за методом перейменування настановних параметрів. Таким чином, настановні параметри ко команд запуску з СО4 до СОк, як-от: х, у, Таз, Так, 2 перейменовуються так, щоб одержати відповідно К(х), КУ), (аз)... (Там), (г). во На Фіг.82 наведений приклад повної реалізації винаходу. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, здійснюються: - у моменти ї/, й - виконання команд СОСКУ, СОСК» запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані настановні параметри К(х), К(У), а також дані Х, У, що викликає у б5 пристрої 6 відновлення (за допомогою засобів 20 відновлення) перейменованих настановних параметрів, щоб відновити настановні параметри, як-от ідентичність областей пам'яті х, у, а потім виконання, за допомогою другої виконуваної частини 2реи, відповідних залежних функцій ї4., тд», які забезпечують передачу даних Х, У від системи З обробки даних до областей пам'яті відповідно х, у, розташованих у засобах 15 запам'ятовування пристрою 6 (ці команди СОС, СОСК» запуску з перейменованими настановними параметрами представлені відповідно як ОСТ (К(Х), Х), ОСТ (КУ), Х)); - у моменти з із до Її - виконання команд СОСК»з до СОСКУ 1 запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані настановні параметри з (дз) до К(Тдк.4), що викликає у пристрої 6 відновлення за допомогою засобів 20 відновлення настановних параметрів, як-от: з їй з до ТЯ, а потім виконання, за допомогою другої виконуваної частини 2реи, залежних функцій з Таз до Так, причому ці 7/0 Команди (з СОСКз до СОС.) запуску з перейменованими настановними параметрами подані відповідно командами ТКС (К(Таз)) до ТКІС (К(Там4)); - у момент у - виконання команди СОСК у запуску з перейменованими настановними параметрами, що передає у пристрій 6 перейменовані настановні параметри К(7). Це викликає у пристрої 6 відновлення, за допомогою засобів 20 відновлення, настановних параметрів, а саме ідентичності області пам'яті 7, а потім /5 Виконання, за допомогою другої виконуваної частини 2реи, залежної функції Та м, що забезпечує передачу результату виконання алгоритму, що міститься в області пам'яті 2 пристрою 6, системі З обробки даних, щоб присвоїти його змінній 7. Ця команда СОСКУ запуску з перейменованими настановними параметрами подана як
ІЖ(Р(2)).
У наведеному прикладі команди запуску з перейменованими настановними параметрами з 1 до М
Виконуються послідовно. Слід зазначити, що можна зробити два такі вдосконалення. - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом (у цьому випадку деякі команди запуску з перейменованими настановними параметрами, що служать для передачі, можуть бути виключені). - Друге вдосконалення має на меті належне впорядкування команд запуску з перейменованими с 2г5 настановними параметрами серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р.
У цьому відношенні бажано вибрати таке впорядкування команд запуску з перейменованими настановними і) параметрами, що розділяє в часі виконання залежних функцій, уставляючи між ними ділянки коду, виконуваного в системі З обробки даних, і який при цьому містить (або не містить) команди запуску з перейменованими настановними параметрами, що служать для визначення інших даних. Фіг.83 і 84 ілюструють принцип такої М зо реалізації.
На Фіг.83 наведений приклад виконання вразливої програми 2у. У цьому прикладі в системі З обробки даних со у ході виконання вразливої програми 2у відбувається виконання двох алгоритмів, що приводять до визначення 7 «- і 7 таких, що 7- К(Х, Хі 2. (ХХ, У.
На Фіг.84 наведений приклад реалізації способу згідно з винаходом, у якому обидва вибраних на Фіг.83 - алгоритми винесені у пристрій 6. Відповідно до цього приклада в ході виконання в системі З обробки даних ї- першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, має місце, як пояснюється вище, виконання команд (з СОСКУ до СОСКУ) запуску з перейменованими настановними параметрами, що відповідає визначенню 7, і виконання команд (з СОСК. до СОСКу) запуску з перейменованими настановними параметрами, що відповідає визначенню 7. Як показано, команди запуску з СОС. до СОСКУ не виконуються « послідовно, оскільки з ними чергуються команди запуску з СОСКУ до СОСКУ, а також інші фрагменти коду. В. 00) с цьому прикладі, таким чином, реалізоване таке впорядкування: СОСК 4, уставлений фрагмент коду, СОСКУ, й СОС», уставлений фрагмент коду, СОСКУ, СОСКУ, уставлений фрагмент коду, СОСКУ, СОС», СОСК,.,..., "» сОосвм, СОСВу..
Слід зазначити, що в ході виконання фрагмента першої виконуваної частини 2рез захищеної програми 2р
Команди запуску з перейменованими настановними параметрами, що виконуються в системі З обробки даних, -і викликають у пристрої 6 відновлення ідентичності відповідних залежних функцій, а потім їхнє виконання. Таким чином, у присутності пристрою б цей фрагмент виконується коректно й, отже, захищена програма 2р є
Ше повнофункціональною. - На Фіг.85 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рев захищеної програми 2р бо виконання команди запуску з перейменованими настановними параметрами жодного моменту не може "І викликати ні відновлення настановних параметрів, ані виконання відповідної залежної функції через відсутність пристрою 6. Значення, що його необхідно присвоїти змінній 7, отже, не може бути визначене коректно.
Таким чином, вважається, що за відсутності пристрою б щонайменше один запит одного фрагмента першої ВИиКОНУуваної частини 2рез захищеної програми 2р на запуск відновлення настановних параметрів і виконання у пристрої залежної функції у пристрої б не може бути коректно виконаний, так що принаймні ця частина не іФ) виконується коректно й, отже, захищена програма 2р не є повнофункціональною. ко Завдяки цьому принципу захисту за допомогою перейменування вивчення в захищеній програмі 2р команд запуску з перейменованими настановними параметрами не дозволяє визначити ідентичність залежних функцій, бо які мають виконуватися у пристрої 6. Слід зазначити, що перейменування настановних параметрів здійснюється в ході перетворення вразливої програми 2м на захищену програму 2р.
Відповідно до варіанта принципу захисту за допомогою перейменування має бути визначено, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску з різноманітними перейменованими настановними параметрами. В цьому варіанті 65 щонайменше один алгоритм, що використовує залежні функції, розкладається на залежні функції так, що принаймні одна з них заміняється залежною функцією того ж сімейства, замість того, щоб зберігати декілька входжень тієї самої залежної функції. З цією метою команди запуску з перейменованими настановними параметрами модифікуються, щоб урахувати заміну залежних функцій на залежні функції того ж сімейства.
Іншими словами, дві залежні функції з одного сімейства мають різні настановні параметри й, отже, команди запуску з різними перейменованими настановними параметрами. Тому при вивченні захищеної програми 2р не є можливим виявити, чи є викликані залежні функції алгоритмічно еквівалентними.
Відповідно до першої кращої реалізації варіанта принципу захисту за допомогою перейменування визначається, щонайменше для однієї залежної функції, алгоритмічно еквівалентне сімейство залежних функцій, за допомогою зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що 7/0 виконується у пристрої 6.
Відповідно до другої кращої реалізації варіанта принципу захисту за допомогою перейменування щонайменше для однієї залежної функції визначається алгоритмічно еквівалентне сімейство залежних функцій з використанням полів ідентифікації.
Відповідно до кращого варіанта реалізації принципу захисту за допомогою перейменування як методу /5 перейменування настановних параметрів задається метод кодування, що дозволяє кодувати настановні параметри для їхнього перетворення на перейменовані настановні параметри. Слід нагадати, що перейменування настановних параметрів здійснюється у фазі Р захисту. Для цього кращого варіанта засоби 20 відновлення являють собою засоби, що застосовують метод декодування, що дозволяє декодувати перейменовані настановні параметри і відновити таким чином ідентичність залежних функцій, що їх слід 2о Виконати у пристрої 6. Ці засоби відновлення застосовуються у пристрої 6 і можуть бути як програмними, так і апаратними. Засоби 20 відновлення запитуються у фазі Ю використання щоразу, коли команда запуску з перейменованими настановними параметрами виконується в системі З обробки даних з метою викликати у пристрої б виконання залежної функції.
Відповідно до іншої кращої характеристики винаходу спосіб захисту спрямований на реалізацію принципу сч ов Захисту, названого "умовним переходом", опис якого проілюстровано Фіг.90-92.
Для реалізації принципу захисту за допомогою умовного переходу у вихідному коді 2у85 уразливої програми і) вибирається щонайменше один умовний перехід ВС. Вибирається також щонайменше один фрагмент вихідного коду 2уз уразливої програми, яка містить щонайменше один вибраний умовний перехід ВС.
У даному варіанті щонайменше один вибраний фрагмент коду 2уз уразливої програми модифікується, щоб М зо одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми 2р: со - щонайменше один фрагмент першої виконуваної частини 2рез, яка виконується в системі З обробки даних, «- ураховує те, що функціональна можливість щонайменше одного вибраного умовного переходу ВС виконується у пристрої 6; ї- - друга виконувана частина 2рец, яка виконується у пристрої 6, виконує щонайменше функціональну ї- можливість щонайменше одного вибраного умовного переходу ВС і надає системі З обробки даних інформацію, що дозволяє першій виконуваній частині 2рез продовжити своє виконання у вибраному місці.
Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує команди умовних переходів, що викликає у пристрої б виконання, за допомогою другої виконуваної частини « 2рем, винесених умовних переходів рс, функціональні можливості яких еквівалентні функціональним з с можливостям вибраних умовних переходів ВС. Для реалізації принципу захисту за допомогою умовного переходу пристрій 6 містить засоби 15 запам'ятовування і засоби 16 обробки. ;» На Фіг.90 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу має місце умовний перехід ВС, що вказує вразливій програмі 2у місце, де варто продовжити її виконання, а саме одне з трьох можливих місць В, Во або Вз. Слід -І розуміти, що умовний перехід ВС приймає рішення продовжити виконання програми в місці В., Во або Вз.
На Фіг.91 наведений приклад реалізації винаходу, в якому умовний перехід, відібраний для переносу в
Ш- пристрій 6, відповідає умовному переходові ВС. - У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної 5р програми 2р у присутності пристрою 6 мають місце: со - у момент Її - виконання команди СВС 3 умовного переходу, що викликає у пристрої б виконання, за "М допомогою другої виконуваної частини 2реш, винесеного умовного переходу рс, алгоритмічно еквівалентного умовному переходові ВС, причому ця команда СВО. умовного переходу подана як ТКІС(БЬс); - І у момент ї5 - передача пристроєм 6 системі З обробки даних інформації, що дозволяє першій виконуваній дв частини 2рез продовжити своє виконання у вибраному місці, а саме В., В» або В».
Слід зазначити, що в ході виконання фрагмента першої виконуваної частини 2рез захищеної програми 2р (Ф, команди умовних переходів, які виконуються в системі З обробки даних, запускають виконання відповідних ка винесених умовних переходів у пристрої 6. Таким чином, вважається, що в присутності пристрою б ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною. во На Фіг.92 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: - у момент і виконання команди СВС. умовного переходу не може викликати виконання винесеного умовного переходу Ббс, з огляду на відсутність пристрою 6; - і у момент їй спроба передачі інформації, що дозволяє першій виконуваній частині 2рез продовжити 65 Виконання у вибраному місці не може бути успішною у зв'язку з відсутністю пристрою 6.
Таким чином, за відсутності пристрою б щонайменше один запит одного фрагмента першої виконуваної частини 2рез на запуск виконання винесеного умовного переходу у пристрої 6 не може бути коректно виконаний.
Тому щонайменше ця частина не виконується коректно й, отже, захищена програма 2р не є повнофункціональною.
У попередньому описі, проїілюстрованому на Фіг.90-92, даний винахід спрямований на винесення у пристрій 6 одного умовного переходу. Зрозуміло, кращий варіант здійснення винаходу може полягати в передачі у пристрій 6 серії умовних переходів, глобальні функціональні можливості яких еквівалентні ансамблю функціональних можливостей винесених умовних переходів. Виконання глобальних функціональних можливостей цієї серії винесених умовних переходів приводить до того, що системі З обробки даних дається інформація, що дозволяє 70 першій виконуваній частині 2рез захищеної програми 2р продовжити своє виконання у вибраному місці.
У попередньому описі, проїлюстрованому Фіг.40-92, чотири різні принципи захисту програми були пояснені в загальному вигляді незалежно одне від іншого. Спосіб захисту згідно з винаходом може бути реалізований із застосуванням принципу захисту за допомогою детектування й примусу, до якого можна додати один або декілька інших принципів захисту. В разі, коли принцип захисту за допомогою детектування й примусу /5 доповнюється реалізацією щонайменше одного іншого принципу захисту, принцип захисту за допомогою детектування й примусу бажано доповнити принципом захисту за допомогою змінної і/або принципом захисту за допомогою перейменування, і/або принципом захисту за допомогою умовного переходу.
Якщо таким чином застосовується принцип захисту за допомогою перейменування, то він може бути доповнений, у свою чергу, принципом захисту за допомогою умовного переходу.
Відповідно до кращого варіанта реалізації принцип захисту за допомогою детектування й примусу доповнюється принципом захисту за допомогою змінної і принципом захисту за допомогою перейменування, доповненим принципом захисту за допомогою умовного переходу.
У випадку, коли на додаток до принципу захисту за допомогою детектування й примусу застосований якийсь інший принцип захисту, щоб врахувати таку комбіновану реалізацію винаходу, вищенаведений опис має містити с ов такі модифікації: о - поняття вразливої програми має розумітися в сенсі вразливості програми відносно до описуваного принципу захисту. Так, у випадку, коли принцип захисту вже було застосовано до вразливої програми, вираз "вразлива програма" має інтерпретуватися як вираз "програма, захищена за допомогою одного або декількох уже застосованих принципів захисту"; М зо - поняття захищеної програми має розумітися в сенсі захищеності програми відносно до описуваного принципу захисту. Так, у випадку, коли принцип захисту вже було застосовано, вираз "захищена програма" має со інтерпретуватися читачем як вираз "нова версія захищеної програми"; «- - один або декілька виборів, зроблений (зроблені) для реалізації описуваного принципу захисту, має (мають) враховувати вибір (вибори), зроблений (зроблені) для реалізації вже застосованого (застосованих) ї-
Зз5 ОДНОГО або декількох принципів захисту. ча
Подальший опис дозволяє краще зрозуміти реалізацію способу захисту згідно з винаходом. У цьому способі згідно з винаходом здійснюють, як це уточнюється на Фіг.100: - спочатку фазу Р захисту, в ході якої вразлива програма 2М перетворюється на захищену програму 2р; - потім фазу ОО використання, в ході якої захищена програма 2р використовується, причому у фазі «
Використання: в с - у присутності пристрою б кожного разу, коли цього вимагає фрагмент першої виконуваної частини 2рез, виконуваної в системі З обробки даних, належна функціональна можливість виконується у пристрої 6 таким ;» чином, що ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною, - за відсутності пристрою 6, незважаючи на запит фрагмента першої виконуваної частини 2рез на виконання функціональної можливості у пристрої 6, цей запит не може бути коректно задоволений, так що принаймні ця -І частина не виконується коректно й, отже, захищена програма 2р не є повнофункціональною; - ), можливо, фазу К перезавантаження, в ході якої вирішується щонайменше одне додаткове використання
Ш- функціональної можливості, захищеної шляхом реалізації другого кращого варіанта реалізації принципу захисту - за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю.
Фаза Р захисту може бути розкладена на дві підфази Р. і Ро захисту. Перша, названа вхідною, підфаза Р. со захисту реалізується незалежно від підлягаючої захисту вразливої програми 2М. Друга, названа вихідною, "М підфаза Ро захисту залежить від підлягаючої захисту вразливої програми 2М. Слід зазначити, що вхідна і вихідна підфази Р. і Ро захисту можуть бути реалізовані двома різноманітними особами або групами. Наприклад, вхідна підфаза Р. захисту може бути реалізована співробітником або організацією, що здійснюють розробку ов бистем захисту програм, тоді як вихідна підфаза Р » захисту може бути реалізована співробітником або організацією, що здійснюють розробку програм, що їх потрібно захистити. Зрозуміло, ясно, що вхідна і вихідна
Ф) підфази Р. і Ро захисту можуть бути реалізовані й одним співробітником або однією організацією. ка Вхідна підфаза Р. захисту задіює декілька стадій 544, Зі), ДЛЯ КОЖНОЇ з яких необхідно виконати декілька задач або завдань. во Перша стадія цієї вхідної підфази Р. захисту називається "стадією 544 визначень". У ході цієї стадії 5414 визначень: - вибираються: -тип пристрою 6 (наприклад, як пристрій 6 можна вибрати пристрій 8 читання карт із мікрочипом і карту з мікрочипом, зв'язану з пристроєм 8 читання), 65 - і засоби 12, 13 передачі, призначені для застосування відповідно в системі З обробки даних і у пристрої б у фазі О використання й що здатні забезпечувати передачу даних між системою З обробки даних і пристроєм 6;
- визначаються: - щонайменше одна характеристика виконання програми, яка може бути проконтрольована, щонайменше частково, у пристрої 6, - щонайменше один критерій, що його слід дотримуватися щонайменше для однієї характеристики виконання програми, - засоби 17 детектування, що їх необхідно застосовувати у пристрої б і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформувати систему то З обробки даних і/або модифікувати хід виконання програми, якщо хоча б одного критерію не дотримано; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, мають визначатися також: - як характеристика виконання програми, яка може бути проконтрольована, - змінна для кількісного контролю /5 Використання однієї функціональної можливості програми, - як критерій, що його необхідно дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною змінною для кількісного контролю, - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; - причому в разі, коли спосіб захисту згідно з винаходом задіює перший кращий варіант реалізації принципу го Захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, мають передбачатися також: - щонайменше для однієї змінної для кількісного контролю - декілька відповідних порогових значень, - Ї різноманітні засоби примусу, що відповідають кожному з цих порогових значень; - причому в разі, коли спосіб захисту згідно з винаходом задіює другий кращий варіант реалізації принципу сч ов Захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, передбачаються також засоби перезавантаження, що дозволяють щонайменше і) одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування (М зо й примусу, що використовує як характеристику профіль використання програми, мають передбачатися також: - як характеристика виконання програми, що може бути проконтрольована, - профіль використання програми, со - і як критерій, що його слід дотримуватися, - щонайменше одна ознака виконання програми; «- - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання, -
Зз5 мають передбачатися також: ча - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої 6, - набір команд інструкцій для зазначеного набору інструкцій, причому ці команди інструкцій можуть бути виконані в системі З обробки даних, викликаючи у пристрої 6 виконання інструкцій, - як профіль використання - зчеплення інструкцій, « - якознака виконання - бажане зчеплення для виконання інструкцій, в с - як засоби 17 детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному, ;» - і як засоби 18 примусу - засоби, що дозволяють інформувати систему З обробки даних і/або модифікувати функціонування фрагмента захищеної програми 2р, якщо зчеплення інструкцій не відповідає бажаному; - а у випадку, коли спосіб захисту згідно з винаходом задіює кращий варіант реалізації принципу захисту -І за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання, мають передбачатися також:
Ш- - як набір інструкцій - набір інструкцій, з якого щонайменше деякі інструкції працюють на регістрах і - використовують щонайменше один операнд для видачі результату щонайменше для однієї частини інструкцій, що працюють на регістрах: со - частина РЕ, що задає функціональну можливість інструкції, "М - їчастина, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, що відповідають: - полю СП ідентифікації інструкції, - і для кожного операнду інструкції: - полю СО, прапора, - ї полю СІР, ідентифікації, передбаченої для операнда,
Ф) - для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле ка СІбу, генерованої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у цей регістр, во - як засоби 17 детектування - засоби, що дозволяють у ході виконання інструкції для кожного операнда, якщо цього вимагає поле СО, прапора, контролювати рівність між полем СібСу, генерованої ідентифікації, що відповідає регістру, використовуваному цим операндом, і полем СІРу передбаченої ідентифікації початкової адреси цього операнда, - і як засоби 18 примусу - засоби, що дозволяють модифікувати результат інструкції, якщо принаймні одна з 65 / Контрольованих рівностей хибна; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою перейменування, мають передбачатися також: - як команда запуску - елементарна команда або команда інструкції, - як залежна функція - елементарна функція або інструкція, - як настановний параметр, - щонайменше один аргумент для команди запуску, що відповідає, принаймні частково, інформації, переданій системою З обробки даних на пристрій 6, щоб викликати запуск відповідної залежної функції, - метод перейменування настановних параметрів, що дозволяє перейменувати настановні параметри, щоб одержати команди запуску з перейменованими параметрами, 70 - і засоби 20 відновлення, призначені для застосування у пристрої 6 у фазі О використання і що дозволяють знову знайти залежну функцію, що її слід виконати, виходячи з перейменованого настановного параметра, - причому в разі, коли спосіб захисту згідно з винаходом задіює варіант принципу захисту за допомогою перейменування, визначається також, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані настановні параметри /5 ЯКИХ Є різними, - а у випадку, коли спосіб захисту згідно з винаходом, задіює ту або іншу кращу реалізацію варіанта принципу захисту за допомогою перейменування, визначається також, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій: - за допомогою зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що виконується у пристрої 6, - або за допомогою використання поля СІ! ідентифікації інструкції і поля СІР у передбаченої ідентифікації операндів; - причому в разі, коли спосіб захисту згідно з винаходом задіює кращий варіант принципу захисту за допомогою перейменування, мають передбачатися також: с - як метод перейменування настановних параметрів - метод кодування для кодування настановних о параметрів, - і як засоби 20 відновлення - засоби, що застосовують метод декодування для розкодування перейменованих настановних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої 6. М зо У ході вхідної підфази захисту за стадією 544 визначення випливає стадія, названа "стадія З 42 конструювання". В ході такої стадії 542 конструюються засоби 12, 13 передачі й, можливо, засоби експлуатації, со що відповідають визначенням стадії 544 визначення. «-
В ході цієї стадії 542 конструювання приступають, отже: - до конструювання засобів 12, 13 передачі, що дозволяють, у ході фази О використання, здійснювати в. зв передачу даних між системою З обробки даних і пристроєм 6; ї- - до побудови: - засобів експлуатації, що дозволяють пристрою 6 у фазі О використання задіяти засоби 17 детектування й засоби 18 примусу, - і, можливо, засобів експлуатації, що дозволяють пристрою 6 у фазі ОО використання також задіяти засоби « відновлення, з с - а також, можливо, засобів експлуатації, що дозволяють пристрою 6 у фазі перезавантаження задіяти також засоби перезавантаження, ;» - а також, можливо, засобів експлуатації, що дозволяють пристрою б у фазі ОО використання виконувати інструкції з набору інструкцій; - Її (якщо також застосовується принцип захисту за допомогою перейменування) до побудови засобів -І експлуатації, що дозволяють пристрою 6 у фазі ) використання задіяти також засоби відновлення.
Конструювання засобів експлуатації здійснюють звичайним чином, за допомогою пристрою розробки програм
Ш- з урахуванням визначень, уведених на стадії 544 визначень. Подібний пристрій описано далі та проілюстровано - Фіг.110.
У ході вхідної підфази Р. захисту за стадією 541» конструювання може йти стадія, названа "стадією зЗ 43 со передперсоналізації". В ході цієї стадії 513 передперсоналізації щонайменше засоби 13 передачі й засоби "М експлуатації завантажуються щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один передперсоналізований пристрій 66. Слід відзначити, що частина засобів експлуатації, бувши перенесена в передперсоналізований пристрій 66, більш недосяжна безпосередньо ззовні цього передперсоналізованого ов пристрою 66. Передача засобів експлуатації в незадіяний пристрій 60 може реалізуватися за допомогою адаптованого пристрою передперсоналізації, що його описано далі і проілюстровано Фіг.120. У випадку
Ф) передперсоналізованого пристрою 6б, що складається з карти 7 з мікрочипом і пристрою 8 її читання, ка передперсоналізація стосується тільки карти 7 з мікрочипом.
У ході вхідної підфази Р. захисту, після стадії 544 визначень і, можливо, після стадії 542 конструювання, може во здійснюватися також стадія, названа "стадією З 44 виготовлення засобів". У ході цієї стадії З 44 виготовлення засобів виробляються засоби, що дозволяють допомогти створенню захищених програм або автоматизувати захист програм. Такі засоби дозволяють: - допомогти вибрати або автоматично вибрати в уразливій програмі 2уУ, що її слід захистити: - одну або декілька характеристик виконання, що їх необхідно проконтролювати, і, можливо, один або 65 декілька алгоритмів, які можуть розкладатися на інструкції, що їх можна винести у пристрій 6, - фрагменти, які можуть бути змінені,
- якщо також застосовується принцип захисту за допомогою змінної, - одну або декілька змінних, які можуть бути винесені у пристрій 6, - якщо також застосовується принцип захисту за допомогою перейменування, - один або декілька алгоритмів, які можуть розкладатися на залежні функції, що їх можна винести у пристрій 6 і для яких настановні параметри команд запуску можуть бути перейменовані, - ії, якщо також застосовується принцип захисту за допомогою умовного переходу, - один або декілька умовних переходів, функціональна можливість яких може бути винесена в пристрій 6; - м, можливо, допомогти створити захищені програми або автоматизувати захист програм. 70 Ці різноманітні засоби можуть реалізуватися незалежно або в поєднанні, причому кожен засіб може приймати різноманітні форми, наприклад являти собою перепроцесор, асемблер, компілятор тощо.
За вхідною підфазою Р. захисту випливає вихідна підфаза Ро захисту, що залежить від підлягаючої захисту вразливої програми 2у. Ця вихідна підфаза Р » захисту також передбачає декілька стадій. Перша стадія, що відповідає реалізації принципу захисту за допомогою детектування й примусу, називається "стадією 5 21 7/5 створення". В ході цієї стадії З 24 створення використовується вибір, зроблений на стадії 5 44 визначень. За допомогою цього вибору і, можливо, засобів, сконструйованих на стадії 544 виготовлення засобів, захищена програма 2р створюється: - за допомогою вибору серед характеристик виконання, які можуть бути проконтрольовані, щонайменше однієї характеристики виконання контрольованої програми; - за допомогою вибору щонайменше одного критерію, який має виконуватися, щонайменше для однієї вибраної характеристики виконання програми; - за допомогою вибору щонайменше одного алгоритму, який у ході виконання вразливої програми 2У використовує щонайменше один операнд і дозволяє одержати щонайменше один результат і для якого слід контролювати щонайменше одну характеристику виконання вибраної програми, с - за допомогою вибору щонайменше одного фрагмента коду 2у5 уразливої програми, що містить щонайменше один вибраний алгоритм, і) - за допомогою створення вихідного коду 2рз захищеної програми на основі коду вразливої програми 2у модифікацією щонайменше одного вибраного фрагмента коду 2у5з уразливої програми, щоб одержати щонайменше один модифікований фрагмент коду 2рз захищеної програми, причому ця модифікація така, що: М зо - в ході виконання захищеної програми 2р перша виконувана частина 2рез виконується в системі З обробки даних, а друга виконувана частина 2реи виконується у пристрої 6, отриманому з незадіяного пристрою 60 після со завантаження інформації, «- - друга виконувана частина 2ре виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму, - - Її в ході виконання захищеної програми 2р щонайменше одна вибрана характеристика виконання ча контролюється за допомогою другої виконуваної частини 2реи і недотримання критерію приводить до модифікації виконання захищеної програми 2р; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому перша частина 2роз об'єктного коду « 70 така, що в ході виконання захищеної програми 2р реалізується перша виконувана частина 2рез, яка виконується 7-3) с в системі З обробки даних, і щонайменше частина якої враховує, що контролюється щонайменше одна
Й характеристика виконання вибраної програми, и?» - і другої частини 2рои об'єктного коду захищеної програми 2р, що містить засоби експлуатації, що дозволяють застосовувати також засоби 17 детектування і засоби 18 примусу, причому друга частина 2роци об'єктного коду така, що після завантаження в незадіяний пристрій 60, у ході виконання захищеної програми 2р -І реалізується друга виконувана частина 2реу, за допомогою якої контролюється щонайменше одна характеристика виконання програми, і за допомогою якої недотримання критерію приводить до модифікації
Ш- виконання захищеної програми 2р. - Зрозуміло, принцип захисту за допомогою детектування й примусу згідно з винаходом може бути застосований безпосередньо в ході розробки нової програми без необхідності попередньої реалізації вразливої со програми 2у. У цьому випадку безпосередньо одержують захищену програму 2р.
І Для реалізації принципу захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, захищена програма 2р модифікується: - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної дв для кількісного контролю використання однієї функціональної можливості програми; - за допомогою вибору:
Ф) - щонайменше однієї функціональної можливості захищеної програми 2р, використання якої можна ка проконтролювати з використанням змінної для кількісного контролю, - щонайменше однієї змінної для кількісного контролю, яка служить як кількісна характеристика бо використання згаданої функціональної можливості, - щонайменше одного порогового значення, зв'язаного з вибраною змінною для кількісного контролю і відповідного межі використання згаданої функціональної можливості, - Її щонайменше одного методу поновлення значення змінної для кількісного контролю відповідно до використання згаданої функціональної можливості; 65 - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини 2реи, залежно від використання згаданої функціональної можливості, і враховується щонайменше одне перевищення порогового значення.
Для реалізації першого кращого варіанта принципу захисту за допомогою детектування й примусу, що
Використовує як характеристику змінну для кількісного контролю, захищена програма 2р модифікується: - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї змінної для кількісного контролю, з якою мають зв'язуватися декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості; - за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного 7/0 Контролю; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини 2реи різним способом.
Для реалізації другого кращого варіанта принципу захисту за допомогою детектування й примусу, що /5 Використовує як характеристику змінну для кількісного контролю, захищена програма 2р модифікується: - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання функціональної можливості, для якої має існувати можливість дозволити щонайменше одне додаткове використання; - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому ця модифікація така, що у фазі, названій фазою перезавантаження, щонайменше одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене.
Для реалізації принципу захисту за допомогою детектування й примусу, що використовує як характеристику профіль використання програми, захищена програма 2р модифікується: сч - за допомогою вибору як характеристики виконання контрольованої програми щонайменше профілю о використання програми; - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, М зо причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи дотримується всіх вибраних ознак виконання. со
Для реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід «- дотримуватися, використовується контроль зчеплення виконання, захищена програма 2р модифікується: - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, ї- зв причому ця модифікація така, що: ї- - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми 2р цей алгоритм виконується за допомогою другої виконуваної частини 2реци, із застосуванням інструкцій, - щонайменше для одного вибраного алгоритму команди інструкцій інтегруються у вихідний код 2рз « захищеної програми таким чином, що в ході виконання захищеної програми 2р кожна команда інструкції з с виконується за допомогою першої виконуваної частини 2рез і викликає у пристрої 6 виконання інструкції за допомогою другої виконуваної частини 2реи, ;» - впорядкування команд інструкцій вибирається серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р, - і визначене зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій у ході їхнього -І виконання у пристрої 6.
У ході вихідної підфази Р» захисту, в разі, коли застосований щонайменше один інший принцип захисту, на
Ш- додаток до принципу захисту за допомогою детектування й примусу, реалізується "стадія З 2о модифікації". В - ході цієї стадії Зоо модифікації використовуються визначення, введені на стадії 544 визначень. З використанням дор ЧИХ визначень і, можливо, засобів, сконструйованих на стадії 544 виготовлення засобів, захищена програма 2р со модифікується таким чином, щоб дозволити реалізувати принципи захисту відповідно до одного з компонувань,
І визначених вище.
Коли застосовується принцип захисту за допомогою змінної, то захищена програма 2р модифікується: - за допомогою вибору щонайменше однієї змінної, використовуваної щонайменше в одному вибраному ов алгоритмі, яка в ході виконання захищеної програми 2р частково визначає стан захищеної програми 2р, - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми,
Ф) причому ця модифікація така, що в ході виконання захищеної програми 2р щонайменше одна вибрана змінна ка або одна копія вибраної змінної знаходиться у пристрої 6, - і за допомогою створення: во - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р щонайменше один фрагмент першої виконуваної частини 2рез враховує, що принаймні одна змінна або щонайменше одна копія змінної знаходиться у пристрої 6, - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного коду така, що після завантаження в пристрій 6 і в ході виконання захищеної програми 2р реалізується друга 65 виконувана частина 2реш, за допомогою якої щонайменше одна вибрана змінна або щонайменше одна копія вибраної змінної також знаходиться у пристрої 6.
Коли застосовується принцип захисту за допомогою перейменування, захищена програма 2р модифікується: - за допомогою вибору у вихідному коді 2рз захищеної програми команд запуску; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми за допомогою перейменування настановних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р виконуються команди запуску з перейменованими /о настановними параметрами, - і другої частини 2рои об'єктного коду захищеної програми 2р, що містить засоби експлуатації, що використовують також засоби 20 відновлення, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р ідентичність залежних функцій, виконання яких запускається першою виконуваною частиною 2рез, відновлюється за допомогою другої виконуваної частини 7/5 2ренм, а залежні функції виконуються за допомогою другої виконуваної частини 2реи.
Для реалізації варіанта принципу захисту перейменуванням захищена програма 2р модифікується: - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї команди запуску з перейменованими настановними параметрами; - і за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми за допомогою заміни щонайменше перейменованого настановного параметра команди запуску з вибраним настановним параметром на інший перейменований настановний параметр, що викликає запуск залежної функції, з того ж сімейства.
Коли застосовується принцип захисту за допомогою умовного переходу, захищена програма 2р модифікується: сч - за допомогою вибору у вихідному коді 2рх захищеної програми щонайменше одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі; і) - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше одного вибраного умовного переходу виконується за допомогою другої виконуваної частини 2ресу М. зо пристрої 6; - і за допомогою створення: со - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного «- коду така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої 6, - - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного ї- коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2реш, за допомогою якої виконується функціональна можливість щонайменше одного вибраного умовного переходу.
Для кращої реалізації принципу захисту за допомогою умовного переходу захищена програма 2р « модифікується: з с - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї серії вибраних умовних . переходів; и?» - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується за допомогою другої виконуваної частини -І 2реи у пристрої 6; - і за допомогою створення:
Ш- - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного - коду така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше однієї вибраної 5ор берії умовних переходів виконується у пристрої 6, со - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного "М коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2рец, за допомогою якої виконується глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів. 5Б Зрозуміло, принципи захисту згідно з винаходом можуть застосовуватися безпосередньо в ході розробки нової програми без попередньої реалізації проміжних уразливих програм. Таким чином, стадії 524 створення і 522
Ф) модифікації можуть бути здійснені одночасно, щоб відразу одержати захищену програму 2р. ка Під час вихідної під фази Ро захисту після стадії 524 створення захищеної програми 2р і, можливо, після стадії Зо» модифікації реалізується стадія, названа "стадією З 23 персоналізації" В ході цієї стадії З2з бо персоналізації друга частина 2роцй об'єктного коду, що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один пристрій 6. Альтернативно, частина другої частини 2рои об'єктного коду, що, можливо, містить засоби експлуатації, завантажується щонайменше в один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6.
Завантаження цієї персоналізуючої інформації дозволяє зробити працездатним щонайменше один пристрій 6. 65 Слід зазначити, що частина цієї інформації, бувши перенесеною у пристрій 6, недосяжна безпосередньо ззовні цього пристрою 6. Передача інформації персоналізації в незадіяний пристрій 60 або в передперсоналізований пристрій 66 може бути реалізована за допомогою адаптованого пристрою персоналізації, що його описано далі і проілюстровано Фіг.150. У разі пристрою б, що складається з карти 7 з мікрочипом і пристрою 8 її читання, персоналізація стосується тільки карти 7 з мікрочипом.
Різноманітні технічні засоби для реалізації фази Р захисту, які далі будуть описані докладніше, проілюстровані Фіг.110, 120, 130, 140 і 150.
На Фіг.110 наведений приклад реалізації системи 25, що дозволяє реалізувати стадію 542 конструювання з урахуванням визначень, уведених на стадії 544 визначень, і в ході якої конструюються засоби 12, 13 передачі й, можливо, засоби експлуатації, призначені для пристрою 6. Подібна система 25 містить пристрій розробки 7/0 програм або робочу станцію, що звичайно представляє собою комп'ютер, який має системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому встановлені такі програми: файлові редактори, асемблери, перепроцесори, компілятори, інтерпретатори, налагоджувані і редактори зв'язків.
На Фіг.120 наведений приклад реалізації пристрою 30 перед-персоналізації що дозволяє завантажити, щонайменше частково, засоби 13 передачі та/або засоби експлуатації щонайменше в один незадіяний пристрій 7/5. 50, щоб одержати щонайменше передперсоналізований пристрій 66. Пристрій 30 передперсоналізації містить засіб 31 читання-запису, що дозволяє електрично передперсоналізувати незадіяний пристрій 60, щоб одержати передперсоналізований пристрій 66, у який завантажені засоби 13 передачі і/або засоби експлуатації. Пристрій
ЗО передперсоналізації може також містити фізичні засоби 32 передперсоналізації незадіяного пристрою 60, що являють собою, наприклад, принтер. У випадку, якщо пристрій 6 складається з карти 7 з мікрочипом і пристрою 8 її читання, передперсоналізація стосується звичайно тільки карти 7 з мікрочипом.
На Фіг.130 наведений приклад реалізації системи 35, що дозволяє здійснити виготовлення засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм. Подібна система 35 містить пристрій розробки програм або робочої станції, що звичайно представляє собою комп'ютер, який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому є такі програми: сч файлові редактори, асемблери, перепроцесори, компілятори, інтерпретатори, налагоджувачі і редактори зв'язків. і)
На Фіг.140 наведений приклад реалізації системи 40, що дозволяє безпосередньо одержати захищену програму 2р або модифікувати вразливу програму 2у з метою одержати захищену програму 2р. Подібна система 40 включає пристрій розробки програми або робочу станцію, що звичайно представляє собою комп'ютер, що має М зо системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому встановлені такі програми: файлові редактори, асемблери, перепроцесори, компілятори, інтерпретатори, налагоджувані і редактори со зв'язків, а також засоби, що допомагають при створенні захищених програм або автоматизації захисту програм. «-
На Фіг.150 наведений приклад реалізації пристрою 45 персоналізації що дозволяє завантажити другу частину 2рои об'єктного коду щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один ї- пристрій б, або частину другої частини 2рои об'єктного коду щонайменше в один передперсоналізований ї- пристрій 66, щоб одержати щонайменше один пристрій 6. Цей пристрій 45 персоналізації містить засіб 46 читання-запису, що дозволяє електрично персоналізувати щонайменше один незадіяний пристрій 60 або щонайменше один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. По завершенні цієї персоналізації пристрій 6 містить інформацію, необхідну для виконання захищеної програми 2р. «
Пристрій 45 персоналізації може також містити фізичні засоби 47 персоналізації щонайменше для одного з с пристрою б, що являють собою, наприклад, принтер. У випадку, якщо пристрій 6 складається з карти 7 з мікрочипом і пристрою 8 її читання, персоналізація стосується звичайно тільки карти 7 з мікрочипом. ;» Спосіб захисту згідно з винаходом може реалізовуватися з додатковими вдосконаленнями. - Можна передбачити спільне використання множини пристроїв обробки і зберігання, між якими розподілена друга частина 2рош об'єктного коду захищеної програми 2р таким чином, що їхнє спільне виконання дозволяє -І виконати захищену програму 2р, відсутність же щонайменше одного з цих пристроїв обробки і зберігання перешкоджає використанню захищеної програми гр.
Ш- - Аналогічно, після стадії 543 передперсоналізації й у ході стадії 523 персоналізації частина другої частини - 2рои об'єктного коду, необхідна для перетворення передперсоналізованого пристрою 66 на пристрій 6, може 5р Міститися у пристрої обробки й зберігання, використовуваному пристроєм 45 персоналізації, щоб обмежити со доступ до цієї частини другої частини 2рои об'єктного коду. Зрозуміло, ця частина другої частини 2рои
І об'єктного коду може бути розподілена між декількома пристроями обробки і зберігання таким чином, щоб ця частина другої частини 2рои об'єктного коду була досяжною тільки під час спільного використання цих пристроїв обробки і зберігання.
Ф!
Claims (21)
1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить принаймні засоби во (15) запам'ятовування і засоби (16) обробки, від неавторизованого використання уразливої програми (2у), яка функціонує на системі (3) обробки даних, який полягає в тому, що: а у фазі (Р) захисту: "- визначають: - щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше бе /Мастково, у пристрої (6), Й Й - щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання програми, - засоби (17) детектування, що їх слід застосовувати у пристрої (б) і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби (18) примусу, що їх слід застосовувати у пристрої (6) і які дозволяють проінформувати систему (3) обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію; « конструюють засоби експлуатації, що дозволяють пристрою (б) задіяти засоби (17) детектування й засоби (18) примусу; створюють захищену програму (2р): 70 - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми з характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми, - за допомогою вибору щонайменше одного алгоритму, який у ході виконання уразливої програми (2м) /5 Використовує щонайменше один операнд і дозволяє одержати щонайменше один результат і для якого слід контролювати щонайменше одну характеристику виконання вибраної програми, - за допомогою вибору щонайменше одного фрагмента коду (2у5) уразливої програми, що містить щонайменше один вибраний алгоритм, - за допомогою створення вихідного коду (2рв) захищеної програми на основі коду уразливої програми (2уУ) Модифікацією щонайменше одного вибраного фрагмента коду (2у5) уразливої програми, щоб одержати щонайменше один модифікований фрагмент коду (2рз) захищеної програми, причому ця модифікація така, що: Ш в ході виконання захищеної програми (2р) перша виконувана частина (2рез) виконується в системі (3) обробки даних, а друга виконувана частина (2рей) виконується у пристрої (6), отриманому з незадіяного пристрою (60) після завантаження інформації, сч Ш друга виконувана частина (2рей) виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму, і) Ш ї в ході виконання захищеної програми (23) щонайменше одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини (2рец), і недотримання критерію приводить до модифікації виконання захищеної програми (2р); М зо - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного со коду така, що в ході виконання захищеної програми (2р) реалізується перша виконувана частина (2рев), яка «- виконується в системі обробки даних (3), ії щонайменше частина якого враховує, що контролюється щонайменше одна характеристика виконання вибраної програми, - Ш ї другої частини (2роий) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, що ї- дозволяють застосовувати також засоби (17) детектування і засоби (18) примусу, причому друга частина (2роц) об'єктного коду така, що після завантаження в незадіяний пристрій (60), у ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої контролюється щонайменше одна характеристика виконання програми і за допомогою якої недотримання критерію приводить до модифікації « Виконання захищеної програми (2р), з с "« ії завантажують другу частину (2роц) об'єктного коду в незадіяний пристрій (60) з одержанням пристрою (б), . а а в фазі ())) використання, в ході якої відбувається виконання захищеної програми (2р): и?» н- за наявності пристрою (6): - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми (2р), дотримано, допускають номінальне функціонування зазначених фрагментів -І захищеної програми (2р) й, отже, номінальне функціонування захищеної програми (2р), - а якщо принаймні одного з критеріїв, що відповідають контрольованій характеристиці виконання одного Ш- фрагмента захищеної програми (2р), не дотримано, інформують систему (3) обробки даних про згадане - недотримання і/або модифікують функціонування фрагмента захищеної програми (2р) таким чином, щоб функціонування захищеної програми (2р) було змінено; со н- тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2рев) на "М запуск виконання у пристрої (6) функціональної можливості вибраного алгоритму, не забезпечується можливість коректно відповісти на цей запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.
2. Спосіб за п. 1, який відрізняється тим, що: щоб обмежити використання захищеної програми (2р), Ф) а у фазі (Р) захисту: ка "- визначають: - як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю бо Використання однієї функціональної можливості програми, - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною змінною для кількісного контролю, - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; « конструюють засоби експлуатації, що дозволяють пристрою (б) застосовувати засоби поновлення; 65 "і модифікують захищену програму (2р): - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної для кількісного контролю використання однієї функціональної можливості програми, - за допомогою вибору: Ш щонайменше однієї функціональної можливості захищеної програми (2р), використання якої можна проконтролювати з використанням змінної для кількісного контролю, Ш щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики використання згаданої функціональної можливості, Ш щонайменше одного порогового значення, зв'язаного з вибраною змінною для кількісного контролю і відповідного межі використання згаданої функціональної можливості, 70 Ш ї щонайменше одного методу поновлення значення вказаної змінної для кількісного контролю залежно від використання вказаної функціональної можливості, - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому згадана модифікація така, що в ході виконання захищеної програми (2р) змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини (2реи), залежно від використання зазначеної 7/5 функціональної можливості, й ураховується щонайменше одне перевищення порогового значення, а а у фазі (0) використання, у присутності пристрою (6), у випадку, коли виявлено щонайменше одне перевищення порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2р) таким чином, щоб функціонування захищеної програми (2р) було змінено.
3. Спосіб за п. 2, який відрізняється тим, що: а у фазі (Р) захисту: "- визначають: - декілька відповідних порогових значень щонайменше для однієї змінної для кількісного контролю, - і різноманітні засоби примусу, що відповідають кожному зі згаданих порогів; сч "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї змінної для кількісного і) контролю, з якою мають зв'язуватися декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості, - за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного ї- зо контролю, - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, со причому зазначена модифікація така, що в ході виконання захищеної програми (2р) перевищення різних «- порогових значень враховуються за допомогою другої виконуваної частини (2рец) різними способами, а а у фазі (3) використання: ї- н- за наявності пристрою (6): ї- - у випадку, коли виявлено перевищення першого порогового значення, дають команду захищеній програмі (2р) не використовувати надалі відповідну функціональну можливість, - а у випадку, коли виявлено перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми (2р). «
4. Спосіб за п. 2 або 3, який відрізняється тим, що: в с а у фазі (Р) захисту: " визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання ;» щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю; « конструюють засоби експлуатації, що дозволяють також пристрою (6) задіяти засоби перезавантаження; -І "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї змінної для кількісного Ш- контролю, що дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість - дозволу, щонайменше на одне додаткове використання, - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому згадана модифікація така, со що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної "М можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволено, а а у фазі перезавантаження: «- поновлюють щонайменше одну вибрану змінну для кількісного контролю і щонайменше одне відповідне Порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості.
5. Спосіб за п. 1, який відрізняється тим, що: Ф) а у фазі (Р) захисту: ка "- визначають: - як характеристику виконання програми, яка може бути проконтрольована, - профіль використання бо програми, - і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми; "і модифікують захищену програму (2р): - за допомогою вибору як характеристики виконання контрольованої програми щонайменше одного профілю використання програми, 65 - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання,
- ії за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому згадана модифікація така, що в ході виконання захищеної програми (2р) друга виконувана частина (2рец) дотримується всіх вибраних ознак виконання, а а у фазі ())) використання, за наявності пристрою (6) у випадку, якщо виявлено, що не дотримано хоча б однієї ознаки виконання, інформують про це систему (3) обробки даних і/або модифікують функціонування частини захищеної програми (2р) так, щоб функціонування захищеної програми (2р) було змінено.
6. Спосіб за п. 5, який відрізняється тим, що: а у фазі (Р) захисту: 70 "- визначають: - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої (б), - набір команд інструкцій для згаданого набору інструкцій, причому команди інструкцій можуть бути виконані в системі (3) обробки даних, викликаючи у пристрої (6) виконання інструкцій, - як профіль використання -- зчеплення інструкцій, - як ознаку виконання - бажане зчеплення для виконання інструкцій, - як засоби (17) детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному, - як засоби (18) примусу - засоби, що дозволяють проінформувати систему (3) обробки даних і/або модифікувати функціонування фрагмента захищеної програми (2р), якщо зчеплення інструкцій не відповідає бажаному; «- конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати інструкції з набору інструкцій, причому виконання зазначених інструкцій викликається виконанням команд інструкцій у системі (3) обробки даних; "і модифікують захищену програму (2р): сч - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми: Ш за допомогою перетворення елементарних функцій на інструкції, і) Ш за допомогою задання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої (б), Ш ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають М зо використовуваним інструкціям, а а у фазі (3) використання, за наявності пристрою (б), у випадку, якщо виявлено, що зчеплення со виконуваних у пристрої (б) інструкцій не відповідає бажаному, інформують про це систему (3) обробки даних - мабо модифікують функціонування фрагмента захищеної програми (2р) так, щоб функціонування захищеної програми (2р) було змінено. ї-
7. Спосіб за п. 6, який відрізняється тим, що: ї- а у фазі (Р) захисту: "- визначають: - як набір інструкцій - набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах, і використовують щонайменше один операнд для видачі результату, « - щонайменше для частини інструкцій, що працюють на регістрах: в с Ш частину (РЕ), що задає функціональну можливість інструкції, Ш їі частину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, що відповідають: ;» - полю (СІЇ) ідентифікації інструкції, - Ї для кожного операнда інструкції: х полю (СО) прапора, -І хі полю (СІР,) ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле Ш- (СІбу) передбаченої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, - що повернула свій результат у вказаний регістр, - як засоби (17) детектування - засоби, що дозволяють під час виконання інструкції для кожного операнда, со коли цього вимагає поле (СО) прапора, контролювати рівність між полем (СІбСу) генерованої ідентифікації, що "М відповідає регістру, використовуваному згаданим операндом, і полем (СІР/) передбаченої ідентифікації початкової адреси цього операнда, - і як засоби (18) примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.
8. Спосіб за будь-яким з пп. 1-7, який відрізняється тим, що: Ф) а у фазі (Р) захисту: ка - модифікують захищену програму (2р): - за допомогою вибору щонайменше однієї змінної, використовуваної щонайменше в одному вибраному бо алгоритмі, яка в ході виконання захищеної програми (2р) частково визначає стан захищеної програми (2р), - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми (2р) щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться у пристрої (б), - і за допомогою створення: 65 Ш першої частини (2ровз) об'єктного коду захищеної програми (2р), причому ця перша частина (2роз) об'єктного коду така, що в ході виконання захищеної програми (2р) щонайменше один фрагмент першої виконуваної частини (2рез) враховує, що принаймні одна змінна або щонайменше одна копія змінної знаходиться у пристрої (б), Ш ї другої частини (2роий) об'єктного коду захищеної програми (2р), причому ця друга частина (2роц) об'єктного коду така, що після завантаження у пристрій (6) і в ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої щонайменше одна вибрана змінна або щонайменше одна копія вибраної змінної також знаходиться у пристрої (б), а а у фазі (3) використання: н- за наявності пристрою (б), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2рез), 7/0 Використовують змінну або копію змінної, що знаходиться у пристрої (6) так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною, - а за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини (2рев) на використання змінної або копії змінної, що знаходиться у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена 7/5 програма (2р) не є повнофункціональною.
9. Спосіб за п. 6, який відрізняється тим, що: а у фазі (Р) захисту: "- визначають: - як команду запуску - команду інструкції, - як залежну функцію -- інструкцію, - як установний параметр, - принаймні один аргумент для команди запуску, що відповідає, щонайменше частково, інформації, переданій системою (3) обробки даних на пристрій (6), щоб викликати запуск відповідної залежної функції, - метод перейменування установних параметрів, що дозволяє перейменувати установні параметри, щоб с одержати команди запуску з перейменованими установними параметрами, - і засоби (20) відновлення, що призначені для застосування у пристрої (6) у фазі (3) використання і що і) дозволяють знайти залежну функцію, що її слід виконати, виходячи з перейменованого установного параметра; « конструюють засоби експлуатації, дозволяють пристрою (б) задіяти засоби відновлення; "і модифікують захищену програму (2р): М зо - за допомогою вибору у вихідному коді (2рз) захищеної програми команд запуску, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми за со допомогою перейменування установних параметрів вибраних команд запуску, щоб приховати ідентичність «- відповідних залежних функцій, - і за допомогою створення: - Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного ї- коду така, що в ході виконання захищеної програми (2р) виконуються команди запуску з перейменованими установними параметрами, Ш Її другої частини (2роц) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, які використовують також засоби (20) відновлення, причому друга частина (2роци) об'єктного коду така, що після « завантаження у пристрій (6), у ході виконання захищеної програми (2р) ідентичність залежних функцій, з с виконання яких викликано першою виконуваною частиною (2рев), відновлюється за допомогою другої . виконуваної частини (2рец), а залежні функції виконуються за допомогою другої виконуваної частини (2рец), и?» а а у фазі (3) використання: "- за наявності пристрою (6), кожного разу, коли цього вимагає команда запуску з перейменованими установними параметрами, що міститься у фрагменті першої виконуваної частини (2рез), відновлюють у -І пристрої (6) ідентичність відповідної залежної функції і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; Ш- н- тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2рев) на - запуск виконання у пристрої (б) залежної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) со не є повнофункціональною. "М
10. Спосіб за п. 9, який відрізняється тим, що: а у фазі (Р) захисту: - визначають, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних 5 функцій, що викликаються командами запуску, перейменовані установні параметри яких є різними; "і модифікують захищену програму (2р): Ф) - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї команди запуску з ка перейменованими установними параметрами, - і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми за бо допомогою заміни щонайменше перейменованого установного параметра команди запуску з вибраним установним параметром на інший перейменований установний параметр, що викликає запуск залежної функції з того ж сімейства.
11. Спосіб за п. 10, який відрізняється тим, що включає: а у фазі (Р) захисту визначення, щонайменше для однієї функції, сімейства алгоритмічно еквівалентних 65 Залежних функцій: - за допомогою зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що виконується у пристрої (б), - або за допомогою використання поля (СІЇ) ідентифікації інструкції і полів (СІР У) ідентифікації, передбачених для операндів.
12. Спосіб за п. 9, 10 або 11, який відрізняється тим, що: а у фазі (Р) захисту визначають: - як метод перейменування установних параметрів - метод кодування для кодування установних параметрів, - їі як засоби (20) відновлення - засоби, що застосовують метод декодування для розкодування перейменованих установних параметрів і відновлення ідентичності залежних функцій, що їх потрібно виконати у 7/о пристрої (6).
13. Спосіб за будь-яким з пп. 1-12, який відрізняється тим, що: а у фазі (Р) захисту: - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше одного умовного переходу, /5 Виконуваного щонайменше в одному вибраному алгоритмі, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми (2р) функціональна можливість щонайменше одного вибраного умовного переходу виконується, за допомогою другої виконуваної частини (2рец), у пристрої (б), - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої (б), Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) сч об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої виконується функціональна можливість і) щонайменше одного вибраного умовного переходу, а а у фазі (3) використання: н- за наявності пристрою (б), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2рез), М зо Виконують у пристрої (6) функції щонайменше одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; со "- а за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2рев) на -д-е виконання функцій умовного переходу у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) - зв НеЄ повнофункціональною. ї-
14. Спосіб за п. 13, який відрізняється тим, що у фазі (Р) захисту модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї серії вибраних умовних переходів, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, « причому згадана модифікація така, що в ході виконання захищеної програми (2р) глобальна функціональна з с можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої (6) за допомогою другої . виконуваної частини (2рец), а - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) функціональна можливість щонайменше однієї вибраної -І серії умовних переходів виконується у пристрої (б), Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) Ш- об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) - реалізується друга виконувана частина (2рецш), за допомогою якої виконується глобальна функціональна 5р Можливість щонайменше однієї вибраної серії умовних переходів. со
15. Спосіб за будь-яким з пп. 1-14, який відрізняється тим, що розкладають фазу (Р) захисту на вхідну "М підфазу (Р.) захисту, не залежну від програми, що захищається, і на вихідну підфазу (Р) захисту, залежну від програми, що захищається.
16. Спосіб за п. 15, який відрізняється тим, що в ході вхідної підфази (Р.) захисту задіюють стадію (544) дв визначень, на якій виконуються всі визначення.
17. Спосіб за п. 16, який відрізняється тим, що після стадії (544) визначень задіюють стадію конструювання Ф) (542), на якій створюються засоби експлуатації. ка
18. Спосіб за п. 17, який відрізняється тим, що після стадії (542) конструювання задіюють стадію (5 45) передперсоналізації, яка полягає в тому, що завантажують у незадіяний пристрій (60) щонайменше частину бр засобів експлуатації, щоб одержати передперсоналізований пристрій (66).
19. Спосіб за п. 16 або 17, який відрізняється тим, що в ході вхідної підфази (Рі) захисту задіюють стадію (544) виготовлення засобів, на якій виготовляються засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.
20. Спосіб за п. 15 або 18, який відрізняється тим, що вихідну підфазу (Ро) захисту розкладають на: 65 н стадію (524) створення, на якій на основі уразливої програми (2у) створюється захищена програма (2р); " можливо, стадію (522) модифікації, на якій модифікується захищена програма (2р);
" і, можливо, стадію (З»2з) персоналізації, на якій: - друга частина (2роц) об'єктного коду захищеної програми (2р), що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій (60), щоб одержати принаймні один пристрій (6), - або друга частина (2роий) об'єктного коду захищеної програми (2р), що, можливо, містить засоби експлуатації, завантажується щонайменше в один передперсоналізований пристрій (66), щоб одержати щонайменше один пристрій (6).
21. Спосіб за п. 19 або 20, який відрізняється тим, що в ході стадії (524) створення і, можливо, стадії (5 22) модифікації використовують щонайменше один із засобів, призначених для використання при створенні /о захищених програм або автоматизації захисту програм. с (8) ча с «- ча і - -
с . и? -І -І - о 50 що Ф) іме) 60 б5
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0110244A FR2828301B1 (fr) | 2001-07-31 | 2001-07-31 | Procede pour proteger un logiciel a l'aide d'un principe dit de "detection et coercition" contre son utilisation non autorisee |
| PCT/FR2002/002343 WO2003012571A2 (fr) | 2001-07-31 | 2002-07-04 | Procede pour proteger un logiciel a l'aide de 'detection et coercition' contre son utilisation non autorisee |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| UA77187C2 true UA77187C2 (en) | 2006-11-15 |
Family
ID=8866119
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| UA2004010473A UA77187C2 (en) | 2001-07-31 | 2002-04-07 | Method for protecting software against unauthorized use by controlling the correspondence with a specified criterion |
Country Status (28)
| Country | Link |
|---|---|
| EP (1) | EP1412838B1 (uk) |
| JP (1) | JP3949104B2 (uk) |
| KR (1) | KR100881733B1 (uk) |
| CN (1) | CN100339778C (uk) |
| AP (1) | AP2055A (uk) |
| AU (1) | AU2002328377B2 (uk) |
| BR (1) | BR0211373A (uk) |
| CA (1) | CA2455626A1 (uk) |
| CO (1) | CO5550507A2 (uk) |
| EA (1) | EA005466B1 (uk) |
| EC (1) | ECSP044952A (uk) |
| ES (1) | ES2529426T3 (uk) |
| FR (1) | FR2828301B1 (uk) |
| GE (1) | GEP20053648B (uk) |
| HR (1) | HRP20040045A2 (uk) |
| HU (1) | HUP0400234A2 (uk) |
| IL (1) | IL159955A0 (uk) |
| IS (1) | IS7120A (uk) |
| MA (1) | MA26122A1 (uk) |
| MX (1) | MXPA04000489A (uk) |
| NO (1) | NO333768B1 (uk) |
| OA (1) | OA12700A (uk) |
| PL (1) | PL371096A1 (uk) |
| RS (1) | RS50234B (uk) |
| TN (1) | TNSN04011A1 (uk) |
| UA (1) | UA77187C2 (uk) |
| WO (1) | WO2003012571A2 (uk) |
| ZA (1) | ZA200400352B (uk) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116343496B (zh) * | 2023-03-28 | 2026-04-28 | 天翼交通科技有限公司 | 一种感知数据处理的方法、装置及设备 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2634917A1 (fr) * | 1988-08-01 | 1990-02-02 | Pionchon Philippe | Procede et dispositif de protection d'un logiciel, en particulier contre les copies non autorisees |
| US4932054A (en) * | 1988-09-16 | 1990-06-05 | Chou Wayne W | Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device |
| US5754646A (en) * | 1995-07-19 | 1998-05-19 | Cable Television Laboratories, Inc. | Method for protecting publicly distributed software |
| US5706426A (en) * | 1996-02-07 | 1998-01-06 | United Microelectronics Corporation | Software protection method and apparatus |
| US6523119B2 (en) * | 1996-12-04 | 2003-02-18 | Rainbow Technologies, Inc. | Software protection device and method |
| JP2002518727A (ja) * | 1998-06-12 | 2002-06-25 | ジェムプリュス | ソフトウェア製品の実行の制御方法 |
-
2001
- 2001-07-31 FR FR0110244A patent/FR2828301B1/fr not_active Expired - Lifetime
-
2002
- 2002-04-07 UA UA2004010473A patent/UA77187C2/uk unknown
- 2002-07-04 KR KR1020047000809A patent/KR100881733B1/ko not_active Expired - Lifetime
- 2002-07-04 GE GE5414A patent/GEP20053648B/en unknown
- 2002-07-04 HR HR20040045A patent/HRP20040045A2/hr not_active Application Discontinuation
- 2002-07-04 EA EA200400058A patent/EA005466B1/ru not_active IP Right Cessation
- 2002-07-04 HU HU0400234A patent/HUP0400234A2/hu unknown
- 2002-07-04 BR BR0211373-2A patent/BR0211373A/pt not_active Application Discontinuation
- 2002-07-04 ES ES02762528.4T patent/ES2529426T3/es not_active Expired - Lifetime
- 2002-07-04 MX MXPA04000489A patent/MXPA04000489A/es not_active Application Discontinuation
- 2002-07-04 OA OA1200400014A patent/OA12700A/en unknown
- 2002-07-04 EP EP02762528.4A patent/EP1412838B1/fr not_active Expired - Lifetime
- 2002-07-04 AP APAP/P/2004/002959A patent/AP2055A/en active
- 2002-07-04 AU AU2002328377A patent/AU2002328377B2/en not_active Expired
- 2002-07-04 CN CNB028146700A patent/CN100339778C/zh not_active Expired - Lifetime
- 2002-07-04 WO PCT/FR2002/002343 patent/WO2003012571A2/fr not_active Ceased
- 2002-07-04 CA CA002455626A patent/CA2455626A1/fr not_active Abandoned
- 2002-07-04 IL IL15995502A patent/IL159955A0/xx unknown
- 2002-07-04 PL PL02371096A patent/PL371096A1/xx not_active Application Discontinuation
- 2002-07-04 JP JP2003517690A patent/JP3949104B2/ja not_active Expired - Lifetime
- 2002-07-04 RS YU5704A patent/RS50234B/sr unknown
-
2004
- 2004-01-16 ZA ZA2004/00352A patent/ZA200400352B/en unknown
- 2004-01-19 NO NO20040229A patent/NO333768B1/no not_active IP Right Cessation
- 2004-01-19 MA MA27488A patent/MA26122A1/fr unknown
- 2004-01-19 TN TNP2004000011A patent/TNSN04011A1/fr unknown
- 2004-01-20 IS IS7120A patent/IS7120A/is unknown
- 2004-01-20 EC EC2004004952A patent/ECSP044952A/es unknown
- 2004-01-20 CO CO04003757A patent/CO5550507A2/es unknown
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5740573B2 (ja) | 情報処理装置および情報処理方法 | |
| US7458100B2 (en) | Adding copy protection to a computer program | |
| US20070294770A1 (en) | Method to Protect Software Against Unwanted Use with a Variable Principle | |
| EP1745340B1 (en) | Intrusion detection during program execution in a computer | |
| JP2001256118A (ja) | マイクロコンピュータシステムの保護方法,メモリ装置,マイクロコンピュータシステム | |
| US20070136816A1 (en) | Method to protect software against unwanted use with a detection and coercion principle | |
| US20240095344A1 (en) | Computer implemented method | |
| US20070283437A1 (en) | Method to Protect Software Against Unwanted Use with a "Temporal Dissociation" Principle | |
| US20070277239A1 (en) | Method to Protect Software Against Unwanted Use with a "Renaming" Principle | |
| UA77186C2 (en) | Method for protecting software against unauthorized use by a controlled variable | |
| EA005466B1 (ru) | Способ защиты программы от её неавторизованного использования при помощи так называемого принципа детектирования и принуждения | |
| US7502940B2 (en) | Method to protect software against unwanted use with a “conditional branch” principle | |
| US12353538B2 (en) | Method for executing a software program by a processing unit comprising a compilation phase | |
| JP7341376B2 (ja) | 情報処理装置、情報処理方法、及び、情報処理プログラム | |
| JP5863689B2 (ja) | 不正使用防止機能付き共有ライブラリ | |
| JP2004537800A (ja) | 「リネーム」原理を使用してその無許可使用に対してソフトウェアを保護する方法 | |
| JP2026052933A (ja) | 情報処理装置、情報処理方法、および情報処理プログラム | |
| US20030028788A1 (en) | Method to protect software against unwanted use with a " elementary functions " principle | |
| MXPA04000594A (es) | Metodo para proteger un software con la ayuda de un principio llamado de "disociacion temporal" contra su uso no autorizado. | |
| AU2023220809A1 (en) | Protecting software | |
| MXPA04000593A (es) | Metodo para proteger un software con la ayuda de un principio llamado de "derivacion condicional" contra su uso no autorizado. | |
| MXPA04000595A (es) | Metodo para proteger un software con la ayuda de un principio llamado de "funciones elementales" contra su uso no autorizado. |