EA005465B1 - Method for protecting a software using a so-called variable principle against its unauthorised use - Google Patents
Method for protecting a software using a so-called variable principle against its unauthorised use Download PDFInfo
- Publication number
- EA005465B1 EA005465B1 EA200400057A EA200400057A EA005465B1 EA 005465 B1 EA005465 B1 EA 005465B1 EA 200400057 A EA200400057 A EA 200400057A EA 200400057 A EA200400057 A EA 200400057A EA 005465 B1 EA005465 B1 EA 005465B1
- Authority
- EA
- Eurasian Patent Office
- Prior art keywords
- program
- protected program
- execution
- protected
- processing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Storage Device Security (AREA)
Abstract
Description
Область техникиTechnical field
Настоящее изобретение относится к области систем обработки данных в широком смысле этого слова, а точнее говоря, изобретение касается средств защиты от неавторизованного использования программы, функционирующей в указанных системах обработки данных.The present invention relates to the field of data processing systems in the broad sense of the word, and more specifically, the invention relates to means of protection against unauthorized use of a program operating in these data processing systems.
Уровень техникиState of the art
Предмет настоящего изобретения касается, более конкретно, способов защиты программ от неавторизованного использования на основе запоминающего устройства или устройства обработки и хранения, причем это устройство обычно реализуется в виде карты с микрочипом или аппаратного ключа на порту И8В.The subject of the present invention relates, more specifically, to methods of protecting programs from unauthorized use based on a storage device or a processing and storage device, moreover, this device is usually implemented as a microchip card or hardware key on an I8B port.
В указанной области техники основная проблема связана с неавторизованным использованием программ пользователями, которые не приобрели право на их использование (лицензию). Такое незаконное использование программ наносит явный ущерб производителям и продавцам программ, и/или любым иным лицам, которые используют такие программы в своих изделиях. Во избежание создания таких незаконных копий для защиты подобных программ был предложен ряд решений на основе имеющихся технических возможностей.In the indicated field of technology, the main problem is associated with unauthorized use of programs by users who have not acquired the right to use them (license). Such illegal use of programs causes obvious harm to manufacturers and sellers of programs, and / or to any other persons who use such programs in their products. In order to avoid creating such illegal copies to protect such programs, a number of solutions have been proposed based on existing technical capabilities.
Так, известен способ защиты, состоящий в использовании аппаратного защитного элемента - физического устройства, называемого электронным защитным ключом-заглушкой (боид1е). Такой защитный ключ должен гарантировать выполнение программы только в присутствии ключа. Приходится, однако, констатировать, что это решение неэффективно, так как легко обходится. Злоумышленник может при помощи специальных приемов, например дизассемблирования, удалить команды контроля защитного ключа. При этом становится возможным изготовить незаконные копии модифицированных версий программы, не имеющих никакой защиты. Кроме того, это решение нельзя распространить на все программы в силу сложности подключения более чем двух защитных ключей к одной системе.So, there is a known method of protection, consisting in the use of a hardware security element - a physical device called an electronic security key-dongle (BoyDe). Such a security key should guarantee the execution of the program only in the presence of the key. However, one has to admit that this solution is inefficient, as it is easily dispensed with. An attacker can use special tricks, such as disassembling, to remove security key control commands. At the same time, it becomes possible to make illegal copies of modified versions of the program that do not have any protection. In addition, this solution cannot be extended to all programs due to the complexity of connecting more than two security keys to one system.
Раскрытие изобретенияDisclosure of invention
Соответственно, задача, решаемая настоящим изобретением, заключается в устранении указанных недостатков путем создания способа защиты программы от неавторизованного доступа, использующего запоминающее устройство или устройство обработки и хранения, специально созданное для этой цели, в той мере, в которой наличие такого устройства необходимо для полноценной работы программы.Accordingly, the problem solved by the present invention is to eliminate these disadvantages by creating a method of protecting the program from unauthorized access using a storage device or processing and storage device specially created for this purpose, to the extent that the presence of such a device is necessary for full operation programs.
Решение данной задачи достигнуто в соответствии с изобретением созданием способа защиты (на основе по меньшей мере одного незадействованного устройства, содержащего, по меньшей мере, средства запоминания) от неавторизованного использования уязвимой программы, которая функционирует в системе обработки данных. Способ согласно изобретению состоит в том, что:The solution to this problem was achieved in accordance with the invention by creating a method of protection (based on at least one idle device containing at least storage means) against unauthorized use of a vulnerable program that operates in a data processing system. The method according to the invention is that:
в фазе защиты:in the protection phase:
- создают защищенную программу:- create a secure program:
- посредством выбора в исходном коде уязвимой программы:- by selecting the vulnerable program in the source code:
по меньшей мере одной переменной, которая в ходе выполнения уязвимой программы частично определяет ее состояние, и по меньшей мере одного фрагмента, содержащего по меньшей мере одну выбранную переменную,at least one variable, which during the execution of the vulnerable program partially determines its state, and at least one fragment containing at least one selected variable,
- посредством создания исходного кода защищенной программы на основе исходного кода уязвимой программы модифицированием по меньшей мере одного выбранного фрагмента кода уязвимой программы, причем эта модификация такова, что в ходе выполнения защищенной программы по меньшей мере одна выбранная переменная или одна копия выбранной переменной находится в незадействованном устройстве, которое тем самым превращается в устройство,- by creating the source code of the protected program on the basis of the source code of the vulnerable program by modifying at least one selected code fragment of the vulnerable program, and this modification is such that during the execution of the protected program at least one selected variable or one copy of the selected variable is in an unused device , which thereby turns into a device,
- и посредством создания первой части объектного кода защищенной программы на основе исходного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы реализуется первая выполняемая часть, которая выполняется в системе обработки данных, и по меньшей мере один фрагмент которой учитывает, что по меньшей мере одна переменная или одна копия переменной находится в устройстве,- and by creating the first part of the object code of the protected program on the basis of the source code of the protected program, the first part of the object code being such that during the execution of the protected program the first executable part is executed, which is executed in the data processing system, and at least one fragment of which takes into account that at least one variable or one copy of the variable is in the device,
- а в фазе использования, в ходе которой выполняется защищенная программа:- and in the phase of use during which the protected program is executed:
- в присутствии устройства, всякий раз, когда этого требует фрагмент первой выполняемой части, используют переменную или копию переменной, находящуюся в устройстве таким образом, чтобы указанный фрагмент выполнялся корректно, и, следовательно, защищенная программа являлась полнофункциональной;- in the presence of the device, whenever a fragment of the first executable part requires it, use a variable or a copy of the variable located in the device so that the specified fragment is executed correctly, and therefore the protected program is fully functional;
тогда как при отсутствии устройства, несмотря на запрос одного фрагмента первой выполняемой части использовать переменную или копию переменной, находящуюся в устройстве, не обеспечивается возможность корректного ответа на указанный запрос, так что, по меньшей мере, указанный фрагмент не выполняется корректно, и, следовательно, защищенная программа не является полнофункциональной.whereas in the absence of a device, despite the request of one fragment of the first executable part to use a variable or a copy of the variable located in the device, it is not possible to correctly answer the specified request, so at least the specified fragment is not executed correctly, and therefore a protected program is not fully functional.
В соответствии с предпочтительной формой реализации способа по изобретению:In accordance with a preferred form of implementing the method according to the invention:
- в фазе защиты:- in the protection phase:
модифицируют защищенную программу:modify the protected program:
- посредством выбора в исходном коде защищенной программы:- by selecting a protected program in the source code:
-1005465 по меньшей мере одного алгоритма, который в ходе выполнения защищенной программы использует по меньшей мере одну выбранную переменную и позволяет получить по меньшей мере одну результирующую переменную, и по меньшей мере одного фрагмента, содержащего по меньшей мере один выбранный алгоритм, посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем эта модификация такова, что:-1005465 of at least one algorithm that, during the execution of the protected program, uses at least one selected variable and allows to obtain at least one resulting variable, and at least one fragment containing at least one selected algorithm, by modifying at least at least one selected code fragment of a protected program, and this modification is such that:
в ходе выполнения защищенной программы первая выполняемая часть выполняется в системе обработки данных, а вторая выполняемая часть выполняется в устройстве, которое содержит также средства обработки, по меньшей мере, функциональная возможность по меньшей мере одного выбранного алгоритма выполняется посредством второй выполняемой части, по меньшей мере один выбранный алгоритм разлагается таким образом, что в ходе выполнения защищенной программы реализуются, посредством второй выполняемой части, несколько различных этапов, а именно:during the execution of the protected program, the first executable part is executed in the data processing system, and the second executable part is executed in the device, which also contains processing means, at least the functionality of at least one selected algorithm is executed by the second executable part, at least one the selected algorithm is decomposed in such a way that, during the execution of the protected program, several different stages are realized, by means of the second executable part, namely:
предоставление по меньшей мере одной переменной для устройства, реализация в устройстве функциональных возможностей алгоритма, выполняемого, по меньшей мере, над этой переменной, и, возможно, предоставление по меньшей мере одной результирующей переменной устройством для системы обработки данных, по меньшей мере для одного выбранного алгоритма команды этапов определены таким образом, что в ходе выполнения защищенной программы каждая команда этапа выполняется посредством первой выполняемой части и вызывает в устройстве выполнение этапа посредством второй выполняемой части, причем упорядочение команд этапов выбрано среди ансамбля упорядочений, позволяющих выполнение защищенной программы,providing at least one variable for the device, implementing in the device the functionality of an algorithm performed on at least this variable, and possibly providing at least one resulting variable by the device for the data processing system for at least one selected algorithm the instructions of the steps are determined in such a way that during the execution of the protected program, each command of the step is executed by means of the first executable part and causes this device to execute and performed by the second part, and the ordering of the steps commands is chosen among the ordered assembly, allowing the implementation of the protected software,
- и посредством создания:- and by creating:
первой части объектного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы команды этапов выполняются в соответствии с выбранным упорядочением, и второй части объектного кода защищенной программы, причем вторая часть объектного кода такова, что после загрузки в незадействованное устройство в ходе выполнения защищенной программы реализуется вторая выполняемая часть, посредством которой выполняются этапы, запуск которых был вызван первой выполняемой частью;the first part of the object code of the protected program, the first part of the object code being such that during the execution of the protected program the instructions of the steps are executed in accordance with the selected ordering, and the second part of the object code of the protected program, the second part of the object code being such that after loading into an unused device during the execution of the protected program, the second executable part is implemented, through which the steps are performed, the launch of which was called by the first executable part;
и загружают вторую часть объектного кода в незадействованное устройство с получением устройства, а в фазе использования:and load the second part of the object code into an idle device to obtain the device, and in the phase of use:
в присутствии устройства, всякий раз, когда этого требует команда этапа, содержащаяся во фрагменте первой выполняемой части, выполняют соответствующий этап в устройстве таким образом, чтобы указанный фрагмент выполнялся корректно, и, следовательно, защищенная программа являлась полнофункциональной;in the presence of the device, whenever a stage command contained in a fragment of the first executable part requires it, the corresponding step in the device is performed in such a way that the specified fragment is executed correctly and, therefore, the protected program is fully functional;
тогда как при отсутствии устройства, несмотря на запрос одного фрагмента первой выполняемой части на запуск выполнения этапа в устройстве, не обеспечивается возможность корректного ответа на указанный запрос, так что, по меньшей мере, указанный фрагмент не выполняется корректно, и, следовательно, защищенная программа не является полнофункциональной.whereas in the absence of a device, despite the request of one fragment of the first executable part to start the execution of a stage in the device, it is not possible to correctly answer the specified request, so at least the specified fragment is not executed correctly, and therefore, the protected program does not is fully functional.
В соответствии с другой предпочтительной формой реализации способа согласно изобретению в фазе защиты определяют:In accordance with another preferred embodiment of the method according to the invention, in the phase of protection is determined:
набор элементарных функций, элементарные функции которого могут быть выполнены в устройстве, которое содержит также средства обработки, и набор элементарных команд для указанного набора элементарных функций, причем указанные элементарные команды могут быть выполнены в системе обработки данных, вызывая выполнение в устройстве элементарных функций;a set of elementary functions, the elementary functions of which can be performed in a device that also contains processing means, and a set of elementary commands for a specified set of elementary functions, and the indicated elementary commands can be executed in a data processing system, causing execution of elementary functions in the device;
конструируют средства эксплуатации, позволяющие преобразовать незадействованное устройство в устройство, способное выполнять элементарные функции из указанного набора, причем выполнение указанных элементарных функций вызывается выполнением элементарных команд в системе обработки данных;design means of operation that allow you to convert an idle device into a device capable of performing elementary functions from the specified set, and the execution of these elementary functions is caused by the execution of elementary commands in the data processing system;
модифицируют защищенную программу:modify the protected program:
посредством выбора в исходном коде защищенной программы:by selecting a protected program in the source code:
по меньшей мере одного алгоритма, который в ходе выполнения защищенной программы использует по меньшей мере одну выбранную переменную и позволяет получить по меньшей мере одну результирующую переменную, и по меньшей мере одного фрагмента, содержащего по меньшей мере один выбранный алгоритм,at least one algorithm that during execution of the protected program uses at least one selected variable and allows to obtain at least one resulting variable, and at least one fragment containing at least one selected algorithm,
-2005465 посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что:-2005465 by modifying at least one selected code fragment of a protected program, said modification being such that:
в ходе выполнения защищенной программы первая выполняемая часть выполняется в системе обработки данных, а вторая выполняемая часть выполняется в устройстве, по меньшей мере, функциональная возможность по меньшей мере одного выбранного алгоритма выполняется посредством второй выполняемой части, по меньшей мере один выбранный алгоритм разлагается таким образом, что в ходе выполнения защищенной программы указанный алгоритм выполняется посредством второй выполняемой части с применением элементарных функций, по меньшей мере для одного выбранного алгоритма элементарные команды интегрируются в исходный код защищенной программы таким образом, что в ходе выполнения защищенной программы каждая элементарная команда выполняется посредством первой выполняемой части и вызывает в устройстве выполнение, посредством второй выполняемой части, элементарной функции, причем упорядочение элементарных команд выбирается среди ансамбля упорядочений, позволяющих выполнение защищенной программы,during the execution of the protected program, the first executable part is executed in the data processing system, and the second executable part is executed in the device, at least the functionality of at least one selected algorithm is executed by the second executable part, at least one selected algorithm is decomposed in such a way that during the execution of the protected program, the specified algorithm is executed by means of the second executable part using elementary functions for at least one The selected algorithm, the elementary commands are integrated into the source code of the protected program so that during the execution of the protected program each elementary command is executed by the first executable part and causes the elementary function to execute, by the second executable part, in the device, and the ordering of elementary commands is selected among the ensemble of orderings, allowing the execution of a protected program,
- и посредством создания:- and by creating:
первой части объектного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы элементарные команды выполняются в соответствии с выбранным упорядочением, и второй части объектного кода защищенной программы, содержащей средства эксплуатации, причем вторая часть объектного кода такова, что после загрузки в незадействованное устройство, в ходе выполнения защищенной программы реализуется вторая выполняемая часть, посредством которой выполняются элементарные функции, запуск которых был вызван первой выполняемой частью;the first part of the object code of the protected program, the first part of the object code being such that during the execution of the protected program elementary commands are executed in accordance with the selected ordering, and the second part of the object code of the protected program containing operating means, the second part of the object code being such that after loading into an idle device, during the execution of the protected program, the second executable part is implemented, through which elementary functions are performed, the launch of the cat The first was executed the first part;
и загружают вторую часть объектного кода в незадействованное устройство с получением устройства, а в фазе использования:and load the second part of the object code into an idle device to obtain the device, and in the phase of use:
в присутствии устройства, всякий раз, когда этого требует элементарная команда, содержащаяся во фрагменте первой выполняемой части, выполняют соответствующую элементарную функцию в устройстве таким образом, чтобы указанный фрагмент выполнялся корректно, и, следовательно, защищенная программа являлась полнофункциональной;in the presence of the device, whenever an elementary command contained in a fragment of the first executable part requires it, perform the corresponding elementary function in the device so that the specified fragment is executed correctly, and therefore the protected program is fully functional;
тогда как при отсутствии устройства, несмотря на запрос фрагмента первой выполняемой части на запуск выполнения в устройстве элементарной функции, не обеспечивается возможность корректного ответа на указанный запрос, так что, по меньшей мере, указанный фрагмент не выполняется корректно, и, следовательно, защищенная программа не является полнофункциональной.whereas in the absence of a device, despite a request for a fragment of the first executable part to start execution of an elementary function in the device, it is not possible to correctly respond to the specified request, so at least the specified fragment is not executed correctly, and therefore the protected program does not is fully functional.
В соответствии с еще одной предпочтительной формой реализации способа согласно изобретению в фазе защиты:In accordance with another preferred form of implementation of the method according to the invention in the phase of protection:
определяют набор элементарных функций, элементарные функции которого могут быть выполнены в устройстве, и набор элементарных команд для указанного набора элементарных функций, причем указанные элементарные команды могут быть выполнены в системе обработки данных, вызывая выполнение в устройстве элементарных функций;determine a set of elementary functions, the elementary functions of which can be performed in the device, and a set of elementary commands for the specified set of elementary functions, and these elementary commands can be executed in the data processing system, causing the execution of elementary functions in the device;
конструируют средства эксплуатации, позволяющие устройству выполнять элементарные функции из указанного набора, причем выполнение указанных элементарных функций вызывается выполнением элементарных команд в системе обработки данных;design means of operation that allow the device to perform elementary functions from the specified set, and the execution of these elementary functions is caused by the execution of elementary commands in the data processing system;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора в исходном коде защищенной программы по меньшей мере одного этапа, который в ходе выполнения защищенной программы осуществляет функциональную возможность алгоритма, посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что:by selecting at least one step in the source code of the protected program that, during the execution of the protected program, implements the functionality of the algorithm, by modifying at least one selected piece of code of the protected program, said modification being such that:
по меньшей мере один выбранный этап раскладывается таким образом, что в ходе выполнения защищенной программы указанный этап выполняется посредством второй выполняемой части с применением элементарных функций, по меньшей мере для одного выбранного этапа элементарные команды интегрируются в исходный код защищенной программы таким образом, что в ходе выполнения защищенной программы каждая элементарная команда выполняется посредством первой выполняемой части и вызывает в устройстве выполнение, посредством второй выполняемой части, элементарной функции, и упорядочение элементарных команд выбирается в ансамбле упорядочений, позволяющих выполнение защищенной программы, и посредством создания:at least one selected stage is decomposed in such a way that during the execution of the protected program the specified step is performed by means of the second executable part using elementary functions, for at least one selected stage the elementary commands are integrated into the source code of the protected program so that during execution of a protected program, each elementary command is executed by the first executable part and causes the device to execute, by the second executable part, the electronic elementary functions, and ordering the elementary commands is chosen ensemble ordering, allowing execution of the protected program, and through the establishment of:
-3005465 первой части объектного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы элементарные команды выполняются в соответствии с выбранным упорядочением, и второй части объектного кода защищенной программы, содержащей также средства эксплуатации, причем вторая часть объектного кода такова, что после загрузки в устройство, в ходе выполнения защищенной программы реализуется вторая выполняемая часть, посредством которой выполняются элементарные функции, запуск которых был вызван первой выполняемой частью, а в фазе использования:-3005465 of the first part of the object code of the protected program, the first part of the object code being such that during the execution of the protected program elementary commands are executed in accordance with the selected ordering, and the second part of the object code of the protected program, which also contains operating means, the second part of the object code being that after downloading to the device, during the execution of the protected program, the second executable part is implemented, through which elementary functions are performed, the launch of which was called by the first part executed, and in the use phase:
в присутствии устройства, всякий раз, когда этого требует элементарная команда, содержащаяся в части первой выполняемой части, выполняют соответствующую элементарную функцию в устройстве таким образом, чтобы указанный фрагмент выполнялся корректно, и, следовательно, защищенная программа являлась полнофункциональной;in the presence of the device, whenever an elementary command contained in the part of the first executable part requires it, they perform the corresponding elementary function in the device in such a way that the specified fragment executes correctly, and therefore the protected program is fully functional;
тогда как при отсутствии устройства, несмотря на запрос одного фрагмента первой выполняемой части на запуск выполнения в устройстве элементарной функции, не обеспечивается возможность корректного ответа на указанный запрос, так что, по меньшей мере, указанный фрагмент не выполняется корректно, и, следовательно, защищенная программа не является полнофункциональной.whereas in the absence of a device, despite the request of one fragment of the first executable part to start execution of an elementary function in the device, it is not possible to correctly answer the specified request, so at least the specified fragment is not executed correctly, and therefore, the protected program not fully functional.
В соответствии со следующей предпочтительной формой реализации способа согласно изобретению:In accordance with the following preferred form of implementing the method according to the invention:
по меньшей мере одну характеристику выполнения программы, которая может быть проконтролирована, по меньшей мере, частично в устройстве, по меньшей мере один критерий, который должен выполняться по меньшей мере для одной характеристики выполнения программы, средства детектирования, которые следует применять в устройстве и которые позволяют обнаружить, что по меньшей мере одна характеристика выполнения программы не отвечает по меньшей мере одному соответствующему критерию, и средства принуждения, которые следует применять в устройстве и которые позволяют проинформировать систему обработки данных и/или модифицировать выполнение программы, пока не соблюдается хотя бы один критерий;at least one characteristic of program execution, which can be monitored at least partially in the device, at least one criterion that must be satisfied for at least one characteristic of program execution, detection means, which should be used in the device and which allow find that at least one characteristic of program execution does not meet at least one relevant criterion, and coercive means that should be used in the device and which allow to inform the data processing system and / or modify the execution of the program until at least one criterion is met;
конструируют средства эксплуатации, позволяющие устройству задействовать средства детектирования и средства принуждения;design means of operation, allowing the device to use the means of detection and means of coercion;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора по меньшей мере одной характеристики выполнения контролируемой программы среди характеристик выполнения, которые могут быть проконтролированы, посредством выбора по меньшей мере одного критерия, который должен выполняться по меньшей мере для одной выбранной характеристики выполнения программы, посредством выбора в исходном коде защищенной программы элементарных функций, для которых следует контролировать по меньшей мере одну характеристику выполнения контролируемой программы, посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что в ходе выполнения защищенной программы по меньшей мере одна выбранная характеристика выполнения контролируется посредством второй выполняемой части и несоблюдение критерия приводит к информированию системы обработки данных и/или к модификации выполнения защищенной программы, и посредством создания второй части объектного кода защищенной программы, содержащей средства эксплуатации, задействующие также средства детектирования и средства принуждения, причем вторая часть объектного кода такова, что после загрузки в устройство, в ходе выполнения защищенной программы по меньшей мере одна характеристика выполнения программы контролируется и несоблюдение критерия приводит к информированию системы обработки данных и/или к модификации выполнения защищенной программы, а в фазе использования:by selecting at least one execution characteristic of the monitored program from among the execution characteristics that can be monitored, by selecting at least one criterion that must be satisfied for at least one selected characteristic of the program execution, by selecting elementary functions in the source code of the protected program, for which at least one characteristic of the execution of the controlled program should be controlled, by modifying at least one selected code fragment of the protected program, said modification being such that during the execution of the protected program at least one selected execution characteristic is controlled by the second executable part and non-compliance with the criterion leads to informing the data processing system and / or to modification of the protected program execution, and by creating the second part of the object code of the protected program containing operating means, also involving detection means I and coercive means, and the second part of the object code is such that after downloading to the device, during the execution of the protected program, at least one characteristic of the program execution is monitored and non-compliance with the criterion leads to informing the data processing system and / or to modification of the execution of the protected program, and in use phase:
в присутствии устройства если все критерии, отвечающие всем контролируемым характеристикам выполнения всех модифицированных фрагментов защищенной программы, соблюдены, допускают номинальное функционирование указанных фрагментов защищенной программы и, следовательно, номинальное функционирование защищенной программы, а если по меньшей мере один из критериев, отвечающих характеристике контролируемого выполнения одного фрагмента защищенной программы, не соблюден, информируют систему обработки данных об указанном несоблюдении и/или модифицируют функционирование фрагмента защищенной программы таким образом, чтобы функционирование защищенной программы было изменено.in the presence of the device, if all the criteria that meet all the controlled characteristics of the execution of all modified fragments of the protected program are met, allow the nominal functioning of these fragments of the protected program and, therefore, the nominal functioning of the protected program, and if at least one of the criteria that meets the characteristics of the controlled execution of one fragment of a protected program, not observed, inform the data processing system of the indicated non-compliance and / or modifying the operation of the protected fragment of the program so as to secure the functioning of the program was changed.
В соответствии с вариантом осуществления способа согласно изобретению в фазе защиты:In accordance with an embodiment of the method according to the invention in the protection phase:
определяютdetermine
-4005465 в качестве характеристики выполнения программы, которая может быть проконтролирована, переменную для количественного контроля использования одной функциональной возможности программы, в качестве критерия, который необходимо соблюдать, по меньшей мере одно пороговое значение, связанное с каждой переменной для количественного контроля, и средства обновления, позволяющие обновить по меньшей мере одну переменную для количественного контроля;-4005465 as a characteristic of the execution of a program that can be monitored, a variable for quantitative control of the use of one functionality of the program, as a criterion that at least one threshold value associated with each variable for quantitative control, and means of updating, allowing you to update at least one variable for quantitative control;
конструируют средства эксплуатации, позволяющие устройству применять средства обновления;designing operating tools that allow the device to use update tools;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора в качестве характеристики выполнения контролируемой программы, по меньшей мере, одной переменной для количественного контроля использования одной функциональной возможности программы, посредством выбора:by selecting as a characteristic of the execution of the controlled program, at least one variable for quantitative control of the use of one functionality of the program, by selecting:
по меньшей мере одной функциональной возможности защищенной программы, использование которой можно проконтролировать с использованием переменной для количественного контроля, по меньшей мере одной переменной для количественного контроля, которая служит для количественной характеристики использования упомянутой функциональной возможности, по меньшей мере одного порогового значения, связанного с выбранной переменной для количественного контроля и соответствующего пределу использования указанной функциональной возможности, и по меньшей мере одного метода обновления значения указанной переменной для количественного контроля в зависимости от использованием указанной функциональной возможности, и посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что в ходе выполнения защищенной программы переменная для количественного контроля обновляется посредством второй выполняемой части, в зависимости от использования указанной функциональной возможности, и учитывается по меньшей мере одно превышение порогового значения, а в фазе использования, в присутствии устройства, в случае, когда обнаружено по меньшей мере одно превышение порогового значения, соответствующее по меньшей мере одному пределу использования, информируют об этом систему обработки данных и/или модифицируют функционирование фрагмента защищенной программы, таким образом, чтобы функционирование защищенной программы было изменено.at least one functionality of a protected program, the use of which can be controlled using a variable for quantitative control, at least one variable for quantitative control, which serves to quantify the use of the mentioned functionality, at least one threshold value associated with the selected variable for quantitative control and corresponding to the limit of use of the specified functionality, and according at least one method of updating the value of the specified variable for quantitative control depending on the use of the specified functionality, and by modifying at least one selected code fragment of the protected program, said modification being such that, during the execution of the protected program, the variable for quantitative control is updated by means of the second the executed part, depending on the use of the specified functionality, and at least m If there is one excess of the threshold value, and in the phase of use, in the presence of the device, in case at least one excess of the threshold value is found that corresponds to at least one limit of use, the data processing system is informed about this and / or the functioning of the fragment of the protected program is modified , so that the functioning of the protected program is changed.
В соответствии с другим вариантом осуществления способа согласно изобретению:In accordance with another embodiment of the method according to the invention:
в фазе защиты:in the protection phase:
определяют несколько соответствующих пороговых значений по меньшей мере для одной переменной для количественного контроля, и различные средства принуждения, соответствующие каждому из указанных порогов;determining several corresponding threshold values for at least one variable for quantitative control, and various coercive means corresponding to each of these thresholds;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора в исходном коде защищенной программы по меньшей мере одной переменной для количественного контроля, с которой должны быть связаны несколько пороговых значений, соответствующих различным пределам использования функциональной возможности, посредством выбора по меньшей мере двух пороговых значений, связанных с выбранной переменной для количественного контроля, и посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что в ходе выполнения защищенной программы превышения различных пороговых значений учитываются посредством второй выполняемой части различными способами, а в фазе использования:by selecting at least one variable for quantitative control in the source code of the protected program with which several threshold values corresponding to different limits of use of functionality should be associated, by selecting at least two threshold values associated with the selected variable for quantitative control, and by modifying at least one selected code fragment of the protected program, said modification being such that during execution Protected programs exceeding various threshold values are taken into account by means of the second executable part in various ways, and in the phase of use:
в присутствии устройства:in the presence of a device:
в случае, когда обнаружено превышение первого порогового значения, дают команду защищенной программе не использовать впредь соответствующую функциональную возможность, а в случае, когда обнаружено превышение второго порогового значения, делают невыполнимой соответствующую функциональную возможность и/или по меньшей мере часть защищенной программы.in the case when an excess of the first threshold value is detected, instruct the protected program not to continue to use the corresponding functionality, and in the case when an excess of the second threshold value is detected, the corresponding functionality and / or at least part of the protected program are not fulfilled.
В соответствии с дальнейшим вариантом осуществления способа согласно изобретению в фазе защиты:According to a further embodiment of the method according to the invention, in the protection phase:
определяют средства перезагрузки, позволяющие разрешить по меньшей мере одно дополнительное использование по меньшей мере одной функциональной возможности программы, контролируемой при помощи переменной для количественного контроля;determine the means of reloading, allowing to allow at least one additional use of at least one functionality of the program controlled by a variable for quantitative control;
конструируют средства эксплуатации, позволяющие также устройству задействовать средства перезагрузки;design means of operation that also allow the device to use the means of reboot;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора в исходном коде защищенной программы по меньшей мере одной переменной для количественного контроля, позволяющей ограничить использование одной функциональной воз-5005465 можности, для которой существует возможность разрешения по меньшей мере на одно дополнительное использование, и посредством модифицирования по меньшей мере одного выбранного фрагмента, причем указанная модификация такова, что в фазе перезагрузки по меньшей мере одно дополнительное использование по меньшей мере одной функциональной возможности, соответствующей одной выбранной переменной для количественного контроля, может быть разрешено, а в фазе перезагрузки:by selecting at least one variable for quantitative control in the source code of the protected program, which allows limiting the use of one functional possibility for which it is possible to permit at least one additional use, and by modifying at least one selected fragment, moreover the specified modification is such that in the reboot phase at least one additional use of at least one functionality sponding one selected variable for the quantitative control can be permitted, and in the restart phase:
обновляют по меньшей мере одну выбранную переменную для количественного контроля и по меньшей мере одно соответствующее пороговое значение так, чтобы разрешить по меньшей мере одно дополнительное использование функциональной возможности.updating at least one selected variable for quantitative control and at least one corresponding threshold value so as to allow at least one additional use of the functionality.
В соответствии с вариантом осуществления способа согласно изобретению в фазе защиты:In accordance with an embodiment of the method according to the invention in the protection phase:
определяют в качестве характеристики выполнения программы, которая может быть проконтролирована, профиль использования программы, и в качестве критерия, который требуется соблюдать, по меньшей мере один признак выполнения программы;determine, as a characteristic of the program that can be monitored, the profile of the use of the program, and as a criterion that at least one sign of program execution is to be observed;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора в качестве характеристики выполнения контролируемой программы по меньшей мере одного профиля использования программы, посредством выбора по меньшей мере одного признака выполнения программы, который должен соблюдать по меньшей мере один профиль использования, и посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что в ходе выполнения защищенной программы вторая выполняемая часть соблюдает все выбранные признаки выполнения, а в фазе использования, в присутствии устройства в случае, если обнаружено, что не соблюдается хотя бы один признак выполнения, информируют об этом систему обработки данных и/или модифицируют функционирование части защищенной программы так, чтобы функционирование защищенной программы было изменено.by selecting as a characteristic of the execution of the controlled program at least one profile of the use of the program, by selecting at least one sign of the execution of the program that must comply with at least one profile of use, and by modifying at least one selected code fragment of the protected program, the specified modification is such that during the execution of the protected program the second executable part respects all selected signs of execution, and in Use se, in the presence of the device in case it is detected that is not observed at least one feature implementation, inform the data processing system and / or modified parts of the protected program functioning so that the operation of the protected program has been changed.
В соответствии с дальнейшим вариантом осуществления способа согласно изобретению в фазе защиты:According to a further embodiment of the method according to the invention, in the protection phase:
определяют набор инструкций, инструкции из состава которого могут быть выполнены в устройстве, набор команд инструкций для указанного набора инструкций, причем команды инструкций могут быть выполнены в системе обработки данных, вызывая в устройстве выполнение инструкций, в качестве профиля использования - сцепление инструкций, в качестве признака выполнения - желаемое сцепление для выполнения инструкций, в качестве средств детектирования - средства, позволяющие обнаружить, что сцепление инструкций не соответствует желаемому, в качестве средств принуждения - средства, позволяющие проинформировать систему обработки данных и/или модифицировать функционирование фрагмента защищенной программы, если сцепление инструкций не соответствует желаемому, конструируют средства эксплуатации, позволяющие устройству выполнять инструкции из набора инструкций, причем выполнение указанных инструкций вызывается выполнением команд инструкций в системе обработки данных;determine a set of instructions, instructions from which can be executed in the device, a set of instructions for the specified set of instructions, and instructions can be executed in the data processing system, causing the device to execute instructions, as a usage profile - coupling instructions, as a sign execution - the desired grip for executing instructions, as a means of detection - means to detect that the clutch of instructions does not match the desired, as e means of coercion - means to inform the data processing system and / or modify the functioning of a fragment of a protected program, if the clutch of instructions does not match the desired, design means of operation that allow the device to execute instructions from a set of instructions, and the execution of these instructions is caused by the execution of instructions of the instructions in the processing system data;
и модифицируют защищенную программу:and modify the protected program:
посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы:by modifying at least one selected code fragment of a protected program:
посредством преобразования элементарных функций в инструкции, посредством задания сцепления, которое должны соблюдать, по меньшей мере, некоторые из инструкций во время их выполнения в устройстве, и посредством преобразования элементарных команд в команды инструкций, соответствующих используемым инструкциям, а в фазе использования, в присутствии устройства, в случае, если обнаружено, что сцепление выполняемых в устройстве инструкций не соответствует желаемому, информируют об этом систему обработки данных и/или модифицируют функционирование фрагмента защищенной программы так, чтобы функционирование защищенной программы было изменено.by transforming elementary functions into instructions, by defining a clutch that at least some of the instructions must follow during their execution on the device, and by converting elementary commands into instructions that correspond to the instructions used, and in the use phase, in the presence of the device , if it is found that the coupling of the instructions executed in the device does not correspond to the desired, inform the data processing system about it and / or modify the functions Partitioning a protected program so that the functioning of the protected program is changed.
В соответствии с другой предпочтительной формой реализации способа согласно изобретению в фазе защиты:In accordance with another preferred form of implementing the method according to the invention in the protection phase:
определяют в качестве набора инструкций - набор инструкций, в котором, по меньшей мере, некоторые инструкции работают на регистрах и используют по меньшей мере один операнд для выдачи результата,defined as a set of instructions - a set of instructions in which at least some instructions operate on registers and use at least one operand to produce a result,
-6005465 по меньшей мере, для части инструкций, работающих на регистрах:-6005465 for at least part of the instructions working on registers:
часть, задающую функциональную возможность инструкции, и часть, задающую желаемое сцепление для выполнения инструкций и содержащую битовые поля, соответствующие:a part specifying the functionality of the instruction, and a part specifying the desired grip for executing the instructions and containing bit fields corresponding to:
полю идентификации инструкции, и для каждого операнда инструкции:instruction identification field, and for each instruction operand:
полю флага, и полю идентификации, предусмотренной для операнда, для каждого регистра, принадлежащего к средствам эксплуатации и используемого набором инструкций, - поле предусмотренной идентификации, в котором автоматически запоминается идентификация последней инструкции, возвратившей свой результат в указанный регистр, в качестве средств детектирования - средства, позволяющие во время выполнения инструкции для каждого операнда, когда этого требует поле флага, контролировать равенство между полем генерируемой идентификации, соответствующим регистру, используемому указанным операндом, и полем предусмотренной идентификации начального адреса этого операнда, и в качестве средств принуждения - средства, позволяющие модифицировать результат выполнения инструкций, если по меньшей мере одно из контролируемых равенств ложно.the flag field, and the identification field provided for the operand, for each register belonging to the operating means and used by a set of instructions, is the provided identification field, which automatically remembers the identification of the last instruction that returned its result to the specified register, as means of detection, means allowing, during the execution of the instruction for each operand, when the flag field requires it, to control the equality between the generated identification field, respectively Leica Geosystems registers used by said operand, and a field provided for identifying the start address of the operand, and as a means of coercion - means to modify the output of the document, if at least one of the monitored equalities false.
В соответствии с еще одной предпочтительной формой реализации способа согласно изобретению в фазе защиты:In accordance with another preferred form of implementation of the method according to the invention in the phase of protection:
определяют в качестве команды запуска - элементарную команду или команду инструкции, в качестве зависимой функции - элементарную функцию или инструкцию, в качестве установочного параметра - по меньшей мере один аргумент для команды запуска, соответствующий, по меньшей мере, частично информации, переданной системой обработки данных на устройство, чтобы вызвать запуск соответствующей зависящей функции, метод переименования установочных параметров, позволяющий переименовать установочные параметры, чтобы получить команды запуска с переименованными установочными параметрами, и средства восстановления, предназначенные для применения в устройстве в фазе использования и позволяющие найти зависимую функцию, которую необходимо выполнить, исходя из переименованного установочного параметра;define, as a start command, an elementary command or instruction command, as a dependent function, an elementary function or instruction, as a setting parameter, at least one argument for a start command corresponding at least partially to the information transmitted by the data processing system to device, to trigger the start of the corresponding dependent function, the method of renaming settings, allowing you to rename settings to receive start commands from enovannymi setting parameters, and recovery means for use in the device in use and allowing to find the phase dependent function to be executed, based on the renamed setup parameter;
конструируют средства эксплуатации, позволяющие устройству задействовать средства восстановления;design means of operation, allowing the device to use recovery tools;
и модифицируют защищенную программу:and modify the protected program:
посредством выбора в исходном коде защищенной программы команды запуска, посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы путем переименования установочных параметров выбранных команд запуска, чтобы скрыть идентичность соответствующих зависящих функций, и посредством создания:by selecting the start command in the source code of the protected program, by modifying at least one selected fragment of the protected program code by renaming the settings of the selected start commands to hide the identity of the corresponding dependent functions, and by creating:
первой части объектного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы выполняются команды запуска с переименованными установочными параметрами, и второй части объектного кода защищенной программы, содержащей средства эксплуатации, использующие также средства восстановления, причем вторая часть объектного кода такова, что после загрузки в устройство, в ходе выполнения защищенной программы идентичность зависимых функций, выполнение которых вызвано первой выполняемой частью, восстанавливается посредством второй выполняемой части, а зависимые функции выполняются посредством второй выполняемой части, а в фазе использования:the first part of the object code of the protected program, and the first part of the object code is such that during the execution of the protected program run commands with renamed settings are executed, and the second part of the object code of the protected program containing operating tools that also use recovery tools, the second part of the object code such that after downloading to the device, during the execution of the protected program, the identity of the dependent functions, the execution of which is caused by the first executable portion executed by the second recovered portion and dependent functions performed by the second portion performed, and in the use phase:
в присутствии устройства, всякий раз, когда этого требует команда запуска с переименованными установочными параметрами, содержащаяся во фрагменте первой выполняемой части, восстанавливают в устройстве идентичность соответствующей зависящей функции и выполняют ее так, чтобы указанный фрагмент выполнялся корректно, и, следовательно, защищенная программа являлась полнофункциональной;in the presence of the device, whenever the start command with the renamed settings contained in the fragment of the first executable part requires it, restore the identity of the corresponding dependent function in the device and execute it so that the specified fragment executes correctly, and therefore the protected program is fully functional ;
тогда как при отсутствии устройства, несмотря на запрос фрагмента первой выполняемой части на запуск выполнения в устройстве зависящей функции, не обеспечивается возможность корректного ответа на указанный запрос, так что, по меньшей мере, указанный фрагмент не выполняется корректно, и, следовательно, защищенная программа не является полнофункциональной.whereas in the absence of a device, despite the request of a fragment of the first executable part to start the execution of a dependent function in the device, it is not possible to correctly respond to the specified request, so at least the specified fragment is not executed correctly, and therefore, the protected program does not is fully functional.
В соответствии с одним из вариантов реализации способа согласно изобретению в фазе защиты:In accordance with one embodiment of the method according to the invention in the protection phase:
определяют по меньшей мере для одной зависящей функции семейство зависящих функций, алгоритмически эквивалентных, но вызываемых командами запуска, переименованные установочные параметры которых являются различными;determining for at least one dependent function a family of dependent functions, algorithmically equivalent, but called by start commands, the renamed settings of which are different;
и модифицируют защищенную программу:and modify the protected program:
-7005465 посредством выбора в исходном коде защищенной программы по меньшей мере одной команды запуска с переименованными установочными параметрами, и посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы путем замены, по меньшей мере, переименованных установочных параметров команды запуска с выбранным набором установочных параметров на другие переименованные установочные параметры, что вызывает запуск зависящей функции из того же семейства.-7005465 by selecting at least one start command with renamed settings in the source code of the protected program and by modifying at least one selected piece of the protected program code by replacing at least the renamed settings of the start command with the selected set of settings by other renamed settings, which causes the start of a dependent function from the same family.
В соответствии с вариантом реализации способ согласно изобретению включает:According to an embodiment, the method according to the invention comprises:
в фазе защиты определение по меньшей мере для одной зависящей функции семейства алгоритмически эквивалентных зависящих функций путем сцепления поля шумов с информацией, определяющей ту функциональную часть зависящей функции, которая выполняется в устройстве, или путем использования поля идентификации инструкции и полей идентификации, предусмотренных для операнда.in the protection phase, determining for at least one dependent function a family of algorithmically equivalent dependent functions by linking the noise field with information defining the functional part of the dependent function that is performed in the device, or by using the instruction identification field and identification fields provided for the operand.
В соответствии с вариантом реализации способа согласно изобретению в фазе защиты определяют:In accordance with an embodiment of the method according to the invention, the following are determined in the protection phase:
в качестве метода переименования установочных параметров - метод кодирования для кодировки установочных параметров, и в качестве средств восстановления - средства, применяющие метод декодирования для раскодирования переименованных установочных параметров и восстановления идентичности зависимых функций, которые требуется выполнить в устройстве.as a method for renaming settings — the encoding method for encoding the settings, and as recovery tools — tools that use the decoding method to decode the renamed settings and restore the identity of the dependent functions that need to be performed on the device.
В соответствии с другой предпочтительной формой реализации способа согласно изобретению в фазе защиты:In accordance with another preferred form of implementing the method according to the invention in the protection phase:
модифицируют защищенную программу посредством выбора в исходном коде защищенной программы по меньшей мере одного условного перехода, выполняемого по меньшей мере в одном выбранном алгоритме, посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что в ходе выполнения защищенной программы функциональная возможность по меньшей мере одного выбранного условного перехода выполняется посредством второй выполняемой части, в устройстве, и посредством создания:modify the protected program by selecting at least one conditional transition performed in at least one selected algorithm in the source code of the protected program by modifying at least one selected fragment of the protected program code, said modification being such that, during the execution of the protected program, the functional the possibility of at least one selected conditional transition is performed by the second executable part, in the device, and by means of I have:
первой части объектного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы функциональная возможность по меньшей мере одного выбранного условного перехода выполняется в устройстве, и второй части объектного кода защищенной программы, причем вторая часть объектного кода такова, что после загрузки в устройство, в ходе выполнения защищенной программы реализуется вторая выполняемая часть, посредством которой выполняется функциональная возможность по меньшей мере одного выбранного условного перехода, а в фазе использования:the first part of the object code of the protected program, the first part of the object code being such that during the execution of the protected program the functionality of at least one selected conditional transition is executed in the device, and the second part of the object code of the protected program, the second part of the object code being such that after download to the device, during the execution of the protected program, the second executable part is implemented, through which the functionality of at least one choice annogo conditional jump, and in the use phase:
в присутствии устройства, всякий раз, когда этого требует фрагмент первой выполняемой части, выполняют в устройстве функции по меньшей мере одного выбранного условного перехода таким образом, чтобы указанный фрагмент выполнялся корректно, и, следовательно, защищенная программа являлась полнофункциональной;in the presence of the device, whenever a fragment of the first executable part requires it, at least one selected conditional transition is performed in the device in such a way that the fragment is executed correctly and, therefore, the protected program is fully functional;
а при отсутствии устройства, несмотря на запрос фрагмента первой выполняемой части на выполнение функций условного перехода в устройстве, не обеспечивается возможность корректного ответа на указанный запрос, так что, по меньшей мере, указанный фрагмент не выполняется корректно, и, следовательно, защищенная программа не является полнофункциональной.and in the absence of a device, despite a request for a fragment of the first executable part to perform conditional transition functions in the device, it is not possible to correctly answer the specified request, so at least the specified fragment is not executed correctly, and therefore, the protected program is not fully functional.
В соответствии со следующим вариантом осуществления способа согласно изобретению в фазе защиты модифицируют защищенную программу:According to a further embodiment of the method according to the invention, the protected program is modified in the protection phase:
посредством выбора в исходном коде защищенной программы по меньшей мере одной серии выбранных условных переходов, посредством модифицирования по меньшей мере одного выбранного фрагмента кода защищенной программы, причем указанная модификация такова, что в ходе выполнения защищенной программы глобальная функциональная возможность по меньшей мере одной выбранной серии условных переходов выполняется в устройстве посредством второй выполняемой части, и посредством создания:by selecting at least one series of selected conditional transitions in the source code of the protected program, by modifying at least one selected code fragment of the protected program, said modification being such that, during the execution of the protected program, the global functionality of at least one selected series of conditional transitions performed in the device by means of a second executable part, and by creating:
первой части объектного кода защищенной программы, причем первая часть объектного кода такова, что в ходе выполнения защищенной программы функциональная возможность по меньшей мере одной выбранной серии условных переходов выполняется в устройстве, и второй части объектного кода защищенной программы, причем вторая часть объектного кода такова, что после загрузки в устройство, в ходе выполнения защищенной программы реализуется вторая выполняемая часть, посредством которой выполняется глобальная функциональная возможность по меньшей мере одной выбранной серии условных переходов.the first part of the object code of the protected program, and the first part of the object code is such that during the execution of the protected program the functionality of at least one selected series of conditional jumps is performed in the device, and the second part of the object code of the protected program, and the second part of the object code is such that after downloading to the device, during the execution of the protected program, the second executable part is implemented, through which the global functionality of at least EPE one chosen series of conditional branches.
-8005465-8005465
Способ согласно изобретению позволяет также защитить использование программы путем применения устройства хранения, особенностью которого является способность содержать часть выполняемой программы. Отсюда следует, что всякая производная версия программы, которая попытается функционировать без устройства хранения, потребует воссоздания части программы, содержащейся в устройстве хранения в ходе выполнения. Как следствие эта производная версия программы не будет полнофункциональной.The method according to the invention also allows you to protect the use of the program by using a storage device, the feature of which is the ability to contain part of the program. It follows that any derivative version of a program that tries to function without a storage device will require the reconstruction of part of the program contained in the storage device during execution. As a result, this derivative version of the program will not be fully functional.
Краткое описание чертежейBrief Description of the Drawings
Другие различные свойства изобретения станут ясны из нижеследующего описания, приводимого со ссылкой на прилагаемые чертежи, на которых показаны, в качестве не исчерпывающих примеров, возможные варианты и формы реализации и использования изобретения.Other various features of the invention will become apparent from the following description, given with reference to the accompanying drawings, which show, by way of non-exhaustive examples, possible variations and forms of realization and use of the invention.
Фиг. 10 и 11 представляют собой функциональные блок-схемы, иллюстрирующие различные представления программы, соответственно незащищенной и защищенной способом согласно изобретению.FIG. 10 and 11 are functional block diagrams illustrating various representations of a program, respectively, insecure and secure in accordance with the invention.
На фиг. 20-22 приведены в качестве примеров различные формы выполнения устройства для осуществления способа по изобретению.In FIG. 20-22 are shown as examples of various forms of execution of the device for implementing the method according to the invention.
Фиг. 30 и 31 представляют собой функциональные блок-схемы, поясняющие общий принцип способа согласно изобретению.FIG. 30 and 31 are functional block diagrams explaining the general principle of the method according to the invention.
Фиг. 40-43 представляют собой схемы, иллюстрирующие способ реализующий принцип защиты при помощи переменной.FIG. 40-43 are diagrams illustrating a method that implements the principle of protection with a variable.
Фиг. 50-54 представляют собой схемы, иллюстрирующие способ реализующий принцип защиты при помощи временного разделения.FIG. 50-54 are diagrams illustrating a method that implements the principle of protection using time division.
Фиг. 60-64 представляют собой схемы, иллюстрирующие способ реализующий принцип защиты при помощи элементарных функций.FIG. 60-64 are diagrams illustrating a method that implements the principle of protection using elementary functions.
Фиг. 70-74 представляют собой схемы, иллюстрирующие способ реализующий принцип защиты при помощи детектирования и принуждения.FIG. 70-74 are diagrams illustrating a method that implements the principle of protection through detection and coercion.
Фиг. 80-85 представляют собой схемы, иллюстрирующие способ защиты реализующий принцип защиты при помощи переименования.FIG. 80-85 are diagrams illustrating a protection method that implements the principle of protection by renaming.
Фиг. 90-92 представляют собой схемы, иллюстрирующие способ защиты реализующий принцип защиты при помощи условного перехода.FIG. 90-92 are diagrams illustrating a method of protection that implements the principle of protection using conditional branching.
Фиг. 100 представляет собой схему, иллюстрирующую различные фазы осуществления изобрете защиты защиты защиты защиты согласно согласно согласно согласно согласно согласно изобретению, изобретению, изобретению, изобретению, изобретению, изобретению, ния.FIG. 100 is a diagram illustrating various phases of the invention of the protection of the protection of the protection of the protection according to according to according to according to according to the invention, invention, invention, invention, invention, invention.
На фиг. 110 приведен пример реализации системы, позволяющей реализовать стадию построения фазы защиты согласно изобретению.In FIG. 110 shows an example implementation of a system that allows you to implement the stage of construction of the protection phase according to the invention.
На фиг. 120 приведен пример реализации устройства предперсонализации, используемого в способе защиты согласно изобретению.In FIG. 120 shows an example implementation of a pre-personalization device used in the protection method according to the invention.
На фиг. 130 приведен пример реализации системы, позволяющей осуществить стадию изготовления средств для фазы защиты согласно изобретению.In FIG. 130 shows an example implementation of a system that allows the implementation of the step of manufacturing the means for the protection phase according to the invention.
На фиг. 140 приведен пример реализации системы, позволяющей применить способ защиты согласно изобретению.In FIG. 140 shows an example implementation of a system that allows you to apply the protection method according to the invention.
На фиг. 150 приведен пример реализации устройства персонализации, используемого в способе защиты согласно изобретению.In FIG. 150 is an example implementation of a personalization device used in the security method of the invention.
Осуществление изобретенияThe implementation of the invention
В дальнейшем описании используются следующие определения:In the following description, the following definitions are used:
• Система 3 обработки данных - система, способная выполнять программу.• Data processing system 3 is a system capable of executing a program.
• Устройство хранения - устройство, способное получать данные, передаваемые системой 3 обработки данных, размещать данные и возвращать их по запросу системы 3 обработки данных.• Storage device - a device capable of receiving data transmitted by data processing system 3, placing data and returning it upon request of data processing system 3.
Устройство обработки и хранения - устройство, способное • получать данные, передаваемые системой 3 обработки данных, • возвращать данные системе 3 обработки данных, • хранить данные в тайне, по меньшей мере, частично, и сохранять, по меньшей мере, их часть даже в случае, когда устройство отключено от питания, • и осуществлять алгоритмическую обработку данных, причем данная обработка частично или полностью является секретной.A processing and storage device is a device capable of: • receiving data transmitted by a data processing system 3, • returning data to a data processing system 3, • storing data in secret, at least partially, and preserving at least part of it even when the device is disconnected from the power, and • perform algorithmic data processing, and this processing is partially or completely secret.
• Устройство 6 - устройство хранения или устройство обработки и хранения, реализующее способ согласно изобретению.• Device 6 - a storage device or a processing and storage device that implements the method according to the invention.
• Незадействованное устройство 60 есть устройство, которое не использует способ согласно изобретению, но которое может получить информацию, превращающую его в устройство 6.• An idle device 60 is a device that does not use the method according to the invention, but which can receive information turning it into device 6.
• Незадействованное устройство 60 может стать устройством 6 во время выполнения программы, защищенной способом согласно изобретению, и после выполнения вновь стать незадействованным устройством 60.• An idle device 60 may become a device 6 during execution of a program protected by the method according to the invention, and after execution again become an idle device 60.
• Предперсонализированное устройство 66 представляет собой незадействованное устройство 60, получившее часть информации, которая позволяет ему, после получения дополнительной информации, быть преобразованным в устройство 6.• The pre-personalized device 66 is an idle device 60 that has received a piece of information that allows it, after receiving additional information, to be converted to device 6.
-9005465 • Загрузка данных в незадействованное устройство 60 или в предперсонализированное устройство 66 соответствует передаче информации в незадействованное устройство 60 или в предперсонализированное устройство 66 и хранению указанных переданных данных. Передача информации может включать в себя изменение ее формата.-9005465 • Downloading data to an idle device 60 or to a pre-personalized device 66 corresponds to transferring information to an idle device 60 or to a pre-personalized device 66 and storing the specified transmitted data. The transmission of information may include changing its format.
• Переменная, величина или функция, содержащиеся в системе 3 обработки данных, обозначаются в дальнейшем заглавными буквами, а переменная, величина или функция, содержащиеся в устройстве 6, обозначаются в дальнейшем строчными буквами.• A variable, quantity or function contained in the data processing system 3 is hereinafter indicated in capital letters, and a variable, quantity or function contained in the device 6 is hereinafter indicated in lowercase letters.
• Защищенная программа - программа, которая была защищена, по меньшей мере, на основе одного принципа защиты, реализованного в способе согласно изобретению.• A protected program is a program that has been protected based on at least one security principle implemented in the method according to the invention.
• Уязвимая программа - программа, которая не была защищена никаким из принципов защиты, реализованных в способе согласно изобретению.• Vulnerable program - a program that has not been protected by any of the protection principles implemented in the method according to the invention.
• В случае, когда различие между уязвимой и защищенной программой несущественно, применяется термин программа.• When the distinction between a vulnerable and a protected program is not significant, the term program is used.
• Программа может быть представлена в различной форме в соответствии с моментом ее жизненного цикла, т.е., как:• The program can be presented in various forms in accordance with the moment of its life cycle, ie, as:
исходный код, объектный код, дистрибутив, динамическое представление.source code, object code, distribution, dynamic representation.
• Представление программы в виде исходного кода понимается как представление, дающее после преобразования представление в виде объектного кода. Представление в виде исходного кода может представляться на различных уровнях, от абстрактного концептуального уровня до уровня, непосредственно выполняемого системой обработки данных или устройством обработки и хранения.• Representation of a program in the form of source code is understood as a representation that, after conversion, gives a representation in the form of object code. Presentation in the form of source code can be represented at various levels, from the abstract conceptual level to the level directly performed by the data processing system or processing and storage device.
• Объектное представление программы (представление на уровне объектного кода) отвечает уровню представления, на котором программа, после переноса в дистрибутив и последующей загрузки в систему обработки данных или устройство обработки и хранения, может быть выполнена. Это может быть, например, двоичный код, интерпретируемый код и т.п.• The object representation of the program (representation at the level of the object code) corresponds to the level of representation at which the program, after being transferred to the distribution kit and then loaded into the data processing system or processing and storage device, can be executed. This can be, for example, binary code, interpreted code, etc.
•Дистрибутив есть физический или виртуальный носитель, содержащий объектное представление, причем этот дистрибутив должен быть предоставлен в распоряжение пользователя, чтобы позволить ему использовать программу.• A distribution is a physical or virtual medium containing an object representation, and this distribution must be made available to the user in order to allow him to use the program.
•Динамическое представление соответствует выполнению программы с дистрибутива.• The dynamic view corresponds to the execution of the program from the distribution.
•Фрагмент программы отвечает какой-либо ее части и может, например, соответствовать одной или нескольким инструкциям (последовательным или нет) и/или одному или нескольким функциональным блокам (последовательным или нет), и/или одной или нескольким функциям, и/или одной или нескольким подпрограммам, и/или одному или нескольким модулям. Фрагмент программы может соответствовать и всей программе полностью.• A program fragment corresponds to any part of it and may, for example, correspond to one or more instructions (sequential or not) and / or one or more function blocks (sequential or not), and / or one or more functions, and / or one or several subprograms, and / or one or more modules. A fragment of the program can correspond to the entire program completely.
На фиг. 10 и 11 приведены различные представления соответственно уязвимой программы 2ν в общем виде и программы 2р, защищенной согласно изобретению.In FIG. 10 and 11 show various representations of respectively vulnerable program 2ν in general form and program 2p protected according to the invention.
На фиг. 10 приведены различные представления уязвимой программы 2ν, появляющиеся в ходе ее жизненного цикла. Уязвимая программа 2ν может появляться в одном из различных видов, т.е., как:In FIG. Figure 10 shows various representations of the vulnerable 2ν program that appear during its life cycle. The vulnerable 2ν program can appear in one of various forms, i.e., as:
исходный код 2ν§;source code 2ν§;
объектный код 2νο;object code 2νο;
дистрибутив 2νά, который может предоставляться обычно на физическом носителе, например, на компакт-диске, или в виде файлов, передаваемых по сети (по стандарту С8М, по сети Интернет и т.п.);2νά distribution, which can usually be provided on physical media, for example, on a CD, or in the form of files transmitted over the network (according to the C8M standard, over the Internet, etc.);
в виде динамического представления 2ус. соответствующего выполнению уязвимой программы 2ν в системе 3 обработки данных любых известных типов, которые в классическом случае содержат по меньшей мере один процессор 4.in the form of a dynamic representation of 2us. corresponding to the execution of the vulnerable program 2ν in the data processing system 3 of any known types, which in the classical case contain at least one processor 4.
Фиг. 11 иллюстрирует различные представления защищенной программы 2р, появляющиеся в ходе ее жизненного цикла. Защищенная программа 2р может также появляться в виде • исходного кода (представления) 2р§, содержащего первую часть исходного кода, предназначенную для системы 3 обработки данных, и, возможно, вторую часть исходного кода, предназначенную для устройства 6, причем часть этих частей исходного кода может обычно содержаться в общих файлах;FIG. 11 illustrates various representations of a secure 2p program appearing during its life cycle. A protected 2p program may also appear in the form of a • source code (view) 2p§ containing the first part of the source code for the data processing system 3, and possibly the second part of the source code for the device 6, and some of these parts of the source code can usually be contained in shared files;
• объектного представления 2ро, содержащего первую часть 2ро§ объектного кода, предназначенную для системы 3 обработки данных, и, возможно, вторую часть 2рои объектного кода, предназначенную для устройства 6;• an object representation of 2po containing the first part 2po§ of the object code, intended for the data processing system 3, and, possibly, the second part of the 2poi object code, intended for the device 6;
• дистрибутива 2рб, содержащего:• 2rb distribution kit containing:
• первую часть 2рб§ дистрибутива, содержащую первую часть 2ро§ объектного кода, причем эта первая часть 2рб§ дистрибутива предназначена для системы 3 обработки данных и может быть представлена обычно в форме дистрибутива на физическом носителе, например на компакт-диске, или в виде файлов, передаваемых по сети (по стандарту С8М, по сети Интернет и т.п.), • и вторую часть 2рби дистрибутива, представленного в виде по меньшей мере одного незадействованного устройства 60,• the first part of 2rb§ of the distribution package containing the first part of 2rb§ of the object code, and this first part of 2rb§ of the distribution package is intended for the data processing system 3 and can usually be presented in the form of a distribution package on physical media, such as a CD, or in the form of files transmitted over the network (according to the C8M standard, over the Internet, etc.), and • the second part of the 2rbi distribution, presented in the form of at least one idle device 60,
-10005465 или по меньшей мере одного предперсонализированного устройства 66, в которое была загружена часть второй части 2рои объектного кода и для которого пользователь должен завершить персонализацию путем загрузки дополнительной информации, чтобы получить устройство 6, причем эта дополнительная информация может поступать, например, путем загрузки или передачи по сети, или по меньшей мере одного устройства 6, в которое была загружена вторая часть 2рои объектного кода;-10005465 or at least one pre-personalized device 66 into which a part of the second part of the object code part 2 has been downloaded and for which the user must complete personalization by downloading additional information to obtain device 6, this additional information can be obtained, for example, by downloading or transmitting over the network, or at least one device 6, into which the second part 2 of the object code has been downloaded;
или в виде динамического представления 2ре, соответствующего выполнению защищенной программы 2р. Это динамическое представление 2ре содержит первую выполняемую часть 2рс5. которая выполняется в системе 3 обработки данных, и вторую выполняемую часть 2реи, которая выполняется в устройстве 6.or in the form of a dynamic 2p representation corresponding to the execution of a 2p protected program. This dynamic representation of 2p contains the first executable part of 2pc5. which runs in the data processing system 3, and a second run part 2, which runs in the device 6.
В случае, когда различие между различными представлениями защищенной программы 2р несущественно, используются выражения первая часть защищенной программы и вторая часть защищенной программы.In the case where the difference between the various representations of the protected program 2p is not significant, the expressions the first part of the protected program and the second part of the protected program are used.
Реализация способа согласно изобретению в соответствии с динамическим представлением, проиллюстрированным на фиг. 11, использует устройство 1р защиты, содержащее систему 3 обработки данных, связанную линией 5 связи с устройством 6. Система 3 обработки данных может быть любого типа и содержит в обычном варианте по меньшей мере один процессор 4. Система 3 обработки данных может быть компьютером или быть частью, например, различных машин, устройств, стационарных или подвижных изделий, в том числе любых транспортных средств. Линия 5 связи может быть осуществлена любым возможным способом, например, по линии последовательной передачи, по шине И8В, по радио, по оптическому каналу, по сети или через прямое электрическое соединение со схемой системы 3 обработки данных и т.п. Следует отметить, что устройство 6 может физически находиться внутри той же интегральной схемы, что и процессор 4 системы 3 обработки данных. В этом случае устройство 6 может рассматриваться как сопроцессор по отношению к процессору 4 системы обработки данных, а линия 5 связи является внутренней линией связи в интегральной схеме.The implementation of the method according to the invention in accordance with the dynamic representation illustrated in FIG. 11 uses a protection device 1p comprising a data processing system 3 connected by a communication line 5 to the device 6. The data processing system 3 may be of any type and typically comprises at least one processor 4. The data processing system 3 may be a computer or be part, for example, of various machines, devices, stationary or movable products, including any vehicles. The communication line 5 can be implemented in any possible way, for example, via a serial transmission line, via an I8V bus, by radio, by an optical channel, by a network, or through a direct electrical connection to a circuit of a data processing system 3, etc. It should be noted that the device 6 may be physically located inside the same integrated circuit as the processor 4 of the data processing system 3. In this case, the device 6 can be considered as a coprocessor with respect to the processor 4 of the data processing system, and the communication line 5 is an internal communication line in the integrated circuit.
На фиг. 20-22 приведены в качестве примеров, которые не исчерпывают возможные варианты, различные формы реализации устройства 1р защиты, позволяющего реализовать способ защиты, соответствующий изобретению.In FIG. 20-22 are given as examples that do not exhaust the possible options, various forms of implementation of the protection device 1p, allowing to implement the protection method corresponding to the invention.
В примере реализации по фиг. 20 устройство 1р защиты содержит, в качестве системы 3 обработки данных, компьютер и, в качестве устройства 6, карту 7 с микрочипом и ее интерфейс 8, обычно называемый устройством чтения карт. Компьютер 3 связан с устройством 6 посредством линии 5 связи. В ходе выполнения защищенной программы 2р первая выполняемая часть 2ре§, которая выполняется в системе 3 обработки данных, и вторая выполняемая часть 2реи, которая выполняется в карте 7 с микрочипом и в ее интерфейсе 8, должны быть функциональными, чтобы защищенная программа 2р была полнофункциональна.In the embodiment of FIG. 20, the protection device 1p comprises, as a data processing system 3, a computer and, as a device 6, a microchip card 7 and its interface 8, commonly referred to as a card reader. Computer 3 is connected to device 6 via communication line 5. During the execution of the protected program 2p, the first executable part 2p§, which is executed in the data processing system 3, and the second executable part 2pree, which is executed on the microchip card 7 and in its interface 8, must be functional so that the protected program 2p is fully functional.
В примере реализации по фиг. 21 устройство 1р защиты содержится в изделии 9 общего вида, содержащем различные органы 10, адаптированные к функции или к функциям, реализуемым таким изделием 9. Устройство 1р защиты содержит, с одной стороны, систему 3 обработки данных, встроенную в изделие 9, и, с другой стороны, устройство 6, связанное с изделием 9. Чтобы изделие 9 было полнофункциональным, защищенная программа 2р должна быть полностью функциональной. Так, в ходе выполнения защищенной программы 2р и первая выполняемая часть 2ре§, которая выполняется в системе 3 обработки данных, и вторая выполняемая часть 2реи, которая выполняется в устройстве 6, должны быть работоспособны. Эта защищенная программа 2р позволяет, следовательно, непрямым образом защитить от неавторизованного использования изделие 9 или одну из его функциональных возможностей. Изделие 9 может быть, например, установкой, системой, машиной, игрушкой, электробытовым прибором, телефоном.In the embodiment of FIG. 21, the protection device 1p is contained in the general product 9, containing various organs 10 adapted to the function or functions realized by such product 9. The protection device 1p contains, on the one hand, a data processing system 3 integrated in the product 9, and, with on the other hand, the device 6 associated with the product 9. For the product 9 to be fully functional, the secure program 2p must be fully functional. So, during the execution of the protected program 2p, both the first executable part 2re§, which is executed in the data processing system 3, and the second executable part 2rea, which is executed on the device 6, must be operational. This secure 2p program, therefore, indirectly protects the product 9 or one of its functionality from unauthorized use. The product 9 may be, for example, an installation, system, machine, toy, household appliance, telephone.
В примере реализации по фиг. 22 устройство 1р защиты содержит множество компьютеров, а также часть коммуникационной сети. Система 3 обработки данных представляет собой первый компьютер, связанный посредством линии 5 связи сетевого типа с устройством 6, которое представляет собой второй компьютер. Для реализации изобретения второй компьютер 6 используется как сервер лицензий для защищенной программы 2р. В ходе выполнения защищенной программы 2р и первая выполняемая часть 2ре§, которая выполняется в первом компьютере 3, и вторая выполняемая часть 2реи, которая выполняется во втором компьютере 6, должны быть функциональными, чтобы защищенная программа 2р была полнофункциональна.In the embodiment of FIG. 22, the protection device 1p comprises a plurality of computers, as well as part of a communication network. The data processing system 3 is a first computer connected via a network type communication line 5 to a device 6, which is a second computer. To implement the invention, the second computer 6 is used as a license server for a secure 2p program. During the execution of the protected program 2p, the first executable part 2p§, which is executed in the first computer 3, and the second executable part 2pree, which is executed in the second computer 6, must be functional so that the protected program 2p is fully functional.
Фиг. 30 позволяет пояснить более точно способ защиты согласно изобретению. Следует отметить, что уязвимая программа 2ν рассматривается как выполняемая полностью в системе 3 обработки данных. Напротив, в случае реализации защищенной программы 2р система 3 обработки данных содержит средства 12 передачи, связанные линией 5 связи со средствами 13 передачи, составляющими часть устройства 6, что позволяет сообщаться между собой первой выполняемой части 2ре§ и второй выполняемой части 2реи защищенной программы 2р.FIG. 30 makes it possible to explain more precisely the protection method according to the invention. It should be noted that the vulnerable program 2ν is considered to be executed completely in the data processing system 3. On the contrary, in the case of the implementation of the protected program 2p, the data processing system 3 comprises transmission means 12 connected by a communication line 5 to the transmission means 13 constituting a part of the device 6, which allows the first executable part 2р§ and the second executable part 2rea of the protected program 2p to communicate with each other.
Следует иметь в виду, что средства 12, 13 передачи реализованы программно или материально и способны обеспечить и, возможно, оптимизировать передачу данных между системой 3 обработки данIt should be borne in mind that the transmission means 12, 13 are implemented programmatically or financially and are able to provide and, possibly, optimize data transfer between the data processing system 3
-11005465 ных и устройством 6. Эти средства 12, 13 передачи приспособлены для того, чтобы позволить воспользоваться защищенной программой 2р, которая является предпочтительно независимой от типа применяемой линии 5 связи. Эти средства 12, 13 передачи не относятся к предмету изобретения и не описываются более детально, так как они хорошо известны специалистам. Первая часть защищенной программы 2р содержит команды. В ходе выполнения защищенной программы 2р выполнение этих команд первой выполняемой частью 2ре§ позволяет осуществить связь между первой выполняемой частью 2ре§ и второй выполняемой частью 2реи. В дальнейшем описании эти команды представлены в виде ΙΝ, ОИТ или ТКЮ.-11005465 and device 6. These transmission means 12, 13 are adapted to allow the use of a secure program 2p, which is preferably independent of the type of communication line 5 used. These transmission means 12, 13 are not the subject of the invention and are not described in more detail, since they are well known in the art. The first part of the 2p protected program contains commands. During the execution of the protected program 2p, the execution of these commands by the first executable part 2Р§ allows communication between the first executable part 2Р§ and the second executable part 2Рё. In the further description, these commands are presented in the form of ИТ, ICU or TJC.
Как показано на фиг. 31, чтобы позволить реализацию второй выполняемой части 2реи защищенной программы 2р, устройство 6 содержит средства 14 защиты. В случае если устройство 6 является запоминающим устройством, средства 14 защиты содержат средства 15 запоминания. В случае если устройство 6 является устройством обработки и хранения, средства 14 защиты содержат средства 15 запоминания и средства 16 обработки.As shown in FIG. 31, in order to enable the implementation of the second executable part 2 of the protected program 2p, the device 6 comprises security means 14. If the device 6 is a storage device, the means of protection 14 contain a means of 15 storage. If the device 6 is a processing and storage device, the means of protection 14 contain means 15 of storage and means 16 of the processing.
Для упрощения дальнейшего описания будем считать, что в ходе выполнения защищенной программы 2р устройство 6 присутствует или устройство 6 отсутствует. В действительности, устройство 6 в том случае, когда содержит средства 14 защиты, не приспособленные к выполнению второй выполняемой части 2реи защищенной программы 2р, также рассматривается как отсутствующее каждый раз, когда выполнение защищенной программы 2р не является корректным.To simplify the further description, we assume that during the execution of the protected program 2p, device 6 is present or device 6 is absent. In fact, the device 6, in the case when it contains means of protection 14 that are not adapted to the execution of the second executable part 2 of the protected program 2p, is also considered absent every time the execution of the protected program 2p is not correct.
Иными словами:In other words:
устройство 6, физически присутствующее и содержащее средства 14 защиты, приспособленные к выполнению второй выполняемой части 2реи защищенной программы 2р, всегда рассматривается как присутствующее;a device 6, physically present and containing protection means 14 adapted to execute the second executable part 2 of the protected program 2 p, is always considered to be present;
устройство 6, физически присутствующее, но содержащее неприспособленные средства 14 защиты, то есть не позволяющие осуществить корректную реализацию второй выполняемой части 2реи защищенной программы 2р, рассматривается как присутствующее, если оно функционирует корректно, и как отсутствующее, если оно не функционирует корректно;a device 6 that is physically present, but containing unsuitable means of protection 14, that is, which does not allow the correct implementation of the second run part 2 of the protected program 2p, is considered as present if it functions correctly, and as absent if it does not function correctly;
устройство 6, физически отсутствующее, всегда рассматривается как отсутствующее.device 6, physically absent, is always considered as absent.
В случае если устройство 6 состоит из карты 7 с микрочипом и ее интерфейса 8, средства 13 передачи разделяются на две части, из которых одна находится на интерфейсе 8, а другая - на карте 7 с микрочипом. В этом примере реализации отсутствие карты 7 с микрочипом рассматривается как эквивалент отсутствия устройства 6. Иными словами, в отсутствие карты 7 с микрочипом и/или ее интерфейса 8 средства 14 защиты недоступны и, следовательно, не позволяют осуществить выполнение второй выполняемой части 2реи защищенной программы, так что защищенная программа 2р не является полнофункциональной.If the device 6 consists of a card 7 with a microchip and its interface 8, the transmission means 13 is divided into two parts, one of which is on the interface 8, and the other on the card 7 with a microchip. In this implementation example, the absence of a card 7 with a microchip is considered the equivalent of the absence of the device 6. In other words, in the absence of a card 7 with a microchip and / or its interface 8, the security means 14 are unavailable and, therefore, do not allow the second executable part 2 of the protected program to be executed, so the protected 2p program is not fully functional.
Согласно изобретению, способ защиты направлен на реализацию так называемого принципа защиты при помощи переменной, описание которого дано со ссылкой на фиг. 40-43.According to the invention, the protection method is aimed at implementing the so-called principle of protection using a variable, the description of which is given with reference to FIG. 40-43.
Для реализации принципа защиты при помощи переменной в исходном коде 2ν§ уязвимой программы выбирается по меньшей мере одна переменная, которая в ходе выполнения уязвимой программы 2ν частично определяет ее состояние. Под состоянием программы понимается совокупность информации, на данный момент необходимой для полного выполнения этой программы. Таким образом, отсутствие указанной выбранной переменной препятствует полному выполнению этой программы.To implement the protection principle with the help of a variable in the source code 2ν§ of the vulnerable program, at least one variable is selected, which during the execution of the vulnerable program 2ν partially determines its state. Under the state of the program refers to the totality of information currently necessary for the full implementation of this program. Thus, the absence of the specified selected variable prevents the full execution of this program.
Выбирается также по меньшей мере один фрагмент исходного кода 2ν§ уязвимой программы, содержащий по меньшей мере одну выбранную переменную.At least one piece of source code 2ν§ of the vulnerable program containing at least one selected variable is also selected.
По меньшей мере один выбранный фрагмент кода 2ν§ уязвимой программы в этом случае модифицируется, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что в ходе выполнения защищенной программы 2р по меньшей мере один фрагмент первой выполняемой части 2ре§, который выполняется в системе 3 обработки данных, учитывает, что по меньшей мере одна выбранная переменная или по меньшей мере одна копия выбранной переменной находится в устройстве 6. Для реализации принципа защиты при помощи переменной устройство 6 содержит, по меньшей мере, средства 15 запоминания.At least one selected piece of code 2ν§ of the vulnerable program in this case is modified to obtain the source code 2р§ of the protected program. This modification is such that during the execution of the protected program 2p, at least one fragment of the first executable part 2p§, which is executed in the data processing system 3, takes into account that at least one selected variable or at least one copy of the selected variable is in the device 6. To implement the protection principle with a variable, device 6 comprises at least storage means 15.
На фиг. 40 приведен пример представления уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных имеют место:In FIG. 40 shows an example of the representation of the vulnerable 2ν program. In this example, during the execution of the vulnerable program 2ν in the data processing system 3, there are:
• в момент 11 присвоение значения Х переменной что представлено как ν1 ^Х;• at the moment 1 1 assignment of the value of X to the variable which is represented as ν 1 ^ X;
• в момент ΐ2 присвоение значения переменной VI переменной Υ, что представлено как Υ ν1;• at time ΐ 2, assigning the value of the variable VI to the variable Υ, which is represented as Υ ν 1 ;
• в момент 13 присвоение значения переменной VI переменной Ζ, что представлено как Ζ VI.• at the moment 1 3 assignment of the value of the variable VI to the variable Ζ, which is represented as Ζ VI.
На фиг. 41 приведен пример первой формы реализации изобретения, для которой переменная находится в устройстве 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р в присутствии устройства 6 осуществляются:In FIG. 41 is an example of a first embodiment of the invention for which a variable is located in device 6. In this example, during execution in the data processing system 3 of the first executable part 2р§ of the protected program 2p in the presence of device 6, the following are carried out:
• в момент ΐΐ выполнение команды передачи, вызывающее передачу данного Х от системы 3 обработки данных к переменной νμ расположенной в средствах 15 запоминания устройства 6, причем эта• at the moment ΐΐ the execution of the transfer command, causing the transfer of this X from the data processing system 3 to the variable νμ located in the means 15 of the storage device 6, and this
-12005465 команда передачи представлена как ΘυΤ(νι, X) и соответствует по завершении присвоению значения Х переменной ν1;-12005465 the transfer command is represented as ΘυΤ (νι, X) and corresponds upon completion of the assignment of the value X to the variable ν 1 ;
• в момент ΐ2 выполнение команды передачи, вызывающее передачу значения переменной ν1, находящейся в устройстве 6, системе 3 обработки данных, чтобы присвоить ее значение переменной Υ, причем эта команда передачи представлена, как ΙΝ(ν1) и соответствует по завершении присвоению значения νί переменной Υ;• at time ΐ 2, the execution of the transfer command, causing the transfer of the value of the variable ν 1 located in the device 6, to the data processing system 3 to assign its value to the variable Υ, and this transfer command is presented as ΙΝ (ν 1 ) and corresponds to the assignment upon completion the values ν ί of the variable Υ;
• в момент ΐ3 выполнение команды передачи, вызывающее передачу значения переменной ν1, находящейся в устройстве 6, системе 3 обработки данных, чтобы присвоить ее значение переменной Ζ, причем эта команда передачи представлена как ΙΝ(ν1) и соответствует по завершении присвоению значения ν1 переменной Ζ.• at time ΐ 3, the execution of the transfer command, causing the transfer of the value of the variable ν 1 located in the device 6, to the data processing system 3, to assign its value to the variable причем, and this transfer command is represented as ΙΝ (ν 1 ) and corresponds to the completion of the value assignment ν 1 of the variable Ζ.
Следует отметить, что в ходе выполнения защищенной программы 2р по меньшей мере одна переменная находится в устройстве 6. Так, когда этого требует часть первой выполняемой части 2ре§ защищенной программы 2р, в присутствии устройства 6, значение этой переменной, находящейся в устройстве 6, передается системе 3 обработки данных, чтобы быть использованной первой выполняемой частью 2ре§ защищенной программы 2р таким образом, чтобы эта часть выполнялась корректно, и, следовательно, защищенная программа 2р являлась полнофункциональной.It should be noted that during the execution of the protected program 2p, at least one variable is located in the device 6. So, when it is required by the part of the first executable part 2Р§ of the protected program 2p, in the presence of the device 6, the value of this variable located in the device 6 is transmitted data processing system 3, in order to be used by the first executable part 2p§ of the protected program 2p so that this part is executed correctly, and therefore, the protected program 2p is fully functional.
На фиг. 42 приведен пример второй формы реализации изобретения, для которой копия переменной находится в устройстве 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р в присутствии устройства 6 осуществляются:In FIG. 42 is an example of a second embodiment of the invention for which a copy of the variable is located in device 6. In this example, during the execution in the data processing system 3 of the first executable part 2р§ of the protected program 2p in the presence of device 6, the following are performed:
• в момент ΐ1 присвоение значения Х переменной ν1, находящейся в системе 3 обработки данных, а также выполнение команды передачи, вызывающее передачу данного Х от системы 3 обработки данных к переменной ν1, расположенной в средствах 15 запоминания устройства 6, причем эта команда передачи представлена как 0υΤ(ν1, X);• at time ΐ 1, the assignment of the value X to the variable ν 1 located in the data processing system 3, as well as the execution of a transfer command, causing the transfer of this X from the data processing system 3 to the variable ν 1 located in the means 15 of the storage device 6, this command the transmission is represented as 0υΤ (ν 1 , X);
• в момент ΐ2 - присвоение значения переменной ν1 переменной Υ;• at the moment ΐ 2 - assignment of the value of the variable ν 1 to the variable Υ;
• в момент ΐ3 - выполнение команды передачи, вызывающее передачу значения переменной ν1, находящейся в устройстве 6, системе 3 обработки данных, чтобы присвоить ее значение переменной Ζ, причем эта команда передачи представлена как ΙΝ(ν1).• at the moment ΐ 3 - execution of the transfer command, causing the transfer of the value of the variable ν 1 located in the device 6 to the data processing system 3 to assign its value to the variable Ζ, and this transfer command is represented as как (ν1).
Следует отметить, что в ходе выполнения защищенной программы 2р по меньшей мере одна копия одной переменной находится в устройстве 6.It should be noted that during the execution of the protected program 2p, at least one copy of one variable is located in device 6.
Так, когда этого требует часть первой выполняемой части 2ре§ защищенной программы 2р, в присутствии устройства 6, значение этой копии переменной, находящейся в устройстве 6, передается системе 3 обработки данных, чтобы быть использованной первой выполняемой частью 2ре§ защищенной программы 2р таким образом, чтобы эта часть выполнялась корректно и, следовательно, защищенная программа 2р являлась полнофункциональной.So, when the part of the first executable part 2Р§ of the protected program 2Р, in the presence of the device 6 requires it, the value of this copy of the variable located in the device 6 is transmitted to the data processing system 3 to be used by the first executable part 2Р§ of the protected program 2Р thus so that this part is executed correctly and, therefore, the protected 2p program is fully functional.
На фиг. 43 приведен пример попытки выполнения защищенной программы 2р при отсутствии устройства 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р:In FIG. 43 is an example of an attempt to execute a protected program 2p in the absence of device 6. In this example, during the execution in the data processing system 3 of the first executable part 2p§ of the protected program 2p:
• в момент ΐ1 выполнение команды передачи 0υΤ (ν1, X) не может вызвать передачу данного Х переменной ν1, учитывая отсутствие устройства 6;• at time ΐ 1, the execution of the transfer command 0υΤ (ν 1 , X) cannot cause the transfer of this X variable ν 1 , given the absence of device 6;
• в момент ΐ2 выполнение команды передачи ΙΝ (ν1) не может вызвать передачу значения переменной ν1 системе 3 обработки данных, учитывая отсутствие устройства 6;• at time ΐ 2, the execution of the transfer command ΙΝ (ν 1 ) cannot cause the value of the variable ν1 to be transmitted to the data processing system 3, given the absence of device 6;
• в момент ΐ3 выполнение команды передачи ΙΝ(ν1) не может вызвать передачу значения переменной ν1 системе 3 обработки данных, учитывая отсутствие устройства 6.• at the moment ΐ 3, the execution of the transfer command ΙΝ (ν 1 ) cannot cause the transfer of the value of the variable ν1 to the data processing system 3, given the absence of device 6.
Таким образом, представляется, что в отсутствие устройства 6 по меньшей мере один запрос одного фрагмента первой выполняемой части 2ре§ на использование переменной или копии переменной, находящейся в устройстве 6, не может быть корректно выполнен, так что, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной.Thus, it seems that in the absence of device 6, at least one request for one fragment of the first executable part 2р§ to use a variable or a copy of a variable located in device 6 cannot be correctly executed, so at least this part does not runs correctly, and therefore, the 2p protected program is not fully functional.
Следует отметить, что процессы передачи данных между системой 3 обработки данных и устройством 6 используют только простые присвоения (что проиллюстрировано на вышеприведенных примерах). Однако специалист сможет скомбинировать их с другими операциями, чтобы получить сложные операции, например, 0υΤ(ν1, 2*Х+3) или Ζ (5*ν1 + ν2).It should be noted that the data transfer processes between the data processing system 3 and the device 6 use only simple assignments (as illustrated in the above examples). However, the specialist will be able to combine them with other operations to obtain complex operations, for example, 0υΤ (ν 1 , 2 * X + 3) or Ζ (5 * ν 1 + ν 2 ).
Согласно другой предпочтительной характеристике изобретения способ защиты ориентирован на реализацию принципа защиты, названного разделение во времени, описание которого выполнено со ссылкой на фиг. 50-54.According to another preferred characteristic of the invention, the protection method is oriented towards the implementation of the protection principle, called time division, described with reference to FIG. 50-54.
Для реализации принципа защиты путем разделения во времени в исходном коде 2ν§ уязвимой программы выбирается по меньшей мере один алгоритм, использующий по меньшей мере один операнд и выдающий по меньшей мере один результат. Выбирается также по меньшей мере один фрагмент исходного кода 2у5 уязвимой программы, содержащий по меньшей мере один выбранный алгоритм.To implement the protection principle by dividing in time in the source code 2ν§ of the vulnerable program at least one algorithm is selected that uses at least one operand and produces at least one result. At least one piece of source code 2у5 of the vulnerable program containing at least one selected algorithm is also selected.
По меньшей мере один выбранный фрагмент кода 2ν§ уязвимой программы в этом случае модифицируется, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что:At least one selected piece of code 2ν§ of the vulnerable program in this case is modified to obtain the source code 2р§ of the protected program. This modification is such that:
-13005465 в ходе выполнения защищенной программы 2р по меньшей мере один фрагмент первой выполняемой части 2рс5. который выполняется в системе 3 обработки данных, учитывает, что функциональная возможность по меньшей мере одного выбранного алгоритма выполняется в устройстве 6;-13005465 during execution of the protected 2p program, at least one fragment of the first 2pc5 executable part. which is performed in the data processing system 3, takes into account that the functionality of at least one selected algorithm is executed in the device 6;
в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи, которая выполняется в устройстве 6, выполняет, по меньшей мере, функциональную возможность по меньшей мере одного выбранного алгоритма;during the execution of the protected program 2p, the second executable part 2rea, which is executed in the device 6, performs at least the functionality of at least one selected algorithm;
в ходе выполнения защищенной программы 2р каждый выбранный алгоритм разлагается на несколько различных этапов, а именно:during the execution of the protected 2p program, each selected algorithm is decomposed into several different stages, namely:
этап 1 - предоставление по меньшей мере одной переменной для устройства 6, этап 2 - выполнение в устройстве 6 функциональной возможности выбранного алгоритма с использованием этого или этих операндов, этап 3 - возможное предоставление устройством 6 системе 3 обработки данных результата выполнения выбранного алгоритма;step 1 — providing at least one variable for the device 6, step 2 — executing the selected algorithm in the device 6 using this or these operands, step 3 — possible providing the result of the selected algorithm to the data processing system 6;
команды этапов определяются таким образом, чтобы вызвать выполнение этапов, причем упорядочение команд этапов выбрано среди ансамбля упорядочений, позволяющих выполнение защищенной программы 2р.the instructions of the steps are determined in such a way as to cause the execution of the steps, and the ordering of the instructions of the steps is selected among the ensemble of orderings that allow the execution of the protected 2p program.
Первая выполняемая часть 2ре§ защищенной программы 2р, которая выполняется в системе 3 обработки данных, выполняет команды этапов, что вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, каждого из приведенных этапов. Для реализации принципа защиты путем временного разделения устройство 6 содержит средства 15 запоминания и средства 16 обработки.The first executable part 2p§ of the protected program 2p, which is executed in the data processing system 3, executes the commands of the steps, which causes the device 6 to execute, by means of the second executable part 2preya, of each of the above steps. To implement the principle of protection by temporary separation, the device 6 contains means 15 for storing and means 16 for processing.
На фиг. 50 приведен пример выполнения уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных в данный момент времени производится расчет Ζ Р(Х, Υ), соответствующий присвоению переменной Ζ результата выполнения алгоритма, представленного функцией Р и использующего операнды Х и Υ.In FIG. 50 shows an example of the execution of the vulnerable program 2ν. In this example, during the execution of the vulnerable program 2ν in the data processing system 3, at the given time, Ζ P (X, Υ) is calculated corresponding to assigning to the variable Ζ the result of the execution of the algorithm represented by the function P and using the operands X and Υ.
На фиг. 51 приведен пример реализации изобретения, в котором обработка выбранного алгоритма (фиг. 50) перенесена в устройство 6. В этом примере, в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р в присутствии устройства 6, имеют место:In FIG. 51 shows an example implementation of the invention in which the processing of the selected algorithm (Fig. 50) is transferred to device 6. In this example, during the execution of the first executable part 2Р§ of the protected program 2Р in the presence of device 6 in the data processing system 3, the following takes place:
в момент £1 - этап 1, а именно выполнение команды СЕ! этапа, вызывающее передачу данных Х и Υ из системы 3 обработки данных в области памяти соответственно х и у, расположенные в средствах 15 запоминания устройства 6, причем эта команда СЕ! этапа представлена, как ОИТ(х, X), ОИТ(у, Υ);at the moment £ 1 - stage 1, namely the execution of the CE command! stage, causing the transfer of data X and Υ from the data processing system 3 in the memory area x and y, respectively, located in the means 15 of the storage device 6, and this command CE! the stage is represented as ICU (x, X), ICU (y, Υ);
в момент ΐ2 - этап 2, а именно выполнение команды СЕ2 этапа, вызывающее в устройстве 6 выполнение, посредством второй выполняемой части 2реи, функции £, причем эта функция £ алгоритмически эквивалентна функции Р. Эта команда СЕ2 этапа представлена, как ТКЮ(£). Точнее говоря, выполнение команды СЕ2 этапа приводит к выполнению функции £, которая использует содержимое областей памяти х и у и возвращает свой результат в область памяти ζ устройства 6;at the moment ΐ 2 - stage 2, namely, the execution of the CE command of the 2 stage, causing the function £ to be executed in the device 6 by means of the second executable part 2, and this function £ is algorithmically equivalent to the function P. This CE command of the 2 stage is represented as TJC ( £). More precisely, the execution of the CE instruction of stage 2 leads to the execution of the function £, which uses the contents of the memory regions x and y and returns its result to the memory region ζ of the device 6;
в момент Т - этап 3, а именно выполнение команды СЕ3 этапа, вызывающее передачу результата функции £, содержащегося в области памяти ζ устройства 6, системе 3 обработки данных, чтобы присвоить ее значение переменной Ζ. Эта команда СЕ3 этапа представлена, как ΙΝ(ζ). В приводимом примере этапы с 1 по 3 выполняются последовательно.at time T, stage 3, namely, the execution of the CE command 3 of the stage, causing the transfer of the result of the function £ contained in the ζ memory of device 6 to the data processing system 3 in order to assign its value to the variable Ζ. This CE command of 3 stages is represented as ΙΝ (ζ). In this example, steps 1 through 3 are performed sequentially.
Следует отметить, что можно сделать два следующих усовершенствования.It should be noted that the following two improvements can be made.
Первое усовершенствование касается случая, когда один или несколько алгоритмов вынесены в устройство 6 и, по меньшей мере, результат выполнения одного алгоритма используется другим алгоритмом. В этом случае некоторые этапы передачи могут быть исключены.The first improvement concerns the case when one or more algorithms are transferred to device 6 and at least the result of executing one algorithm is used by another algorithm. In this case, some transmission steps may be omitted.
Второе усовершенствование имеет целью надлежащее упорядочение команд этапов в ансамбле упорядочений, позволяющих выполнить защищенную программу 2р. В этом отношении предпочтительно выбрать такое упорядочение команд этапов, которое разделяет во времени выполнение этапов, вставляя между ними участки кода, выполняемого в системе 3 обработки данных, и содержащего (или не содержащего) команды этапов, служащие для определения других данных. Фиг. 52 и 53 иллюстрируют принцип такой реализации.The second improvement aims to properly streamline the teams of steps in the ensemble of orderings, allowing you to run a protected program 2p. In this regard, it is preferable to choose such an ordering of the instructions of the steps that divides the execution of the steps in time, inserting between them sections of the code executed in the data processing system 3 and containing (or not containing) the instructions of the steps for determining other data. FIG. 52 and 53 illustrate the principle of such an implementation.
На фиг. 52 приведен пример выполнения уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных, производится выполнение двух алгоритмов, приводящих к определению Ζ и Ζ', таких, что Ζ Р(Х, Υ) и Ζ' Р'(Х', Υ').In FIG. 52 shows an example of the execution of the vulnerable program 2ν. In this example, during the execution of the vulnerable program 2ν in the data processing system 3, two algorithms are executed leading to the determination of Ζ and Ζ ', such that Ζ P (X, Υ) and Ζ' P '(X', Υ ') .
На фиг. 53 приведен пример реализации способа согласно изобретению, в котором оба выбранных на фиг. 52 алгоритма вынесены в устройство 6. В соответствии с этим примером в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р в присутствии устройства 6 имеет место, как объяснено выше, выполнение команд СЕ1, СЕ2, СЕ3 этапов, соответствующих определению Ζ, и команд СЕ1', СЕ2', СЕ3' этапов, соответствующих определению Ζ'. Как показано на примере, команды этапов с СЕ1 по СЕ3 не выполняются последовательно поскольку с ними чередуются команды этапов с СЕ1' по СЕ3', а также другие участки кода. В этом примере, таким образом, реализовано следующее упорядочение: СЕ1, вставленный фрагмент кода, СЕ2, вставленный фрагмент кода,In FIG. 53 shows an example implementation of the method according to the invention, in which both selected in FIG. 52 algorithms are transferred to the device 6. According to this example, during the execution of the first executable part 2Р§ of the protected program 2Р in the data processing system 3, in the presence of the device 6, the instructions CE 1 , CE 2 , CE 3 of the steps are executed corresponding to the definition of Ζ, and teams CE 1 ', CE 2 ', CE 3 'stages corresponding to the definition of Ζ'. As shown in the example, the commands of the steps with CE1 CE3 not performed sequentially as alternate stages with them command CE 1 'CE 3', as well as other sections of code. In this example, the following ordering is thus implemented: CE 1 , inserted code fragment, CE 2 , inserted code fragment,
-14005465-14005465
СЕ1', вставленный фрагмент кода, СЕ2', вставленный фрагмент кода, СЕ3', вставленный фрагмент кода, СЕ3.CE 1 ', inserted code fragment, CE 2 ', inserted code fragment, CE 3 ', inserted code fragment, CE3.
Следует отметить, что в ходе выполнения защищенной программы 2р в присутствии устройства 6 каждый раз, когда этого требует команда этапа, содержащаяся в части первой выполняемой части 2ре§ защищенной программы 2р, соответствующий этап выполняется в устройстве 6. Таким образом, в присутствии устройства 6 эта часть выполняется корректно и, следовательно, защищенная программа 2р является полнофункциональной.It should be noted that during the execution of the protected program 2p in the presence of the device 6, every time that is required by the step command contained in the first executable part 2p§ of the protected program 2p, the corresponding step is performed in the device 6. Thus, in the presence of the device 6, this part is executed correctly and, therefore, the protected 2p program is fully functional.
На фиг. 54 приведен пример попытки выполнения защищенной программы 2р при отсутствии устройства 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р:In FIG. 54 is an example of an attempt to execute a protected 2p program in the absence of device 6. In this example, during the execution in the data processing system 3 of the first executable part 2p§ of the protected 2p program:
в момент ΐ1 - выполнение команды этапа ОИТ(х, X), ОИТ(у, Υ) не может вызвать передачу данных Х и Υ в области памяти соответственно х и у, учитывая отсутствие устройства 6;at the moment ΐ 1 - the execution of the command of the stage of ICU (x, X), ICU (y, Υ) cannot cause the transfer of data X and Υ in the memory area, respectively, x and y, given the absence of device 6;
в момент ΐ2 - выполнение команды этапа ТКЮ(£) не может вызвать выполнение функции £, учитывая отсутствие устройства 6;at the moment ΐ 2 - the execution of the command of the phase TJC (£) cannot cause the execution of the function £, given the absence of device 6;
и в момент ΐ3 - выполнение команды этапа ΙΝ(ζ) не может вызвать передачу результата функции £, учитывая отсутствие устройства 6.and at the moment ΐ 3 - the execution of the command of stage ΙΝ (ζ) cannot cause the transfer of the result of the function £, given the absence of device 6.
Таким образом, представляется, что при отсутствии устройства 6 по меньшей мере один запрос одного фрагмента первой выполняемой части 2ре§ на запуск выполнения этапа в устройстве 6 не может быть корректно выполнен, так что, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной.Thus, it seems that in the absence of device 6, at least one request of one fragment of the first executable part 2р§ to start the execution of a step in device 6 cannot be correctly executed, so at least this part is not executed correctly, and, therefore, the protected 2p program is not fully functional.
Согласно другой предпочтительной характеристике изобретения способ защиты нацелен на реализацию принципа защиты, названного элементарные функции, описание которого проиллюстрировано фиг. 60-64.According to another preferred characteristic of the invention, the protection method is aimed at implementing a protection principle called elementary functions, the description of which is illustrated in FIG. 60-64.
Для реализации принципа защиты посредством элементарных функций определяют набор элементарных функций, элементарные функции которого могут быть выполнены, посредством второй выполняемой части 2реи, в устройстве 6, возможно, с последующей передачей данных между системой 3 обработки данных и устройством 6;To implement the protection principle by means of elementary functions, a set of elementary functions is determined, the elementary functions of which can be performed by means of the second executable part 2 of the device 6, possibly followed by data transmission between the data processing system 3 and device 6;
и набор элементарных команд для этого набора элементарных функций, причем эти элементарные команды могут быть выполнены в системе 3 обработки данных, вызывая выполнение в устройстве 6 соответствующих элементарных функций.and a set of elementary instructions for this set of elementary functions, and these elementary instructions can be executed in the data processing system 3, causing the execution in the device 6 of the corresponding elementary functions.
Для реализации принципа защиты посредством элементарных функций должны быть реализованы также средства эксплуатации, позволяющие преобразовать незадействованное устройство 60, содержащее средства 15 запоминания и средства 16 обработки, в устройство 6, способное выполнять элементарные функции. При этом выполнение этих элементарных функций вызывается выполнением элементарных команд в системе 3 обработки данных.To implement the protection principle by means of elementary functions, means of operation must also be implemented that make it possible to convert an unused device 60, containing storage means 15 and processing means 16, into a device 6 capable of performing elementary functions. Moreover, the execution of these elementary functions is called the execution of elementary commands in the data processing system 3.
Для реализации принципа защиты посредством элементарных функций в исходном коде 2ν§ уязвимой программы выбирается также по меньшей мере один алгоритм, использующий по меньшей мере один операнд и выдающий по меньшей мере один результат. Выбирается также по меньшей мере один фрагмент исходного кода 2ν§ уязвимой программы, содержащий по меньшей мере один выбранный алгоритм.To implement the protection principle by means of elementary functions in the source code 2ν§ of the vulnerable program, at least one algorithm is also selected that uses at least one operand and produces at least one result. At least one piece of source code 2ν§ of the vulnerable program containing at least one selected algorithm is also selected.
По меньшей мере один выбранный фрагмент кода 2ν§ уязвимой программы в этом случае модифицируется таким образом, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что:At least one selected piece of code 2ν§ of the vulnerable program in this case is modified in such a way as to obtain the source code 2р§ of the protected program. This modification is such that:
в ходе выполнения защищенной программы 2р по меньшей мере один фрагмент первой выполняемой части 2ре5. который выполняется в системе 3 обработки данных, учитывает, что функциональная возможность по меньшей мере одного выбранного алгоритма выполняется в устройстве 6;during the execution of the protected program 2p, at least one fragment of the first executable part 2re5. which is performed in the data processing system 3, takes into account that the functionality of at least one selected algorithm is executed in the device 6;
в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи, которая выполняется в устройстве 6, реализует, по меньшей мере, функциональную возможность по меньшей мере одного выбранного алгоритма;during the execution of the protected program 2p, the second executable part 2rea, which is executed in the device 6, implements at least the functionality of at least one selected algorithm;
каждый выбранный алгоритм разлагается таким образом, что в ходе выполнения защищенной программы 2р каждый выбранный алгоритм выполняется посредством второй выполняемой части 2реи с применением элементарных функций. Каждый выбранный алгоритм предпочтительно разлагается на элементарные функции £еп (где η пробегает значения от 1 до Ν), а именно:each selected algorithm is decomposed in such a way that during the execution of the protected 2p program, each selected algorithm is executed by the second executable part 2preya using elementary functions. Each selected algorithm is preferably decomposed into elementary functions £ e p (where η runs through the values from 1 to Ν), namely:
возможно, на одну или несколько элементарных функций, позволяющих предоставить один или несколько операндов для устройства 6, на элементарные функции, некоторые из которых используют один или несколько операндов и которые в сочетании осуществляют функциональную возможность выбранного алгоритма, использующего эти операнды, и, возможно, на одну или несколько элементарных функций, позволяющих посредством устройства 6 предоставить системе 3 обработки данных результат выполнения выбранного алгоритма;perhaps one or more elementary functions that allow one or more operands to be provided for device 6, elementary functions, some of which use one or more operands and which in combination implement the functionality of the selected algorithm using these operands, and, possibly, one or more elementary functions, allowing through the device 6 to provide the data processing system 3 with the result of the selected algorithm;
причем упорядочение элементарных команд выбирается в ансамбле упорядочений, позволяющих выполнить защищенную программу 2р.moreover, the ordering of elementary commands is selected in the ensemble of orderings, allowing to execute the protected 2p program.
-15005465-15005465
Первая выполняемая часть 2ре§ защищенной программы 2р, которая выполняется в системе 3 обработки данных, выполняет элементарные команды СЕЕп (где η пробегает значения от 1 до Ν), что вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, каждой из определенных выше элементарных функций Геп.The first executable part 2p§ of the protected program 2p, which is executed in the data processing system 3, executes the elementary CEEP instructions (where η runs through the values from 1 to Ν), which causes the device 6 to execute, by means of the second executable part 2preya, of each of the above elementary functions Ge p .
На фиг. 60 приведен пример выполнения уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных в данный момент времени производится расчет Ζ Е(Х, Υ), соответствующий присвоению переменной Ζ результата выполнения алгоритма, представленного функцией Е и использующего операнды Х и Υ.In FIG. 60 shows an example of the execution of the vulnerable program 2ν. In this example, during the execution of the vulnerable program 2ν in the data processing system 3, at the given moment, the calculation Ζ Е (X, Υ) is performed, corresponding to assigning to the variable Ζ the result of the execution of the algorithm represented by the function E and using the operands X and Υ.
На фиг. 61 приведен пример реализации изобретения, в котором выполнение выбранного алгоритма, отвечающего фиг. 60, вынесено в устройство 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р, в присутствии устройства 6, имеют место:In FIG. 61 is an example embodiment of the invention in which the execution of the selected algorithm corresponding to FIG. 60, transferred to the device 6. In this example, during the execution in the data processing system 3 of the first executable part 2Р§ of the protected program 2Р, in the presence of the device 6, there are:
в моменты ΐ1, ΐ2 - выполнение элементарных команд СЕЕ1, СЕЕ2, вызывающее в устройстве 6 выполнение, посредством второй выполняемой части 2реи, соответствующих элементарных функций Ге1, Ге2, которые обеспечивают передачу данных Х, Υ из системы 3 обработки данных в области памяти соответственно х и у, расположенные в средствах 15 запоминания устройства 6, причем эти элементарные команды СЕЕ1, СЕЕ2 представлены соответственно, как ОИТ(х, X), ОИТ(у, Υ);at moments ΐ 1 , ΐ 2 - the execution of elementary commands CEE 1 , CEE 2 , causing the device 6 to execute, by means of the second executable part 2, corresponding elementary functions Ge 1 , Ge 2 , which provide the transmission of data X, Υ from the data processing system 3 in the memory area, respectively, x and y, located in the means 15 for storing the device 6, and these elementary commands CEE 1 , CEE 2 are represented respectively as OIT (x, X), OIT (y, Υ);
в моменты с ΐ3 по ΐΝ-1 - выполнение элементарных команд с СЕЕ3 по СЕЕ„, вызывающее в устройстве 6 выполнение, посредством второй выполняемой части 2реи, соответствующих элементарных функций с Ге3 по Ге,.ц причем эти элементарные команды с СЕЕ3 по СЕЕ„ представлены соответственно, как ТВЮ(Ге3) - ТВ1С(Ге\-|). Последовательность элементарных функций с Ге3 по Ге,.ц выполняемых в сочетании, алгоритмически эквивалентна функции Е. Точнее говоря, выполнение этих элементарных команд приводит к выполнению в устройстве 6 элементарных функций Ге3 - Ге,.ц которые используют содержимое областей памяти х, у и возвращают результат в область памяти ζ устройства 6;at moments ΐ 3 to ΐ Ν-1 - the execution of elementary commands CEE 3 to CEE „, causing the device 6 to execute, by means of the second executable part 2, the corresponding elementary functions Ge 3 to Ge,. and moreover, these elementary commands to CEE 3 according to CEE „are presented, respectively, as TWY (Ge 3 ) - TB1C (Ge \ - |). The sequence of elementary functions from Ge 3 to Ge, which are performed in combination, is algorithmically equivalent to function E. More precisely, the execution of these elementary commands leads to the execution of 6 elementary functions Ge 3 to Ge, which use the contents of the memory areas x, y and returning the result to the memory region ζ of the device 6;
в момент ΐΝ - выполнение элементарной команды СЕЕ·.,·. вызывающее в устройстве 6 выполнение, посредством второй выполняемой части 2реи, элементарной функции Ге,, обеспечивающей передачу результата выполнения алгоритма, содержащегося в области памяти ζ устройства 6, системе 3 обработки данных, чтобы присвоить этот результат переменной Ζ, причем эта элементарная команда СРЕ, представлена, как ΙΝ(ζ).at the moment ΐ Ν - execution of the elementary command CEE ·., ·. causing the execution in the device 6, by means of the second executable part 2rea, of the elementary function Ge, which provides the transfer of the result of the algorithm contained in the ζ memory of the device 6 to the data processing system 3 to assign this result to the variable Ζ, and this elementary CPE command is represented as ΙΝ (ζ).
В приведенном примере элементарные команды с 1 по Ν выполняются последовательно. Следует отметить, что можно сделать два следующих усовершенствования.In the above example, elementary commands 1 through Ν are executed sequentially. It should be noted that the following two improvements can be made.
Первое усовершенствование касается случая, когда один или несколько алгоритмов вынесены в устройство 6 и, по меньшей мере, результат выполнения одного алгоритма используется другим алгоритмом. В этом случае некоторые элементарные команды, служащие для передачи, могут быть исключены.The first improvement concerns the case when one or more algorithms are transferred to device 6 and at least the result of executing one algorithm is used by another algorithm. In this case, some elementary instructions serving for transmission may be excluded.
Второе усовершенствование имеет целью надлежащее упорядочение элементарных команд в ансамбле упорядочений, позволяющих выполнить защищенную программу 2р.The second improvement is aimed at the proper ordering of elementary teams in the ensemble of orderings, allowing to execute the protected 2p program.
В этом отношении предпочтительно выбрать такое упорядочение элементарных команд, которое разделяет во времени выполнение элементарных функций, вставляя между ними участки кода, выполняемого в системе 3 обработки данных, и содержит (или не содержит) элементарные команды, служащие для определения других данных. Фиг. 62 и 63 иллюстрируют принцип такой реализации.In this regard, it is preferable to choose an ordering of elementary instructions that divides the execution of elementary functions in time, inserting between them sections of code executed in the data processing system 3 and contains (or does not contain) elementary instructions that serve to determine other data. FIG. 62 and 63 illustrate the principle of such an implementation.
На фиг. 62 приведен пример выполнения уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных производится выполнение двух алгоритмов, приводящих к определению Ζ и Ζ', таких, что Ζ Е(Х, Υ) и Ζ' Е'(Х', Υ').In FIG. 62 shows an example of the execution of the vulnerable program 2ν. In this example, during the execution of the vulnerable program 2ν in the data processing system 3, two algorithms are executed leading to the determination of Ζ and Ζ ', such that Ζ Е (X, Υ) and Ζ' Е '(X', Υ ').
На фиг. 63 приведен пример реализации способа согласно изобретению, в котором выполнение обоих выбранных алгоритмов, отвечающих фиг. 62, вынесено в устройство 6. В соответствии с этим примером в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р, в присутствии устройства 6, имеет место, как было объяснено выше, выполнение элементарных команд с СЕЕ1 по СЕЕ,, соответствующее определению Ζ, и выполнение элементарных команд с СЕЕ1' по СЕЕМ', соответствующее определению Ζ'. Как показано на данной фигуре, элементарные команды с СЕЕ1 по СЕЕ, не выполняются последовательно, т.е. элементарные команды с СЕЕ1' по СЕЕМ', а также другие участки кода чередуются. В этом примере, таким образом, реализовано следующее упорядочение: СЕЕ1, вставленный фрагмент кода, СЕЕ1', СЕЕ2, вставленный фрагмент кода, СЕЕ2', СЕЕ3', вставленный фрагмент кода, СЕЕ4', СЕЕ3, СЕЕ4, ..., СЕЕ,, СЕЕМ'.In FIG. 63 is an example implementation of the method according to the invention, in which the execution of both selected algorithms corresponding to FIG. 62, transferred to the device 6. In accordance with this example, during the execution of the first executable part 2Р§ of the protected program 2Р in the data processing system 3, in the presence of the device 6, as explained above, elementary instructions CEE 1 through CEE are executed ,, corresponding to the definition of Ζ, and the execution of elementary commands from CEE 1 'to CEE M ', corresponding to the definition of Ζ '. As shown in this figure, elementary commands CEE 1 through CEE are not executed sequentially, i.e. elementary commands from CEE 1 'to CEE M ', as well as other sections of the code alternate. In this example, the following ordering is thus implemented: CEE 1 , inserted code fragment, CEE 1 ', CEE 2 , inserted code fragment, CEE 2 ', CEE 3 ', inserted code fragment, CEE 4 ', CEE 3 , CEE 4 , ..., CEE ,, CEE M '.
Следует отметить, что в ходе выполнения защищенной программы 2р в присутствии устройства 6 всякий раз, когда этого требует элементарная команда, содержащаяся в части первой выполняемой части 2ре§ защищенной программы 2р, соответствующая элементарная функция выполняется в устройстве 6. Таким образом, представляется, что в присутствии устройства 6 эта часть выполняется корректно и, следовательно, защищенная программа 2р является полнофункциональной.It should be noted that during the execution of the protected program 2p in the presence of the device 6, whenever the elementary command contained in the first executable part 2p§ of the protected program 2p requires it, the corresponding elementary function is performed in the device 6. Thus, it seems that in in the presence of device 6, this part is executed correctly and, therefore, the protected 2p program is fully functional.
На фиг. 64 приведен пример попытки выполнения защищенной программы 2р при отсутствии устройства 6. В этом примере, в ходе выполнения в системе 3 обработки данных первой выполняемой частиIn FIG. 64 is an example of an attempt to execute a protected program 2p in the absence of device 6. In this example, during execution in the data processing system 3 of the first executable part
-16005465-16005465
2ре§ защищенной программы 2р, выполнение элементарной команды ни в какой момент не может вызвать запуск соответствующей элементарной функции по причине отсутствия устройства 6. Величина, которую необходимо присвоить переменной Ζ, не может, следовательно, быть определена корректно.2p§ of the 2p protected program, the execution of an elementary command at no time can cause the corresponding elementary function to start due to the absence of device 6. The value that must be assigned to the variable Ζ cannot, therefore, be determined correctly.
Таким образом, представляется, что в отсутствие устройства 6, по меньшей мере, один запрос одного фрагмента первой выполняемой части 2ре§ защищенной программы 2р на запуск выполнения элементарной функции в устройстве 6 не может быть корректно выполнен, так что, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной.Thus, it seems that in the absence of device 6, at least one request of one fragment of the first executable part 2p§ of the protected program 2p to start execution of an elementary function in device 6 cannot be correctly executed, so at least this part is not executed correctly, and therefore, the protected 2p program is not fully functional.
Согласно другой предпочтительной характеристике изобретения, способ защиты направлен на реализацию принципа защиты, названного детектирование и принуждение, описание которого выполнено со ссылкой на фиг. 70-74.According to another preferred characteristic of the invention, the protection method is aimed at implementing the protection principle called detection and coercion, which is described with reference to FIG. 70-74.
Для реализации принципа защиты посредством детектирования и принуждения определяются:To implement the principle of protection through detection and coercion are determined:
по меньшей мере одна характеристика выполнения программы, которая может быть проконтролирована, по меньшей мере, частично в устройстве 6;at least one characteristic of the execution of the program, which can be monitored at least partially in the device 6;
по меньшей мере один критерий, который требуется соблюдать по меньшей мере для одной характеристики выполнения программы;at least one criterion that must be met for at least one characteristic of program execution;
• средства 17 детектирования, которые необходимо применять в устройстве 6 и которые позволяют обнаружить, что, по меньшей мере одна характеристика выполнения программы не отвечает по меньшей мере одному соответствующему критерию;• means of detection 17, which must be used in the device 6 and which make it possible to detect that at least one characteristic of program execution does not meet at least one relevant criterion;
•средства 18 принуждения, которые необходимо применять в устройстве 6 и которые позволяют проинформировать систему 3 обработки данных и/или модифицировать выполнение программы, пока не соблюдается хотя бы один критерий.• means of coercion 18, which must be used in the device 6 and which allow to inform the data processing system 3 and / or modify the execution of the program until at least one criterion is met.
Для реализации принципа защиты при помощи детектирования и принуждения конструируют также средства эксплуатации, позволяющие преобразовать незадействованное устройство 60, содержащее средства 15 запоминания и средства 16 обработки, в устройство 6, по меньшей мере, реализующее средства 17 детектирования и средства 18 принуждения.To implement the principle of protection by means of detection and coercion, means of operation are also designed to convert an idle device 60, containing storage means 15 and processing means 16, into a device 6 that at least implements detection means 17 and coercion means 18.
На фиг. 70 показаны средства, необходимые для реализации принципа защиты при помощи детектирования и принуждения. Устройство 6 содержит средства 17 детектирования и средства 18 принуждения, принадлежащие средствам 16 обработки. Средства 18 принуждения получают информацию о несоблюдении критерия от средств 17 детектирования.In FIG. 70 shows the means necessary to implement the principle of protection through detection and coercion. The device 6 comprises detection means 17 and enforcement means 18 belonging to the processing means 16. The enforcement means 18 receives information about non-compliance with the criterion from the detection means 17.
Точнее говоря, средства 17 детектирования используют информацию, исходящую от средств 13 передачи и/или от средств 15 запоминания и средств 16 обработки, чтобы соблюдалась одна или несколько характеристик выполнения программы. Каждой характеристике выполнения программы сопоставляется по меньшей мере один критерий, который требуется соблюдать.More specifically, the detection means 17 use information coming from the transmission means 13 and / or from the storage means 15 and the processing means 16 so that one or more of the program execution characteristics is respected. Each characteristic of program execution is associated with at least one criterion that must be observed.
В случае если обнаружено, что по меньшей мере одна характеристика выполнения программы не удовлетворяет по меньшей мере одному критерию, средства 17 детектирования информируют об этом средства 18 принуждения. Эти средства 18 принуждения адаптированы для изменения соответствующим образом состояния устройства 6.If it is found that at least one characteristic of program execution does not satisfy at least one criterion, the detection means 17 inform the enforcement means 18 about this. These coercive means 18 are adapted to change the state of the device 6 accordingly.
Для реализации принципа защиты с помощью детектирования и принуждения должны быть выбраны также:To implement the principle of protection through detection and coercion, the following should also be selected:
по меньшей мере одна характеристика выполнения контролируемой программы, среди характеристик выполнения, которые могут быть проконтролированы;at least one performance characteristic of the monitored program, among the performance characteristics that can be monitored;
по меньшей мере один критерий, который требуется соблюдать по меньшей мере для одной выбранной характеристики выполнения программы;at least one criterion that must be met for at least one selected program execution characteristic;
в исходном коде 2ν§ уязвимой программы - по меньшей мере один алгоритм, для которого требуется контролировать по меньшей мере одну характеристику выполнения программы;in the source code 2ν§ of the vulnerable program, at least one algorithm for which at least one characteristic of the program execution is to be controlled;
в исходном коде 2ν§ уязвимой программы - по меньшей мере один фрагмент, содержащий по меньшей мере один выбранный алгоритм.in the source code 2ν§ of the vulnerable program, at least one fragment containing at least one selected algorithm.
При выполнении этих условий по меньшей мере один выбранный фрагмент кода 2ν§ уязвимой программы модифицируется, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что именно в ходе выполнения защищенной программы 2р:When these conditions are met, at least one selected fragment of the 2ν§ code of the vulnerable program is modified to obtain the source code 2р§ of the protected program. This modification is such that it is during the execution of the 2p protected program:
по меньшей мере один фрагмент первой выполняемой части 2ре§, которая выполняется в системе 3 обработки данных, учитывает, что по меньшей мере одна характеристика выполнения выбранной программы должна быть проконтролирована, по меньшей мере, частично в устройстве 6;at least one fragment of the first executable part 2р§, which is executed in the data processing system 3, takes into account that at least one execution characteristic of the selected program must be monitored at least partially in the device 6;
вторая выполняемая часть 2реи, которая выполняется в устройстве 6, контролирует по меньшей мере частично одну характеристику выполнения выбранной программы.the second run part 2, which is executed in the device 6, controls at least partially one characteristic of the execution of the selected program.
В ходе выполнения программы 2р, защищенной при помощи принципа детектирования и принуждения, в присутствии устройства 6 имеет место следующая ситуация:During the execution of program 2p, protected by the principle of detection and coercion, in the presence of device 6, the following situation occurs:
если все критерии, отвечающие всем контролируемым характеристикам выполнения всех модифицированных фрагментов защищенной программы 2р, соблюдены, эти модифицированные фрагменты защищенной программы 2р функционируют должным образом и, следовательно, защищенная программа 2р функционирует должным образом;if all the criteria that meet all the controlled performance characteristics of all the modified fragments of the protected program 2p are met, these modified fragments of the protected program 2p are functioning properly and, therefore, the protected program 2p is functioning properly;
-17005465 если же по меньшей мере один из критериев, отвечающий характеристике контролируемого выполнения одного фрагмента защищенной программы 2р, не соблюден, система 3 обработки данных информируется об этом и/или функционирование фрагмента защищенной программы 2р модифицируется таким образом, чтобы функционирование защищенной программы 2р было изменено.-17005465 if at least one of the criteria corresponding to the characteristic of the controlled execution of one fragment of the protected program 2p is not met, the data processing system 3 is informed about this and / or the functioning of the fragment of the protected program 2p is modified so that the functioning of the protected program 2p is changed .
Естественно, что в отсутствие устройства 6 по меньшей мере один запрос одного фрагмента первой выполняемой части 2ре§ защищенной программы 2р на использование устройства 6 не может быть корректно выполнен, так что, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной.Naturally, in the absence of device 6, at least one request from one fragment of the first executable part 2Р§ of the protected program 2Р to use device 6 cannot be correctly executed, so at least this part is not executed correctly, and therefore, the protected 2p program is not fully functional.
Для реализации принципа защиты с помощью детектирования и принуждения предпочтительно использовать два типа характеристики выполнения программы.To implement the protection principle through detection and coercion, it is preferable to use two types of program execution characteristics.
Первый тип характеристики выполнения программы соответствует переменной контроля выполнения программы, а второй тип соответствует профилю использования программы. Эти оба типа характеристик могут использоваться независимо или в сочетании.The first type of program execution characteristics corresponds to the program execution control variable, and the second type corresponds to the program usage profile. Both of these types of characteristics can be used independently or in combination.
Для реализации принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики выполнения программы переменную контроля выполнения программы, должны быть определены:To implement the protection principle through detection and coercion, which uses the program execution control variable as a characteristic of program execution, the following must be defined:
в средствах 15 запоминания - возможность запомнить по меньшей мере одну переменную контроля, служащую в качестве количественной характеристики использования по меньшей мере одной функциональной возможности программы;in the storage means 15, the ability to remember at least one control variable that serves as a quantitative characteristic of the use of at least one program functionality;
в средствах 17 детектирования - возможность наблюдать по меньшей мере одно пороговое значение, связанное с каждой переменной контроля;in detection means 17, the ability to observe at least one threshold value associated with each control variable;
средства обновления, позволяющие обновить каждую переменную контроля в зависимости от использования функциональной возможности, с которой она связана.update tools to update each control variable depending on the use of the functionality with which it is associated.
Конструируют также средства эксплуатации, которые задействуют, кроме средств 17 детектирования и средств 18 принуждения, также средства обновления. Кроме того, в исходном коде 2ν§ уязвимой программы выбираются:Designed also means of operation, which involve, in addition to means 17 of the detection and means 18 of coercion, also means of updating. In addition, in the source code 2ν§ of the vulnerable program, the following are selected:
по меньшей мере одна функциональная возможность уязвимой программы 2ν, использование которой можно проконтролировать с помощью переменной для количественного контроля;at least one functionality of the vulnerable 2ν program, the use of which can be controlled using a variable for quantitative control;
по меньшей мере одна переменная для количественного контроля, служащая в качестве количественной характеристики указанной функциональной возможности;at least one variable for quantitative control, serving as a quantitative characteristic of the specified functionality;
по меньшей мере одно пороговое значение, связанное с переменной для количественного контроля и соответствующее пределу использования указанной функциональной возможности;at least one threshold value associated with the variable for quantitative control and corresponding to the limit of use of the specified functionality;
и по меньшей мере один метод обновления переменной для количественного контроля в соответствии с использованием указанной функциональной возможности.and at least one method of updating the variable for quantitative control in accordance with the use of the specified functionality.
Исходный код 2ν§ уязвимой программы затем модифицируется, чтобы получить исходный код 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи обновляет значение переменной для количественного контроля в соответствии с использованием указанной функциональной возможности;The source code 2ν§ of the vulnerable program is then modified to obtain the source code 2p§ of the protected program, and this modification is such that, during the execution of the protected program 2p, the second part 2reya being executed updates the value of the variable for quantitative control in accordance with the use of this functionality;
и принимает во внимание по меньшей мере одно превышение порогового значения.and takes into account at least one exceeding the threshold value.
Иными словами, в ходе выполнения защищенной программы 2р значение переменной для количественного контроля обновляется в соответствии с использованием указанной функциональной возможности и в случае превышения порогового значения средства 17 детектирования информируют об этом средства 18 принуждения, которые принимают решение, приспособленное к тому, чтобы проинформировать систему 3 обработки данных и/или модифицировать обработку, осуществляемую средствами 16 обработки. Это позволяет модифицировать функционирование фрагмента защищенной программы 2р таким образом, чтобы функционирование защищенной программы 2р было изменено.In other words, during the execution of the protected program 2p, the value of the variable for quantitative control is updated in accordance with the specified functionality and, if the threshold value is exceeded, the detection means 17 inform the enforcement means 18 that make a decision adapted to inform the system 3 data processing and / or modify the processing carried out by means of processing 16. This allows you to modify the functioning of the fragment of the protected program 2p so that the functioning of the protected program 2p has been changed.
Для реализации первого предпочтительного варианта реализации принципа защиты при помощи детектирования и принуждения, использующего в качестве характеристики переменную для количественного контроля, определяют:To implement the first preferred embodiment of the principle of protection using detection and coercion, using as a characteristic a variable for quantitative control, determine:
по меньшей мере для одной переменной для количественного контроля - несколько соответствующих пороговых значений;for at least one variable for quantitative control, several corresponding threshold values;
и различные средства принуждения, соответствующие каждому из этих пороговых значений.and various coercive means corresponding to each of these thresholds.
В исходном коде 2ν§ уязвимой программы выбираются также по меньшей мере одна переменная для количественного контроля, служащая в качестве количественной характеристики использования по меньшей мере одной функциональной возможности программы, с которой должны быть связаны несколько пороговых значений, соответствующих различным пределам использования указанной функциональной возможности;The source code 2ν§ of the vulnerable program also selects at least one variable for quantitative control, which serves as a quantitative characteristic of the use of at least one functionality of the program with which several threshold values must be associated, corresponding to different limits of use of the specified functionality;
и по меньшей мере два пороговых значения, связанных с переменной для количественного контроля.and at least two threshold values associated with the variable for quantitative control.
-18005465-18005465
Исходный код 2ν8 уязвимой программы затем модифицируется, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи обновляет значение переменной для количественного контроля в соответствии с использованием указанной функциональной возможности;The source code 2ν8 of the vulnerable program is then modified to obtain the source code 2p§ of the protected program. This modification is such that, during the execution of the protected program 2p, the second part 2reya being executed updates the value of the variable for quantitative control in accordance with the use of the indicated functionality;
и по-разному учитывает превышения различных пороговых значений.and differently takes into account the excess of different threshold values.
Иными словами, в обычном случае в ходе выполнения защищенной программы 2р при превышении первого порогового значения устройство 6 информирует систему 3 обработки данных, давая команду защищенной программе 2р более не использовать эту функциональную возможность. Если же защищенная программа 2р продолжает использовать эту функциональную возможность, то может быть превышено второе пороговое значение. В случае превышения второго порогового значения средства 18 принуждения могут сделать неработоспособной выбранную функциональную возможность и/или сделать неработоспособной защищенную программу 2р.In other words, in the usual case, during the execution of the protected program 2p, when the first threshold value is exceeded, the device 6 informs the data processing system 3, instructing the protected program 2p to no longer use this functionality. If the protected 2p program continues to use this functionality, then the second threshold value may be exceeded. If the second threshold value is exceeded, the coercive means 18 can render the selected functionality inoperative and / or make the protected program 2p inoperative.
Для реализации второго предпочтительного варианта принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики переменную для количественного контроля, определяют средства перезагрузки, позволяющие разрешить по меньшей мере одно дополнительное использование по меньшей мере одной функциональной возможности программы, контролируемой при помощи переменной для количественного контроля.To implement the second preferred variant of the principle of protection by detection and coercion, using a variable for quantitative control as a characteristic, reloading means are determined that allow at least one additional use of at least one functionality of the program controlled by the variable for quantitative control.
Конструируют также средства эксплуатации, где применены, кроме средств 17 детектирования, средств 18 принуждения и средств обновления, также и средства перезагрузки.Means of operation are also designed where, in addition to detection means 17, means 18 of coercion and means of updating, also means of reloading are used.
Кроме того, в исходном коде 2ν§ уязвимой программы выбирается по меньшей мере одна переменная для количественного контроля, служащая для ограничения использования по меньшей мере одной функциональной возможности программы, для которой существует возможность разрешения по меньшей мере на одно дополнительное использование.In addition, at least one variable for quantitative control is selected in the source code 2ν§ of the vulnerable program, which serves to limit the use of at least one functionality of the program for which it is possible to permit at least one additional use.
Исходный код 2ν§ уязвимой программы затем модифицируется, чтобы получить исходный код 2р§ защищенной программы, причем эта модификация такова, что в фазе, названной фазой перезагрузки, по меньшей мере одно дополнительное использование по меньшей мере одной функциональной возможности, соответствующей одной выбранной переменной для количественного контроля, может быть разрешено.The source code 2ν§ of the vulnerable program is then modified to obtain the source code 2p§ of the protected program, and this modification is such that in the phase called the reboot phase, at least one additional use of at least one functionality corresponding to one selected variable for quantitative control may be allowed.
В фазе перезагрузки происходит обновление по меньшей мере одной выбранной переменной для количественного контроля и/или по меньшей мере одного связанного порогового значения, чтобы разрешить по меньшей мере одно дополнительное использование соответствующей функциональной возможности. Другими словами, в фазе перезагрузки обеспечивается возможность разрешить дополнительные использования по меньшей мере одной функциональной возможности защищенной программы 2р.In the reset phase, at least one selected variable is updated for quantitative control and / or at least one associated threshold value to allow at least one additional use of the corresponding functionality. In other words, in the reboot phase, it is possible to allow additional use of at least one functionality of the 2p protected program.
Для реализации принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики профиль использования программы, в качестве критерия, который требуется соблюдать для этого профиля использования, должен быть определен по меньшей мере один признак выполнения программы.To implement the principle of protection through detection and coercion, which uses the profile of the use of the program as a characteristic, at least one sign of the execution of the program must be defined as a criterion that must be observed for this profile of use.
Кроме того, в исходном коде 2ν§ уязвимой программы выбирают:In addition, in the source code 2ν§ of the vulnerable program, one selects:
по меньшей мере один профиль использования, который требуется контролировать;at least one usage profile to be controlled;
и по меньшей мере один признак выполнения, который должен соблюдаться по меньшей мере в одном профиле использования.and at least one sign of implementation, which must be observed in at least one usage profile.
Исходный код 2ν§ уязвимой программы затем модифицируется, чтобы получить исходный код 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи соблюдает все выбранные признаки выполнения.The source code 2ν§ of the vulnerable program is then modified to obtain the source code 2p§ of the protected program, and this modification is such that during the execution of the protected 2p program, the second part of 2rea that is executed respects all selected execution signs.
Другими словами, устройство 6 само контролирует тот способ, которым выполняется вторая выполняемая часть 2реи, и может информировать систему 3 обработки данных и/или модифицировать функционирование защищенной программы 2р в случае, если не соблюдается хотя бы один критерий.In other words, the device 6 itself controls the way that the second run part 2 is executed, and can inform the data processing system 3 and / or modify the operation of the protected program 2p if at least one criterion is not met.
В ходе выполнения программы 2р, защищенной на основе данного принципа, в присутствии устройства 6 имеет место следующая ситуация:During the execution of program 2p, protected on the basis of this principle, in the presence of device 6, the following situation occurs:
если все признаки выполнения всех модифицированных фрагментов защищенной программы 2р, соблюдены, то эти модифицированные фрагменты защищенной программы 2р функционируют должным образом и, следовательно, защищенная программа 2р функционирует должным образом;if all the signs of the execution of all modified fragments of the protected program 2p are met, then these modified fragments of the protected program 2p are functioning properly and, therefore, the protected program 2p is functioning properly;
если же хотя бы один признак выполнения одного фрагмента защищенной программы 2р не соблюден, об этом информируется система 3 обработки данных и/или функционирование фрагмента защищенной программы 2р модифицируется таким образом, чтобы функционирование защищенной программы 2р было изменено.if at least one sign of the execution of one fragment of the protected program 2p is not observed, the data processing system 3 is informed about this and / or the functioning of the fragment of the protected program 2p is modified so that the functioning of the protected program 2p is changed.
Можно предусмотреть контроль различных признаков выполнения, например, контроль наличия инструкций, содержащих генератор меток, или контроль сцепления выполнения по меньшей мере одной части инструкций.You can provide control of various signs of execution, for example, control the availability of instructions containing a label generator, or control the adhesion of the execution of at least one part of the instructions.
-19005465-19005465
Для реализации принципа защиты с помощью детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения, по меньшей мере, части инструкций, определяют:In order to implement the protection principle by means of detection and coercion, where as a sign of fulfillment that is required to be observed, the control of the fulfillment of at least part of the instructions is used to determine:
набор инструкций, инструкции из состава которого могут быть выполнены в устройстве 6;a set of instructions, instructions from which can be executed in the device 6;
набор команд инструкций для этого набора инструкций, причем эти команды инструкций могут быть выполнены в системе 3 обработки данных. Выполнение каждой из этих команд инструкций в системе 3 обработки данных вызывает в устройстве 6 выполнение соответствующей инструкции;a set of instruction instructions for this instruction set, and these instruction instructions may be executed in the data processing system 3. The execution of each of these instruction instructions in the data processing system 3 causes the execution of the corresponding instruction in the device 6;
средства 17 детектирования, позволяющие обнаружить, что сцепление инструкций не соответствует желаемому;detection means 17 for detecting that the coupling of instructions is not as desired;
средства 18 принуждения, позволяющие проинформировать систему 3 обработки данных и/или модифицировать выполнение программы, если сцепление инструкций не соответствует желаемому. Конструируют также средства эксплуатации, позволяющие устройству 6 выполнять инструкции из набора инструкций, причем выполнение этих инструкций вызывается выполнением команд инструкций в системе 3 обработки данных.coercive means 18, allowing to inform the data processing system 3 and / or modify the execution of the program if the coupling instructions does not match the desired. Tools are also designed that allow the device 6 to execute instructions from a set of instructions, and the execution of these instructions is caused by the execution of instructions in the data processing system 3.
Кроме того, в исходном коде 2νδ уязвимой программы выбирается по меньшей мере один алгоритм, который должен быть вынесен в устройство 6 и для которого следует контролировать сцепление, по меньшей мере, части инструкций.In addition, at least one algorithm is selected in the source code 2νδ of the vulnerable program, which must be transferred to device 6 and for which the coupling of at least part of the instructions should be controlled.
Исходный код 2νδ уязвимой программы затем модифицируется, чтобы получить исходный код 2р§ защищенной программы.The source code 2νδ of the vulnerable program is then modified to obtain the source code 2p§ of the protected program.
Эта модификация такова, что в ходе выполнения защищенной программы 2р:This modification is such that during the execution of the protected 2p program:
вторая выполняемая часть 2реи выполняет, по меньшей мере, функциональную возможность выбранного алгоритма;the second executable part 2reya performs at least the functionality of the selected algorithm;
выбранный алгоритм разлагается на инструкции;the selected algorithm is decomposed into instructions;
задано сцепление, которое должны соблюдать, по меньшей мере, некоторые из инструкций в ходе их выполнения в устройстве 6;the clutch is set, which at least some of the instructions must follow during their execution in the device 6;
первая выполняемая часть 2ре§ защищенной программы 2р выполняет команды инструкций, которые запускают выполнение инструкций в устройстве 6.the first executable part 2p§ of the protected program 2p executes instructions commands that start the execution of instructions in the device 6.
В ходе выполнения программы 2р, защищенной на основе этого принципа, в присутствии устройства 6 имеет место следующая ситуация:During the execution of program 2p, protected on the basis of this principle, in the presence of device 6, the following situation occurs:
если сцепление инструкций всех модифицированных фрагментов защищенной программы 2р соответствует желаемому, эти модифицированные фрагменты защищенной программы 2р функционируют должным образом и, следовательно, защищенная программа 2р функционирует должным образом;if the concatenation of the instructions of all the modified fragments of the protected program 2p is as desired, these modified fragments of the protected program 2p are functioning properly and, therefore, the protected program 2p is functioning properly;
если же сцепление инструкций фрагмента защищенной программы 2р, выполняемых в устройстве 6, не соответствует желаемому, то система 3 обработки данных информируется об этом и/или функционирование фрагмента защищенной программы 2р модифицируется таким образом, чтобы функционирование защищенной программы 2р было изменено.if the coupling of the instructions of the fragment of the protected program 2p executed in the device 6 does not match the desired, then the data processing system 3 is informed about this and / or the functioning of the fragment of the protected program 2p is modified so that the functioning of the protected program 2p is changed.
На фиг. 71 приведен пример реализации принципа защиты при помощи детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения, по меньшей мере, части инструкций в случае, если желаемое сцепление соблюдено.In FIG. 71 is an example of the implementation of the protection principle by detection and coercion, where as a sign of fulfillment that you want to comply with, control is used to control the grip of at least part of the instructions if the desired grip is observed.
Первая выполняемая часть 2ре§ защищенной программы 2р, выполняемая в системе 3 обработки данных, выполняет команды С11 инструкций, что вызывает в устройстве 6 выполнение инструкций ί1, относящихся к набору инструкций. В наборе инструкций, по меньшей мере, некоторые из инструкций содержат часть, задающую функциональную возможность инструкции, и часть, позволяющую проверять желаемое сцепление для выполнения инструкций. В этом примере команды С11 инструкций представлены как ТКЮ(11), а желаемое сцепление для выполнения инструкций есть ίη, ΐη+1 и ίη+2. Выполнение в устройстве 6 инструкции ίη дает результат а, а выполнение инструкции ΐη+1 дает результат Ь. Инструкция ίη+2 использует в качестве операнда результаты а и Ь инструкций ίη и ίη+1, а ее выполнение дает результат с.The first executable part 2p§ of the protected 2p program, executed in the data processing system 3, executes instructions C1 1 of instructions, which causes the device 6 to execute instructions ί 1 related to the set of instructions. In a set of instructions, at least some of the instructions contain a part defining the functionality of the instruction and a part allowing checking the desired grip for executing the instructions. In this example, the C1 commands 1 instructions are represented as TCU (1 1 ), and the desired grip for executing the instructions is ί η , ΐ η + 1 and ί η + 2 . The execution in the device 6 of the instruction ί η gives the result a, and the execution of the instruction ΐ η + 1 gives the result b. The instruction ί η + 2 uses the results a and b of the instructions ί η and ί η + 1 as an operand, and its execution gives the result c.
С учетом того, что это сцепление инструкций, выполняемых в устройстве 6, соответствует желаемому, функционирование защищенной программы 2р соответствует нормальному, или номинальному режиму.Given that this coupling of the instructions executed in the device 6 corresponds to what is desired, the operation of the protected program 2p corresponds to the normal or nominal mode.
На фиг. 72 приведен пример реализации принципа защиты при помощи детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения, по меньшей мере, части инструкций в случае, если желаемое сцепление не соблюдено.In FIG. 72 is an example of the implementation of the principle of protection by detection and coercion, where as a sign of fulfillment that you want to comply with, control of the grip of at least part of the instructions is used if the desired grip is not respected.
Согласно этому примеру желаемое сцепление для выполнения инструкций есть всегда ίη, ΐη+1 и ίη+2. Однако сцепление выполнения инструкций модифицируется заменой инструкции ΐη на инструкцию ί'η таким образом, что действительно выполняемое сцепление есть ί'η, ΐη+1 и ίη+2. Выполнение инструкции ί'η дает результат а, то есть тот же результат, что и выполнение инструкции ΐη. Однако не позднее, чем при выполнении инструкции ίη+2, средства 17 детектирования обнаруживают, что инструкция ί'η не соответствует желаемой инструкции для выработки результата а, используемого в качестве операнда для инструкции ίη+2. Средства 17 детектирования информируют об этом средства 18 принуждения, которые моAccording to this example, the desired grip for executing instructions is always ί η , ΐ η + 1, and ί η + 2 . However clutch instruction execution is modified by replacing the instructions to an instruction ΐ η ί 'η such that the clutch is actually performed ί' η, ΐ η + 1 and ί η + 2. Executing the instruction ί ' η gives the result a, that is, the same result as executing the instruction ΐ η . However, no later than when executing the instruction ί η + 2 , the detection means 17 detect that the instruction ί ' η does not correspond to the desired instruction for generating the result of a used as an operand for the instruction ί η + 2 . Detection means 17 inform enforcement means 18 of this, which can
-20005465 дифицируют, как следствие, функционирование инструкции ίη+2, таким образом, что выполнение инструкции ίη+2 дает результат с', который может отличаться от с.-20005465, as a result, the operation of the instruction ί η + 2 is differentiated, so that the execution of the instruction ί η + 2 gives the result c ', which may differ from c.
Разумеется, если выполнение инструкции ί'η дает результат а', отличный от результата а инструкции ίη, ясно, что результат выполнения инструкции ίη+2 может также отличаться от с.Of course, if the execution of the instruction ί ' η gives a result a' different from the result a of the instruction ί η , it is clear that the result of the execution of the instruction ί η + 2 may also differ from c.
Следовательно, если сцепление выполнения инструкций, выполняемых в устройстве 6, не соответствует желаемому, можно получить модификацию функционирования защищенной программы 2р.Therefore, if the coupling of the execution of the instructions executed in the device 6 does not correspond to the desired, a modification of the functioning of the protected program 2p can be obtained.
На фиг. 73 и 74 показан предпочтительный вариант реализации принципа защиты при помощи детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения по меньшей мере части инструкций. В соответствии с этим предпочтительным вариантом, определяется набор инструкций, в котором, по меньшей мере, некоторые инструкции работают на регистрах и используют по меньшей мере один операнд для выдачи результата.In FIG. 73 and 74 show a preferred embodiment of the principle of protection by detection and coercion, where as a sign of execution that you want to comply, control is used to control the execution of at least part of the instructions. In accordance with this preferred embodiment, a set of instructions is defined in which at least some instructions operate on registers and use at least one operand to output a result.
Как показано на фиг. 73, по меньшей мере, для части инструкций, работающих на регистрах, определена часть РР, задающая функциональную возможность инструкции, и часть РЕ, задающая желаемое сцепление для выполнения инструкций. Часть РР соответствует коду операций, известному для специалиста. Часть РЕ, определяющая желаемое сцепление, содержит битовые поля, соответствующие:As shown in FIG. 73, at least for a part of the instructions operating on the registers, a part PP that defines the functionality of the instruction and a part PE that defines the desired chaining for executing the instructions are defined. Part of the PP corresponds to the code of operations known to the specialist. The RE part determining the desired grip contains bit fields corresponding to:
полю С11 идентификации инструкции;instruction identification field C11;
и для каждого операнда к инструкции, где к пробегает значения от 1 до К, К - число операндов инструкции:and for each operand to the instruction, where k runs through the values from 1 to K, K is the number of operands of the instruction:
полю СЭк флага, указывающему, следует ли проверять происхождение операнда к, и полю С1Рк идентификации, предусмотренной для операнда и указывающей на ожидаемую идентичность инструкции, которая сгенерировала содержимое операнда к.the SE field to the flag indicating whether the origin of operand k should be checked, and the C1P field to the identification provided for the operand and indicating the expected identity of the instruction that generated the contents of operand k.
Как показано на фиг. 74, набор инструкций содержит V регистров, принадлежащих средствам 16 обработки, где каждый регистр назван Κν (ν пробегает значения от 1 до V). Для каждого регистра Κν определяется два поля, а именно:As shown in FIG. 74, the instruction set contains V registers belonging to the processing means 16, where each register is named Κ ν (ν runs through the values from 1 to V). For each register Κ ν two fields are defined, namely:
функциональное поле СР,, известное специалисту и позволяющее хранить результат выполнения инструкций;functional field SR, known to the specialist and allowing to store the result of the execution of instructions;
и поле СЧС,, генерируемой идентификации, в котором автоматически запоминается идентификация последней инструкции, возвратившей свой результат в указанный регистр, т. е. сгенерировавшей содержимое функционального поля СР,. Это поле СЧС,, генерируемой идентификации обновляется автоматически вместе с содержимым поля С11 идентификации инструкции, сгенерировав функциональное поле СР,. Поле СЧС,, генерируемой идентификации не является ни доступным, ни модифицируемым для любой другой инструкции и служит исключительно для средств 17 детектирования.and the SCH field, the generated identification, which automatically remembers the identification of the last instruction that returned its result to the specified register, that is, generated the contents of the functional field CP ,. This CES field, the generated identification is updated automatically along with the contents of the instruction identification field C11, generating a functional field CP ,. The SSD field, the generated identification is neither accessible nor modifiable for any other instruction, and serves solely for detection means 17.
В ходе выполнения инструкции средства 17 детектирования выполняют для каждого операнда к следующие операции:During the execution of the instruction, the detection means 17 perform the following operations for each operand:
считывается поле СЭк флага;read the SE field to the flag;
если этого требует поле СЭк флага, то считываются оба поля: поле С1Рк предусмотренной идентификации и поле СЧС,, генерированной идентификации, соответствующее регистрам, используемым операндом к;if required by the SE field to the flag, then both fields are read: the C1P field to the provided identification and the CES field, the generated identification corresponding to the registers used by the operand to;
проверяется равенство обоих полей С1Рк и СЧС,,;the equality of both fields С1Р к and СЧС ,, is checked;
и если равенство ложно, то средства 17 детектирования считают, что сцепление выполнения инструкций не соблюдено.and if the equality is false, then the detection means 17 considers that the chain of execution of the instructions is not respected.
Средства 18 принуждения должны позволять модифицировать результат выполнения инструкций, когда средства 17 детектирования проинформируют их о несоблюдении сцепления инструкций. Предпочтительная реализация состоит в том, чтобы модифицировать функциональную часть РР выполняемой инструкции или функциональную часть РР последующих инструкций.Means 18 of coercion should allow to modify the result of the execution of the instructions, when the means 17 of detection will inform them of non-compliance with the clutch instructions. A preferred implementation is to modify the functional part PP of the instruction to be executed or the functional part PP of the subsequent instructions.
Согласно другой преимущественной характеристике изобретения способ защиты нацелен на реализацию принципа защиты, названного переименование, описание которого выполнено со ссылкой на фиг. 80-85.According to another advantageous characteristic of the invention, the protection method is aimed at implementing the protection principle called renaming, which is described with reference to FIG. 80-85.
Для реализации принципа защиты переименованием должны быть определены:To implement the principle of protection by renaming should be determined:
ансамбль зависимых функций, зависимые функции которого могут быть выполнены посредством второй выполняемой части 2реи в устройстве 6, возможно, с последующей передачей данных между системой 3 обработки данных и устройством 6 (причем этот ансамбль зависимых функций может быть конечным или нет);an ensemble of dependent functions, the dependent functions of which can be performed by means of the second executable part 2 of the device in the device 6, possibly followed by data transfer between the data processing system 3 and the device 6 (this ensemble of dependent functions may be finite or not);
ансамбль команд запуска для этих зависимых функций, причем эти команды запуска могут выполняться в системе 3 обработки данных и вызывать в устройстве 6 выполнение соответствующих зависимых функций;an ensemble of start commands for these dependent functions, wherein these start commands can be executed in the data processing system 3 and cause the execution of the corresponding dependent functions in the device 6;
для каждой команды запуска - установочный параметр, соответствующий, по меньшей мере, частично информации, передаваемой первой выполняемой частью 2ре§ второй выполняемой части 2реи, чтобы вызвать запуск соответствующей зависящей функции, причем этот установочный параметр представляется в форме, по меньшей мере, аргумента команды запуска;for each start command, a setting parameter corresponding, at least in part, to the information transmitted by the first executable part 2p§ of the second executable part 2rei, to cause the start of the corresponding dependent function, and this setting parameter is presented in the form of at least an argument to the start command ;
метод переименования установочных параметров, предназначенный для применения в ходе модификации уязвимой программы и позволяющий переименовать установочные параметры таким образом,a method for renaming settings intended for use during the modification of a vulnerable program and allowing renaming settings in this way
-21005465 чтобы получить команды запуска с переименованными параметрами, позволяя скрыть идентичность соответствующих зависящих функций;-21005465 to receive launch commands with renamed parameters, allowing you to hide the identity of the corresponding dependent functions;
средства 20 восстановления, предназначенные для применения в устройстве 6 в фазе использования и позволяющие восстановить начальные установочные параметры, исходя из переименованных установочных параметров, чтобы найти зависимую функцию, которую необходимо выполнить.recovery means 20 intended for use in the device 6 in the use phase and allowing to restore the initial settings based on the renamed settings to find the dependent function that needs to be performed.
Для реализации принципа защиты переименованием конструируют также средства эксплуатации, позволяющие преобразовать незадействованное устройство 60, содержащее средства 15 запоминания и средства 16 обработки, в устройство 6, применяющее, по меньшей мере, средства 20 восстановления.To implement the principle of protection by renaming also designed means of operation, allowing you to convert an idle device 60 containing a means of 15 storage and processing means 16, into a device 6 that uses at least means 20 recovery.
Для реализации принципа защиты переименованием в исходном коде 2ν§ уязвимой программы должны быть также выбраны:To implement the protection principle by renaming the vulnerable program in the 2ν§ source code, the following should also be selected:
по меньшей мере один алгоритм, использующий по меньшей мере один операнд и выдающий по меньшей мере один результат;at least one algorithm using at least one operand and generating at least one result;
и по меньшей мере один фрагмент исходного кода 2ν§ уязвимой программы, содержащий по меньшей мере один выбранный алгоритм. Исходный код 2ν§ уязвимой программы затем модифицируется, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что:and at least one piece of source code 2ν§ of the vulnerable program containing at least one selected algorithm. The source code 2ν§ of the vulnerable program is then modified to obtain the source code 2p§ of the protected program. This modification is such that:
в ходе выполнения защищенной программы 2р по меньшей мере один фрагмент первой выполняемой части 2рс5. которая выполняется в системе 3 обработки данных, учитывает, что функциональная возможность по меньшей мере одного выбранного алгоритма выполняется в устройстве 6;during the execution of the protected 2p program, at least one fragment of the first 2pc5 executable part. which is performed in the data processing system 3, takes into account that the functionality of at least one selected algorithm is executed in the device 6;
в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи, которая выполняется в устройстве 6, выполняет, по меньшей мере, функциональную возможность по меньшей мере одного выбранного алгоритма;during the execution of the protected program 2p, the second executable part 2rea, which is executed in the device 6, performs at least the functionality of at least one selected algorithm;
каждый выбранный алгоритм разлагается таким образом, что в ходе выполнения защищенной программы 2р каждый выбранный алгоритм выполняется посредством второй выполняемой части 2реи, используя зависимые функции. Каждый выбранный алгоритм предпочтительно разлагается на зависимые функции ίάη (где η пробегает значения от 1 до Ν), а именно:each selected algorithm is decomposed in such a way that during the execution of the protected 2p program, each selected algorithm is executed by the second executable part 2preya, using dependent functions. Each selected algorithm is preferably decomposed into dependent functions ίά η (where η runs through the values from 1 to именно), namely:
возможно, на одну или несколько зависимых функций, позволяющих предоставить один или несколько операндов для устройства 6, на зависимые функции, некоторые из которых используют один или несколько операндов и которые в сочетании осуществляют функциональную возможность выбранного алгоритма, использующего эти операнды, и, возможно, на одну или несколько зависимых функций, позволяющих посредством устройства 6 предоставить системе 3 обработки данных результат выполнения выбранного алгоритма;perhaps one or more dependent functions that allow you to provide one or more operands for device 6, dependent functions, some of which use one or more operands and which in combination implement the functionality of the selected algorithm using these operands, and, possibly, one or more dependent functions, allowing through the device 6 to provide the data processing system 3 with the result of the selected algorithm;
в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи выполняет зависимые функции ίάη;during the execution of the protected program 2p, the second executable part 2prey performs dependent functions ίά η ;
в ходе выполнения защищенной программы 2р эти зависимые функции запускаются командами запуска с переименованными установочными параметрами;during the execution of the protected 2p program, these dependent functions are started by run commands with renamed settings;
и упорядочение команд запуска выбрано среди ансамбля упорядочений, позволяющих выполнение защищенной программы 2р.and the ordering of the launch commands is selected among the ensemble of orderings that allow the execution of the protected 2p program.
Первая выполняемая часть 2ре§ защищенной программы 2р, выполняемая в системе 3 обработки данных, выполняет команды запуска с переименованными установочными параметрами, передающие в устройство 6 переименованные установочные параметры. Это вызывает в устройстве 6 восстановление при помощи средств 20 восстановления установочных параметров, а затем выполнение, посредством второй выполняемой части 2реи, каждой из определенных выше зависимых функций ίάη.The first executable part 2p§ of the secure 2p program, executed in the data processing system 3, executes start commands with renamed settings, transmitting the renamed settings to device 6. This causes the device 6 to restore using the means 20 to restore the settings, and then perform, by means of the second executable part 2, each of the dependent functions ίά η defined above.
Другими словами, принцип защиты при помощи переименования состоит в том, чтобы переименовать установочные параметры команд запуска, чтобы получить команды запуска с переименованными установочными параметрами, выполнение которых в системе 3 обработки данных вызывает в устройстве 6 выполнение зависимых функций, которые запускались бы командами запуска с непереименованными установочными параметрами, однако без того, чтобы изучение защищенной программы 2р позволило определить идентичность выполняемых зависимых функций.In other words, the principle of protection by renaming is to rename the settings of the launch commands in order to receive the launch commands with the renamed settings, the execution of which in the data processing system 3 causes the execution of dependent functions in the device 6, which would be triggered by the unnamed commands settings, however, without studying the protected 2p program, it would be possible to determine the identity of the dependent functions performed.
На фиг. 80 приведен пример выполнения уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных в данный момент времени имеет место расчет Ζ Е(Х, Υ), соответствующий присвоению переменной Ζ результата выполнения алгоритма, представленного функцией Г и использующего операнды Х и Υ.In FIG. 80 shows an example of the execution of the vulnerable program 2ν. In this example, during the execution of the vulnerable program 2ν in the data processing system 3 at the given moment, the calculation Ζ Е (Х, Υ) corresponds to assigning the variable Ζ to the result of the algorithm represented by function G and using the operands X and Υ.
На фиг. 81 и 82 приведен пример реализации изобретения.In FIG. 81 and 82 show an example implementation of the invention.
На фиг. 81 приведен пример частичной реализации изобретения. Согласно этому примеру в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р в присутствии устройства 6 производятся:In FIG. 81 is an example of a partial implementation of the invention. According to this example, during the execution of the first executable part 2Р§ of the protected program 2Р in the data processing system 3 in the presence of the device 6, the following are performed:
в моменты ΐι, ΐ2 - выполнение элементарных команд СЭ1, СЭ2, что вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, соответствующих зависимых функций ίάι, ίά2, которые обеспечивают передачу данных Х, Υ из системы 3 обработки данных в области памяти соответственно х и у, расположенные в средствах 15 запоминания устройства 6, причем эти команды СЩ, СЭ2 запуска представлены соответственно, как ОИТ(х, X), ОИТ(у, Υ);at the moments ΐι, ΐ 2 - the execution of elementary commands SE 1 , SE 2 , which causes the device 6 to execute, by means of the second executable part 2, the corresponding dependent functions ίάι, ίά 2 , which provide the transfer of data X, Υ from the data processing system 3 to the memory areas, respectively, x and y, located in the means 15 for storing the device 6, and these commands SS, SE 2 start are respectively presented as OIT (x, X), OIT (y, Υ);
-22005465 в моменты с 13 по ΐΝ-1 - выполнение команд запуска с СЭ3 по ΟΌΝ-1, что вызывает в устройстве 6 выполнение посредством второй выполняемой части 2реи соответствующих зависимых функций с Гб3 по ίάΝ.1, причем эти команды запуска с ί.Ό3 по СБ^.1 представлены соответственно, как ТКЮ(Гб3) ΤΚΙΟ(ΓάΝ-1), причем последовательность зависимых функций с Гб3 по ίύΝ-1, выполняемых в сочетании, алгоритмически эквивалентна функции Г (точнее говоря, выполнение этих команд запуска приводит к выполнению в устройстве 6 зависимых функций с Гб3 по ίύΝ-1, которые используют содержимое областей памяти х, у и возвращают результат в область памяти ζ устройства 6);-22005465 at moments 1 3 through ΐ Ν-1 - execution of start commands from SC 3 through ΟΌ Ν-1 , which causes the device 6 to execute through the second executable part 2 of the corresponding dependent functions from GB 3 to ίά Ν . 1 , and these startup commands are from ί.Ό 3 through SB ^. 1 are represented respectively as TKYU (GB 3 ) ΤΚΙΟ (Γά Ν-1 ), and the sequence of dependent functions GB 3 through ίύ Ν-1 , performed in combination, is algorithmically equivalent to function G (more precisely, the execution of these launch commands leads to in the device 6, dependent functions from GB 3 through ίύ Ν-1 , which use the contents of the memory regions x, y and return the result to the memory region ζ of the device 6);
а в момент ΐΝ производится выполнение команды ί.ΌΝ запуска, вызывающее в устройстве 6 выполнение, посредством второй выполняемой части 2реи, зависимой функции Гб-3, обеспечивающей передачу результата выполнения алгоритма, содержащегося в области памяти ζ устройства 6, системе 3 обработки данных, чтобы присвоить его переменной Ζ. Эта команда представлена как ΙΝ(ζ).and at the moment ΐ Ν , the launch command ί.Ό Ν is executed, causing the device 6 to execute, by means of the second executable part 2, of the dependent function GB- 3 , providing the transfer of the result of the algorithm contained in the ζ memory of device 6 to the data processing system 3 to assign it to the variable Ζ. This command is represented as ΙΝ (ζ).
В данном примере, чтобы полностью реализовать изобретение, в качестве установочного параметра выбран первый аргумент команд ОИТ запуска и аргумент команд ΤΚΙΟ и ΙΝ запуска. Выбранные таким образом установочные параметры переименовываются по методу переименования установочных параметров. Таким образом, установочные параметры команд запуска с СЭ, по ί.ΌΝ. а именно х, у, Гб3, ίάΝ-1, ζ переименовываются так, чтобы получить соответственно Я(х), Я(у), К(£б3)..., Κ(ίύΝ-1), Κ(ζ).In this example, in order to fully implement the invention, the first argument of the launch OIT commands and the argument of the launch commands ΤΚΙΟ and ΙΝ are selected as the installation parameter. The settings selected in this way are renamed using the method of renaming settings. Thus, the installation parameters of the launch commands from the SE, according to ί.Ό Ν . namely, x, y, GB 3 , ίά Ν-1 , ζ are renamed so as to obtain respectively I (x), I (y), K (£ 6 3 ) ..., Κ (ίύ Ν-1 ), Κ (ζ).
На фиг. 82 приведен пример полной реализации изобретения. Согласно этому примеру в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р, в присутствии устройства 6, осуществляются:In FIG. 82 is an example of a complete implementation of the invention. According to this example, during the execution of the first executable part 2Р§ of the protected program 2Р in the data processing system 3, in the presence of the device 6, the following are carried out:
в моменты ΐι, ΐ2 - выполнение команд СЭСК1, СОСЯ2 запуска с переименованными установочными параметрами, передающих в устройство 6 переименованные установочные параметры Я(х), Я(у), а также данные X, Υ, что вызывает в устройстве 6 восстановление (при помощи средств 20 восстановления) переименованных установочных параметров, чтобы восстановить установочные параметры, а именно идентичность областей памяти х, у, а затем выполнение, посредством второй выполняемой части 2реи, соответствующих зависимых функций £бь Гб2, которые обеспечивают передачу данных X, Υ от системы 3 обработки данных к областям памяти соответственно х, у, расположенным в средствах 15 запоминания устройства 6 (эти команды СОСЯ!, СОСЯ2 запуска с переименованными установочными параметрами представлены соответственно, как ОИТ (Я(х), X), ОИТ (Я(у), Υ);at moments ΐι, ΐ 2 - execution of CESC1, SOSIA 2 start commands with renamed settings, transmitting to the device 6 renamed settings I (x), I (y), as well as data X, Υ, which causes restoration in device 6 ( using means 20 recovery) renamed settings to restore the settings, namely the identity of the memory areas x, y, and then performing, through the second executable part 2reya, the corresponding dependent functions £ 6 GB 2 , which provide transfer data X, Υ from the data processing system 3 to the memory areas x, y, respectively, located in the storage means 15 of the device 6 (these SUCTION commands!, SUCTION 2 starts with renamed settings are presented respectively as OIT (I (x), X) , ICU (I (y), Υ);
в моменты с ΐ3 по ΐΝ-1 - выполнение команд СОСЯ3 по ί.Όί'ΒΝ-1 запуска с переименованными установочными параметрами, передающих в устройство 6 переименованные установочные параметры с Я(£б3) по Κ(£άΝ-ι), что вызывает в устройстве 6 восстановление при помощи средств 20 восстановления установочных параметров, а именно с Гб3 по £άΝ-ι, а затем выполнение, посредством второй выполняемой части 2реи, зависимых функций с Гб3 по £άΝ-ι, причем эти команды (с СОСЯ3 по С0СВ3-1) запуска с переименованными установочными параметрами представлены соответственно командами ТЯЮ (Я(£б3)) по ТЯЮ (Κ(£6ν-1));in moments from ΐ 3 to ΐ Ν-1 - execution of the PUMP 3 commands to ί.Όί'Β Ν-1 starts with renamed settings, transmitting to the device 6 renamed settings from I (£ b 3 ) to Κ (£ ά Ν - ι), which causes the device 6 to be restored using the means 20 of restoring the installation parameters, namely, from GB 3 to £ ά Ν- ι, and then, by means of the second executable part 2, to perform dependent functions from GB 3 to £ ά Ν- ι, and these commands (with 3 to sucking S0SV 3-1) run with renamed setting parameters are presented according But the team TYAYU (I (£ 3 b)) of TYAYU (Κ (£ 6ν-1));
в момент ΐΝ - выполнение команды ί'Όί'ΒΝ запуска с переименованными установочными параметрами, передающей в устройство 6 переименованные установочные параметры Κ(ζ). Это вызывает в устройстве 6 восстановление, при помощи средств 20 восстановления, установочных параметров, а именно идентичности области памяти ζ, а затем выполнение, посредством второй выполняемой части 2реи, зависимой функции ίάΝ, обеспечивающей передачу результата выполнения алгоритма, содержащегося в области памяти ζ устройства 6, системе 3 обработки данных, чтобы присвоить его переменной Ζ. Эта команда ί.Όί'ΒΝ запуска с переименованными установочными параметрами представлена как ΙΝ(Κ(ζ)). В приводимом примере команды запуска с переименованными установочными параметрами с 1 по Ν выполняются последовательно. Следует отметить, что можно сделать два следующих усовершенствования.at the moment ΐ Ν - execution of the start command ί'Όί'ΒΝ with renamed settings, which transfers the renamed settings Κ (ζ) to device 6. This causes the device 6 to restore, using the recovery means 20, the settings, namely the identity of the memory region ζ, and then, by means of the second executable part 2, of the dependent function ίά Ν , which provides the transfer of the result of the algorithm contained in the memory region ζ of the device 6, the data processing system 3 to assign it to the variable Ζ. This ί.Όί'Β Ν start command with renamed settings is represented as ΙΝ (Κ (ζ)). In this example, the start commands with renamed settings 1 through Ν are executed sequentially. It should be noted that the following two improvements can be made.
Первое усовершенствование касается случая, когда один или несколько алгоритмов вынесены в устройство 6 и, по меньшей мере, результат выполнения одного алгоритма используется другим алгоритмом (в этом случае некоторые команды запуска с переименованными установочными параметрами, служащие для передачи, могут быть исключены).The first improvement concerns the case when one or several algorithms are transferred to device 6 and at least the result of one algorithm is used by another algorithm (in this case, some start commands with renamed settings used for transmission may be excluded).
Второе усовершенствование имеет целью надлежащее упорядочение команд запуска с переименованными установочными параметрами среди ансамбля упорядочений, позволяющих выполнение защищенной программы 2р.The second improvement aims to properly streamline startup commands with renamed settings among the ensemble of sequencing, allowing the execution of a protected 2p program.
В этом отношении предпочтительно выбрать такое упорядочение команд запуска с переименованными установочными параметрами, которое разделяет во времени выполнение зависимых функций, вставляя между ними участки кода, выполняемого в системе 3 обработки данных, и при этом содержащего (или не содержащего) команды запуска с переименованными установочными параметрами, служащие для определения других данных. Фиг. 83 и 84 иллюстрируют принцип такой реализации.In this regard, it is preferable to choose such an ordering of startup commands with renamed installation parameters that divides the execution of dependent functions in time, inserting between them pieces of code executed in the data processing system 3, while containing (or not containing) startup commands with renamed installation parameters serving to determine other data. FIG. 83 and 84 illustrate the principle of such an implementation.
На фиг. 83 приведен пример выполнения уязвимой программы 2ν. В этом примере в системе 3 обработки данных в ходе выполнения уязвимой программы 2ν происходит выполнение двух алгоритмов, приводящих к определению Ζ и Ζ' таких, что Ζ Е(Х, Υ) и Ζ' Е'(Х', Υ').In FIG. 83 shows an example of the execution of the vulnerable program 2ν. In this example, in the data processing system 3, during the execution of the vulnerable program 2ν, two algorithms are executed, leading to the determination of Ζ and Ζ 'such that Ζ E (X, Υ) and Ζ' E '(X', Υ ').
На фиг. 84 приведен пример реализации способа согласно изобретению, в котором оба выбранных на фиг. 83 алгоритма вынесены в устройство 6. В соответствии с этим примером в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р, в присутствииIn FIG. 84 shows an example implementation of the method according to the invention, in which both selected in FIG. 83 algorithms are transferred to the device 6. In accordance with this example, during the execution in the data processing system 3 of the first executable part 2Р§ of the protected program 2Р, in the presence
-23005465 устройства 6, имеет место, как объясняется выше, выполнение команд (с СОС'Щ по ί.Όί.ΉΝ) запуска с переименованными установочными параметрами, соответствующее определению Ζ, и выполнение команд (с СЭСИ/ по СЭСРм') запуска с переименованными установочными параметрами, соответствующее определению Ζ'. Как показано, команды запуска с СЭСИ| по ί.Όί.ΉΝ не выполняются последовательно, поскольку с ними чередуются команды запуска с СЭСИ/ по СОСИМ', а также другие фрагменты кода. В этом примере, таким образом, реализовано следующее упорядочение: СОСИ|, вставленный фрагмент кода, СЭСИ/, СЭСЮ, вставленный фрагмент кода, СЭСИЛ СОСК3', вставленный фрагмент кода, СБСИ', СОСИ;, СБСИ,···, СПСЮ., СОСИ··'.-23005465 device 6, there is, as explained above, the execution of commands (from SOS'SH to ί.Όί.Ή Ν ) of the launch with renamed settings, corresponding to the definition of Ζ, and the execution of commands (from SESI / according to SESRm ') start from renamed settings, corresponding to the definition of Ζ '. As shown, launch commands with SECI | by ί.Όί.Ή Ν are not executed sequentially, since the start commands from SESI / by SOSI M ', as well as other code fragments, alternate with them. In this example, the following ordering is thus implemented: SOSI | , the inserted code fragment, SECI /, SECU, the inserted code fragment, SESIL SOSK 3 ', the inserted code fragment, SBSI', SOSI ;, SBSI, ···, SSSI., SOSI ·· '.
Следует отметить, что в ходе выполнения фрагмента первой выполняемой части 2ре§ защищенной программы 2р команды запуска с переименованными установочными параметрами, которые выполняются в системе 3 обработки данных, вызывают в устройстве 6 восстановление идентичности соответствующих зависящих функций, а затем их выполнение. Таким образом, в присутствии устройства 6 этот фрагмент выполняется корректно и, следовательно, защищенная программа 2р является полнофункциональной.It should be noted that during the execution of the fragment of the first executable part 2р§ of the protected program 2p, the start command with the renamed settings that are executed in the data processing system 3 causes the device 6 to restore the identity of the corresponding dependent functions, and then their execution. Thus, in the presence of device 6, this fragment is executed correctly and, therefore, the protected program 2p is fully functional.
На фиг. 85 приведен пример попытки выполнения защищенной программы 2р при отсутствии устройства 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р выполнение команды запуска с переименованными установочными параметрами ни в какой момент не может вызвать ни восстановление установочных параметров, ни выполнение соответствующей зависящей функции по причине отсутствия устройства 6. Значение, которое необходимо присвоить переменной Ζ, следовательно, не может быть определено корректно.In FIG. 85 is an example of an attempt to execute a protected program 2p in the absence of device 6. In this example, while executing in the data processing system 3 the first executable part 2p§ of the protected program 2p, the execution of the start command with the renamed settings cannot at any time cause any restoration of the settings nor the execution of the corresponding dependent function due to the absence of device 6. The value that must be assigned to the variable Ζ, therefore, cannot be determined correctly about.
Таким образом, представляется, что при отсутствии устройства 6 по меньшей мере один запрос одного фрагмента первой выполняемой части 2ре§ защищенной программы 2р на запуск восстановления установочных параметров и выполнения в устройстве зависящей функции в устройстве 6 не может быть корректно выполнен, так что, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной.Thus, it seems that in the absence of device 6, at least one request of one fragment of the first executable part 2Р§ of the protected program 2Р to start the restoration of the settings and to execute the dependent function in the device in device 6 cannot be correctly executed, so that at least at least, this part is not executed correctly, and therefore, the protected 2p program is not fully functional.
Благодаря этому принципу защиты при помощи переименования изучение в защищенной программе 2р команд запуска с переименованными установочными параметрами не позволяет определить идентичность зависящих функций, которые должны быть выполнены в устройстве 6. Следует отметить, что переименование установочных параметров осуществляется в ходе преобразования уязвимой программы 2ν в защищенную программу 2р.Due to this protection principle, by renaming, studying 2p startup programs in a protected program with renamed settings does not allow us to determine the identity of the dependent functions that must be performed on device 6. It should be noted that the settings are renamed during the conversion of the vulnerable 2ν program to a protected program 2 p.
В соответствии с вариантом принципа защиты при помощи переименования должно быть определено, по меньшей мере, для одной зависящей функции, семейство зависящих функций, алгоритмически эквивалентных, но вызываемых командами запуска с различными переименованными установочными параметрами. В этом варианте по крайней мере один алгоритм, использующий зависимые функции, разлагается на зависимые функции так, что по меньшей мере одна из них заменяется зависимой функцией того же семейства, вместо того, чтобы сохранять несколько вхождений той же зависимой функции. С этой целью команды запуска с переименованными установочными параметрами модифицируются, чтобы учесть замену зависимых функций на зависимые функции того же семейства.In accordance with a variant of the principle of protection by renaming, at least one dependent function must be defined, a family of dependent functions, algorithmically equivalent, but called by run commands with various renamed settings. In this embodiment, at least one algorithm using dependent functions is decomposed into dependent functions so that at least one of them is replaced by a dependent function of the same family, instead of storing multiple occurrences of the same dependent function. To this end, startup commands with renamed settings are modified to allow for the replacement of dependent functions with dependent functions of the same family.
Иными словами, две зависимые функции из одного семейства имеют различные установочные параметры, и, следовательно, команды запуска с различными переименованными установочными параметрами. Поэтому при изучении защищенной программы 2р не представляется возможным обнаружить, что вызываемые зависящие функции алгоритмически эквивалентны.In other words, two dependent functions from the same family have different settings, and therefore run commands with different renamed settings. Therefore, when studying the protected 2p program, it is not possible to detect that the called dependent functions are algorithmically equivalent.
В соответствии с первой предпочтительной реализацией варианта принципа защиты при помощи переименования определяется по меньшей мере для одной зависящей функции алгоритмически эквивалентное семейство зависящих функций, посредством сцепления поля шумов с информацией, определяющей ту функциональную часть зависящей функции, которая выполняется в устройстве 6.In accordance with the first preferred implementation of the variant of the protection principle by renaming, for at least one dependent function, an algorithmically equivalent family of dependent functions is determined by linking the noise field with information defining the functional part of the dependent function that is performed in device 6.
В соответствии со второй предпочтительной реализацией варианта принципа защиты при помощи переименования по меньшей мере для одной зависящей функции определяется алгоритмически эквивалентное семейство зависящих функций с использованием полей идентификации.In accordance with a second preferred implementation of a variant of the security principle, by renaming at least one dependent function, an algorithmically equivalent family of dependent functions is determined using identification fields.
В соответствии с предпочтительным вариантом реализации принципа защиты при помощи переименования в качестве метода переименования установочных параметров задается метод кодирования, позволяющий кодировать установочные параметры для их превращения в переименованные установочные параметры.In accordance with a preferred embodiment of the protection principle by renaming, a coding method is defined as the renaming method of the setting parameters, which allows the setting parameters to be encoded to be converted into renamed setting parameters.
Следует напомнить, что переименование установочных параметров осуществляется в фазе Р защиты. Для этого предпочтительного варианта средства 20 восстановления представляют собой средства, применяющие метод декодирования, позволяющий декодировать переименованные установочные параметры и восстановить таким образом идентичность зависимых функций, которые требуется выполнить в устройстве 6. Эти средства восстановления применяются в устройстве 6 и могут быть как программными, так и аппаратными. Средства 20 восстановления запрашиваются в фазе и использования каждый раз, когда команда запуска с переименованными установочными параметрами выполняется в системе 3 обработки данных с целью вызвать в устройстве 6 выполнение зависящей функции.It should be recalled that the renaming of the settings is carried out in phase P protection. For this preferred embodiment, the recovery tools 20 are tools that use a decoding method to decode the renamed settings and thus restore the identity of the dependent functions that must be performed on the device 6. These recovery tools are used on the device 6 and can be either software or hardware. Recovery means 20 are requested in phase and use each time a start command with renamed settings is executed in the data processing system 3 in order to cause a dependent function in the device 6.
-24005465-24005465
Согласно другой предпочтительной характеристике изобретения способ защиты направлен на реализацию принципа защиты, названного условным переходом, описание которого проиллюстрировано фиг. 90-92.According to another preferred characteristic of the invention, the protection method is aimed at implementing the protection principle called conditional transition, the description of which is illustrated in FIG. 90-92.
Для реализации принципа защиты при помощи условного перехода в исходном коде 2ν§ уязвимой программы выбирается по меньшей мере один условный переход ВС. Выбирается также по меньшей мере один фрагмент исходного кода 2ν§ уязвимой программы, содержащей по меньшей мере один выбранный условный переход ВС.To implement the protection principle by using a conditional transition in the source code 2ν§ of the vulnerable program, at least one conditional transition of the aircraft is selected. At least one fragment of the source code 2ν§ of the vulnerable program containing at least one selected conditional transition of the aircraft is also selected.
В данном варианте по меньшей мере один выбранный фрагмент кода 2ν§ уязвимой программы модифицируется, чтобы получить исходный код 2р§ защищенной программы. Эта модификация такова, что в ходе выполнения защищенной программы 2р:In this embodiment, at least one selected fragment of the 2ν§ code of the vulnerable program is modified to obtain the source code 2р§ of the protected program. This modification is such that during the execution of the protected 2p program:
по меньшей мере один фрагмент первой выполняемой части 2ре§, которая выполняется в системе 3 обработки данных, учитывает то, что функциональная возможность по меньшей мере одного выбранного условного перехода ВС выполняется в устройстве 6;at least one fragment of the first executable part 2p§, which is executed in the data processing system 3, takes into account that the functionality of at least one selected conditional transition BC is performed in the device 6;
вторая выполняемая часть 2реи, которая выполняется в устройстве 6, выполняет, по меньшей мере, функциональную возможность по меньшей мере одного выбранного условного перехода ВС и предоставляет системе 3 обработки данных информацию, позволяющую первой выполняемой части 2ре§ продолжить свое выполнение в выбранном месте. Первая выполняемая часть 2ре§ защищенной программы 2р, выполняемая в системе 3 обработки данных, выполняет команды условных переходов, что вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, вынесенных условных переходов Ьс, функциональные возможности которых эквивалентны функциональным возможностям выбранных условных переходов ВС. Для реализации принципа защиты при помощи условного перехода устройство 6 содержит средства 15 запоминания и средства 16 обработки.the second executable part 2reya, which is executed in the device 6, performs at least the functionality of at least one selected conditional transition BC and provides the data processing system 3 with information that allows the first executable part 2re§ to continue its execution in the selected place. The first executable part 2p§ of the protected program 2p, executed in the data processing system 3, executes conditional branch commands, which causes the device 6 to execute, by means of the second executable part 2rei, of the rendered conditional transitions bc, the functionality of which is equivalent to the functionality of the selected conditional transitions BC. To implement the principle of protection using a conditional transition, the device 6 contains means 15 for storing and means 16 for processing.
На фиг. 90 приведен пример выполнения уязвимой программы 2ν. В этом примере в ходе выполнения уязвимой программы 2ν в системе 3 обработки данных в данный момент времени имеет место условный переход ВС, указывающий уязвимой программе 2ν место, где следует продолжить ее выполнение, а именно одно из трех возможных мест В1, В2 или В3. Следует понимать, что условный переход ВС принимает решение продолжить выполнение программы в месте В1, В2 или В3.In FIG. 90 shows an example of execution of the vulnerable program 2ν. In this example, during the execution of the vulnerable program 2ν in the data processing system 3 at the given moment, a conditional transition of the aircraft takes place, indicating to the vulnerable program 2ν the place where to continue its execution, namely one of the three possible places В 1 , В 2 or В 3 . It should be understood that the conditional transition of the aircraft decides to continue the program at location B 1 , B 2 or B 3 .
На фиг. 91 приведен пример реализации изобретения, в котором условный переход, отобранный для переноса в устройство 6, соответствует условному переходу ВС.In FIG. 91 shows an example embodiment of the invention in which the conditional transition selected for transfer to the device 6 corresponds to the conditional transition of the aircraft.
В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р в присутствии устройства 6 имеют место:In this example, during the execution of the first executable part 2Р§ of the protected program 2Р in the data processing system 3 in the presence of the device 6, the following takes place:
в момент ΐι - выполнение команды СВС1 условного перехода, что вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, вынесенного условного перехода Ьс, алгоритмически эквивалентного условному переходу ВС, причем эта команда СВС1 условного перехода представлена как ТВЮ(Ьс);at the moment ΐι - the execution of the conditional transition instruction CBC1, which causes the device 6 to execute, by means of the second executable part 2, the rendered conditional transition bc, algorithmically equivalent to the conditional transition BC, and this conditional transition command CBC1 is represented as TWT (bc);
и в момент ί2 - передача устройством 6 системе 3 обработки данных информации, позволяющей первой выполняемой части 2ре§ продолжить свое выполнение в выбранном месте, а именно, Вь В2 или В3.and when ί 2 - transfer device 6 3 system data information processing, allowing first executable portion 2re§ continue its execution at the selected place, namely, B s B 2 or B 3.
Следует отметить, что в ходе выполнения фрагмента первой выполняемой части 2ре§ защищенной программы 2р команды условных переходов, которые выполняются в системе 3 обработки данных, запускают выполнение соответствующих вынесенных условных переходов в устройстве 6. Таким образом, представляется, что в присутствии устройства 6 эта часть выполняется корректно и, следовательно, защищенная программа 2р является полнофункциональной.It should be noted that during the execution of the fragment of the first executable part 2Р§ of the protected program 2Р, the conditional branch commands that are executed in the data processing system 3 start the execution of the corresponding remote conditional branches in the device 6. Thus, it appears that in the presence of the device 6 this part It runs correctly and, therefore, the 2p protected program is fully functional.
На фиг. 92 приведен пример попытки выполнения защищенной программы 2р при отсутствии устройства 6. В этом примере в ходе выполнения в системе 3 обработки данных первой выполняемой части 2ре§ защищенной программы 2р:In FIG. 92 is an example of an attempt to execute a protected 2p program in the absence of device 6. In this example, during the execution in the data processing system 3 of the first executable part 2p§ of the protected 2p program:
в момент ί! выполнение команды СВС1 условного перехода не может вызвать выполнение вынесенного условного перехода Ьс, учитывая отсутствие устройства 6;at the moment ί! the execution of the conditional branch transition mechanism CBS1 cannot cause the remote conditional transition bc to be executed, given the absence of device 6;
и в момент ί2 попытка передачи информации, позволяющей первой выполняемой части 2ре§ продолжить выполнение в выбранном месте, не может быть успешной в связи с отсутствием устройства 6.and at the time ί 2, an attempt to transmit information that allows the first executable part 2р§ to continue execution at the selected location cannot be successful due to the absence of device 6.
Таким образом, в отсутствие устройства 6 по меньшей мере один запрос одного фрагмента первой выполняемой части 2ре§ на запуск выполнения вынесенного условного перехода в устройстве 6 не может быть корректно выполнен. Поэтому, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной.Thus, in the absence of device 6, at least one request of one fragment of the first executable part 2р§ to start execution of the rendered conditional transition in device 6 cannot be correctly executed. Therefore, at least this part is not executed correctly, and, therefore, the protected 2p program is not fully functional.
В предшествующем описании, проиллюстрированном на фиг. 90-92, настоящее изобретение направлено на вынос в устройство 6 одного условного перехода. Разумеется, предпочтительный вариант осуществления изобретения может состоять в передаче в устройство 6 серии условных переходов, глобальные функциональные возможности которых эквивалентны ансамблю функциональных возможностей вынесенных условных переходов. Выполнение глобальных функциональных возможностей этой серии вынесенных условных переходов приводит к тому, что системе 3 обработки данных предоставляется информация, позволяющая первой выполняемой части 2ре§ защищенной программы 2р продолжить свое выполнение в выбранном месте.In the preceding description illustrated in FIG. 90-92, the present invention is directed to the removal into the device 6 of one conditional transition. Of course, a preferred embodiment of the invention may consist in transferring to the device 6 a series of conditional transitions, the global functionality of which is equivalent to the ensemble of functionality of the rendered conditional transitions. Fulfillment of the global functionality of this series of rendered conditional transitions leads to the fact that the data processing system 3 is provided with information allowing the first executable part 2Р§ of the protected program 2Р to continue its execution in the selected place.
-25005465-25005465
В предшествующем описании, проиллюстрированном фиг. 40-92, шесть различных принципов защиты программы были разъяснены в общем виде независимо один от другого. Способ защиты согласно изобретению может быть реализован с применением принципа защиты при помощи переменной, к которому можно добавить один или несколько других принципов защиты. В случае, когда принцип защиты при помощи переменной дополняется реализацией по меньшей мере одного другого принципа защиты, принцип защиты при помощи переменной предпочтительно дополнить принципом защиты при помощи разделения во времени и/или принципом защиты при помощи элементарных функций.In the preceding description illustrated in FIG. 40-92, six different principles of program protection were explained in general terms independently of one another. The protection method according to the invention can be implemented using the principle of protection with a variable, to which one or more other protection principles can be added. In the case where the principle of protection with a variable is supplemented by the implementation of at least one other principle of protection, the principle of protection with a variable is preferably supplemented with the principle of protection with time separation and / or the principle of protection with elementary functions.
Если таким образом применяется принцип защиты при помощи разделения во времени, то он может быть дополнен, в свою очередь, принципом защиты при помощи элементарных функций и/или принципом защиты при помощи условного перехода.If the principle of protection by means of time division is applied in this way, it can be supplemented, in turn, by the principle of protection by means of elementary functions and / or the principle of protection by conditional transition.
Если таким образом применяется принцип защиты при помощи элементарных функций, то он может быть дополнен, в свою очередь, принципом защиты при помощи детектирования и принуждения и/или принципом защиты при помощи переименования, и/или принципом защиты при помощи условного перехода.If the principle of protection by means of elementary functions is applied in this way, it can be supplemented, in turn, by the principle of protection by means of detection and coercion and / or the principle of protection by renaming, and / or the principle of protection by conditional branching.
Если таким образом применяется принцип защиты при помощи детектирования и принуждения, то он может быть дополнен, в свою очередь, принципом защиты при помощи переименования и/или принципом защиты при помощи условного перехода. И если также применяется принцип защиты при помощи переименования, то он может быть дополнен, в свою очередь, принципом защиты при помощи условного перехода.If the principle of protection by means of detection and coercion is applied in this way, then it can be supplemented, in turn, by the principle of protection by renaming and / or the principle of protection by conditional branching. And if the principle of protection by renaming is also applied, then it can be supplemented, in turn, by the principle of protection by conditional transition.
В соответствии с предпочтительным вариантом реализации принцип защиты при помощи переменной дополняется принципом защиты при помощи разделения во времени, дополненным принципом защиты при помощи элементарных функций, дополненным принципом защиты при помощи детектирования и принуждения, дополненным принципом защиты при помощи переименования, дополненным принципом защиты при помощи условного перехода.According to a preferred embodiment, the principle of protection with a variable is supplemented by the principle of protection by time separation, supplemented by the principle of protection by means of elementary functions, supplemented by the principle of protection by detection and coercion, supplemented by the principle of protection by renaming, supplemented by the principle of protection by conditional transition.
В случае, когда в дополнение к принципу защиты при помощи переменной применен какой-либо иной принцип защиты, чтобы учесть такую комбинированную реализацию изобретения, приведенное выше описание должно содержать следующие модификации:In the case when, in addition to the principle of protection with a variable, any other protection principle is applied in order to take into account such a combined implementation of the invention, the above description should contain the following modifications:
понятие уязвимой программы должно пониматься в смысле уязвимости программы по отношению к описываемому принципу защиты. Так, в случае, когда принцип защиты уже был применен к уязвимой программе, выражение уязвимая программа должно интерпретироваться как выражение программа, защищенная при помощи одного или нескольких уже примененных принципов защиты;the concept of a vulnerable program should be understood in the sense of the vulnerability of the program with respect to the described protection principle. So, in the case when the protection principle has already been applied to a vulnerable program, the expression vulnerable program should be interpreted as the expression program protected by one or more protection principles already applied;
понятие защищенной программы должно пониматься в смысле защищенности программы по отношению к описываемому принципу защиты. Так, в случае, когда принцип защиты уже был применен, выражение защищенная программа должно интерпретироваться читателем как выражение новая версия защищенной программы;the concept of a protected program should be understood in the sense of program security in relation to the described protection principle. So, in the case when the protection principle has already been applied, the expression protected program should be interpreted by the reader as the expression a new version of the protected program;
один или несколько выборов, сделанный (сделанных) для реализации описываемого принципа защиты, должен (должны) учитывать выбор(ы), сделанный (сделанные) для реализации уже примененного (примененных) одного или нескольких принципов защиты.one or more choices made (made) to implement the described protection principle must (should) take into account the choice (s) made (made) to implement the already applied (applied) one or more protection principles.
Дальнейшее описание позволяет лучше понять реализацию способа защиты согласно изобретению. В этом способе защиты согласно изобретению осуществляют, как это уточняется на фиг. 100:The following description allows a better understanding of the implementation of the protection method according to the invention. In this protection method according to the invention, it is carried out as specified in FIG. one hundred:
сначала фазу Р защиты, в ходе которой уязвимая программа 2ν преобразуется в защищенную программу 2р;first, the protection phase P, during which the vulnerable program 2ν is converted into the protected program 2p;
затем фазу и использования, в ходе которой защищенная программа 2р используется, причем в фазе и использования:then the phase and use, during which the protected program 2p is used, and in the phase and use:
в присутствии устройства 6 всякий раз, когда этого требует фрагмент первой выполняемой части 2ре§, выполняемой в системе 3 обработки данных, должная функциональная возможность выполняется в устройстве 6 таким образом, что эта часть выполняется корректно, и, следовательно, защищенная программа 2р является полнофункциональной, при отсутствии устройства 6, несмотря на запрос фрагмента первой выполняемой части 2ре§ на выполнение функциональной возможности в устройстве 6, этот запрос не может быть корректно удовлетворен, так что, по меньшей мере, эта часть не выполняется корректно, и, следовательно, защищенная программа 2р не является полнофункциональной;in the presence of device 6, whenever a fragment of the first executable part 2р§ executed in the data processing system 3 requires it, the proper functionality is performed in the device 6 in such a way that this part is executed correctly, and therefore, the protected program 2p is fully functional, in the absence of device 6, despite the request of a fragment of the first executable part 2р§ to execute functionality in device 6, this request cannot be correctly satisfied, so at least This portion is not executed correctly, and therefore protected software 2p is not fully functional;
и, возможно, фазу Я перезагрузки, в ходе которой разрешается по меньшей мере одно дополнительное использование функциональной возможности, защищенной путем реализации второго предпочтительного варианта реализации принципа защиты при помощи детектирования и принуждения, использующего в качестве характеристики переменную для количественного контроля.and, possibly, the reboot phase I, during which at least one additional use of the functionality protected by implementing the second preferred embodiment of the principle of protection by detection and coercion, using as a characteristic a variable for quantitative control, is allowed.
Фаза Р защиты может быть разложена на две подфазы Р1 и Р2 защиты. Первая, названная входной, подфаза Р1 защиты реализуется независимо от подлежащей защите уязвимой программы 2ν. Вторая, названная выходной, подфаза Р2 защиты зависит от подлежащей защите уязвимой программы 2ν. Следует отметить, что входная и выходная подфазы Р1 и Р2 защиты могут быть реализованы двумя различными лицами или группами. Например, входная подфаза Р1 защиты может быть реализована сотрудником или организацией, осуществляющими разработку систем защиты программ, тогда как выходная подфаза Р2 The protection phase P can be decomposed into two protection sub-phases P 1 and P 2 . The first, called input, protection sub-phase P 1 is implemented regardless of the vulnerable program 2ν to be protected. The second, called output, sub-phase P2 of protection depends on the vulnerable program 2ν to be protected. It should be noted that the input and output sub-phases of P 1 and P 2 protection can be implemented by two different persons or groups. For example, the input protection sub-phase P 1 can be implemented by an employee or organization developing software protection systems, while the output sub-phase P 2
-26005465 защиты может быть реализована сотрудником или организацией, осуществляющими разработку программ, которые требуется защитить. Разумеется, ясно, что входная и выходная подфазы Р1 и Р2 защиты могут быть реализованы и одним сотрудником или одной организацией.-26005465 protection can be implemented by an employee or organization engaged in the development of programs that you want to protect. Of course, it is clear that the input and output sub-phases of P 1 and P 2 protection can be implemented by one employee or one organization.
Входная подфаза Р1 защиты задействует несколько стадий 8ц, ... §11, для каждой из которых необходимо выполнить несколько задач или заданий.The input sub-phase P 1 of protection involves several stages 8c, ... § 11 , for each of which it is necessary to perform several tasks or tasks.
Первая стадия этой входной подфазы Р! защиты называется стадией 811 определений.The first stage of this input subphase is P! protection is called stage 8 11 definitions.
В ходе этой стадии 811 определений выбираются:During this stage of 8 11 definitions are selected:
тип устройства 6, а именно - устройство хранения или устройство обработки и хранения. Для примера можно в качестве устройства 6 выбрать устройство 8 чтения карт с микрочипом и карту с микрочипом, связанную с устройством 8 чтения, и средства 12, 13 передачи, предназначенные для применения соответственно в системе 3 обработки данных и в устройстве 6 в фазе и использования и способные обеспечивать передачу данных между системой 3 обработки данных и устройством 6;device type 6, namely, a storage device or a processing and storage device. For example, as a device 6, you can select a card reader 8 with a microchip and a microchip card associated with the reader 8, and transmission means 12, 13, intended for use in the data processing system 3 and in the device 6 in phase and use, respectively capable of transmitting data between the data processing system 3 and the device 6;
причем в случае, когда способ защиты согласно изобретению, задействует принцип защиты при помощи элементарных функций, определяются также:moreover, in the case where the protection method according to the invention involves the principle of protection using elementary functions, are also determined:
набор элементарных функций, элементарные функции которого могут быть выполнены в устройстве 6, и набор элементарных команд для этого набора элементарных функций, причем эти элементарные команды могут быть выполнены в системе 3 обработки данных, вызывая выполнение в устройстве 6 элементарных функций;a set of elementary functions, the elementary functions of which can be performed in the device 6, and a set of elementary commands for this set of elementary functions, and these elementary commands can be executed in the data processing system 3, causing execution of the elementary functions in the device 6;
причем в случае, когда способ защиты согласно изобретению задействует принцип защиты при помощи детектирования и принуждения, должны быть предусмотрены также:moreover, in the case where the protection method according to the invention involves the principle of protection by detection and coercion, should also be provided:
по меньшей мере одна характеристика выполнения программы, которая может быть проконтролирована, по меньшей мере, частично в устройстве 6, по меньшей мере один критерий, который требуется соблюдать по меньшей мере для одной характеристики выполнения программы, средства 17 детектирования, которые необходимо применять в устройстве 6 и которые позволяют обнаружить, что по меньшей мере одна характеристика выполнения программы не отвечает по меньшей мере одному соответствующему критерию, и средства 18 принуждения, которые необходимо применять в устройстве 6 и которые позволяют проинформировать систему 3 обработки данных и/или модифицировать ход выполнения программы, если хотя бы один критерий не соблюдается;at least one characteristic of program execution, which can be monitored at least partially in device 6, at least one criterion that must be met for at least one characteristic of program execution, detection means 17, which must be applied in device 6 and which make it possible to detect that at least one characteristic of program execution does not meet at least one relevant criterion, and coercive means 18 that must be applied in the device 6 and which allow to inform the data processing system 3 and / or modify the program progress if at least one criterion is not met;
причем в случае, когда способ защиты согласно изобретению задействует принцип защиты при помощи детектирования и принуждения, использующий, в качестве характеристики, переменную для количественного контроля выполнения программы, должны быть определены также:moreover, in the case where the protection method according to the invention involves the principle of protection by detection and coercion, using, as a characteristic, a variable for quantitative control of program execution, the following should also be determined:
в качестве характеристики выполнения программы, которая может быть проконтролирована, - переменная для количественного контроля использования одной функциональной возможности программы, в качестве критерия, который необходимо соблюдать, - по меньшей мере одно пороговое значение, связанное с каждой переменной для количественного контроля, и средства обновления, позволяющие обновить по меньшей мере одну переменную для количественного контроля;as a characteristic of the execution of the program that can be monitored, a variable for quantitative control of the use of one functionality of the program, as a criterion that must be observed, at least one threshold value associated with each variable for quantitative control, and means of updating, allowing you to update at least one variable for quantitative control;
причем в случае, когда способ защиты согласно изобретению задействует первый предпочтительный вариант реализации принципа защиты с помощью детектирования и принуждения, использующий, в качестве характеристики, переменную для количественного контроля выполнения программы, должны быть предусмотрены также:moreover, in the case where the protection method according to the invention involves the first preferred embodiment of the principle of protection by detection and coercion, using, as a characteristic, a variable for quantitative control of program execution, should also be provided:
по меньшей мере для одной переменной для количественного контроля несколько соответствующих пороговых значений, и различные средства принуждения, соответствующие каждому из этих пороговых значений;for at least one variable for quantitative control, several corresponding threshold values, and various coercive means corresponding to each of these threshold values;
причем в случае, когда способ защиты согласно изобретению задействует второй предпочтительный вариант реализации принципа защиты с помощью детектирования и принуждения, использующий, в качестве характеристики, переменную для количественного контроля выполнения программы, предусматриваются также средства перезагрузки, позволяющие разрешить по меньшей мере одно дополнительное использование по меньшей мере одной функциональной возможности программы, контролируемой при помощи переменной для количественного контроля;moreover, in the case where the protection method according to the invention employs a second preferred embodiment of the principle of protection by detection and coercion, using, as a characteristic, a variable for quantitative control of program execution, reloading means are also provided that allow at least one additional use of at least at least one program functionality controlled by a variable for quantitative control;
причем в случае, когда способ защиты согласно изобретению задействует принцип защиты при помощи детектирования и принуждения, использующий в качестве характеристики профиль использования программы, должны быть предусмотрены также:moreover, in the case when the protection method according to the invention involves the principle of protection by detection and coercion, using the profile of the use of the program as a characteristic, should also be provided:
в качестве характеристики выполнения программы, которая может быть проконтролирована, - профиль использования программы, и в качестве критерия, который требуется соблюдать, - по меньшей мере один признак выполнения программы;as a characteristic of the program that can be monitored, is the profile of the use of the program, and as a criterion that must be observed is at least one sign of the program;
-27005465 причем в случае, когда способ защиты согласно изобретению задействует принцип защиты при помощи детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения, должны быть предусмотрены также:-27005465 and in the case where the protection method according to the invention involves the principle of protection by detection and coercion, where as a sign of fulfillment that you want to comply with, use is made of the clutch control of execution, should also be provided:
набор инструкций, инструкции из состава которого могут быть выполнены в устройстве 6, набор команд инструкций для указанного набора инструкций, причем эти команды инструкций могут быть выполнены в системе 3 обработки данных, вызывая в устройстве 6 выполнение инструкций, в качестве профиля использования - сцепление инструкций, в качестве признака выполнения - желаемое сцепление для выполнения инструкций, в качестве средств 17 детектирования - средства, позволяющие обнаружить, что сцепление инструкций не соответствует желаемому, и в качестве средств 18 принуждения - средства, позволяющие информировать систему 3 обработки данных и/или модифицировать функционирование фрагмента защищенной программы 2р, если сцепление инструкций не соответствует желаемому;a set of instructions, the instructions of which can be executed in the device 6, a set of instructions for the specified set of instructions, and these instructions can be executed in the data processing system 3, causing instructions to be executed in the device 6, coupling instructions as the usage profile, as a sign of fulfillment, the desired grip for executing the instructions, as detection means 17, means to detect that the grip of the instructions does not match the desired, and in quality forcing means 18 - means to inform the system data 3 and / or modify the operation of the protected program fragment 2p, if the document does not correspond to the desired clutch;
а в случае, когда способ защиты согласно изобретению задействует предпочтительный вариант реализации принципа защиты с помощью детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения, должны быть предусмотрены также:and in the case where the protection method according to the invention employs a preferred embodiment of the principle of protection by detection and coercion, where as a sign of fulfillment to be followed, use is made of the control of fulfillment, should also be provided:
в качестве набора инструкций - набор инструкций, из которого, по меньшей мере, некоторые инструкции работают на регистрах и используют по меньшей мере один операнд для выдачи результата по меньшей мере для одной части инструкций, работающих на регистрах:as a set of instructions, a set of instructions from which at least some instructions operate on registers and use at least one operand to produce the result for at least one part of instructions operating on registers:
часть РР, задающая функциональную возможность инструкции, и часть, задающая желаемое сцепление для выполнения инструкций и содержащая битовые поля, соответствующие:a PP part defining the functionality of the instruction, and a part specifying the desired grip for executing the instructions and containing bit fields corresponding to:
полю С11 идентификации инструкции, и для каждого операнда инструкции:field C11 identification instructions, and for each operand instruction:
* полю ί.Ό(: флага, * и полю С1Рк идентификации, предусмотренной для операнда, для каждого регистра, принадлежащего к средствам эксплуатации и используемого набором инструкций, - поле СЮУ генерируемой идентификации, в котором автоматически запоминается идентификация последней инструкции, возвратившей свой результат в этот регистр, в качестве средств 17 детектирования - средства, позволяющие в ходе выполнения инструкции для каждого операнда, если этого требует поле ί.Ό(: флага, контролировать равенство между полем СЮУ генерируемой идентификации, соответствующим регистру, используемому этим операндом, и полем С1Рк предусмотренной идентификации начального адреса этого операнда, и в качестве средств 18 принуждения - средства, позволяющие модифицировать результат инструкции, если по меньшей мере одно из контролируемых равенств ложно;* Field ί.Ό (: flag, * and field S1R to the identification provided for the operand, for each register belonging to the exploitation means and used a set of instructions, - SY field have generated the identification, which is automatically memorized the identification of the last instruction, the return of your the result in the register, as the detection means 17 - means to during execution of the instruction for each operand, if required ί.Ό field (: flag control equality between the field generated by the ID manually XU Y katsii corresponding to registers used by this operand, and field S1R provided to identify the start address of the operand, and means 18 as coercive - means to modify the instruction result, if at least one of the monitored equations is false;
причем в случае, когда способ защиты согласно изобретению задействует принцип защиты при помощи переименования, должны быть предусмотрены также:moreover, in the case where the protection method according to the invention involves the principle of protection by renaming, should also be provided:
в качестве команды запуска - элементарная команда или команда инструкции, в качестве зависимой функции - элементарная функция или инструкция, в качестве установочного параметра, - по меньшей мере один аргумент для команды запуска, соответствующий, по меньшей мере, частично информации, переданной системой 3 обработки данных на устройство 6, чтобы вызвать запуск соответствующей зависящей функции, метод переименования установочных параметров, позволяющий переименовать установочные параметры, чтобы получить команды запуска с переименованными параметрами, и средства 20 восстановления, предназначенные для применения в устройстве 6 в фазе и использования и позволяющие вновь найти зависимую функцию, которую требуется выполнить, исходя из переименованного установочного параметра, причем в случае, когда способ защиты согласно изобретению задействует вариант принципа защиты при помощи переименования, определяется также по меньшей мере для одной зависящей функции, семейство зависящих функций, алгоритмически эквивалентных, но вызываемых командами запуска, переименованные установочные параметры которых являются различными, а в случае, когда способ защиты согласно изобретению, задействует ту или иную предпочтительную реализацию варианта принципа защиты при помощи переименования, определяется также по меньшей мере для одной зависящей функции, семейство зависящих функций, алгоритмически эквивалентных:as a start command, an elementary command or instruction command, as a dependent function, an elementary function or instruction, as a setting parameter, at least one argument for the start command corresponding at least partially to the information transmitted by the data processing system 3 to device 6, to cause the start of the corresponding dependent function, the method of renaming settings, which allows you to rename the settings to receive start commands from the renamed parameters, and means of recovery 20, intended for use in the device 6 in phase and use and allowing again to find the dependent function that needs to be performed based on the renamed setting parameter, and in the case when the protection method according to the invention involves a variant of the protection principle with renaming is also defined for at least one dependent function, a family of dependent functions, algorithmically equivalent, but called by run commands, renamed settings ovochnye parameters which are different, and in the case where the method of protection according to the invention uses a particular preferred implementation of the embodiment using the principle of protection renaming is also determined for the at least one independent function, a family of dependent functions algorithmically equivalent:
посредством сцепления поля шумов с информацией, определяющей ту функциональную часть зависящей функции, которая выполняется в устройстве 6, или посредством использования поля С11 идентификации инструкции и поля С1Рк предусмотренной идентификации операндов;by coupling the noise field with information defining the functional part of the dependent function that is performed in the device 6, or by using the instruction identification field C11 and the C1P field to the provided operand identification;
причем в случае, когда способ защиты согласно изобретению задействует предпочтительный вариант принципа защиты при помощи переименования, должны быть предусмотрены также:moreover, in the case where the protection method according to the invention involves the preferred variant of the principle of protection by renaming, should also be provided:
-28005465 в качестве метода переименования установочных параметров - метод кодирования для кодировки установочных параметров, и в качестве средств 20 восстановления - средства, применяющие метод декодирования для раскодирования переименованных установочных параметров и восстановления идентичности зависимых функций, которые требуется выполнить в устройстве 6.-28005465 as a method for renaming settings — the encoding method for encoding the settings, and as recovery means 20 — tools that use the decoding method to decode the renamed settings and restore the identity of the dependent functions that need to be performed on device 6.
В ходе входной подфазы защиты за стадией 811 определения следует стадия, названная стадия 812 конструирования. В ходе такой стадии 812 конструируются средства 12, 13 передачи и, возможно, средства эксплуатации, соответствующие определениям стадии 811 определения.During the input protection sub-phase, the determination step 8 11 is followed by a step called the design step 8 12 . During this step 8, 12 are constructed means 12, transmission 13, and possibly operating means corresponding definitions 11 determines step 8.
В ходе этой стадии 812 конструирования приступают, следовательно к конструированию средств 12, 13 передачи, позволяющих, в ходе фазы и использования осуществлять передачу данных между системой 3 обработки данных и устройством 6;During this step 8, 12 begin constructing hence to designing means 12, transmission 13, allowing, during the use phase, and transmit data between system 3 and the data processing device 6;
если также применяется принцип защиты при помощи элементарных функций, к построению средств эксплуатации, позволяющих устройству 6 в фазе и использования выполнять элементарные функции из набора элементарных функций;if the principle of protection by means of elementary functions is also applied to the construction of operating means that allow the device 6 in phase and use to perform elementary functions from a set of elementary functions;
и (если также применяется принцип защиты при помощи детектирования и принуждения), к конструированию:and (if the principle of protection by means of detection and coercion is also applied), to the construction of:
средств эксплуатации, позволяющих устройству 6 в фазе и использования также задействовать средства 17 детектирования и средства 18 принуждения, и, возможно, средств эксплуатации, позволяющих устройству 6 в фазе и использования также задействовать средства обновления, а также, возможно, средств эксплуатации, позволяющих устройству 6 в фазе перезагрузки задействовать также средства перезагрузки, а также, возможно, средств эксплуатации, позволяющих устройству 6 в фазе и использования выполнять инструкции из набора инструкций;operating means allowing the device 6 in phase and use to also use detection means 17 and coercive means 18, and possibly operating means allowing the device 6 in phase and use to also use updating means, and also, possibly, operating means allowing the device 6 in the reboot phase, also use the reboot tools, as well as, possibly, operating tools that allow the device 6 in the phase and use to follow the instructions from the set of instructions;
и (если также применяется принцип защиты при помощи переименования) к построению средств эксплуатации, позволяющих устройству 6 в фазе и использования задействовать также средства восстановления.and (if the principle of protection by renaming also applies) to the construction of operating means allowing the device 6 in phase and use to use also means of restoration.
Конструирование средств эксплуатации осуществляют обычным образом, посредством устройства разработки программ с учетом определений, введенных на стадии 811 определений. Подобное устройство описано далее и проиллюстрировано фиг. 110.The design of the operating means is carried out in the usual way, by means of a program development device, taking into account the definitions introduced in stage 8 of 11 definitions. A similar device is described below and illustrated in FIG. 110.
В ходе входной подфазы Р1 защиты за стадией 812 конструирования может последовать стадия, названная стадией 813 предперсонализации. В ходе этой стадии 813 предперсонализации, по меньшей мере, средства 13 передачи и средства эксплуатации загружаются по меньшей мере в одно незадействованное устройство 60, чтобы получить по меньшей мере одно предперсонализированное устройство 66. Следует отметить, что часть средств эксплуатации, будучи перенесена в предперсонализированное устройство 66, более недоступна напрямую извне этого предперсонализированного устройства 66. Передача средств эксплуатации в незадействованное устройство 60 может быть реализована посредством адаптированного устройства предперсонализации, которое описано далее и проиллюстрировано фиг. 120. В случае предперсонализированного устройства 66, состоящего из карты 7 с микрочипом и устройства 8 ее чтения, предперсонализация касается только карты 7 с микрочипом.During the input protection sub-phase P 1, a design step 8 12 may be followed by a step called pre-personalization step 8 13 . During this pre-personalization stage 8 13 , at least the transmission means 13 and the operating means are loaded into at least one idle device 60 to obtain at least one pre-personalized device 66. It should be noted that part of the operating means, being transferred to the pre-personalized device 66 is no longer directly accessible from the outside of this pre-personalized device 66. The transfer of operating means to an idle device 60 can be implemented by adapting of this pre-personalization device, which is described later and illustrated in FIG. 120. In the case of a pre-personalized device 66, consisting of a card 7 with a microchip and a device 8 for reading it, pre-personalization applies only to a card 7 with a microchip.
В ходе входной подфазы Р1 защиты, после стадии 811 определений и, возможно, после стадии 812 конструирования, может быть осуществлена также стадия, названная стадией 814 изготовления средств. В ходе этой стадии 814 изготовления средств производятся средства, позволяющие помочь созданию защищенных программ или автоматизировать защиту программ.During the input protection sub-phase P 1 , after the determination stage 8 11 and, possibly, after the construction stage 8 12 , a step called the means manufacturing step 8 14 can also be carried out. During this phase, August 14 manufacturing assets produced tools to help create secure programs or to automate the protection of software.
Такие средства позволяют помочь выбрать или автоматически выбрать в уязвимой программе 2ν, которую требуется защитить:Such tools can help you choose or automatically select in the vulnerable 2ν program that you want to protect:
одну или несколько переменных, которые могут быть вынесены в устройство 6, фрагменты, которые могут быть изменены, если также применяется принцип защиты при помощи разделения во времени, - один или несколько алгоритмов, которые могут быть разложены на этапы, которые можно вынести в устройство 6, если также применяется принцип защиты при помощи элементарных функций, - один или несколько алгоритмов, которые могут быть разложены на элементарные функции, которые можно вынести в устройство 6, и, если также применяется принцип защиты при помощи детектирования и принуждения, - одну или несколько характеристик выполнения, которые необходимо проконтролировать, и, возможно, один или несколько алгоритмов, которые могут быть разложены на инструкции, которые можно вынести в устройство 6, если также применяется принцип защиты при помощи переименования, -один или несколько алгоритмов, которые могут быть разложены на зависимые функции, которые можно вынести в устройство 6 и для которых установочные параметры команд запуска могут быть переименованы, и, если также применяется принцип защиты при помощи условного перехода, - один или несколько условных переходов, функциональная возможность которых может быть вынесена в устройство 6;one or more variables that can be transferred to device 6, fragments that can be changed if the principle of protection by time separation is also applied - one or more algorithms that can be decomposed into steps that can be transferred to device 6 if the principle of protection using elementary functions is also applied, one or more algorithms that can be decomposed into elementary functions that can be transferred to device 6, and if the principle of protection using design and enforcement, - one or more performance characteristics that need to be monitored, and possibly one or more algorithms that can be decomposed into instructions that can be transferred to device 6, if the principle of protection by renaming is also applied, one or several algorithms that can be decomposed into dependent functions that can be transferred to device 6 and for which the installation parameters of the launch commands can be renamed, and if the protection principle is also applied and using conditional transitions, one or more conditional transitions, the functionality of which can be transferred to device 6;
-29005465 и, возможно, помочь создать защищенные программы или автоматизировать защиту программ.-29005465 and possibly help create protected programs or automate program protection.
Эти различные средства могут быть реализованы независимо или в сочетании, причем каждое средство может принимать различные формы, например, представлять собой препроцессор, ассемблер, компилятор и т.п. За входной подфазой Р1 защиты следует выходная подфаза Р2 защиты, зависящая от подлежащей защите уязвимой программы 2ν. Эта выходная подфаза Р2 защиты также предусматривает несколько стадий. Первая стадия, соответствующая реализации принципа защиты при помощи переменной, называется стадия 821 создания. В ходе этой стадии 821 создания используется выбор, сделанный на стадии 811 определений. При помощи этого выбора и, возможно, средств, сконструированных на стадии 814 изготовления средств, защищенная программа 2р создается:These various tools can be implemented independently or in combination, and each tool can take various forms, for example, be a preprocessor, assembler, compiler, etc. The input protection sub-phase P 1 is followed by the output protection sub-phase P 2 , which depends on the vulnerable program 2ν to be protected. This output sub-phase P 2 of the protection also includes several stages. The first stage, corresponding to the implementation of the principle of protection with the help of a variable, is called the creation stage 8 21 . During this creation stage 8 21 , the selection made in the determination stage 8 11 is used. Using this selection and, possibly, the tools designed in step 8-14 of manufacturing the means, a secure program 2p is created:
посредством выбора в исходном коде 2ν§ уязвимой программы:by selecting the vulnerable program in the 2ν§ source code:
по меньшей мере одной переменной, которая, в ходе выполнения уязвимой программы 2ν, частично определяет ее состояние, и, по меньшей мере одного фрагмента, содержащего по меньшей мере одну выбранную переменную;at least one variable, which, during the execution of the vulnerable program 2ν, partially determines its state, and at least one fragment containing at least one selected variable;
посредством создания исходного кода 2р§ защищенной программы на основе исходного кода 2ν§ уязвимой программы модифицированием по меньшей мере одного выбранного фрагмента кода 2ν§ уязвимой программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р по меньшей мере одна выбранная переменная или одна копия выбранной переменной находится в незадействованном устройстве 60, которое тем самым превращается в устройство 6;by creating the source code 2p§ of the protected program on the basis of the source code 2ν§ of the vulnerable program by modifying at least one selected fragment of the code 2ν§ of the vulnerable program, and this modification is such that during the execution of the protected program 2p at least one selected variable or one copy the selected variable is located in an idle device 60, which thereby turns into a device 6;
и посредством создания первой части 2ро§ объектного кода защищенной программы 2р на основе исходного кода 2р§ защищенной программы, причем эта первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р реализуется первая выполняемая часть 2ре§, которая выполняется в системе 3 обработки данных, и по меньшей мере в одной части которой учитывается, что по меньшей мере одна переменная или одна копия переменной находится в устройстве 6. Разумеется, принцип защиты при помощи переменной согласно изобретению может быть применен непосредственно в ходе разработки новой программы без необходимости предварительной реализации уязвимой программы 2ν. Таким образом защищенная программа 2р непосредственно получается в ходе выходной подфазы Р2 защиты. При этом в случае, когда применен по меньшей мере один другой принцип защиты, в дополнение к принципу защиты при помощи переменной, реализуется стадия 822 модификации. В ходе этой стадии 822 модификации используются определения, введенные на стадии 811 определений. С использованием этих определений и, возможно, средств, сконструированных на стадии 814 изготовления средств, защищенная программа 2р модифицируется таким образом, чтобы позволить реализовать принципы защиты в соответствии с одной из компоновок, определенных выше.and by creating the first part 2prog of the object code of the protected program 2p based on the source code 2p§ of the protected program, and this first part 2po§ of the object code is such that during the execution of the protected program 2p the first executable part 2p§ is executed, which is executed in the system 3 data processing, and in at least one part of which it is taken into account that at least one variable or one copy of the variable is in the device 6. Of course, the principle of protection with the variable according to the invention can be rimenen directly in the development of a new program without the need to pre-implementation 2ν vulnerable program. Thus, the protected 2p program is directly obtained during the output protection sub-phase P2. Moreover, in the case when at least one other protection principle is applied, in addition to the principle of protection with a variable, a modification stage 8 22 is implemented. During this step, 22 August modifying the definitions introduced in step August 11 determinations. Using these definitions and, possibly, the tools designed in step 8-14 of manufacturing the means, the protected program 2p is modified to allow the protection principles to be implemented in accordance with one of the configurations defined above.
Когда применяется принцип защиты при помощи разделения во времени, защищенная программа 2р модифицируется следующим образом:When the principle of protection by time separation is applied, the protected 2p program is modified as follows:
посредством выбора в исходном коде 2р§ защищенной программы:by selecting a protected program in the 2p§ source code:
по меньшей мере одного алгоритма, который в ходе выполнения защищенной программы 2р использует по меньшей мере одну выбранную переменную и позволяет получить по меньшей мере одну результирующую переменную, и по меньшей мере одного фрагмента, содержащего по меньшей мере один выбранный алгоритм;at least one algorithm that during the execution of the protected program 2p uses at least one selected variable and allows to obtain at least one resulting variable, and at least one fragment containing at least one selected algorithm;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что:by modifying at least one selected piece of code 2p§ of the protected program, and this modification is such that:
в ходе выполнения защищенной программы 2р первая выполняемая часть 2ре§ выполняется в системе 3 обработки данных, а вторая выполняемая часть 2реи выполняется в устройстве 6, которое также содержит средства 16 обработки, по меньшей мере, функциональная возможность по меньшей мере одного выбранного алгоритма выполняется посредством второй выполняемой части 2реи, по меньшей мере один выбранный алгоритм разлагается таким образом, что в ходе выполнения защищенной программы 2р реализуются, при посредстве второй выполняемой части 2реи, несколько различных этапов, а именно:during the execution of the protected program 2p, the first executable part 2p§ is executed in the data processing system 3, and the second executable part 2prey is executed in the device 6, which also contains processing means 16, at least the functionality of at least one selected algorithm is performed by the second of the executable part 2reya, at least one selected algorithm is decomposed in such a way that during the execution of the protected program 2p, several various stages, namely:
предоставление по меньшей мере одной переменной для устройства 6, реализация в устройстве 6 функциональной возможности алгоритма, выполняемой, по меньшей мере, над этой переменной, и, возможно, предоставление по меньшей мере одной результирующей переменной устройством 6 для системы 3 обработки данных, по меньшей мере для одного выбранного алгоритма команды этапов определены таким образом, что в ходе выполнения защищенной программы 2р каждая команда этапа выполняется посредством первой выполняемой части 2ре§ и вызывает в устройстве 6 выполнение этапа посредством второй выполняемой части 2реи, причем упорядочение команд этапов выбрано среди ансамбля упорядочений, позволяющих выполнение защищенной программы 2р;the provision of at least one variable for the device 6, the implementation in the device 6 of the functionality of the algorithm performed on at least this variable, and, possibly, the provision of at least one resulting variable by the device 6 for the data processing system 3, at least for one selected algorithm, the instructions of the steps are determined in such a way that during the execution of the protected program 2p, each command of the step is executed by the first executable part 2р§ and causes execution in the device 6 the execution of the stage by means of the second executable part 2reya, wherein the ordering of the instructions of the stages is selected among the ensemble of orderings allowing the execution of the protected 2p program;
и посредством создания:and by creating:
-30005465 первой части 2ро§ объектного кода защищенной программы 2р, причем первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р команды этапов выполняются в соответствии с выбранным упорядочением, и второй части 2рои объектного кода защищенной программы 2р, причем вторая часть 2рои объектного кода такова, что после загрузки в незадействованное устройство 60, в ходе выполнения защищенной программы 2р реализуется вторая выполняемая часть 2реи, посредством которой выполняются этапы, запуск выполнения которых был вызван первой выполняемой частью 2ре§.-30005465 of the first part of the object code of the protected program 2p, the first part of the object code 2pg is such that during the execution of the protected program 2p, the instructions of the steps are executed in accordance with the selected ordering, and the second part of the 2nd object code of the protected program 2p, the second part The structure of the object code is such that after loading into an unused device 60, during the execution of the protected program 2p, the second executable part 2preya is implemented, by means of which the steps are carried out, the start of which called by the first executable part of 2p§.
Когда применяется принцип защиты при помощи элементарных функций, тогда как принцип защиты при помощи разделения во времени не применяется, защищенная программа 2р модифицируется: посредством выбора в исходном коде 2р§ защищенной программы:When the principle of protection by means of elementary functions is applied, while the principle of protection by time division is not applied, the protected 2p program is modified: by selecting a protected program in the 2p§ source code:
по меньшей мере одного алгоритма, который в ходе выполнения защищенной программы 2р использует по меньшей мере одну выбранную переменную и позволяет получить по меньшей мере одну результирующую переменную, и по меньшей мере одного фрагмента, содержащего по меньшей мере один выбранный алгоритм;at least one algorithm that during the execution of the protected program 2p uses at least one selected variable and allows to obtain at least one resulting variable, and at least one fragment containing at least one selected algorithm;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р первая выполняемая часть 2ре§ выполняется в системе 3 обработки данных, а вторая выполняемая часть 2реи выполняется в устройстве 6, по меньшей мере, функциональная возможность по меньшей мере одного выбранного алгоритма выполняется посредством второй выполняемой части 2 реи, по меньшей мере один выбранный алгоритм разлагается таким образом, что в ходе выполнения защищенной программы 2р этот алгоритм выполняется посредством второй выполняемой части 2реи с применением элементарных функций, по меньшей мере для одного выбранного алгоритма элементарные команды интегрируются в исходный код 2р§ защищенной программы таким образом, что в ходе выполнения защищенной программы 2р каждая элементарная команда выполняется посредством первой выполняемой части 2ре§ и вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, элементарной функции, причем упорядочение элементарных команд выбирается в ансамбле упорядочений, позволяющих выполнение защищенной программы 2р;by modifying at least one selected piece of code 2p§ of the protected program, and this modification is such that during the execution of the protected program 2p the first executable part 2p§ is executed in the data processing system 3 and the second executable part 2prey is executed in the device 6, at least at least, the functionality of at least one selected algorithm is performed by the second executable part 2 of yoy, at least one selected algorithm is decomposed in such a way that during execution In a 2p protected program, this algorithm is executed by means of the second 2pree part being executed using elementary functions, for at least one selected algorithm, elementary commands are integrated into the source code of a 2p protected program so that during the execution of a 2p protected program, each elementary command is executed by the first of the executed part 2р§ and causes the device 6 to execute, by means of the second executable part 2prea, an elementary function, moreover, the ordering of elementary commands ybiraetsya ensemble ordering, allowing execution of the protected software 2p;
и посредством создания:and by creating:
первой части 2ро§ объектного кода защищенной программы 2р, причем эта первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р элементарные команды выполняются в соответствии с выбранным упорядочением, и второй части 2рои объектного кода защищенной программы 2р, содержащей средства эксплуатации, причем эта вторая часть 2рои объектного кода такова, что после загрузки в незадействованное устройство 60, в ходе выполнения защищенной программы 2р реализуется вторая выполняемая часть 2реи, посредством которой выполняются элементарные функции, запуск которых был вызван первой выполняемой частью 2ре§.the first part 2po of the object code of the protected 2p program, and this first part 2po§ of the object code is such that during the execution of the protected 2p program elementary commands are executed in accordance with the selected ordering, and the second part of the 2nd object code of the protected 2p program containing operating means, moreover, this second part 2 of the object code is such that after loading into an idle device 60, during the execution of the protected program 2p, the second executable part 2 is implemented, by means of which elementary functions are taken, the start of which was caused by the first part of 2re§ being executed.
Когда принципы защиты при помощи разделения во времени и при помощи элементарных функций применены вместе, защищенная программа 2р модифицируется:When the principles of protection using time-sharing and elementary functions are applied together, the 2p protected program is modified:
посредством выбора в исходном коде 2р§ защищенной программы по меньшей мере одного этапа, который в ходе выполнения защищенной программы 2р осуществляет функциональную возможность алгоритма;by selecting at least one stage in the source code 2p§ of the protected program, which during the execution of the protected program 2p carries out the functionality of the algorithm;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что:by modifying at least one selected piece of code 2p§ of the protected program, and this modification is such that:
по меньшей мере один выбранный этап раскладывается таким образом, что в ходе выполнения защищенной программы 2р этот этап выполняется посредством второй выполняемой части 2реи с применением элементарных функций, по меньшей мере для одного выбранного этапа элементарные команды интегрируются в исходный код 2р§ защищенной программы таким образом, что в ходе выполнения защищенной программы 2р каждая элементарная команда выполняется посредством первой выполняемой части 2ре§ и вызывает в устройстве 6 выполнение, посредством второй выполняемой части 2реи, элементарной функции, и упорядочение элементарных команд выбирается в ансамбле упорядочений, позволяющих выполнить защищенную программу 2р;at least one selected stage is decomposed in such a way that during the execution of the protected program 2p this stage is performed by means of the second executable part 2pree using elementary functions, for at least one selected stage the elementary commands are integrated into the source code 2p§ of the protected program in such a way that during the execution of the protected program 2p, each elementary command is executed by means of the first executable part 2р§ and causes execution in the device 6, by means of the second of the second part of the 2reya, the elementary function, and the ordering of the elementary commands is selected in the ensemble of orderings, allowing to execute the protected 2p program;
и посредством создания:and by creating:
первой части 2ро§ объектного кода защищенной программы 2р, причем эта первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р элементарные команды выполняются в соответствии с выбранным упорядочением, и второй части 2рои объектного кода защищенной программы 2р, содержащей также средства эксплуатации, причем эта вторая часть 2рои объектного кода такова, что после загрузки в устройство 6, в ходе выполнения защищенной программы 2р реализуется вторая выполняемая часть 2реи, посредством которой выполняются элементарные функции, запуск которых был вызван первой выполняемой частьюthe first part 2pro of the object code of the protected program 2p, and this first part 2po§ of the object code is such that during the execution of the protected program 2p the elementary commands are executed in accordance with the selected ordering, and the second part of the 2nd object code of the protected program 2p, which also contains operating means moreover, this second part 2 of the object code is such that after loading into the device 6, during the execution of the protected program 2p, the second executable part 2 of the realm is implemented, by means of which tare functions, the start of which was called by the first executable part
-31005465-31005465
2ре§. Когда применяется принцип защиты при помощи детектирования и принуждения, то защищенная программа 2р модифицируется:2 pp. When the principle of protection by means of detection and coercion is applied, the protected 2p program is modified:
посредством выбора среди характеристик выполнения, которые могут быть проконтролированы по меньшей мере одной характеристики выполнения контролируемой программы;by selecting among the execution characteristics that can be controlled by at least one performance characteristic of the monitored program;
посредством выбора по меньшей мере одного критерия, который должен выполняться по меньшей мере для одной выбранной характеристики выполнения программы;by selecting at least one criterion to be performed for at least one selected program execution characteristic;
посредством выбора в исходном коде 2р§ защищенной программы элементарных функций, для которых следует контролировать по меньшей мере одну характеристику выполнения контролируемой программы;by selecting in the source code 2p§ of the protected program elementary functions for which at least one characteristic of the execution of the controlled program should be monitored;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р, по меньшей мере одна характеристика выполнения программы контролируется посредством второй выполняемой части 2реи и несоблюдение критерия приводит к информированию системы 3 обработки данных и/или к модификации выполнения защищенной программы 2р;by modifying at least one selected code fragment 2p§ of the protected program, and this modification is such that during the execution of the protected program 2p, at least one characteristic of the program execution is controlled by the second part 2reya being executed and non-compliance with the criterion leads to informing the data processing system 3 and / or to modification of the execution of the protected 2p program;
и посредством создания второй части 2рои объектного кода защищенной программы 2р, содержащей средства эксплуатации, задействующие также средства 17 детектирования и средства 18 принуждения, причем эта вторая часть 2рои объектного кода такова, что после загрузки в устройство 6, в ходе выполнения защищенной программы 2р, по меньшей мере одна характеристика выполнения программы контролируется и несоблюдение критерия приводит к информированию системы 3 обработки данных и/или к модификации выполнения защищенной программы 2р. Для реализации принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики переменную для количественного контроля выполнения программы, защищенная программа 2р модифицируется:and by creating the second part 2 of the object code of the protected program 2p, containing operating means, also involving detection means 17 and means 18 of coercion, and this second part 2 of the object code is such that after downloading to the device 6, during the execution of the protected program 2p, at least one characteristic of program execution is monitored and non-compliance with the criterion leads to informing the data processing system 3 and / or to modification of the execution of the protected program 2p. To implement the protection principle using detection and coercion, using a variable as a characteristic for quantitative control of program execution, the protected 2p program is modified:
посредством выбора в качестве характеристики выполнения контролируемой программы по меньшей мере одной переменной для количественного контроля использования одной функциональной возможности программы;by selecting as a characteristic of the execution of the controlled program at least one variable for quantitative control of the use of one functionality of the program;
посредством выбора:by choosing:
по меньшей мере одной функциональной возможности защищенной программы 2р, использование которой можно проконтролировать с использованием переменной для количественного контроля, по меньшей мере одной переменной для количественного контроля, которая служит в качестве количественной характеристики использования упомянутой функциональной возможности, по меньшей мере одного порогового значения, связанного с выбранной переменной для количественного контроля и соответствующего пределу использования упомянутой функциональной возможности, и по меньшей мере одного метода обновления значения переменной для количественного контроля в соответствии с использованием упомянутой функциональной возможности;at least one functionality of the protected program 2p, the use of which can be controlled using a variable for quantitative control, at least one variable for quantitative control, which serves as a quantitative characteristic of the use of the mentioned functionality of at least one threshold value associated with the selected variable for quantitative control and corresponding to the utilization limit of the mentioned functional spine, and at least one method of updating the value of a variable for quantitative control in accordance with the use of the mentioned functionality;
и посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р переменная для количественного контроля обновляется посредством второй выполняемой части 2реи, в зависимости от использования указанной функциональной возможности, и учитывается по меньшей мере одно превышение порогового значения.and by modifying at least one selected piece of code 2Р§ of the protected program, and this modification is such that during the execution of the protected program 2Р the variable for quantitative control is updated by means of the second executable part 2Рё, depending on the use of the indicated functionality, and at least at least one threshold exceeded.
Для реализации первого предпочтительного варианта принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики переменную для количественного контроля, защищенная программа 2р модифицируется:To implement the first preferred variant of the protection principle using detection and coercion, using a variable for quantitative control as a characteristic, the protected 2p program is modified:
посредством выбора в исходном коде 2р§ защищенной программы по меньшей мере одной переменной для количественного контроля, с которой должны быть связаны несколько пороговых значений, соответствующих различным пределам использования функциональной возможности;by selecting at least one variable for the quantitative control in the source code of the 2p§ protected program with which several threshold values should be associated, corresponding to different limits of use of the functionality;
посредством выбора по меньшей мере двух пороговых значений, связанных с выбранной переменной для количественного контроля;by selecting at least two threshold values associated with the selected variable for quantitative control;
и посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р превышения различных пороговых значений учитываются посредством второй выполняемой части 2реи различным способом. Для реализации второго предпочтительного варианта принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики переменную для количественного контроля, защищенная программа 2р модифицируется посредством выбора в исходном коде 2р§ защищенной программы по меньшей мере одной переменной для количественного контроля, позволяющей ограничить использование функциональной возможности, для которой должна существовать возможность разрешить по меньшей мере одно дополнительное использование;and by modifying at least one selected piece of code 2p§ of the protected program, this modification being such that, during the execution of the protected program 2p, the excess of various threshold values is taken into account by the second executable part 2preya in a different way. To implement the second preferred variant of the principle of protection by detection and coercion, using the variable for quantitative control as a characteristic, the protected program 2p is modified by selecting at least one variable for quantitative control in the source code of the protected program 2p§ to limit the use of functionality, for which it should be possible to authorize at least one additional use;
и посредством модифицирования по меньшей мере одного выбранного фрагмента, причем эта модификация такова, что в фазе, названной фазой перезагрузки по меньшей мере одно дополнительное использование по меньшей мере одной функциональной возможности, соответствующей одной выбранной переменной для количественного контроля, может быть разрешено.and by modifying at least one selected fragment, and this modification is such that in a phase called a reboot phase, at least one additional use of at least one functionality corresponding to one selected variable for quantitative control can be allowed.
-32005465-32005465
Для реализации принципа защиты с помощью детектирования и принуждения, использующего в качестве характеристики профиль использования программы, защищенная программа 2р модифицируется посредством выбора в качестве характеристики выполнения контролируемой программы, по меньшей мере, профиля использования программы;To implement the principle of protection using detection and coercion, using the program usage profile as a characteristic, the protected program 2p is modified by selecting at least the program usage profile as a characteristic of the controlled program execution;
посредством выбора по меньшей мере одного признака выполнения программы, который должен соблюдать по меньшей мере один профиль использования;by selecting at least one program execution flag that must comply with at least one usage profile;
и посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р вторая выполняемая часть 2реи соблюдает все выбранные признаки выполнения.and by modifying at least one selected piece of code 2p§ of the protected program, this modification being such that, during the execution of the protected program 2p, the second executable part 2pray respects all selected execution signs.
Для реализации принципа защиты с помощью детектирования и принуждения, где в качестве признака выполнения, который требуется соблюдать, используется контроль сцепления выполнения, защищенная программа 2р модифицируется посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы посредством преобразования элементарных функций в инструкции, посредством задания сцепления, которое должны соблюдать, по меньшей мере, некоторые из инструкций во время их выполнения в устройстве 6, и посредством преобразования элементарных команд в команды инструкций, соответствующих используемым инструкциям.To implement the principle of protection by detecting and coercion, where the control of execution is used as a sign of execution, the protected program 2p is modified by modifying at least one selected code fragment 2p§ of the protected program by converting elementary functions into instructions, by the clutch task, which at least some of the instructions must follow during their execution in the device 6, and by Browsing elementary instructions into instruction instructions corresponding to the instructions used.
Когда применяется принцип защиты при помощи переименования, защищенная программа 2р модифицируется посредством выбора в исходном коде 2р§ защищенной программы команды запуска;When the principle of protection by renaming is applied, the protected 2p program is modified by selecting the start command in the 2p§ source code of the protected program;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы путем переименования установочных параметров выбранных команд запуска, чтобы скрыть идентичность соответствующих зависящих функций;by modifying at least one selected piece of code 2p§ of the protected program by renaming the settings of the selected launch commands in order to hide the identity of the corresponding dependent functions;
и посредством создания первой части 2ро§ объектного кода защищенной программы 2р, причем эта первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р выполняются команды запуска с переименованными установочными параметрами, и второй части 2рои объектного кода защищенной программы 2р, содержащей средства эксплуатации, использующие также средства 20 восстановления, причем эта вторая часть 2рои объектного кода такова, что после загрузки в устройство 6, в ходе выполнения защищенной программы 2р идентичность зависимых функций, выполнение которых запускается первой выполняемой частью 2ре§, восстанавливается посредством второй выполняемой части 2реи, а зависимые функции выполняются посредством второй выполняемой части 2реи.and by creating the first part 2po of the object code of the protected program 2p, and this first part 2po§ of the object code is such that during the execution of the protected program 2p, run commands with renamed settings are executed, and the second part of the 2nd object code of the protected program 2p containing means operation, also using recovery tools 20, and this second part of the 2-object code is such that after downloading to the device 6, during the execution of the protected program 2p, the identity hangs of the functions whose execution is started by the first executable part 2rep, is restored by the second executable part 2pri, and the dependent functions are performed by the second executable part 2pri.
Для реализации варианта принципа защиты переименованием защищенная программа 2р модифицируется посредством выбора в исходном коде 2р§ защищенной программы по меньшей мере одной команды запуска с переименованными установочными параметрами;To implement a variant of the principle of protection by renaming, the protected program 2p is modified by selecting at least one start command with renamed settings in the source code 2p§ of the protected program;
и посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы путем замены, по меньшей мере, переименованных установочных параметров команды запуска с выбранным набором установочных параметров на другие переименованные установочные параметры, что вызывает запуск зависящей функции из того же семейства.and by modifying at least one selected piece of code 2p§ of the protected program by replacing at least the renamed settings of the start command with the selected set of settings with other renamed settings, which causes the start of a dependent function from the same family.
Когда применяется принцип защиты при помощи условного перехода, защищенная программа 2р модифицируется посредством выбора в исходном коде 2р§ защищенной программы по меньшей мере одного условного перехода, выполняемого по меньшей мере в одном выбранном алгоритме;When the principle of protection using a conditional transition is applied, the protected program 2p is modified by selecting at least one conditional transition in the source code 2p§ of the protected program that is performed in at least one selected algorithm;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р функциональная возможность, по меньшей мере, одного выбранного условного перехода выполняется посредством второй выполняемой части 2реи в устройстве 6;by modifying at least one selected code fragment 2p§ of the protected program, and this modification is such that during the execution of the protected program 2p the functionality of at least one selected conditional transition is performed by the second executable part 2preya in the device 6;
и посредством создания первой части 2ро§ объектного кода защищенной программы 2р, причем эта первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р функциональная возможность по меньшей мере одного выбранного условного перехода выполняется в устройстве 6, и второй части 2рои объектного кода защищенной программы 2р, причем эта вторая часть 2рои объектного кода такова, что после загрузки в устройство 6, в ходе выполнения защищенной программы 2р реализуется вторая выполняемая часть 2реи, посредством которой выполняется функциональная возможность по меньшей мере одного выбранного условного перехода.and by creating the first part 2po of the object code of the protected program 2p, and this first part 2po§ of the object code is such that during the execution of the protected program 2p the functionality of at least one selected conditional transition is executed in the device 6, and the second part 2poi of the object code a protected program 2p, and this second part 2 of the object code is such that after downloading to the device 6, during the execution of the protected program 2p, the second executable part 2 is implemented, by means of which lnyaetsya functionality is at least one selected conditional jump.
Для предпочтительной реализации принципа защиты при помощи условного перехода защищенная программа 2р модифицируетсяFor the preferred implementation of the protection principle using conditional branching, the protected 2p program is modified
-33005465 посредством выбора в исходном коде 2р§ защищенной программы по меньшей мере одной серии выбранных условных переходов;-33005465 by selecting at least one series of selected conditional jumps in the source code of the 2p§ protected program;
посредством модифицирования по меньшей мере одного выбранного фрагмента кода 2р§ защищенной программы, причем эта модификация такова, что в ходе выполнения защищенной программы 2р глобальная функциональная возможность, по меньшей мере, одной выбранной серии условных переходов выполняется посредством второй выполняемой части 2реи в устройстве 6;by modifying at least one selected piece of code 2p§ of the protected program, and this modification is such that during the execution of the protected program 2p the global functionality of at least one selected series of conditional transitions is performed by the second executable part 2preya in the device 6;
и посредством создания первой части 2ро§ объектного кода защищенной программы 2р, причем эта первая часть 2ро§ объектного кода такова, что в ходе выполнения защищенной программы 2р функциональная возможность, по меньшей мере, одной выбранной серии условных переходов выполняется в устройстве 6, и второй части 2рои объектного кода защищенной программы 2р, причем эта вторая часть 2рои объектного кода такова, что после загрузки в устройство 6, в ходе выполнения защищенной программы 2р реализуется вторая выполняемая часть 2реи, посредством которой выполняется глобальная функциональная возможность по меньшей мере одной выбранной серии условных переходов.and by creating the first part 2prog of the object code of the protected program 2p, and this first part 2po§ of the object code is such that during the execution of the protected program 2p the functionality of at least one selected series of conditional jumps is executed in the device 6, and the second part 2roy object code of the protected program 2p, and this second part 2roy object code is such that after downloading to the device 6, during the execution of the protected program 2p, the second executable part 2reya is implemented, through which , the global functionality of at least one chosen series of conditional branches.
Разумеется, принципы защиты согласно изобретению могут быть применены прямо в ходе разработки новой программы без предварительной реализации промежуточных уязвимых программ. Таким образом, стадии 821 создания и 822 модификации могут быть осуществлены одновременно, чтобы сразу получить защищенную программу 2р.Of course, the protection principles according to the invention can be applied directly during the development of a new program without first implementing intermediate vulnerable programs. Thus, stages 8 21 of creation and 8 22 modifications can be carried out simultaneously in order to immediately obtain a secure program 2p.
В ходе выходной подфазы Р2 защиты в случае, когда применен по меньшей мере один иной принцип защиты, в дополнение к принципу защиты при помощи переменной, после стадии 821 создания защищенной программы 2р и, возможно, после стадии 822 модификации реализуется стадия, названная стадией 823 персонализации. В ходе этой стадии 823 персонализации вторая часть 2рои объектного кода, возможно, содержащая средства эксплуатации, загружается по меньшей мере в одно незадействованное устройство 60, чтобы получить по меньшей мере одно устройство 6. Альтернативно, часть второй части 2рои объектного кода, возможно, содержащая средства эксплуатации, загружается по меньшей мере в одно предперсонализированное устройство 66, чтобы получить по меньшей мере одно устройствоDuring output subphase P2 protection when employed at least one other protection principle, in addition to the principle of protection by means of the variable after step 21 August creating 2p protected program, and possibly after step August 22 modification is realized stage called stage 8 23 personalization. During this personalization stage 8 23 , the second part of the 2-part object code, possibly containing operating means, is loaded into at least one idle device 60 to obtain at least one device 6. Alternatively, a part of the second part 2 of the object code, possibly containing operating means, is loaded into at least one pre-personalized device 66 to obtain at least one device
6. Загрузка этой персонализирующей информации позволяет сделать работоспособным по меньшей мере одно устройство 6. Следует отметить, что часть этой информации, будучи перенесенной в устройство 6, не доступна напрямую извне этого устройства 6. Передача информации персонализации в незадействованное устройство 60 или в предперсонализированное устройство 66 может быть реализована посредством адаптированного устройства персонализации, которое описано далее и проиллюстрировано фиг. 150.6. Downloading this personalizing information makes it possible to make at least one device operational 6. It should be noted that part of this information, when transferred to device 6, is not directly accessible from outside this device 6. Transferring personalization information to an idle device 60 or to a pre-personalized device 66 can be implemented by an adapted personalization device, which is described later and illustrated in FIG. 150.
В случае устройства 6, состоящего из карты 7 с микрочипом и устройства 8 ее чтения, персонализация касается только карты 7 с микрочипом.In the case of the device 6, consisting of a card 7 with a microchip and a device 8 for reading it, personalization concerns only a card 7 with a microchip.
Различные технические средства для реализации фазы Р защиты, которые далее будут описаны более подробно, проиллюстрированы фиг. 110, 120, 130, 140 и 150.Various technical means for implementing the protection phase P, which will now be described in more detail, are illustrated in FIG. 110, 120, 130, 140 and 150.
На фиг. 110 приведен пример реализации системы 25, позволяющей реализовать стадию 812 конструирования с учетом определений, введенных на стадии 811 определений, и в ходе которой конструируются средства 12, 13 передачи и, возможно, средства эксплуатации, предназначенные для устройства 6. Подобная система 25 содержит устройство разработки программ или рабочую станцию, обычно представляющую собой компьютер, который содержит системный блок, монитор, периферийные устройства типа клавиатуры и мыши и на котором установлены следующие программы: файловые редакторы, ассемблеры, препроцессоры, компиляторы, интерпретаторы, отладчики и редакторы связей.In FIG. 110 shows an example implementation of a system 25, which allows for the implementation of design stage 8 12 taking into account the definitions introduced in determination stage 8 11 , and during which transmission means 12, 13 and, possibly, operating means for device 6 are constructed. Such a system 25 contains a program development device or workstation, usually a computer that contains a system unit, a monitor, peripheral devices such as a keyboard and mouse and on which the following programs are installed: file editions tori, assemblers, preprocessors, compilers, interpreters, debuggers, and linkers.
На фиг. 120 приведен пример реализации устройства 30 предперсонализации, позволяющего загрузить, по меньшей мере, частично средства 13 передачи и/или средства эксплуатации по меньшей мере в одно незадействованное устройство 60, чтобы получить, по меньшей мере, предперсонализированное устройство 66. Устройство 30 предперсонализации содержит средство 31 чтения-записи, позволяющее электрически предперсонализировать незадействованное устройство 60, чтобы получить предперсонализированное устройство 66, в которое загружены средства 13 передачи и/или средства эксплуатации. Устройство 30 предперсонализации может также содержать физические средства 32 предперсонализации незадействованного устройства 60, представляющие собой, например, принтер. В случае если устройство 6 состоит из карты 7 с микрочипом и устройства 8 ее чтения, предперсонализация касается обычно только карты 7 с микрочипом.In FIG. 120 shows an example implementation of a pre-personalization device 30 that allows at least partially transferring means 13 and / or operating means to be loaded into at least one idle device 60 to obtain at least a pre-personalized device 66. The pre-personalization device 30 includes means 31 a read / write device that allows electrically pre-personalization of an idle device 60 to obtain a pre-personalization device 66 into which transmission means 13 and / or media are loaded TWA operation. The pre-personalization device 30 may also comprise physical means 32 of the pre-personalization of the idle device 60, which is, for example, a printer. If the device 6 consists of a card 7 with a microchip and a device 8 for reading it, pre-personalization usually refers only to a card 7 with a microchip.
На фиг. 130 приведен пример реализации системы 35, позволяющей осуществить изготовление средств, предназначенных для использования при создании защищенных программ или автоматизации защиты программ. Подобная система 35 содержит устройство разработки программ или рабочую станцию, обычно представляющую собой компьютер, который содержит системный блок, монитор, периферийные устройства типа клавиатуры и мыши и на котором имеются следующие программы: файловые редакторы, ассемблеры, препроцессоры, компиляторы, интерпретаторы, отладчики и редакторы связей.In FIG. 130 is an example implementation of a system 35 that allows the manufacture of tools intended for use in creating secure programs or automating program protection. Such a system 35 includes a program development device or workstation, typically a computer that contains a system unit, a monitor, peripherals such as a keyboard and mouse, and which have the following programs: file editors, assemblers, preprocessors, compilers, interpreters, debuggers, and editors connections.
На фиг. 140 приведен пример реализации системы 40, позволяющей прямо получить защищенную программу 2р или модифицировать уязвимую программу 2ν с целью получить защищенную программу 2р. Подобная система 40 содержит устройство разработки программы или рабочую станцию, обычно представляющую собой компьютер, который содержит системный блок, монитор, периферийные устIn FIG. 140 shows an example implementation of a system 40 that allows you to directly obtain a secure program 2p or modify a vulnerable program 2ν in order to obtain a secure program 2p. Such a system 40 comprises a program development device or workstation, typically a computer, which comprises a system unit, a monitor, peripherals
-34005465 ройства типа клавиатуры и мыши и на котором установлены следующие программы: файловые редакторы, ассемблеры, препроцессоры, компиляторы, интерпретаторы, отладчики и редакторы связей, а также средства, помогающие при создании защищенных программ или автоматизации защиты программ.-34005465 The type of keyboard and mouse on which the following programs are installed: file editors, assemblers, preprocessors, compilers, interpreters, debuggers and link editors, as well as tools that help create protected programs or automate program protection.
На фиг. 150 приведен пример реализации устройства 45 персонализации, позволяющего загрузить вторую часть 2рои объектного кода, по меньшей мере, в одно незадействованное устройство 60, чтобы получить по меньшей мере одно устройство 6, или часть второй части 2рои объектного кода по меньшей мере в одно предперсонализированное устройство 66, чтобы получить по меньшей мере одно устройствоIn FIG. 150 shows an example implementation of a personalization device 45 that allows you to download the second part 2 of the object code into at least one idle device 60 to obtain at least one device 6, or a part of the second part 2 of the object code into at least one pre-personalized device 66 to get at least one device
6. Это устройство 45 персонализации содержит средство 46 чтения-записи, позволяющее электрически персонализировать по меньшей мере одно незадействованное устройство 60 или по меньшей мере одно предперсонализированное устройство 66, чтобы получить по меньшей мере одно устройство 6. По завершении этой персонализации устройство 6 содержит информацию, необходимую для выполнения защищенной программы 2р. Устройство 45 персонализации может также содержать физические средства 47 персонализации по меньшей мере для одного устройства 6, представляющие собой, например, принтер. В случае если устройство 6 состоит из карты 7 с микрочипом и устройства 8 ее чтения, персонализация касается обычно только карты 7 с микрочипом.6. This personalization device 45 comprises a read / write device 46 that electrically personalizes at least one idle device 60 or at least one pre-personalized device 66 to obtain at least one device 6. Upon completion of this personalization, device 6 contains information necessary to run a secure 2p program. The personalization device 45 may also comprise physical personalization means 47 for at least one device 6, which is, for example, a printer. If the device 6 consists of a card 7 with a microchip and a device 8 for reading it, personalization usually refers only to a card 7 with a microchip.
Способ защиты согласно изобретению может быть реализован с дополнительными усовершенствованиями.The protection method according to the invention can be implemented with further improvements.
Можно предусмотреть совместное использование множества устройств обработки и хранения, между которыми распределена вторая часть 2рои объектного кода защищенной программы 2р таким образом, что их совместное выполнение позволяет выполнить защищенную программу 2р, отсутствие же по меньшей мере одного из этих устройств обработки и хранения препятствует использованию защищенной программы 2р.It is possible to provide for the sharing of multiple processing and storage devices between which the second part of the object object code 2p is distributed in such a way that their joint execution allows the 2p program to be executed, while the absence of at least one of these processing and storage devices prevents the use of the protected program 2 p.
Аналогично, после стадии 813 предперсонализации и в ходе стадии 823 персонализации часть второй части 2рои объектного кода, необходимая для преобразования предперсонализированного устройства 66 в устройство 6, может содержаться в устройстве обработки и хранения, используемом устройством 45 персонализации, чтобы ограничить доступ к этой части второй части 2рои объектного кода. Разумеется, эта часть второй части 2рои объектного кода может быть распределена между несколькими устройствами обработки и хранения таким образом, чтобы эта часть второй части 2рои объектного кода являлась доступной только в ходе совместного использования этих устройств обработки и хранения.Similarly, after pre-personalization step 8 13 and during personalization step 8 23 , part of the second part 2 of the object code needed to convert the pre-personalized device 66 to device 6 may be contained in the processing and storage device used by the personalization device 45 to restrict access to this part second part of the 2 object code code. Of course, this part of the second part of the 2nd part of the object code can be distributed between several processing and storage devices so that this part of the second part of the 2nd part of the object code is available only during the sharing of these processing and storage devices.
Claims (37)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0110250A FR2828305B1 (en) | 2001-07-31 | 2001-07-31 | METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE SAID "VARIABLE" AGAINST ITS UNAUTHORIZED USE |
PCT/FR2002/002338 WO2003012649A2 (en) | 2001-07-31 | 2002-07-04 | Method for protecting a software using a so-called variable principle against its unauthorised use |
Publications (2)
Publication Number | Publication Date |
---|---|
EA200400057A1 EA200400057A1 (en) | 2004-06-24 |
EA005465B1 true EA005465B1 (en) | 2005-02-24 |
Family
ID=8866125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA200400057A EA005465B1 (en) | 2001-07-31 | 2002-07-04 | Method for protecting a software using a so-called variable principle against its unauthorised use |
Country Status (28)
Country | Link |
---|---|
EP (1) | EP1412861A2 (en) |
JP (1) | JP3949107B2 (en) |
KR (1) | KR100940347B1 (en) |
CN (1) | CN1288525C (en) |
AP (1) | AP2004002958A0 (en) |
AU (1) | AU2002325998B2 (en) |
BR (1) | BR0211374A (en) |
CA (1) | CA2454090A1 (en) |
CO (1) | CO5550508A2 (en) |
CR (1) | CR7231A (en) |
EA (1) | EA005465B1 (en) |
EC (1) | ECSP044951A (en) |
FR (1) | FR2828305B1 (en) |
GE (1) | GEP20053647B (en) |
HR (1) | HRP20040049A2 (en) |
HU (1) | HUP0400228A2 (en) |
IL (1) | IL159953A0 (en) |
IS (1) | IS7121A (en) |
MA (1) | MA26126A1 (en) |
MX (1) | MXPA04000488A (en) |
NO (1) | NO20040232L (en) |
OA (1) | OA12699A (en) |
PL (1) | PL367366A1 (en) |
TN (1) | TNSN04012A1 (en) |
UA (1) | UA77186C2 (en) |
WO (1) | WO2003012649A2 (en) |
YU (1) | YU5404A (en) |
ZA (1) | ZA200400348B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2852415B1 (en) * | 2003-03-11 | 2005-06-24 | Actikey | KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD |
CN107194212B (en) * | 2017-06-21 | 2020-04-17 | 株洲中车时代电气股份有限公司 | Method for protecting protocol content in source code of display |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2634917A1 (en) * | 1988-08-01 | 1990-02-02 | Pionchon Philippe | METHOD AND DEVICE FOR PROTECTING SOFTWARE, ESPECIALLY AGAINST UNAUTHORIZED COPIES |
US5754646A (en) * | 1995-07-19 | 1998-05-19 | Cable Television Laboratories, Inc. | Method for protecting publicly distributed software |
WO1999001815A1 (en) * | 1997-06-09 | 1999-01-14 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
WO1999066387A1 (en) * | 1998-06-12 | 1999-12-23 | Gemplus | Method for verifying the execution of a software product |
-
2001
- 2001-07-31 FR FR0110250A patent/FR2828305B1/en not_active Expired - Lifetime
-
2002
- 2002-04-07 UA UA2004010469A patent/UA77186C2/en unknown
- 2002-07-04 OA OA1200400013A patent/OA12699A/en unknown
- 2002-07-04 HR HR20040049A patent/HRP20040049A2/en not_active Application Discontinuation
- 2002-07-04 BR BR0211374-0A patent/BR0211374A/en not_active IP Right Cessation
- 2002-07-04 CN CNB028146840A patent/CN1288525C/en not_active Expired - Fee Related
- 2002-07-04 HU HU0400228A patent/HUP0400228A2/en unknown
- 2002-07-04 JP JP2003517758A patent/JP3949107B2/en not_active Expired - Fee Related
- 2002-07-04 EA EA200400057A patent/EA005465B1/en not_active IP Right Cessation
- 2002-07-04 PL PL02367366A patent/PL367366A1/en not_active Application Discontinuation
- 2002-07-04 KR KR1020047000804A patent/KR100940347B1/en not_active Expired - Fee Related
- 2002-07-04 AU AU2002325998A patent/AU2002325998B2/en not_active Ceased
- 2002-07-04 WO PCT/FR2002/002338 patent/WO2003012649A2/en active Application Filing
- 2002-07-04 EP EP02760378A patent/EP1412861A2/en not_active Withdrawn
- 2002-07-04 IL IL15995302A patent/IL159953A0/en unknown
- 2002-07-04 CA CA002454090A patent/CA2454090A1/en not_active Abandoned
- 2002-07-04 MX MXPA04000488A patent/MXPA04000488A/en unknown
- 2002-07-04 AP APAP/P/2004/002958A patent/AP2004002958A0/en unknown
- 2002-07-04 YU YU5404A patent/YU5404A/en unknown
- 2002-07-04 GE GE5431A patent/GEP20053647B/en unknown
-
2004
- 2004-01-16 ZA ZA2004/00348A patent/ZA200400348B/en unknown
- 2004-01-19 TN TNP2004000012A patent/TNSN04012A1/en unknown
- 2004-01-19 CR CR7231A patent/CR7231A/en unknown
- 2004-01-19 MA MA27492A patent/MA26126A1/en unknown
- 2004-01-19 NO NO20040232A patent/NO20040232L/en not_active Application Discontinuation
- 2004-01-20 CO CO04003765A patent/CO5550508A2/en not_active Application Discontinuation
- 2004-01-20 IS IS7121A patent/IS7121A/en unknown
- 2004-01-20 EC EC2004004951A patent/ECSP044951A/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2634917A1 (en) * | 1988-08-01 | 1990-02-02 | Pionchon Philippe | METHOD AND DEVICE FOR PROTECTING SOFTWARE, ESPECIALLY AGAINST UNAUTHORIZED COPIES |
US5754646A (en) * | 1995-07-19 | 1998-05-19 | Cable Television Laboratories, Inc. | Method for protecting publicly distributed software |
WO1999001815A1 (en) * | 1997-06-09 | 1999-01-14 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
WO1999066387A1 (en) * | 1998-06-12 | 1999-12-23 | Gemplus | Method for verifying the execution of a software product |
Also Published As
Publication number | Publication date |
---|---|
YU5404A (en) | 2006-08-17 |
GEP20053647B (en) | 2005-10-25 |
ECSP044951A (en) | 2004-04-28 |
CN1535410A (en) | 2004-10-06 |
KR20040027881A (en) | 2004-04-01 |
MA26126A1 (en) | 2004-04-01 |
HK1070155A1 (en) | 2005-06-10 |
CR7231A (en) | 2005-07-21 |
MXPA04000488A (en) | 2005-03-07 |
HUP0400228A2 (en) | 2004-09-28 |
UA77186C2 (en) | 2006-11-15 |
CO5550508A2 (en) | 2005-08-31 |
OA12699A (en) | 2006-06-23 |
BR0211374A (en) | 2004-07-20 |
WO2003012649A2 (en) | 2003-02-13 |
FR2828305B1 (en) | 2010-09-03 |
IS7121A (en) | 2004-01-20 |
FR2828305A1 (en) | 2003-02-07 |
IL159953A0 (en) | 2004-06-20 |
HRP20040049A2 (en) | 2004-06-30 |
JP3949107B2 (en) | 2007-07-25 |
ZA200400348B (en) | 2005-03-30 |
KR100940347B1 (en) | 2010-02-04 |
AP2004002958A0 (en) | 2004-03-31 |
JP2004537806A (en) | 2004-12-16 |
WO2003012649A3 (en) | 2003-12-24 |
TNSN04012A1 (en) | 2006-06-01 |
CA2454090A1 (en) | 2003-02-13 |
EP1412861A2 (en) | 2004-04-28 |
CN1288525C (en) | 2006-12-06 |
EA200400057A1 (en) | 2004-06-24 |
NO20040232L (en) | 2004-03-30 |
AU2002325998B2 (en) | 2008-10-30 |
PL367366A1 (en) | 2005-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1975784B1 (en) | Method of obfuscating computer instruction streams | |
CN101167052B (en) | Application framework phasing model | |
US7757224B2 (en) | Software support for dynamically extensible processors | |
EP1535250A1 (en) | Process for compiling and executing software applications in a multi-processor environment | |
US8196093B2 (en) | Apparatus and method for componentizing legacy system | |
US20240095344A1 (en) | Computer implemented method | |
EA005465B1 (en) | Method for protecting a software using a so-called variable principle against its unauthorised use | |
US20070283437A1 (en) | Method to Protect Software Against Unwanted Use with a "Temporal Dissociation" Principle | |
EA005466B1 (en) | Method for protecting a software using a so-called detection and coercion principle against its unauthorised use | |
CN112182516A (en) | Detection method based on RELRO security protection, terminal and storage medium | |
JP2017073036A (en) | Information processing device and control method thereof | |
CN100451910C (en) | Method for protecting software against unauthorized use by means of the "temporary resolution" principle | |
GB2579072A (en) | Computer implemented method | |
MXPA04000596A (en) | Method for protecting a software using a so-called renaming principle against its unauthorised use. | |
AU2016100581A4 (en) | Compilation method for linking region-specific computer logic | |
JP2006338311A (en) | Computer system, device and computer program for processing a device with multiple applications | |
CN117633734A (en) | Code compiling method and device and electronic equipment | |
CN117492761A (en) | Software development compiling method, device, equipment and medium applied to multiple projects | |
CN117892361A (en) | Safety control method and device for container during operation | |
HUP0400239A2 (en) | Method for protecting a software using a so-called elementary functions principle against its unauthorised use | |
KR101262668B1 (en) | Device and method for upgrading software by run-time dynamic binding for embedded system | |
KR20040032859A (en) | Method for protecting a software using a so-called conditional jump principle against its unauthorized use | |
HK1122631B (en) | Method of obfuscating computer instruction streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s) |
Designated state(s): AM AZ BY KZ KG MD TJ TM |