WO2007125911A1 - データ処理装置、方法、プログラム、集積回路、プログラム生成装置 - Google Patents
データ処理装置、方法、プログラム、集積回路、プログラム生成装置 Download PDFInfo
- Publication number
- WO2007125911A1 WO2007125911A1 PCT/JP2007/058838 JP2007058838W WO2007125911A1 WO 2007125911 A1 WO2007125911 A1 WO 2007125911A1 JP 2007058838 W JP2007058838 W JP 2007058838W WO 2007125911 A1 WO2007125911 A1 WO 2007125911A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- debug
- debugger
- protection
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- 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/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Definitions
- the present invention relates to program protection, and more particularly, to a technique for controlling execution of program debug processing.
- protection programs It is desirable that fraudulent acts such as fraudulent analysis, such as programs for copyright management! /, Technologies that protect programs (hereinafter referred to as “protection programs”) are widely used. It has been. This is because inadequate protection can cause damage not only to the right holders of the program, but also in many ways.
- the digital content may be used illegally. That is, even if an unauthorized person illegally reproduces digital content or restricts the number of times digital content is copied or reproduced, the restriction is invalidated.
- Non-Patent Document 1 As technology for protecting data such as programs from unauthorized analysis by unauthorized persons, Non-Patent Document 1 below has established a secure domain having a mechanism for preventing unauthorized access from outside, LSI (Large Scale Integration) technology is disclosed, which has a secure mode for performing processing in the standard mode and a normal mode for performing processing without using a secure domain, and operates by switching between the normal mode and the secure mode. According to this technology, the protection program can be protected by unauthorized analysis by operating the protection program only in the secure mode.
- LSI Large Scale Integration
- Patent Document 1 Japanese Patent Application Laid-Open No. 2004-171565
- Patent Document 1 controls whether or not a program operating in a secure domain can be debugged using an authentication code. Know the authorization code V, you can debug all programs that run in the secure domain. Then, if the developer on the other right holder side knows the authentication code, he can debug not only the program related to the linked operation but also any protection program. As a result, even a protected program that the right holder does not want to be debugged can be debugged if the developer on the other right holder side can obtain the protected program. Therefore, when the right holder jointly develops a group of programs that operate in a coordinated manner, he / she wants to be debugged. ⁇ A great risk that other protection programs may be analyzed and the confidential information may not be leaked outside. Will be held. Because of this risk, it is difficult for different right holders to jointly develop a group of programs that work together while protecting the program.
- the present invention provides a data processing device, a data processing method, an integrated circuit, and a program for controlling execution of a debugging process that facilitates development of a program jointly by different right holders while protecting the program.
- An object of the present invention is to provide a program generation device. Means for solving the problem
- the present invention provides a data processing device that controls execution of debugging processing by a debugging processing unit, the first obtaining unit that obtains an identifier for identifying the debugging processing unit, and illegal Access power
- the second acquisition means for acquiring a verification value included in a predetermined part of the debug target program in a protected state, and the verification target power acquired by the debug target program power and the first acquisition means.
- the determination means for determining whether debugging processing for the debug target program is permitted according to the comparison result, and when it is determined that the debugging processing is not permitted, It is provided with a control means for prohibiting execution of debug processing.
- the data processing apparatus of the present invention compares the obtained verification value with the identifier of the debug processing unit, and controls whether or not the debug processing unit can execute the debug process according to the comparison result. That is, when the right holder of a program includes a certain verification value in the program, the identifier of the debug processing unit that is permitted to debug the program is determined. Therefore, the right holder of the program can specify the identifier of the debug processing unit that can perform the debug processing of the program by the verification value included in the program.
- the right holder of the program can limit the debug processing unit having an identifier capable of debugging the program as desired, so that the debugging without the identifier can be performed. Unnecessary debugging of the program can be avoided by interested parties holding the processing unit.
- the right holder of a program may want to restrict debugging of the program even though it allows other right holders to debug the program. For example, if the program contains information that you want to keep secret, if the secret is exposed, damage may occur in various ways, so the secret will not be prayed! , So that's what.
- the predetermined part of the debug target program includes an access control list indicating that access is permitted or not permitted for each part constituting the debug target program
- the acquisition means includes an access control list acquisition unit that acquires the access control list included in the predetermined portion of the debug target program
- the data processing device further includes, based on the acquired access control list, Access judging means for judging whether or not access to a part of the program to be debugged is permitted, the control means is judged to be authorized by the judging means, and permitted by the access judging means.
- the right holder of the program can prevent the portion that contains the information to be kept secret from being debugged.
- each of the parts indicated in the access control list is the part of the load destination memory address when the debug target program is loaded into the memory.
- the address range corresponding to each part is indicated.
- whether or not access is possible is associated with each address range corresponding to each part, and the access determination means
- the address range corresponding to the portion of the load destination memory address when the program to be debugged is loaded into the memory is associated with the access control list and refers to whether access is possible. It is good also as performing the said determination by doing.
- each of the portions indicated in the access control list indicates a symbol included in the debug target program, and the access control list is associated with whether or not access is possible for each of the symbols.
- the access determination unit may perform the determination by referring to the accessibility of the symbols included in the part of the debug target program, which is associated with the access control list. Oh ,.
- the predetermined part of the debug target program includes a plurality of the verification values
- the access control list is included in the predetermined part one or more
- each of the access control lists is the verification part.
- Each of the verification values is compared with the obtained identifier, and the access determination means is determined by the determination means. The determination may be performed on the basis of the access control list associated with the verification value determined to be permitted.
- the data processing device further includes a display unit, and in the first case, the control unit causes the display unit to display that the debug processing of the part is prohibited, and In this case, it is desirable to include a display control unit for displaying the result of the debugging process on the display unit.
- the determination unit is configured to compare the verification value with the identifier, and when the verification value and the identifier match, the debugging process is performed. It is good to determine that is permitted.
- the right holder of the program can specify the debug processing unit that permits the execution of the debug processing by the verification value.
- the determination is performed by a simple calculation of whether or not the verification value and the identifier match, the time required for the determination can be shortened.
- the determination means includes a comparison value holding unit that stores the comparison value in a state in which unauthorized access power is also protected, and uses the verification value and the identifier as an operator. A predetermined calculation may be performed, and when the calculation result matches the stored comparison value, it may be determined that the debugging process is permitted.
- the determination is performed using a predetermined calculation and a comparison value. Therefore, debugging processing is permitted from the verification value. It is difficult to obtain the identifier of the debug processing unit. That is, according to the above-described configuration, the strength of program protection can be increased.
- this data processing device has a secure domain having a mechanism for preventing unauthorized access from the outside, and the data processing device has a normal mode as an operation mode.
- a secure mode the normal mode and the secure mode.
- the data processing device further includes a switching unit for switching between the normal mode and the secure mode, and the data processing device operates only using the secure domain during the secure mode.
- the program operating in the normal mode can access the program operating in the secure mode by notifying the program operating in the secure mode of the predetermined processing request via the switching unit.
- the target program is stored in the secure domain, the second acquisition means acquires the verification value for the debug target program power in the secure domain, and the determination means determines the determination in the secure domain. It can also be realized with the configuration of performing.
- the debug target program is stored in a secure domain, and the verification value is acquired in the secure domain by the second acquisition unit.
- the verification value it is difficult for the verification value to be obtained by many persons such as interested parties and fraudsters in the process in which the data processing apparatus acquires the verification value. For this reason, even if an unauthorized person obtains a program, it is difficult to specify a debug processing unit having an identifier that can debug the program, so that the possibility that the program is debugged illegally is reduced. be able to. In addition, since the verification value is included in the program, it is not necessary to previously store information for controlling whether or not debugging is possible in the data processing device.
- the debug processing unit is outside the secure domain and operates in the normal mode, and the data processing device further performs secure processing for executing debug processing in the secure mode.
- a debugger wherein the secure debugger is included in the secure domain, the debug processing unit outputs a debug processing request of the program to be debugged, and the control means is configured to output the debug processing request by the debug processing unit.
- the determination means When output, it is preferable to cause the determination means to perform the determination and prohibit the debugging process by the secure debugger for the debug target program that responds to the debug processing request when it is determined that the determination is not permitted.
- the debug processing unit that operates in the normal mode and the secure processing mode. Therefore, even if the debug processing unit is tampered with illegally, it is possible to prevent incorrect analysis of a program operating in secure mode that does not affect the secure debugger.
- the predetermined part of the debug target program includes an access control list indicating that access is permitted or disallowed for each part constituting the debug target program.
- the acquisition means includes an access control list acquisition unit that acquires the access control list included in the predetermined part of the debug target program, and the data processing device is further based on the acquired access control list.
- an access determination means for determining whether access to the part of the debug target program is permitted, wherein the access determination means performs the determination in the secure domain, and the control means includes the debug process.
- the debug target process that works on the debug processing request output by the When a determination is made that the program is permitted by the determination unit and is permitted by the access determination unit, execution of the debug processing of the part by the secure debugger is prohibited. If the determination means determines that the access is permitted, and the access determination means determines that the permission is permitted, the secure debugger may execute the partial debugging process.
- the right holder of the program can prevent the portion that contains information to be kept secret from being debugged.
- the debug processing unit has a function of performing debug processing on the debug target program linked to the normal program and the normal program, and the debug processing of the debug target program by the debug processing unit
- the debug processing unit outputs a debug processing request, and the debug processing unit accepts the result of the debug processing performed by the secure debugger in response to the output debug processing request via the switching unit. It is good also as being performed by.
- the debug processing unit outputs a process identifier for identifying a normal program to which the debug processing unit is attached, and the secure debugger is indicated by the process identifier output from the debug processing unit. It is a good idea to change the instruction at the entry point of the debugging target program that operates in conjunction with the normal program to a break instruction.
- the data processing apparatus sends a debug exception to the debug processing unit via the switching unit.
- the debug processing unit outputs a debug information acquisition request indicating the execution result of the debug processing.
- the determination means makes a positive determination for the debug target program and receives the debug information acquisition request, the debug target program is debugged to execute debug information.
- the acquired debug information may be output to the debug processing unit via the switching unit.
- the data processing device further debugs the debug target program that is linked to the first result display unit that displays the result of the debugging process of the normal program in the first display area and the normal program.
- the result of processing is different from the first display area.
- a second result display unit for displaying in the second display area, and the first and second result display units operate in cooperation with the program to be debugged and the normal program that work for the linkage.
- the debug target program and the result of the debugging process of the normal program may be displayed in the first display area and the second display area.
- the program developer can perform debugging while confirming the operations of both the normal program and the debug target program.
- a normal OS In the normal mode, a normal OS operates. In the secure mode, a protective OS operates.
- the normal program operates in the normal mode as a process generated by the normal OS.
- the unit operates in the normal mode as a debugger operating in the normal OS, the debug target program operates in the secure mode as a process generated by the protected OS, and the secure debugger It may be implemented as a function of the protection OS.
- the control means causes the determination means to perform the determination when the debug processing section outputs the debug processing request, and determines that the debugging process is not permitted when it is determined not to be permitted. It is assumed that a debug process disabled notification indicating the prohibition of execution is output to the debug processor.
- the user who is debugging using the debug processing unit can know that the debugging of the program to be debugged is permitted.
- the program generation device determines whether to permit program acquisition means for acquiring a program including protection information to be concealed and debug processing for the acquired program according to the identifier of the debug processing unit.
- the verification value generation means for generating the verification value and the program!
- a protection program generating means for generating a protection program by adding the verification value generated by the verification value generating means to the program.
- the program generation apparatus further acquires an access control list indicating that access is permitted or not permitted for each part constituting the program.
- An access control list acquisition unit, and the protection program generation means may include an access control list addition unit for adding the acquired access control list to the program.
- the present invention provides a data processing method for controlling execution of debug processing by a debug processing unit, wherein the first acquisition step of acquiring an identifier for identifying the debug processing unit is protected from unauthorized access.
- the present invention provides a computer-readable control program for causing a data processing device to control execution of debugging processing by a debugging processing unit, and acquiring an identifier for identifying the debugging processing unit.
- a first acquisition step a second acquisition step of acquiring a verification value included in a predetermined portion of the debug target program in a protected state such as an unauthorized access card; the verification value from which the debug target program power is also acquired; (1)
- the acquisition step the identifier acquired in the comparison is compared, and a determination step for determining whether the debugging process for the debug target program is permitted or not is determined according to the comparison result.
- a control step for prohibiting execution of debug processing for the debug target program. It is also a control program characterized by
- the present invention provides an integrated circuit used in a data processing device that controls execution of debug processing by a debug processing unit, and includes a first acquisition unit that acquires an identifier for identifying the debug processing unit, A debugged program that is protected from access Comparing the verification value acquired from the debug target program with the identifier acquired by the first acquisition means, and comparing the second acquisition unit that acquires the verification value included in the predetermined part of the gram Depending on the result, debug processing for the debug target program is allowed! With a judgment unit that determines whether to talk, allowed! It is also an integrated circuit characterized by including a control unit that prohibits execution of debug processing on the debug target program when it is determined to be a cunning defect.
- the present invention provides a program acquisition step for acquiring a program including protection information to be concealed, and whether or not debugging processing for the acquired program is permitted according to an identifier of a debug processing unit.
- the present invention provides a computer-readable control program for causing a program generating device to perform processing for generating a program, the program acquiring step for acquiring a program including protection information to be concealed And a verification value generation step for generating a verification value for determining whether or not the debugging process for the acquired program is permitted according to the identifier of the debug processing unit, and the verification value for the program It is also a control program characterized by including a protection program generation step of generating a protection program by adding the verification value generated in the generation step to the program.
- the present invention is an integration circuit used in a program generation apparatus that generates a program, a program acquisition unit that acquires a program including protection information to be concealed, and debug processing for the acquired program
- a verification value generation unit that generates a verification value for determining whether to permit or not to be permitted according to an identifier of the debug processing unit, and a verification value generated by the verification value generation unit for the program is attached to the program.
- It is also an integrated circuit characterized by including a protection program generation unit that generates a protection program by calorie.
- FIG. 1 is a schematic diagram of a data processing device 1 in Embodiment 1 of the present invention.
- Figure 2 Detailed block diagram of debug function 7.
- FIG. 3 is a detailed block diagram of the debugger ID determination unit 22.
- FIG. 4 is a block diagram of the switching devdora 13.
- ⁇ 5 A diagram showing an encrypted protection program 73.
- FIG. 6 is a diagram showing an example of the data structure of the access control list 53 acquired by the access determination unit 23.
- FIG. 7 is a diagram showing the operation of the debug function 7.
- FIG. 8 is a flowchart of execution of the normal program 12 and the protection program 8 when debugging is not performed in the first embodiment of the present invention.
- FIG. 11 is a flowchart showing preprocessing for the debugger 14 to perform debugging processing for the normal program 12 and the protection program 8.
- FIG. 12 Flowchart when a debugging exception occurs due to a breakpoint during execution of protection program 8a and debugging is performed on protection program 8a using debugger 14.
- FIG. 13 A diagram for explaining a method for generating the protection program 8 according to the present invention.
- FIG. 16 is a diagram for explaining a debugger ID management method by the debugger ID management server.
- FIG. 17 is a diagram showing a data structure of a debugger ID management file 90 used by the debugger ID management server 81 for managing debugger IDs.
- FIG. 18 is a diagram showing a graphical user interface (GUI) for displaying program operation information.
- GUI graphical user interface
- FIG. 19 Character-based user interface (CUI) according to the fifth embodiment of the present invention Explanatory drawing of the display method.
- CCI Character-based user interface
- Protection program source code Protection program generator Encrypted protection program Permitted debugger ID storage file Access control list storage file Confidential information area storage file Connoiler
- FIG. 1 is a schematic diagram of a data processing device 1 according to Embodiment 1 of the present invention.
- Data processor 1 includes LSI2 with protection mechanism and switching mechanism 3, protection OS6, debug function 7, protection program 8 (8a, 8b, ⁇ ), normal OS11, normal program 12 (12a, 12b, ⁇ ) , Switching device driver 13 (hereinafter referred to as “switching debugger 13”), debugger 14 and debugger switching device driver 15 (hereinafter referred to as “debugger switching debugger 15”).
- LSI2 is equipped with a protection mechanism that protects against unauthorized analysis and falsification of programs.
- the protection mechanism has a hardware mechanism that prevents unauthorized access from the outside.
- a specific example of a protection mechanism is to temporarily block access from external forces.
- LSI2 may be referred to as a protection mode (or "secure mode") as an operation mode. And a normal mode, and switches between a protection mode and a normal mode.
- the operation mode is switched using a switching mechanism 3 described later.
- the protection mode is a special mode where the protection mechanism protects the program from unauthorized analysis and tampering, and the protection OS6 and protection program 8 operate.
- the normal mode is a general mode in which the program is not protected by the protection mechanism, and the normal OS 11 and the normal program 12 operate.
- Switching from the protection mode to the normal mode is performed by the protection OS 6 using the switching mechanism 3.
- Switching from the normal mode to the protection mode is normally performed by the switching debugger 13 in the OS 11 using the switching mechanism 3.
- the switching mechanism 3 has a hardware mechanism for receiving an operation mode switching instruction from the protection OS 6 or the normal OS 11 and performing processing necessary for the operation mode switching.
- the technique described in Non-Patent Document 1 can be applied to the operation mode switching process.
- the switching mechanism 3 operates in both the normal mode and the protection mode, and has a storage area that can be accessed in both the normal mode and the protection mode.
- LSI2 When LSI2 is operating in the normal mode, requests from the normal program 12 operating in the normal mode to the protection program 8 operating in the protection mode are stored in the storage area! /. After the operation mode is switched, the protection OS 6 and the protection program 8 read out the stored information, thereby realizing communication between the program operating in the normal mode and the program operating in the protection mode.
- the protection OS 6 is an OS that controls the operation of the data processing device 1 when the LSI 2 is in the protection mode.
- Protection OS6 manages protection program 8 that operates in protection mode (process management), resource management, access control between protection programs using the memory management unit (MMU), interrupt processing, and normal switching mechanism 3 Performs switching to mode and debugging using debug function 7 to denogate the protection program. [0048] 1. 1. 4 Debugging function 7
- the debug function 7 controls the execution of the debugging process when the debugger 14 performs the debugging process on the protection program 8.
- the debug function 7 determines whether or not debugging of the protection program 8 by the debugger 14 is permitted. If the result of the determination shows that it is permitted, processing such as acquisition of debug information, setting of breakpoints, and acquisition of register values and memory values is performed on the protection program 8 according to the request from the debugger 14. .
- the debug information is information for debugging the program and indicates the correspondence between the program code in the object file and the source code.
- the debug function 7 performs preprocessing of debug processing of the protection program 8 using the stop flag. Details of the debug function 7 will be described later.
- the protection program 8 is an application program including information (hereinafter, confidential information) that must be protected against unauthorized analysis and tampering.
- Examples of confidential information include a decryption key decryption algorithm for decrypting encrypted digital content, and right information for storing rights related to reproduction and copying.
- the protection program 8 is stored in an encrypted state until execution is started in order to prevent unauthorized analysis, and is decrypted by the protection OS 6 at the start of execution.
- the protection program 8 is held in an encrypted state like the encrypted protection program 73 shown in FIG. 5 until execution is started.
- the encrypted protection program 73 is composed of a protection program main body 51, permitted debugger information 52, an access control list 53, and decryption header information 54.
- the protection program 8 is obtained.
- the protection program 8 includes a protection program main body 51, a permitted debugger HD information 52, and an access control list 53.
- the protection program main body 51 is an execution code of the program. 1. 1. 5. 3 Permitted debugger HD information 52
- the permitted debugger information 52 is a verification value for determining whether or not debugging processing for the protection program 8 is permitted.
- the permitted debugger information 52 indicates an identifier (debugger ID) of a debugger that is permitted to debug the protection program 8. That is, a debugger having the same debugger ID as the value shown in the permitted debugger ID information 52 can perform the debugging process for the protection program 8.
- the permitted debugger information 52 is used for the determination by the debug function 7.
- the access control list 53 is a list indicating whether or not the access to a predetermined area of the protection program 8 is permitted. In short, the access control list 53 associates whether or not access is permitted for each part of the protection program 8. Details of the access control list 53 will be described later.
- the decryption header information 54 indicates information necessary for decryption of the encrypted protection program 73.
- the algorithm used for the encryption key, the address for loading the protection program 8 into the memory, etc. are included in the decryption key header information 54.
- a technique for decrypting a program by adding information necessary for decryption to an encrypted program has been widely known in the art, and is not a major component of the present invention. To do.
- the permitted debugger HD information 52, the access control list 53, and the protection program main body 51 may be arranged in any way. Specifically, how to place the permitted debugger I or blueprint 52, etc., and add the information as header information to the program.
- the debugging function 7 of the data processing device 1 reads the permitted debugger I or f blueprint 52.
- the number of bits (or the number of bytes) indicating the permitted debugger HD information 52 and the number of bits indicating the access control list 53 are defined in advance, and the head of the protection program 8 is defined.
- the permitted debugger information 52 is used up to a predetermined bit, and the access control list 53 is set up to a predetermined bit thereafter.
- the debug function 7 can acquire the permitted debugger I or the blueprint 52 or the access control list 53 by reading information indicating the position occupied in the protection program 8 such as the permitted debugger information 52.
- the normal OS 11 is an OS that controls the operation of the data processing apparatus 1 when the LSI 2 is in the normal mode.
- the normal OS 11 performs management (process management), resource management, interrupt processing, and the like of the normal program 12 operating in the normal mode when operating in the normal mode.
- the switching debugger 13 normally operates as a device driver of the OS 11 and is used when the normal program 12 communicates with the protection program 8. As will be described later, when the debugger 14 communicates with the debug function 7, the debugger switching debugger 15 is used.
- the switching devdora 13 performs a communication data transfer process between the normal program 12 and the protection program 8 and a switching process to the normal mode force protection mode.
- the communication data transfer process accepts the data output by the normal program 12, outputs it to the protection program 8 via the switching mechanism 3, and outputs the data output from the protection program 8. This is a process of acquiring via the switching mechanism 3 and outputting the acquired data to the normal program 12.
- the debugger switching debugger 15 normally operates as a device driver for OS 11, and is used when the debugger 14 communicates with the debugging function 7.
- the debugger switching debugger 15 performs communication data exchange processing between the debugger 14 and the debugging function 7 and switching processing from the normal mode to the protection mode.
- Normal program 12 (12a, 12b, ⁇ ) is an application program that normally runs on OS11.
- the normal program 12 communicates with the protection program 8 operating in the protection mode using the switching debugger 13 and operates in cooperation with the protection program 8.
- the debugger 14 has a function of performing a debugging process on the normal program 12 and a function of performing a debugging process on the protection program 8.
- the debugger 14 has a debugger ID that is an identifier for identifying itself.
- the debugger ID is used when the debugging function 7 determines whether or not debugging is permitted. The management of the debugger ID of the debugger 14 will be described in detail in the third embodiment.
- the function of debugging the normal program 12 of the debugger 14 can be realized by, for example, a function similar to an application debugger such as GDB used in Linux (registered trademark).
- the debugger 14 communicates with the debugging function 7 of the protection OS 6 via the debugger switching debugger 15, and the debugging function 7 performs the debugging process on the protection program 8.
- This is a function that performs debug processing such as obtaining debug information, setting breakpoints, obtaining and setting register values and memory values, and accepting the results of the debug processing.
- the debugger 14 attaches to the normal program 12 operating in the normal mode, and operates in cooperation with the attached normal program (for example, the normal program 12a) and the normal program. Debug processing shall be performed for a protection program (for example, protection program 8a).
- the debugger 14 in the first embodiment is an application that normally runs on the OS 11.
- the ability to use a Chiller Debugger For example, a kernel mode debugger such as KGDB used in Linux (registered trademark) may be used to debug device drivers that operate in normal mode or protected mode.
- the debug function 7 includes a control unit 21, a debugger ID determination unit 22, an access determination unit 23, and a secure debugger 24.
- the secure debugger 24 includes a debug information acquisition unit 25, a breakpoint setting unit 26, a register value acquisition setting unit 27, and a memory value acquisition setting unit 28.
- protection program 8 includes permission debugger ID information 52 and access control list 53. As described in “10 Debugger 14”, the debugger 14 has a debugger ID.
- the protection program to be debugged is not specified as to which program is to be debugged, but is collectively referred to as the protection program 8 to be debugged.
- the debugger ID determination unit 22 determines whether or not the debugging process for the protection program 8 to be debugged is permitted.
- the debugger ID determination unit 22 acquires the debugger ID of the debugger 14 and the permitted debugger information 52 included in the protection program 8 to be debugged. Compare the obtained debugger ID with the permitted debugger information 52. Based on the result of the comparison, it is determined whether or not debugging of the protection program 8 to be debugged (that is, execution of debugging processing for the protection program to be debugged by the debugger 14) is permitted by the debugger 14.
- FIG. 3 is a detailed block diagram of the debugger ID determination unit 22.
- the debugger ID determination unit 22 includes a debugger ID comparison unit 31, a debugger ID calculation unit 32, and a comparison value holding unit 33.
- the debugger ID determination unit 22 Determine whether the debugger ID matches the value shown in the permitted debugger information 52 included in the protected program 8 to be debugged.
- the debugger ID calculation unit 32 receives the debugger ID of the debugger 14 and the permitted debugger information 52 included in the protection program 8 to be debugged.
- Debugger ID power Enabled debugger Subtract the value shown in HD information 52.
- the subtraction result is output to the debugger ID comparison unit 31 as the operation result.
- the debugger ID comparison unit 31 compares the calculation result of the debugger ID calculation unit 32 with the comparison value held in the comparison value holding unit 33, and controls ⁇ debugging possible '' if they match. Notify unit 21 and notify control unit 21 of “unable to debug” if they do not match.
- the comparison value holding unit 33 holds ⁇ 0 "as a comparison value for comparison with the calculation result of the debugger ID calculation unit 32.
- the debugger ID determination unit 22 in the first embodiment determines whether or not the debugger ID of the debugger 14 and the value shown in the permitted debugger ID information 52 included in the protection program 8 to be debugged match each other. However, it is not limited to determining whether the debugger ID matches. In other words, the debugger ID calculation unit 32 may perform multiplication / decryption calculation other than subtraction. Further, the comparison value holding unit 33 may hold a value other than “0”.
- the debugger ID determination unit 22 performs a predetermined operation using the identifier of the debugger 14 and the verification value included in the protection program 8 to be debugged as an operator, and the result is the comparison value holding unit 33. If it matches with the comparison value held in, it is judged as “debugging is possible”, and if not, it is judged as “debugging is impossible”!
- the debugger ID holding unit (not shown) holds the value shown in the permitted debugger HD information 52 of the protection program 8 in advance, and the debugger ID determination unit 22 receives the debugger 14 received from the debugger 14.
- the debugger ID may be compared with the value stored in the debugger ID holding unit. In this case, the debugger ID computation unit 32 does not perform any particular computation.
- the access determination unit 23 determines whether or not the access is permitted. That is, the access determination unit 23 acquires the access control list 53 from the protection program 8 to be debugged, and based on the acquired access control list 53, whether or not access to the area that the debugger 14 is trying to access is permitted. Make a decision.
- FIG. 6 is a diagram illustrating an example of the data structure of the access control list 53 acquired by the access determination unit 23.
- the access control list 53 also has two partial powers: an area for access control and access permission information related to the area.
- an access control list 53a when access control is performed using memory addresses and an access control list 53b when access control is performed using symbols will be described.
- Symbols are identifiers that identify variables and functions included in the program.
- Figure 6 (a) shows the data structure of the access control list 53a when the area for access control is specified by the memory address.
- the area for access control is specified by the start address and end address.
- one record in the access control list 53a includes a start address 61a, an end address 62a, and access permission information 63a.
- the start address 61a and the end address 62a indicate a start address and an end address of a memory area for which access control is performed.
- the access permission information 63a indicates whether or not to permit access to the memory area indicated by the start address 61a and the end address 62a. For example, 1-bit information indicates “access is allowed” when permitted, and “access not permitted” when not permitted.
- the access control list 53a includes a plurality of pairs of memory areas indicated by the start address 61a and the end address 62a, and each of these sets stores whether or not access is permitted in association with each other.
- the address indicated by the start address 61a or the like is a relative address in the present embodiment. That is, the decryption key header information 54 of the protection program 8 shows the memory address when the protection program 8 is loaded into the memory, and the relative address power starting from 0 at the beginning of this memory address is started. It is shown at address 61a and the like.
- the address shown in the start address 61a or the like may be an absolute address of the memory.
- the access determination unit 23 acquires the debug information of the access control list 53a and the protection program 8a. Further, the symbol that the debugger 14 requests to access is converted into an address using the debug information of the protection program 8a.
- the access determination unit 23 sequentially determines from the top of the list whether or not the converted address is included in each of the memory areas indicated by the start address 61a and the end address 62a in the access control list 53a. If it is determined that it is included, the access permission information 63a associated with the area is acquired, and the control unit 21 determines whether the information indicated in the access permission information 63a, that is, “access is allowed” or “access is not allowed”. Notify In addition, if there is a card that is not included in the memory area in the list, it is either “accessible” or “not accessible” based on the access permission information 63a associated with “default” at the top of the list. Is notified to the control unit 21.
- Figure 6 (b) shows the data structure of the access control list 53b when an area for access control is specified by a symbol name.
- the area for access control is specified by a symbol name.
- one record in the access control list 53b includes a symbol name 64b and access permission information 65b.
- the symbol name 64b indicates the name of a symbol to be subjected to access control.
- the access permission information 65b indicates whether or not access to the symbol indicated by the symbol name 64b is permitted.
- the access control list 53b indicates whether or not each symbol has the power to permit access. [0080] At the top of the list, a symbol not shown in symbol name 64b is defined as "default". In this embodiment, access to the “default” symbol is “not accessible”.
- the access determination unit 23 acquires the access control list 53b.
- the name power of the symbol that the debugger 14 is requesting access The power of the list is also determined in order to determine whether it matches the symbol name indicated by the symbol name 64b in the access control list 53b. If it matches the symbol name in the list, the access permission information 65b associated with the symbol name is acquired, and the control section determines whether the information shown in the access permission information 65b, that is, “accessible” or “accessible” Notify 21. If it does not match the symbol name in the list, it is associated with “default” at the beginning of the list! /, Based on the access permission information 65b! /, “Accessible” or “accessible” The control unit 21 is notified of “impossible”.
- the access control lists 53a and 53b according to the first embodiment have the access permission information associated with “default” with a symbol not shown in the access control lists 53a and 53b as “default” at the top of the list.
- the power to memorize 63a, 65b It is not limited to this.
- the access determination unit 23 may always determine “accessible” in the case of a memory area or symbol name that is not included in the access control lists 53a and 53b! Even if it is judged as “impossible”.
- the debugger 14 is not limited to the force symbol that requests access by symbol.
- the debugger 14 may specify the area to be accessed by the memory address.
- V is used to determine the access permission using the access control list 53a, and the symbol specified by the debugger 14 is converted into an address! This is determined directly by the address specified by the debugger 14.
- the secure debugger 24 performs various debugging processes in response to requests from the debugger 14.
- the secure debugger 24 includes a debug information acquisition unit 25, a breakpoint setting unit 26, a register value acquisition setting unit 27, and a memory value acquisition setting unit 28.
- the debugging information acquisition unit 25 performs processing for acquiring debugging information such as symbol information from the protection program 8 to be debugged.
- the breakpoint setting unit 26 performs processing for setting a breakpoint in the protection program 8 to be debugged.
- the register value acquisition setting unit 27 acquires the register value V used by the debug target protection program 8 or sets the register value used by the debug target protection program 8.
- the memory value acquisition setting unit 28 acquires the memory value used by the protection program 8 to be debugged, or sets the memory value used by the protection program 8 to be debugged.
- control unit 21 confirms whether or not the debugger 14 is permitted to execute the debugging process for the protection program 8 to be debugged.
- control unit 21 responds to the request of the debugger 14 and each process included in the secure debugger 24 (debug information acquisition unit 25, breakpoint setting unit 26, register Calls the value acquisition setting unit 27 and memory value acquisition setting unit 28).
- the control unit 21 determines that the debugger 14 If it is determined that access to the area where access is prohibited by, the request from debugger 14 is not processed. In other words, each process included in the secure debugger 24 is not called. At this time, in order to notify the debugger 14 that the processing included in the secure debugger 24 has not been invoked, the debugger 14 is notified that the debug processing is not permitted. Output It is also good. In this way, the debugger 14 can perform processing such as indicating to the user of the debugger 14 that the execution of debugging processing has been permitted.
- the execution of the debugging process is controlled using the permitted debugger HD information 52 and the access control list 53.
- the permitted debugger information 52 included in the protection program 8 is described.
- One or more debugger IDs can be displayed! By including multiple debugger IDs, multiple developers can be allowed to debug. For example, a case where multiple developers jointly develop a program can be considered.
- a plurality of permitted debugger information 52 including one debugger ID may be included, and the access control list 53 may be associated with each permitted debugger ID information 52.
- the access control list 53 may indicate different access restrictions for each permitted debugger information 52. This allows you to impose different access limits for each debugger ID.
- the control unit 21 causes the debugger ID determination unit 22 to hold and perform determination for each of the debugger IDs indicated in the plurality of permitted debugger m information 52, and determine the debugger ID determined to be permitted to debug. If there is, the access determination unit 23 is requested to perform access determination based on the access control list corresponding to the debugger ID. If all debugger IDs are determined not to be debugged, do not process the request from debugger 14.
- the switching debugger 13 includes a switching operation unit 41, a request distribution unit 42, a normal request reception unit 43, and a debug request reception unit 44.
- the switching operation unit 41 saves the state of the data processing device in the normal mode by saving the register values used in the normal mode, and then uses the switching mechanism 3 to switch to the normal mode force protection mode. Process to switch to. Furthermore, when the protection mode is switched to the normal mode, the saved processing is restored, and the request distribution unit 42 is notified of the request from the protection mode generated at the time of switching. This request includes a debug request due to a debug exception and a request to the normal program 12.
- the request distribution unit 42 determines whether the request from the protection mode is a request to debug the normal program 12 due to a debug exception generated during the protection mode operation.
- the debug request reception unit 44 is notified of the debug request, and if the request is for the normal program 12, the normal request reception unit 43 is notified of the request from the protection mode.
- the normal request receiving unit 43 mediates communication between the program operating in the protection mode such as the protection OS 6 or the protection program 8 and the normal program 12.
- the debug request reception unit 44 notifies a debug exception generated by a breakpoint set in the protection program 8 to the debugger 14 debugging the normal program 12 linked with the protection program 8.
- the debugging exception generated in the protection program 8 is notified to the appropriate debugger 14 while mediating communication between the normal program 12 and the protection program 8. It becomes possible. In this way, it is possible to prevent leakage of confidential information by notifying the unrelated debugger of the confidential information included in the protection program 8.
- the switching debugger 13 is composed of the request distribution unit 42, the normal request reception unit 43, and the debug request reception unit 44 in addition to the switching operation unit 41. It is not limited to such a configuration.
- the switching debugger 13 includes only the switching operation unit 41, and the request distribution unit 42, the normal request reception unit 43, and the debug request reception unit 44 may be incorporated in the normal program 12 as a library. In this case, the operations of the request distribution unit 42, the normal request reception unit 43, and the debug request reception unit 44 are performed by a library that is called during the execution of the normal program 12.
- protection program 8 is a program that operates in protection mode
- programs and debuggers that operate in normal mode cannot access protection program 8 directly. Therefore, the secure debugger 24 performs a debugging process on the protection program 8, and the debugger 14 receives the result.
- FIG. 7 is a diagram illustrating the operation of the debug function 7.
- the debugger ID determination unit 22 determines whether debugging of the protection program 8 by the debugger 14 is permitted based on the debugger ID of the debugger 14 and the permitted debugger ID information 52 of the protection program 8. (S 101).
- the control unit 21 switches processing based on the determination result of the debugger ID determination unit 22 (S102). That is, when the determination result of the debugger ID determination unit 22 is “no debugging” (S102: NO), the debugging process is stopped.
- the access determination unit 23 determines whether access by the debugger 14 is permitted by the debugger 14 based on the access control list 53 of the protection program 8 (S103).
- the control unit 21 switches processing based on the determination result of the access determination unit 23 (S104). That is, when the determination result of the access determination unit 23 is “access impossible” (S 10 4: NO), the debugging process is stopped.
- the debug function 7 is executed by each processing unit (debug information acquisition unit 25, breakpoint setting unit 26 of the secure debugger 24). Then, the register value acquisition setting unit 27 and the memory value acquisition setting unit 28) are called to perform processing (S105).
- FIG. 8 is a flowchart of execution of the normal program 12 and the protection program 8 when debugging is not performed in the first embodiment of the present invention.
- the normal program 1 2 calls the protection program 8 via the switching driver 13 which is a normal OS11 device driver and the protection OS6.
- the switching driver 13 which is a normal OS11 device driver and the protection OS6.
- the normal program 12a operates in conjunction with the protection program 8a will be described as an example.
- the normal program 12a is started.
- the activated normal program 12a opens the switching debugger 13 as a pre-process for switching the operation mode to the protection mode (step S201).
- “Open” means that the switching debugger 13 can communicate with a process operating in the protection mode such as the protection OS 6.
- the normal program 12a designates an encrypted protection program in order to operate the protection program 8a, and sends a request to load the encrypted protection program according to the designation to the memory via the switching debugger 13. Notify the protection OS6 (step S202). Note that here, when the encrypted protection program is decrypted, the protection program 8a is generated. It will be done.
- the protection OS 6 receives a request to load the encrypted protection program, and acquires information necessary for loading from the decryption header information of the encrypted protection program (step S203).
- the information necessary for loading includes information necessary for decryption of the encrypted protection program, such as the load destination address of the protection program body included in the encrypted protection program.
- Protection OS6 decrypts the encrypted protection program based on the information required for loading that is required for acquisition.
- the protection program 8a obtained by the decryption is loaded into the memory area managed in the protection mode (step S204), so that the protection program 8a can be executed.
- the process returns from the protection OS 6 to the normal program 12a via the switching driver 13 (step S205). That is, the right to execute the process is transferred to the normal program 12a, and the execution of the normal program 12a is resumed.
- FIG. 9 is a flowchart showing the operation when the normal program 12 needs to execute the function of the protection program 8.
- the normal program 12a notifies the protection OS 6 of the request to execute the protection program 8a via the switching debugger 13 (step S206).
- the execution request includes instructions and processing to be performed by the protection program 8a.
- the protection OS 6 receives a request to execute the protection program 8a, executes the protection program 8a, and performs processing according to the execution request (step S207).
- the process returns from the protection program 8a to the normal program 12a via the protection OS 6 and the switching debugger 13 (step S208).
- Protective product If the normal program 12a uses the processing result of the program 8a, the processing result is transferred between the protection program 8a and the normal program 12a via the switching mechanism 3 and the switching debugger 13.
- step S206 and step S208 are performed.
- FIG. 10 is a flowchart showing an operation when the normal program 12a finishes using the protection program 8a.
- the normal program 12a when the normal program 12a finishes using the protection program 8a, the normal program 12a outputs a request to delete the protection program 8a to the protection OS 6 via the switching debugger 13 (step S209). ).
- the deletion request indicates the protection program 8 to be deleted.
- the protection program 8a is deleted in response to a deletion request.
- the protection OS 6 accepts the deletion request and deletes the protection program 8a (step S2 10). After that, the normal program 12a helicopter is transferred from the protection OS 6 via the switching devdora 13. By this deletion operation, the function of the protection program 8a cannot be used until the protection program 8a is loaded again. In addition, since the protection program 8a, which is in plain text, has no memory power, it can be subjected to fraud analysis.
- the switching debugger 13 is closed (S211). “Close” means that the switching debugger 13 does not communicate with the protected OS 6 or the like.
- Figure 11 shows the debugging of 14 debuggers with normal program 12 and protection program 8 It is a flowchart which shows the pre-process for performing a process.
- the debugger 14 accepts the program developer's attach operation, and the normal program 1
- the debugger 14 opens the debugger switching debugger 15 in order to communicate with the debug function 7 that operates in the protection mode when the debugging process is executed (S302).
- the debugger 14 In order to notify the debug function 7 of the process ID of the normal program 12a, the debugger 14 passes the debugger switching debugger 15 to operate the process ID of the normal program 12a in the protection mode 7 Is notified (S303).
- the debug function 7 saves the notified process ID and, when executing the protection program 8a, enables a stop flag indicating whether to stop the protection program immediately after the start of execution (S304).
- the reason for performing the processing to enable the stop flag will be explained in “1.4.2.3.2 Supplementary preprocessing” described later.
- the stop flag is 1-bit information and is stored in a storage area such as a register or memory within the protection mechanism.
- the debugger 14 receives an operation from the program developer that is useful for debugging, and performs debugging on the normal program 12a. When you finish the necessary processing, the debugger 1
- step 4 the program developer's ability also accepts an operation of resuming program execution, and resumes execution of the normal program 12a to be debugged (S305).
- the normal program 12a whose execution has been resumed, opens the switching debugger 13 and switches the protection program 8a load processing (S306) and the protection program 8a execution processing (S307) via the switching debugger 13 to protect OS6. To request.
- step S306 is almost the same as steps S202, S203, and S204 shown in FIG.
- execution process of step S307 includes steps S206, S207,
- the protection OS 6 requests the debug function 7 to execute preprocessing (S308).
- the debug function 7 receives the request and performs preprocessing.
- the preprocessing means that the debug function 7 determines whether the stop flag corresponding to the process ID is valid (S309), and if it is valid (S309: YES), the entry point of the protection program 8a Change the instruction in (1) to a break instruction (S310). If the stop flag is not valid (S309: NO), debug function 7 will not change the entry point instruction!
- Protection OS6 executes the protection program 8a (S311).
- step S304 the force that makes the stop flag valid in step S304.
- Such a process is performed in order to enable the program developer to easily debug.
- the protection program 8a is the normal program 12a. It is loaded when it is called, and is deleted from memory when it is no longer needed.
- the program of the first embodiment starts with the execution of the normal program 12a, it is difficult for the program developer to confirm that the execution has been switched to the protection program 8a.
- the protection program 8a when the protection program 8a is read, the program developer is notified that the processing has moved to the protection program 8a, and the protection program 8a is given an opportunity to set a breakpoint. Is supposed to stop processing.
- Figure 12 shows the flowchart when a debug exception occurs due to a breakpoint during execution of the protection program 8a and the debugger 14 is used to debug the protection program 8a. Yat.
- the protection OS 6 receives the debug exception notification and notifies the switching debugger 13 of the occurrence of the debug exception (S402).
- the switching debugger 13 When receiving the notification of the occurrence of the debug exception, the switching debugger 13 requests the debugger 14 to execute debug processing by the debug request receiving unit 44 in order to cause the debugger 14 to perform debugging processing (S403).
- the debugger 14 When the debugger 14 receives a request to execute debug processing, the debugger 14 requests the protected OS 6 to obtain debug information via the debugger switching debugger 15 in order to provide debug information to the program developer. (S404). At this time, the protected OS 6 is also requested to notify the debugger ID of the debugger 14 and the communication area for debugging (not shown).
- the communication area for debugging is an area that can be accessed in both the normal mode and the protection mode, and is used when passing debug information from the protection mode to the normal mode.
- the protection OS 6 requests the debug function 7 to acquire debug information (S405).
- the debugging function 7 uses the debugger ID determination unit 22 and the access determination unit 23 to determine whether debugging processing for the protection program 8a and access to a predetermined portion of the protection program 8a that is useful for debugging processing are permitted. Determination is made (S406).
- step S406 If it is determined in step S406 that debug processing and access are permitted! (S406: YES), the debug information acquisition unit 25 acquires the debug information of the protection program 8a, The debugging information is copied to the debugging communication area (S407). After copying, the debug function 7 notifies the debugger 14 via the protection OS 6 and debugger switching debugger 15 of the completion of the acquisition of debug information, and the process returns from the debug function 7 to the debugger 14 (S408). ).
- the debugger 14 acquires the debug information copied to the debug communication area and displays it on the display unit (not shown) to show the debug information to the program developer (S409). After that, when the program developer refers to the debug information and completes the necessary processing, the debugger 14 accepts the predetermined operation by the program developer and resumes execution of the protection program 8a to be debugged.
- the protection OS6 is requested via the switching driver 13 (S4 10).
- Protection OS6 accepts the request to resume execution and resumes execution of protection program 8a
- the processing when a debug exception due to a breakpoint occurs during execution of protection program 8a has been described.
- the program developer requests other debug processing such as breakpoint setting processing, register value'memory value setting and acquisition processing, and the debug function 7 performs debugging processing in response to this request.
- the processing performed by the debug function 7 (strictly, each functional part of the secure debugger 24) is performed in the same flow as above. Omitted.
- debug processing can be performed on the protection program 8a that works to generate the exception.
- this is not limited to the protection program 8. It may be possible to debug normal programs such as the normal program 12a that the debugger 14 debugs!
- the second embodiment will be described below.
- a method for generating the protection program 8 and a program generation device for generating the protection program 8 will be described.
- FIG. 13 is a diagram for explaining a method for generating the protection program 8 according to the present invention.
- the protection program 8 is generated by being encrypted.
- the encrypted protection program 73 is generated, the protection program source code 71, the protection program generation device 72, and the protection program
- the permitted debugger ID storage file 74, the access control list storage file 75, and the confidential information area storage file 76, which are information added to the protection program, are used.
- the protection program source code 71 shown in FIG. 13 is source code describing the operation of the protection program 8.
- the protection program generator 72 compiles and links the protection program source code 71. Appends the permitted debugger ID information and access control list to the generated executable file and encrypts it. Further, the encrypted protection program 73 is generated by adding information necessary for decryption as header information for decryption. Specifically, it will be described later.
- the encrypted protection program 73 is a program generated by the protection program generation device 72.
- the permitted debugger ID storage file 74 and the access control list storage file 75 respectively contain the permitted debugger I and the access control list used by the debug function 7 and the debugger 14 when debugging is performed on the protection program 8. It is data to include.
- the confidential information area storage file 76 includes an area of each information in the program and a confidential information classification power indicating whether the information related to the area is the confidential information power.
- the protection program developer creates the protection program source code 71.
- the source code an area that allows access from the debugger and an area that does not permit access are created as an access control list and written in the access control list storage file 75. Further, the secret information area and the non-confidential area are recorded in the secret information area storage file 76.
- the protection program generation device 72 is operated with the obtained permitted debugger ID storage file 74, the protection program source code 71, the access control list storage file 75, and the confidential information area storage file 76 as inputs. As a result, an encrypted protection program 73 is generated.
- FIG. 14 is a configuration diagram of the protection program generation device 72.
- the protection program generation device 72 includes a compiler 77, a linker 78, and a protection programming tool 79.
- the compiler 77 shown in FIG. 14 compiles the input protection program source code 71 to generate an object file. Create symbol information that indicates the placement of variables and functions, and the correspondence between program code and source code in the object file as debug information, and add it to the object file.
- the linker 78 links the object file generated by the compiler 77 and the library, and generates an executable file. In addition, the linker 78 generates a symbol file that indicates where and which variables and functions have been placed in the generated executable file.
- the protection programming tool 79 stores the permitted debugger information and the access control list stored in the permitted debugger ID storage file 74 input to the protection program generation device 72 in the header of the executable file created by the linker 78. Appends the access control list stored in file 75. Furthermore, the information indicating whether each area described in the confidential information area storage file 76 is confidential information is added to the debug information to generate a protection program.
- the protection programming tool 79 encrypts the generated protection program with the key held in common by the protection OS 6 and the protection program generation device 72, and determines the address to load the protection program. It is added as header information for decoding key.
- the encryption key uses a key that is commonly held by the protection OS 6 and the protection program generation device 72 (so-called common key cryptosystem), but public key cryptography that holds different keys is used. Needless to say, you can use methods.
- the access control list is given in the form of a symbol name and access permission information pair! /
- the symbol file output by the linker 78 is used to determine the symbol from the symbol name. You may find the area where it is located and change the symbol name in the access control list to that area (that is, information that indicates where in the executable file).
- the configuration of the encrypted protection program 73 is as described in Embodiment 1 with reference to FIG.
- the encrypted protection program 73 is composed of a protection program main body 51, permitted debugger m information 52, an access control list 53, and decryption header information 54. Then, the permitted debugger I and the blueprint 52 and the access control list 53 are added to the header of the protection program main body 51, and the structure is encrypted.
- the decryption header information 54 stores data necessary for decryption and is not encrypted.
- FIG. 15 is a flowchart showing a process in which the protection program generating device 72 generates the encrypted protection program 73.
- the program developer has already created the protection program source code 71, the access control list storage file 75, and the confidential information area storage file 76.
- the program developer writes the protection program source code 71.
- the access control list is created by deciding the area where access to the debugger is disabled and the area where access is disabled in the source code, and described as the access control list storage file 75. Also, the area where the confidential information is recorded is described in the confidential information area storage file.
- the program developer shall separately obtain the permitted debugger ID storage file 74! /.
- the protection program generation device 72 includes a protection program source code 71, a permitted debugger ID storage file 74, an access control list storage file 75, and a secret information area storage file. 76 is accepted as an input (S501).
- the protection program generation device 72 uses the compiler 77 and linker 78 to compile and link the input protection program source code 71 (S502).
- the protection programming tool 79 is stored in the protection program main body 51 generated by compiling and linking the protection program source code 71, the access control list 53 stored in the access control list storage file 75, and the debugger ID storage file 74.
- the stored permitted debugger HD information 52 is added (S503), and information indicating whether or not each area described in the confidential information area storage file 76 is confidential information is added to the debugging information to Encoding is performed (S504).
- the protection programming tool 79 adds information necessary for decryption, such as the load destination address of the protection program main body 51, to the encrypted program as decryption header information 54, and the encrypted protection program 73 Is output as (S505).
- the power that the program developer can write to the confidential information area storage file 76 is not limited to this.
- a computer program such as a compiler may automatically create these access control lists and confidential information storage files. More specifically, some mark may be placed in advance on the source code where the secret information exists, and the compiler may write to the secret information storage file according to the presence or absence of the mark.
- the protection program generation device 72 performs all processing up to the creation of the protection program for the protection program source code con- nector, but the present invention is not limited to this.
- the generation of the protection program and the addition of an access control list or the like may be performed by different devices.
- the protection program generation device 72 is a device that compiles and links the protection program source code 71 to generate the protection program main body 51, and a device that acquires the generated protection program main body 51 and adds an access control list or the like. It will be configured as a pair. In the configuration described above, it is sufficient for the device that generates the protection program main body 51 to have only the protection program source code 71 as an input.
- the protection program body 51 is given to the device to which the access control list or the like is added, the protection program source code 71 need not be input. With such a configuration, the creation of the protection program body 51 and the addition of an access control list, etc. can be performed separately, so that the efficiency of program development can be improved by entrusting each work to another company, etc. Etc.
- Embodiment 3 will be described below. In the third embodiment, how the debugger ID is managed will be described in particular. In the third embodiment, it is assumed that the debugger ID is managed by the debugger ID management server.
- FIG. 16 shows how to manage the debugger ID using the debugger ID management server.
- the debugger ID management server 81 shown in FIG. 16 manages the debugger ID.
- the debugger ID is managed using a debugger ID management file 90 described later.
- the debugger ID management server 81 needs to manage such that the same debugger ID is not assigned to a plurality of protection program developers (or protection program development devices 82).
- the debugger ID management server 81 is a server of a company (debugger ID management company) that manages debugger IDs (note that the power of "company” is not limited to this, and is an administrator that manages debugger IDs). It goes without saying that it could be an organization or an individual other than the company.
- the debugger ID management server 81 In response to a request from the protection program development device 82, the debugger ID management server 81 issues a debugger ID different from the previously issued debugger ID, and provides the debugger ID storage file storing the issued debugger ID to the protection program development device 82. . Further, the debugger ID management company creates a debugger having an ID corresponding to the debugger ID and provides it to the protection program development device 82.
- the protection program development device 82 uses the protection program generation device 72 to create a protection program.
- the protection program development device 82 receives a debugger ID storage file from the protection program analysis device 83.
- the debugger ID shown in the received debugger ID storage file is acquired and input to the protected program generation device 72 described in the second embodiment as the permitted debugger ID storage file 74.
- the protection program development device 82 is owned by a program developer (individual or organization) that develops the protection program.
- the protection program analysis device 83 is a device for analyzing defects included in the protection program.
- the protection program analysis device 83 is owned by an individual or an organization.
- the protection program analysis device 83 has the debugger ID management server 81 issue a debugger ID, and the obtained debugger ID storage file is used to develop the protection program development that developed the protection program to be analyzed. Provide to device 82.
- the protection program development device 82 When the protection program development device 82 that provided the debugger ID storage file generates a protection program based on the debugger ID storage file, the protection program development device 82 obtains a debuggable protection program and analyzes the protection program. .
- FIG. 17 shows the data structure of the debugger ID management file 90 used by the debugger ID management server 81 for managing the debugger ID.
- One record of the debugger ID management file 90 includes a management number 91, a debugger ID 92, a protection program developer name 93, and a contact 94.
- the management number 91 stores a number for managing the debugger ID issued by the debugger ID management server 81.
- the debugger ID 92 the value of the issued debugger ID managed by the management number 91 is stored. Note that the debugger ID 92 can identify each program developer (or each of the protection program development devices 82), and is long enough to prevent spoofing attacks in which debugging is performed by spoofing the debugger's debug ID. It is desirable to use a numeric string.
- the protection program developer name 93 stores the name of the program developer who has applied for issuance of a debugger ID.
- contact 94 the contact information of the program developer who has applied for issuance of the debugger ID is stored.
- the debugger ID management server 81 provides the debugger to the protection program development device 82.
- the providing destination of the debugger is not limited to the protection program development device 82.
- the protection program analysis device 83 may be provided.
- the debugger ID management file 90 can be used as a file for managing issued debugger IDs. It is not limited to issued debugger IDs. Good.
- the debugger ID management file 90 manages the name and contact information of the program developer to whom the issued debugger ID is issued, but it is also possible to manage only the issued debugger ID.
- the debugger may not be provided by the debugger ID management company, but may be provided by the server management power of the other party entrusted with the development of the debugger by the debug management company. In this case, the other person obtains the debugger ID information from the debugger ID management server 81.
- display means for displaying program operation information on a graphical user interface is added to the debugger of the first embodiment. Since the function of the debugger main body is the same as that of the first embodiment, the description is omitted.
- the program operation information refers to information referred to for debugging the program to be debugged, that is, information related to the program operation.
- the operation information includes the program code, the value of each register of the processor executing the program, the symbol name and value of the local variable, and the variable and value specified by the symbol. , Values of memory usage, etc., function call hierarchy, and information on whether to operate in protected mode or normal mode.
- the operation information of the protection program 8 is obtained based on the information acquired by the debugger 14 via the debug function 7, and the operation information of the normal program 12 is obtained. The information is obtained based on information directly acquired by the debugger 14.
- Figure 18 shows a graphical user interface (GUI) for displaying program operation information.
- GUI graphical user interface
- FIG. 18A shows a GUI 150a which is a screen configuration of the display means when the debugger 14 is attached to the normal program 12 and the normal program 12 is being debugged.
- FIG. 18B shows a GUI 150b which is a screen configuration of the display means when the normal program 12 executes the protection program 8 and debugs the normal program 12 and the protection program 8.
- the GUI 150a includes a code display section 151, a register display section 152, a memory display section 153, a symbol display section 154, a watchpoint display section 155, and a call stack display section 156.
- the code display unit 151 is a display unit for displaying the code of the program to be debugged, and displays source code, assembler code, and machine language.
- the register display unit 152 displays the value of each register of the processor executing the program.
- the memory display unit 153 displays the memory value.
- the symbol display section 154 displays the symbol name and value of a local variable used in the stopped function in the program to be debugged.
- the watchpoint display unit 155 displays the variable specified by the symbol and its value.
- the call stack display unit 156 displays the call hierarchy until the stopped function is called in the program to be debugged. .
- the window title display unit 157 is a display unit for displaying the title of the window, and displays the program name and program status of the program to be debugged and debugged.
- the menu display unit 158 displays a menu of the debugger.
- the menu includes opening and attaching the program to be debugged, exiting the debugger, displaying the setting screen for setting the debugger operation and program operation information display method, and displaying the program to be debugged. There are execution, interruption, restart, step execution, etc.
- the mode display unit 159 is a display unit for displaying the mode in which the program was executed when the program stopped due to a breakpoint or the like. When the program stopped during normal program execution, it is in the normal mode. “Normal mode” is displayed to indicate this, and “protection mode” is displayed to indicate that it is in the protection mode if it stops while the protection program is running.
- the mode display section in order to display whether the debug exception has occurred in the normal program 12 or the protection program 8.
- Power is not limited to this.
- the display of the mode is not limited to the character string of “normal mode” or “protection mode”, and any display may be used as long as it can indicate that the mode is different. To give a concrete example, it may be an icon.
- the display location is not limited to the mode display section, but may be distinguished by the window color or the like that may be displayed in the entire window. In addition, a mode display window may be provided separately.
- These display sections usually stop execution immediately after the debugger 14 attaches to a normal program, or when the normal program stops at a breakpoint instruction and debugging by the debugger 14 is possible. Various statuses when the program is stopped and the execution status of the debugger 14 are displayed while the debugger 14 is running. In addition, values set in registers, memories, variables, etc. can be changed by user input.
- the GUI 150b includes a normal program debug window 160 and a protective program debug window 161.
- the normal program debug window 160 is a window for displaying various information of the normal program 12.
- the protection program debug window 161 is a window for displaying various information of the protection program. Both windows (ordinary program debug window 160 and protection program debug window 161) are displayed in the windows shown in Fig. 18 (a).
- the code display unit 151, the register display unit 152, the memory display unit 153, the symbol display unit 154, the watch point display unit 155, and the call stack display unit 156) are displayed. Since the drawing is complicated, these display parts are not shown in FIG. 18 (b).
- the debugger user debugs the normal program 12 and the protection program 8 using a debugger having such a display means
- the state immediately after starting the debugger or immediately after attaching to the normal program is shown in FIG.
- the screen configuration is as shown in (a).
- the screen shown in Fig. 18 (a) is displayed to display various information of the protection program. Is divided into two, and the screen configuration is changed as shown in Fig. 18 (b).
- a pop-up display is performed, and a specific sound such as a beep or a sound set by the user is sounded.
- a specific sound such as a beep or a sound set by the user is sounded.
- the protection program 8 is not limited to the power division that is divided into the debugger window power when debugging. For example, you can create a new window for debugging the protection program, or switch between the normal program debugging window 160 and the protection program debugging window 161 using tabs and menus.
- debug exception occurs during execution of protection program 8 and debugging is enabled, the focus shifts to debug window 161 for protection program, and breakpoint settings and memory are set for protection program. 'Register value can be changed. In addition, the same setting and changing operations can be performed on the normal program 12.
- the debugger user can debug the protection program 8 and the normal program 12 at the same time. It is not limited to what you can do. For example, it is possible to limit the scope of debugging that can be performed only to protected programs. You can restrict access to the debug window 160 of regular programs.
- debugging of the protection program 8 using the debugger 14 and the debug function 7 is restricted depending on the debugger 14. For this reason, there are cases where information cannot be displayed on each display section, such as when debugging processing for the protection program 8 is not permitted or when trying to display an area where access is not permitted by the access control list.
- the portion that cannot be displayed is displayed as a specific character string such as "*".
- a specific character string such as "*"
- an icon that is not limited to display with a specific character string may be displayed. It is not necessary to display anything.
- the background color of the part that cannot be displayed may be different from the background color of the part that can be displayed.
- debugger 14 When debugging the protection program 8, there are important information and areas for program development and analysis, such as confidential information in the protection program 8 and shared areas for communication between the normal program 12 and the protection program 8. To do. For this reason, debugger 14 must be careful about this, and it is desirable to alert the user who uses the debugger by devising a display method of information and areas.
- the confidential information is not displayed and the portion is displayed in a blank state. Is done.
- the confidential information is displayed.
- the confidential information is displayed.
- the color of the character at the time to the color set by the user (for example, red).
- a pop-up display to display confidential information is performed, and a specific sound such as a beep or a sound set by the user is played. By operating in this way, the user is warned that it is confidential information.
- the shared information which is information shared by the normal program 12 and the protection program 8
- the information is obtained from the protection OS 6 in the normal mode and the protection mode when the debugger 14 executes the debugging process for the protection program 8.
- Get information about the shared area and check whether the shared information area contains the code or data area that you want to display when displaying the information on each display.
- the area is a shared information area
- the color of the text when displaying the information in that area is set to a color set by the user (for example, yellow) to emphasize the shared information.
- a pop-up is displayed to display shared information, and a specific sound such as a beep or a sound set by the user is played. By operating in this way, the user is warned that it is shared information.
- the character color used when displaying confidential information or shared information is set to the color set by the user.
- the background color is not limited to changing the character color. You can change the color, change the style of characters such as bold or italic, add underlined or shaded characters, and enclose the entire confidential information or shared information.
- Embodiment 5 unlike the fourth embodiment, display means for displaying program operation information on a character-based user interface is added to the debugger of the first embodiment. Also in the fifth embodiment, the function of the debugger main body is the same as that of the first embodiment, and the description is omitted.
- FIG. 19 is an explanatory diagram of a display method for the character-based user interface (C UI170) in the fifth embodiment of the present invention.
- the debugger 14 When the debugger 14 is activated, it displays a prompt different from the console, such as “(dbg)”, indicating that the debugger 14 is ready for use. This state indicates that the normal program 12 can be debugged (debug processing result display example 17 la).
- the debugger 14 displays a prompt such as “(dbg-sec)”, which is different from the normal program 12 debugging. Make it distinguishable.
- the prompt and the message from the debugger 14 are displayed so that the user can distinguish them. For example, as shown in the figure, parentheses may be used to represent a prompt.
- the protection program 8 can be changed to the italic style by changing the style of the prompt, message from the debugger 14, and user input. Is displayed during execution, so that the user can distinguish (debug processing result display example 171b).
- debugging can be performed for a program whose execution has stopped, but in Embodiment 5, debugging is performed for a state in which the normal program 12 and the protection program 8 are linked to each other. It is desirable that the protection program 8 is denominated while the normal program 12 is being executed, and conversely, the normal program 12 can be debugged while the protection program 8 is being executed.
- the command ⁇ normal '' should be used to debug the normal program rather than the protection program. By entering, the normal program can be debugged.
- debugger 14 If the user of the debugger 14 tries to debug the protection program 8, if debugging is permitted, access is prohibited, and information about the area to be displayed is entered, a command is entered. By displaying “Access invalid” or the like, the user is informed that debugging is permitted and access is prohibited.
- the prompt to be displayed is changed to distinguish whether the normal program 12 can be debugged or the protected program 8 can be debugged.
- the present invention is not limited to changing the prompt.
- a character indicating the current state may be displayed each time processing requested by the user is completed, separately from the prompt. It is also possible to change the prompt, the message from the debugger, or the character style entered by the user to bold italic font, change the text color or background color, and underline or shaded text. You may attach a letter decoration.
- a character string may be displayed at the beginning of the line so that it can be divided whether it was stopped during the execution of the power protection program 8 that was stopped during the execution of the normal program 12.
- the message “Change to Secure mode.” Indicates that the data processing apparatus 1 has shifted to the protection mode.
- the message “Change to Normal mode.” Indicates that the data processing apparatus 1 has shifted to the normal mode.
- the message notifies the result of the processing after the data processing device 1 performs the processing according to the command input by the user.
- command “secure” is a command for shifting to the protection mode
- command “nor malj” is a command for shifting to the normal mode
- the permitted debugger HD information 52 and the access control list 53 are not limited to the power included in the protection program 8, but the permitted debugger ID information 52 and the access control list 53 It is also possible to acquire the external force of the data processing device. In this case, you should also acquire information indicating which protection program 8 the authorized debugger ID information 52, etc., which is useful for acquisition, corresponds to. In this way, it is possible to easily determine whether or not debug processing can be executed for the protection program 8.
- the permitted debugger information 52 etc. indicates the debugger ID that can be debugged and the accessible area, so if analyzed, the protection program 8 cannot be protected, so data cannot be exposed by unauthorized access. It must be stored in a safe area such as a protection mechanism in the processing equipment.
- the protection program 8 and the normal program 12 are not limited to the power that operates on the protection OS 6 and the normal OS 11. For example, it may operate directly without going through the OS.
- the debug function 7, the switching debugger 13 and the debugger switching debugger 15 are provided as LSI2 functions and the like, and also perform processing such as interrupt monitoring performed by each OS.
- the debugger 14 may be created in a language that can be directly executed by the CPU on the LSI 2 or the like.
- the debugger 14, the switching debugger 13, the debugger switching debugger 15, the debugging function 7, etc. are implemented as software that operates on the LSI 2. Not. For example, it may be realized as a function of LSI2, or in the form of hardware that communicates with LSI2. Further, only a part of each component may be realized as a function of LSI2, or may be realized as hardware.
- the same denogger ID is sent in response to a request transmitted via the protection program development device 82 for an organization or the like that owns a plurality of protection program development devices 82. May be given to a plurality of protection program development devices 82.
- the debug function 7 confirms that debugging is permitted by confirming the debugger ID, and access to the requested area is permitted by confirming the access control list. Only in such cases, debugging may be permitted only by checking one of the forces that debugging is permitted.
- the order of confirmation is not limited to the order of confirming the access control list after confirming the debugger ID, and either may be confirmed first.
- the debugger 14 is attached to the normal program 12 and is capable of performing a debugging process on the protection program 8 that operates in conjunction with the normal program 12. For example, even a debugger that can be attached directly to protection program 8!
- the protection program 8 is loaded in advance in memory, and the debug exception generated in the protection program 8 is debugged via the debugger switching debugger 15 14 is notified.
- the debugger may operate in the protection mode instead of the normal mode. In this case, the debug function 7 and the debugger 14 communicate directly without going through the debugger switching debugger 15.
- the force that the program is always stopped at the start of execution of the protection program 8 or the like by enabling the stop flag in the preprocessing is not limited to this.
- the debugger 14 can be directly attached to the protection program 8 and set a breakpoint as in the modified example (7), or when it is desired to debug only the normal program 12, the protection program 8 is started. It is always inconvenient to stop the program. Therefore, it may be possible to decide whether to enable or not by the user's selection rather than always enabling the stop flag during preprocessing! / ⁇ .
- the method of generating the debugger ID is not particularly mentioned, but the following can be considered.
- the debugger ID management server 81 may generate a random number and assign it to the debugger as a debugger ID.
- a hash value of a part or the whole of the protection program 8 may be used as a debugger ID.
- the debugger ID determination unit 22 holds the debugger ID of the debugger 14 in the comparison value holding unit 33.
- the debugger ID calculation unit 32 calculates the value of the protection program 8 that is the target of the debugging request, and the calculation result and the comparison value holding unit 33 hold it. Judgment is made by the debugger ID comparison unit 31 comparing the current value.
- the protection program development device 82 transmits the protection program 8 to the debugger ID management server 81 when the portion of the protection program 8 where the hash value is taken is completed. .
- the debugger ID management server 81 calculates a hash value of the protection program 8, and returns the hash value as a debugger ID to the protection program development device 82.
- the returned debugger ID is information that only the developer of the protection program 8 can know. Therefore, in order to create a debugger that supports debugging of the protection program 8, the debugger author is notified by the developer of the protection program 8 of a powerful debugger ID, and the debugger ID obtained by the notification is sent to the debugger. Must be assigned to 14.
- the debugger author can create a debugger without receiving notification of the debugger ID. This is because the author of the debugger can know the debugger ID from the debugger ID management server 81 owned by the debugger.
- the debugger ID of a debugger capable of debugging processing for the protection program 8 is calculated by calculating the hash value. Information 52 needs to be included.
- the debugger ID includes a value for each program developer and a value for each program. It is also good to do. In this case, check whether the program is permitted by checking the value for each program developer, and check the value for each program developer only when the permission is given for debugging by the program developer. Therefore, finer debugging control can be realized by checking the permission of debugging for each program.
- a debug exception for the protection program 8a is detected by detecting a debug exception due to a breakpoint during the execution of the protection program 8a.
- the debugger 14 may perform debugging processing by detecting the interrupt. Common error interrupts include, for example, when division by zero occurs during execution of protection program 8, or when an overflow occurs.
- the protection OS6 performs processing such as notifying the switching debugger 13 of the occurrence of a debug exception (S402, etc.), and the debugger 14 performs debugging processing for the protection program 8. be able to.
- the ability to control whether or not the debugging process can be executed for the protection program 8 is not limited to this. It is also possible to control whether or not debug processing can be executed for the normal program 12.
- a part or all of the above-described components may be realized as an integrated circuit such as an LSI.
- the integrated circuit in this case may be the same integrated circuit as LSI 2 or a different integrated circuit.
- LSI is sometimes referred to as IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
- system LSI 2 is implemented with the above-described degree of integration. Needless to say, it is included. It is also possible to use a field programmable gate array (FPGA) that can be programmed after LSI manufacturing, or a reconfigurable processor that can reconfigure the connection and settings of circuit cells inside the LSI.
- FPGA field programmable gate array
- the present invention may be the method described above.
- the program may be a program that realizes these methods as CPU processing, or may be a digital signal that also has the computer program power.
- the present invention provides a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM MO DVD DVD-ROM DVD-RAM BD (Blu-ray Disc), It may be recorded in a semiconductor memory or the like. Also, it may be the digital signal recorded on these recording media.
- a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM MO DVD DVD-ROM DVD-RAM BD (Blu-ray Disc), It may be recorded in a semiconductor memory or the like. Also, it may be the digital signal recorded on these recording media.
- the data processing apparatus can protect a program by controlling whether or not to execute a debugging process, and is particularly useful as an apparatus for supporting development while protecting the program.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2007800147358A CN101427222B (zh) | 2006-04-24 | 2007-04-24 | 数据处理装置、方法、程序生成装置、方法 |
| EP07742273.1A EP2023248B1 (en) | 2006-04-24 | 2007-04-24 | Data processing device, method, program, integrated circuit, and program generating device |
| JP2008513216A JP4814319B2 (ja) | 2006-04-24 | 2007-04-24 | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 |
| US12/298,198 US20090307783A1 (en) | 2006-04-24 | 2007-04-24 | Data processing device, method, program, integrated circuit, and program generating device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006-118881 | 2006-04-24 | ||
| JP2006118881 | 2006-04-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2007125911A1 true WO2007125911A1 (ja) | 2007-11-08 |
Family
ID=38655437
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2007/058838 Ceased WO2007125911A1 (ja) | 2006-04-24 | 2007-04-24 | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20090307783A1 (ja) |
| EP (1) | EP2023248B1 (ja) |
| JP (1) | JP4814319B2 (ja) |
| CN (1) | CN101427222B (ja) |
| WO (1) | WO2007125911A1 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010116742A1 (ja) * | 2009-04-10 | 2010-10-14 | パナソニック株式会社 | 情報処理装置及び集積回路 |
| JP2014191509A (ja) * | 2013-03-26 | 2014-10-06 | Toshiba Corp | 情報処理装置、情報処理プログラム |
| WO2022259311A1 (ja) * | 2021-06-07 | 2022-12-15 | 日本電信電話株式会社 | デバッグ装置、デバッグ方法、及びプログラム |
| JP2023515293A (ja) * | 2020-01-07 | 2023-04-13 | スーパーセル オーワイ | 外部デバッガアプリケーションがソフトウェアプログラムのコードを解析することを阻止するための方法 |
Families Citing this family (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8429613B2 (en) * | 2006-10-31 | 2013-04-23 | Microsoft Corporation | Stepping and application state viewing between points |
| WO2008088073A1 (en) * | 2007-01-18 | 2008-07-24 | Panasonic Corporation | Obfuscation assisting apparatus |
| JP2010117813A (ja) * | 2008-11-12 | 2010-05-27 | Nec Electronics Corp | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム |
| US9053295B1 (en) * | 2009-02-04 | 2015-06-09 | Sprint Communications Company L.P. | Facilitating application development using protected components |
| CN101794252B (zh) * | 2009-12-23 | 2013-03-13 | 张曙光 | 一种在源程序层次实现运算符单步调试的方法 |
| US8874526B2 (en) | 2010-03-31 | 2014-10-28 | Cloudera, Inc. | Dynamically processing an event using an extensible data model |
| US9081888B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating log data with fault tolerance |
| US9082127B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating datasets for analysis |
| US9317572B2 (en) | 2010-03-31 | 2016-04-19 | Cloudera, Inc. | Configuring a system to collect and aggregate datasets |
| US8904356B2 (en) | 2010-10-20 | 2014-12-02 | International Business Machines Corporation | Collaborative software debugging in a distributed system with multi-member variable expansion |
| US8972945B2 (en) | 2010-10-21 | 2015-03-03 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific access control |
| US9009673B2 (en) | 2010-10-21 | 2015-04-14 | International Business Machines Corporation | Collaborative software debugging in a distributed system with collaborative step over operation |
| US8671393B2 (en) | 2010-10-21 | 2014-03-11 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific dynamic breakpoints |
| US9411709B2 (en) | 2010-11-10 | 2016-08-09 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific event alerts |
| US8850397B2 (en) | 2010-11-10 | 2014-09-30 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific display of local variables |
| US8990775B2 (en) | 2010-11-10 | 2015-03-24 | International Business Machines Corporation | Collaborative software debugging in a distributed system with dynamically displayed chat sessions |
| US8667267B1 (en) * | 2011-01-31 | 2014-03-04 | Gazzang, Inc. | System and method for communicating with a key management system |
| KR101250661B1 (ko) * | 2011-02-08 | 2013-04-03 | 주식회사 팬택 | 모바일 플랫폼 보안 장치 및 방법 |
| US8880592B2 (en) | 2011-03-31 | 2014-11-04 | Cloudera, Inc. | User interface implementation for partial display update |
| US8656360B2 (en) | 2011-04-20 | 2014-02-18 | International Business Machines Corporation | Collaborative software debugging in a distributed system with execution resumption on consensus |
| US8806438B2 (en) * | 2011-04-20 | 2014-08-12 | International Business Machines Corporation | Collaborative software debugging in a distributed system with variable-specific messages |
| US8739127B2 (en) | 2011-04-20 | 2014-05-27 | International Business Machines Corporation | Collaborative software debugging in a distributed system with symbol locking |
| DE102011018431A1 (de) * | 2011-04-21 | 2012-10-25 | Giesecke & Devrient Gmbh | Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts |
| US8756577B2 (en) | 2011-06-28 | 2014-06-17 | International Business Machines Corporation | Collaborative software debugging in a distributed system with private debug sessions |
| US9053233B2 (en) * | 2011-08-15 | 2015-06-09 | Freescale Semiconductor, Inc. | Method and device for controlling debug event resources |
| DE102011115135A1 (de) | 2011-10-07 | 2013-04-11 | Giesecke & Devrient Gmbh | Mikroprozessorsystem mit gesicherter Laufzeitumgebung |
| US9128949B2 (en) | 2012-01-18 | 2015-09-08 | Cloudera, Inc. | Memory allocation buffer for reduction of heap fragmentation |
| US9172608B2 (en) | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
| US9405692B2 (en) | 2012-03-21 | 2016-08-02 | Cloudera, Inc. | Data processing performance enhancement in a distributed file system |
| US9338008B1 (en) | 2012-04-02 | 2016-05-10 | Cloudera, Inc. | System and method for secure release of secret information over a network |
| US9842126B2 (en) | 2012-04-20 | 2017-12-12 | Cloudera, Inc. | Automatic repair of corrupt HBases |
| US9753954B2 (en) | 2012-09-14 | 2017-09-05 | Cloudera, Inc. | Data node fencing in a distributed file system |
| CN103684899B (zh) * | 2012-09-17 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 远程调试方法和装置 |
| WO2014049984A1 (ja) * | 2012-09-28 | 2014-04-03 | パナソニック株式会社 | 生体情報取得端末、情報管理方法及び情報表示方法 |
| JP6098110B2 (ja) * | 2012-10-24 | 2017-03-22 | 富士通株式会社 | 情報処理装置、データ保護方法、およびプログラム |
| KR101954733B1 (ko) * | 2012-10-26 | 2019-03-06 | 삼성전자주식회사 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
| US20140173759A1 (en) * | 2012-12-17 | 2014-06-19 | Microsoft Corporation | Rights-managed code |
| US9342557B2 (en) | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
| TWI498737B (zh) * | 2013-03-29 | 2015-09-01 | Mstar Semiconductor Inc | 用於主機板控制模組之除錯權限判斷方法及相關主機板控制模組 |
| US9749304B1 (en) | 2013-07-30 | 2017-08-29 | Google Inc. | System and methods for accessing multiple resources via one identifier |
| US20150052616A1 (en) * | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
| US9552279B2 (en) * | 2013-08-16 | 2017-01-24 | Nxp Usa, Inc. | Data bus network interface module and method therefor |
| US9477731B2 (en) | 2013-10-01 | 2016-10-25 | Cloudera, Inc. | Background format optimization for enhanced SQL-like queries in Hadoop |
| US9934382B2 (en) | 2013-10-28 | 2018-04-03 | Cloudera, Inc. | Virtual machine image encryption |
| US9690671B2 (en) | 2013-11-01 | 2017-06-27 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
| US10171635B2 (en) | 2013-12-04 | 2019-01-01 | Cloudera, Inc. | Ensuring properly ordered events in a distributed computing environment |
| US9251368B2 (en) | 2014-01-08 | 2016-02-02 | International Business Machines Corporation | Provisioning transient-controlled secure environments for viewing sensitive data |
| CN104881611B (zh) * | 2014-02-28 | 2017-11-24 | 国际商业机器公司 | 保护软件产品中的敏感数据的方法和装置 |
| US9747333B2 (en) | 2014-10-08 | 2017-08-29 | Cloudera, Inc. | Querying operating system state on multiple machines declaratively |
| US10120904B2 (en) | 2014-12-31 | 2018-11-06 | Cloudera, Inc. | Resource management in a distributed computing environment |
| CN105653908B (zh) * | 2015-12-31 | 2018-12-25 | 西北大学 | 一种隐式反调试保护方法 |
| CN105930721B (zh) * | 2016-04-28 | 2018-11-23 | 北京小米移动软件有限公司 | 一种管理应用程序的方法和装置 |
| JP6961553B2 (ja) * | 2018-08-30 | 2021-11-05 | 株式会社東芝 | 情報処理装置、システム及び方法 |
| DE102018127330A1 (de) * | 2018-11-01 | 2020-05-07 | Infineon Technologies Ag | System-on-Chip und Verfahren zum Betreiben eines System-on-Chip |
| CN110046514B (zh) * | 2019-04-12 | 2023-05-26 | 深圳Tcl新技术有限公司 | 调试数据保护方法、装置、服务器及存储介质 |
| CN110362501B (zh) * | 2019-07-05 | 2021-09-24 | 北京大学 | 一种执行饱和寻址加载和存储操作的设备和方法 |
| EP3961436A1 (en) * | 2020-08-28 | 2022-03-02 | Siemens Aktiengesellschaft | Methods and systems for controlling access to at least one computer program |
| JP7404205B2 (ja) | 2020-09-18 | 2023-12-25 | 株式会社東芝 | 半導体装置及びそれを含むシステム |
| TWI818221B (zh) * | 2020-12-31 | 2023-10-11 | 新唐科技股份有限公司 | 可認證晶片外部除錯功能韌體程式與除錯使用者的晶片與方法 |
| CN112947861A (zh) * | 2021-03-09 | 2021-06-11 | 成都盛芯微科技有限公司 | 存储设备的数据读取方法及电子设备系统 |
| TWI856881B (zh) * | 2023-11-20 | 2024-09-21 | 威聯通科技股份有限公司 | 可執行檔與共享庫之保護方法及保護系統 |
| CN117648258A (zh) * | 2023-12-11 | 2024-03-05 | 紫光同芯微电子有限公司 | 用于调试应用程序的方法、装置、电子设备及计算机可读存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4937864A (en) | 1989-04-27 | 1990-06-26 | Xerox Corporation | Debug routine accessing system |
| US20030014643A1 (en) | 2001-07-12 | 2003-01-16 | Fujitsu Limited | Electronic apparatus and debug authorization method |
| JP2004509392A (ja) * | 2000-09-08 | 2004-03-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ソフトウェアのセキュア認証済チャネル |
| JP2004171565A (ja) | 2002-11-18 | 2004-06-17 | Arm Ltd | マルチドメインプロセッサのための診断データ捕捉制御 |
| WO2005091143A1 (ja) * | 2004-03-24 | 2005-09-29 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置及びプログラムファイル生成装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
| US5075845A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Type management and control in an object oriented memory protection mechanism |
| US6345383B1 (en) * | 1994-09-14 | 2002-02-05 | Kabushiki Kaisha Toshiba | Debugging support device and debugging support method |
| US6014666A (en) * | 1997-10-28 | 2000-01-11 | Microsoft Corporation | Declarative and programmatic access control of component-based server applications using roles |
| WO2004046925A1 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Security mode switching via an exception vector |
| GB0226905D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Exception tyres within a secure processing system |
| JP2006065555A (ja) * | 2004-08-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | プログラム開発装置およびプログラム開発方法 |
-
2007
- 2007-04-24 WO PCT/JP2007/058838 patent/WO2007125911A1/ja not_active Ceased
- 2007-04-24 JP JP2008513216A patent/JP4814319B2/ja not_active Expired - Fee Related
- 2007-04-24 US US12/298,198 patent/US20090307783A1/en not_active Abandoned
- 2007-04-24 EP EP07742273.1A patent/EP2023248B1/en not_active Ceased
- 2007-04-24 CN CN2007800147358A patent/CN101427222B/zh not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4937864A (en) | 1989-04-27 | 1990-06-26 | Xerox Corporation | Debug routine accessing system |
| JP2004509392A (ja) * | 2000-09-08 | 2004-03-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ソフトウェアのセキュア認証済チャネル |
| US20030014643A1 (en) | 2001-07-12 | 2003-01-16 | Fujitsu Limited | Electronic apparatus and debug authorization method |
| JP2004171565A (ja) | 2002-11-18 | 2004-06-17 | Arm Ltd | マルチドメインプロセッサのための診断データ捕捉制御 |
| WO2005091143A1 (ja) * | 2004-03-24 | 2005-09-29 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置及びプログラムファイル生成装置 |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010116742A1 (ja) * | 2009-04-10 | 2010-10-14 | パナソニック株式会社 | 情報処理装置及び集積回路 |
| JP2014191509A (ja) * | 2013-03-26 | 2014-10-06 | Toshiba Corp | 情報処理装置、情報処理プログラム |
| JP2023515293A (ja) * | 2020-01-07 | 2023-04-13 | スーパーセル オーワイ | 外部デバッガアプリケーションがソフトウェアプログラムのコードを解析することを阻止するための方法 |
| JP7642639B2 (ja) | 2020-01-07 | 2025-03-10 | スーパーセル オーワイ | 外部デバッガアプリケーションがソフトウェアプログラムのコードを解析することを阻止するための方法 |
| US12399801B2 (en) | 2020-01-07 | 2025-08-26 | Supercell Oy | Method for blocking external debugger application from analysing code of software program |
| WO2022259311A1 (ja) * | 2021-06-07 | 2022-12-15 | 日本電信電話株式会社 | デバッグ装置、デバッグ方法、及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2023248A4 (en) | 2013-01-16 |
| JPWO2007125911A1 (ja) | 2009-09-10 |
| CN101427222A (zh) | 2009-05-06 |
| JP4814319B2 (ja) | 2011-11-16 |
| CN101427222B (zh) | 2012-11-21 |
| EP2023248B1 (en) | 2018-10-24 |
| US20090307783A1 (en) | 2009-12-10 |
| EP2023248A1 (en) | 2009-02-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4814319B2 (ja) | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 | |
| EP0768601B1 (en) | Device for executing enciphered program | |
| US7874009B2 (en) | Data processing device | |
| US7698664B2 (en) | Secure exchange of information in electronic design automation | |
| CA2333613C (en) | Method of controlling usage of software components | |
| JP4451884B2 (ja) | コンピュータ保安装置、コンピュータ保安方法、及び記録媒体 | |
| US20110271350A1 (en) | method for protecting software | |
| JP4048382B1 (ja) | 情報処理システムおよびプログラム | |
| JP2005135265A (ja) | 情報処理装置 | |
| JP4568489B2 (ja) | プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置 | |
| US20060080537A1 (en) | Illegal analysis / falsification preventing system | |
| CN107832589A (zh) | 软件版权保护方法及其系统 | |
| JP2014235326A (ja) | システム、情報処理装置、セキュアモジュール、および検証方法 | |
| JP4844102B2 (ja) | サブプログラム及びそのサブプログラムを実行する情報処理装置 | |
| JP2010039891A (ja) | 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム | |
| CN101189586A (zh) | 计算机系统及程序生成装置 | |
| JP2009025907A (ja) | 半導体集積回路装置及びその信号処理方法 | |
| JP2006146358A (ja) | Usb周辺機器制御システム、及びusb周辺機器制御方法 | |
| JP4591163B2 (ja) | バスアクセス制御装置 | |
| JP2010231623A (ja) | キャッシュメモリ制御装置及び方法 | |
| JP2008299930A (ja) | 半導体記憶装置 | |
| CN119862551B (zh) | 一种防破解方法、电子设备、存储介质和程序产品 | |
| JP4847827B2 (ja) | アクセス制御装置 | |
| JP2004362077A (ja) | データ変換システム | |
| JP2005346150A (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07742273 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2008513216 Country of ref document: JP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 12298198 Country of ref document: US |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 200780014735.8 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2007742273 Country of ref document: EP |