UA77186C2 - Method for protecting software against unauthorized use by a controlled variable - Google Patents

Method for protecting software against unauthorized use by a controlled variable Download PDF

Info

Publication number
UA77186C2
UA77186C2 UA2004010469A UA2004010469A UA77186C2 UA 77186 C2 UA77186 C2 UA 77186C2 UA 2004010469 A UA2004010469 A UA 2004010469A UA 2004010469 A UA2004010469 A UA 2004010469A UA 77186 C2 UA77186 C2 UA 77186C2
Authority
UA
Ukraine
Prior art keywords
protected program
execution
program
protected
fragment
Prior art date
Application number
UA2004010469A
Other languages
English (en)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed filed Critical
Publication of UA77186C2 publication Critical patent/UA77186C2/uk

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)

Description

Опис винаходу
Даний винахід належить до галузі систем обробки даних у широкому сенсі цього слова, а точніше кажучи, 2 винахід стосується засобів захисту від неавторизованого використання програми, що функціонує у згаданих системах обробки даних.
Предмет даного винаходу відноситься, більш конкретно, до способів захисту програм від неавторизованого використання на основі запам'ятовуючого пристрою або пристрою обробки і зберігання, причому цей пристрій звичайно реалізується у вигляді карти з мікрочипом або апаратним ключем на порту ОВ.
У вказаній галузі техніки основна проблема пов'язана з неавторизованим використанням програм користувачами, що не набули права на їхнє використання (ліцензію). Таке незаконне використання програм завдає явних збитків виробникам і продавцям програм, і/або будь-яким іншим особам, що використовують такі програми у своїх виробах. Щоб уникнути створення таких незаконних копій для захисту подібних програм було запропоновано ряд рішень на основі наявних технічних можливостей. 12 Так, відомий спосіб захисту, що полягає у використанні апаратного захисного елемента - фізичного пристрою, названого електронним захисним ключем-заглушкою ("допдіе"). Такий захисний ключ має гарантувати виконання програми тільки за наявності ключа. Мусимо, проте, констатувати, що це вирішення неефективне, бо його можна легко обійти. Зловмисник може за допомогою спеціальних прийомів, наприклад дизасемблювання, вилучити команди контролю захисного ключа. При цьому стає можливим виготовити незаконні копії модифікованих версій програми, що не мають жодного захисту. Крім того, це вирішення не можна поширити на всі програми з огляду на складність підключення більш ніж двох захисних ключів до однієї системи.
Відповідно, задача, розв'язувана даним винаходом, полягає в усуненні зазначених недоліків шляхом створення способу захисту програми від неавторизованого доступу, що використовує запам'ятовуючий пристрій або пристрій обробки і зберігання, спеціально створений з цією метою, в тій мірі, в якій наявність такого с пристрою необхідна для повноцінної роботи програми. Ге)
Розв'язання даної задачі досягнуте відповідно до винаходу створенням способу захисту (на основі щонайменше одного незадіяного пристрою, що має принаймні засоби запам'ятовування) від неавторизованого використання вразливої програми, що функціонує в системі обробки даних. Спосіб згідно з винаходом полягає в тому, що: о - У фазі захисту: с - створюють захищену програму: - за допомогою вибору у вихідному коді вразливої програми: -- - щонайменше однієї змінної, що в ході виконання вразливої програми частково визначає її стан, ча - ї щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну, 3о - за допомогою створення вихідного коду захищеної програми на основі вихідного коду вразливої програми в модифікацією щонайменше одного вибраного фрагмента коду вразливої програми, причому ця модифікація така, що в ході виконання захищеної програми щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться в незадіяному пристрої, який тим самим перетворюється на пристрій, « - і за допомогою створення першої частини об'єктного коду захищеної програми на основі вихідного коду З 70 захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми с реалізується перша виконувана частина, що виконується в системі обробки даних, і щонайменше один фрагмент
Із» якої враховує, що принаймні одна змінна або одна копія змінної знаходиться у пристрої, - а у фазі використання, в ході якої виконується захищена програма: - у присутності пристрою, кожного разу, коли цього вимагає фрагмент першої виконуваної частини, використовують змінну або копію змінної, що знаходиться у пристрої таким чином, щоб указаний фрагмент 7 виконувався коректно й, отже, захищена програма була повнофункціональною; -І - тоді як за відсутності пристрою, незважаючи на запит одного фрагменту першої виконуваної частини, використовувати змінну або копію змінної, що знаходиться у пристрої, не забезпечується можливість коректної - відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена о 20 програма не є повнофункціональною.
Відповідно до кращої форми реалізації способу за винаходом: щи - У фазі захисту: - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми: 25 - щонайменше одного алгоритму, що в ході виконання захищеної програми використовує щонайменше одну
ГФ) вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, - ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм, о - за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому ця модифікація така, що: 60 - в ході виконання захищеної програми перша виконувана частина виконується в системі обробки даних, а друга виконувана частина виконується у пристрої, що містить також засоби обробки, - щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою другої виконуваної частини, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної бо програми реалізуються за допомогою другої виконуваної частини декілька різноманітних етапів, як-от:
- надання щонайменше однієї змінної для пристрою, - реалізація у пристрої функціональних можливостей алгоритму, виконуваного щонайменше над цією змінною, - ), можливо, надання щонайменше однієї результуючої змінної пристроєм для системи обробки даних, - щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання захищеної програми кожна команда етапу виконується за допомогою першої виконуваної частини і викликає у пристрої виконання етапу за допомогою другої виконуваної частини, - причому впорядкування команд етапів вибране серед ансамблю впорядкувань, що дозволяють виконання /о захищеної програми, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми команди етапів виконуються відповідно до вибраного впорядкування, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що /5 Після завантаження у незадіяний пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконуються етапи, запуск яких було викликано першою виконуваною частиною; - і завантажують другу частину об'єктного коду в незадіяний пристрій з одержанням пристрою, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає команда етапу, що є у фрагменті першої ВиИконуваної частини, виконують відповідний етап у пристрої таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - тоді як за відсутності пристрою, незважаючи на запит одного фрагмента першої виконуваної частини на запуск виконання етапу у пристрої, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною. с
Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: і) - визначають: - набір елементарних функцій, що його елементарні функції можуть бути виконані у пристрої, який має також засоби обробки, «о зо - і набір елементарних команд для зазначеного набору елементарних функцій, причому вказані елементарні команди можуть бути виконані в системі обробки даних, викликаючи виконання у пристрої елементарних со функцій; «- - конструюють засоби експлуатації, що дозволяють перетворити незадіяний пристрій на пристрій, здатний виконувати елементарні функції зі згаданого набору, причому виконання зазначених елементарних функцій ї- з5 Викликається виконанням елементарних команд у системі обробки даних; ча - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми: - щонайменше одного алгоритму, який у ході виконання захищеної програми використовує принаймні одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, « - ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм, в с - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому . зазначена модифікація така, що: а - в ході виконання захищеної програми перша виконувана частина виконується в системі обробки даних, а друга виконувана частина виконується у пристрої, - щонайменше функціональна можливість щонайменше одного вибраного алгоритму виконується за -І допомогою другої виконуваної частини, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної
Ш- програми вказаний алгоритм виконується за допомогою другої виконуваної частини із застосуванням - елементарних функцій, - щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код захищеної со програми таким чином, що в ході виконання захищеної програми кожна елементарна команда виконується за
Ф допомогою першої виконуваної частини і викликає у пристрої виконання, за допомогою другої виконуваної частини, елементарної функції, - причому впорядкування елементарних команд вибирається серед ансамблю впорядкувань, що дозволяють ВИиКОНання захищеної програми, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в (Ф, ході виконання захищеної програми елементарні команди виконуються відповідно до вибраного впорядкування, ка - і другої частини об'єктного коду захищеної програми, що містить засоби експлуатації, причому друга частина об'єктного коду така, що після завантаження в незадіяний пристрій, у ході виконання захищеної бо програми реалізується друга виконувана частина, за допомогою якої виконуються елементарні функції, запуск яких було викликано першою виконуваною частиною; - і завантажують другу частину об'єктного коду в незадіяний пристрій з одержанням пристрою, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає елементарна команда, що міститься у фрагменті 65 першої виконуваної частини, виконують відповідну елементарну функцію у пристрої таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною;
- тоді як за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на запуск виконання у пристрої елементарної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною.
Відповідно до ще однієї кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - визначають: - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої, 70 -ї набір елементарних команд для згаданого набору елементарних функцій, причому зазначені елементарні команди можуть бути виконані в системі обробки даних, викликаючи виконання у пристрої елементарних функцій; - конструюють засоби експлуатації, що дозволяють пристрою виконувати елементарні функції з указаного набору, причому виконання зазначених елементарних функцій викликається виконанням елементарних команд у системі обробки даних; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми щонайменше одного етапу, що в ході виконання захищеної програми здійснює функціональну можливість алгоритму, - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому 2о зазначена модифікація така, що: - щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми вказаний етап виконується за допомогою другої виконуваної частини із застосуванням елементарних функцій, - щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код захищеної програми таким чином, що в ході виконання захищеної програми кожна елементарна команда виконується за с допомогою першої виконуваної частини і викликає у пристрої виконання, за допомогою другої виконуваної частини, елементарної функції, і) - й упорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконання захищеної програми, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така що в (о зо Ході виконання захищеної програми елементарні команди виконуються відповідно до вибраного впорядкування, - І другої частини об'єктного коду захищеної програми, що містить також засоби експлуатації, причому со друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми «- реалізується друга виконувана частина, за допомогою якої виконуються елементарні функції, запуск яких було викликано першою виконуваною частиною, - - а у фазі використання: ї- - у присутності пристрою, кожного разу, коли цього вимагає елементарна команда, що міститься в частині першої виконуваної частини, виконують відповідну елементарну функцію у пристрої таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - тоді як за відсутності пристрою, незважаючи на запит одного фрагмента першої виконуваної частини на «
Запуск виконання у пристрої елементарної функції, не забезпечується можливість коректної відповіді на з с вказаний запит, так що принаймні вказаний фрагмент не виконується коректно, й, отже, захищена програма не є повнофункціональною. ;» Відповідно до наступної кращої форми реалізації способу згідно з винаходом у фазі захисту визначають: - щонайменше одну характеристику виконання програми, яка може бути проконтрольована принаймні частково у пристрої, -І - щонайменше один критерій, який має виконуватися щонайменше для однієї характеристики виконання програми,
Ш- - засоби детектування, що їх слід застосовувати у пристрої та які дозволяють виявити, що принаймні одна - характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби примусу, що їх слід застосовувати у пристрої та які дозволяють проінформувати систему обробки со даних і/або модифікувати виконання програми, поки не дотримується хоча б один критерій;
Ф - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби детектування й засоби примусу; - і модифікують захищену програму: - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми серед характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися принаймні для однієї вибраної (Ф, характеристики виконання програми, ка - за допомогою вибору у вихідному коді захищеної програми елементарних функцій, для яких варто контролювати щонайменше одну характеристику виконання контрольованої програми, во - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми щонайменше одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини і недотримання критерію призводить до інформування системи обробки даних і/або до модифікації виконання захищеної програми, - ії за допомогою створення другої частини об'єктного коду захищеної програми, що містить засоби 65 експлуатації, що задіюють також засоби детектування й засоби примусу, причому друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми принаймні одна характеристика виконання програми контролюється і недотримання критерію призводить до інформування системи обробки даних і/або до модифікації виконання захищеної програми, - а у фазі використання: - у присутності пристрою: - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми, дотримано, припускають номінальне функціонування зазначених фрагментів захищеної програми й, отже, номінальне функціонування захищеної програми, - а якщо принаймні одного з критеріїв, що відповідають характеристиці контрольованого виконання одного 7/0 фрагмента захищеної програми, не дотримано, інформують систему обробки даних про зазначене недотримання і/або модифікують функціонування фрагмента захищеної програми таким чином, щоб функціонування захищеної програми було змінене.
Відповідно до варіанта здійснення способу згідно з винаходом: - У фазі захисту: - визначають: - як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю використання однієї функціональної можливості програми, - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, пов'язане з кожною змінною для кількісного контролю, - ії засоби поновлення, що дозволяють поновити принаймні одну змінну для кількісного контролю; - конструюють засоби експлуатації, що дозволяють пристрою застосовувати засоби поновлення; - і модифікують захищену програму: - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної для кількісного контролю використання однієї функціональної можливості програми, сч - за допомогою вибору: - щонайменше однієї функціональної можливості захищеної програми, використання якої можна і) проконтролювати з використанням змінної для кількісного контролю, - щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики використання згаданої функціональної можливості, Ге зо - щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і відповідного межі використання згаданої функціональної можливості, со - Ї щонайменше одного методу поновлення значення вказаної змінної для кількісного контролю залежно від «- використання згаданої функціональної можливості, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому ї-
Зз5 Вказана модифікація така, що в ході виконання захищеної програми змінна для кількісного контролю ї- поновлюється за допомогою другої виконуваної частини, залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення, - а у фазі використання, в присутності пристрою, в разі, коли виявлено принаймні одне перевищення порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему обробки « даних або модифікують функціонування фрагмента захищеної програми, таким чином, щоб функціонування з с захищеної програми було змінене.
Відповідно до іншого варіанта здійснення способу згідно з винаходом: ;» - у фазі захисту: - визначають: - декілька відповідних порогових значень принаймні для однієї змінної для кількісного контролю, -І - Ї різноманітні засоби примусу, що відповідають кожному зі вказаних порогів; - і модифікують захищену програму:
Ш- - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї змінної для кількісного - контролю, з якою мають бути пов'язані декілька порогових значень, що відповідають різноманітним межам 5р Використання функціональної можливості, со - за допомогою вибору принаймні двох порогових значень, пов'язаних з вибраною змінною для кількісного
Ф контролю, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми перевищення різноманітних порогових ов значень враховуються за допомогою другої виконуваної частини різноманітними способами, - а у фазі використання: (Ф, - у присутності пристрою: ка - в разі, коли виявлене перевищення першого порогового значення, дають команду захищеній програмі не використовувати надалі відповідну функціональну можливість, 60 - а в разі, коли виявлене перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми.
Відповідно до подальшого варіанту здійснення способу згідно з винаходом: - У фазі захисту: - визначають засоби перезавантаження, що дозволяють принаймні одне додаткове використання 65 щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю;
- конструюють засоби експлуатації, що дозволяють також пристрою задіяти засоби перезавантаження; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми принаймні однієї змінної для кількісного
Контролю, яка дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість дозволу щонайменше на одне додаткове використання, - і за допомогою модифікації принаймні одного вибраного фрагмента, причому вказана модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволено, 70 - а у фазі перезавантаження: - поновлюють принаймні одну вибрану змінну для кількісного контролю і принаймні одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості. Відповідно до варіанта здійснення способу згідно з винаходом: - У фазі захисту: - визначають: - як характеристику виконання програми, яка може бути проконтрольована, - профіль використання програми, - і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми; - і модифікують захищену програму: - за допомогою вибору як характеристики виконання контрольованої програми принаймні одного профілю
Використання програми, - за допомогою вибору принаймні однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми друга виконувана частина дотримується с
Всіх вибраних ознак виконання, - а у фазі використання, в присутності пристрою в разі, якщо виявлено, що не дотримується хоча б одна і) ознака виконання, інформують про це систему обробки даних і/або модифікують функціонування частини захищеної програми так, щоб функціонування захищеної програми було змінено.
Відповідно до подальшого варіанта здійснення способу згідно з винаходом Ге зо - У фазі захисту: - визначають: со - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої, «- - набір команд інструкцій для вказаного набору інструкцій, причому команди інструкцій можуть бути виконані в системі обробки даних, викликаючи у пристрої виконання інструкцій, ї- - як профіль використання - зчеплення інструкцій, ї- - якознаку виконання - бажане зчеплення для виконання інструкцій, - як засоби детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному, - як засоби примусу - засоби, що дозволяють проінформувати систему обробки даних і/або модифікувати функціонування фрагмента захищеної програми, якщо зчеплення інструкцій не відповідає бажаному; « - конструюють засоби експлуатації що дозволяють пристрою виконувати інструкції з набору інструкцій, з с причому виконання вказаних інструкцій викликається виконанням команд інструкцій у системі обробки даних; - Ї модифікують захищену програму: і ;» - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми: - за допомогою перетворення елементарних функцій у інструкції, - за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час -І їхнього виконання у пристрої, - ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають
Ш- використовуваним інструкціям, - - а у фазі використання, в присутності пристрою, в разі, якщо виявлено, що зчеплення виконуваних у 5р пристрої інструкцій не відповідає бажаному, інформують про це систему обробки даних і/або модифікують со функціонування фрагмента захищеної програми так, щоб функціонування захищеної програми було змінено.
Ф Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - визначають: - як набір інструкцій - набір інструкцій, у якому принаймні деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату, (Ф, - щонайменше для частини інструкцій, що працюють на регістрах: ка - частину, що задає функціональну можливість інструкції, - їчастину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, які відповідають: во - полю ідентифікації інструкції, - і для кожного операнда інструкції: - полю прапора, - полю ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовуваного набору інструкцій, - поле 65 передбаченої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр,
- як засоби детектування - засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле прапора, контролювати рівність між полем генерованої ідентифікації, що відповідає регістру, використовуваному згаданим операндом, і полем передбаченої ідентифікації початкової адреси цього операнда, - Її як засоби примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.
Відповідно до ще однієї кращої форми реалізації способу згідно з винаходом: - У фазі захисту: 70 - визначають: - як команду запуску - елементарну команду або команду інструкції, - як залежну функцію - елементарну функцію або інструкцію, - як настановний параметр, - щонайменше один аргумент для команди запуску, який відповідає, щонайменше частково, інформації, переданій системою обробки даних на пристрій, щоб викликати запуск відповідної /5 залежної функції - метод перейменування настановних параметрів, що дозволяє перейменувати настановні параметри, щоб одержати команди запуску з перейменованими настановними параметрами, - і засоби відновлення, призначені для застосування у пристрої у фазі використання і які дозволяють знайти залежну функцію, що її необхідно виконати, виходячи з перейменованого настановного параметра; - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби відновлення; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми команди запуску, - за допомогою модифікації принаймні одного вибраного фрагменту коду захищеної програми шляхом перейменування настановних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних с г Залежних функцій, о - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми виконуються команди запуску з перейменованими настановними параметрами, «о зо - і другої частини об'єктного коду захищеної програми, що містить засоби експлуатації, які використовують також засоби відновлення, причому друга частина об'єктного коду така, що після завантаження у пристрій, у со ході виконання захищеної програми ідентичність залежних функцій, виконання яких викликано першою «- виконуваною частиною, відновляються за допомогою другої виконуваної частини, а залежні функції виконуються за допомогою другої виконуваної частини, в. - а у фазі використання: ї- - у присутності пристрою, кожного разу, коли цього вимагає команда запуску з перейменованими настановними параметрами, що міститься у фрагменті першої виконуваної частини, відновлюють у пристрої ідентичність відповідної залежної функції і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; « - тоді як за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на запуск ета) с виконання у пристрої залежної функції, не забезпечується можливість коректної відповіді на вказаний запит,
Й так що принаймні вказаний фрагмент не виконується коректно, й, отже, захищена програма не є и?» повнофункціональною.
Відповідно до одного з варіантів реалізації способу згідно з винаходом: - У фазі захисту: -І - визначають принаймні для однієї залежної функції сімейство алгоритмічно еквівалентних залежних функцій, які викликаються командами запуску, що їхні перейменовані настановні параметри є різноманітними;
Ш- - і модифікують захищену програму: - - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї команди запуску з перейменованими настановними параметрами, со - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми шляхом
Ф заміни щонайменше перейменованих настановних параметрів команди запуску з вибраним набором настановних параметрів на інші перейменовані настановні параметри, що викликає запуск залежної функції, з того ж сімейства.
Відповідно до варіанта реалізації спосіб згідно з винаходом включає: - у фазі захисту визначення, щонайменше для однієї залежної функції, сімейства алгоритмічно еквівалентних
Ф) залежних функцій ка - шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, яка виконується у пристрої, во - або шляхом використання поля ідентифікації інструкції й поля ідентифікації, передбаченої для операнда.
Відповідно до варіанта реалізації способу згідно з винаходом: - у фазі захисту визначають: - як метод перейменування настановних параметрів - метод кодування для кодування настановних параметрів, 65 - і як засоби відновлення - засоби, що застосовують метод декодування для декодування перейменованих настановних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої.
Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми принаймні одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі, - за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми функціональна можливість щонайменше одного вибраного умовного переходу виконується, за допомогою другої виконуваної частини, у пристрої, 70 - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми функціональна можливість принаймні одного вибраного умовного переходу виконується у пристрої, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що /5 Після завантаження у пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконується функціональна можливість принаймні одного вибраного умовного переходу, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає фрагмент першої виконуваної частини, виконують у пристрої функції принаймні одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - а за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на виконання функцій умовного переходу у пристрої, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною. сч
Відповідно до наступного варіанту здійснення способу згідно з винаходом у фазі захисту модифікують о захищену програму: - за допомогою вибору у вихідному коді захищеної програми принаймні однієї серії вибраних умовних переходів, - за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому Ге зо Згадана модифікація така, що в ході виконання захищеної програми глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої за допомогою другої виконуваної со частини, «- - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в - ході виконання захищеної програми функціональна можливість принаймні однієї вибраної серії умовних ї- переходів виконується у пристрої, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконується глобальна функціональна можливість принаймні однієї вибраної серії умовних « переходів. з с Спосіб згідно з винаходом дозволяє також захистити використання програми шляхом застосування пристрою . зберігання, особливістю якого є здатність містити частину виконуваної програми. Звідси випливає, що будь-яка а похідна версія програми, яка спробує функціонувати без пристрою зберігання, зажадає відтворення частини програми, що міститься у пристрої зберігання в ході виконання. Як наслідок ця похідна версія програми не буде повнофункціональною. -І Інші різноманітні властивості винаходу стануть ясні з нижченаведеного опису, що надається з посиланням на додані креслення, на яких показані, як необмежувальні приклади, можливі варіанти і форми реалізації та ш- використання винаходу. - Фіг.10 ії 11 являють собою функціональні блок-схеми, що ілюструють різноманітні представлення програми, відповідно не захищеної і захищеної способом згідно з винаходом. со На Фіг.20-22 наведені як приклади різноманітні форми виконання пристрою для здійснення способу за
Ф винаходом.
Фіг.30 і 31 являють собою функціональні блок-схеми, що пояснюють загальний принцип способу згідно з винаходом.
Фіг.40-43 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою змінної.
Ф) Фіг.50-54 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип ка захисту за допомогою розділення в чавсі.
Фіг.60-64 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип бор Захисту за допомогою елементарних функцій.
Фіг.70-74 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою детектування й примусу.
Фіг.80-85 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою перейменування. 65 Фіг.90-92 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою умовного переходу.
Фіг.100 являє собою схему, що ілюструє різноманітні фази здійснення винаходу.
На Фіг.110 наведений приклад реалізації системи, що дозволяє реалізувати стадію побудови фази захисту згідно з винаходом.
На Фіг.120 наведений приклад реалізації пристрою передперсоналізації, використовуваного у способі захисту згідно з винаходом.
На Фіг.130 наведений приклад реалізації системи, що дозволяє здійснити стадію виготовлення засобів для фази захисту згідно з винаходом.
На Фіг.140 наведений приклад реалізації системи, що дозволяє застосувати спосіб захисту згідно з /о винаходом.
На Фіг.150 наведений приклад реалізації пристрою персоналізації, використовуваного у способі захисту згідно з винаходом.
Надалі в описі використовуються такі визначення: - Системою З обробки даних є система, здатна виконувати програму. - Пристроєм зберігання є пристрій, здатний одержувати дані, передані системою З обробки даних, розміщувати дані й повертати їх згідно із запитом системи З обробки даних. - Пристроєм обробки і зберігання є пристрій, здатний: - одержувати дані, передані системою З обробки даних, - повертати дані системі З обробки даних, - зберігати дані в таємниці, щонайменше частково, і зберігати щонайменше їхню частину навіть у випадку, коли пристрій відключений від живлення, - і здійснювати алгоритмічну обробку даних, причому ця обробка частково або цілком є секретною. - Пристроєм 6 є пристрій зберігання або пристрій обробки і зберігання, що реалізує спосіб згідно з винаходом. - Незадіяним пристроєм 60 є пристрій, який не використовує спосіб згідно з винаходом, але який може сч ов одержати інформацію, що перетворює його на пристрій 6. - Незадіяний пристрій 60 може стати пристроєм 6 під час виконання програми, захищеної способом згідно з і) винаходом, і після виконання знову стати незадіяним пристроєм 60. - Передперсоналізований пристрій 66 являє собою незадіяний пристрій 60, що одержав частину інформації, яка дозволяє йому, після одержання додаткової інформації, бути перетвореним на пристрій 6. Ге зо - Завантаження даних у незадіяний пристрій 60 або в передперсоналізований пристрій 66 відповідає передачі інформації в незадіяний пристрій 60 або в передперсоналізований пристрій 66 і збіганню зазначених переданих со даних. Передача інформації може включати зміну її формату. «- - Змінна, величина або функція, що містяться в системі З обробки даних, позначаються надалі заголовними буквами, а змінна, величина або функція, що містяться в пристрої 6, позначаються надалі малими літерами. ї- - "Захищеною програмою" є програма, що була захищена щонайменше на основі одного принципу захисту, р. реалізованого у способі згідно з винаходом. - "Уразливою програмою" є програма, що не була захищена жодним з принципів захисту, реалізованих у способі згідно з винаходом. - У випадку, коли розходження між уразливою і захищеною програмою несуттєве, застосовується термін « "програма". з с - Програма може бути подана в різноманітній формі відповідно до моменту її життєвого циклу, тобто як: - вихідний код, з - об'єктний код, - дистрибутив, - динамічне представлення. -І - Представлення програми у вигляді вихідного коду розуміється як представлення, що дає після перетворення представлення у вигляді об'єктного коду. Представлення у вигляді вихідного коду може ш- подаватися на різноманітних рівнях, від абстрактного концептуального рівня до рівня, безпосередньо - виконуваного системою обробки даних або пристроєм обробки і зберігання. - Об'єктне представлення програми (представлення на рівні об'єктного коду) відповідає рівню со представлення, на якому програма, після переносу в дистрибутив і наступного завантаження в систему обробки
Ф даних або пристрій обробки і зберігання, може бути виконана. Це може бути, наприклад, двійковий код, інтерпретований код тощо. - Дистрибутивом є фізичний або віртуальний носій, що містить об'єктне представлення, причому цей дистрибутив має бути наданий у розпорядження користувача, щоб дозволити йому використовувати програму. - Динамічне представлення відповідає виконанню програми з дистрибутива. (Ф) - Фрагмент програми відповідає певній її частині й може, наприклад, відповідати одній або декільком ка інструкціям (послідовним або ні) і/або одному або декільком функціональним блокам (послідовним або ні), і/або одній або декільком функціям, і/або одній або декільком підпрограмам, і/або одному або декільком модулям. бо Фрагмент програми може відповідати і всій програмі цілком.
На Фіг.10 і 11 наведені різноманітні представлення відповідно вразливої програми 2у у загальному вигляді і програми 2р, захищеної згідно з винаходом.
На Фіг.10 наведені різноманітні представлення вразливої програми 2у, що з'являються в ході її життєвого циклу. Вразлива програма 2М може з'являтися в одному з різноманітних виглядів, тобто як: 65 - вихідний код 25; - об'єктний код 2мо;
- дистрибутив 2уд, який може надаватися звичайно на фізичному носії, наприклад, на компакт-диску, або у вигляді файлів, переданих по мережі (по стандарті ОЗМ, по мережі Інтернет тощо); - у вигляді динамічного представлення 2ме, що відповідає виконанню вразливої програми 2м у системі З обробки даних будь-яких відомих типів, які в класичному випадку містять принаймні один процесор 4.
Фіг.11 ілюструє різноманітні представлення захищеної програми 2р, що з'являються в ході її життєвого циклу. Захищена програма 2р може також з'являтися у вигляді: - вихідного коду (представлення) 2рз, що містить першу частину вихідного коду, призначену для системи З обробки даних, і, можливо, другу частину вихідного коду, призначену для пристрою 6, причому частина цих 7/о частин вихідного коду може звичайно міститися в загальних файлах; - об'єктного представлення 2ро, що містить першу частину 2роз об'єктного коду, призначену для системи З обробки даних, і, можливо, другу частину 2рои об'єктного коду, призначену для пристрою 6; - дистрибутива 2ра, що містить: -першу частину 2раз дистрибутива, що містить першу частину 2роз об'єктного коду, причому ця перша /5 частина 2раз дистрибутива призначена для системи З обробки даних і може бути представлена звичайно у формі дистрибутива на фізичному носії, наприклад на компакт-диску, або у вигляді файлів, переданих по мережі (по стандарті О5М, по мережі Інтернет тощо), - її, другу частину 2рди дистрибутива, поданого у вигляді: - щонайменше одного незадіяного пристрою 60, - або щонайменше одного передперсоналізованого пристрою 66, у який була завантажена частина другої частини 2рои об'єктного коду і для якого користувач має завершити персоналізацію шляхом завантаження додаткової інформації, щоб одержати пристрій 6, причому ця додаткова інформація може надходити, наприклад, шляхом завантаження або передачі по мережі,
У або щонайменше одного пристрою 6, у який була завантажена друга частина 2рои об'єктного коду; с - або у вигляді динамічного представлення 2ре, що відповідає виконанню захищеної програми 2р. Це динамічне представлення 2ре містить першу виконувану частину 2рез, яка виконується в системі З обробки і) даних, і другу виконувану частину 2реи, яка виконується у пристрої 6.
У випадку, коли розходження між різноманітними представленнями захищеної програми 2р несуттєве, використовуються вирази "перша частина захищеної програми" і "друга частина захищеної програми". Ге зо Реалізація способу згідно з винаходом відповідно до динамічного представлення, проілюстрованого на
Фіг.11, використовує пристрій тр захисту, що містить систему З обробки даних, зв'язану лінією 5 зв'язку з со пристроєм 6. Система З обробки даних може бути будь-якого типу і містить у звичайному варіанті принаймні «- один процесор 4. Система З обробки даних може бути комп'ютером або бути частиною, наприклад, різноманітних машин, пристроїв, стаціонарних або рухливих виробів, у тому числі будь-яких транспортних ї- засобів. Лінія 5 зв'язку може бути здійснена будь-яким можливим способом, наприклад, по лінії послідовної ї- передачі, по шині ОВ, по радіо, по оптичному каналу, по мережі або через пряме електричне з'єднання зі схемою системи З обробки даних тощо. Слід зазначити, що пристрій 6 може фізично знаходитися всередині тієї ж інтегральної схеми, що й процесор 4 системи З обробки даних. У цьому випадку пристрій 6 може розглядатися як співпроцесор стосовно до процесора 4 системи обробки даних, а лінія 5 зв'язку є внутрішньою лінією зв'язку « 70 В інтегральній схемі. з с На Фіг.20-22 наведені як приклади, що не вичерпують можливі варіанти, різноманітні форми реалізації пристрою р захисту, що дозволяє реалізувати спосіб захисту згідно з винаходом. ;» У прикладі реалізації за Фіг.20 пристрій Тр захисту містить, як систему З обробки даних, комп'ютер і, як пристрій 6, карту 7 з мікрочипом та її інтерфейс 8, звичайно називаний пристроєм читання карт. Комп'ютер З сполучений з пристроєм б за допомогою лінії 5 зв'язку. В ході виконання захищеної програми 2р перша -І виконувана частина 2рез, що виконується в системі З обробки даних, і друга виконувана частина 2рецй, що виконується в карті 7 з мікрочипом і у її інтерфейсі 8, мають бути функціональними, щоб захищена програма 2р
Ш- була повнофункціональною. - У прикладі реалізації за Фіг.21 пристрій Тр захисту міститься у виробі У загального виду, що містить 5ор різноманітні органи 10, адаптовані до функції або до функцій, реалізованих таким виробом 9. Пристрій Тр со захисту містить, з одного боку, систему З обробки даних, умонтовану у виріб 9, і, з іншого боку, пристрій 6,
Ф зв'язаний з виробом 9. Щоб виріб 9 був повнофункціональним, захищена програма 2р має бути повністю функціональною. Так, у ході виконання захищеної програми 2р і перша виконувана частина 2рез, яка виконується в системі З обробки даних, і друга виконувана частина 2реиц, яка виконується у пристрої 6, мають бути працездатні. Ця захищена програма 2р дозволяє, отже, непрямим чином захистити від неавторизованого використання виріб 9 або одну з його функціональних можливостей. Виріб 9 може бути, наприклад, установкою, (Ф, системою, машиною, іграшкою, електропобутовим приладом, телефоном. ка У прикладі реалізації за Фіг.22 пристрій тр захисту містить множину комп'ютерів, а також частину комунікаційної мережі. Система З обробки даних являє собою перший комп'ютер, зв'язаний за допомогою лінії 5 бо Зв'язку мережного типу з пристроєм 6, який являє собою другий комп'ютер. Для реалізації винаходу другий комп'ютер б використовується як сервер ліцензій для захищеної програми 2р. У ході виконання захищеної програми 2р і перша виконувана частина 2рез, яка виконується в першому комп'ютері З, і друга виконувана частина 2реи, яка виконується в другому комп'ютері 6, мають бути функціональними, щоб захищена програма 2р була повнофункціональною. 65 Фіг.30 дозволяє пояснити точніше спосіб захисту згідно з винаходом. Слід зазначити, що вразлива програма 2м розглядається як виконувана цілком у системі З обробки даних. Навпаки, в разі реалізації захищеної програми 2р система З обробки даних містить засоби 12 передачі, зв'язані лінією 5 зв'язку із засобами 13 передачі, що складають частину пристрою 6, що дозволяє сполучатися між собою першій виконуваній частині 2рез і другій виконуваній частині 2реи захищеної програми 2р.
Слід мати на увазі, що засоби 12, 13 передачі реалізовані програмно або матеріально і здатні забезпечити й, можливо, оптимізувати передачу даних між системою З обробки даних і пристроєм 6. Ці засоби 12, 13 передачі пристосовані для того, щоб дозволити скористатися захищеною програмою 2р, яка є краще незалежною від типу застосовуваної лінії 5 зв'язку. Ці засоби 12, 13 передачі не стосуються предмета винаходу й не описуються детальніше, оскільки вони добре відомі фахівцям. Перша частина захищеної програми 2р 7/о Містить команди. В ході виконання захищеної програми 2р виконання цих команд першою виконуваною частиною 2рез дозволяє здійснити зв'язок між першою виконуваною частиною 2рез і другою виконуваною частиною 2реи.
Надалі в описі ці команди подані у вигляді ІМ, ОТ або ТК.
Як показано на Фіг.31, щоб дозволити реалізацію другої виконуваної частини 2реи захищеної програми 2р, пристрій 6 містить засоби 14 захисту. В разі, якщо пристрій 6 є запам'ятовуючим пристроєм, засоби 14 захисту /5 Містять засоби 15 запам'ятовування. В разі, якщо пристрій б є пристроєм обробки і зберігання, засоби 14 захисту містять засоби 15 запам'ятовування і засоби 16 обробки.
Для спрощення подальшого опису будемо вважати, що в ході виконання захищеної програми 2р пристрій 6 є наявним або пристрій 6 відсутній. У дійсності, пристрій 6 у тому випадку, коли містить засоби 14 захисту, не пристосований до виконання другої виконуваної частини 2реи захищеної програми 2р, також розглядається як відсутній щоразу, коли виконання захищеної програми 2р не є коректним. Іншими словами: - пристрій б, що фізично присутній і містить засоби 14 захисту, пристосовані до виконання другої виконуваної частини 2реи захищеної програми 2р, завжди розглядається як присутній; - пристрій 6, фізично присутній, але що містить непридатні засоби 14 захисту, тобто що не дозволяють здійснити коректну реалізацію другої виконуваної частини 2реи захищеної програми 2р, розглядається як сч присутній, якщо функціонує коректно, і як відсутній, якщо не функціонує коректно; пристрій 6, фізично відсутній, завжди розглядається як відсутній. (8)
У випадку якщо пристрій б складається з карти 7 з мікрочипом та її інтерфейсом 8, засоби 13 передачі розділяються на дві частини, з яких одна знаходиться на інтерфейсі 8, а інша - на карті 7 з мікрочипом. У цьому прикладі реалізації відсутність карти 7 з мікрочипом розглядається як еквівалент відсутності пристрою Ге 6. Іншими словами, за відсутності карти 7 з мікрочипом і/або її інтерфейсу 8 засоби 14 захисту недоступні й, отже, не дозволяють здійснити виконання другої виконуваної частини 2реи захищеної програми, так що со захищена програма 2р не є повнофункціональною. «-
Згідно з винаходом, спосіб захисту спрямований на реалізацію так званого принципу захисту за допомогою змінної, опис якого подано з посиланням на Фіг.40-43. в.
Для реалізації принципу захисту за допомогою змінної у вихідному коді 2уз уразливої програми вибирається ї- принаймні одна змінна, яка в ході виконання вразливої програми 2у частково визначає її стан. Під станом програми розуміється сукупність інформації, на даний момент необхідної для повного виконання цієї програми.
Таким чином, відсутність зазначеної вибраної змінної перешкоджає повному виконанню цієї програми.
Вибирається також принаймні один фрагмент вихідного коду 2у8з уразливої програми, що містить « щонайменше одну вибрану змінну. в с Щонайменше один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується, щоб . одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми и?» 2р принаймні один фрагмент першої виконуваної частини 2рев5, який виконується в системі З обробки даних, враховує, що принаймні одна вибрана змінна або щонайменше одна копія вибраної змінної знаходиться у пристрої 6. Для реалізації принципу захисту за допомогою змінної пристрій 6 містить щонайменше засоби 15 -І запам'ятовування.
На Фіг.40 наведений приклад представлення уразливої програми 2у. У цьому прикладі в ході виконання
Ш- уразливої програми 2у у системі З обробки даних мають місце: - - у момент і присвоєння значення Х змінній М, що подано як М.--Х; - у момент Її присвоєння значення змінної М. змінній М, що подано як У Му;
Ме - у момент із присвоєння значення змінної М. змінній 7, що подано як 74.М.. 4) На Фіг.А4А1 наведений приклад першої форми реалізації винаходу, для якої змінна знаходиться у пристрої 6. У цьому прикладі в ході виконання у системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 здійснюються: - у момент Її виконання команди передачі, що викликає передачу даного Х від системи З обробки даних до змінної м, розташованої в засобах 15 запам'ятовування пристрою 6, причому ця команда передачі подана як і) ОШТм., Х) і відповідає по завершенні присвоєнню значення Х змінній м; ко - у момент їй виконання команди передачі, що викликає передачу значення змінної м 4, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній У, причому ця команда передачі подана, 6о як ІМ(м4,) і відповідає по завершенні присвоєнню значення м. змінній У; - у момент їз виконання команди передачі, що викликає передачу значення змінної м 4, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній 7, причому ця команда передачі подана як ІМ(м4) і відповідає по завершенні присвоєнню значення м. змінній 7.
Слід зазначити, що в ході виконання захищеної програми 2р принаймні одна змінна знаходиться у пристрої 6. 65 Так, коли цього вимагає частина першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, значення цієї змінної, що знаходиться у пристрої 6, передається системі З обробки даних, щоб бути використаною першою виконуваною частиною 2рез захищеної програми 2р таким чином, щоб ця частина виконувалася коректно, й, отже, захищена програма 2р була повнофункціональною.
На Фіг.42 наведений приклад другої форми реалізації винаходу, для якої копія змінної знаходиться у пристрої 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 здійснюються: - у момент ( присвоєння значення Х змінній М 4, що знаходиться в системі З обробки даних, а також виконання команди передачі що викликає передачу даного Х від системи З обробки даних до змінної мі, розташованої у засобах 15 запам'ятовування пристрою 6, причому ця команда передачі подана як ОШТ(м 4, Х); 70 - у момент ї5 - присвоєння значення змінної М, змінній У; - у момент їз - виконання команди передачі, що викликає передачу значення змінної М. що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній 7, причому ця команда передачі подана як ІМ(м4).
Слід зазначити, що в ході виконання захищеної програми 2р щонайменше одна копія однієї змінної /5 знаходиться у пристрої 6.
Так, коли цього вимагає частина першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, значення цієї копії змінної, що знаходиться у пристрої 6, передається системі З обробки даних, щоб бути використаною першою виконуваною частиною 2рез захищеної програми 2р таким чином, щоб ця частина виконувалася коректно й, отже, захищена програма 2р була повнофункціональною.
На Фіг.43 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання у системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: - у момент Її виконання команди передачі ОШТ(м4, Х) не може викликати передачу даного Х змінній м, з огляду на відсутність пристрою 6; "у момент Її виконання команди передачі ІМ(м4) не може викликати передачу значення змінної мі системі З сч обробки даних, з огляду на відсутність пристрою 6; "у момент ї5 виконання команди передачі ГМ(м4) не може викликати передачу значення змінної м системі З і) обробки даних, з огляду на відсутність пристрою 6.
Таким чином, представляється, що за відсутності пристрою 6 принаймні один запит одного фрагмента першої виконуваної частини 2рез на використання змінної або копії змінної, що знаходиться у пристрої 6, не може бути Ге зо Коректно виконаний, так що принаймні ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною. со
Слід зазначити, що процеси передачі даних між системою З обробки даних і пристроєм б використовують - п тільки прості присвоєння (що проілюстровано на вищенаведених прикладах). Проте спеціаліст зможе скомбінувати їх з іншими операціями, щоб одержати складні операції, наприклад ОШТ(м 4, 2"Х3) або ї- 2--(5'Мувмо). ч-
Відповідно до іншої кращої характеристики винаходу спосіб захисту орієнтований на реалізацію принципу захисту, названого "розділення в часі", опис якого виконано з посиланням на Фіг.50-54.
Для реалізації принципу захисту шляхом розділення в часі у вихідному коді 2у5 уразливої програми « вибирається принаймні один алгоритм, що використовує щонайменше один операнд і видає щонайменше один результат. Вибирається також щонайменше один фрагмент вихідного коду 2у5 уразливої програми, який містить й с щонайменше один вибраний алгоритм. ц Принаймні один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується, щоб "» одержати вихідний код 2рз захищеної програми. Ця модифікація така, що: - в ході виконання захищеної програми 2р щонайменше один фрагмент першої виконуваної частини 2рев, який виконується в системі З обробки даних, враховує, що функціональна можливість принаймні одного -І вибраного алгоритму виконується у пристрої 6; - в ході виконання захищеної програми 2р друга виконувана частина 2реи, яка виконується у пристрої 6, - виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму; - - в ході виконання захищеної програми 2р кожний вибраний алгоритм розкладається на декілька різноманітних етапів, як-от:
Ме - етап 1: надання щонайменше одного операнду для пристрою 6, 4) - етап 2: виконання у пристрої 6 функціональної можливості вибраного алгоритму з використанням цього або цих операндів, - етап 3: можливе надання пристроєм 6 системі З обробки даних результату виконання вибраного алгоритму; - команди етапів визначаються таким чином, щоб викликати виконання етапів, причому - впорядкування команд етапів вибрано серед ансамблю впорядкувань, що дозволяють виконання захищеної о програми 2р. ко Перша виконувана частина 2рез захищеної програми гр, яка виконується в системі З обробки даних, виконує команди етапів, що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реи, кожного з бо наведених етапів. Для реалізації принципу захисту шляхом розділення в часі пристрій б містить засоби 15 запам'ятовування і засоби 16 обробки.
На Фіг.50 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу провадиться розрахунок 2.-К(Х, У), що відповідає присвоєнню змінній 7 результату виконання алгоритму, поданого функцією Е і що використовує операнди Х і У. 6Е На Фіг.51 наведений приклад реалізації винаходу, в якому обробку вибраного алгоритму (Фіг.50) перенесено у пристрій 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р в присутності пристрою 6, мають місце: - у момент і. - етап 1, як-от виконання команди СЕ 4 етапу, яке викликає передачу даних Х і У з системи З обробки даних у області пам'яті відповідно х і у, розташовані в засобах 15 запам'ятовування пристрою 6, причому ця команда СЕ); етапу подана як ОШТХх, Х), ОШТУ, ХМ); - у момент іо - етап 2, як-от виконання команди СЕ» етапу, що викликає у пристрої 6 виконання, за допомогою другої виконуваної частини 2реиц, функції ї, причому ця функція Її алгоритмічно еквівалентна функції Р. Ця команда СЕ» етапу подана як ТКІС(Ї). Точніше кажучи, виконання команди СЕ » етапу приводить до виконання функції Її, яка використовує вміст областей пам'яті х і у і повертає свій результат у область пам'яті 2 пристрою 6; 70 - у момент б - етап 3, а саме виконання команди СЕ»з етапу, яке викликає передачу результату функції Її, що міститься в області пам'яті 27 пристрою 6, системі З обробки даних, щоб присвоїти її значення змінній 7. Ця команда СЕ» етапу подана як ІМ(7).
У наведеному прикладі етапи з 1 до З виконуються послідовно. Слід відзначити, що можна зробити два такі вдосконалення. - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом. У цьому випадку деякі етапи передачі можуть бути вилучені. - Друге вдосконалення має на меті належне впорядкування команд етапів у ансамблі впорядкувань, що дозволяють виконати захищену програму 2р. У цьому відношенні краще вибрати таке впорядкування команд етапів, що розділяє в часі виконання етапів, уставляючи між ними ділянки коду, виконуваного в системі З обробки даних, і що містить (або ні) команди етапів, що служать для визначення інших даних. Фіг.52 і 53 ілюструють принцип такої реалізації.
На Фіг.52 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних, провадиться виконання двох алгоритмів, що приводять до визначення 7 і с ов Є, таких, що 2--НК(Х, Хі 2. (Х, М).
На Фіг.53 наведений приклад реалізації способу згідно з винаходом, у якому обидва вибраних на Фіг.52 о алгоритми винесені в пристрій 6. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 має місце, як пояснено вище, виконання команд СЕ 4, СЕ», СЕз етапів, що відповідають визначенню 7, і команд СЕ/, СЕ» СЕ етапів, що «о
Відповідають визначенню 2. Як показано на прикладі, команди етапів з СЕ; до СЕ» не виконуються послідовно, оскільки з ними чергуються команди етапів з СЕ. до СЕу, а також інші ділянки коду. В цьому прикладі, таким со чином, реалізоване таке впорядкування: СЕ у вставлений фрагмент коду, СЕ», вставлений фрагмент коду, -пее
СЕУ, вставлений фрагмент коду, СЕ»", вставлений фрагмент коду, СЕз, вставлений фрагмент коду, СЕз.
Слід зазначити, що в ході виконання захищеної програми 2р у присутності пристрою 6 щоразу, коли цього - вимагає команда етапу, що міститься в частині першої виконуваної частини 2рез захищеної програми 2р, ї- відповідний етап виконується в пристрої 6. Таким чином, у присутності пристрою 6 ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною.
На Фіг.54 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: « - у момент ї/ - виконання команди етапу ОШТ(х, Х), ОШТ(У, У) не може викликати передачу даних Хі в шщ с області пам'яті відповідно х і у, з огляду на відсутність пристрою 6; й - у момент їй - виконання команди етапу ТКІС(Ї) не може викликати виконання функції ї, з огляду на «» відсутність пристрою 6; - Її в момент їз - виконання команди етапу ІМ(7) не може викликати передачу результату функції Її, з огляду
На відсутність пристрою 6. -і Таким чином, вважається, що за відсутності пристрою б щонайменше один запит одного фрагмента першої виконуваної частини 2рез на запуск виконання етапу у пристрої б не може бути коректно виконаний, так що і принаймні ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною. - Відповідно до іншої кращої характеристики винаходу спосіб захисту націлений на реалізацію принципу захисту, названого "елементарні функції", опис якого проілюстровано Фіг.60 - 64. бо Для реалізації принципу захисту за допомогою елементарних функцій визначають:
Ф - набір елементарних функцій, елементарні функції якого можуть бути виконані за допомогою другої виконуваної частини 2реи, у пристрої 6, можливо, з наступною передачею даних між системою З обробки даних і пристроєм 6; - Ї набір елементарних команд для цього набору елементарних функцій, причому ці елементарні команди можуть бути виконані в системі З обробки даних, викликаючи виконання у пристрої 6 відповідних елементарних іФ) функцій. ко Для реалізації принципу захисту за допомогою елементарних функцій мають бути реалізовані також засоби експлуатації, що дозволяють перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і бо засоби 16 обробки, на пристрій б, здатний виконувати елементарні функції. При цьому виконання цих елементарних функцій викликається виконанням елементарних команд у системі З обробки даних.
Для реалізації принципу захисту за допомогою елементарних функцій у вихідному коді 2у8 уразливої програми вибирається також принаймні один алгоритм, що використовує щонайменше один операнд і видає щонайменше один результат. Вибирається також щонайменше один фрагмент вихідного коду 2у5 уразливої 65 програми, що містить щонайменше один вибраний алгоритм.
Принаймні один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується таким чином, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що: - в ході виконання захищеної програми 2р принаймні один фрагмент першої виконуваної частини 2рев, що виконується в системі З обробки даних, враховує, що функціональна можливість щонайменше одного вибраного алгоритму виконується у пристрої 6; - в Ході виконання захищеної програми 2р друга виконувана частина 2реи, що виконується у пристрої 6, реалізує щонайменше функціональну можливість щонайменше одного вибраного алгоритму; - кожний вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми 2р кожний вибраний алгоритм виконується за допомогою другої виконуваної частини 2реи із застосуванням елементарних 70 функцій. Кожний вибраний алгоритм краще розкладається на елементарні функції Те, (де п пробігає значення від 1 до М), як-от: - можливо, на одну або декілька елементарних функцій, що дозволяють надати один або декілька операндів для пристрою 6, - на елементарні функції, деякі з яких використовують один або декілька операндів і які у поєднанні 7/5 Здійснюють функціональну можливість вибраного алгоритму, що використовує ці операнди, - ї, можливо, на одну або декілька елементарних функцій, що дозволяють за допомогою пристрою 6 надати системі З обробки даних результат виконання вибраного алгоритму; - причому впорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконати захищену програму 2р. Перша виконувана частина 2рез захищеної програми 2р, яка виконується в системі З обробки даних, виконує елементарні команди СЕЕ, (де п пробігає значення від 1 до М), що викликає у пристрої 6 виконання, за допомогою другої виконуваної частини 2реи, кожної з вищезгаданих елементарних функцій Те,.
На Фіг.60 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу провадиться розрахунок 2.-К(Х, У), що відповідає сч присвоєнню змінній 7 результату виконання алгоритму, поданого функцією Е і що використовує операнди Х і У.
На Фіг.61 наведений приклад реалізації винаходу, в якому виконання вибраного алгоритму, що відповідає о
Фіг.60, винесено у пристрій 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, мають місце: - у моменти Її, й - виконання елементарних команд СЕРЕ, СЕРЕ», що викликає у пристрої 6 виконання, за Ге) зо допомогою другої виконуваної частини 2рец, відповідних елементарних функцій Те, Тео, які забезпечують передачу даних Х, ХУ з системи З обробки даних в області пам'яті відповідно х і у, розташовані в засобах 15 со запам'ятовування пристрою б, причому ці елементарні команди СЕРЕ 4, СЕРЕ» подані відповідно як ОШТХ, Х), «--
ОЦТУ, Х; - у моменти з Б до (04 - виконання елементарних команд з СЕРЕз до СЕРЕмМ., що викликає у пристрої 6 в
Зз5 Виконання, за допомогою другої виконуваної частини 2реи, відповідних елементарних функцій з Те з до Тем, ї- причому ці елементарні команди з СРЕз до СЕРЕ. 4 подані відповідно як ТКІС(Те 3)- ТКІС(Тем.4). Послідовність елементарних функцій з Тез до Тем, виконуваних у поєднанні, алгоритмічно еквівалентна функції Р. Точніше кажучи, виконання цих елементарних команд приводить до виконання у пристрої б елементарних функцій
Тез-Тем.л, які використовують уміст областей пам'яті х, у і повертають результат у область пам'яті 2 пристрою 6; « - у момент їх - виконання елементарної команди СЕРЕ, що викликає у пристрої б виконання, за допомогою (пе) с другої виконуваної частини 2реи, елементарної функції Тем, що забезпечує передачу результату виконання й алгоритму, що міститься в області пам'яті 72 пристрою 6, системі З обробки даних, щоб присвоїти цей результат «» змінній 7, причому ця елементарна команда СЕРЕу| подана як ІМ(2).
У наведеному прикладі елементарні команди з 1 до М виконуються послідовно. Слід зазначити, що можна
Зробити два такі вдосконалення. -і - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом. У цьому випадку деякі елементарні і команди, що служать для передачі, можуть бути вилучені. - - Друге вдосконалення має на меті належне впорядкування елементарних команд у ансамблі впорядкувань, 5р що дозволяють виконати захищену програму 2р. бо У цьому відношенні краще вибрати таке впорядкування елементарних команд, що розділяє в часі виконання
Ф елементарних функцій, вставляючи між ними ділянки коду, виконуваного в системі З обробки даних, і містить (або не містить) елементарні команди, що служать для визначення інших даних. Фіг.62 і 63 ілюструють принцип такої реалізації.
На Фіг.62 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2му у системі З обробки даних здійснюється виконання двох алгоритмів, що приводять до визначення 7 і іФ) 7, таких, що 2. К(Х, Хі 2-Х, ХУ. ко На Фіг.63 наведений приклад реалізації способу згідно з винаходом, у якому виконання обох вибраних алгоритмів, що відповідають Фіг.62, винесено в пристрій 6. Відповідно до цього приклада в ході виконання в бо системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, має місце, як було пояснено вище, виконання елементарних команд з СЕРЕ 4 до СЕРЕм, що відповідає визначенню 7, виконання елементарних команд з СЕРЕ до СЕЕу", що відповідає визначенню 7. Як показано на даній фігурі, елементарні команди з СЕРЕ до СЕРЕу не виконуються послідовно, тобто елементарні команди з СЕРЕ / до
СЕЕу/, а також інші ділянки коду чергуються. В цьому прикладі, таким чином, реалізоване таке впорядкування: 65 СЕБЕ, вставлений фрагмент коду, СРЕ/, СЕРЕ», вставлений фрагмент коду, СЕРЕ», СЕЕуз, вставлений фрагмент коду, СЕРЕ, СЕЕз, СЕЕ,,..., СРЕМ, СЕРЕ у.
Слід зазначити, що в ході виконання захищеної програми 2р у присутності пристрою б кожного разу, коли цього вимагає елементарна команда, що міститься в частині першої виконуваної частини 2рез захищеної програми 2р, відповідна елементарна функція виконується у пристрої 6. Таким чином, вважається, що в присутності пристрою б ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною.
На Фіг.64 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, виконання елементарної команди в жодний момент не може викликати запуск відповідної елементарної функції /о через відсутність пристрою 6. Величина, що її необхідно присвоїти змінній 7, не може, отже, бути визначена коректно.
Таким чином, вважається, що за відсутності пристрою 6 принаймні один запит одного фрагмента першої виконуваної частини 2рез захищеної програми 2р на запуск виконання елементарної функції у пристрої 6 не може бути коректно виконаний, так що принаймні ця частина не виконується коректно, й, отже, захищена 7/5 програма 2р не є повнофункціональною.
Відповідно до іншої кращої характеристики винаходу, спосіб захисту спрямований на реалізацію принципу захисту, названого "детектування й примус", опис якого виконано з посиланням на Фіг.70-74.
Для реалізації принципу захисту за допомогою детектування й примусу визначаються: - щонайменше одна характеристика виконання програми, яка може бути проконтрольована, щонайменше 2о частково, у пристрої 6; - щонайменше один критерій, що його слід дотримуватися щонайменше для однієї характеристики виконання програми; - засоби 17 детектування, що їх необхідно застосовувати у пристрої б і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію; с - засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформувати систему З обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію. і)
Для реалізації принципу захисту за допомогою детектування й примусу конструюють також засоби експлуатації, що дозволяють перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і засоби 16 обробки, на пристрій 6, який щонайменше реалізує засоби 17 детектування й засоби 18 примусу. «о зо На Фіг.70 показані засоби, необхідні для реалізації принципу захисту за допомогою детектування й примусу.
Пристрій 6 містить засоби 17 детектування й засоби 18 примусу, що належать засобам 16 обробки. Засоби 18 со примусу одержують інформацію про недотримання критерію від засобів 17 детектування. «-
Точніше кажучи, засоби 17 детектування використовують інформацію, що виходить від засобів 13 передачі і/або від засобів 15 запам'ятовування і засобів 16 обробки, щоб дотримувалася одна або декілька характеристик ї- з5 Виконання програми. Кожній характеристиці виконання програми зіставляється щонайменше один критерій, що ча його слід дотримуватися.
У випадку якщо виявлено, що принаймні одна характеристика виконання програми не задовольняє щонайменше одному критерію, засоби 17 детектування інформують про це засоби 18 примусу. Ці засоби 18 примусу адаптовані для зміни відповідним чином стану пристрою 6. «
Для реалізації принципу захисту шляхом детектування й примусу мають бути вибрані також: з с - щонайменше одна характеристика виконання контрольованої програми, серед характеристик виконання, які
Й можуть бути проконтрольовані; и?» щонайменше один критерій, що його слід дотримуватися щонайменше для однієї вибраної характеристики виконання програми; - у вихідному коді 2уз уразливої програми, - щонайменше один алгоритм, для якого потрібно контролювати -І щонайменше одну характеристику виконання програми; - у вихідному коді 2уз уразливої програми, - щонайменше один фрагмент, що містить щонайменше один
Ш- вибраний алгоритм. - За виконання цих умов щонайменше один вибраний фрагмент коду 2уз уразливої програми модифікується, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що саме в ході виконання захищеної со програми 2р:
Ф - щонайменше один фрагмент першої виконуваної частини 2рез, яка виконується в системі З обробки даних, враховує, що принаймні одна характеристика виконання вибраної програми має бути проконтрольована, щонайменше частково, у пристрої 6; 5Б - друга виконувана частина 2рец, яка виконується у пристрої 6, контролює, щонайменше частково, одну характеристику виконання вибраної програми. (Ф, В ході виконання програми 2р, захищеної за допомогою принципу детектування й примусу, в присутності ка пристрою 6 має місце така ситуація: - якщо всі критерії, що відповідають усім контрольованим характеристикам виконання всіх модифікованих бо фрагментів захищеної програми 2р, дотримані, ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 2р функціонує належним чином; - якщо ж щонайменше одного з критеріїв, що відповідає характеристиці контрольованого виконання одного фрагмента захищеної програми 2р, не дотримано, система З обробки даних інформується про це і/або функціонування фрагмента захищеної програми 2р модифікується таким чином, щоб функціонування захищеної 65 програми 2р було змінено.
Природно, що за відсутності пристрою 6 принаймні один запит одного фрагмента першої виконуваної частини
2рез захищеної програми 2р на використання пристрою 6 не може бути коректно виконаний, так що щонайменше ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною.
Для реалізації принципу захисту шляхом детектування й примусу краще використовувати два типи характеристики виконання програми.
Перший тип характеристики виконання програми відповідає змінній контролю виконання програми, а другий тип відповідає профілю використання програми. Ці обидва типи характеристик можуть використовуватися незалежно або в поєднанні.
Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику 7/0 Виконання програми змінну контролю виконання програми, мають бути визначені: - у засобах 15 запам'ятовування - можливість запам'ятати принаймні одну змінну контролю, що служить як кількісна характеристика використання щонайменше однієї функціональної можливості програми; - у засобах 17 детектування - можливість спостерігати принаймні одне порогове значення, зв'язане з кожною змінною контролю; - засоби поновлення, що дозволяють поновити кожну змінну контролю залежно від використання функціональної можливості, з якою вона зв'язана.
Конструюють також засоби експлуатації, які задіюють, окрім засобів 17 детектування і засобів 18 примусу, також засоби поновлення.
Крім того, у вихідному коді 2уз уразливої програми вибираються: - щонайменше одна функціональна можливість уразливої програми 2Уу, використання якої можна проконтролювати за допомогою змінної для кількісного контролю; - щонайменше одна змінна для кількісного контролю, що служить як кількісна характеристика зазначеної функціональної можливості; - щонайменше одне порогове значення, зв'язане зі змінною для кількісного контролю і відповідне межі сч ов Використання зазначеної функціональної можливості; о - Її щонайменше один метод поновлення змінної для кількісного контролю відповідно до використання зазначеної функціональної можливості.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина Ге зо 2реи: - поновлює значення змінної для кількісного контролю відповідно до використання зазначеної функціональної со можливості; «- - і бере до уваги щонайменше одне перевищення порогового значення.
Іншими словами, в ході виконання захищеної програми 2р значення змінної для кількісного контролю ї-
Зб Поновлюється відповідно до використання зазначеної функціональної можливості, й у разі перевищення ї- порогового значення засобу 17 детектування інформують про це засоби 18 примусу, які приймають рішення, пристосоване до того, щоб проінформувати систему З обробки даних і/або модифікувати обробку, здійснювану засобами 16 обробки. Це дозволяє модифікувати функціонування фрагмента захищеної програми 2р таким чином, щоб функціонування захищеної програми 2р було змінене. «
Для реалізації першого кращого варіанта реалізації принципу захисту за допомогою детектування й примусу, з с що використовує як характеристику змінну для кількісного контролю, визначають: - щонайменше для однієї змінної для кількісного контролю - декілька відповідних порогових значень; ;» - Ї різноманітні засоби примусу, що відповідають кожному з цих порогових значень.
У вихідному коді 2уз уразливої програми вибираються також: - щонайменше одна змінна для кількісного контролю, що служить як кількісна характеристика використання -І щонайменше однієї функціональної можливості програми, з якою мають бути зв'язані декілька порогових значень, що відповідають різноманітним межам використання зазначеної функціональної можливості; - - Ї щонайменше два порогових значення, зв'язані зі змінною для кількісного контролю. - Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної 5р програми. Ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи: со - поновлює значення змінної для кількісного контролю відповідно до використання зазначеної функціональної
Ф можливості; - і по-різному враховує перевищення різноманітних порогових значень.
Іншими словами, у звичайному випадку в ході виконання захищеної програми 2р при перевищенні першого в порогового значення пристрій б інформує систему З обробки даних, даючи команду захищеній програмі 2р більше не використовувати цю функціональну можливість. Якщо ж захищена програма 2р продовжує (Ф, використовувати цю функціональну можливість, то може бути перевищене друге порогове значення. В разі ка перевищення другого порогового значення засоби 18 примусу можуть зробити непрацездатною вибрану функціональну можливість і/або зробити непрацездатною захищену програму 2р. 60 Для реалізації другого кращого варіанта принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю, визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю.
Конструюють також засоби експлуатації, де застосовані, крім засобів 17 детектування, засобів 18 примусу й 65 засобів поновлення, також і засоби перезавантаження.
Крім того, у вихідному коді 2уз уразливої програми вибирається щонайменше одна змінна для кількісного контролю, що служить для обмеження використання щонайменше однієї функціональної можливості програми, для якої існує можливість дозволу на щонайменше одне додаткове використання.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що у фазі, названій фазою перезавантаження, принаймні одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене.
У фазі перезавантаження відбувається поновлення щонайменше однієї вибраної змінної для кількісного контролю і/або щонайменше одного пов'язаного порогового значення, щоб дозволити щонайменше одне 7/0 додаткове використання відповідної функціональної можливості. Іншими словами, у фазі перезавантаження забезпечується можливість дозволити додаткові використання щонайменше однієї функціональної можливості захищеної програми 2р.
Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику профіль використання програми, як критерій, що його слід дотримуватися для цього профілю використання, має /5 бути визначена щонайменше одна ознака виконання програми.
Крім того, у вихідному коді 2уз уразливої програми вибирають: - щонайменше один профіль використання, що його слід контролювати; - Її щонайменше одну ознаку виконання, що її слід дотримуватися щонайменше в одному профілі використання.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реим дотримується всіх вибраних ознак виконання.
Іншими словами, пристрій 6 сам контролює той спосіб, яким виконується друга виконувана частина 2рем, і може інформувати систему З обробки даних і/або модифікувати функціонування захищеної програми 2р в разі, сч г якщо не дотримується хоча б одна ознака виконання.
В ході виконання програми 2р, захищеної на основі даного принципу, в присутності пристрою б має місце і) така ситуація: - якщо всіх ознак виконання всіх модифікованих фрагментів захищеної програми 2р, дотримано, то ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 20;.ЙК(О0 зо функціонує належним чином; - якщо ж хоча б однієї ознаки виконання одного фрагмента захищеної програми 2р не дотримано, про це со інформується система З обробки даних і/або функціонування фрагмента захищеної програми 2р модифікується «- таким чином, щоб функціонування захищеної програми 2р було змінено.
Можна передбачити контроль різноманітних ознак виконання, наприклад, контроль наявності інструкцій, що - містять генератор міток, або контроль зчеплення виконання щонайменше однієї частини інструкцій. ї-
Для реалізації принципу захисту шляхом детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій, визначають: - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої 6; - набір команд інструкцій для цього набору інструкцій, причому ці команди інструкцій можуть бути виконані «
В системі З обробки даних. Виконання кожної з цих команд інструкцій у системі З обробки даних викликає у пт») с пристрої 6 виконання відповідної інструкції; . - засоби 17 детектування, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному; и?» - засоби 18 примусу, що дозволяють проінформувати систему З обробки даних і/або модифікувати виконання програми, якщо зчеплення інструкцій не відповідає бажаному.
Конструюють також засоби експлуатації що дозволяють пристрою б виконувати інструкції з набору -І інструкцій, причому виконання цих інструкцій викликається виконанням команд інструкцій у системі З обробки даних.
Ш- Крім того, у вихідному коді 2у5 уразливої програми вибирається щонайменше один алгоритм, що має бути - винесений у пристрій 6 і для якого варто контролювати зчеплення щонайменше частини інструкцій.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної со програми. Ця модифікація така, що в ході виконання захищеної програми 2р:
Ф - друга виконувана частина 2реи виконує щонайменше функціональну можливість вибраного алгоритму; - вибраний алгоритм розкладається на інструкції; - задане зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій у ході їхнього виконання у ов пристрої 6; - перша виконувана частина 2рез захищеної програми 2р виконує команди інструкцій, які запускають
Ф) виконання інструкцій у пристрої 6. ка В ході виконання програми гр, захищеної на основі цього принципу, в присутності пристрою 6 має місце така ситуація: во - якщо зчеплення інструкцій усіх модифікованих фрагментів захищеної програми 2р відповідає бажаному, ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 2р функціонує належним чином; - якщо ж зчеплення інструкцій фрагмента захищеної програми 2р, виконуваних у пристрої 6, не відповідає бажаному, то система З обробки даних інформується про це і/або функціонування фрагмента захищеної 65 програми 2р модифікується таким чином, щоб функціонування захищеної програми 2р було змінене.
На Фіг.71 наведений приклад реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій у випадку, якщо бажаного зчеплення дотримано.
Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує
Команди СІ; інструкцій, що викликає у пристрої 6 виконання інструкцій і;, що належать до набору інструкцій. У наборі інструкцій щонайменше деякі з інструкцій містять частину, що задає функціональну можливість інструкції, ії частину, що дозволяє перевіряти бажане зчеплення для виконання інструкцій. У цьому прикладі команди Сі; інструкцій подані як ТКІС(і)), а бажане зчеплення для виконання інструкцій є і, дні і іп». Виконання у пристрої 6 інструкції і, дає результат а, а виконання інструкції ід-4 дає результат Б. Інструкція ідо використовує 7/0 як операнд результатиаіїр інструкцій і, і ід-я, а її виконання дає результат с.
З урахуванням того, що це зчеплення інструкцій, виконуваних у пристрої 6, відповідає бажаному, функціонування захищеної програми 2р відповідає нормальному, або номінальному режиму.
На Фіг.72 наведений приклад реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше /5 частини інструкцій у випадку, якщо бажаного зчеплення не дотримано.
Відповідно до цього приклада бажане зчеплення для виконання інструкцій є завжди і дл, ід і іл. Проте зчеплення виконання інструкцій модифікується заміною інструкції і 4 на інструкцію Її таким чином, що насправді виконуваним зчепленням є Її", ідч4 і іп». Виконання інструкції ії дає результат а, тобто той самий результат, що й виконання інструкції ід. Проте не пізніше, ніж при виконанні інструкції ід-», засоби 17 детектування виявляють, що інструкція Ї у не відповідає бажаній інструкції для вироблення результату а, використовуваного як операнд для інструкції ідо. Засоби 17 детектування інформують про це засоби 18 примусу, які модифікують, як наслідок, функціонування інструкції і дю, таким чином, що виконання інструкції і дя» дає результат с, який може відрізнятися від с.
Зрозуміло, якщо виконання інструкції ї 4 дає результат а", відмінний від результату а інструкції ід, ясно, Що сч г результат виконання інструкції ідо може також відрізнятися від с.
Отже, якщо зчеплення виконання інструкцій, виконуваних у пристрої 6, не відповідає бажаному, можна і) одержати модифікацію функціонування захищеної програми 2р.
На Фіг.73 і 74 показаний кращий варіант реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання «о зо щонайменше частини інструкцій. Відповідно до цього кращого варіанта визначається набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі со результату. «-
Як показано на Фіг.73, щонайменше для частини інструкцій, що працюють на регістрах, визначена частина
РЕ, що задає функціональну можливість інструкції, й частина РЕ, що задає бажане зчеплення для виконання ї- інструкцій. Частина РЕ відповідає коду операцій, відомому фахівцеві. Частина РЕ, що визначає бажане ї- зчеплення, містить бітові поля, що відповідають: - полю СП ідентифікації інструкції; - ї для кожного операнда К інструкції, де К пробігає значення від 1 до К, К - число операндів інструкції: - полю СО, прапора, що вказує, чи варто перевіряти походження операнда К, « - Її полю СІР,; ідентифікації, передбаченої для операнда й що вказує на очікувану ідентичність інструкції, з с яка згенерувала вміст операнда К.
Як показано на Фіг.74, набір інструкцій містить М регістрів, що належать засобам 16 обробки, де кожний ;» регістр названий К., (м пробігає значення від 1 до М). Для кожного регістра Ку визначаються два поля, як-от: - функціональне поле СК, відоме фахівцеві й яке дозволяє зберігати результат виконання інструкцій; - і поле Сібу, генерованої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої -І інструкції, що повернула свій результат у вказаний регістр, тобто такої, що згенерувала вміст функціонального поля СЕ, Це поле Сібу генерованої ідентифікації поновлюється автоматично разом із вмістом поля СІЇ
Ш- ідентифікації інструкції, зеенерувавши функціональне поле СЕу/. Поле Сіб,, генерованої ідентифікації не є ані - доступним, ані таким, що модифікується, для будь-якої іншої інструкції й служить винятково для засобів 17 детектування. со В ході виконання інструкції засоби 17 детектування виконують для кожного операнда к такі операції:
Ф - зчитується поле СО, прапора; - якщо цього вимагає поле СО, прапора, то зчитуються обидва поля: поле СІР,, передбаченої ідентифікації і поле СіІС,, генерованої ідентифікації, відповідне регістрам, використовуваним операндом К; - перевіряється рівність обох полів СІР, і СІб,; - Її, якщо рівність хибна, то засоби 17 детектування вважають, що зчеплення виконання інструкцій не (Ф, дотримано. ка Засоби 18 примусу мають дозволяти модифікувати результат виконання інструкцій, коли засоби 17 детектування проінформують їх про недотримання зчеплення інструкцій. Краща реалізація полягає в тому, щоб бо модифікувати функціональну частину РЕ виконуваної інструкції або функціональну частину РЕ наступних інструкцій.
Відповідно до іншої кращої характеристики винаходу спосіб захисту націлений на реалізацію принципу захисту, названого "перейменування", опис якого виконано з посиланням на Фіг.80-85.
Для реалізації принципу захисту перейменуванням мають бути визначені: 65 - ансамбль залежних функцій, залежні функції якого можуть бути виконані за допомогою другої виконуваної частини 2реи у пристрої 6, можливо, з наступною передачею даних між системою З обробки даних і пристроєм 6
(причому цей ансамбль залежних функцій може бути кінцевим чи ні); - ансамбль команд запуску для цих залежних функцій, причому ці команди запуску можуть виконуватися в системі З обробки даних і викликати у пристрої 6 виконання відповідних залежних функцій; - для кожної команди запуску - настановний параметр, що відповідає, щонайменше частково, інформації, переданій першою виконуваною частиною 2рез другої виконуваної частини 2реи, щоб викликати запуск відповідної залежної функції причому цей настановний параметр представляється в формі щонайменше аргументу команди запуску; - метод перейменування настановних параметрів, призначений для застосування в ході модифікації /о вразливої програми і що дозволяє перейменувати настановні параметри таким чином, щоб одержати команди запуску з перейменованими параметрами, дозволяючи приховати ідентичність відповідних залежних функцій; - засоби 20 відновлення, призначені для застосування у пристрої 6 у фазі використання і що дозволяють відновити початкові настановні параметри виходячи з перейменованих настановних параметрів, щоб знайти залежну функцію, що її необхідно виконати.
Для реалізації принципу захисту перейменуванням конструюють також засоби експлуатації, що дозволяють перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і засоби 16 обробки, на пристрій 6, що застосовує щонайменше засоби 20 відновлення.
Для реалізації принципу захисту перейменуванням у вихідному коді 2у5 уразливої програми мають бути також вибрані: - щонайменше один алгоритм обробки, що використовує щонайменше один операнд і що видає щонайменше один результат; - Ї щонайменше один фрагмент вихідного коду 2уз уразливої програми, що містить щонайменше один вибраний алгоритм.
Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної сч ов програми. Ця модифікація така, що: - в ході виконання захищеної програми 2р щонайменше один фрагмент першої виконуваної частини 2рев, і) виконуваної в системі З обробки даних, враховує, що функціональна можливість щонайменше одного вибраного алгоритму виконується у пристрої 6; - в ході виконання захищеної програми 2р друга виконувана частина 2реи, яка виконується у пристрої 6, Ге зо виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму; - кожний вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми 2р кожний со вибраний алгоритм виконується за допомогою другої виконуваної частини 2реим, використовуючи залежні функції. п
Кожний вибраний алгоритм краще розкладається на залежні функції Та, (де п пробігає значення від 1 до М), як-от: - можливо, на одну або декілька залежних функцій, що дозволяють надати один або декілька операндів для - зв пристрою б, ї- - на залежні функції, деякі з яких використовують один або декілька операндів і які в поєднанні здійснюють функціональну можливість вибраного алгоритму, що використовує ці операнди, - і, можливо, на одну або декілька залежних функцій, що дозволяють за допомогою пристрою 6 надати системі З обробки даних результат виконання вибраного алгоритму; « - в ході виконання захищеної програми 2р друга виконувана частина 2реи виконує залежні функції та; з с - в ході виконання захищеної програми 2р ці залежні функції запускаються командами запуску з перейменованими настановними параметрами; ;» - Її впорядкування команд запуску вибрано серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р.
Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує -І команди запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані настановні параметри. Це викликає у пристрої 6 відновлення за допомогою засобів 20 відновлення настановних
Ш- параметрів, а потім виконання, за допомогою другої виконуваної частини 2реи, кожної з вищезгаданих залежних - функцій та.
Іншими словами, принцип захисту за допомогою перейменування полягає в тому, щоб перейменувати со настановні параметри команд запуску, щоб одержати команди запуску з перейменованими настановними
Ф параметрами, виконання яких у системі З обробки даних викликає у пристрої б виконання залежних функцій, що запускалися б командами запуску з не перейменованими настановними параметрами, проте без того, щоб вивчення захищеної програми 2р дозволило визначити ідентичність виконуваних залежних функцій.
На Фіг.80 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2м у системі З обробки даних у даний момент часу має місце розрахунок 2--К(Х, У), що відповідає іФ) присвоєнню змінній 7 результату виконання алгоритму, поданого функцією Е і що використовує операнди Х і У. ко На Фіг.81 ії 82 наведений приклад реалізації винаходу. На Фіг.81 наведений приклад часткової реалізації винаходу. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини бо 2рез захищеної програми 2р у присутності пристрою 6 здійснюються: - у моменти ї, й - виконання елементарних команд СО., СО», що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реи, відповідних залежних функцій та;, та», які забезпечують передачу даних Х, М з системи З обробки даних у області пам'яті відповідно х і у, розташовані в засобах 15 запам'ятовування пристрою 6, причому ці команди СО, СО» запуску подані відповідно як ОШТх, Х), ОТ (у, ХУ); 65 - у моменти з 5 до їм.4 - виконання команд запуску з СОз до СОМ, що викликає у пристрої б виконання за допомогою другої виконуваної частини 2реи відповідних залежних функцій з їт4з до Так, причому ці команди запуску з СЮОз до СОк.4 подані відповідно як ТКІС(Таз) -ТКІС(Так 1), причому послідовність залежних функцій з Таз до їТак.я, виконуваних у поєднанні, алгоритмічно еквівалентна функції Е (точніше кажучи, виконання цих команд запуску призводить до виконання у пристрої б залежних функцій з Таз до їду, які використовують уміст областей пам'яті х, у і повертають результат у область пам'яті 72 пристрою 6); - а у момент їх здійснюється виконання команди СО у запуску, що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2рец, залежної функції їТЯу, що забезпечує передачу результату виконання алгоритму, що міститься в області пам'яті 2 пристрою 6, системі З обробки даних, щоб присвоїти його змінній 7. Ця команда подана як ІМ(2). 70 У даному прикладі, щоб цілком реалізувати винахід, як настановний параметр вибраний перший аргумент команд ОТ запуску й аргумент команд ТКС і ІМ запуску. Вибрані таким чином настановні параметри перейменовуються за методом перейменування настановних параметрів. Таким чином, настановні параметри команд запуску з СО і до СОум, як-от х, у, Таз, Т4к.я, 2 перейменовуються так, щоб одержати відповідно К(х), ККУ), (аз)... (Там), (г).
На Фіг.82 наведений приклад повної реалізації винаходу. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, здійснюються: - у моменти ї/, й - виконання команд СОСКУ, СОСК» запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані настановні параметри К(х), К(У), а також дані Х, У, що викликає у пристрої 6 відновлення (за допомогою засобів 20 відновлення) перейменованих настановних параметрів, щоб відновити настановні параметри, як-от ідентичність областей пам'яті х, у, а потім виконання, за допомогою другої виконуваної частини 2реи, відповідних залежних функцій 14.4, тд», що забезпечують передачу даних Х, У від системи З обробки даних до областей пам'яті відповідно х, у, розташованих у засобах 15 запам'ятовування пристрою б (ці команди СОСК., СОСК»о запуску з перейменованими настановними параметрами подані сч ов Відповідно як ООТ (Р), Х), ОТ (КУ), Х); - у моменти з із до Її - виконання команд СОСК»з до СОСКУ 1 запуску з перейменованими настановними і) параметрами, що передають у пристрій 6 перейменовані настановні параметри з К(Тд4з) до К(Так.4), що викликає у пристрої 6 відновлення за допомогою засобів 20 відновлення настановних параметрів, як-от з їй з до Гак, а потім виконання, за допомогою другої виконуваної частини 2реи, залежних функцій з Таз до Так, причому ці Ге зо Команди (з СОСКз до СОСКМ. 1) запуску з перейменованими настановними параметрами подані відповідно командами ТКІС (К(аз)) до ТКІС (Как); со - у момент Її - виконання команди СОСК у запуску з перейменованими настановними параметрами, що "(чл передає у пристрій 6 перейменовані настановні параметри К(7). Це викликає у пристрої 6 відновлення, за допомогою засобів 20 відновлення, настановних параметрів, а саме ідентичності області пам'яті 7, а потім в.
Зв Виконання, за допомогою другої виконуваної частини 2рец, залежної функції ТЯ ху, що забезпечує передачу ї- результату виконання алгоритму, що міститься в області пам'яті 2 пристрою 6, системі З обробки даних, щоб присвоїти його змінній 7. Ця команда СОСКУ запуску з перейменованими настановними параметрами подана як
ІЖ(Р(2)).
У наведеному прикладі команди запуску з перейменованими настановними параметрами з 1 до М «
Виконуються послідовно. Слід зазначити, що можна зробити два такі вдосконалення. в с - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом (у цьому випадку деякі команди ;» запуску з перейменованими настановними параметрами, що служать для передачі, можуть бути вилучені). - Друге вдосконалення має на меті належне впорядкування команд запуску з перейменованими настановними параметрами серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р. -І У цьому відношенні краще вибрати таке впорядкування команд запуску з перейменованими настановними параметрами, яке розділяє в часі виконання залежних функцій, вставляючи між ними ділянки коду, виконуваного
Ш- в системі З обробки даних, і що містить (або що не містить) при цьому команди запуску з перейменованими - настановними параметрами, що служать для визначення інших даних. Фіг.83 і 84 ілюструють принцип такої реалізації. со На Фіг.83 наведений приклад виконання уразливої програми 2у. У цьому прикладі в системі З обробки даних
Ф у ході виконання вразливої програми 2у відбувається виконання двох алгоритмів, що приводять до визначення 7 і 7 таких, що 7--Е(Х, Хі 2-Х, У.
На Фіг.84 наведений приклад реалізації способу згідно з винаходом, у якому обидва вибраних на Фіг.83 алгоритми винесені у пристрій 6. Відповідно до цього прикладу в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, має місце, як пояснюється іФ) вище, виконання команд (з СОСКУ до СОСКУ) запуску з перейменованими настановними параметрами, що ко відповідає визначенню 7, і виконання команд (з СОСК. до СОСКу) запуску з перейменованими настановними параметрами, що відповідає визначенню 7. Як показано, команди запуску з СОСК; до СОСКУ; не виконуються бо послідовно, оскільки з ними чергуються команди запуску з СОСКУ до СОСКУ, а також інші фрагменти коду. В цьому прикладі, таким чином, реалізоване таке впорядкування: СОСК 4, вставлений фрагмент коду, СОСКУ,
СОС», вставлений фрагмент коду, СОСК», СОСКУ, вставлений фрагмент коду, СОСК/, СОСК»з, СОСК,,..., сосСскМ СОСКУ.
Слід зазначити, що в ході виконання фрагмента першої виконуваної частини 2рез захищеної програми 2р 65 Команди запуску з перейменованими настановними параметрами, що виконуються в системі З обробки даних, викликають у пристрої 6 відновлення ідентичності відповідних залежних функцій, а потім їхнє виконання. Таким чином, у присутності пристрою б цей фрагмент виконується коректно й, отже, захищена програма 2р є повнофункціональною.
На Фіг.85 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р виконання команди запуску з перейменованими настановними параметрами жодного моменту не може викликати ні відновлення настановних параметрів, ані виконання відповідної залежної функції через відсутність пристрою 6. Значення, що його необхідно присвоїти змінній 7, отже, не може бути визначене коректно.
Таким чином, вважається, що за відсутності пристрою б щонайменше один запит одного фрагмента першої 7/0 виконуваної частини 2рез захищеної програми 2р на запуск відновлення настановних параметрів і виконання у пристрої залежної функції у пристрої б не може бути коректно виконаний, так що щонайменше ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною.
Завдяки цьому принципу захисту за допомогою перейменування вивчення в захищеній програмі 2р команд запуску з перейменованими настановними параметрами не дозволяє визначити ідентичність залежних функцій, /5 що мали бути виконані у пристрої 6. Слід зазначити, що перейменування настановних параметрів здійснюється в ході перетворення вразливої програми 2м на захищену програму 2р.
Відповідно до варіанта принципу захисту за допомогою перейменування мало бути визначено щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску з різноманітними перейменованими настановними параметрами. В цьому варіанті принаймні один алгоритм, що використовує залежні функції, розкладається на залежні функції так, що принаймні одна з них замінюється залежною функцією того ж сімейства, замість того, щоб зберігати декілька входжень тієї самої залежної функції. З цією метою команди запуску з перейменованими настановними параметрами модифікуються, щоб урахувати заміну залежних функцій на залежні функції того ж сімейства.
Іншими словами, дві залежні функції з одного сімейства мають різноманітні настановні параметри, й, отже, сч
Команди запуску з різноманітними перейменованими настановними параметрами. Тому при вивченні захищеної програми 2р неможливо виявити, що викликані залежні функції алгоритмічно еквівалентні. і)
Відповідно до першої кращої реалізації варіанта принципу захисту за допомогою перейменування визначається щонайменше для однієї залежної функції алгоритмічно еквівалентне сімейство залежних функцій шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що Ге зо Виконується у пристрої 6.
У відповідності з другою кращою реалізацією варіанта принципу захисту за допомогою перейменування со щонайменше для однієї залежної функції визначається алгоритмічно еквівалентне сімейство залежних функцій 3 п використанням полів ідентифікації.
Відповідно до кращого варіанта реалізації принципу захисту за допомогою перейменування як метод ї- з5 перейменування настановних параметрів задається метод кодування, що дозволяє кодувати настановні ча параметри для їхнього перетворення на перейменовані настановні параметри. Варто нагадати, що перейменування настановних параметрів здійснюється у фазі Р захисту. Для цього кращого варіанта засоби 20 відновлення являють собою засоби, що застосовують метод декодування, що дозволяє декодувати перейменовані настановні параметри і відновити таким чином ідентичність залежних функцій, що їх потрібно «
Виконати у пристрої 6. Ці засоби відновлення застосовуються у пристрої 6 і можуть бути як програмними, так і з с апаратними. Засоби 20 відновлення запитуються у фазі Ю використання щоразу, коли команда запуску з перейменованими настановними параметрами виконується в системі З обробки даних з метою викликати у ;» пристрої б виконання залежної функції.
Відповідно до іншої кращої характеристики винаходу спосіб захисту спрямований на реалізацію принципу
Захисту, названого "умовним переходом", опис якого проілюстровано Фіг.90-92. -І Для реалізації принципу захисту за допомогою умовного переходу у вихідному коді 2у85 уразливої програми вибирається щонайменше один умовний перехід ВС. Вибирається також щонайменше один фрагмент вихідного
Ш- коду 2уз уразливої програми, що містить щонайменше один вибраний умовний перехід ВС. - У даному варіанті щонайменше один вибраний фрагмент коду 2уз уразливої програми модифікується, щоб 5р одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми со 2р:
Ф - щонайменше один фрагмент першої виконуваної частини 2рез, який виконується в системі З обробки даних, враховує те, що функціональна можливість принаймні одного вибраного умовного переходу ВС виконується у пристрої 6; - друга виконувана частина 2реш, що виконується у пристрої б, виконує щонайменше функціональну можливість щонайменше одного вибраного умовного переходу ВС і надає системі З обробки даних інформацію,
Ф) що дозволяє першій виконуваній частині 2рез продовжити своє виконання у вибраному місці. ка Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує команди умовних переходів, що викликає у пристрої б виконання, за допомогою другої виконуваної частини бо греч, винесених умовних переходів бБс, функціональні можливості яких еквівалентні функціональним можливостям вибраних умовних переходів ВС. Для реалізації принципу захисту за допомогою умовного переходу пристрій 6 містить засоби 15 запам'ятовування і засоби 16 обробки.
На Фіг.90 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу має місце умовний перехід ВС, що вказує вразливій 65 програмі 2у місце, де варто продовжити її виконання, як-от одне з трьох можливих місць В 4, Во або Вз. Варто розуміти, що умовний перехід ВС приймає рішення продовжити виконання програми в місці В., Во або Вз.
На Фіг.91 наведений приклад реалізації винаходу, в якому умовний перехід, відібраний для переносу у пристрій 6, відповідає умовному переходові ВС.
У цьому прикладі в ході виконання у системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 мають місце: - у момент Її - виконання команди СВС 3 умовного переходу, що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реш, винесеного умовного переходу рс, алгоритмічно еквівалентного умовному переходові ВС, причому ця команда СВО. умовного переходу подана як ТКІС(БЬс); - І у момент ї5 - передача пристроєм 6 системі З обробки даних інформації, що дозволяє першій виконуваній /о частині 2рез продовжити своє виконання у вибраному місці, як-от, В, Во або В».
Слід зазначити, що в ході виконання фрагмента першої виконуваної частини 2рез захищеної програми 2р команди умовних переходів, які виконуються в системі З обробки даних, запускають виконання відповідних винесених умовних переходів у пристрої 6. Таким чином, вважається, що в присутності пристрою б ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною.
На Фіг.92 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: - у момент і виконання команди СВС. умовного переходу не може викликати виконання винесеного умовного переходу Ббс, з огляду на відсутність пристрою 6; - і у момент їй спроба передачі інформації, що дозволяє першій виконуваній частині 2рез продовжити 2о виконання у вибраному місці, не може бути успішною у зв'язку з відсутністю пристрою 6.
Таким чином, за відсутності пристрою б щонайменше один запит одного фрагмента першої виконуваної частини 2рез на запуск виконання винесеного умовного переходу у пристрої 6 не може бути коректно виконаний.
Тому щонайменше ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною. сч
У попередньому описі, проілюстрованому на Фіг.90-92, даний винахід спрямований на винос у пристрій 6 одного умовного переходу. Зрозуміло, кращий варіант здійснення винаходу може полягати в передачі у пристрій і) 6 серії умовних переходів, глобальні функціональні можливості яких еквівалентні ансамблю функціональних можливостей винесених умовних переходів. Виконання глобальних функціональних можливостей цієї серії винесених умовних переходів призводить до того, що системі З обробки даних дається інформація, що дозволяє (ду зо першій виконуваній частині 2рез захищеної програми 2р продовжити своє виконання у вибраному місці.
У попередньому описі, проілюстрованому Фіг.40-92, шість різноманітних принципів захисту програми були со пояснені в загальному вигляді незалежно один від іншого. Спосіб захисту згідно з винаходом може бути «- реалізований із застосуванням принципу захисту за допомогою змінної, до якого можна додати один або декілька інших принципів захисту. В разі, коли принцип захисту за допомогою змінної доповнюється реалізацією ї- з5 Щонайменше одного іншого принципу захисту, принцип захисту за допомогою змінної краще доповнити (М принципом захисту за допомогою розділення в часі і/або принципом захисту за допомогою елементарних функцій.
Якщо таким чином застосовується принцип захисту за допомогою розділення в часі, то він може бути доповнений, у свою чергу, принципом захисту за допомогою елементарних функцій і/або принципом захисту за « допомогою умовного переходу. в с Якщо таким чином застосовується принцип захисту за допомогою елементарних функцій, то він може бути
Й доповнений, у свою чергу, принципом захисту за допомогою детектування й примусу і/або принципом захисту за а допомогою перейменування, і/або принципом захисту за допомогою умовного переходу.
Якщо таким чином застосовується принцип захисту за допомогою детектування й примусу, то він може бути доповнений, у свою чергу, принципом захисту за допомогою перейменування і/або принципом захисту за -І допомогою умовного переходу. І якщо також застосовується принцип захисту за допомогою перейменування, то він може бути доповнений, у свою чергу, принципом захисту за допомогою умовного переходу.
Ш- Відповідно до кращого варіанта реалізації принцип захисту за допомогою змінної доповнюється принципом - захисту за допомогою розділення в часі, доповненим принципом захисту за допомогою елементарних функцій, доповненим принципом захисту за допомогою детектування й примусу, доповненим принципом захисту за со допомогою перейменування, доповненим принципом захисту за допомогою умовного переходу.
Ф У випадку, коли на додаток до принципу захисту за допомогою змінної застосований якийсь інший принцип захисту, щоб врахувати таку комбіновану реалізацію винаходу, наведений вище опис має містити такі модифікації: 5Б - поняття вразливої програми має розумітися в сенсі вразливості програми відносно до описуваного принципу захисту. Так, у випадку, коли принцип захисту вже був застосований до вразливої програми, вираз "уУразлива (Ф, програма" має інтерпретуватися як вираз "програма, захищена за допомогою одного або декількох уже ка застосованих принципів захисту"; - поняття захищеної програми має розумітися в сенсі захищеності програми відносно до описуваного бр принципу захисту. Так, у випадку, коли принцип захисту вже був застосований, вираз "захищена програма" має інтерпретуватися читачем як вираз "нова версія захищеної програми"; - один або декілька виборів, зроблений (зроблених) для реалізації описуваного принципу захисту, має (мають) враховувати вибір(и), зроблений (зроблені) для реалізації вже застосованого (застосованих) одного або декількох принципів захисту. 65 Подальший опис дозволяє краще зрозуміти реалізацію способу захисту згідно з винаходом. У цьому способі захисту згідно з винаходом здійснюють, як це уточнюється на Фіг.100:
- спочатку фазу Р захисту, в ході якої вразлива програма 2М перетворюється на захищену програму 2р; - потім фазу ОО використання, в ході якої захищена програма 2р використовується, причому в фазі використання: - за присутності пристрою б кожного разу, коли цього вимагає фрагмент першої виконуваної частини 2рев, виконуваної в системі З обробки даних, належна функціональна можливість виконується у пристрої 6 таким чином, що ця частина виконується коректно, й, отже, захищена програма 2р є повнофункціональною, - за відсутності пристрою 6, незважаючи на запит фрагмента першої виконуваної частини 2рез, на виконання функціональної можливості у пристрої б, цей запит не може бути коректно задоволений, так що принаймні ця /о частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною; - , можливо, фазу К перезавантаження, в ході якої дозволяється щонайменше одне додаткове використання функціональної можливості, захищеної шляхом реалізації другого кращого варіанта реалізації принципу захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю.
Фаза Р захисту може бути розкладена на дві підфази Р. і Ро захисту. Перша, названа вхідною, підфаза Рі /5 захисту реалізується незалежно від підлягаючої захисту вразливої програми 2М. Друга, названа вихідною, підфаза Ро захисту залежить від підлягаючої захисту вразливої програми 2М. Слід зазначити, що вхідна і вихідна підфази Р. і Ро захисту можуть бути реалізовані двома різноманітними особами або групами. Наприклад, вхідна підфаза Р. захисту може бути реалізована співробітником або організацією, що здійснюють розробку систем захисту програм, тоді як вихідна підфаза Р 5» захисту може бути реалізована співробітником або
Організацією, що здійснюють розробку програм, що їх слід захистити. Зрозуміло, ясно, що вхідна і вихідна підфази Р. і Ро захисту можуть бути реалізовані й одним співробітником або однією організацією.
Вхідна підфаза Р. захисту задіює декілька стадій 544, ... Зі), для Кожної з яких необхідно виконати декілька задач або завдань.
Перша стадія цієї вхідної підфази Р. захисту називається "стадією 544 визначень". У ході цієї стадії 5414 сч г визначень: - вибираються: і) - тип пристрою 6, як-от - пристрій зберігання або пристрій обробки і зберігання. Для приклада можна як пристрій 6 вибрати пристрій 8 читання карт з мікрочипом і карту з мікрочипом, зв'язану з пристроєм 8 читання, - і засоби 12, 13 передачі, призначені для застосування відповідно в системі З обробки даних і у пристрої Ге зо 5 У фазі О використання і здатні забезпечувати передачу даних між системою З обробки даних і пристроєм 6; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою елементарних со функцій, визначаються також: «- - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої 6, - Ї набір елементарних команд для цього набору елементарних функцій, причому ці елементарні команди ї- зв Можуть бути виконані в системі З обробки даних, викликаючи виконання у пристрої б елементарних функцій; ї- - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, мають бути передбачені також: - щонайменше одна характеристика виконання програми, яка може бути проконтрольована, щонайменше частково, у пристрої 6, « - щонайменше один критерій, що його слід дотримуватися щонайменше для однієї характеристики виконання -птш) с програми, . - засоби 17 детектування, що їх необхідно застосовувати у пристрої б і які дозволяють виявити, що а принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформувати систему 45. 3 обробки даних і/або модифікувати хід виконання програми, якщо хоча б одного критерію не дотримано; -І - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, мають бути ш- визначені також: - - як характеристика виконання програми, яка може бути проконтрольована, - змінна для кількісного контролю 5р Використання однієї функціональної можливості програми, со - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною змінною
Ф для кількісного контролю, - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; - причому в разі, коли спосіб захисту згідно з винаходом задіює перший кращий варіант реалізації принципу
Захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, мають бути передбачені також: (Ф) - щонайменше для однієї змінної для кількісного контролю - декілька відповідних порогових значень, ка - Ї різноманітні засоби примусу, що відповідають кожному з цих порогових значень; - причому в разі, коли спосіб захисту згідно з винаходом задіює другий кращий варіант реалізації принципу бо Захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, передбачаються також засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування 65 й примусу, що використовує як характеристику профіль використання програми, мають бути передбачені також: - як характеристика виконання програми, яка може бути проконтрольована, - профіль використання програми, - і як критерій, що його слід дотримуватися, - щонайменше одна ознака виконання програми; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання, мають передбачатися також: - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої 6, - набір команд інструкцій для зазначеного набору інструкцій, причому ці команди інструкцій можуть бути виконані в системі З обробки даних, викликаючи у пристрої 6 виконання інструкцій, 70 - як профіль використання - зчеплення інструкцій, - якознака виконання - бажане зчеплення для виконання інструкцій, - як засоби 17 детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному, - і як засоби 18 примусу - засоби, що дозволяють інформувати систему З обробки даних і/або модифікувати 7/5 функціонування фрагмента захищеної програми 2р, якщо зчеплення інструкцій не відповідає бажаному; - а у випадку, коли спосіб захисту згідно з винаходом задіює кращий варіант реалізації принципу захисту шляхом детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання, мають передбачатися також: - як набір інструкцій - набір інструкцій, з якого щонайменше деякі інструкції працюють на регістрах і
Використовують щонайменше один операнд для видачі результату, - щонайменше для однієї частини інструкцій, що працюють на регістрах: - частина РЕ, що задає функціональну можливість інструкції, - їчастина, що задає бажане зчеплення для виконання інструкцій і що містить бітові поля, що відповідають: - полю СП ідентифікації інструкції, сч - і для кожного операнда інструкції: - полю СО, прапора, і) - і полю СІР,; ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовуваного набором інструкцій, - поле СіІб, генерованої ідентифікації в якому автоматично запам'ятовується ідентифікація останньої Ге зо інструкції, що повернула свій результат у цей регістр, - як засоби 17 детектування - засоби, що дозволяють у ході виконання інструкції для кожного операнда, со якщо цього вимагає поле СО прапора, контролювати рівність між полем Сібу генерованої ідентифікації, що "де відповідає регістру, використовуваному цим операндом, і полем СІР,, передбаченої ідентифікації початкової адреси цього операнда, - - і як засоби 18 примусу - засоби, що дозволяють модифікувати результат інструкції, якщо принаймні одна з ї- контрольованих рівностей хибна; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою перейменування, мають передбачатися також: - як команда запуску - елементарна команда або команда інструкції, « - як залежна функція - елементарна функція або інструкція, з с - як настановний параметр, - щонайменше один аргумент для команди запуску, що відповідає щонайменше . частково інформації, переданій системою З обробки даних на пристрій 6, щоб викликати запуск відповідної и?» залежної функції, - метод перейменування настановних параметрів, що дозволяє перейменувати настановні параметри, щоб одержати команди запуску з перейменованими параметрами, -І - і засоби 20 відновлення, призначені для застосування у пристрої 6 у фазі О використання і що дозволяють знову знайти залежну функцію, що її слід виконати, виходячи з перейменованого настановного параметра, ш- - причому в разі, коли спосіб захисту згідно з винаходом задіює варіант принципу захисту за допомогою - перейменування, визначається також, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані настановні параметри бо яких є різноманітними,
Ф - а у випадку, коли спосіб захисту згідно з винаходом задіює ту чи іншу кращу реалізацію варіанта принципу захисту за допомогою перейменування, визначається також, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій: - шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, яка виконується в пристрої 6,
Ф) - або шляхом використання поля СІЇ ідентифікації інструкції та поля СІР у передбаченої ідентифікації ка операндів; - причому в разі, коли спосіб захисту згідно з винаходом задіює кращий варіант принципу захисту за бо допомогою перейменування, мають передбачатися також: - як метод перейменування настановних параметрів - метод кодування для кодування настановних параметрів, - і як засоби 20 відновлення - засоби, що застосовують метод декодування для декодування перейменованих настановних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої 6. 65 В ході вхідної під фази захисту за стадією 5.4; і визначення йде стадія, названа "стадією 5425 конструювання".
В ході такої стадії 542 конструюються засоби 12, 13 передачі і, можливо, засоби експлуатації, що відповідають визначенням стадії 544 визначення.
В ході цієї стадії 542 конструювання здійснюють, отже: - конструювання засобів 12, 13 передачі, що дозволяють, у ході фази І використання здійснювати передачу даних між системою З обробки даних і пристроєм 6; - якщо також застосовується принцип захисту за допомогою елементарних функцій, - побудову засобів експлуатації, що дозволяють пристрою б у фазі ОО використання виконувати елементарні функції з набору елементарних функцій; - м, якщо також застосовується принцип захисту за допомогою детектування й примусу, - конструювання: 70 - засобів експлуатації, що дозволяють пристрою б у фазі ОО використання також залучити засоби 17 детектування і засоби 18 примусу, - і, можливо, засобів експлуатації, що дозволяють пристрою 6 у фазі О використання також залучити засоби поновлення, - а також, можливо, засобів експлуатації, що дозволяють пристрою 6 у фазі перезавантаження задіяти також /5 засоби перезавантаження, - а також, можливо, засобів експлуатації, що дозволяють пристрою б у фазі ОО використання виконувати інструкції з набору інструкцій; - ії, якщо також застосовується принцип захисту за допомогою перейменування, - конструювання засобів експлуатації, що дозволяють пристрою 6 у фазі ) використання задіяти також засоби відновлення.
Конструювання засобів експлуатації здійснюють звичайним чином, за допомогою пристрою розробки програм з урахуванням визначень, уведених на стадії 544 визначень. Подібний пристрій описаний далі і проїілюстрований
Фіг.110.
В ході вхідної підфази Р. захисту за стадією 5412 конструювання може йти стадія, названа "стадією з 13 передперсоналізації". В ході цієї стадії 513 передперсоналізації щонайменше засоби 13 передачі й засоби сч ов експлуатації завантажуються щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один передперсоналізований пристрій 66. Слід зазначити, що частина засобів експлуатації, бувши перенесена у і) передперсоналізований пристрій 66, більше не є досяжною безпосередньо ззовні цього передперсоналізованого пристрою 66. Передача засобів експлуатації у незадіяний пристрій 60 може бути реалізована за допомогою адаптованого пристрою передперсоналізації описаного далі і опроіїлюстрованого Фіг120. У випадку «о зо передперсоналізованого пристрою 66, що складається з карти 7 з мікрочипом і пристрою 8 її читання, передперсоналізація стосується тільки карти 7 з мікрочипом. со
В ході вхідної підфази Р. захисту, після стадії 544 визначень і, можливо, після стадії 542 конструювання, може «- бути здійснена також стадія, названа "стадією З 44 виготовлення засобів". У ході цієї стадії 544 виготовлення засобів виробляються засоби, що дозволяють допомогти створенню захищених програм або автоматизувати - з5 Захист програм. Такі засоби дозволяють: ча - допомогти вибрати або автоматично вибрати у вразливій програмі 2у, що її потрібно захистити: - одну або декілька змінних, що можуть бути винесені у пристрій 6, - фрагменти, які можуть бути змінені, - якщо також застосовується принцип захисту за допомогою розділення в часі, - один або декілька « алгоритмів, що можуть бути розкладені на етапи, що їх можна винести у пристрій 6, з с - якщо також застосовується принцип захисту за допомогою елементарних функцій, - один або декілька . алгоритмів, що можуть бути розкладені на елементарні функції, що їх можна винести у пристрій 6, а - Її, якщо також застосовується принцип захисту за допомогою детектування й примусу, - одну або декілька характеристик виконання, що їх необхідно проконтролювати, і, можливо, один або декілька алгоритмів, які
Можуть бути розкладені на інструкції, що їх можна винести у пристрій 6, -І - якщо також застосовується принцип захисту за допомогою перейменування, - один або декілька алгоритмів, які можуть бути розкладені на залежні функції, що їх можна винести у пристрій б і для яких настановні ш- параметри команд запуску можуть бути перейменовані, - - ії, якщо також застосовується принцип захисту за допомогою умовного переходу, - один або декілька 5р умовних переходів, функціональна можливість яких може бути винесена у пристрій 6; со - , можливо, допомогти створити захищені програми або автоматизувати
Ф захист програм.
Ці різноманітні засоби можуть бути реалізовані незалежно або в поєднанні, причому кожний засіб може набувати різноманітних форм, наприклад, являти собою передпроцесор, асемблер, компілятор тощо. За вхідною ов Підфазою Р. захисту йде вихідна підфаза Ро захисту, що залежить від підлягаючої захисту вразливої програми 2м. Ця вихідна підфаза Ро захисту також передбачає декілька стадій. Перша стадія, що відповідає реалізації
Ф) принципу захисту за допомогою змінної, називається "стадія 5 24 створення". В ході цієї стадії 524 створення ка використовується вибір, зроблений на стадії 54414 визначень. За допомогою цього вибору і, можливо, засобів, сконструйованих на стадії 544 виготовлення засобів, захищена програма 2р створюється: во - за допомогою вибору у вихідному коді 2уз уразливої програми: - щонайменше однієї змінної, яка, в ході виконання вразливої програми 2у, частково визначає її стан, - ї щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну; - за допомогою створення вихідного коду 2рз захищеної програми на основі вихідного коду 2уз уразливої програми модифікацією щонайменше одного вибраного фрагмента коду 2уз уразливої програми, причому ця 65 модифікація така, що в ході виконання захищеної програми 2р щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться у незадіяному пристрої 60, який тим самим перетворюється на пристрій 6;
- і за допомогою створення першої частини 2роз об'єктного коду захищеної програми 2р на основі вихідного коду 2рз захищеної програми, причому ця перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р реалізується перша виконувана частина 2рез, яка виконується в системі З обробки даних, і щонайменше в одній частині якої враховується, що принаймні одна змінна або одна копія змінної знаходиться у пристрої 6.
Зрозуміло, принцип захисту за допомогою змінної згідно з винаходом може бути застосований безпосередньо в ході розробки нової програми без необхідності попередньої реалізації вразливої програми 2у. Таким чином, захищена програма 2р безпосередньо утворюється в ході вихідної підфази Р» захисту. При цьому в разі, коли /о застосований щонайменше один інший принцип захисту, на додаток до принципу захисту за допомогою змінної, реалізується "стадія 52 моДИФІКації". В ході цієї стадії Зао модифікації використовуються визначення, введені на стадії 544 визначень. З використанням цих визначень і, можливо, засобів, сконструйованих на стадії 5 414 виготовлення засобів, захищена програма 2р модифікується таким чином, щоб дозволити реалізувати принципи захисту відповідно до одного з компонувань, визначених вище.
Коли застосовується принцип розділення в часі, захищена програма 2р модифікується в такий спосіб: - за допомогою вибору у вихідному коді 2рз захищеної програми: - щонайменше одного алгоритму, який у ході виконання захищеної програми 2р використовує щонайменше одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, - ї щонайменше одного фрагмента, що містить щонайменше один вибраний алгоритм; - за допомогою модифікації принаймні одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що: - в ході виконання захищеної програми 2р перша виконувана частина 2рез виконується в системі З обробки даних, а друга виконувана частина 2реи виконується у пристрої 6, який також містить засоби 16 обробки, - щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою с ов другої виконуваної частини 2реи, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної і) програми 2р реалізуються, за допомогою другої виконуваної частини 2реи, декілька різноманітних етапів, як-от: - надання щонайменше однієї змінної для пристрою 6, - реалізація у пристрої 6 функціональної можливості алгоритму, виконуваної щонайменше над цією змінною, Ге зо - ), можливо, надання щонайменше однієї результуючої змінної пристроєм 6 для системи З обробки даних, - щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання со захищеної програми 2р кожна команда етапу виконується за допомогою першої виконуваної частини 2рез і «- викликає у пристрої 6 виконання етапу за допомогою другої виконуваної частини 2реи, - причому впорядкування команд етапів вибране серед ансамблю впорядкувань, що дозволяють виконання - захищеної програми 2р; ї- - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р команди етапів виконуються відповідно до вибраного впорядкування, « - і другої частини 2рои об'єктного коду захищеної програми 2р, причому друга частина 2роід об'єктного -птв) с коду така, що після завантаження у незадіяний пристрій 60, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2рецй, за допомогою якої виконуються етапи, запуск виконання яких був ;» викликаний першою виконуваною частиною 2рез.
Коли застосовується принцип захисту за допомогою елементарних функцій, тоді як принцип захисту за
Допомогою розділення в часі не застосовується, захищена програма 2р модифікується: -І - за допомогою вибору у вихідному коді 2рз захищеної програми: - щонайменше одного алгоритму, який у ході виконання захищеної програми 2р використовує принаймні одну ш- вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, - - ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, со причому ця модифікація така, що:
Ф - в ході виконання захищеної програми 2р перша виконувана частина 2рез виконується в системі З обробки даних, а друга виконувана частина 2реи виконується у пристрої 6, - щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою в другої виконуваної частини 2реи, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної
Ф) програми 2р цей алгоритм виконується за допомогою другої виконуваної частини 2рец із застосуванням ка елементарних функцій, - щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код 2рз бо захищеної програми таким чином, що в ході виконання захищеної програми 2р кожна елементарна команда виконується за допомогою першої виконуваної частини 2рез і викликає у пристрої 6 виконання, за допомогою другої виконуваної частини 2реи, елементарної функції, - причому впорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконання захищеної програми 2р; 65 - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така що в ході виконання захищеної програми 2р елементарні команди виконуються відповідно до вибраного впорядкування, - і другої частини 2рои об'єктного коду захищеної програми 2р, що містить засоби експлуатації, причому ця друга частина 2рои об'єктного коду така, що після завантаження в незадіяний пристрій 60, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2ре, за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною 2резв.
Коли принципи захисту за допомогою розділення в часі й за допомогою елементарних функцій застосовані разом, захищена програма 2р модифікується: 70 - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше одного етапу, який у ході виконання захищеної програми 2р здійснює функціональну можливість алгоритму; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що: - щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми 2р цей етап виконується за допомогою другої виконуваної частини 2реи із застосуванням елементарних функцій, - щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код 2рз захищеної програми таким чином, що в ході виконання захищеної програми 2р кожна елементарна команда виконується за допомогою першої виконуваної частини 2рез і викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реи, елементарної функції, - і впорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконати захищену програму 2р; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така що в ході виконання захищеної програми 2р елементарні команди виконуються відповідно до сч вибраного впорядкування, - і другої частини 2рои об'єктного коду захищеної програми 2р, що містить також засоби експлуатації, і) причому ця друга частина 2роци об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2ре, за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною 2рев5. Коли застосовується Ге зо принцип захисту за допомогою детектування й примусу, то захищена програма 2р модифікується: - за допомогою вибору серед характеристик виконання, які можуть бути проконтрольовані щонайменше однієї со характеристики виконання контрольованої програми; «- - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми; - - за допомогою вибору у вихідному коді 2рз захищеної програми елементарних функцій, для яких слід ї- контролювати щонайменше одну характеристику виконання контрольованої програми; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р щонайменше одна характеристика виконання програми контролюється за допомогою другої виконуваної частини 2реи і недотримання критерію « призводить до інформування системи З обробки даних і/або до модифікації виконання захищеної програми 2р; з с - Її за допомогою створення другої частини 2рои об'єктного коду захищеної програми 2р, що містить засоби . експлуатації, що задіюють також засоби 17 детектування і засоби 18 примусу, причому ця друга частина 2рои и?» об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р щонайменше одна характеристика виконання програми контролюється і недотримання критерію призводить до інформування бистеми З обробки даних і/або до модифікації виконання захищеної програми 2р. -І Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, захищена програма 2р модифікується:
Ш- - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної - для кількісного контролю використання однієї функціональної можливості програми; - за допомогою вибору: со - щонайменше однієї функціональної можливості захищеної програми 2р, використання якої можна
Ф проконтролювати з використанням змінної для кількісного контролю, - щонайменше однієї змінної для кількісного контролю, яка служить як кількісна характеристика використання згаданої функціональної можливості, 5Б - щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і відповідної межі використання згаданої функціональної можливості, (Ф) - Її щонайменше одного методу поновлення значення змінної для кількісного контролю відповідно до ка використання згаданої функціональної можливості; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, бо причому ця модифікація така, що в ході виконання захищеної програми 2р змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини грец, залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення.
Для реалізації першого кращого варіанта принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю, захищена програма 2р модифікується: 65 - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї змінної для кількісного контролю, з якою мають зв'язуватися декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості; - за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного контролю; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини 2реи різноманітним способом.
Для реалізації другого кращого варіанта принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю, захищена програма 2р модифікується: 70 - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання функціональної можливості, для якої має існувати можливість дозволити щонайменше одне додаткове використання; - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому ця модифікація така, що в фазі, названій фазою перезавантаження, щонайменше одне додаткове використання щонайменше однієї 7/5 функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене.
Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику профіль використання програми, захищена програма 2р модифікується: - за допомогою вибору як характеристики виконання контрольованої програми щонайменше профілю
Використання програми; - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи сч дотримується всіх вибраних ознак виконання.
Для реалізації принципу захисту шляхом детектування й примусу, де як ознака виконання, що її слід і) дотримуватися, використовується контроль зчеплення виконання, захищена програма 2р модифікується: - за допомогою модифікації принаймні одного вибраного фрагмента коду 2рз захищеної програми: - за допомогою перетворення елементарних функцій на інструкції, Ге зо - за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої 6, со - ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають «- використовуваним інструкціям.
Коли застосовується принцип захисту за допомогою перейменування, захищена програма 2р модифікується: - - за допомогою вибору у вихідному коді 2рз захищеної програми команди запуску; ї- - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми шляхом перейменування настановних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій; - і за допомогою створення: « - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного -птв) с коду така, що в ході виконання захищеної програми 2р виконуються команди запуску з перейменованими настановними параметрами, ;» - Її другої частини 2роїд об'єктного коду захищеної програми 2р, що містить засоби експлуатації, що використовують також засоби 20 відновлення, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р ідентичність залежних функцій, виконання -І яких запускається першою виконуваною частиною 2рез, відновлюється за допомогою другої виконуваної частини 2реи, а залежні функції виконуються за допомогою другої виконуваної частини 2реи.
Ш- Для реалізації варіанта принципу захисту перейменуванням захищена програма 2р модифікується: - - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї команди запуску з перейменованими настановними параметрами; со - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми
Ф шляхом заміни щонайменше перейменованих настановних параметрів команди запуску з вибраним набором настановних параметрів на інші перейменовані настановні параметри, що викликає запуск залежної функції з того ж сімейств. 5Б Коли застосовується принцип захисту за допомогою умовного переходу, захищена програма 2р модифікується: (Ф, - за допомогою вибору у вихідному коді 2рх захищеної програми щонайменше одного умовного переходу, ка виконуваного щонайменше в одному вибраному алгоритмі; - за допомогою модифікації принаймні одного вибраного фрагмента коду 2рз захищеної програми, причому бо ця модифікація така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше одного вибраного умовного переходу виконується за допомогою другої виконуваної частини 2рец у пристрої 6; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше одного 65 вибраного умовного переходу виконується у пристрої 6, - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2реш, за допомогою якої виконується функціональна можливість щонайменше одного вибраного умовного переходу.
Для кращої реалізації принципу захисту за допомогою умовного переходу захищена програма 2р модифікується: - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї серії вибраних умовних переходів; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, 7/0 причому ця модифікація така, що в ході виконання захищеної програми 2р глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується за допомогою другої виконуваної частини 2реи у пристрої 6; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного /5 Коду така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої 6, - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2рец, за допомогою якої виконується глобальна функціональна можливість щонайменше
ОДНІЄЇ вибраної серії умовних переходів.
Зрозуміло, принципи захисту згідно з винаходом можуть бути застосовані безпосередньо в ході розробки нової програми без попередньої реалізації проміжних уразливих програм. Таким чином, стадії 524 створення і 522 модифікації можуть бути здійснені одночасно, щоб відразу одержати захищену програму 2р.
В ході вихідної підфази Ро захисту в разі, коли застосований щонайменше один інший принцип захисту, на сч ов додаток до принципу захисту за допомогою змінної, після стадії З 2і створення захищеної програми 2р і, можливо, після стадії З 2» модифікації реалізується стадія, названа "стадією З 23 персоналізації". В ході цієї (8) стадії 5оз персоналізації друга частина 2рои об'єктного коду, що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один пристрій 6.
Альтернативно, частина другої частини 2рои об'єктного коду, що, можливо, містить засоби експлуатації, Ге зо завантажується щонайменше в один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. Завантаження цієї персоналізуючої інформації дозволяє зробити працездатним щонайменше один со пристрій б. Слід зазначити, що частина цієї інформації, бувши перенесеною в пристрій б, недоступна -д безпосередньо ззовні цього пристрою 6. Передача інформації персоналізації в незадіяний пристрій 60 або у передперсоналізований пристрій 6б може бути реалізована за допомогою адаптованого пристрою - персоналізації, що описано далі і проілюстровано Фіг.150. ї-
У випадку пристрою б, що складається з карти 7 з мікрочипом і пристрою 8 її читання, персоналізація стосується тільки карти 7 з мікрочипом.
Різноманітні технічні засоби для реалізації фази Р захисту, які далі будуть описані докладніше, проілюстровані Фіг.110, 120, 130, 140 і 150. «
На Фіг.110 наведений приклад реалізації системи 25, що дозволяє реалізувати стадію 542 конструювання з з с урахуванням визначень, уведених на стадії 544 визначень, і в ході якої конструюються засоби 12, 13 передачі . і, можливо, засоби експлуатації, призначені для пристрою 6. Подібна система 25 містить пристрій розробки и?» програм або робочу станцію, що звичайно представляє собою комп'ютер, який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому встановлені такі програми: файлові редактори, асемблери, передпроцесори, компілятори, інтерпретатори, налагоджувачі й редактори зв'язків. -І На Фіг.120 наведений приклад реалізації пристрою 30 перед-персоналізації, що дозволяє завантажити щонайменше частково засоби 13 передачі і/або засоби експлуатації щонайменше в один незадіяний пристрій 60,
Ш- щоб одержати щонайменше передперсоналізований пристрій 66. Пристрій ЗО передперсоналізації містить засіб - 31 читання-запису, що дозволяє електрично передперсоналізувати незадіяний пристрій 60, щоб одержати передперсоналізований пристрій 66, у який завантажені засоби 13 передачі і/або засоби експлуатації. Пристрій со ЗО передперсоналізації може також містити фізичні засоби 32 передперсоналізації незадіяного пристрою 60, що
Ф представляють собою, наприклад, принтер. У випадку якщо пристрій 6 складається з карти 7 з мікрочипом і пристрою 8 її читання, передперсоналізація має відношення звичайно тільки до карти 7 з мікрочипом.
На Фіг.130 наведений приклад реалізації системи 35, що дозволяє здійснити виготовлення засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм. Подібна система 35 включає пристрій розробки програм або робочу станцію, що звичайно представляє собою комп'ютер,
Ф) який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому є такі програми: ка файлові редактори, асемблери, передпроцесори, компілятори, інтерпретатори, налагоджувачі й редактори зв'язків. во На Фіг.140 наведений приклад реалізації системи 40, що дозволяє прямо одержати захищену програму 2р або модифікувати вразливу програму 2у з метою одержати захищену програму 2р. Подібна система 40 включає пристрій розробки програми або робочу станцію, що звичайно представляє собою комп'ютер, який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому встановлені такі програми: файлові редактори, асемблери, передпроцесори, компілятори, інтерпретатори, налагоджувачі й редактори 65 ЗВ'язків, а також засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.
На Фіг.150 наведений приклад реалізації пристрою 45 персоналізації що дозволяє завантажити другу частину 2рои об'єктного коду щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один пристрій б, або частину другої частини 2рои об'єктного коду щонайменше в один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. Цей пристрій 45 персоналізації містить засіб 46
Читання-запису, що дозволяє електрично персоналізувати щонайменше один незадіяний пристрій 60 або щонайменше один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. По завершенні цієї персоналізації пристрій 6 містить інформацію, необхідну для виконання захищеної програми 2р.
Пристрій 45 персоналізації може також містити фізичні засоби 47 персоналізації щонайменше для одного пристрою 6, що представляє собою, наприклад, принтер. У випадку якщо пристрій 6 складається з карти 7 з 7/0 Мікрочипом і пристрою 8 її читання, персоналізація стосується звичайно тільки карти 7 з мікрочипом.
Спосіб захисту згідно з винаходом може бути реалізований з додатковими удосконаленнями. - Можна передбачити спільне використання множини пристроїв обробки і зберігання, між якими розподілена друга частина 2рои об'єктного коду захищеної програми 2р таким чином, що їхнє спільне виконання дозволяє виконати захищену програму 2р, відсутність же щонайменше одного з цих пристроїв обробки і зберігання /5 перешкоджає використанню захищеної програми 2р. - Аналогічно, після стадії 543 передперсоналізації й у ході стадії Зоз персоналізації частина другої частини 2рои об'єктного коду, необхідна для перетворення передперсоналізованого пристрою 66 на пристрій 6, може міститися в пристрої обробки і зберігання, використовуваному пристроєм 45 персоналізації, щоб обмежити доступ до цієї частини другої частини 2рои об'єктного коду. Зрозуміло, ця частина другої частини 2рои 2о об'єктного коду може бути розподілена між декількома пристроями обробки і зберігання таким чином, щоб ця частина другої частини 2рои об'єктного коду була доступною тільки в ході спільного використання цих пристроїв обробки і зберігання.

