Спосіб захисту програми від її неавторизованого використання за допомогою так званого принципу детектування й примусу
Формула / Реферат
1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить принаймні засоби (15) запам’ятовування і засоби (16) обробки, від неавторизованого використання уразливої програми (2v), яка функціонує на системі (3) обробки даних, який полягає в тому, що:
à у фазі (P) захисту:
• визначають:
– щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше частково, у пристрої (6),
– щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання програми,
– засоби (17) детектування, що їх слід застосовувати у пристрої (6) і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію,
– і засоби (18) примусу, що їх слід застосовувати у пристрої (6) і які дозволяють проінформувати систему (3) обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію;
• конструюють засоби експлуатації, що дозволяють пристрою (6) задіяти засоби (17) детектування й засоби (18) примусу;
створюють захищену програму (2p):
– за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми з характеристик виконання, які можуть бути проконтрольовані,
– за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми,
– за допомогою вибору щонайменше одного алгоритму, який у ході виконання уразливої програми (2v) використовує щонайменше один операнд і дозволяє одержати щонайменше один результат і для якого слід контролювати щонайменше одну характеристику виконання вибраної програми,
– за допомогою вибору щонайменше одного фрагмента коду (2vs) уразливої програми, що містить щонайменше один вибраний алгоритм,
– за допомогою створення вихідного коду (2ps) захищеної програми на основі коду уразливої програми (2v) модифікацією щонайменше одного вибраного фрагмента коду (2vs) уразливої програми, щоб одержати щонайменше один модифікований фрагмент коду (2ps) захищеної програми, причому ця модифікація така, що:
Ø в ході виконання захищеної програми (2p) перша виконувана частина (2pes) виконується в системі (3) обробки даних, а друга виконувана частина (2peu) виконується у пристрої (6), отриманому з незадіяного пристрою (60) після завантаження інформації,
Ø друга виконувана частина (2peu) виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму,
Ø і в ході виконання захищеної програми (2p) щонайменше одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини (2peu), і недотримання критерію приводить до модифікації виконання захищеної програми (2p);
– і за допомогою створення:
Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) реалізується перша виконувана частина (2pes), яка виконується в системі обробки даних (3), і щонайменше частина якого враховує, що контролюється щонайменше одна характеристика виконання вибраної програми,
Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), що містить засоби експлуатації, що дозволяють застосовувати також засоби (17) детектування і засоби (18) примусу, причому друга частина (2pou) об’єктного коду така, що після завантаження в незадіяний пристрій (60), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої контролюється щонайменше одна характеристика виконання програми і за допомогою якої недотримання критерію приводить до модифікації виконання захищеної програми (2p),
• і завантажують другу частину (2pou) об’єктного коду в незадіяний пристрій (60) з одержанням пристрою (6),
à а в фазі (U) використання, в ході якої відбувається виконання захищеної програми (2p):
• за наявності пристрою (6):
– якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми (2p), дотримано, допускають номінальне функціонування зазначених фрагментів захищеної програми (2p) й, отже, номінальне функціонування захищеної програми (2p),
– а якщо принаймні одного з критеріїв, що відповідають контрольованій характеристиці виконання одного фрагмента захищеної програми (2p), не дотримано, інформують систему (3) обробки даних про згадане недотримання і/або модифікують функціонування фрагмента захищеної програми (2p) таким чином, щоб функціонування захищеної програми (2p) було змінено;
• тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2pes) на запуск виконання у пристрої (6) функціональної можливості вибраного алгоритму, не забезпечується можливість коректно відповісти на цей запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.
2. Спосіб за п. 1, який відрізняється тим, що:
щоб обмежити використання захищеної програми (2p),
à у фазі (P) захисту:
• визначають:
– як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю використання однієї функціональної можливості програми,
– як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв’язане з кожною змінною для кількісного контролю,
– і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю;
• конструюють засоби експлуатації, що дозволяють пристрою (6) застосовувати засоби поновлення;
• і модифікують захищену програму (2p):
– за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної для кількісного контролю використання однієї функціональної можливості програми,
– за допомогою вибору:
Ø щонайменше однієї функціональної можливості захищеної програми (2p), використання якої можна проконтролювати з використанням змінної для кількісного контролю,
Ø щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики використання згаданої функціональної можливості,
Ø щонайменше одного порогового значення, зв’язаного з вибраною змінною для кількісного контролю і відповідного межі використання згаданої функціональної можливості,
Ø і щонайменше одного методу поновлення значення вказаної змінної для кількісного контролю залежно від використання вказаної функціональної можливості,
– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому згадана модифікація така, що в ході виконання захищеної програми (2p) змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини (2peu), залежно від використання зазначеної функціональної можливості, й ураховується щонайменше одне перевищення порогового значення,
à а у фазі (U) використання, у присутності пристрою (6), у випадку, коли виявлено щонайменше одне перевищення порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2p) таким чином, щоб функціонування захищеної програми (2p) було змінено.
3. Спосіб за п. 2, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають:
– декілька відповідних порогових значень щонайменше для однієї змінної для кількісного контролю,
– і різноманітні засоби примусу, що відповідають кожному зі згаданих порогів;
• і модифікують захищену програму (2p):
– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї змінної для кількісного контролю, з якою мають зв’язуватися декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості,
– за допомогою вибору щонайменше двох порогових значень, зв’язаних з вибраною змінною для кількісного контролю,
– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми (2p) перевищення різних порогових значень враховуються за допомогою другої виконуваної частини (2peu) різними способами,
à а у фазі (U) використання:
• за наявності пристрою (6):
– у випадку, коли виявлено перевищення першого порогового значення, дають команду захищеній програмі (2p) не використовувати надалі відповідну функціональну можливість,
– а у випадку, коли виявлено перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми (2p).
4. Спосіб за п. 2 або 3, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю;
• конструюють засоби експлуатації, що дозволяють також пристрою (6) задіяти засоби перезавантаження;
• і модифікують захищену програму (2p):
– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість дозволу, щонайменше на одне додаткове використання,
– і за допомогою модифікації щонайменше одного вибраного фрагмента, причому згадана модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволено,
à а у фазі перезавантаження:
• поновлюють щонайменше одну вибрану змінну для кількісного контролю і щонайменше одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості.
5. Спосіб за п. 1, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають:
– як характеристику виконання програми, яка може бути проконтрольована, - профіль використання програми,
– і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми;
• і модифікують захищену програму (2p):
– за допомогою вибору як характеристики виконання контрольованої програми щонайменше одного профілю використання програми,
– за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання,
– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому згадана модифікація така, що в ході виконання захищеної програми (2p) друга виконувана частина (2peu) дотримується всіх вибраних ознак виконання,
à а у фазі (U) використання, за наявності пристрою (6) у випадку, якщо виявлено, що не дотримано хоча б однієї ознаки виконання, інформують про це систему (3) обробки даних і/або модифікують функціонування частини захищеної програми (2p) так, щоб функціонування захищеної програми (2p) було змінено.
6. Спосіб за п. 5, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають:
– набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої (6),
– набір команд інструкцій для згаданого набору інструкцій, причому команди інструкцій можуть бути виконані в системі (3) обробки даних, викликаючи у пристрої (6) виконання інструкцій,
– як профіль використання – зчеплення інструкцій,
– як ознаку виконання – бажане зчеплення для виконання інструкцій,
– як засоби (17) детектування – засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному,
– як засоби (18) примусу – засоби, що дозволяють проінформувати систему (3) обробки даних і/або модифікувати функціонування фрагмента захищеної програми (2p), якщо зчеплення інструкцій не відповідає бажаному;
• конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати інструкції з набору інструкцій,причому виконання зазначених інструкцій викликається виконанням команд інструкцій у системі (3) обробки даних;
• і модифікують захищену програму (2p):
– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми:
Ø за допомогою перетворення елементарних функцій на інструкції,
Ø за допомогою задання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої (6),
Ø і за допомогою перетворення елементарних команд на команди інструкцій, що відповідають використовуваним інструкціям,
à а у фазі (U) використання, за наявності пристрою (6), у випадку, якщо виявлено, що зчеплення виконуваних у пристрої (6) інструкцій не відповідає бажаному, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2p) так, щоб функціонування захищеної програми (2p) було змінено.
7. Спосіб за п. 6, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають:
– як набір інструкцій – набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах, і використовують щонайменше один операнд для видачі результату,
– щонайменше для частини інструкцій, що працюють на регістрах:
Ø частину (PF), що задає функціональну можливість інструкції,
Ø і частину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, що відповідають:
q полю (CII) ідентифікації інструкції,
q і для кожного операнда інструкції:
* полю (CDk) прапора,
* і полю (CIPk) ідентифікації, передбаченої для операнда,
– для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле (CIGv) передбаченої ідентифікації, в якому автоматично запам’ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр,
– як засоби (17) детектування – засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле (CDk) прапора, контролювати рівність між полем (CIGv) генерованої ідентифікації, що відповідає регістру, використовуваному згаданим операндом, і полем (CIPk) передбаченої ідентифікації початкової адреси цього операнда,
– і як засоби (18) примусу – засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.
8. Спосіб за будь-яким з пп. 1-7, який відрізняється тим, що:
à у фазі (P) захисту:
• модифікують захищену програму (2р):
– за допомогою вибору щонайменше однієї змінної, використовуваної щонайменше в одному вибраному алгоритмі, яка в ході виконання захищеної програми (2p) частково визначає стан захищеної програми (2p),
– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми (2p) щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться у пристрої (6),
– і за допомогою створення:
Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому ця перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) щонайменше один фрагмент першої виконуваної частини (2pes) враховує, що принаймні одна змінна або щонайменше одна копія змінної знаходиться у пристрої (6),
Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), причому ця друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6) і в ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої щонайменше одна вибрана змінна або щонайменше одна копія вибраної змінної також знаходиться у пристрої (6),
à а у фазі (U) використання:
• за наявності пристрою (6), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2pes), використовують змінну або копію змінної, що знаходиться у пристрої (6) так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною,
• а за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини (2pes) на використання змінної або копії змінної, що знаходиться у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.
9. Спосіб за п. 6, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають:
– як команду запуску – команду інструкції,
– як залежну функцію – інструкцію,
– як установний параметр, - принаймні один аргумент для команди запуску, що відповідає, щонайменше частково, інформації, переданій системою (3) обробки даних на пристрій (6), щоб викликати запуск відповідної залежної функції,
– метод перейменування установних параметрів, що дозволяє перейменувати установні параметри, щоб одержати команди запуску з перейменованими установними параметрами,
– і засоби (20) відновлення, що призначені для застосування у пристрої (6) у фазі (U) використання і що дозволяють знайти залежну функцію, що її слід виконати, виходячи з перейменованого установного параметра;
• конструюють засоби експлуатації, дозволяють пристрою (6) задіяти засоби відновлення;
• і модифікують захищену програму (2p):
– за допомогою вибору у вихідному коді (2ps) захищеної програми команд запуску,
– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми за допомогою перейменування установних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій,
– і за допомогою створення:
Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) виконуються команди запуску з перейменованими установними параметрами,
Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), що містить засоби експлуатації, які використовують також засоби (20) відновлення, причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) ідентичність залежних функцій, виконання яких викликано першою виконуваною частиною (2pes), відновлюється за допомогою другої виконуваної частини (2peu), а залежні функції виконуються за допомогою другої виконуваної частини (2peu),
à а у фазі (U) використання:
• за наявності пристрою (6), кожного разу, коли цього вимагає команда запуску з перейменованими установними параметрами, що міститься у фрагменті першої виконуваної частини (2pes), відновлюють у пристрої (6) ідентичність відповідної залежної функції і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;
• тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2pes) на запуск виконання у пристрої (6) залежної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.
10. Спосіб за п. 9, який відрізняється тим, що:
à у фазі (P) захисту:
• визначають, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані установні параметри яких є різними;
• і модифікують захищену програму (2p):
– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї команди запуску з перейменованими установними параметрами,
– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми за допомогою заміни щонайменше перейменованого установного параметра команди запуску з вибраним установним параметром на інший перейменований установний параметр, що викликає запуск залежної функції з того ж сімейства.
11. Спосіб за п. 10, який відрізняється тим, що включає:
à у фазі (P) захисту визначення, щонайменше для однієї функції, сімейства алгоритмічно еквівалентних залежних функцій:
– за допомогою зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що виконується у пристрої (6),
– або за допомогою використання поля (CII) ідентифікації інструкції і полів (CIPk) ідентифікації, передбачених для операндів.
12. Спосіб за п. 9, 10 або 11, який відрізняється тим, що:
à у фазі (P) захисту визначають:
– як метод перейменування установних параметрів – метод кодування для кодування установних параметрів,
– і як засоби (20) відновлення – засоби, що застосовують метод декодування для розкодування перейменованих установних параметрів і відновлення ідентичності залежних функцій, що їх потрібно виконати у пристрої (6).
13. Спосіб за будь-яким з пп. 1-12, який відрізняється тим, що:
à у фазі (P) захисту:
• модифікують захищену програму (2p):
– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі,
– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми (2p) функціональна можливість щонайменше одного вибраного умовного переходу виконується, за допомогою другої виконуваної частини (2peu), у пристрої (6),
– і за допомогою створення:
Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої (6),
Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконується функціональна можливість щонайменше одного вибраного умовного переходу,
à а у фазі (U) використання:
• за наявності пристрою (6), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2pes), виконують у пристрої (6) функції щонайменше одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;
• а за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2pes) на виконання функцій умовного переходу у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.
14. Спосіб за п. 13, який відрізняється тим, що у фазі (P) захисту модифікують захищену програму (2p):
– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї серії вибраних умовних переходів,
– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому згадана модифікація така, що в ході виконання захищеної програми (2p) глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої (6) за допомогою другої виконуваної частини (2peu),
– і за допомогою створення:
Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої (6),
Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконується глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів.
15. Спосіб за будь-яким з пп. 1-14, який відрізняється тим, що розкладають фазу (P) захисту на вхідну підфазу (P1) захисту, не залежну від програми, що захищається, і на вихідну підфазу (P2) захисту, залежну від програми, що захищається.
16. Спосіб за п. 15, який відрізняється тим, що в ході вхідної підфази (P1) захисту задіюють стадію (S11) визначень, на якій виконуються всі визначення.
17. Спосіб за п. 16, який відрізняється тим, що після стадії (S11) визначень задіюють стадію конструювання (S12), на якій створюються засоби експлуатації.
18. Спосіб за п. 17, який відрізняється тим, що після стадії (S12) конструювання задіюють стадію (S13) передперсоналізації, яка полягає в тому, що завантажують у незадіяний пристрій (60) щонайменше частину засобів експлуатації, щоб одержати передперсоналізований пристрій (66).
19. Спосіб за п. 16 або 17, який відрізняється тим, що в ході вхідної підфази (P1) захисту задіюють стадію (S14) виготовлення засобів, на якій виготовляються засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.
20. Спосіб за п. 15 або 18, який відрізняється тим, що вихідну підфазу (P2) захисту розкладають на:
• стадію (S21) створення, на якій на основі уразливої програми (2v) створюється захищена програма (2p);
• можливо, стадію (S22) модифікації, на якій модифікується захищена програма (2p);
• і, можливо, стадію (S23) персоналізації, на якій:
– друга частина (2pou) об’єктного коду захищеної програми (2p), що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій (60), щоб одержати принаймні один пристрій (6),
– або друга частина (2pou) об’єктного коду захищеної програми (2p), що, можливо, містить засоби експлуатації, завантажується щонайменше в один передперсоналізований пристрій (66), щоб одержати щонайменше один пристрій (6).
21. Спосіб за п. 19 або 20, який відрізняється тим, що в ході стадії (S21) створення і, можливо, стадії (S22) модифікації використовують щонайменше один із засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм.
Текст
1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить принаймні засоби (15) запам’ятовування і засоби (16) обробки, від неавторизованого використання уразливої програми (2v), яка функціонує на системі (3) обробки даних, який полягає в тому, що: у фазі (P) захисту: • визначають: – щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше частково, у пристрої (6), – щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання програми, – засоби (17) детектування, що їх слід застосовувати у пристрої (6) і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, – і засоби (18) примусу, що їх слід застосовувати у пристрої (6) і які дозволяють проінформувати систему (3) обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію; • конструюють засоби експлуатації, що дозволяють пристрою (6) задіяти засоби (17) детектування й засоби (18) примусу; створюють захищену програму (2p): – за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми з характеристик виконання, які можуть бути проконтрольовані, 2 (19) 1 3 77187 4 що дозволяють застосовувати також засоби (17) проконтролювати з використанням змінної для детектування і засоби (18) примусу, причому друга кількісного контролю, частина (2pou) об’єктного коду така, що після за щонайменше однієї змінної для кількісного контвантаження в незадіяний пристрій (60), у ході виролю, яка служить для кількісної характеристики конання захищеної програми (2p) реалізується використання згаданої функціональної можливосдруга виконувана частина (2peu), за допомогою ті, якої контролюється щонайменше одна характери щонайменше одного порогового значення, стика виконання програми і за допомогою якої незв’язаного з вибраною змінною для кількісного дотримання критерію приводить до модифікації контролю і відповідного межі використання згадавиконання захищеної програми (2p), ної функціональної можливості, • і завантажують другу частину (2pou) об’єктного і щонайменше одного методу поновлення знакоду в незадіяний пристрій (60) з одержанням причення вказаної змінної для кількісного контролю строю (6), залежно від використання вказаної функціональної а в фазі (U) використання, в ході якої відбуваможливості, ється виконання захищеної програми (2p): – і за допомогою модифікації щонайменше одного • за наявності пристрою (6): вибраного фрагмента коду (2ps) захищеної про– якщо всіх критеріїв, що відповідають усім контграми, причому згадана модифікація така, що в рольованим характеристикам виконання всіх моході виконання захищеної програми (2p) змінна дифікованих фрагментів захищеної програми (2p), для кількісного контролю поновлюється за доподотримано, допускають номінальне функціонуванмогою другої виконуваної частини (2peu), залежно ня зазначених фрагментів захищеної програми від використання зазначеної функціональної мож(2p) й, отже, номінальне функціонування захищеливості, й ураховується щонайменше одне переної програми (2p), вищення порогового значення, – а якщо принаймні одного з критеріїв, що відпові а у фазі (U) використання, у присутності придають контрольованій характеристиці виконання строю (6), у випадку, коли виявлено щонайменше одного фрагмента захищеної програми (2p), не одне перевищення порогового значення, що віддотримано, інформують систему (3) обробки даних повідає щонайменше одній межі використання, про згадане недотримання і/або модифікують фуінформують про це систему (3) обробки даних нкціонування фрагмента захищеної програми (2p) і/або модифікують функціонування фрагмента таким чином, щоб функціонування захищеної прозахищеної програми (2p) таким чином, щоб функграми (2p) було змінено; ціонування захищеної програми (2p) було змінено. 3. Спосіб за п. 2, який відрізняється тим, що: • тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини у фазі (P) захисту: (2pes) на запуск виконання у пристрої (6) функціо• визначають: нальної можливості вибраного алгоритму, не за– декілька відповідних порогових значень щонайбезпечується можливість коректно відповісти на менше для однієї змінної для кількісного контролю, цей запит, так що принаймні вказаний фрагмент – і різноманітні засоби примусу, що відповідають не виконується коректно й, отже, захищена прокожному зі згаданих порогів; грама (2p) не є повнофункціональною. • і модифікують захищену програму (2p): 2. Спосіб за п. 1, який відрізняється тим, що: – за допомогою вибору у вихідному коді (2ps) защоб обмежити використання захищеної програми хищеної програми щонайменше однієї змінної для (2p), кількісного контролю, з якою мають зв’язуватися у фазі (P) захисту: декілька порогових значень, що відповідають різ• визначають: номанітним межам використання функціональної – як характеристику виконання програми, яка може можливості, бути проконтрольована, - змінну для кількісного – за допомогою вибору щонайменше двох порогоконтролю використання однієї функціональної мових значень, зв’язаних з вибраною змінною для жливості програми, кількісного контролю, – як критерій, що його слід дотримуватися, - що– і за допомогою модифікації щонайменше одного найменше одне порогове значення, зв’язане з ковибраного фрагмента коду (2ps) захищеної прожною змінною для кількісного контролю, грами, причому зазначена модифікація така, що в – і засоби поновлення, що дозволяють поновити ході виконання захищеної програми (2p) перевищонайменше одну змінну для кількісного контрощення різних порогових значень враховуються за лю; допомогою другої виконуваної частини (2peu) різ• конструюють засоби експлуатації, що дозволяними способами, ють пристрою (6) застосовувати засоби поновлен а у фазі (U) використання: ня; • за наявності пристрою (6): • і модифікують захищену програму (2p): – у випадку, коли виявлено перевищення першого – за допомогою вибору як характеристики викопорогового значення, дають команду захищеній нання контрольованої програми щонайменше одпрограмі (2p) не використовувати надалі відповіднієї змінної для кількісного контролю використання ну функціональну можливість, однієї функціональної можливості програми, – а у випадку, коли виявлено перевищення другого – за допомогою вибору: порогового значення, роблять нездійсненною від щонайменше однієї функціональної можливості повідну функціональну можливість і/або щонаймезахищеної програми (2p), використання якої можна нше частину захищеної програми (2p). 5 77187 6 4. Спосіб за п. 2 або 3, який відрізняється тим, – набір команд інструкцій для згаданого набору що: інструкцій, причому команди інструкцій можуть у фазі (P) захисту: бути виконані в системі (3) обробки даних, викли• визначають засоби перезавантаження, що докаючи у пристрої (6) виконання інструкцій, зволяють щонайменше одне додаткове викорис– як профіль використання – зчеплення інструкцій, тання щонайменше однієї функціональної можли– як ознаку виконання – бажане зчеплення для вості програми, контрольованої за допомогою виконання інструкцій, змінної для кількісного контролю; – як засоби (17) детектування – засоби, що дозво• конструюють засоби експлуатації, що дозволяляють виявити, що зчеплення інструкцій не відпоють також пристрою (6) задіяти засоби перезаванвідає бажаному, таження; – як засоби (18) примусу – засоби, що дозволяють • і модифікують захищену програму (2p): проінформувати систему (3) обробки даних і/або – за допомогою вибору у вихідному коді (2ps) замодифікувати функціонування фрагмента захищехищеної програми щонайменше однієї змінної для ної програми (2p), якщо зчеплення інструкцій не кількісного контролю, що дозволяє обмежити вивідповідає бажаному; користання однієї функціональної можливості, для • конструюють засоби експлуатації, що дозволяякої існує можливість дозволу, щонайменше на ють пристрою (6) виконувати інструкції з набору одне додаткове використання, інструкцій, причому виконання зазначених інструк– і за допомогою модифікації щонайменше одного цій викликається виконанням команд інструкцій у вибраного фрагмента, причому згадана модифікасистемі (3) обробки даних; ція така, що у фазі перезавантаження щонаймен• і модифікують захищену програму (2p): ше одне додаткове використання щонайменше – за допомогою модифікації щонайменше одного однієї функціональної можливості, що відповідає вибраного фрагмента коду (2ps) захищеної проодній вибраній змінній для кількісного контролю, грами: може бути дозволено, за допомогою перетворення елементарних фун а у фазі перезавантаження: кцій на інструкції, • поновлюють щонайменше одну вибрану змінну за допомогою задання зчеплення, що його мадля кількісного контролю і щонайменше одне відють дотримуватися щонайменше деякі з інструкцій повідне порогове значення так, щоб дозволити під час їхнього виконання у пристрої (6), щонайменше одне додаткове використання функ і за допомогою перетворення елементарних ціональної можливості. команд на команди інструкцій, що відповідають використовуваним інструкціям, 5. Спосіб за п. 1, який відрізняється тим, що: а у фазі (U) використання, за наявності при у фазі (P) захисту: строю (6), у випадку, якщо виявлено, що зчеплен• визначають: ня виконуваних у пристрої (6) інструкцій не відпо– як характеристику виконання програми, яка може відає бажаному, інформують про це систему (3) бути проконтрольована, - профіль використання обробки даних і/або модифікують функціонування програми, фрагмента захищеної програми (2p) так, щоб фун– і як критерій, що його слід дотримуватися, - щокціонування захищеної програми (2p) було зміненайменше одну ознаку виконання програми; но. 7. Спосіб за п. 6, який відрізняється тим, що: • і модифікують захищену програму (2p): – за допомогою вибору як характеристики вико у фазі (P) захисту: нання контрольованої програми щонайменше од• визначають: ного профілю використання програми, – як набір інструкцій – набір інструкцій, у якому – за допомогою вибору щонайменше однієї ознаки щонайменше деякі інструкції працюють на регіствиконання програми, що її має дотримуватися щорах, і використовують щонайменше один операнд найменше один профіль використання, для видачі результату, – і за допомогою модифікації щонайменше одного – щонайменше для частини інструкцій, що працювибраного фрагмента коду (2ps) захищеної проють на регістрах: грами, причому згадана модифікація така, що в частину (PF), що задає функціональну можлиході виконання захищеної програми (2p) друга вивість інструкції, конувана частина (2peu) дотримується всіх вибра і частину, що задає бажане зчеплення для виконих ознак виконання, нання інструкцій і містить бітові поля, що відпові а у фазі (U) використання, за наявності придають: строю (6) у випадку, якщо виявлено, що не дотри полю (CII) ідентифікації інструкції, мано хоча б однієї ознаки виконання, інформують і для кожного операнда інструкції: про це систему (3) обробки даних і/або модифіку* полю (CDk) прапора, ють функціонування частини захищеної програми * і полю (CIPk) ідентифікації, передбаченої для (2p) так, щоб функціонування захищеної програми операнда, (2p) було змінено. – для кожного регістра, що належить до засобів 6. Спосіб за п. 5, який відрізняється тим, що: експлуатації і використовується набором інструк у фазі (P) захисту: цій, - поле (CIGv) передбаченої ідентифікації, в • визначають: якому автоматично запам’ятовується ідентифіка– набір інструкцій, інструкції зі складу якого можуть ція останньої інструкції, що повернула свій резульбути виконані у пристрої (6), тат у вказаний регістр, 7 77187 8 – як засоби (17) детектування – засоби, що дозвоменше частково, інформації, переданій системою ляють під час виконання інструкції для кожного (3) обробки даних на пристрій (6), щоб викликати операнда, коли цього вимагає поле (CDk) прапора, запуск відповідної залежної функції, контролювати рівність між полем (CIGv) генерова– метод перейменування установних параметрів, ної ідентифікації, що відповідає регістру, викорисщо дозволяє перейменувати установні параметри, товуваному згаданим операндом, і полем (CIPk) щоб одержати команди запуску з перейменованипередбаченої ідентифікації початкової адреси цьоми установними параметрами, го операнда, – і засоби (20) відновлення, що призначені для – і як засоби (18) примусу – засоби, що дозволязастосування у пристрої (6) у фазі (U) використанють модифікувати результат виконання інструкцій, ня і що дозволяють знайти залежну функцію, що її якщо принаймні одна з контрольованих рівностей слід виконати, виходячи з перейменованого устахибна. новного параметра; 8. Спосіб за будь-яким з пп. 1-7, який відрізняєть• конструюють засоби експлуатації, дозволяють ся тим, що: пристрою (6) задіяти засоби відновлення; у фазі (P) захисту: • і модифікують захищену програму (2p): • модифікують захищену програму (2р): – за допомогою вибору у вихідному коді (2ps) за– за допомогою вибору щонайменше однієї змінхищеної програми команд запуску, ної, використовуваної щонайменше в одному виб– за допомогою модифікації щонайменше одного раному алгоритмі, яка в ході виконання захищеної вибраного фрагмента коду (2ps) захищеної пропрограми (2p) частково визначає стан захищеної грами за допомогою перейменування установних програми (2p), параметрів вибраних команд запуску, щоб прихо– за допомогою модифікації щонайменше одного вати ідентичність відповідних залежних функцій, вибраного фрагмента коду (2ps) захищеної про– і за допомогою створення: грами, причому ця модифікація така, що в ході першої частини (2pos) об’єктного коду захищевиконання захищеної програми (2p) щонайменше ної програми (2p), причому перша частина (2pos) одна вибрана змінна або одна копія вибраної об’єктного коду така, що в ході виконання захищезмінної знаходиться у пристрої (6), ної програми (2p) виконуються команди запуску з – і за допомогою створення: перейменованими установними параметрами, першої частини (2pos) об’єктного коду захище і другої частини (2pou) об’єктного коду захищеної програми (2p), причому ця перша частина ної програми (2p), що містить засоби експлуатації, (2pos) об’єктного коду така, що в ході виконання які використовують також засоби (20) відновлення, захищеної програми (2p) щонайменше один фрагпричому друга частина (2pou) об’єктного коду така, мент першої виконуваної частини (2pes) враховує, що після завантаження у пристрій (6), у ході викощо принаймні одна змінна або щонайменше одна нання захищеної програми (2p) ідентичність залекопія змінної знаходиться у пристрої (6), жних функцій, виконання яких викликано першою і другої частини (2pou) об’єктного коду захищевиконуваною частиною (2pes), відновлюється за ної програми (2p), причому ця друга частина допомогою другої виконуваної частини (2peu), а (2pou) об’єктного коду така, що після завантажензалежні функції виконуються за допомогою другої ня у пристрій (6) і в ході виконання захищеної провиконуваної частини (2peu), грами (2p) реалізується друга виконувана частина а у фазі (U) використання: (2peu), за допомогою якої щонайменше одна виб• за наявності пристрою (6), кожного разу, коли рана змінна або щонайменше одна копія вибраної цього вимагає команда запуску з перейменованизмінної також знаходиться у пристрої (6), ми установними параметрами, що міститься у а у фазі (U) використання: фрагменті першої виконуваної частини (2pes), від• за наявності пристрою (6), кожного разу, коли новлюють у пристрої (6) ідентичність відповідної цього вимагає фрагмент першої виконуваної часзалежної функції і виконують її так, щоб указаний тини (2pes), використовують змінну або копію фрагмент виконувався коректно й, отже, захищена змінної, що знаходиться у пристрої (6) так, щоб програма (2p) була повнофункціональною; указаний фрагмент виконувався коректно й, отже, • тоді як за відсутності пристрою (6), незважаючи захищена програма (2p) була повнофункціональна запит фрагмента першої виконуваної частини ною, (2pes) на запуск виконання у пристрої (6) залежної • а за відсутності пристрою, незважаючи на запит функції, не забезпечується можливість коректної фрагмента першої виконуваної частини (2pes) на відповіді на вказаний запит, так що принаймні вкавикористання змінної або копії змінної, що знахозаний фрагмент не виконується коректно й, отже, диться у пристрої (6), не забезпечується можлизахищена програма (2p) не є повнофункціональвість коректної відповіді на вказаний запит, так що ною. 10. Спосіб за п. 9, який відрізняється тим, що: принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є пов у фазі (P) захисту: нофункціональною. • визначають, щонайменше для однієї залежної 9. Спосіб за п. 6, який відрізняється тим, що: функції, сімейство алгоритмічно еквівалентних у фазі (P) захисту: залежних функцій, що викликаються командами • визначають: запуску, перейменовані установні параметри яких – як команду запуску – команду інструкції, є різними; – як залежну функцію – інструкцію, • і модифікують захищену програму (2p): – як установний параметр, - принаймні один аргу– за допомогою вибору у вихідному коді (2ps) замент для команди запуску, що відповідає, щонайхищеної програми щонайменше однієї команди 9 77187 10 запуску з перейменованими установними параменайменше одного вибраного умовного переходу трами, таким чином, щоб указаний фрагмент виконувався – і за допомогою модифікації щонайменше одного коректно й, отже, захищена програма (2p) була вибраного фрагмента коду (2ps) захищеної проповнофункціональною; грами за допомогою заміни щонайменше перей• а за відсутності пристрою (6), незважаючи на менованого установного параметра команди запузапит фрагмента першої виконуваної частини ску з вибраним установним параметром на інший (2pes) на виконання функцій умовного переходу у перейменований установний параметр, що виклипристрої (6), не забезпечується можливість кореккає запуск залежної функції з того ж сімейства. тної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, 11. Спосіб за п. 10, який відрізняється тим, що отже, захищена програма (2p) не є повнофункціовключає: нальною. 14.Спосіб за п. 13, який відрізняється тим, що у у фазі (P) захисту визначення, щонайменше для однієї функції, сімейства алгоритмічно еквівалентфазі (P) захисту модифікують захищену програму них залежних функцій: (2p): – за допомогою зчеплення поля шумів з інформа– за допомогою вибору у вихідному коді (2ps) зацією, що визначає ту функціональну частину захищеної програми щонайменше однієї серії вибралежної функції, що виконується у пристрої (6), них умовних переходів, – або за допомогою використання поля (CII) іден– за допомогою модифікації щонайменше одного тифікації інструкції і полів (CIPk) ідентифікації, певибраного фрагмента коду (2ps) захищеної проредбачених для операндів. грами, причому згадана модифікація така, що в 12. Спосіб за п. 9, 10 або 11, який відрізняється ході виконання захищеної програми (2p) глобальна тим, що: функціональна можливість щонайменше однієї у фазі (P) захисту визначають: вибраної серії умовних переходів виконується у – як метод перейменування установних параметпристрої (6) за допомогою другої виконуваної часрів – метод кодування для кодування установних тини (2peu), параметрів, – і за допомогою створення: – і як засоби (20) відновлення – засоби, що засто першої частини (2pos) об’єктного коду захищесовують метод декодування для розкодування ної програми (2p), причому перша частина (2pos) перейменованих установних параметрів і відновоб’єктного коду така, що в ході виконання захищелення ідентичності залежних функцій, що їх потріної програми (2p) функціональна можливість щобно виконати у пристрої (6). найменше однієї вибраної серії умовних переходів 13. Спосіб за будь-яким з пп. 1-12, який відрізнявиконується у пристрої (6), ється тим, що: і другої частини (2pou) об’єктного коду захище у фазі (P) захисту: ної програми (2p), причому друга частина (2pou) • модифікують захищену програму (2p): об’єктного коду така, що після завантаження у – за допомогою вибору у вихідному коді (2ps) запристрій (6), у ході виконання захищеної програми хищеної програми щонайменше одного умовного (2p) реалізується друга виконувана частина (2peu), переходу, виконуваного щонайменше в одному за допомогою якої виконується глобальна функцівибраному алгоритмі, ональна можливість щонайменше однієї вибраної – за допомогою модифікації щонайменше одного серії умовних переходів. 15. Спосіб за будь-яким з пп. 1-14, який відрізнявибраного фрагмента коду (2ps) захищеної проється тим, що розкладають фазу (P) захисту на грами, причому зазначена модифікація така, що в ході виконання захищеної програми (2p) функціовхідну підфазу (P1) захисту, не залежну від прональна можливість щонайменше одного вибраного грами, що захищається, і на вихідну підфазу (P2) умовного переходу виконується, за допомогою захисту, залежну від програми, що захищається. 16. Спосіб за п. 15, який відрізняється тим, що в другої виконуваної частини (2peu), у пристрої (6), – і за допомогою створення: ході вхідної підфази (P1) захисту задіюють стадію першої частини (2pos) об’єктного коду захище(S11) визначень, на якій виконуються всі визначенної програми (2p), причому перша частина (2pos) ня. 17. Спосіб за п. 16, який відрізняється тим, що об’єктного коду така, що в ході виконання захищеної програми (2p) функціональна можливість щопісля стадії (S11) визначень задіюють стадію конснайменше одного вибраного умовного переходу труювання (S12), на якій створюються засоби ексвиконується у пристрої (6), плуатації. 18. Спосіб за п. 17, який відрізняється тим, що і другої частини (2pou) об’єктного коду захищеної програми (2p), причому друга частина (2pou) після стадії (S12) конструювання задіюють стадію об’єктного коду така, що після завантаження у (S13) передперсоналізації, яка полягає в тому, що пристрій (6), у ході виконання захищеної програми завантажують у незадіяний пристрій (60) щонай(2p) реалізується друга виконувана частина (2peu), менше частину засобів експлуатації, щоб одержаза допомогою якої виконується функціональна ти передперсоналізований пристрій (66). 19. Спосіб за п. 16 або 17, який відрізняється можливість щонайменше одного вибраного умовного переходу, тим, що в ході вхідної підфази (P1) захисту задію а у фазі (U) використання: ють стадію (S14) виготовлення засобів, на якій ви• за наявності пристрою (6), кожного разу, коли готовляються засоби, що допомагають при ствоцього вимагає фрагмент першої виконуваної часренні захищених програм або автоматизації тини (2pes), виконують у пристрої (6) функції щозахисту програм. 11 77187 12 20. Спосіб за п. 15 або 18, який відрізняється незадіяний пристрій (60), щоб одержати принаймні тим, що вихідну підфазу (P2) захисту розкладають один пристрій (6), на: – або друга частина (2pou) об’єктного коду захи• стадію (S21) створення, на якій на основі уразлищеної програми (2p), що, можливо, містить засоби вої програми (2v) створюється захищена програма експлуатації, завантажується щонайменше в один (2p); передперсоналізований пристрій (66), щоб одер• можливо, стадію (S22) модифікації, на якій модижати щонайменше один пристрій (6). 21. Спосіб за п. 19 або 20, який відрізняється фікується захищена програма (2p); • і, можливо, стадію (S23) персоналізації, на якій: тим, що в ході стадії (S21) створення і, можливо, – друга частина (2pou) об’єктного коду захищеної стадії (S22) модифікації використовують щонаймепрограми (2p), що, можливо, містить засоби екснше один із засобів, призначених для використанплуатації, завантажується щонайменше в один ня при створенні захищених програм або автоматизації захисту програм. Даний винахід належить до галузі систем обробки даних у широкому сенсі цього слова, а точніше кажучи, винахід відноситься до засобів захисту від неавторизованого використання програми, що функціонує в зазначених системах обробки даних. Предмет даного винаходу відноситься, конкретніше, до способів захисту програм від неавторизованого використання на основі пристрою обробки і зберігання, причому цей пристрій звичайно реалізується у вигляді карти з мікрочипом або апаратного ключа на порту USB. У згаданій галузі техніки основна проблема пов'язана з неавторизованим використанням програм користувачами, які не набули права на їхнє використання (ліцензію). Таке незаконне використання програм завдає явного збитку виробникам і продавцям програм, і/або будь-яким іншим особам, що використовують такі програми у своїх виробах. Щоб уникнути створення таких незаконних копій, для захисту подібних програм було запропоновано ряд рішень на основі наявних технічних можливостей. Так, відомий спосіб захисту, що полягає у використанні апаратного захисного елемента - фізичного пристрою, названого електронним захисним ключем-заглушкою ("dongle"). Такий захисний ключ має гарантувати виконання програми тільки за наявності ключа. Треба, проте, констатувати, що це вирішення неефективне, бо його можна легко обійти. Зловмисник може за допомогою спеціальних прийомів, наприклад дизасемблювання, вилучити команди контролю захисного ключа. При цьому стає можливим виготовити незаконні копії модифікованих версій програми, що не мають жодного захисту. Крім того, це вирішення не можна поширити на всі програми з огляду на складність підключення більш ніж двох захисних ключів до однієї системи. Відповідно, задача, розв'язувана даним винаходом, полягає в усуненні зазначених хиб шляхом створення способу захисту програми від неавторизованого доступу, що використовує пристрій обробки і зберігання, спеціально створений для цієї мети, в тій мірі, у якій наявність такого пристрою необхідна для повноцінної роботи програми. Вирішення даної задачі досягнуто згідно з ви находом створенням способу захисту (на основі щонайменше одного незадіяного пристрою, що містить щонайменше засоби обробки і засоби запам'ятовування) від неавторизованого використання вразливої програми, яка функціонує в системі обробки даних. Спосіб згідно з винаходом полягає в тому, що: - у фазі захисту: - визначають: - щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше частково, у пристрої, - щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання програми, - засоби детектування, що їх слід застосовувати у пристрої і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби примусу, що їх слід застосовувати у пристрої та які дозволяють проінформувати систему обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію, - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби детектування й засоби примусу; створюють захищену програму: - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми серед характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми, - за допомогою вибору щонайменше одного алгоритму, який у ході виконання вразливої програми використовує щонайменше один операнд і дозволяє одержати щонайменше один результат і для якого слід контролювати щонайменше одну характеристику виконання вибраної програми, - за допомогою вибору щонайменше одного фрагмента коду вразливої програми, що містить щонайменше один вибраний алгоритм, - за допомогою створення вихідного коду захищеної програми на основі коду вразливої про 13 77187 14 грами модифікацієм щонайменше одного вибраноповнофункціональною. го фрагмента коду вразливої програми, щоб одерВідповідно до варіанта здійснення способу за жати щонайменше один модифікований фрагмент винаходом: коду захищеної програми, причому ця модифікація - у фазі захисту: така, що: - визначають: - в ході виконання захищеної програми перша - як характеристику виконання програми, яка виконувана частина виконується в системі обробки може бути проконтрольована, - змінну для кількісданих, а друга виконувана частина виконується у ного контролю використання однієї функціональної пристрої, який також містить засоби обробки, можливості програми, отриманому з незадіяного пристрою після заван- як критерій, що його слід дотримуватися, таження інформації, щонайменше одне порогове значення, зв'язане з - друга виконувана частина виконує щонаймекожною змінною для кількісного контролю, нше функціональну можливість щонайменше од- і засоби поновлення, що дозволяють поновиного вибраного алгоритму, ти щонайменше одну змінну для кількісного конт- і в ході виконання захищеної програми щоролю; найменше одна вибрана характеристика виконан- конструюють засоби експлуатації, що дозвоня контролюється за допомогою другої виконуваляють пристрою застосовувати засоби поновленної частини, і недотримання критерію приводить ня; до модифікації виконання захищеної програми; - і модифікують захищену програму: - і за допомогою створення: - за допомогою вибору як характеристики ви- першої частини об'єктного коду захищеної конання контрольованої програми щонайменше програми, причому перша частина об'єктного коду однієї змінної для кількісного контролю використака, що в ході виконання захищеної програми тання однієї функціональної можливості програми, реалізується перша виконувана частина, яка вико- за допомогою вибору: нується в системі обробки даних, і щонайменше - щонайменше однієї функціональної можличастина якої враховує, що контролюється принайвості захищеної програми, використання якої можмні одна характеристика виконання вибраної прона проконтролювати з використанням змінної для грами, кількісного контролю, - і другої частини об'єктного коду захищеної - щонайменше однієї змінної для кількісного програми, що містить засоби експлуатації, що доконтролю, яка служить для кількісної характерисзволяють застосовувати також засоби детектувантики використання згаданої функціональної можня й засоби примусу, причому друга частина об'єкливості, тного коду така, що після завантаження в - щонайменше одного порогового значення, незадіяний пристрій, у ході виконання захищеної пов'язаного з вибраною змінною для кількісного програми реалізується друга виконувана частина, контролю і відповідного межі використання зазназа допомогою якої контролюється принаймні одна ченої функціональної можливості, характеристика виконання програми і за допомо- і щонайменше одного методу поновлення гою якої недотримання критерію приводить до значення згаданої змінної для кількісного контромодифікації виконання захищеної програми. лю залежно від використання зазначеної функціо- і завантажують другу частину об'єктного коду нальної можливості, в незадіяний пристрій з одержанням пристрою, - і за допомогою модифікації щонайменше од- а у фазі (U) використання, в ході якої відбуного вибраного фрагмента коду захищеної провається виконання захищеної програми: грами, причому зазначена модифікація така, що в - в присутності пристрою: ході виконання захищеної програми змінна для - якщо всіх критеріїв, що відповідають усім кокількісного контролю поновлюється за допомогою нтрольованим характеристикам виконання всіх другої виконуваної частини, залежно від викорисмодифікованих фрагментів захищеної програми, тання зазначеної функціональної можливості, і дотримано, припускають номінальне функціонувраховується щонайменше одне перевищення вання зазначених фрагментів захищеної програми порогового значення, й, отже, номінальне функціонування захищеної - а у фазі використання, в присутності припрограми, строю, в разі, якщо виявлено щонайменше одне - а якщо принаймні одного з критеріїв, що відперевищення порогового значення, що відповідає повідають характеристиці контрольованого викощонайменше одній межі використання, інформунання одного фрагмента захищеної програми, не ють про це систему обробки даних і/або модифідотримано, інформують систему обробки даних кують функціонування фрагмента захищеної пропро зазначене недотримання і/або модифікують грами, таким чином, щоб функціонування функціонування фрагмента захищеної програми захищеної програми було змінено. таким чином, щоб функціонування захищеної проВідповідно до іншого варіанта здійснення спограми було змінено. собу згідно з винаходом: - тоді як за відсутності пристрою, незважаючи - у фазі захисту: на запит фрагмента першої виконуваної частини - визначають: на запуск виконання у пристрої функціональної - декілька відповідних порогових значень щоможливості вибраного алгоритму, не забезпечунайменше для однієї змінної для кількісного контється можливість коректно відповісти на цей заролю, пит, так що принаймні згаданий фрагмент не вико- і різноманітні засоби примусу, що відповіданується коректно й, отже, захищена програма не є ють кожному зі згаданих порогів; 15 77187 16 - і модифікують захищену програму: щонайменше одну ознаку виконання програми; - за допомогою вибору у вихідному коді захи- і модифікують захищену програму: щеної програми щонайменше однієї змінної для - за допомогою вибору як характеристики викількісного контролю, з якою мають зв'язуватися конання контрольованої програми щонайменше декілька порогових значень, що відповідають різодного профілю використання програми, номанітним межам використання функціональної - за допомогою вибору щонайменше однієї можливості, ознаки виконання програми, що її має дотримува- за допомогою вибору щонайменше двох потися щонайменше один профіль використання, рогових значень, зв'язаних з вибраною змінною - і за допомогою модифікації щонайменше оддля кількісного контролю, ного вибраного фрагмента коду захищеної про- і за допомогою модифікації щонайменше одграми, причому зазначена модифікація така, що в ного вибраного фрагмента коду захищеної проході виконання захищеної програми друга виконуграми, причому зазначена модифікація така, що в вана частина дотримується всіх вибраних ознак ході виконання захищеної програми перевищення виконання, різноманітних порогових значень враховуються за - а у фазі використання, в присутності придопомогою другої виконуваної частини різноманітстрою в разі, якщо виявлено, що не дотримано ними способами, хоча б однієї ознаки виконання, інформують про - а у фазі використання: це систему обробки даних і/або модифікують фун- в присутності пристрою: кціонування частини захищеної програми так, щоб - у випадку, коли виявлене перевищення перфункціонування захищеної програми було змінено. шого порогового значення, дають команду захиВідповідно до подальшого варіанта здійснення щеній програмі не використовувати надалі відповіспособу згідно з винаходом: дну функціональну можливість, - в фазі захисту: - а в разі, коли виявлене перевищення другого - визначають: порогового значення, роблять нездійсненною від- набір інструкцій, інструкції зі складу якого повідну функціональну можливість і/або щонаймеможуть виконуватися у пристрої, нше частину захищеної програми. - набір команд інструкцій для згаданого набору Відповідно до ще одного варіанта здійснення інструкцій, причому команди інструкцій можуть способу згідно з винаходом: бути виконані в системі обробки даних, викликаю- в фазі захисту: чи у пристрої виконання інструкцій, - визначають засоби перезавантаження, що - як профіль використання - зчеплення інструдозволяють щонайменше одне додаткове викорикцій, стання щонайменше однієї функціональної мож- як ознаку виконання - бажане зчеплення для ливості програми, контрольованої за допомогою виконання інструкцій, змінної для кількісного контролю; - як засоби детектування - засоби, що дозво- конструюють засоби експлуатації, що дозволяють виявити, що зчеплення інструкцій не відполяють також пристрою задіяти засоби перезаванвідає бажаному, таження; - як засоби примусу - засоби, що дозволяють - і модифікують захищену програму: проінформувати систему обробки даних і/або мо- за допомогою вибору у вихідному коді захидифікувати функціонування фрагмента захищеної щеної програми щонайменше однієї змінної для програми, якщо зчеплення інструкцій не відповідає кількісного контролю, що дозволяє обмежити вибажаному; користання однієї функціональної можливості, для - конструюють засоби експлуатації, що дозвоякої існує можливість дозволу щонайменше на ляють пристрою виконувати інструкції з набору одне додаткове використання, інструкцій, причому виконання згаданих інструкцій - і за допомогою модифікації щонайменше одвикликається виконанням команд інструкцій у сисного вибраного фрагмента, причому зазначена темі обробки даних; модифікація така, що у фазі перезавантаження - і модифікують захищену програму: щонайменше одне додаткове використання що- за допомогою модифікації щонайменше однайменше однієї функціональної можливості, що ного вибраного фрагмента коду захищеної провідповідає одній вибраній змінній для кількісного грами: контролю, може бути дозволено, - за допомогою перетворення елементарних - а у фазі перезавантаження: функцій на інструкції, - поновлюють щонайменше одну вибрану - за допомогою завдання зчеплення, що його змінну для кількісного контролю і щонайменше мають дотримуватися щонайменше деякі з інструодне відповідне порогове значення так, щоб докцій під час їхнього виконання у пристрої, зволити щонайменше одне додаткове використан- і за допомогою перетворення елементарних ня функціональної можливості. команд на команди інструкцій, що відповідають Відповідно до варіанта здійснення способу згівикористовуваним інструкціям, дно з винаходом: - а у фазі використання, в присутності при- у фазі захисту: строю, в разі, якщо виявлено, що зчеплення вико- визначають: нуваних у пристрої інструкцій не відповідає бажа- як характеристику виконання програми, яка ному, інформують про це систему обробки даних може бути проконтрольована, - профіль викорисі/або модифікують функціонування фрагмента тання програми, захищеної програми так, щоб функціонування за- і як критерій, що його слід дотримуватися, хищеної програми було змінено. 17 77187 18 Відповідно до іншої кращої форми реалізації одна копія вибраної змінної також знаходиться у способу згідно з винаходом: пристрої, - у фазі захисту: - а у фазі використання: - визначають: - в присутності пристрою, кожного разу, коли - як набір інструкцій - набір інструкцій, у якому цього вимагає фрагмент першої виконуваної часщонайменше деякі інструкції працюють на регісттини, використовують змінну або копію змінної, що рах і використовують щонайменше один операнд знаходиться у пристрої так, щоб указаний фрагдля видачі результату, мент виконувався коректно й, отже, захищена про- щонайменше для частини інструкцій, що грама була повнофункціональною, працюють на регістрах: - а за відсутності пристрою, незважаючи на - частину, що задає функціональну можливість запит фрагмента першої виконуваної частини на інструкції, використання змінної або копії змінної, що знахо- і частину, що задає бажане зчеплення для диться у пристрої, не забезпечується можливість виконання інструкцій і містить бітові поля, які відкоректної відповіді на вказаний запит, так що приповідають: наймні вказаний фрагмент не виконується корект- полю ідентифікації інструкції, но й, отже, захищена програма не є повнофункціо- для кожного операнда інструкції: нальною. Відповідно до ще однієї кращої - полю прапора, реалізації способу згідно з винаходом: - і полю ідентифікації, передбаченої для опе- у фазі захисту: ранда, - визначають: - для кожного регістра, що належить до засо- як команду запуску - команду інструкції, бів експлуатації і використовується набором ін- як залежну функцію - інструкцію, струкцій, - поле передбаченої ідентифікації, в яко- як настановний параметр, - щонайменше му автоматично запам'ятовується ідентифікація один аргумент для команди запуску, що відповіостанньої інструкції, що повернула свій результат дає, щонайменше частково, інформації, переданій у вказаний регістр, системою обробки даних на пристрій, щоб викли- як засоби детектування - засоби, що дозвокати запуск відповідної залежної функції, ляють під час виконання інструкції для кожного - метод перейменування настановних парамеоперанда, коли цього вимагає поле прапора, конттрів, що дозволяє перейменувати настановні паролювати рівність між полем генерованої ідентираметри, щоб одержати команди запуску з перейфікації, що відповідає регістру, використовуваному менованими настановними параметрами, вказаним операндом, і полем передбаченої іден- і засоби відновлення, призначені для застотифікації початкової адреси цього операнда, сування у пристрої у фазі використання і що до- як засоби примусу - засоби, що дозволяють зволяють знайти залежну функцію, що її необхідно модифікувати результат виконання інструкцій, яквиконати, виходячи з перейменованого настановщо принаймні одна з контрольованих рівностей ного параметра; хибна. - конструюють засоби експлуатації, що дозвоВідповідно до кращої форми реалізації спосоляють пристрою задіяти засоби відновлення; бу згідно з винаходом: - і модифікують захищену програму: - у фазі захисту: - за допомогою вибору у вихідному коді захи- модифікують захищену програму: щеної програми команд запуску, - за допомогою вибору щонайменше однієї - за допомогою модифікації щонайменше одзмінної, використовуваної щонайменше в одному ного вибраного фрагмента коду захищеної провибраному алгоритмі, яка в ході виконання захиграми за допомогою перейменування настановних щеної програми частково визначає стан захищеної параметрів вибраних команд запуску, щоб прихопрограми, вати ідентичність відповідних залежних функцій, - за допомогою модифікації щонайменше од- і за допомогою створення: ного вибраного фрагмента коду захищеної про- першої частини об'єктного коду захищеної грами, причому ця модифікація така, що в ході програми, причому перша частина об'єктного коду виконання захищеної програми щонайменше одна така, що в ході виконання захищеної програми вибрана змінна або одна копія вибраної змінної виконуються команди запуску з перейменованими знаходиться у пристрої, настановними параметрами, - і за допомогою створення: - і другої частини об'єктного коду захищеної - першої частини об'єктного коду захищеної програми, що містить засоби експлуатації, що випрограми, причому ця перша частина об'єктного користовують також засоби відновлення, причому коду така, що в ході виконання захищеної проградруга частина об'єктного коду така, що після завами щонайменше один фрагмент першої виконувантаження в пристрій, у ході виконання захищеної ної частини враховує, що принаймні одна змінна програми ідентичність залежних функцій, виконанабо щонайменше одна копія змінної знаходиться у ня яких викликано першою виконуваною частиною, пристрої, відновлюється за допомогою другої виконуваної - і другої частини об'єктного коду захищеної частини, а залежні функції виконуються за допопрограми, причому ця друга частина об'єктного могою другої виконуваної частини, коду така, що після завантаження у пристрій і в - а у фазі використання: ході виконання захищеної програми з'являється - у присутності пристрою, кожного разу, коли друга виконувана частина, за допомогою якої щоцього вимагає команда запуску з перейменованинайменше одна вибрана змінна або щонайменше ми настановними параметрами, яка міститься у 19 77187 20 фрагменті першої виконуваної частини, відновлюумовного переходу виконується, за допомогою ють у пристрої ідентичність відповідної залежної другої виконуваної частини, у пристрої, функції і виконують її так, щоб указаний фрагмент - і за допомогою створення: виконувався коректно й, отже, захищена програма - першої частини об'єктного коду захищеної була повнофункціональною; програми, причому перша частина об'єктного коду - тоді як за відсутності пристрою, незважаючи така, що в ході виконання захищеної програми на запит фрагмента першої виконуваної частини функціональна можливість щонайменше одного на запуск виконання у пристрої залежної функції, вибраного умовного переходу виконується у прине забезпечується можливість коректної відповіді строї, на вказаний запит, так що принаймні вказаний - і другої частини об'єктного коду захищеної фрагмент не виконується коректно й, отже, захипрограми, причому друга частина об'єктного коду щена програма не є повнофункціональною. така, що після завантаження у пристрій, у ході виВідповідно до одного з варіантів здійснення конання захищеної програми реалізується друга способу згідно з винаходом: виконувана частина, за допомогою якої виконуєть- у фазі захисту: ся функціональна можливість принаймні одного - визначають, принаймні для однієї залежної вибраного умовного переходу, функції, сімейство алгоритмічно еквівалентних - а у фазі використання: залежних функцій, які викликаються командами - у присутності пристрою, кожного разу, коли запуску, перейменовані настановні параметри цього вимагає фрагмент першої виконуваної часяких є різними; тини, виконують у пристрої функції принаймні од- і модифікують захищену програму: ного вибраного умовного переходу таким чином, - за допомогою вибору у вихідному коді захищоб указаний фрагмент виконувався коректно й, щеної програми щонайменше однієї команди запуотже, захищена програма була повнофункціонаску з перейменованими настановними параметральною; ми, - а за відсутності пристрою, незважаючи на - і за допомогою модифікації принаймні одного запит фрагмента першої виконуваної частини на вибраного фрагмента коду захищеної програми виконання функцій умовного переходу в пристрої, шляхом заміни щонайменше перейменованого не забезпечується можливість коректної відповіді настановного параметру команди запуску з вибрана вказаний запит, так що принаймні вказаний ним настановним параметром на інший переймефрагмент не виконується коректно й, отже, захинований настановний параметр, що викликає защена програма не є повнофункціональною. пуск залежної функції з того ж сімейства. Відповідно до наступного варіанту здійснення Відповідно до варіанта реалізації спосіб згідно способу згідно з винаходом у фазі захисту модифіз винаходом включає: кують захищену програму: - у фазі захисту визначення, щонайменше для - за допомогою вибору у вихідному коді захиоднієї залежної функції сімейства, алгоритмічно щеної програми щонайменше однієї серії вибраних еквівалентних залежних функцій, умовних переходів, - за допомогою зчеплення поля шумів з інфо- за допомогою модифікації щонайменше одрмацією, що визначає ту функціональну частину ного вибраного фрагмента коду захищеної прозалежної функції, яка виконується у пристрої, грами, причому згадана модифікація така, що в - або за допомогою використання поля іденході виконання захищеної програми глобальна тифікації інструкції і полів ідентифікації, передбафункціональна можливість щонайменше однієї чених для операндів. вибраної серії умовних переходів виконується у Відповідно до варіанта реалізації способу згідпристрої за допомогою другої виконуваної частино з винаходом: ни, - у фазі захисту визначають: - і за допомогою створення: - як метод перейменування настановних па- першої частини об'єктного коду захищеної раметрів - метод кодування для кодування настапрограми, причому перша частина об'єктного коду новних параметрів, така, що в ході виконання захищеної програми - і як засоби відновлення - засоби, що застософункціональна можливість щонайменше однієї вують метод декодування для розкодування певибраної серії умовних переходів виконується у рейменованих настановних параметрів і відновпристрої, лення ідентичності залежних функцій, що їх слід - і другої частини об'єктного коду захищеної виконати у пристрої. Відповідно до іншої кращої програми, причому друга частина об'єктного коду форми реалізації способу згідно з винаходом: така, що після завантаження у пристрій, у ході ви- у фазі захисту: конання захищеної програми реалізується друга - модифікують захищену програму: виконувана частина, за допомогою якої виконуєть- за допомогою вибору у вихідному коді захися глобальна функціональна можливість принаймщеної програми щонайменше одного умовного ні однієї вибраної серії умовних переходів. переходу, виконуваного щонайменше в одному Спосіб згідно з винаходом дозволяє також завибраному алгоритмі, хистити використання програми шляхом застосу- за допомогою модифікації щонайменше одвання пристрою обробки і зберігання, що його ного вибраного фрагмента коду захищеної проособливістю є здатність містити частину виконуваграми, причому зазначена модифікація така, що в ної програми. Звідси випливає, що будь-яка похідході виконання захищеної програми функціональна версія програми, яка спробує функціонувати на можливість щонайменше одного вибраного без пристрою обробки і зберігання, зажадає відт 21 77187 22 ворення частини програми, що міститься у припричому дана обробка частково або цілком є секстрої зберігання в ході виконання. Як наслідок ця ретною. похідна версія програми не буде повнофункціона- Пристроєм 6 є пристрій зберігання або прильною. стрій обробки і зберігання, що реалізує спосіб згідІнші різноманітні властивості винаходу стануть но з винаходом. ясні з нижченаведеного опису, з посиланням на - Незадіяним пристроєм 60 є пристрій, який не додані креслення, на яких показані як невичерпні використовує спосіб згідно з винаходом, але який приклади можливі варіанти і форми реалізації та може одержати інформацію, що перетворює його використання винаходу. на пристрій 6. Фіг.10 і 11 являють собою функціональні блок- Передперсоналізований пристрій 66 являє схеми, що ілюструють різноманітні представлення собою незадіяний пристрій 60, що одержав частипрограми, відповідно не захищеної і захищеної ну інформації, яка дозволяє йому, після одержанспособом згідно з винаходом. ня додаткової інформації, бути перетвореним на На Фіг.20-22 наведені як приклади різноманітні пристрій 6. форми виконання пристрою для здійснення спосо- Завантаження даних у незадіяний пристрій бу за винаходом. 60 або в передперсоналізований пристрій 66 відФіг.30 і 31 являють собою функціональні блокповідає передачі інформації в незадіяний пристрій схеми, що пояснюють загальний принцип способу 60 або в передперсоналізований пристрій 66 і збезгідно з винаходом. ріганню згаданих переданих даних. Передача інФіг.40-43 являють собою схеми, що ілюструформації може містити в собі зміну її формату. ють спосіб захисту згідно з винаходом, що реалі- Змінна, величина або функція, що міститься зує принцип захисту за допомогою змінної. в системі 3 обробки даних, позначаються надалі Фіг.70-74 являють собою схеми, що ілюструзаголовними буквами, а змінна, величина або фують спосіб захисту згідно з винаходом, що реалінкція, що міститься у пристрої 6, позначаються зує принцип захисту за допомогою детектування й надалі малими літерами. примусу. - "Захищеною програмою" є програма, що була Фіг.80-85 являють собою схеми, що ілюструзахищена щонайменше на основі одного принципу ють спосіб захисту згідно з винаходом, що реалізахисту, реалізованого у способі згідно з винахозує принцип захисту за допомогою перейменудом. вання. - "Уразливою програмою" є програма, що не Фіг.90-92 являють собою схеми, що ілюструбула захищена жодним з принципів захисту, реаліють спосіб захисту згідно з винаходом, що реалізованих у способі згідно з винаходом. зує принцип захисту за допомогою умовного пере- У випадку, коли розходження між уразливою і ходу. захищеною програмою несуттєве, застосовується Фіг.100 являє собою схему, що ілюструє різтермін "програма". номанітні фази здійснення винаходу. - Програма може бути представлена в різноНа Фіг.110 наведений приклад реалізації сисманітній формі відповідно до моменту її життєвого теми, що дозволяє реалізувати стадію побудови циклу, тобто як: фази захисту згідно з винаходом. - вихідний код, На Фіг.120 наведений приклад реалізації при- об'єктний код, строю передперсоналізації, використовуваного у - дистрибутив, способі захисту згідно з винаходом. - динамічне представлення. На Фіг.130 наведений приклад реалізації сис- Представлення програми у вигляді вихідного теми, що дозволяє здійснити стадію виготовлення коду розуміється як представлення, що дає після засобів для фази захисту згідно з винаходом. перетворення представлення у вигляді об'єктного На Фіг.140 наведений приклад реалізації сискоду. Представлення у вигляді вихідного коду мотеми, що дозволяє застосувати спосіб захисту же подаватися на різноманітних рівнях, від абстзгідно з винаходом. рактного концептуального рівня до рівня, безпосеНа Фіг.150 наведений приклад реалізації приредньо виконуваного системою обробки даних або строю персоналізації, використовуваного у способі пристроєм обробки і зберігання. захисту згідно з винаходом. - Об'єктне представлення програми (предстаДані, що підтверджують можливість здійсненвлення на рівні об'єктного коду) відповідає рівню ня винаходу Надалі в описі використовуються такі представлення, на якому програма, після переневизначення: сення в дистрибутив і наступного завантаження в - Системою 3 обробки даних є система, здатна систему обробки даних або пристрій обробки і виконувати програму. зберігання, може бути виконана. Це може бути, - Пристроєм обробки і зберігання є пристрій, наприклад, двійковий код, інтерпретований код здатний: тощо. - одержувати дані, передані системою 3 обро- Дистрибутивом є фізичний або віртуальний бки даних, носій, що містить об'єктне представлення, причо- повертати дані системі 3 обробки даних, му цей дистрибутив має надаватися в розпоря- зберігати дані в таємниці щонайменше частдження користувача, щоб дозволити йому викориково, і зберігати щонайменше їхню частину навіть стовувати програму. у випадку, коли пристрій відключений від живлен- Динамічне представлення відповідає виконя, нанню програми з дистрибутива. - і здійснювати алгоритмічну обробку даних, - Фрагмент програми відповідає певній її час 23 77187 24 тині й може, наприклад, відповідати одній або де2ре, що відповідає виконанню захищеної програми кільком інструкціям (послідовним або ні) і/або од2р. Це динамічне представлення 2ре містить перному або декільком функціональним блокам (посшу виконувану частину 2pes, що виконується в лідовним або ні), і/або одній або декільком системі 3 обробки даних, і другу виконувану часфункціям, і/або одній або декільком підпрограмам, тину 2реu, що виконується у пристрої 6. і/або одному або декільком модулям. Фрагмент У випадку, коли розходження між різноманітпрограми може відповідати і всій програмі цілком. ними представленнями захищеної програми 2р На Фіг.10 і 11 наведені різноманітні представнесуттєве, використовуються вирази "перша часлення відповідно вразливої програми 2ν у загальтина захищеної програми" і "друга частина захиному вигляді і програми 2р, захищеної згідно з вищеної програми". находом. Реалізація способу згідно з винаходом відпоНа Фіг.10 наведені різноманітні представлення відно до динамічного представлення, проілюстровразливої програми 2v, що з'являються в ході її ваного на Фіг.11, використовує пристрій 1р захисжиттєвого циклу. Вразлива програма 2v може з'явту, що містить систему 3 обробки даних, сполучену лятися в одному з різноманітних виглядів, тоблінією 5 зв'язку з пристроєм 6. Система 3 обробки то як: даних може бути будь-якого типу і містить у зви- вихідний код 2vs; чайному варіанті щонайменше один процесор 4. - об'єктний код 2vo; Система 3 обробки даних може бути комп'ютером - дистрибутив 2vd, який може надаватися звиабо бути частиною, наприклад, різноманітних мачайно на фізичному носії, наприклад на компактшин, пристроїв, стаціонарних або рухливих виродиску, або у вигляді файлів, переданих по мережі бів, у тому числі будь-яких транспортних засобів. (за стандартом GSM, по мережі Інтернет тощо); Лінія 5 зв'язку може бути здійснена будь-яким мо- у вигляді динамічного представлення 2ve, що жливим способом, наприклад, по лінії послідовної відповідає виконанню вразливої програми 2v у передачі, по шині USB, по радіо, по оптичному системі 3 обробки даних будь-яких відомих типів, каналу, по мережі або через пряме електричне які в класичному випадку містять принаймні один з'єднання зі схемою системи 3 обробки даних топроцесор 4. що. Слід зазначити, що пристрій 6 може фізично Фіг.11 ілюструє різноманітні представлення знаходитися всередині тієї ж інтегральної схеми, захищеної програми 2р, що з'являються в ході її що й процесор 4 системи 3 обробки даних. У цьожиттєвого циклу. Захищена програма 2р може таму випадку пристрій 6 може розглядатися як співкож з'являтися у вигляді: процесор стосовно до процесора 4 системи обро- вихідного коду (представлення) 2ps, що місбки даних, а лінія 5 зв'язку є внутрішньою лінією тить першу частину вихідного коду, призначену зв'язку в інтегральній схемі. для системи 3 обробки даних, і, можливо, другу На Фіг.20-22 наведені як приклади, що не вичастину вихідного коду, призначену для пристрою черпують можливі варіанти, різноманітні форми 6, причому частина цих частин вихідного коду мореалізації пристрою 1р захисту, який дозволяє же звичайно міститися в загальних файлах; реалізувати спосіб захисту згідно з винаходом. - об'єктного представлення 2ро, що містить У прикладі реалізації за Фіг.20 пристрій 1р запершу частину 2pos об'єктного коду, призначену хисту містить, як систему З обробки даних, комдля системи 3 обробки даних, і, можливо, другу п'ютер і, як пристрій 6, карту 7 з мікрочипом та її частину 2pou об'єктного коду, призначену для приінтерфейс 8, звичайно називаний пристроєм чистрою 6; тання карт. Комп'ютер 3 зв'язаний з пристроєм 6 - дистрибутив у 2pd, що містить: за допомогою лінії 5 зв'язку. В ході виконання за- першу частину 2pds дистрибутива, що місхищеної програми 2р перша виконувана частина тить першу частину 2pos об'єктного коду, причому 2pes, яка виконується в системі 3 обробки даних, і ця перша частина 2pds дистрибутива призначена друга виконувана частина 2реu, яка виконується в для системи 3 обробки даних і може бути предстакарті 7 з мікрочипом і в її інтерфейсі 8, мають бути влена звичайно у формі дистрибутива на фізичфункціональними, щоб захищена програма 2р буному носії, наприклад на компакт-диску, або у вила повнофункціональною. гляді файлів, переданих по мережі (за стандартом У прикладі реалізації за Фіг.21 пристрій 1р заGSM, по мережі Інтернет тощо), - і другу частину хисту міститься у виробі 9 загального виду, що 2pdu дистрибутива, поданого у вигляді: містить різноманітні органи 10, адаптовані до фун- щонайменше одного незадіяного прикції або до функцій, реалізованих таким виробом строю 60, 9. Пристрій 1р захисту містить, з одного боку, сис- або щонайменше одного передперсоналізотему 3 обробки даних, умонтовану у виріб 9, а з ваного пристрою 66, у який була завантажена часдругого боку - пристрій 6, зв'язаний з виробом 9. тина другої частини 2pou об'єктного коду і для якоЩоб виріб 9 був повнофункціональним, захищена го користувач мусить завершити персоналізацію програма 2р має бути повністю функціональною. шляхом завантаження додаткової інформації, щоб Так, у ході виконання захищеної програми 2р і пеодержати пристрій 6, причому ця додаткова інфорша виконувана частина 2pes, яка виконується в рмація може надходити, наприклад, шляхом завасистемі 3 обробки даних, і друга виконувана часнтаження або передачі по мережі, тина 2peu, яка виконується у пристрої 6, мають - або щонайменше одного пристрою 6, у який бути працездатні. Ця захищена програма 2р добула завантажена друга частина 2pou об'єктного зволяє, отже, непрямим чином захистити від неавкоду; торизованого використання виріб 9 або одну з його - або у вигляді динамічного представлення функціональних можливостей. Виріб 9 може бути, 25 77187 26 наприклад, установкою, системою, машиною, ігзавжди розглядається як присутній; рашкою, електропобутовим приладом, телефо- пристрій 6, що фізично присутній, але що міном. стить непридатні засоби 14 захисту, тобто такі, що У прикладі реалізації за Фіг.22 пристрій 1р зане дозволяють здійснити коректну реалізацію друхисту містить множину комп'ютерів, а також частигої виконуваної частини 2peu захищеної програми ну комунікаційної мережі. Система 3 обробки да2р, розглядається як присутній, якщо він функціоних являє собою перший комп'ютер, зв'язаний за нує коректно, і як відсутній, якщо він не функціонує допомогою лінії 5 зв'язку мережного типу з прикоректно; строєм 6, який являє собою другий комп'ютер. Для - пристрій 6, фізично відсутній, завжди розгляреалізації винаходу другий комп'ютер 6 викорисдається як відсутній. товується як сервер ліцензій для захищеної проУ випадку, якщо пристрій 6 складається з карграми 2р. У ході виконання захищеної програми 2р ти 7 з мікрочипом і її інтерфейсу 8, засоби 13 пеі перша виконувана частина 2pes, яка виконується редачі розділяються на дві частини, одна з яких в першому комп'ютері 3, і друга виконувана частизнаходиться на інтерфейсі 8, а інша - на карті 7 з на 2peu, яка виконується в другому комп'ютері 6, мікрочипом. У цьому прикладі реалізації відсутмають бути функціональними, щоб захищена проність карти 7 з мікрочипом розглядається як еквіграма 2р була повнофункціональною. валент відсутності пристрою 6. Іншими словами, Фіг.30 дозволяє пояснити точніше спосіб захиза відсутності карти 7 з мікрочипом і/або її інтерсту згідно з винаходом. Слід зазначити, що вразфейсу 8 засоби 14 захисту недоступні й, отже, не лива програма 2v розглядається як виконувана дозволяють здійснити виконання другої виконуваповністю в системі 3 обробки даних. Навпаки, у ної частини 2peu захищеної програми, так що завипадку реалізації захищеної програми 2р система хищена програма 2р не є повнофункціональною. 3 обробки даних містить засоби 12 передачі, зв'яЗгідно з винаходом, спосіб захисту спрямовазані лінією 5 зв'язку із засобами 13 передачі, що ний на реалізацію принципу захисту, названого становлять частину пристрою 6, що дозволяє спо"детектування й примус", опис якого виконано з лучатися між собою першій виконуваній частини посиланням на Фіг.70-74. 2pes і другій виконуваній частині 2peu захищеної Для реалізації принципу захисту за допомогою програми 2р. детектування й примусу визначаються: Слід мати на увазі, що засоби 12, 13 передачі - щонайменше одна характеристика виконання реалізовані програмно або матеріально і здатні програми, яка може бути проконтрольована, призабезпечити й, можливо, оптимізувати передачу наймні, частково у пристрої 6; даних між системою 3 обробки даних і пристроєм - щонайменше один критерій, що його слід до6. Ці засоби 12, 13 передачі пристосовані для того, тримуватися принаймні для однієї характеристики щоб дозволити скористатися захищеною програвиконання програми; мою 2р, яка є переважно незалежною від типу за- засоби 17 детектування, що їх необхідно застосовуваної лінії 5 зв'язку. Ці засоби 12, 13 перестосовувати у пристрої 6 і які дозволяють виявити, дачі не стосуються предмета винаходу і не що принаймні одна характеристика виконання проописуються докладніше, тому що вони добре віграми не відповідає щонайменше одному відповідомі фахівцям. Перша частина захищеної проградному критерію; ми 2р містить команди. В ході виконання захище- засоби 18 примусу, що їх необхідно застосоної програми 2р виконання цих команд першою вувати у пристрої 6 і які дозволяють проінформувиконуваною частиною 2pes дозволяє здійснити вати систему 3 обробки даних і/або модифікувати зв'язок між першою виконуваною частиною 2pes і виконання програми, поки не дотримано хоча б другою виконуваною частиною 2peu. Надалі в опиодного критерію. сі ці команди подані у вигляді IN, OUT або TRIG. Для реалізації принципу захисту за допомогою Як показано на Фіг.31, щоб дозволити реалізадетектування й примусу конструюють також засоцію другої виконуваної частини 2peu захищеної би експлуатації, які дозволяють перетворити незапрограми 2р, пристрій 6 містить засоби 14 захисту. діяний пристрій 60 на пристрій 6, що принаймні В разі, якщо пристрій 6 є запам'ятовуючим приреалізує засоби 17 детектування й засоби 18 пристроєм, засоби 14 захисту містять засоби 15 запамусу. м'ятовування. У випадку, якщо пристрій 6 є приНа Фіг.70 показані засоби, необхідні для реалістроєм обробки і зберігання, засоби 14 захисту зації принципу захисту за допомогою детектування містять засоби 15 запам'ятовування і засоби 16 й примусу. Пристрій 6 містить засоби 17 детектуобробки. вання й засоби 18 примусу, що належать засобам Для спрощення подальшого опису будемо 16 обробки. Засоби 18 примусу одержують інфорвважати, що в ході виконання захищеної програми мацію про недотримання критерію від засобів 17 2р пристрій 6 є наявним або пристрій 6 відсутній. У детектування. дійсності, пристрій 6 у тому випадку, коли містить Точніше кажучи, засоби 17 детектування викозасоби 14 захисту, не пристосовані до виконання ристовують інформацію, що виходить від засобів другої виконуваної частини 2peu захищеної про13 передачі і/або від засобів 15 запам'ятовування і грами 2р, також розглядається як відсутній щоразасобів 16 обробки, щоб дотримувалася одна або зу, коли виконання захищеної програми 2р не є декілька характеристик виконання програми. Кожкоректним. Іншими словами: ній характеристиці виконання програми зіставля- пристрій 6, що фізично присутній і містить зається принаймні один критерій, що його слід дособи 14 захисту, пристосовані до виконання другої тримуватися. виконуваної частини 2peu захищеної програми 2р, У випадку, якщо виявлено, що принаймні одна 27 77187 28 характеристика виконання програми не задовольтання програми. Ці обидва типи характеристик няє щонайменше одному критерію, засоби 17 деможуть використовуватися незалежно або в поєдтектування інформують про це засоби 18 примусу. нанні. Ці засоби 18 примусу адаптовані для зміни відпоДля реалізації принципу захисту за допомогою відним чином стану пристрою 6. детектування й примусу, що використовує як хараДля реалізації принципу захисту за допомогою ктеристику виконання програми змінну контролю детектування й примусу мають бути вибрані також: виконання програми, мають визначатися: - щонайменше одна характеристика виконання - у засобах 15 запам'ятовування - можливість контрольованої програми, серед характеристик запам'ятати щонайменше одну змінну контролю, виконання, що можуть бути проконтрольовані; що служить як кількісна характеристика викорис- щонайменше один критерій, що його слід дотання щонайменше однієї функціональної можлитримуватися принаймні для однієї вибраної хараквості програми; теристики виконання програми; - у засобах 17 детектування - можливість спо- у вихідному коді 2vs уразливої програми, стерігати щонайменше одне порогове значення, щонайменше один алгоритм, для якого потрібно зв'язане з кожною змінною контролю; контролювати щонайменше одну характеристику - засоби поновлення, що дозволяють поновити виконання програми; кожну змінну контролю залежно від використання - у вихідному коді 2vs уразливої програми, функціональної можливості, з якою вона зв'язана. щонайменше один фрагмент, що містить принайКонструюють також засоби експлуатації, які мні один вибраний алгоритм. задіюють, окрім засобів 17 детектування і засобів За виконання цих умов щонайменше один ви18 примусу, також засоби поновлення. браний фрагмент коду 2vs уразливої програми Крім того, у вихідному коді 2vs уразливої промодифікується, щоб одержати вихідний код 2ps грами вибираються: захищеної програми. Ця модифікація така, що са- щонайменше одна функціональна можлиме в ході виконання захищеної програми 2р: вість уразливої програми 2v, що її використання - щонайменше один фрагмент першої виконуможна проконтролювати за допомогою змінної для ваної частини 2pes, яка виконується в системі 3 кількісного контролю; обробки даних, враховує, що принаймні одна ха- щонайменше одна змінна для кількісного корактеристика виконання вибраної програми має нтролю, що служить як кількісна характеристика бути проконтрольована, щонайменше частково, у згаданої функціональної можливості; пристрої 6; - щонайменше одне порогове значення, зв'я- друга виконувана частина 2peu, яка виконузане зі змінною для кількісного контролю і відповіється у пристрої 6,контролює, щонайменше частдне межі використання вказаної функціональної ково, одну характеристику виконання вибраної можливості; програми. - і щонайменше один метод поновлення змінУ ході виконання програми 2р, захищеної за ної для кількісного контролю відповідно до викоридопомогою принципу детектування й примусу, в стання зазначеної функціональної можливості. присутності пристрою 6 має місце така ситуація: Вихідний код 2vs уразливої програми потім - якщо всіх критеріїв, що відповідають усім комодифікується, щоб одержати вихідний код 2ps нтрольованим характеристикам виконання всіх захищеної програми, причому ця модифікація тамодифікованих фрагментів захищеної програми ка, що в ході виконання захищеної програми 2р 2р, дотримано, ці модифіковані фрагменти захидруга виконувана частина 2peu: щеної програми 2р функціонують належним чином - поновлює значення змінної для кількісного й, отже, захищена програма 2р функціонує належконтролю відповідно до використання згаданої ним чином; функціональної можливості; - якщо ж щонайменше одного з критеріїв, що - і бере до уваги щонайменше одне перевивідповідає характеристиці контрольованого викощення порогового значення. нання одного фрагмента захищеної програми 2р, Іншими словами, в ході виконання захищеної не дотримано, система 3 обробки даних інформупрограми 2р значення змінної для кількісного конється про це і/або функціонування фрагмента затролю поновлюється відповідно до використання хищеної програми 2р модифікується таким чином, згаданої функціональної можливості, й у разі пещоб функціонування захищеної програми 2р було ревищення порогового значення засобу 17 детекзмінене. тування інформують про це засоби 18 примусу, які Природно, що за відсутності пристрою 6 щоприймають рішення, пристосоване для того, щоб найменше один запит одного фрагмента першої проінформувати систему 3 обробки даних і/або виконуваної частини 2pes захищеної програми 2р модифікувати обробку, здійснювану засобами 16 на використання пристрою 6 не може бути коректобробки. Це дозволяє модифікувати функціонуно виконаний, так що принаймні ця частина не вання фрагмента захищеної програми 2р таким виконується коректно й, отже, захищена програма чином, щоб функціонування захищеної програми 2р не є повнофункціональною. 2р було змінено. Для реалізації принципу захисту за допомогою Для реалізації першого кращого варіанта реадетектування й примусу бажано використовувати лізації принципу захисту за допомогою детектудва типи характеристики виконання програми. вання й примусу, який використовує як характериПерший тип характеристики виконання простику змінну для кількісного контролю, грами відповідає змінній контролю виконання провизначають: грами, а другий тип відповідає профілю викорис- щонайменше для однієї змінної для кількісно 29 77187 30 го контролю - декілька відповідних порогових зналення щонайменше однієї вибраної змінної для чень; кількісного контролю і/або щонайменше одного - і різноманітні засоби примусу, що відповідазв'язаного порогового значення, щоб дозволити ють кожному з цих порогових значень. принаймні одне додаткове використання відповідУ вихідному коді 2vs уразливої програми виної функціональної можливості. Іншими словами, у бираються також: фазі перезавантаження забезпечується можли- щонайменше одна змінна для кількісного ковість дозволити додаткові використання щонайментролю, що служить як кількісна характеристика нше однієї функціональної можливості захищеної використання щонайменше однієї функціональної програми 2р. можливості програми, з якою мають зв'язуватися Для реалізації принципу захисту за допомогою декілька порогових значень, що відповідають різдетектування й примусу, що використовує як хараноманітним межам використання зазначеної функтеристику профіль використання програми, як кціональної можливості; критерій, що його слід дотримуватися для цього - і щонайменше два порогових значення, зв'япрофілю використання, має бути визначена щозані зі змінною для кількісного контролю. найменше одна ознака виконання програми. Вихідний код 2vs уразливої програми потім Крім того, у вихідному коді 2vs уразливої промодифікується, щоб одержати вихідний код 2ps грами вибирають: захищеної програми. Ця модифікація така, що в - щонайменше один профіль використання, що ході виконання захищеної програми 2р друга викойого слід контролювати; нувана частина 2peu: - і щонайменше одну ознаку виконання, що її - поновлює значення змінної для кількісного має дотримуватися щонайменше один профіль контролю відповідно до використання згаданої використання. функціональної можливості; Вихідний код 2vs уразливої програми потім - і по-різному враховує перевищення різномамодифікується, щоб одержати вихідний код 2ps нітних порогових значень. захищеної програми, причому ця модифікація таІншими словами, у звичайному випадку в ході ка, що в ході виконання захищеної програми 2р виконання захищеної програми 2р при перевидруга виконувана частина 2peu дотримується всіх щенні першого порогового значення пристрій 6 вибраних ознак виконання. інформує систему 3 обробки даних, даючи команІншими словами, пристрій 6 саме контролює ду захищеній програмі 2р більше не використовутой спосіб, що ним виконується друга виконувана вати цю функціональну можливість. Якщо ж захичастина 2peu, і може інформувати систему 3 общена програма 2р продовжує використовувати цю робки даних і/або модифікувати функціонування функціональну можливість, то може бути перевизахищеної програми 2р у випадку, якщо не дотрищене друге порогове значення. В разі перевищенмана хоча б одна ознака. ня другого порогового значення засоби 18 примусу У ході виконання програми 2р, захищеної на можуть зробити непрацездатною вибрану функціоснові даного принципу, в присутності пристрою 6 ональну можливість і/або зробити непрацездатною має місце така ситуація: захищену програму 2р. - якщо всіх ознак виконання всіх модифіковаДля реалізації другого кращого варіанта принних фрагментів захищеної програми 2р дотримаципу захисту за допомогою детектування й примуно, то ці модифіковані фрагменти захищеної просу, що використовує як характеристику змінну для грами 2р функціонують належним чином, і, отже, кількісного контролю, визначають засоби перезазахищена програма 2р функціонує належним чивантаження, що дозволяють щонайменше одне ном; додаткове використання принаймні однієї функці- якщо ж хоча б однієї ознаки виконання одноональної можливості програми, контрольованої за го фрагмента захищеної програми 2р не дотримадопомогою змінної для кількісного контролю. но, про це інформується система 3 обробки даних Конструюють також засоби експлуатації, де і/або функціонування фрагмента захищеної прозастосовані, крім засобів 17 детектування, засобів грами 2р модифікується таким чином, щоб функці18 примусу й засобів відновлення, також і засоби онування захищеної програми 2р було змінено. перезавантаження. Можна передбачити контроль різноманітних Крім того, у вихідному коді 2vs уразливої проознак виконання, наприклад контроль наявності грами вибирається щонайменше одна змінна для інструкцій, що містять генератор міток, або конткількісного контролю, що служить для обмеження роль зчеплення виконання щонайменше однієї використання щонайменше однієї функціональної частини інструкцій. можливості програми, для якої існує можливість Для реалізації принципу захисту за допомогою дозволу на щонайменше одне додаткове викорисдетектування й примусу, де як ознака виконання, тання. що її слід дотримуватися, використовується контВихідний код 2vs уразливої програми потім роль зчеплення виконання щонайменше частини модифікується, щоб одержати вихідний код 2ps інструкцій, визначають: захищеної програми, причому ця модифікація та- набір інструкцій, інструкції зі складу якого ка, що у фазі, названій фазою перезавантаження, можуть бути виконані у пристрої 6; щонайменше одне додаткове використання що- набір команд інструкцій для цього набору іннайменше однієї функціональної можливості, що струкцій, причому ці команди інструкцій можуть відповідає одній вибраній змінній для кількісного бути виконані в системі 3 обробки даних. Виконанконтролю, може бути дозволено. ня кожної з цих команд інструкцій у системі 3 обУ фазі перезавантаження відбувається поновробки даних викликає у пристрої 6 виконання від 31 77187 32 повідної інструкції; нання у пристрої 6 інструкції іn дає результат а, а - засоби 17 детектування, що дозволяють вивиконання інструкції іn+1 дає результат b. Інструкція явити, що зчеплення інструкцій не відповідає баіn+2 використовує як операнд результати а і b інжаному; струкцій іn і іn+1, а її виконання дає результат с. - засоби 18 примусу, що дозволяють проінфоЗ урахуванням того, що це зчеплення інструкрмувати систему 3 обробки даних і/або модифікуцій, виконуваних у пристрої 6, відповідає бажановати виконання програми, якщо зчеплення інструму, функціонування захищеної програми 2р відпокцій не відповідає бажаному. відає нормальному або номінальному режиму. Конструюють також засоби експлуатації, що На Фіг.72 наведений приклад реалізації приндозволяють пристрою 6 виконувати інструкції з ципу захисту за допомогою детектування й примунабору інструкцій, причому виконання цих інструксу, де як ознака виконання, що її слід дотримувацій викликається виконанням команд інструкцій у тися, використовується контроль зчеплення системі 3 обробки даних. виконання щонайменше частини інструкцій у виКрім того, у вихідному коді 2vs уразливої пропадку, якщо бажаного зчеплення не дотримано. грами вибирається щонайменше один алгоритм, Відповідно до цього приклада бажаним зчепякий має бути винесений у пристрій 6 і для якого ленням для виконання інструкцій є завжди іn, іn+1 і слід контролювати зчеплення щонайменше частиіn+2. Проте зчеплення виконання інструкцій модини інструкцій. фікується заміною інструкції іn на інструкцію і'n таВихідний код 2vs уразливої програми потім ким чином, що дійсно виконуваним зчепленням є модифікується, щоб одержати вихідний код 2ps і'n, іn+1 і іn+2. Виконання інструкції і'n дає результат захищеної програми. Ця модифікація така, що в а, тобто той самий результат, що й виконання інході виконання захищеної програми 2р: струкції іn. Проте не пізніше, ніж при виконанні ін- друга виконувана частина 2peu виконує щострукції іn+2, засоби 17 детектування виявляють, найменше функціональну можливість вибраного що інструкція і'n не відповідає бажаній інструкції алгоритму; для вироблення результату а, використовуваного - вибраний алгоритм розкладається на інструяк операнд для інструкції іn+2. Засоби 17 детектукції; вання інформують про це засоби 18 примусу, що - задане зчеплення, що його мають дотримумодифікують, як наслідок, функціонування інструватися принаймні деякі з інструкцій у ході їхнього кції іn+2, таким чином, що виконання інструкції іn+2 виконання у пристрої 6; дає результат с', який може відрізнятися від с. - перша виконувана частина 2pes захищеної Зрозуміло, якщо виконання інструкції і'n дає програми 2р виконує команди інструкцій, які запусрезультат а', відмінний від результату а інструкції кають виконання інструкцій у пристрої 6. іn, ясно, що результат виконання інструкції іn+2 моУ ході виконання програми 2р, захищеної на же також відрізнятися від с. основі цього принципу, в присутності пристрою 6 Отже, якщо зчеплення виконання інструкцій, має місце така ситуація: виконуваних у пристрої 6, не відповідає бажаному, - якщо зчеплення інструкцій усіх модифіковаможна одержати модифікацію функціонування них фрагментів захищеної програми 2р відповідає захищеної програми 2р. бажаному, ці модифіковані фрагменти захищеної На Фіг.73 і 74 показаний кращий варіант реаліпрограми 2р функціонують належним чином і, отзації принципу захисту за допомогою детектування же, захищена програма 2р функціонує належним й примусу, де як ознака виконання, що її слід дочином; тримуватися, використовується контроль зчеплен- якщо ж зчеплення інструкцій фрагмента заня виконання щонайменше частини інструкцій. хищеної програми 2р, виконуваних у пристрої 6, не Відповідно до цього кращого варіанта визначаєтьвідповідає бажаному, то система 3 обробки даних ся набір інструкцій, у якому щонайменше деякі інформується про це і/або функціонування фрагінструкції працюють на регістрах і використовують мента захищеної програми 2р модифікується тащонайменше один операнд для видачі результату. ким чином, щоб функціонування захищеної проЯк показано на Фіг.73, щонайменше для часграми 2р було змінено. тини інструкцій, що працюють на регістрах, визнаНа Фіг.71 наведений приклад реалізації принчена частина PF, що задає функціональну можлиципу захисту за допомогою детектування й примувість інструкції, і частина РЕ, що задає бажане су, де як ознака виконання, що її слід дотримувазчеплення для виконання інструкцій. Частина PF тися, використовується контроль зчеплення відповідає коду операцій, відомому фахівцеві. Чавиконання щонайменше частини інструкцій у вистина РЕ, що визначає бажане зчеплення, містить падку, якщо бажаного зчеплення дотримано. відповідні бітові поля: Перша виконувана частина 2pes захищеної - полю Сll ідентифікації інструкції; програми 2р, виконувана в системі 3 обробки да- і для кожного операнда k інструкції, де k проних, виконує команди Сlі інструкцій, що викликає у бігає значення від 1 до K, K - кількість операндів пристрої 6 виконання інструкцій іi, що належать до інструкції: набору інструкцій. У наборі інструкцій щонаймен- полю CDk прапора, що вказує, чи варто переше деякі з інструкцій містять частину, що задає віряти походження операнда k, функціональну можливість інструкції, і частину, що - і полю СІРk ідентифікації, передбаченої для дозволяє перевіряти бажане зчеплення для викооперанда й що вказує на очікувану ідентичність нання інструкцій. У цьому прикладі команди Сlі інструкції, яка згенерувала вміст операнда k. інструкцій подані як TRIG(іi), а бажаним зчепленЯк показано на Фіг.74, набір інструкцій містить ням для виконання інструкцій є іn, іn+1 і іn+2. ВикоV регістрів, що належать засобам 16 обробки, де 33 77187 34 кожний регістр названий Rv (v пробігає значення вразливої програми 2v. У цьому прикладі в ході від 1 до V). Для кожного регістра Rv визначаються виконання вразливої програми 2v у системі 3 обдва поля, як-от: робки даних мають місце: - функціональне поле CFv, відоме фахівцеві і - у момент t1 присвоєння значення X змінній що дозволяє зберігати результат виконання інV1, що подано як V1 X; струкцій; - у момент t2 присвоєння значення змінної V1 - і поле CIGv генерованої ідентифікації, в якому змінній Y, що подано як Y Y1; автоматично запам'ятовується ідентифікація - у момент t3 присвоєння значення змінної V1 останньої інструкції, що повернула свій результат змінній Z, що подано як Z V1. у вказаний регістр, тобто такої, що згенерувала На Фіг.41 наведений приклад першої форми вміст функціонального поля CFv. Це поле CIGv реалізації винаходу, для якої змінна знаходиться у генерованої ідентифікації поновлюється автомапристрої 6. У цьому прикладі в ході виконання в тично разом із вмістом поля Сll ідентифікації інсистемі З обробки даних першої виконуваної часструкції, згенерувавши функціональне поле CFv. тини 2pes захищеної програми 2р в присутності Поле CIGv генерованої ідентифікації не є ні доступристрою 6 здійснюються: пним, ані таким, що модифікується для будь-якої - у момент t1 виконання команди передачі, що іншої інструкції, і служить винятково для засобів 17 викликає передачу даного X від системи 3 обробки детектування. даних до змінної v1, розташованої в засобах 15 В ході виконання інструкції засоби 17 детектузапам'ятовування пристрою 6, причому ця команвання виконують для кожного операнда k такі опеда передачі подана як OUT(v1, X) і відповідає по рації: завершенні присвоєнню значення X змінній v1; - зчитується поле CDk прапора; - у момент t2 виконання команди передачі, що - якщо цього вимагає поле CDk прапора, то викликає передачу значення змінної v1, що знахозчитуються обидва поля: поле СІРk передбаченої диться у пристрої 6, системі 3 обробки даних, щоб ідентифікації і поле CIGv генерованої ідентифікаприсвоїти її значення змінній Y, причому ця коції, що відповідає регістрам, використовуваним манда передачі подана як IN(v1) і відповідає по операндом k; завершенні присвоєнню значення v1 змінній Y; - перевіряється рівність обох полів СІРk і CIGv; - у момент t3 виконання команди передачі, що - і якщо рівність хибна, то засоби 17 детектувикликає передачу значення змінної v1, що знаховання вважають, що зчеплення виконання інструкдиться у пристрої 6, системі 3 обробки даних, щоб цій не дотримано. присвоїти її значення змінній Z, причому ця команЗасоби 18 примусу мають дозволяти модифіда передачі подана як IN(v1) і відповідає по завекувати результат виконання інструкцій, коли засоршенні присвоєнню значення v1 змінній Z. би 17 детектування проінформують їх про недоСлід зазначити, що в ході виконання захищетримання зчеплення інструкцій. Краща реалізація ної програми 2р щонайменше одна змінна знахополягає в тому, щоб модифікувати функціональну диться у пристрої 6. Так, коли цього вимагає часчастину PF виконуваної інструкції або функціонатина першої виконуваної частини 2pes захищеної льної частини PF наступних інструкцій. програми 2р, в присутності пристрою 6, значення Відповідно до іншої кращої характеристики цієї змінної, що знаходиться у пристрої 6, передавинаходу, спосіб захисту спрямований на реалізається системі 3 обробки даних, щоб бути викорисцію так званого принципу захисту за допомогою таною першою виконуваною частиною 2pes захизмінної, опис якого подано з посиланням на щеної програми 2р таким чином, щоб ця частина Фіг.40-43. виконувалася коректно й, отже, захищена програДля реалізації принципу захисту за допомогою ма 2р була повнофункціональною. змінної у вихідному коді 2vs уразливої програми На Фіг.42 наведений приклад другої форми вибирається щонайменше одна змінна, яка в ході реалізації винаходу, для якої копія змінної знаховиконання вразливої програми 2v частково визнадиться у пристрої 6. У цьому прикладі в ході викочає її стан. Під станом програми розуміється сукунання в системі 3 обробки даних першої виконувапність інформації, на даний момент необхідної для ної частини 2pes захищеної програми 2р в повного виконання цієї програми. Таким чином, присутності пристрою 6 здійснюються: відсутність згаданої вибраної змінної перешкоджає - у момент t1 присвоєння значення X змінній повному виконанню цієї програми. Вибирається V1, що знаходиться в системі 3 обробки даних, а також щонайменше один фрагмент вихідного коду також виконання команди передачі, що викликає 2vs уразливої програми, що містить щонайменше передачу даного X від системи 3 обробки даних до одну вибрану змінну. змінної v1, розташованої в засобах 15 запам'ятовуЩонайменше один вибраний фрагмент коду вання пристрою 6, причому ця команда передачі 2vs уразливої програми в цьому випадку модифіподана як OUT(v1, X); кується, щоб одержати вихідний код 2ps захище- у момент t2 - присвоєння значення змінної ної програми. Ця модифікація така, що в ході виV1змінній Y; конання захищеної програми 2р щонайменше один - у момент t3 - виконання команди передачі, фрагмент першої виконуваної частини 2pes, який що викликає передачу значення змінної v1, що виконується в системі 3 обробки даних, враховує, знаходиться у пристрої 6, системі 3 обробки дащо принаймні одна вибрана змінна або щонаймених, щоб присвоїти її значення змінній Z, причому нше одна копія вибраної змінної знаходиться у ця команда передачі подана як IN(v1). пристрої 6. Слід зазначити, що в ході виконання захищеНа Фіг.40 наведений приклад представлення ної програми 2р щонайменше одна копія однієї 35 77187 36 змінної знаходиться у пристрої 6. ску; Так, коли цього вимагає частина першої вико- метод перейменування настановних параменуваної частини 2pes захищеної програми 2р, у трів, призначений для застосування в ході модифіприсутності пристрою 6, значення цієї копії змінної, кації вразливої програми і дозволяє перейменуващо знаходиться у пристрої 6, передається системі ти настановні параметри таким чином, щоб 3 обробки даних, щоб бути використаною першою одержати команди запуску з перейменованими виконуваною частиною 2pes захищеної програми параметрами, дозволяючи приховати ідентичність 2р таким чином, щоб ця частина виконувалася відповідних залежних функцій; коректно й, отже, захищена програма 2р була пов- засоби 20 відновлення, призначені для занофункціональною. стосування у пристрої 6 у фазі використання і що На Фіг.43 наведений приклад спроби виконандозволяють відновити початкові настановні параня захищеної програми 2р за відсутності пристрою метри виходячи з перейменованих настановних 6. У цьому прикладі в ході виконання в системі З параметрів, щоб знайти залежну функцію, що її обробки даних першої виконуваної частини 2pes необхідно виконати. захищеної програми 2р: Для реалізації принципу захисту переймену- у момент t1 виконання команди передачі ванням конструюють також засоби експлуатації, OUT(v1, X) не може викликати передачу даного X що дозволяють перетворити незадіяний пристрій змінній v1 з огляду на відсутність пристрою 6; 60, що містить засоби 15 запам'ятовування і засо- у момент t2 виконання команди передачі би 16 обробки, на пристрій 6, що застосовує щоΙΝ(v1) не може викликати передачу значення зміннайменше засоби 20 відновлення. ної v1 системі 3 обробки даних з огляду на відсутДля реалізації принципу захисту перейменуність пристрою 6; ванням у вихідному коді 2vs уразливої програми - у момент t3 виконання команди передачі мають також вибиратися: IN(v1) не може викликати передачу значення змін- щонайменше один алгоритм, що використоної v1 системі 3 обробки даних з огляду на відсутвує щонайменше один операнд і що видає приність пристрою 6. наймні один результат; Таким чином, представляється, що за відсут- і щонайменше один фрагмент вихідного коду ності пристрою 6 щонайменше один запит одного 2vs уразливої програми, що містить принаймні фрагмента першої виконуваної частини 2pes на один вибраний алгоритм. використання змінної або копії змінної, що знахоВихідний код 2vs уразливої програми потім диться у пристрої 6, не може бути коректно викомодифікується, щоб одержати вихідний код 2ps наний, отже, щонайменше ця частина не виконузахищеної програми. Ця модифікація така, що: ється коректно, й, отже, захищена програма 2р не - у ході виконання захищеної програми 2р щоє повнофункціональною. найменше один фрагмент першої виконуваної чаСлід відзначити, що процеси передачі даних стини 2pes, яка виконується в системі 3 обробки між системою 3 обробки даних і пристроєм 6 викоданих, враховує, що функціональна можливість ристовують тільки прості присвоєння (що проілюсщонайменше одного вибраного алгоритму виконутровано на вищенаведених прикладах). Проте ється у пристрої 6; фахівець зможе скомбінувати їх з іншими операці- у ході виконання захищеної програми 2р друями, щоб одержати складні операції, наприклад, га виконувана частина 2peu, яка виконується у пристрої 6, виконує принаймні функціональну моOUT(v1, 2*Х+3) або Ζ (5*v1+v2). жливість щонайменше одного вибраного алгоритВідповідно до іншої переважної характеристиму; ки винаходу спосіб захисту націлений на реаліза- кожний вибраний алгоритм розкладається цію принципу захисту, названого "перейменувантаким чином, що в ході виконання захищеної проня", опис якого виконано з посиланням на грами 2р кожний вибраний алгоритм виконується Фіг.80-85. за допомогою другої виконуваної частини 2peu, Для реалізації принципу захисту перейменувикористовуючи залежні функції. Кожний вибраний ванням мають визначатися: алгоритм переважно розкладається на залежні - ансамбль залежних функцій, залежні функції функції fdn (де n пробігає значення від 1 до Ν), якого можуть бути виконані за допомогою другої як-от: виконуваної частини 2peu у пристрої 6, можливо, із - можливо, на одну або декілька залежних фунаступною передачею даних між системою 3 обнкцій, що дозволяють надати один або декілька робки даних і пристроєм 6 (причому цей ансамбль операндів для пристрою 6, залежних функцій може бути кінцевим чи ні); - на залежні функції, деякі з яких використову- ансамбль команд запуску для цих залежних ють один або декілька операндів і які в поєднанні функцій, причому ці команди запуску можуть викоздійснюють функціональну можливість вибраного нуватися в системі 3 обробки даних і викликати у алгоритму, що використовує ці операнди, пристрої 6 виконання відповідних залежних функ- і, можливо, на одну або декілька залежних цій; функцій, що дозволяють за допомогою пристрою 6 - для кожної команди запуску - настановний надати системі 3 обробки даних результат викопараметр, що відповідає, щонайменше частково, нання вибраного алгоритму; інформації, переданій першою виконуваною час- у ході виконання захищеної програми 2р друтиною 2pes другій виконуваній частині 2peu, щоб га виконувана частина 2peu виконує залежні фунвикликати запуск відповідної залежної функції, кції fdn; причому цей настановний параметр представля- у ході виконання захищеної програми 2р ці ється у формі принаймні аргументу команди запу 37 77187 38 залежні функції запускаються командами запуску з ся в області пам'яті z пристрою 6, системі 3 обробперейменованими настановними параметрами; ки даних, щоб присвоїти його змінній Ζ. Ця коман- і впорядкування команд запуску вибране седа подана як ΙΝ(z). ред ансамблю впорядкувань, що дозволяють виУ даному прикладі, щоб повністю реалізувати конання захищеної програми 2р. винахід, як настановний параметр вибраний перПерша виконувана частина 2pes захищеної ший аргумент команд OUT запуску й аргумент копрограми 2р, виконувана в системі 3 обробки даманд TRIG і IN запуску. Вибрані в такий спосіб них, виконує команди запуску з перейменованими настановні параметри перейменовуються за менастановними параметрами, що передають у притодом перейменування настановних параметрів. стрій 6 перейменовані настановні параметри. Це Таким чином, настановні параметри команд запусвикликає у пристрої 6 відновлення за допомогою ку з CD1 до CDN, як-от: х, у, fd3, fdN-1, z перейменозасобів 20 відновлення настановних параметрів, а вуються так, щоб одержати відповідно R(x), R(y), потім виконання, за допомогою другої виконуваної R(fd3)..., R(fdN-1), R(z). частини 2peu, кожної з визначених вище залежних На Фіг.82 наведений приклад повної реалізації функцій fdn. винаходу. Відповідно до цього приклада в ході Іншими словами, принцип захисту за допомовиконання в системі 3 обробки даних першої викогою перейменування полягає в тому, щоб перейнуваної частини 2pes захищеної програми 2р, у менувати настановні параметри команд запуску, присутності пристрою 6, здійснюються: щоб одержати команди запуску з перейменовани- у моменти t1, t2 - виконання команд CDCR1, ми настановними параметрами, виконання яких у CDCR2 запуску з перейменованими настановними системі 3 обробки даних викликає у пристрої 6 параметрами, що передають у пристрій 6 перейвиконання залежних функцій, що запускалися б меновані настановні параметри R(x), R(y), а також командами запуску з неперейменованими настадані Χ, Υ, що викликає у пристрої 6 відновлення новними параметрами, проте без того, щоб ви(за допомогою засобів 20 відновлення) переймевчення захищеної програми 2р дозволило визнанованих настановних параметрів, щоб відновити чити ідентичність виконуваних залежних функцій. настановні параметри, як-от ідентичність областей На Фіг.80 наведений приклад виконання вразпам'яті х, у, а потім виконання, за допомогою друливої програми 2v. У цьому прикладі в ході викогої виконуваної частини 2peu, відповідних залежнання вразливої програми 2v у системі 3 обробки них функцій fd1, fd2, які забезпечують передачу даних у даний момент часу має місце розрахунок даних Χ, Υ від системи 3 обробки даних до областей пам'яті відповідно х, у, розташованих у засоΖ F(X, Y), що відповідає присвоєнню змінній Ζ бах 15 запам'ятовування пристрою 6 (ці команди результату виконання алгоритму, поданого функCDCR1, CDCR2 запуску з перейменованими настацією F і який використовує операнди X і Υ. новними параметрами представлені відповідно як На Фіг.81 і 82 наведений приклад реалізації OUT (R(x), X), OUT (R(y), Υ)); винаходу. На Фіг.81 наведений приклад часткової - у моменти з t3 до tN-1 - виконання команд реалізації винаходу. Відповідно до цього приклада CDCR3 до CDCRN-1 запуску з перейменованими в ході виконання в системі 3 обробки даних першої настановними параметрами, що передають у привиконуваної частини 2pes захищеної програми 2р стрій 6 перейменовані настановні параметри з у присутності пристрою 6 виконуються: R(fd3) до R(fdN-1), що викликає у пристрої 6 віднов- у моменти t1, t2 - виконання елементарних лення за допомогою засобів 20 відновлення накоманд CD1, CD2, що викликає у пристрої 6 викостановних параметрів, як-от: з fd3 до fdN-1, а потім нання, за допомогою другої виконуваної частини виконання, за допомогою другої виконуваної час2peu, відповідних залежних функцій fd1, fd2, що тини 2peu, залежних функцій з fd3 до fdN-1, причому забезпечують передачу даних Χ, Υ з системи 3 ці команди (з CDCR3 до CDCRN-1) запуску з перейобробки даних в області пам'яті відповідно x і у, менованими настановними параметрами подані розташовані в засобах 15 запам'ятовування привідповідно командами TRIG (R(fd3)) до TRIG строю 6, причому ці команди CD1, CD2 запуску по(R(fdN-1)); дані відповідно як OUT(x, X), OUT (у, Υ); - у момент tN - виконання команди CDCRN за- у моменти з t3 до tN-1 - виконання команд запуску з перейменованими настановними параметпуску з CD3 до CDN-1, що викликає у пристрої 6 рами, що передає у пристрій 6 перейменовані навиконання за допомогою другої виконуваної часстановні параметри R(z). Це викликає у пристрої 6 тини 2peu відповідних залежних функцій з fd3 до відновлення, за допомогою засобів 20 відновленfdN-1, причому ці команди запуску з CD3 до CDN-1 ня, настановних параметрів, а саме ідентичності подані відповідно як TRIG(fd3)-TRIG(fdN-1), причому області пам'яті z, а потім виконання, за допомогою послідовність залежних функцій з fd3 до fdN-1, видругої виконуваної частини 2peu, залежної функції конуваних у поєднанні, алгоритмічно еквівалентна fdN, що забезпечує передачу результату виконанфункції F (точніше кажучи, виконання цих команд ня алгоритму, що міститься в області пам'яті z запуску приводить до виконання у пристрої 6 запристрою 6, системі 3 обробки даних, щоб присволежних функцій з fd3 до fdN-1, які використовують їти його змінній Ζ. Ця команда CDCRN запуску з уміст областей пам'яті х, у і повертають результат перейменованими настановними параметрами в область пам'яті z пристрою 6); подана як IN(R(z)). - а в момент tN здійснюється виконання команУ наведеному прикладі команди запуску з педи CDN запуску, що викликає у пристрої 6 викорейменованими настановними параметрами з 1 до нання, за допомогою другої виконуваної частини N виконуються послідовно. Слід зазначити, що 2peu, залежної функції fdN, яка забезпечує переможна зробити два такі вдосконалення. дачу результату виконання алгоритму, що містить 39 77187 40 - Перше вдосконалення стосується випадку, лення настановних параметрів, ані виконання відколи декілька алгоритмів винесені у пристрій 6 і повідної залежної функції через відсутність прищонайменше результат виконання одного алгористрою 6. Значення, що його необхідно присвоїти тму використовується іншим алгоритмом (у цьому змінній Z, отже, не може бути визначене коректно. випадку деякі команди запуску з перейменованими Таким чином, вважається, що за відсутності настановними параметрами, що служать для пепристрою 6 щонайменше один запит одного фрагредачі, можуть бути виключені). мента першої виконуваної частини 2pes захищеної - Друге вдосконалення має на меті належне програми 2р на запуск відновлення настановних впорядкування команд запуску з перейменованипараметрів і виконання у пристрої залежної функми настановними параметрами серед ансамблю ції у пристрої 6 не може бути коректно виконаний, впорядкувань, що дозволяють виконання захищетак що принаймні ця частина не виконується кореної програми 2р. ктно й, отже, захищена програма 2р не є повнофуУ цьому відношенні бажано вибрати таке впонкціональною. рядкування команд запуску з перейменованими Завдяки цьому принципу захисту за допомонастановними параметрами, що розділяє в часі гою перейменування вивчення в захищеній провиконання залежних функцій, уставляючи між ниграмі 2р команд запуску з перейменованими нами ділянки коду, виконуваного в системі 3 обробки становними параметрами не дозволяє визначити даних, і який при цьому містить (або не містить) ідентичність залежних функцій, які мають виконукоманди запуску з перейменованими настановниватися у пристрої 6. Слід зазначити, що переймеми параметрами, що служать для визначення іннування настановних параметрів здійснюється в ших даних. Фіг.83 і 84 ілюструють принцип такої ході перетворення вразливої програми 2v на зареалізації. хищену програму 2р. На Фіг.83 наведений приклад виконання вразВідповідно до варіанта принципу захисту за ливої програми 2v. У цьому прикладі в системі 3 допомогою перейменування має бути визначено, обробки даних у ході виконання вразливої програщонайменше для однієї залежної функції, сімейстми 2v відбувається виконання двох алгоритмів, що во алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску з різноманітприводять до визначення Ζ і Z' таких, що Ζ F(X, ними перейменованими настановними параметΥ) і Ζ' F(X', Y'). рами. В цьому варіанті щонайменше один алгоНа Фіг.84 наведений приклад реалізації спосоритм, що використовує залежні функції, бу згідно з винаходом, у якому обидва вибраних на розкладається на залежні функції так, що принайФіг.83 алгоритми винесені у пристрій 6. Відповідно мні одна з них заміняється залежною функцією до цього приклада в ході виконання в системі 3 того ж сімейства, замість того, щоб зберігати декіобробки даних першої виконуваної частини 2pes лька входжень тієї самої залежної функції. З цією захищеної програми 2р, у присутності пристрою 6, метою команди запуску з перейменованими намає місце, як пояснюється вище, виконання костановними параметрами модифікуються, щоб манд (з CDCR1 до CDCRN) запуску з перейменоваурахувати заміну залежних функцій на залежні ними настановними параметрами, що відповідає функції того ж сімейства. визначенню Z, і виконання команд (з CDCR1' до Іншими словами, дві залежні функції з одного CDCRM') запуску з перейменованими настановнисімейства мають різні настановні параметри й, ми параметрами, що відповідає визначенню Z'. Як отже, команди запуску з різними перейменованипоказано, команди запуску з CDCR1 до CDCRN не ми настановними параметрами. Тому при вивченні виконуються послідовно, оскільки з ними чергузахищеної програми 2р не є можливим виявити, чи ються команди запуску з CDCR1' до CDCRM', а є викликані залежні функції алгоритмічно еквіватакож інші фрагменти коду. В цьому прикладі, талентними. ким чином, реалізоване таке впорядкування: Відповідно до першої кращої реалізації варіанCDCR1, уставлений фрагмент коду, CDCR1', та принципу захисту за допомогою перейменуванCDCR2, уставлений фрагмент коду, CDCR2', ня визначається, щонайменше для однієї залежної CDCR3', уставлений фрагмент коду, CDCR4', функції, алгоритмічно еквівалентне сімейство заCDCR3, CDCR4,..., CDCRN, CDCRM'. лежних функцій, за допомогою зчеплення поля Слід зазначити, що в ході виконання фрагменшумів з інформацією, що визначає ту функціоната першої виконуваної частини 2pes захищеної льну частину залежної функції, що виконується у програми 2р команди запуску з перейменованими пристрої 6. настановними параметрами, що виконуються в Відповідно до другої кращої реалізації варіансистемі 3 обробки даних, викликають у пристрої 6 та принципу захисту за допомогою перейменуванвідновлення ідентичності відповідних залежних ня щонайменше для однієї залежної функції вифункцій, а потім їхнє виконання. Таким чином, у значається алгоритмічно еквівалентне сімейство присутності пристрою 6 цей фрагмент виконується залежних функцій з використанням полів ідентифікоректно й, отже, захищена програма 2р є повнокації. функціональною. Відповідно до кращого варіанта реалізації На Фіг.85 наведений приклад спроби виконанпринципу захисту за допомогою перейменування ня захищеної програми 2р за відсутності пристрою як методу перейменування настановних парамет6. У цьому прикладі в ході виконання в системі 3 рів задається метод кодування, що дозволяє кодуобробки даних першої виконуваної частини 2pes вати настановні параметри для їхнього перетвозахищеної програми 2р виконання команди запусрення на перейменовані настановні параметри. ку з перейменованими настановними параметраСлід нагадати, що перейменування настановних ми жодного моменту не може викликати ні віднов 41 77187 42 параметрів здійснюється у фазі Ρ захисту. Для У цьому прикладі в ході виконання в системі 3 цього кращого варіанта засоби 20 відновлення обробки даних першої виконуваної частини 2pes являють собою засоби, що застосовують метод захищеної програми 2р у присутності пристрою 6 декодування, що дозволяє декодувати переймемають місце: новані настановні параметри і відновити таким - у момент t1 - виконання команди СВС1 умовчином ідентичність залежних функцій, що їх слід ного переходу, що викликає у пристрої 6 виконанвиконати у пристрої 6. Ці засоби відновлення заня, за допомогою другої виконуваної частини 2peu, стосовуються у пристрої 6 і можуть бути як провинесеного умовного переходу bc, алгоритмічно грамними, так і апаратними. Засоби 20 відновленеквівалентного умовному переходові ВС, причому ня запитуються у фазі U використання щоразу, ця команда СВС1 умовного переходу подана як коли команда запуску з перейменованими настаTRIG(bc); новними параметрами виконується в системі З - і у момент t2 - передача пристроєм 6 системі обробки даних з метою викликати у пристрої 6 3 обробки даних інформації, що дозволяє першій виконання залежної функції. виконуваній частини 2pes продовжити своє викоВідповідно до іншої кращої характеристики нання у вибраному місці, а саме В1, В2 або В3. винаходу спосіб захисту спрямований на реалізаСлід зазначити, що в ході виконання фрагменцію принципу захисту, названого "умовним перета першої виконуваної частини 2pes захищеної ходом", опис якого проілюстровано Фіг.90-92. програми 2р команди умовних переходів, які викоДля реалізації принципу захисту за допомогою нуються в системі 3 обробки даних, запускають умовного переходу у вихідному коді 2vs уразливої виконання відповідних винесених умовних перехопрограми вибирається щонайменше один умовний дів у пристрої 6. Таким чином, вважається, що в перехід ВС. Вибирається також щонайменше один присутності пристрою 6 ця частина виконується фрагмент вихідного коду 2vs уразливої програми, коректно й, отже, захищена програма 2р є повнояка містить щонайменше один вибраний умовний функціональною. перехід ВС. На Фіг.92 наведений приклад спроби виконанУ даному варіанті щонайменше один вибраний ня захищеної програми 2р за відсутності пристрою фрагмент коду 2vs уразливої програми модифіку6. У цьому прикладі, в ході виконання в системі З ється, щоб одержати вихідний код 2ps захищеної обробки даних першої виконуваної частини 2pes програми. Ця модифікація така, що в ході викозахищеної програми 2р: нання захищеної програми 2р: - у момент t1 виконання команди СВС1 умовно- щонайменше один фрагмент першої виконуго переходу не може викликати виконання винесеваної частини 2pes, яка виконується в системі 3 ного умовного переходу bc, з огляду на відсутність обробки даних, ураховує те, що функціональна пристрою 6; можливість щонайменше одного вибраного умов- і у момент t2 спроба передачі інформації, що ного переходу ВС виконується у пристрої 6; дозволяє першій виконуваній частині 2pes продо- друга виконувана частина 2peu, яка виконувжити виконання у вибраному місці не може бути ється у пристрої 6, виконує щонайменше функціоуспішною у зв'язку з відсутністю пристрою 6. нальну можливість щонайменше одного вибраного Таким чином, за відсутності пристрою 6 щоумовного переходу ВС і надає системі 3 обробки найменше один запит одного фрагмента першої даних інформацію, що дозволяє першій виконувавиконуваної частини 2pes на запуск виконання ній частині 2pes продовжити своє виконання у вивинесеного умовного переходу у пристрої 6 не браному місці. може бути коректно виконаний. Тому щонайменше Перша виконувана частина 2pes захищеної ця частина не виконується коректно й, отже, захипрограми 2р, виконувана в системі 3 обробки дащена програма 2р не є повнофункціональною. них, виконує команди умовних переходів, що виУ попередньому описі, проілюстрованому на кликає у пристрої 6 виконання, за допомогою друФіг.90-92, даний винахід спрямований на винесенгої виконуваної частини 2peu, винесених умовних ня у пристрій 6 одного умовного переходу. Зрозупереходів bc, функціональні можливості яких еквіміло, кращий варіант здійснення винаходу може валентні функціональним можливостям вибраних полягати в передачі у пристрій 6 серії умовних умовних переходів ВС. Для реалізації принципу переходів, глобальні функціональні можливості захисту за допомогою умовного переходу пристрій яких еквівалентні ансамблю функціональних мож6 містить засоби 15 запам'ятовування і засоби 16 ливостей винесених умовних переходів. Виконанобробки. ня глобальних функціональних можливостей цієї На Фіг.90 наведений приклад виконання вразсерії винесених умовних переходів приводить до ливої програми 2v. У цьому прикладі в ході викотого, що системі 3 обробки даних дається інфорнання вразливої програми 2v у системі 3 обробки мація, що дозволяє першій виконуваній частині даних у даний момент часу має місце умовний 2pes захищеної програми 2р продовжити своє виперехід ВС, що вказує вразливій програмі 2v місконання у вибраному місці. це, де варто продовжити її виконання, а саме одне У попередньому описі, проілюстрованому з трьох можливих місць В1, В2 або В3. Слід розуміФіг.40-92, чотири різні принципи захисту програми ти, що умовний перехід ВС приймає рішення пробули пояснені в загальному вигляді незалежно довжити виконання програми в місці В1, В2 або В3. одне від іншого. Спосіб захисту згідно з винаходом На Фіг.91 наведений приклад реалізації винаможе бути реалізований із застосуванням принциходу, в якому умовний перехід, відібраний для пу захисту за допомогою детектування й примусу, переносу в пристрій 6, відповідає умовному передо якого можна додати один або декілька інших ходові ВС. принципів захисту. В разі, коли принцип захисту за 43 77187 44 допомогою детектування й примусу доповнюється повнофункціональною; реалізацією щонайменше одного іншого принципу - і, можливо, фазу R перезавантаження, в ході захисту, принцип захисту за допомогою детектуякої вирішується щонайменше одне додаткове вання й примусу бажано доповнити принципом використання функціональної можливості, захизахисту за допомогою змінної і/або принципом щеної шляхом реалізації другого кращого варіанта захисту за допомогою перейменування, і/або реалізації принципу захисту за допомогою детекпринципом захисту за допомогою умовного перетування й примусу, що використовує як характериходу. стику змінну для кількісного контролю. Якщо таким чином застосовується принцип заФаза Ρ захисту може бути розкладена на дві хисту за допомогою перейменування, то він може підфази Ρ1 і Р2 захисту. Перша, названа вхідною, бути доповнений, у свою чергу, принципом захисту підфаза Ρ1 захисту реалізується незалежно від за допомогою умовного переходу. підлягаючої захисту вразливої програми 2ν. Друга, Відповідно до кращого варіанта реалізації названа вихідною, підфаза Р2 захисту залежить принцип захисту за допомогою детектування й від підлягаючої захисту вразливої програми 2ν. примусу доповнюється принципом захисту за доСлід зазначити, що вхідна і вихідна підфази Р1 і Р2 помогою змінної і принципом захисту за допомозахисту можуть бути реалізовані двома різноманігою перейменування, доповненим принципом затними особами або групами. Наприклад, вхідна хисту за допомогою умовного переходу. підфаза Р1 захисту може бути реалізована співроУ випадку, коли на додаток до принципу захибітником або організацією, що здійснюють розробсту за допомогою детектування й примусу застоку систем захисту програм, тоді як вихідна підфаза сований якийсь інший принцип захисту, щоб враР2 захисту може бути реалізована співробітником хувати таку комбіновану реалізацію винаходу, або організацією, що здійснюють розробку провищенаведений опис має містити такі модифікації: грам, що їх потрібно захистити. Зрозуміло, ясно, - поняття вразливої програми має розумітися в що вхідна і вихідна підфази Р1 і Р2 захисту можуть сенсі вразливості програми відносно до описувабути реалізовані й одним співробітником або одніного принципу захисту. Так, у випадку, коли принєю організацією. цип захисту вже було застосовано до вразливої Вхідна підфаза Р1 захисту задіює декілька програми, вираз "вразлива програма" має інтерпстадій S11, ··· S1i, для кожної з яких необхідно викоретуватися як вираз "програма, захищена за донати декілька задач або завдань. помогою одного або декількох уже застосованих Перша стадія цієї вхідної підфази Р1 захисту принципів захисту"; називається "стадією S11 визначень". У ході цієї - поняття захищеної програми має розумітися стадії S11 визначень: в сенсі захищеності програми відносно до опису- вибираються: ваного принципу захисту. Так, у випадку, коли -тип пристрою 6 (наприклад, як пристрій 6 мопринцип захисту вже було застосовано, вираз "зажна вибрати пристрій 8 читання карт із мікрочипом хищена програма" має інтерпретуватися читачемі карту з мікрочипом, зв'язану з пристроєм 8 чияк вираз "нова версія захищеної програми"; тання), - один або декілька виборів, зроблений (зроб- і засоби 12, 13 передачі, призначені для залені) для реалізації описуваного принципу захисту, стосування відповідно в системі 3 обробки даних і має (мають) враховувати вибір (вибори), зроблеу пристрої 6 у фазі U використання й що здатні ний (зроблені) для реалізації вже застосованого забезпечувати передачу даних між системою 3 (застосованих) одного або декількох принципів обробки даних і пристроєм 6; захисту. - визначаються: Подальший опис дозволяє краще зрозуміти - щонайменше одна характеристика виконання реалізацію способу захисту згідно з винаходом. У програми, яка може бути проконтрольована, щоцьому способі згідно з винаходом здійснюють, як найменше частково, у пристрої 6, це уточнюється на Фіг.100: - щонайменше один критерій, що його слід до- спочатку фазу Ρ захисту, в ході якої вразлива тримуватися щонайменше для однієї характериспрограма 2ν перетворюється на захищену програтики виконання програми, му 2р; - засоби 17 детектування, що їх необхідно за- потім фазу U використання, в ході якої захистосовувати у пристрої 6 і які дозволяють виявити, щена програма 2р використовується, причому у що принаймні одна характеристика виконання профазі U використання: грами не відповідає щонайменше одному відпові- у присутності пристрою 6 кожного разу, коли дному критерію, цього вимагає фрагмент першої виконуваної час- і засоби 18 примусу, що їх необхідно застотини 2pes, виконуваної в системі 3 обробки даних, совувати у пристрої 6 і які дозволяють проінфорналежна функціональна можливість виконується у мувати систему 3 обробки даних і/або модифікупристрої 6 таким чином, що ця частина виконуєтьвати хід виконання програми, якщо хоча б одного ся коректно й, отже, захищена програма 2р є повкритерію не дотримано; нофункціональною, - причому в разі, коли спосіб захисту згідно з - за відсутності пристрою 6, незважаючи на винаходом задіює принцип захисту за допомогою запит фрагмента першої виконуваної частини 2pes детектування й примусу, що використовує як харана виконання функціональної можливості у приктеристику змінну для кількісного контролю викострої 6, цей запит не може бути коректно задовонання програми, мають визначатися також: лений, так що принаймні ця частина не виконуєть- як характеристика виконання програми, яка ся коректно й, отже, захищена програма 2р не є може бути проконтрольована, - змінна для кількіс 45 77187 46 ного контролю використання однієї функціональної де як ознака виконання, що її слід дотримуватися, можливості програми, використовується контроль зчеплення виконання, - як критерій, що його необхідно дотримуватимають передбачатися також: ся, - щонайменше одне порогове значення, зв'яза- як набір інструкцій - набір інструкцій, з якого не з кожною змінною для кількісного контролю, щонайменше деякі інструкції працюють на регіст- і засоби поновлення, що дозволяють поновирах і використовують щонайменше один операнд ти щонайменше одну змінну для кількісного контдля видачі результату щонайменше для однієї ролю; частини інструкцій, що працюють на регістрах: - причому в разі, коли спосіб захисту згідно з - частина PF, що задає функціональну можливинаходом задіює перший кращий варіант реалівість інструкції, зації принципу захисту за допомогою детектування - і частина, що задає бажане зчеплення для й примусу, що використовує як характеристику виконання інструкцій і містить бітові поля, що відзмінну для кількісного контролю виконання проповідають: грами, мають передбачатися також: - полю СП ідентифікації інструкції, - щонайменше для однієї змінної для кількісно- і для кожного операнду інструкції: го контролю - декілька відповідних порогових зна- полю CDk прапора, чень, - і полю СІРk ідентифікації, передбаченої для - і різноманітні засоби примусу, що відповідаоперанда, ють кожному з цих порогових значень; - для кожного регістра, що належить до засо- причому в разі, коли спосіб захисту згідно з бів експлуатації і використовується набором інвинаходом задіює другий кращий варіант реалізаструкцій, - поле CIGv генерованої ідентифікації, в ції принципу захисту за допомогою детектування й якому автоматично запам'ятовується ідентифікапримусу, що використовує як характеристику змінція останньої інструкції, що повернула свій резульну для кількісного контролю виконання програми, тат у цей регістр, передбачаються також засоби перезавантаження, - як засоби 17 детектування - засоби, що дощо дозволяють щонайменше одне додаткове визволяють у ході виконання інструкції для кожного користання щонайменше однієї функціональної операнда, якщо цього вимагає поле CDk прапора, можливості програми, контрольованої за допомоконтролювати рівність між полем CIGv генерованої гою змінної для кількісного контролю; ідентифікації, що відповідає регістру, використову- причому в разі, коли спосіб захисту згідно з ваному цим операндом, і полем СІРk передбаченої винаходом задіює принцип захисту за допомогою ідентифікації початкової адреси цього операнда, детектування й примусу, що використовує як хара- і як засоби 18 примусу - засоби, що дозволяктеристику профіль використання програми, мають ють модифікувати результат інструкції, якщо припередбачатися також: наймні одна з контрольованих рівностей хибна; - як характеристика виконання програми, що - причому в разі, коли спосіб захисту згідно з може бути проконтрольована, - профіль викорисвинаходом задіює принцип захисту за допомогою тання програми, перейменування, мають передбачатися також: - і як критерій, що його слід дотримуватися, - як команда запуску - елементарна команда щонайменше одна ознака виконання програми; або команда інструкції, - причому в разі, коли спосіб захисту згідно з - як залежна функція - елементарна функція винаходом задіює принцип захисту за допомогою або інструкція, детектування й примусу, де як ознака виконання, - як настановний параметр, - щонайменше що її слід дотримуватися, використовується контодин аргумент для команди запуску, що відповіроль зчеплення виконання, мають передбачатися дає, принаймні частково, інформації, переданій також: системою 3 обробки даних на пристрій 6, щоб ви- набір інструкцій, інструкції зі складу якого кликати запуск відповідної залежної функції, можуть бути виконані у пристрої 6, - метод перейменування настановних параме- набір команд інструкцій для зазначеного натрів, що дозволяє перейменувати настановні пабору інструкцій, причому ці команди інструкцій раметри, щоб одержати команди запуску з перейможуть бути виконані в системі 3 обробки даних, менованими параметрами, викликаючи у пристрої 6 виконання інструкцій, - і засоби 20 відновлення, призначені для за- як профіль використання - зчеплення інструстосування у пристрої 6 у фазі U використання і кцій, що дозволяють знову знайти залежну функцію, що - як ознака виконання - бажане зчеплення для її слід виконати, виходячи з перейменованого навиконання інструкцій, становного параметра, - як засоби 17 детектування - засоби, що до- причому в разі, коли спосіб захисту згідно з зволяють виявити, що зчеплення інструкцій не винаходом задіює варіант принципу захисту за відповідає бажаному, допомогою перейменування, визначається також, - і як засоби 18 примусу - засоби, що дозволящонайменше для однієї залежної функції, сімейстють інформувати систему З обробки даних і/або во алгоритмічно еквівалентних залежних функцій, модифікувати функціонування фрагмента захищещо викликаються командами запуску, перейменоної програми 2р, якщо зчеплення інструкцій не вані настановні параметри яких є різними, відповідає бажаному; - а у випадку, коли спосіб захисту згідно з ви- а у випадку, коли спосіб захисту згідно з винаходом, задіює ту або іншу кращу реалізацію ванаходом задіює кращий варіант реалізації принциріанта принципу захисту за допомогою переймепу захисту за допомогою детектування й примусу, нування, визначається також, щонайменше для 47 77187 48 однієї залежної функції, сімейство алгоритмічно ного пристрою 66. Передача засобів експлуатації в еквівалентних залежних функцій: незадіяний пристрій 60 може реалізуватися за до- за допомогою зчеплення поля шумів з інфопомогою адаптованого пристрою передперсоналірмацією, що визначає ту функціональну частину зації, що його описано далі і проілюстровано залежної функції, що виконується у пристрої 6, Фіг.120. У випадку передперсоналізованого при- або за допомогою використання поля СІІ ідестрою 66, що складається з карти 7 з мікрочипом і нтифікації інструкції і поля СІРk передбаченої іденпристрою 8 її читання, передперсоналізація стосутифікації операндів; ється тільки карти 7 з мікрочипом. - причому в разі, коли спосіб захисту згідно з У ході вхідної підфази Р1 захисту, після стадії винаходом задіює кращий варіант принципу захисS11 визначень і, можливо, після стадії S12 конструту за допомогою перейменування, мають передювання, може здійснюватися також стадія, назвабачатися також: на "стадією S14 виготовлення засобів". У ході цієї - як метод перейменування настановних пастадії S14 виготовлення засобів виробляються зараметрів - метод кодування для кодування настасоби, що дозволяють допомогти створенню захиновних параметрів, щених програм або автоматизувати захист про- і як засоби 20 відновлення - засоби, що заграм. Такі засоби дозволяють: стосовують метод декодування для розкодування - допомогти вибрати або автоматично вибрати перейменованих настановних параметрів і відновв уразливій програмі 2v, що її слід захистити: лення ідентичності залежних функцій, що їх слід - одну або декілька характеристик виконання, виконати у пристрої 6. що їх необхідно проконтролювати, і, можливо, У ході вхідної підфази захисту за стадією S11 один або декілька алгоритмів, які можуть розклавизначення випливає стадія, названа "стадія S12 датися на інструкції, що їх можна винести у приконструювання". В ході такої стадії S12 конструюстрій 6, ються засоби 12, 13 передачі й, можливо, засоби - фрагменти, які можуть бути змінені, експлуатації, що відповідають визначенням стадії - якщо також застосовується принцип захисту S11 визначення. за допомогою змінної, - одну або декілька змінних, В ході цієї стадії S12 конструювання приступаякі можуть бути винесені у пристрій 6, ють, отже: - якщо також застосовується принцип захисту - до конструювання засобів 12, 13 передачі, за допомогою перейменування, - один або декільщо дозволяють, у ході фази U використання, здійка алгоритмів, які можуть розкладатися на залежні снювати передачу даних між системою 3 обробки функції, що їх можна винести у пристрій 6 і для даних і пристроєм 6; яких настановні параметри команд запуску можуть - до побудови: бути перейменовані, - засобів експлуатації, що дозволяють при- і, якщо також застосовується принцип захисстрою 6 у фазі U використання задіяти засоби 17 ту за допомогою умовного переходу, - один або детектування й засоби 18 примусу, декілька умовних переходів, функціональна мож- і, можливо, засобів експлуатації, що дозволивість яких може бути винесена в пристрій 6; ляють пристрою 6 у фазі U використання також - і, можливо, допомогти створити захищені задіяти засоби відновлення, програми або автоматизувати захист програм. - а також, можливо, засобів експлуатації, що Ці різноманітні засоби можуть реалізуватися дозволяють пристрою 6 у фазі перезавантаження незалежно або в поєднанні, причому кожен засіб задіяти також засоби перезавантаження, може приймати різноманітні форми, наприклад - а також, можливо, засобів експлуатації, що являти собою перепроцесор, асемблер, компілядозволяють пристрою 6 у фазі U використання тор тощо. виконувати інструкції з набору інструкцій; За вхідною підфазою Р1 захисту випливає ви- і (якщо також застосовується принцип захисхідна підфаза Р2 захисту, що залежить від підляту за допомогою перейменування) до побудови гаючої захисту вразливої програми 2v. Ця вихідна засобів експлуатації, що дозволяють пристрою 6 у підфаза Р2 захисту також передбачає декілька фазі U використання задіяти також засоби відновстадій. Перша стадія, що відповідає реалізації лення. принципу захисту за допомогою детектування й Конструювання засобів експлуатації здійснюпримусу, називається "стадією S21 створення". В ють звичайним чином, за допомогою пристрою ході цієї стадії S21 створення використовується розробки програм з урахуванням визначень, увевибір, зроблений на стадії S11 визначень. За доподених на стадії S11 визначень. Подібний пристрій могою цього вибору і, можливо, засобів, сконструописано далі та проілюстровано Фіг.110. йованих на стадії S14 виготовлення засобів, захиУ ході вхідної підфази Р1 захисту за стадією щена програма 2р створюється: S12 конструювання може йти стадія, названа "ста- за допомогою вибору серед характеристик дією S13 передперсоналізації". В ході цієї стадії S13 виконання, які можуть бути проконтрольовані, щопередперсоналізації щонайменше засоби 13 перенайменше однієї характеристики виконання контдачі й засоби експлуатації завантажуються щорольованої програми; найменше в один незадіяний пристрій 60, щоб - за допомогою вибору щонайменше одного одержати щонайменше один передперсоналізовакритерію, який має виконуватися, щонайменше ний пристрій 66. Слід відзначити, що частина задля однієї вибраної характеристики виконання собів експлуатації, бувши перенесена в передперпрограми; соналізований пристрій 66, більш недосяжна - за допомогою вибору щонайменше одного безпосередньо ззовні цього передперсоналізоваалгоритму, який у ході виконання вразливої про 49 77187 50 грами 2v використовує щонайменше один операнд - щонайменше однієї функціональної можлиі дозволяє одержати щонайменше один результат вості захищеної програми 2р, використання якої і для якого слід контролювати щонайменше одну можна проконтролювати з використанням змінної характеристику виконання вибраної програми, для кількісного контролю, - за допомогою вибору щонайменше одного - щонайменше однієї змінної для кількісного фрагмента коду 2vs уразливої програми, що місконтролю, яка служить як кількісна характеристика тить щонайменше один вибраний алгоритм, використання згаданої функціональної можливос- за допомогою створення вихідного коду 2ps ті, захищеної програми на основі коду вразливої про- щонайменше одного порогового значення, грами 2v модифікацією щонайменше одного вибзв'язаного з вибраною змінною для кількісного раного фрагмента коду 2vs уразливої програми, контролю і відповідного межі використання згадащоб одержати щонайменше один модифікований ної функціональної можливості, фрагмент коду 2ps захищеної програми, причому - і щонайменше одного методу поновлення ця модифікація така, що: значення змінної для кількісного контролю відпові- в ході виконання захищеної програми 2р педно до використання згаданої функціональної морша виконувана частина 2pes виконується в сисжливості; темі 3 обробки даних, а друга виконувана частина - і за допомогою модифікації щонайменше од2peu виконується у пристрої 6, отриманому з неного вибраного фрагмента коду 2ps захищеної задіяного пристрою 60 після завантаження інфорпрограми, причому ця модифікація така, що в ході мації, виконання захищеної програми 2р змінна для кіль- друга виконувана частина 2peu виконує щокісного контролю поновлюється за допомогою друнайменше функціональну можливість щонайменгої виконуваної частини 2peu, залежно від викорише одного вибраного алгоритму, стання згаданої функціональної можливості, і - і в ході виконання захищеної програми 2р враховується щонайменше одне перевищення щонайменше одна вибрана характеристика викопорогового значення. нання контролюється за допомогою другої виконуДля реалізації першого кращого варіанта ваної частини 2peu і недотримання критерію припринципу захисту за допомогою детектування й водить до модифікації виконання захищеної примусу, що використовує як характеристику змінпрограми 2р; ну для кількісного контролю, захищена програма - і за допомогою створення: 2р модифікується: - першої частини 2pos об'єктного коду захище- за допомогою вибору у вихідному коді 2ps ної програми 2р, причому перша частина 2pos захищеної програми щонайменше однієї змінної об'єктного коду така, що в ході виконання захищедля кількісного контролю, з якою мають зв'язуваної програми 2р реалізується перша виконувана тися декілька порогових значень, що відповідають частина 2pes, яка виконується в системі 3 обробки різноманітним межам використання функціональданих, і щонайменше частина якої враховує, що ної можливості; контролюється щонайменше одна характеристика - за допомогою вибору щонайменше двох повиконання вибраної програми, рогових значень, зв'язаних з вибраною змінною - і другої частини 2роu об'єктного коду захидля кількісного контролю; щеної програми 2р, що містить засоби експлуата- і за допомогою модифікації щонайменше одції, що дозволяють застосовувати також засоби 17 ного вибраного фрагмента коду 2ps захищеної детектування і засоби 18 примусу, причому друга програми, причому ця модифікація така, що в ході частина 2pou об'єктного коду така, що після заванвиконання захищеної програми 2р перевищення таження в незадіяний пристрій 60, у ході виконанрізноманітних порогових значень враховуються за ня захищеної програми 2р реалізується друга видопомогою другої виконуваної частини 2peu різконувана частина 2peu, за допомогою якої ним способом. контролюється щонайменше одна характеристика Для реалізації другого кращого варіанта принвиконання програми, і за допомогою якої недотриципу захисту за допомогою детектування й примумання критерію приводить до модифікації викосу, що використовує як характеристику змінну для нання захищеної програми 2р. кількісного контролю, захищена програма 2р моЗрозуміло, принцип захисту за допомогою дедифікується: тектування й примусу згідно з винаходом може - за допомогою вибору у вихідному коді 2ps бути застосований безпосередньо в ході розробки захищеної програми щонайменше однієї змінної нової програми без необхідності попередньої реадля кількісного контролю, що дозволяє обмежити лізації вразливої програми 2v. У цьому випадку використання функціональної можливості, для якої безпосередньо одержують захищену програму 2р. має існувати можливість дозволити щонайменше Для реалізації принципу захисту за допомогою одне додаткове використання; детектування й примусу, що використовує як хара- і за допомогою модифікації щонайменше одктеристику змінну для кількісного контролю виконого вибраного фрагмента, причому ця модифіканання програми, захищена програма 2р модифікуція така, що у фазі, названій фазою перезавантається: ження, щонайменше одне додаткове використання - за допомогою вибору як характеристики вищонайменше однієї функціональної можливості, конання контрольованої програми щонайменше що відповідає одній вибраній змінній для кількіснооднієї змінної для кількісного контролю викорисго контролю, може бути дозволене. тання однієї функціональної можливості програми; Для реалізації принципу захисту за допомогою - за допомогою вибору: детектування й примусу, що використовує як хара 51 77187 52 ктеристику профіль використання програми, захизмінної знаходиться у пристрої 6, щена програма 2р модифікується: - і за допомогою створення: - за допомогою вибору як характеристики ви- першої частини 2pos об'єктного коду захищеконання контрольованої програми щонайменше ної програми 2р, причому ця перша частина 2pos профілю використання програми; об'єктного коду така, що в ході виконання захище- за допомогою вибору щонайменше однієї ної програми 2р щонайменше один фрагмент ознаки виконання програми, що її має дотримувапершої виконуваної частини 2pes враховує, що тися щонайменше один профіль використання; принаймні одна змінна або щонайменше одна ко- і за допомогою модифікації щонайменше одпія змінної знаходиться у пристрої 6, ного вибраного фрагмента коду 2ps захищеної - і другої частини 2pou об'єктного коду захипрограми, причому ця модифікація така, що в ході щеної програми 2р, причому ця друга частина виконання захищеної програми 2р друга виконува2pou об'єктного коду така, що після завантаження на частина 2peu дотримується всіх вибраних ознак в пристрій 6 і в ході виконання захищеної програми виконання. 2р реалізується друга виконувана частина 2peu, за Для реалізації принципу захисту за допомогою допомогою якої щонайменше одна вибрана змінна детектування й примусу, де як ознака виконання, або щонайменше одна копія вибраної змінної тащо її слід дотримуватися, використовується конткож знаходиться у пристрої 6. роль зчеплення виконання, захищена програма 2р Коли застосовується принцип захисту за домодифікується: помогою перейменування, захищена програма 2р - за допомогою модифікації щонайменше одмодифікується: ного вибраного фрагмента коду 2ps захищеної - за допомогою вибору у вихідному коді 2ps програми, причому ця модифікація така, що: захищеної програми команд запуску; - щонайменше один вибраний алгоритм розк- за допомогою модифікації щонайменше одладається таким чином, що в ході виконання заного вибраного фрагмента коду 2ps захищеної хищеної програми 2р цей алгоритм виконується за програми за допомогою перейменування настанодопомогою другої виконуваної частини 2peu, із вних параметрів вибраних команд запуску, щоб застосуванням інструкцій, приховати ідентичність відповідних залежних фун- щонайменше для одного вибраного алгориткцій; му команди інструкцій інтегруються у вихідний код - і за допомогою створення: 2ps захищеної програми таким чином, що в ході - першої частини 2pos об'єктного коду захищевиконання захищеної програми 2р кожна команда ної програми 2р, причому ця перша частина 2pos інструкції виконується за допомогою першої викооб'єктного коду така, що в ході виконання захищенуваної частини 2pes і викликає у пристрої 6 виконої програми 2р виконуються команди запуску з нання інструкції за допомогою другої виконуваної перейменованими настановними параметрами, частини 2peu, - і другої частини 2pou об'єктного коду захи- впорядкування команд інструкцій вибираєтьщеної програми 2р, що містить засоби експлуатася серед ансамблю впорядкувань, що дозволяють ції, що використовують також засоби 20 відноввиконання захищеної програми 2р, лення, причому ця друга частина 2pou об'єктного - і визначене зчеплення, що його мають докоду така, що після завантаження у пристрій 6, у тримуватися щонайменше деякі з інструкцій у ході ході виконання захищеної програми 2р ідентичїхнього виконання у пристрої 6. ність залежних функцій, виконання яких запускаУ ході вихідної підфази Р2 захисту, в разі, коли ється першою виконуваною частиною 2pes, віднозастосований щонайменше один інший принцип влюється за допомогою другоївиконуваної захисту, на додаток до принципу захисту за допочастини 2peu, а залежні функції виконуються за могою детектування й примусу, реалізується "стадопомогою другої виконуваної частини 2peu. дія S22 модифікації". В ході цієї стадії S22 модифіДля реалізації варіанта принципу захисту пекації використовуються визначення, введені на рейменуванням захищена програма 2р модифікустадії S11 визначень. З використанням цих визнається: чень і, можливо, засобів, сконструйованих на ста- за допомогою вибору у вихідному коді 2ps дії S14 виготовлення засобів, захищена програма захищеної програми щонайменше однієї команди 2р модифікується таким чином, щоб дозволити запуску з перейменованими настановними парареалізувати принципи захисту відповідно до однометрами; го з компонувань, визначених вище. - і за допомогою модифікації щонайменше одКоли застосовується принцип захисту за доного вибраного фрагмента коду 2ps захищеної помогою змінної, то захищена програма 2р модипрограми за допомогою заміни щонайменше пефікується: рейменованого настановного параметра команди - за допомогою вибору щонайменше однієї запуску з вибраним настановним параметром на змінної, використовуваної щонайменше в одному інший перейменований настановний параметр, що вибраному алгоритмі, яка в ході виконання захивикликає запуск залежної функції, з того ж сімейсщеної програми 2р частково визначає стан захитва. щеної програми 2р, Коли застосовується принцип захисту за до- за допомогою модифікації щонайменше одпомогою умовного переходу, захищена програма ного вибраного фрагмента коду 2ps захищеної 2р модифікується: програми, причому ця модифікація така, що в ході - за допомогою вибору у вихідному коді 2ps виконання захищеної програми 2р щонайменше захищеної програми щонайменше одного умовноодна вибрана змінна або одна копія вибраної го переходу, виконуваного щонайменше в одному 53 77187 54 вибраному алгоритмі; незадіяний пристрій 60, щоб одержати щонайме- за допомогою модифікації щонайменше однше один пристрій 6. Альтернативно, частина друного вибраного фрагмента коду 2ps захищеної гої частини 2pou об'єктного коду, що, можливо, програми, причому ця модифікація така, що в ході містить засоби експлуатації, завантажується щовиконання захищеної програми 2р функціональна найменше в один передперсоналізований пристрій можливість щонайменше одного вибраного умов66, щоб одержати щонайменше один пристрій 6. ного переходу виконується за допомогою другої Завантаження цієї персоналізуючої інформації виконуваної частини 2peu у пристрої 6; дозволяє зробити працездатним щонайменше - і за допомогою створення: один пристрій 6. Слід зазначити, що частина цієї - першої частини 2pos об'єктного коду захищеінформації, бувши перенесеною у пристрій 6, неної програми 2р, причому ця перша частина 2pos досяжна безпосередньо ззовні цього пристрою 6. об'єктного коду така, що в ході виконання захищеПередача інформації персоналізації в незадіяний ної програми 2р функціональна можливість щопристрій 60 або в передперсоналізований пристрій найменше одного вибраного умовного переходу 66 може бути реалізована за допомогою адаптовиконується у пристрої 6, ваного пристрою персоналізації, що його описано - і другої частини 2pou об'єктного коду захидалі і проілюстровано Фіг.150. У разі пристрою 6, щеної програми 2р, причому ця друга частина що складається з карти 7 з мікрочипом і пристрою 2pou об'єктного коду така, що після завантаження 8 її читання, персоналізація стосується тільки кару пристрій 6, у ході виконання захищеної програми ти 7 з мікрочипом. 2р реалізується друга виконувана частина 2peu, за Різноманітні технічні засоби для реалізації фадопомогою якої виконується функціональна можзи Ρ захисту, які далі будуть описані докладніше, ливість щонайменше одного вибраного умовного проілюстровані Фіг.110, 120, 130, 140 і 150. переходу. На Фіг.110 наведений приклад реалізації сисДля кращої реалізації принципу захисту за дотеми 25, що дозволяє реалізувати стадію S12 конспомогою умовного переходу захищена програма труювання з урахуванням визначень, уведених на 2р модифікується: стадії S11 визначень, і в ході якої конструюються - за допомогою вибору у вихідному коді 2ps засоби 12, 13 передачі й, можливо, засоби експлузахищеної програми щонайменше однієї серії вибатації, призначені для пристрою 6. Подібна систераних умовних переходів; ма 25 містить пристрій розробки програм або ро- за допомогою модифікації щонайменше одбочу станцію, що звичайно представляє собою ного вибраного фрагмента коду 2ps захищеної комп'ютер, який має системний блок, монітор, пепрограми, причому ця модифікація така, що в ході риферійні пристрої типу клавіатури і миші і на яковиконання захищеної програми 2р глобальна фунму встановлені такі програми: файлові редактори, кціональна можливість щонайменше однієї вибраасемблери, перепроцесори, компілятори, інтерпної серії умовних переходів виконується за допоретатори, налагоджувані і редактори зв'язків. могою другої виконуваної частини 2peu у пристрої На Фіг.120 наведений приклад реалізації при6; строю 30 перед-персоналізації, що дозволяє зава- і за допомогою створення: нтажити, щонайменше частково, засоби 13 пере- першої частини 2pos об'єктного коду захищедачі та/або засоби експлуатації щонайменше в ної програми 2р, причому ця перша частина 2pos один незадіяний пристрій 60, щоб одержати щооб'єктного коду така, що в ході виконання захищенайменше передперсоналізований пристрій 66. ної програми 2р функціональна можливість щоПристрій 30 передперсоналізації містить засіб 31 найменше однієї вибраної серії умовних переходів читання-запису, що дозволяє електрично передвиконується у пристрої 6, персоналізувати незадіяний пристрій 60, щоб оде- і другої частини 2pou об'єктного коду захиржати передперсоналізований пристрій 66, у який щеної програми 2р, причому ця друга частина завантажені засоби 13 передачі і/або засоби екс2pou об'єктного коду така, що після завантаження плуатації. Пристрій 30 передперсоналізації може у пристрій 6, у ході виконання захищеної програми також містити фізичні засоби 32 передперсоналі2р реалізується друга виконувана частина 2peu, за зації незадіяного пристрою 60, що являють собою, допомогою якої виконується глобальна функціонаприклад, принтер. У випадку, якщо пристрій 6 нальна можливість щонайменше однієї вибраної складається з карти 7 з мікрочипом і пристрою 8 її серії умовних переходів. читання, передперсоналізація стосується звичайЗрозуміло, принципи захисту згідно з винахоно тільки карти 7 з мікрочипом. дом можуть застосовуватися безпосередньо в ході На Фіг.130 наведений приклад реалізації сисрозробки нової програми без попередньої реалітеми 35, що дозволяє здійснити виготовлення зазації проміжних уразливих програм. Таким чином, собів, призначених для використання при ствостадії S21 створення і S22 модифікації можуть бути ренні захищених програм або автоматизації здійснені одночасно, щоб відразу одержати захизахисту програм. Подібна система 35 містить прищену програму 2р. стрій розробки програм або робочої станції, що Під час вихідної під фази Р2 захисту після стазвичайно представляє собою комп'ютер, який місдії S21 створення захищеної програми 2р і, можлитить системний блок, монітор, периферійні приво, після стадії S22 модифікації реалізується стастрої типу клавіатури і миші і на якому є такі продія, названа "стадією S23 персоналізації". В ході грами: файлові редактори, асемблери, цієї стадії S23 персоналізації друга частина 2pou перепроцесори, компілятори, інтерпретатори, наоб'єктного коду, що, можливо, містить засоби екслагоджувачі і редактори зв'язків. плуатації, завантажується щонайменше в один На Фіг.140 наведений приклад реалізації сис 55 77187 56 теми 40, що дозволяє безпосередньо одержати менше для одного пристрою 6, що являють собою, захищену програму 2р або модифікувати вразливу наприклад, принтер. У випадку, якщо пристрій 6 програму 2v з метою одержати захищену програму складається з карти 7 з мікрочипом і пристрою 8 її 2р. Подібна система 40 включає пристрій розробки читання, персоналізація стосується звичайно тільпрограми або робочу станцію, що звичайно предки карти 7 з мікрочипом. ставляє собою комп'ютер, що має системний блок, Спосіб захисту згідно з винаходом може реалімонітор, периферійні пристрої типу клавіатури і зовуватися з додатковими вдосконаленнями. миші і на якому встановлені такі програми: файло- Можна передбачити спільне використання ві редактори, асемблери, перепроцесори, компілямножини пристроїв обробки і зберігання, між якитори, інтерпретатори, налагоджувані і редактори ми розподілена друга частина 2pou об'єктного козв'язків, а також засоби, що допомагають при ду захищеної програми 2р таким чином, що їхнє створенні захищених програм або автоматизації спільне виконання дозволяє виконати захищену захисту програм. програму 2р, відсутність же щонайменше одного з На Фіг.150 наведений приклад реалізації прицих пристроїв обробки і зберігання перешкоджає строю 45 персоналізації, що дозволяє завантажити використанню захищеної програми 2р. другу частину 2pou об'єктного коду щонайменше в - Аналогічно, після стадії S13 передперсоналіодин незадіяний пристрій 60, щоб одержати щозації й у ході стадії S23 персоналізації частина найменше один пристрій 6, або частину другої другої частини 2pou об'єктного коду, необхідна для частини 2pou об'єктного коду щонайменше в один перетворення передперсоналізованого пристрою передперсоналізований пристрій 66, щоб одержа66 на пристрій 6, може міститися у пристрої оброти щонайменше один пристрій 6. Цей пристрій 45 бки й зберігання, використовуваному пристроєм 45 персоналізації містить засіб 46 читання-запису, що персоналізації, щоб обмежити доступ до цієї часдозволяє електрично персоналізувати щонайментини другої частини 2pou об'єктного коду. Зрозуміше один незадіяний пристрій 60 або щонайменше ло, ця частина другої частини 2pou об'єктного коду один передперсоналізований пристрій 66, щоб може бути розподілена між декількома пристроями одержати щонайменше один пристрій 6. По завеобробки і зберігання таким чином, щоб ця частина ршенні цієї персоналізації пристрій 6 містить інфодругої частини 2pou об'єктного коду була досяжрмацію, необхідну для виконання захищеної проною тільки під час спільного використання цих грами 2р. Пристрій 45 персоналізації може також пристроїв обробки і зберігання. містити фізичні засоби 47 персоналізації щонай 57 77187 58 59 77187 60
ДивитисяДодаткова інформація
Назва патенту англійськоюMethod for protecting software against unauthorized use by controlling the correspondence with a specified criterion
Назва патенту російськоюСпособ защиты программы от неразрешенного доступа с помощью контроля соответствия заданному критерию
МПК / Мітки
МПК: G06F 1/00, G06F 21/00
Мітки: званого, допомогою, примусу, спосіб, програми, використання, захисту, принципу, неавторизованого, детектування
Код посилання
<a href="https://ua.patents.su/31-77187-sposib-zakhistu-programi-vid-neavtorizovanogo-vikoristannya-za-dopomogoyu-tak-zvanogo-principu-detektuvannya-jj-primusu.html" target="_blank" rel="follow" title="База патентів України">Спосіб захисту програми від її неавторизованого використання за допомогою так званого принципу детектування й примусу</a>
Попередній патент: Спосіб захисту програми від її неавторизованого використання за допомогою так званого принципу змінної
Наступний патент: Спосіб лікування злоякісних місцевопоширених позаорганних пухлин малого таза
Випадковий патент: Захисні грати (варіанти) та механізм переміщення для захисних грат (варіанти)