Claims (24)

Формула винаходу с 25 о
1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить щонайменше засоби (15) запам'ятовування, від неавторизованого використання уразливої програми (2у), яка функціонує на системі (3) обробки даних, який полягає в тому, що: «со зо а у фазі (Р) захисту: « створюють захищену програму (2р): со - за допомогою вибору у вихідному коді (2у5) уразливої програми: «- Ш щонайменше однієї змінної, яка в ході виконання уразливої програми (2у) частково визначає її стан, Ш ї щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну, в. 35 - за допомогою створення вихідного коду (2рз) захищеної програми на основі вихідного коду (2у5) уразливої чн програми модифікацією щонайменше одного вибраного фрагмента коду (2у5) уразливої програми, причому ця модифікація така, що в ході виконання захищеної програми (2р) щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться в незадіяному пристрої (60), який тим самим перетворюється на пристрій (6), - ії за допомогою створення першої частини (2ров) об'єктного коду захищеної програми (2р) на основі « вихідного коду (2рз) захищеної програми, причому перша частина (2роз) об'єктного коду така, що в ході з с виконання захищеної програми (2р) реалізується перша виконувана частина (2рев), яка виконується в системі (3) обробки даних і щонайменше один фрагмент якої враховує, що принаймні одна змінна або одна копія змінної :з» знаходиться у пристрої (б), а а у фазі ()) використання, в ході якої виконується захищена програма (2р): н- за наявності пристрою (б), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2рез), -І використовують змінну або копію змінної, що знаходиться у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; - н- тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини - (2ревз) використовувати змінну або копію змінної, що знаходиться у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, (ее) захищена програма (2р) не є повнофункціональною.
Ф
2. Спосіб за п. 1, який відрізняється тим, що: а у фазі (Р) захисту: - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми: Ш щонайменше одного алгоритму, який у ході виконання захищеної програми (2р) використовує щонайменше (Ф) одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, ГІ Ш ї щонайменше одного фрагмента, що містить щонайменше один вибраний алгоритм, - за допомогою модифікації принаймні одного вибраного фрагмента коду (2рз) захищеної програми, причому во чя модифікація така, що: Ш в ході виконання захищеної програми (2р) перша виконувана частина (2рез) виконується в системі (3) обробки даних, а друга виконувана частина (2рей) виконується у пристрої (6), що містить також засоби (16) обробки, Ш щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за б5 / Допомогою другої виконуваної частини (2рец), Ш щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми (2р) реалізуються, за допомогою другої виконуваної частини (2рец), декілька різноманітних етапів, як-от: - надання щонайменше однієї змінної для пристрою (б), - реалізація у пристрої (6) функціональних можливостей алгоритму, виконуваного щонайменше над цією змінною, - , можливо, надання принаймні однієї результуючої змінної пристроєм (6) для системи (3) обробки даних, Ш щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання захищеної програми (2р) кожна команда етапу виконується за допомогою першої виконуваної частини (2рез) і /о Викликає у пристрої (6) виконання етапу за допомогою другої виконуваної частини (2рец), Ш причому впорядкування команд етапів вибрано з масиву впорядкувань, що дозволяють виконання захищеної програми (2р), - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного /5 Коду така, що в ході виконання захищеної програми (2р) команди етапів виконуються відповідно до вибраного впорядкування, Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) об'єктного коду така, що після завантаження у незадіяний пристрій (60), в ході виконання захищеної програми (2р) реалізується друга виконувана частина (2рец), за допомогою якої виконуються етапи, запуск яких було викликано першою виконуваною частиною (2рез); "« ії завантажують другу частину (2роц) об'єктного коду в незадіяний пристрій (60) з одержанням пристрою (б), а а у фазі (3) використання: - за наявності пристрою (6), кожного разу, коли цього вимагає команда етапу, що міститься у фрагменті першої виконуваної частини (2ревз), виконують відповідний етап у пристрої (б) таким чином, щоб указаний сч об фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; н- тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини і) (2ревз) на запуск виконання етапу у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.
Ге зо
3. Спосіб за п. 1, який відрізняється тим, що: а у фазі (Р) захисту: со "- визначають: «- - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої (6), який містить також засоби (16) обробки, ї- - 1 набір елементарних команд для зазначеного набору елементарних функцій, причому зазначені ча елементарні команди можуть бути виконані в системі (3) обробки даних, викликаючи виконання у пристрої (6) елементарних функцій; - конструюють засоби експлуатації, що дозволяють перетворити незадіяний пристрій (60) на пристрій (6), здатний виконувати елементарні функції зі вказаного набору, причому виконання зазначених елементарних « функцій викликається виконанням елементарних команд у системі (3) обробки даних; з с - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми:
;» Ш щонайменше одного алгоритму, який у ході виконання захищеної програми (2р) використовує щонайменше одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну,
Ш ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм,
-І - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому зазначена модифікація така, що:
Ш- Ш в ході виконання захищеної програми (2р) перша виконувана частина (2рез) виконується в системі (3)
- обробки даних, а друга виконувана частина (2рец) виконується у пристрої (6),
Ш щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за со допомогою другої виконуваної частини (2рец),
Ф Ш щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми (2р) вказаний алгоритм виконується за допомогою другої виконуваної частини (2рец) із застосуванням елементарних функцій,
Ш щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код (2рз) захищеної програми таким чином, що в ході виконання захищеної програми (2р) кожна елементарна команда
Ф) виконується за допомогою першої виконуваної частини (2рез) і викликає у пристрої (6) виконання, за допомогою ка другої виконуваної частини (2реиц), елементарної функції,
Ш причому впорядкування елементарних команд вибирається з масиву впорядкувань, що дозволяють бо виконання захищеної програми (2р),
- і за допомогою створення:
Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) елементарні команди виконуються відповідно до вибраного впорядкування,
65 Ш ії другої частини (2рои) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, причому друга частина (2роиц) об'єктного коду така, що після завантаження в незадіяний пристрій (60), в ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною (2резв); "« ії завантажують другу частину (2роц) об'єктного коду в незадіяний пристрій (60) з одержанням пристрою (б), а а у фазі (3) використання: "- за наявності пристрою (6), кожного разу, коли цього вимагає елементарна команда, що міститься у фрагменті першої виконуваної частини (2рез), виконують відповідну елементарну функцію у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; 70 н- тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2рев) на запуск виконання у пристрої (6) елементарної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.
4. Спосіб за п. 2, який відрізняється тим, що: а у фазі (Р) захисту: "- визначають: - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої (6), - і набір елементарних команд для згаданого набору елементарних функцій, причому зазначені елементарні команди можуть бути виконані в системі (3) обробки даних, викликаючи виконання у пристрої (6) елементарних функцій; н« конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати елементарні функції з указаного набору, причому виконання зазначених елементарних функцій викликається виконанням елементарних команд у системі (3) обробки даних; "і модифікують захищену програму (2р): сч - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше одного етапу, який у ході виконання захищеної програми (2р) здійснює функціональну можливість алгоритму, і) - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому згадана модифікація така, що: Ш щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми «о зо (р) вказаний етап виконується за допомогою другої виконуваної частини (2рец) із застосуванням елементарних функцій, со Ш щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код (2рз) «- захищеної програми таким чином, що в ході виконання захищеної програми (2р) кожна елементарна команда виконується за допомогою першої виконуваної частини (2рез) і викликає у пристрої (6) виконання, за допомогою ї- другої виконуваної частини (2реиц), елементарної функції, ї- Ш ії впорядкування елементарних команд вибирається в масиві впорядкувань, що дозволяють виконання захищеної програми (2р), - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного « Коду така, що в ході виконання захищеної програми (2р) елементарні команди виконуються відповідно до з с вибраного впорядкування,
. Ш Її другої частини (2роц) об'єктного коду захищеної програми (2р), що містить також засоби експлуатації, и?» причому друга частина (2рои) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною (2рез), -І а а у фазі (3) використання: н- за наявності пристрою (6), кожного разу, коли цього вимагає елементарна команда, що міститься в частині Ш- першої виконуваної частини (2ревз), виконують відповідну елементарну функцію у пристрої (6) таким чином, щоб - указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; н- тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини со (2рез) на запуск виконання у пристрої (б) елементарної функції, не забезпечується можливість коректної Ф відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.
5. Спосіб за п. З або 4, який відрізняється тим, що: а у фазі (Р) захисту: "- визначають: (Ф, - щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше ка частково, у пристрої (б), - щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання бо програми, - засоби (17) детектування, що їх слід застосовувати у пристрої (б) і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби (18) примусу, що їх слід застосовувати у пристрої (6) і які дозволяють проінформувати систему (3) обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію; 65 « конструюють засоби експлуатації, що дозволяють пристрою (б) задіяти засоби (17) детектування й засоби (18) примусу;
"і модифікують захищену програму (2р): - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми з характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми, - за допомогою вибору у вихідному коді (2рз) захищеної програми елементарних функцій, для яких варто контролювати щонайменше одну характеристику виконання контрольованої програми, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, 7/0 причому вказана модифікація така, що в ході виконання захищеної програми (2р) принаймні одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини, (2рец) і недотримання критерію приводить до інформування системи (3) обробки даних і/або до модифікації виконання захищеної програми (2р), - Її за допомогою створення другої частини (2роц) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, що задіюють також засоби (17) детектування й засоби (18) примусу, причому друга частина (2роц) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) щонайменше одна характеристика виконання програми контролюється, і недотримання критерію приводить до інформування системи (3) обробки даних і/або до модифікації виконання захищеної програми (2р), а а у фазі (3) використання: н- за наявності пристрою (6): - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми (2р), дотримано, допускають номінальне функціонування згаданих фрагментів захищеної програми (2р) й, отже, номінальне функціонування захищеної програми (2р), - а якщо принаймні одного з критеріїв, що відповідають характеристиці контрольованого виконання одного сч ов фрагмента захищеної програми (2р), не дотримано, інформують систему (3) обробки даних про зазначене недотримання і/або модифікують функціонування фрагмента захищеної програми (2р) таким чином, щоб і) функціонування захищеної програми (2р) було змінене.
6. Спосіб за п. 5, який відрізняється тим, що: щоб обмежити використання захищеної програми (2р), Ге зо а у фазі (Р) захисту: "- визначають: со - як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю «- використання однієї функціональної можливості програми, - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною - змінною для кількісного контролю, ї- - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; « конструюють засоби експлуатації, що дозволяють пристрою (б) застосовувати засоби поновлення; "і модифікують захищену програму (2р): - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної « для кількісного контролю використання однієї функціональної можливості програми, з с - за допомогою вибору: . Ш щонайменше однієї функціональної можливості захищеної програми (2р), використання якої можна и?» проконтролювати з використанням змінної для кількісного контролю, Ш щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики Використання згаданої функціональної можливості, -І Ш щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і відповідного межі використання зазначеної функціональної можливості, - Ш ї щонайменше одного методу поновлення значення згаданої змінної для кількісного контролю залежно від - використання зазначеної функціональної можливості, - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, со причому зазначена модифікація така, що в ході виконання захищеної програми (2р) змінна для кількісного Ф контролю поновлюється за допомогою другої виконуваної частини (2реи), залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення, а а у фазі ()) використання, за наявності пристрою (б), у разі, коли виявлено щонайменше одне перевищення в порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2р) таким чином, щоб Ф) функціонування захищеної програми (2р) було змінене. ка 7. Спосіб за п. 6, який відрізняється тим, що: а у фазі (Р) захисту: 60 "- визначають: - декілька відповідних порогових значень щонайменше для однієї змінної для кількісного контролю, - і різноманітні засоби примусу, що відповідають кожному зі згаданих порогів; "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї змінної для кількісного б5 Контролю, з якою мають бути зв'язані декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості,
- за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного контролю, - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2р) перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини (2рец) різноманітними способами, а а у фазі (3) використання: н- за наявності пристрою (6): - у випадку, коли виявлено перевищення першого порогового значення, дають команду захищеній програмі 7/0 гр) не використовувати надалі відповідну функціональну можливість, - а у разі, коли виявлено перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми (2р).
8. Спосіб за п. 6 або 7, який відрізняється тим, що: а у фазі (Р) захисту: " визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю; « конструюють засоби експлуатації, що дозволяють також пристрою (6) задіяти засоби перезавантаження; "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість дозволу щонайменше на одне додаткове використання, - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому згадана модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної сч можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене, а а у фазі перезавантаження: і) «- поновлюють щонайменше одну вибрану змінну для кількісного контролю і щонайменше одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості.
9. Спосіб за п. 5, який відрізняється тим, що: Ге зо а у фазі (Р) захисту: "- визначають: со - як характеристику виконання програми, яка може бути проконтрольована, - профіль використання «- програми, - і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми; - "і модифікують захищену програму (2р): ї- - за допомогою вибору як характеристики виконання контрольованої програми щонайменше одного профілю використання програми, - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання, « - ії за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, пев) с причому зазначена модифікація така, що в ході виконання захищеної програми (2р) друга виконувана частина . (2рец) дотримується всіх вибраних ознак виконання, и?» а а у фазі (3) використання, за наявності пристрою (6) у випадку, якщо виявлено, що не дотримується хоча б одна ознака виконання, інформують про це систему (3) обробки даних і/або модифікують функціонування частини захищеної програми (2р) так, щоб функціонування захищеної програми (2р) було змінено. -І 10. Спосіб за п. 9, який відрізняється тим, що: а у фазі (Р) захисту: ш- "- визначають: - - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої (б), - набір команд інструкцій для зазначеного набору інструкцій, причому команди інструкцій можуть бути со виконані в системі (3) обробки даних, викликаючи у пристрої (6) виконання інструкцій, Ф - як профіль використання -- зчеплення інструкцій, - як ознаку виконання - бажане зчеплення для виконання інструкцій, - як засоби (17) детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає 5Б бажаному, - як засоби (18) примусу - засоби, що дозволяють проінформувати систему (3) обробки даних і/або Ф) модифікувати функціонування фрагмента захищеної програми (2р), якщо зчеплення інструкцій не відповідає ка бажаному; «- конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати інструкції з набору інструкцій, бо причому виконання зазначених інструкцій викликається виконанням команд інструкцій у системі (3) обробки даних; "і модифікують захищену програму (2р): - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми: Ш за допомогою перетворення елементарних функцій на інструкції, 65 Ш за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої (б),
Ш ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають використовуваним інструкціям, а а у фазі (ОО) використання, в присутності пристрою (6), у випадку, якщо виявлено, що зчеплення Виконуваних у пристрої (6) інструкцій не відповідає бажаному, інформують про це систему (3) обробки даних мабо модифікують функціонування фрагмента захищеної програми (2р) так, щоб функціонування захищеної програми (2р) було змінене.
11. Спосіб за п. 10, який відрізняється тим, що: а у фазі (Р) захисту: 70 "- визначають: - як набір інструкцій - набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату, - щонайменше для частини інструкцій, що працюють на регістрах: Ш частину (РЕ), що задає функціональну можливість інструкції, Ш їі частину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, що відповідають: - полю (СІЇ) ідентифікації інструкції, - Ї для кожного операнда інструкції: х полю (СО) прапора, хі полю (СІР,) ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле (СІбу) передбаченої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр, - як засоби (17) детектування - засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле (СО) прапора, контролювати рівність між полем (Сібу) генерованої ідентифікації, сч ов Відповідним регістру, використовуваному згаданим операндом, і полем (СІРК) передбаченої ідентифікації о початкової адреси цього операнда, - і як засоби (18) примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.
12. Спосіб по п. 3, 4 або 10, який відрізняється тим, що: «о зо а у фазі (Р) захисту: "- визначають: со - як команду запуску - елементарну команду або команду інструкції, «- - як залежну функцію - елементарну функцію або інструкцію, - як установний параметр - щонайменше один аргумент для команди запуску, що відповідає щонайменше - Зв частково інформації, переданій системою (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рев) на запуск виконання у пристрої (б) залежної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що щонайменше вказаний фрагмент не виконується коректно й, отже, захищена програма 65 (2р) не є повнофункціональною.
13. Спосіб за п. 12, який відрізняється тим, що:
а у фазі (Р) захисту: - визначають, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані установні параметри яких є різними; "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї команди запуску з перейменованими установними параметрами, - і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми шляхом заміни щонайменше перейменованих установних параметрів команди запуску з вибраним набором /о установних параметрів на інші перейменовані установні параметри, що викликає запуск залежної функції з того ж сімейства.
14. Спосіб за п. 13, який відрізняється тим, що включає: а у фазі (Р) захисту визначення, щонайменше для однієї залежної функції, сімейства алгоритмічно еквівалентних залежних функцій - шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що виконується у пристрої (6), - або шляхом використання поля (СІЇ) ідентифікації інструкції і поля (СІР ) ідентифікації, передбаченої для операнда.
15. Спосіб за п. 12, 13 або 14, який відрізняється тим, що: а у фазі (Р) захисту визначають: - як метод перейменування установних параметрів - метод кодування для кодування установних параметрів, - і як засоби (20) відновлення - засоби, що застосовують метод декодування для декодування перейменованих установних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої (6). сч
16. Спосіб за будь-яким з пп. 2-15, який відрізняється тим, що: а у фазі (Р) захисту: і) - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі обробки, «о зо - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2р) функціональна можливість со принаймні одного вибраного умовного переходу виконується за допомогою другої виконуваної частини (2реш), У "пе пристрої (б), - і за допомогою створення: - Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного ї- коду така, що в ході виконання захищеної програми (2р) функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої (б), Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) « реалізується друга виконувана частина (2рем), за допомогою якої виконується функціональна можливість з с щонайменше одного вибраного умовного переходу, а а у фазі (3) використання: ;» н- за наявності пристрою (б), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2рез), виконують у пристрої (6) функції щонайменше одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; -І "- а за відсутності пристрою (б), незважаючи на запит фрагмента першої виконуваної частини (2рев) на виконання функцій умовного переходу у пристрої (6), не забезпечується можливість коректної відповіді на ш- вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) - не є повнофункціональною.
17. Спосіб за п. 16, який відрізняється тим, що у фазі (Р) захисту модифікують захищену програму (2р): со - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї серії вибраних Ф умовних переходів, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2р) глобальна функціональна дв Можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої (6) за допомогою другої виконуваної частини (2рец), (Ф, - і за допомогою створення: ка Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) функціональна можливість принаймні однієї вибраної бо серії умовних переходів виконується у пристрої (6), Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) реалізується друга виконувана частина (2рецш), за допомогою якої виконується глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів. 65
18. Спосіб за будь-яким з пп. 1-17, який відрізняється тим, що розкладають фазу (Р) захисту на вхідну підфазу (Р.) захисту, не залежну від програми, що захищається, і на вихідну підфазу (Р) захисту, залежну від програми, що захищається.
19. Спосіб за п. 18, який відрізняється тим, що в ході вхідної підфази (Р.) захисту задіюють стадію (544) визначень, на якій виконуються всі визначення.
20. Спосіб за п. 19, який відрізняється тим, що після стадії (544) визначень задіюють стадію конструювання (542), на якій створюються засоби експлуатації.
21. Спосіб за п. 20, який відрізняється тим, що після стадії (542) конструювання задіюють стадію (з 45) передперсоналізації, яка полягає в тому, що завантажують у незадіяний пристрій (60) принаймні частину засобів експлуатації, щоб одержати передперсоналізований пристрій (66). 70
22. Спосіб за п. 19 або 20, який відрізняється тим, що в ході вхідної підфази (Рі) захисту задіюють стадію (544) виготовлення засобів, на якій виготовляються засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.
23. Спосіб за п. 18 або 21, який відрізняється тим, що вихідну підфазу (Ро) захисту розкладають на: « стадію (524) створення, на якій на основі уразливої програми (2у) створюється захищена програма (2р); " можливо, стадію (522) модифікації, на якій модифікується захищена програма (2р); " і, можливо, стадію (З»2з) персоналізації, на якій: - друга частина (2роц) об'єктного коду захищеної програми (2р), що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій (60), щоб одержати щонайменше один пристрій (б), - або частина другої частини (2роц) об'єктного коду захищеної програми (2р), що, можливо, містить засоби 2о експлуатації, завантажується щонайменше в один передперсоналізований пристрій (66), щоб одержати щонайменше один пристрій (6).
24. Спосіб за п. 22 або 23, який відрізняється тим, що в ході стадії (524) створення і, можливо, стадії (5 22) модифікації використовують принаймні один із засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм. сч щі 6) (Се) (ее) «- ча - -
с . и? -І -І - (ее) 4) іме) 60 б5
UA2004010469A 2001-07-31 2002-04-07 Method for protecting software against unauthorized use by a controlled variable UA77186C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0110250A FR2828305B1 (fr) 2001-07-31 2001-07-31 Procede pour proteger un logiciel a l'aide d'un principe dit de "variable" contre son utilisation non autorisee
PCT/FR2002/002338 WO2003012649A2 (fr) 2001-07-31 2002-07-04 Procede pour proteger un logiciel a l'aide de 'variables' contre son utilisation non autorisee

Publications (1)

Publication Number Publication Date
UA77186C2 true UA77186C2 (en) 2006-11-15

Family

ID=8866125

Family Applications (1)

Application Number Title Priority Date Filing Date
UA2004010469A UA77186C2 (en) 2001-07-31 2002-04-07 Method for protecting software against unauthorized use by a controlled variable

Country Status (29)

Country Link
EP (1) EP1412861A2 (uk)
JP (1) JP3949107B2 (uk)
KR (1) KR100940347B1 (uk)
CN (1) CN1288525C (uk)
AP (1) AP2004002958A0 (uk)
AU (1) AU2002325998B2 (uk)
BR (1) BR0211374A (uk)
CA (1) CA2454090A1 (uk)
CO (1) CO5550508A2 (uk)
CR (1) CR7231A (uk)
EA (1) EA005465B1 (uk)
EC (1) ECSP044951A (uk)
FR (1) FR2828305B1 (uk)
GE (1) GEP20053647B (uk)
HK (1) HK1070155A1 (uk)
HR (1) HRP20040049A2 (uk)
HU (1) HUP0400228A2 (uk)
IL (1) IL159953A0 (uk)
IS (1) IS7121A (uk)
MA (1) MA26126A1 (uk)
MX (1) MXPA04000488A (uk)
NO (1) NO20040232L (uk)
OA (1) OA12699A (uk)
PL (1) PL367366A1 (uk)
TN (1) TNSN04012A1 (uk)
UA (1) UA77186C2 (uk)
WO (1) WO2003012649A2 (uk)
YU (1) YU5404A (uk)
ZA (1) ZA200400348B (uk)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852415B1 (fr) * 2003-03-11 2005-06-24 Actikey Support de type cle, de controle de l'acces a des donnees et/ou a un logiciel et procede correspondant
CN107194212B (zh) * 2017-06-21 2020-04-17 株洲中车时代电气股份有限公司 一种显示器源代码中协议内容的保护方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1999066387A1 (fr) * 1998-06-12 1999-12-23 Gemplus Procede de controle de l'execution d'un produit logiciel
US6668325B1 (en) * 1997-06-09 2003-12-23 Intertrust Technologies Obfuscation techniques for enhancing software security

Also Published As

Publication number Publication date
FR2828305B1 (fr) 2010-09-03
ZA200400348B (en) 2005-03-30
CO5550508A2 (es) 2005-08-31
WO2003012649A2 (fr) 2003-02-13
EA200400057A1 (ru) 2004-06-24
TNSN04012A1 (fr) 2006-06-01
CN1535410A (zh) 2004-10-06
WO2003012649A3 (fr) 2003-12-24
EP1412861A2 (fr) 2004-04-28
GEP20053647B (en) 2005-10-25
PL367366A1 (en) 2005-02-21
HUP0400228A2 (en) 2004-09-28
KR20040027881A (ko) 2004-04-01
HRP20040049A2 (en) 2004-06-30
IL159953A0 (en) 2004-06-20
CN1288525C (zh) 2006-12-06
JP3949107B2 (ja) 2007-07-25
OA12699A (en) 2006-06-23
AP2004002958A0 (en) 2004-03-31
CA2454090A1 (fr) 2003-02-13
MXPA04000488A (es) 2005-03-07
YU5404A (sh) 2006-08-17
AU2002325998B2 (en) 2008-10-30
EA005465B1 (ru) 2005-02-24
FR2828305A1 (fr) 2003-02-07
ECSP044951A (es) 2004-04-28
KR100940347B1 (ko) 2010-02-04
JP2004537806A (ja) 2004-12-16
MA26126A1 (fr) 2004-04-01
IS7121A (is) 2004-01-20
CR7231A (es) 2005-07-21
HK1070155A1 (en) 2005-06-10
BR0211374A (pt) 2004-07-20
NO20040232L (no) 2004-03-30

Similar Documents

Publication Publication Date Title
JP5458184B2 (ja) 動的ファンクションコールシステムにおけるアグレッシブな自動修正のためのシステムおよび方法
EP1975784B1 (en) Method of obfuscating computer instruction streams
KR101187554B1 (ko) 소프트웨어 보안
US6880149B2 (en) Method for runtime code integrity validation using code block checksums
KR101676326B1 (ko) 화이트박스 암호화를 사용하는 연동 바이너리 보호 방법
CN107026728B (zh) 用于动态预启动存储加密密钥管理的方法及终端
CN109840430B (zh) Plc的安全处理单元及其总线仲裁方法
US8179227B2 (en) Employing external storage devices as media for access control panel control information
US7162735B2 (en) Digital data protection arrangement
KR101331032B1 (ko) 가상화 환경과 결합된 어플리케이션 실행 방법
CN101315608A (zh) 存储器保护方法和设备
US8463708B2 (en) System and method for using digital strings to provide secure distribution of digital content
US7458100B2 (en) Adding copy protection to a computer program
UA77186C2 (en) Method for protecting software against unauthorized use by a controlled variable
US20220357944A1 (en) Method for executing a machine code by means of a microprocessor
JP2001256118A (ja) マイクロコンピュータシステムの保護方法,メモリ装置,マイクロコンピュータシステム
US20190102541A1 (en) Apparatus and method for defending against unauthorized modification of programs
US20140366149A1 (en) System and method for using digital strings to provide secure distribution of digital content
UA77187C2 (en) Method for protecting software against unauthorized use by controlling the correspondence with a specified criterion
WO2023002635A1 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
Nasser Securing safety critical automotive systems
WO2023156571A1 (en) Protecting software
WO2016056120A1 (ja) 情報処理装置、及び情報処理方法
CN110659073A (zh) 一种仲裁式安全处理器
HRP20040046A2 (en) Method for protecting a software using a so-called conditional jump principle against its unauthorised use