WO2006090800A1 - セキュア処理装置、及びセキュア処理システム - Google Patents
セキュア処理装置、及びセキュア処理システム Download PDFInfo
- Publication number
- WO2006090800A1 WO2006090800A1 PCT/JP2006/303320 JP2006303320W WO2006090800A1 WO 2006090800 A1 WO2006090800 A1 WO 2006090800A1 JP 2006303320 W JP2006303320 W JP 2006303320W WO 2006090800 A1 WO2006090800 A1 WO 2006090800A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- protected
- unit
- secure processing
- execution
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 100
- 238000004458 analytical method Methods 0.000 claims abstract description 155
- 238000001514 detection method Methods 0.000 claims abstract description 142
- 238000003860 storage Methods 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims description 45
- 230000005540 biological transmission Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims 3
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000004075 alteration Effects 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Definitions
- the present invention relates to a technique for preventing unauthorized tampering and analysis of a program.
- Paid digital content for viewing using a PC or a mobile phone is distributed, but in order to prevent unauthorized copying, the digital content is encrypted and distributed. Therefore, the program for playing back digital content includes an encryption key for decrypting the encryption key. Therefore, if a malicious user for the purpose of fraud analysis can analyze the reproduction program and specify the encryption key, the digital content is illegally copied.
- the present invention has been made in view of the above problems, and an object of the present invention is to provide a secure processing system capable of satisfying both prevention of illegal analysis of a program and convenience for a bona fide user. To do.
- the present invention provides a secure processing device, In order to obtain the same result as the program, a plurality of protected programs generated based on the original program are stored, and the program storage means and the protected program to be analyzed are invalidated. It comprises: invalidation means; selection means for selecting one protected program that has not been invalidated from the plurality of protected programs; and execution means for executing the selected one protected program. And
- the secure processing device includes analysis detection means for determining whether or not the protected program is an analysis target when the execution means executes one protected program.
- the invalidation means includes an invalidation list storage unit that stores an invalid key list indicating a protected program that has been invalidated, and the analysis detection means causes the protected program to be analyzed. If it is determined that the protected program is invalidated, the invalidation list may include an invalidation registration unit that registers that the protected program is invalidated.
- the selection unit can identify the invalidated protected program, and the protected program to be executed.
- the protected program that has not been invalidated can be selected.
- the analysis detection unit detects the protected program to be analyzed
- the invalidation registration unit updates the invalidation list. Therefore, the selection unit always refers to the new invalidation list, Once disabled, the protected program can be selected.
- the invalidation list is added with signature data for proving the validity of the invalidation list
- the selecting means is the signature data added to the invalidation list.
- the invalidation list is detected as a result of the verification of the signature data. In such a case, it may be configured to cancel the protected program selection process.
- the plurality of protected programs are obfuscated programs obtained by obfuscating the original program, and each protected program differs in obfuscation method and Z or degree of obfuscation. Therefore, configure the program to have different code.
- any one or more protected programs among the plurality of protected programs are different partial programs among the plurality of partial programs included in the original program as the obfuscation method. It may be configured to be a generated program by using a method for encrypting.
- the one or more protected programs are encrypted partial programs, that is, the encrypted positions are different, a malicious user tries to analyze a plurality of times. However, analysis becomes difficult.
- the one or more protected programs generated by encrypting the partial program are different encryption key algorithms and different partial program powers to be encrypted.
- It may be configured to be a program encrypted using Z or a different encryption key. According to this configuration, since the one or more protected programs differ not only in the encrypted location but also in the encryption algorithm and encryption key, the analysis can be made more difficult.
- any one or more of the protected programs among the plurality of protected programs may be dependent on each other among the plurality of instructions included in the original program as the obfuscation method.
- the one or more protected programs are generated based on the parallelism of the original program, and it is possible to make analysis by a malicious user difficult while ensuring the same output result as the original program. .
- any one or more of the protected programs among the plurality of protected programs may use an instruction included in the original program as a method of the obfuscation error processing different from the instruction. It may be configured to be a generated program by using a method of replacing with an identical instruction having one or more instruction powers that performs and outputs the same result as the instruction. According to this configuration, the one or more protected programs are generated using the identity instruction of the original program, while ensuring the same output result as the original program.
- any one or more of the protected programs among the plurality of protected programs is a dummy instruction that is an instruction that does not affect the result of the original program as the obfuscation method. May be configured to be a generated program using the method of inserting into the original program! /.
- the one or more protected programs are generated redundantly using dummy code, ensuring the same output result as the original program and making analysis by a malicious user difficult. Can do.
- the secure processing device includes analysis detection means for determining whether or not the protected program is an analysis target when the execution means executes one protected program. It may be configured to provide.
- the invalidation means invalidates the protected program at risk of exposing confidential information. be able to.
- the debugger detection unit invalidates the detected debugger, and the debugger detection unit detects the debugger.
- An instruction unit that instructs the execution unit to stop execution, and the execution unit receives an instruction to stop execution from the instruction unit. The execution of the protected program being executed may be immediately stopped.
- the secure processing apparatus has a function of detecting a debugger. Further, by disabling the detected debugger, the protected program being executed is analyzed and kept secret. It can prevent the information that should be exposed.
- the analysis detection unit includes a tampering detection unit that detects tampering of the protected program, and an instruction unit that instructs the execution unit to stop execution when tampering is detected by the tampering detection unit.
- the execution means may be configured to stop the execution of the protected program upon receiving an execution stop instruction from the instruction unit.
- the secure processing apparatus can execute a protected program other than the protected program for which tampering has been detected, and therefore, an unauthorized program without harming the interests of a bona fide user. Can be prevented.
- the analysis detection unit may be configured to include a log information generation unit that generates analysis log information related to the analysis when it is determined that the protected program is an analysis target.
- the secure processing device may be connected to an external server via a network
- the log information generation unit may be configured to transmit the generated analysis log information to the external server.
- the external server can analyze what analysis action has been performed.
- a protected program that is more difficult to analyze can be generated.
- the analysis detection means further holds a threshold value storage unit that stores a threshold value set to a predetermined numerical value, and the number of times that the protected program is determined to be analyzed, An analysis number counting unit that updates the number of times held for each determination.
- the validation registration unit may be configured to register that the protected program is invalidated in the invalidation list when the number of times held by the analysis number counting unit exceeds the threshold. .
- the protected program is invalidated only when the number of times of analysis exceeds a preset threshold value. Therefore, it is possible to prevent the protected program being executed immediately from being invalidated due to an accidental operation by a good-willed user. In addition, if the malicious user repeats the analysis, the number of analyzes exceeds the preset threshold and the protected program is invalidated, revealing information that should be kept confidential in the protected program. Can be prevented.
- the selection means may be configured to refer to the invalidation list and randomly select one protected program that has not been invalidated.
- the protected program to be selected that is, the protected program to be executed, is randomly determined each time, so that unauthorized analysis by a malicious user can be made difficult.
- the selection means stores information for identifying the selected protected program, refers to the information and the invalidation list, is not selected, is invalidated, and there is no V. It may be configured to randomly select one protected program! /.
- the protected program to be selected that is, the protected program to be executed is randomly determined each time and the protected program that has been executed once is not selected from the next time, a malicious user is selected. It is possible to make fraud analysis by using more difficult.
- the selection means stores a predetermined selection order in advance, refers to the invalidation list, and selects one protected program that has not been invalidated according to the selection order. Do it.
- the selection means stores obfuscation degree information indicating the degree of obfuscation of each protected program for the plurality of protected programs, and the obfuscation degree information and the obfuscation degree information It may be configured to refer to the invalidation list and select one protected program that has been invalidated so that it is executed in order of the degree of obfuscation and the protected program. ,.
- the selection means stores obfuscation degree information indicating the degree of obfuscation of each protected program for the plurality of protected programs,
- the obfuscation degree information may be configured to select one protected program that is invalidated so that the obfuscated program is executed in order from the low-protected program.
- a protected program with a higher degree of obfuscation has a slower program execution speed, and a protected program with a higher degree of obfuscation has a higher program execution speed. Therefore, according to this configuration, it is possible to provide a secure processing device that is highly convenient for a bona fide user who does not intend to perform fraud analysis because the protected program power having a high execution speed is also executed.
- the selection means may be configured to select one protected program that can be invalidated so that the protected program is executed in order of fast execution speed.
- the secure processing device is connected via a network to a program update server that holds a protected program, and the selection means determines that the remaining number of protected programs that are not invalidated is
- a determination unit that determines whether or not the threshold is equal to or less than a predetermined threshold; and when the determination unit determines that the threshold is equal to or less than the predetermined threshold, a new protected program is transmitted to the program update server. It may be configured to include: a requesting program requesting unit; and a program receiving unit that receives a new protected program from the program update server.
- the secure processing device can acquire a new protected program from the program update server and secure the right to use the program of a bona fide user. it can.
- the present invention is a secure processing system that is connected via a network and includes a secure processing device and a program update server, and the secure processing device obtains the same result as the original program.
- the first storage means for storing a plurality of protected programs generated based on the original program, the invalidating means for invalidating the protected programs to be analyzed, and the plurality of the protected programs.
- the program update server includes a second storage unit storing a plurality of protected programs, and a secure processing device for receiving a protected program.
- Request receiving means for receiving a transmission request; and transmission means for reading one or more protected programs from the second storage means and transmitting them to the secure processing device when the request receiving means accepts the transmission request. It is characterized by providing.
- the secure processing device receives a new protected program from the program update server. Gram can be obtained and the right to use the program of a bona fide user can be held.
- FIG. 1 is a system configuration diagram showing a configuration of a secure processing system 1.
- FIG. 2 is a functional block diagram functionally showing the configuration of the mobile phone 10.
- FIG. 3 is a diagram showing protected programs stored in a program storage unit 111.
- FIG. 4 is a diagram for explaining the features of a secure program.
- FIG. 5 is a diagram for explaining the function of fraud analysis detecting section 116.
- FIG. 6 is a diagram showing a data configuration of a falsification detection value table 410 held by a falsification detection unit 402.
- FIG. 7 is a diagram showing a data configuration of fraud analysis log information 420.
- FIG. 8 is a diagram showing a data structure of an invalidation list 500.
- FIG. 9 is a functional block diagram functionally showing the configuration of the program update server 20.
- FIG. 10 is a diagram showing protected programs stored in an update program storage unit 604.
- FIG. 11 is a flowchart showing the overall operation of the secure processing system 1.
- FIG. 12 is a flowchart showing protected program update processing in the secure processing system 1.
- FIG. 13 is a flowchart showing the operation of program selection processing 1 in the secure processing system 1.
- FIG. 14 is a flowchart showing the operation of program selection process 2 in secure processing system 1.
- FIG. 15 is a flowchart showing processing at the time of fraud detection in the secure processing system 1.
- FIG. 1 is a system configuration diagram showing the configuration of the secure processing system 1.
- the secure processing system 1 includes a mobile phone 10, a program update server 20, and a network 30.
- the mobile phone 10 is a portable phone that performs communication using radio waves.
- the mobile phone 10 downloads the encrypted content and holds the downloaded encrypted content.
- the mobile phone 10 holds an encrypted content decryption program for decrypting and reproducing the B-encoded content.
- the encrypted content held by the mobile phone 10 is data generated by applying the encryption algorithm E to the music content.
- the program update server 20 is connected to the mobile phone 10 via the network 30 and updates the encrypted content decryption program used for decrypting the encrypted content by the mobile phone 10.
- a specific example of the network 30 is the Internet.
- the cellular phone network and wireless base stations are omitted!
- FIG. 2 is a functional block diagram functionally showing the configuration of the mobile phone 10.
- the mobile phone 10 also includes an antenna 101, a transmission / reception unit 102, a communication control unit 103, a storage unit 104, a display unit 105, an operation unit 106, a speaker 107, a microphone 108, and a secure processing unit 109.
- the antenna 101, the transmission / reception unit 102, the communication control unit 103, the storage unit 104, the display unit 105, the operation unit 106, the speaker 107, and the microphone 108 are functional blocks for achieving a function as a normal mobile phone.
- the secure processing unit 109 is a characteristic functional block of the present invention.
- the mobile phone 10 is specifically a computer system including a microprocessor, ROM, RAM, and the like.
- the transmission / reception unit 102 performs a call, email transmission / reception, communication with the program update server 20 via the network 30, etc. via the antenna 101.
- the communication control unit 103 stores a computer program for communication control. By executing the communication control computer program, the mouth setter controls communication functions such as a telephone call, mail transmission / reception, network connection, etc. of the mobile phone 10.
- the storage unit 104 stores a telephone directory, a schedule book, transmitted / received e-mail data, downloaded encrypted content, and the like.
- the display unit 105 includes a liquid crystal display, and displays various screens on the liquid crystal display.
- the operation unit 106 includes a plurality of buttons and the like provided on the operation surface of the mobile phone 10, and receives input from the user by pressing the button.
- the speaker 107 outputs sound, and the microphone 108 receives sound input.
- the secure processing unit 109 includes a program storage unit 111, an execution program selection unit 112, a program load unit 113, a program load region 114, a program execution unit 115, a fraud analysis detection unit 116, an invalidation list storage unit 117, and an invalidation list update. Part 118.
- the program storage unit 111 is configured by a Flash ROM, an EEPROM, or an HDD.
- FIG. 3 is a diagram showing the inside of the program storage unit 111.
- the program storage unit 111 includes a plurality of protected programs including a protected program A (201), a protected program B (202), ..., and a protected program C (203).
- a protected program A 201
- a protected program B 202
- a protected program C 203.
- Each protected program is given a program identifier. Specifically, the protected program A (201) has program identifier A: 0001 (211), the protected program B (202) has program identifier B: 0002 (212), and the protected program C (203). Is assigned a program identifier C: 0003 (213).
- All protected programs stored in the program storage unit 111 are programs generated by obfuscating the original program 200, which is an encrypted content decryption program, and as shown in FIG.
- the original program 200 and each protected program output the decryption content 303 having the same output value when the encrypted content 301 and the decryption key 302 are input values. It is assumed that the protected program in this embodiment includes a decryption key 3002.
- obfuscation is the process of making a program complicated without changing its structural meaning. This is a technology aimed at making it difficult to analyze the program. Specifically, a part or all of the original program 200 is not encrypted or the execution of the original program 200 is not affected. Insert unnecessary dummy code, replace some code included in the original program 200 with equivalent code that is different from the part of the code but obtains the same result, or replace the original program It is realized by changing the order of codes that do not change even if the order is changed, dividing one module into multiple modules, and complicating the control structure. The
- Each protected program is obfuscated by different methods, obfuscated by using different methods in different combinations, encrypted using different encryption algorithms and encryption keys,
- Each program has a different binary code because different parts of the original program 200 are encrypted or obfuscated to different degrees.
- the degree of obfuscation can be changed by changing the additional code size of the dummy code, the complicated pattern of the control structure, the number of module divisions, the strength of the encryption algorithm, etc.
- the execution program selection unit 112 refers to the invalidation list 500 stored in the invalidation list storage unit 117 and selects one protected program that has not been invalidated.
- the execution program selection unit 112 reads the program start address and program size of the selected protected program from the invalidation list, and notifies the program load unit 113 of the read program start address and program size.
- the execution program selection unit 112 generates a random number using a random number generator, and selects a protected program to be executed based on the generated random number. Details of the protected program selection will be described later.
- the execution program selection unit 112 sends the invalidation list update unit 118 to the invalidation list update unit 118.
- the execution program selection unit 112 sends the invalidation list update unit 118 to the invalidation list update unit 118.
- it requests download of a new protected program.
- the program load unit 113 When the program load unit 113 receives the program start address and the program size from the execution program selection unit 112, the program load unit 113 loads the protected program into the program load area 114.
- the program load area 114 is a RAM as a specific example in this embodiment.
- the program execution unit 115 includes a microprocessor and executes the protected program loaded into the program load area 114.
- the program execution unit 115 reads and reads the encrypted content from the storage unit 104 by executing the protected program.
- the decrypted algorithm D is applied to the encrypted content using the content decryption key to decrypt the music content.
- the program execution unit 115 outputs the decrypted music content to the speaker 107 via the communication control unit 103.
- the decryption algorithm D is an algorithm for converting the ciphertext encrypted by applying the encryption algorithm E into plaintext.
- the fraud analysis detection unit 116 includes a debugger detection unit 401, a falsification detection unit 402, and a fraud analysis notification unit 403 as shown in FIG.
- the debugger detection unit 401 has a function of detecting an in-circuit emulator (registered trademark) and a software debugger during execution of the protected program by the program execution unit 115.
- the debugger detection unit 401 detects the debugger, it disables the debugger, for example, by disconnecting the debugger interface.
- the debugger detection unit 401 notifies the fraud analysis notifying unit 403 that fraud analysis has been detected.
- the falsification detection unit 402 stores in advance a falsification detection value table 410 shown in FIG.
- the falsification detection value table 410 includes falsification detection value information 411, 412,... 413, and each falsification detection value information includes a program identifier and a falsification detection value for determination.
- the program identifier is information for uniquely identifying the protected program.
- the determination falsification detection value is a value calculated in advance using a one-way function for the protected program identified by the associated program identifier, and is data used to determine whether or not falsification has occurred. .
- the falsification detection value table 410 is stored in the program storage unit 111 and includes falsification detection value information corresponding to each protected program on a one-to-one basis for all protected programs. It is out.
- the falsification detection value information 411 includes the program identifier “0001” and the falsification for determination. Includes detection value “detection value A”. Since the program identifier “0001” is a program identifier corresponding to the protected program A (201), the determination falsification detection value “detection value A” determines whether the protected program A (201) has been tampered with. This data is used for this purpose.
- the falsification detection value information 412 includes a program identifier “0002” and a falsification detection value for detection “detection value B”. Since the program identifier “0002” is a program identifier corresponding to the protected program B (202), the falsification detection value “detection value B” is used to determine whether the protected program B (202) has been falsified. Data used.
- the falsification detection value information 413 includes a program identifier “0003” and a falsification detection value for detection “detection value C”. Since the program identifier “0003” is a program identifier corresponding to the protected program C (203), the falsification detection value “detection value C” is used to determine whether the protected program C (203) has been falsified. Data used.
- the falsification detection unit 402 When the falsification detection unit 402 receives a determination falsification detection value and a program identifier from the invalidation list update unit 118 as a new protected program is downloaded, the falsification detection value table 410 Register with.
- the falsification detection unit 402 calculates a falsification detection value using a one-way function for the loaded protected program. The falsification detection unit 402 determines whether or not the calculated falsification detection value matches the falsification detection value for determination described in the falsification detection value table 410. If they match, it is determined that the protected program loaded into the program load area 114 has not been altered! / ⁇ , and if not, it is determined that the protected program has been tampered. When the falsification detection unit 402 detects falsification of the protected program, the falsification analysis notification unit 403 notifies the fraud analysis notification unit 403 that fraud analysis has been detected.
- the falsification detection value for determination and the falsification detection value shall be calculated using SHA (Secure Hash Algorithm)-1 as an example.
- the fraud analysis notification unit 403 Upon receiving notification that the fraud analysis has been detected from the debugger detection unit 401 and the falsification detection unit 402, the fraud analysis notification unit 403 instructs the program execution unit 115 to stop executing the program, and Generate fraud analysis log information.
- the fraud analysis notifying unit 403 transmits the generated fraud analysis log information to the communication control unit 103, the transmission / reception unit 102, the antenna 101, and the network. It is transmitted to the program update server 20 via the network 30.
- FIG. 7 is a diagram showing a data configuration of fraud analysis log information 420 generated by fraud analysis notifying unit 403.
- the fraud analysis log information 420 includes a program identifier field 421, a fraud analysis detection code field 422, a general-purpose register value field 423, a stack pointer field 424, a link register field 425, and a program counter field 426.
- a program identifier for identifying a protected program executed by the program execution unit 115 upon detection of fraud analysis is described.
- the fraud analysis detection code column 422 a fraud analysis detection code indicating which of the force debugger detection unit 401 and the falsification detection unit 402 detects the fraud analysis is described.
- the unauthorized analysis detection code is set to “1” when the debugger detection unit 401 detects a debugger, and is set to “2” when the tampering detection unit 402 detects tampering.
- the general-purpose register value column 423, stack pointer column 424, link register column 425, and program counter column 426 each value of the register file inside the microprocessor at the time of debugger detection is described.
- the fraud analysis notifying unit 403 uses the value indicating the status of the debug register, the address value set in the debug register, etc. as fraud analysis log information. May be described.
- the invalidation list storage unit 117 holds an invalidation list 500 shown in FIG.
- the invalidation list 500 includes a plurality of program invalidation information, and each program invalidation information includes a program identifier, a program start address, a program size, and invalidation flag power.
- the program identifier is information for uniquely identifying the protected program.
- the program start address indicates the recording start position of the corresponding protected program in the program storage unit 111
- the program size is information indicating the data size of the protected program.
- the invalidation flag is information indicating whether or not the corresponding protected program has been invalidated, and is set to either “0” or “1”. “0” indicates that the protected program has not been disabled, and “1” indicates that the protected program has been disabled.
- the invalidation list 500 is stored in the program storage unit 111.
- it contains program invalidation information corresponding to each protected program.
- the program invalidation information 501 corresponds to the protected program A (201)
- the program invalidation information 502 corresponds to the protected program B (202)
- the program invalidation information 503 is This corresponds to protected program C (203).
- the invalidation list update unit 118 When the invalidation list update unit 118 receives a download request for the protected program from the execution program selection unit 112, the invalidation list update unit 118 sends the received download request to the communication control unit 103, the transmission / reception unit 102, the antenna 101, and the network 30. To the program update server 20. The invalidation list update unit 118 sends the protected program and the determination falsification detection value transmitted from the program update server 20 in response to the download request to the network 30, the antenna 101, the transmission / reception unit 102, and the communication control unit. Receive via 103. The invalidation list updating unit 118 writes the received protected program to the program storage unit 111, and the received alteration detection value for determination and the program identifier for identifying the protected program are modified by the fraud analysis detecting unit 116. Output to the detection unit 402.
- the invalidation list updating unit 118 updates the invalidation list 500 stored in the invalidation list storage unit 117 in the following cases.
- FIG. 9 is a functional block diagram functionally showing the configuration of the program update server 20.
- the program update server 20 includes a transmission / reception unit 601, a control unit 602, an unauthorized analysis log information storage unit 603, and an update program storage unit 604.
- the program update server 20 includes a microprocessor, ROM, RAM, and hard disk. A computer system in which unit isotropic forces are also configured.
- the transmission / reception unit 601 is a network connection unit, receives information transmitted from the mobile phone 10 via the network 30, and outputs the received information to the control unit 602. In addition, the transmission / reception unit 601 receives the information output from the control unit 602 and transmits the received information to the mobile phone 10 via the network 30.
- the control unit 602 controls the entire program update server 20. Specifically, when receiving a download request for a protected program from the mobile phone 10 via the transmission / reception unit 601 and the network 30, the control unit 602 determines that the program is a protected program from the update program storage unit 604. The tampering detection value is read, and the read protected program and the judgment tampering detection value are output to the transmission / reception unit 601. Further, when receiving the fraud analysis log information from the mobile phone 10 via the transmission / reception unit 601 and the network 30, the control unit 602 writes the received fraud analysis log information in the fraud analysis log information storage unit 603.
- the fraud analysis log information storage unit 603 stores the fraud analysis log information transmitted from the mobile phone 10.
- FIG. 10 is a diagram showing the inside of the update program storage unit 604.
- the update program storage unit 604 includes a plurality of protected programs including a protected program X (611), a protected program Y (612), ..., a protected program Z (613). I remember the protection program.
- a program identifier is assigned to each protected program. Specifically, the protected program ⁇ (611) has a program identifier X: 1001 (621), the protected program ⁇ (61 2) has a program identifier ⁇ : 1002 (622), and the protected program ⁇ (613) Is given the product identifier ⁇ : 1003 (623)!
- each protected program stored in the update program storage unit 604 is stored in the program storage unit 111 of the mobile phone 10 and obfuscates the original program 200 in the same manner as the protected program.
- Each of the generated programs has different nounary codes and has the properties shown in FIG.
- the protected program ⁇ (61 1), the protected program ⁇ (612), ..., the protected program ⁇ ⁇ ⁇ (613) takes the encrypted content 301 and the content decryption key 302 as input values.
- Decrypted content 303 Is output.
- the update program storage unit 604 stores the determination falsification detection value in association with each protected program.
- protected program X corresponds to judgment falsification detection value X (631)
- protected program Y corresponds to judgment falsification detection value Y (632 )
- protected program ⁇ corresponds to judgment falsification detection value ⁇ (633).
- Each determination falsification detection value is a value calculated in advance using a one-way function in the corresponding protected program, and is data used to determine whether the corresponding protected program has been tampered with. .
- FIG. 11 is a flowchart showing the overall operation of the secure processing system 1. The operation shown here is started when a request for decryption of the encrypted content is generated in the mobile phone 10.
- the execution program selection unit 112 of the mobile phone 10 reads the invalidation list 500 stored in the invalidation list storage unit 117 (step S101).
- the execution program selection unit 112 reads the invalidation flag in the invalidation list 500 and determines whether or not all protected programs stored in the program storage unit 111 are invalidated (step S 102). ).
- step S102 If all protected programs are disabled (YES in step S102), that is, if all the invalidation flags in the invalidation list 500 are set to "1", the mobile phone 10 The protected program is updated (step S103). If there is a protected program that has not been invalidated, that is, if there is an invalidation flag set to “0” in the invalidation list 500 (NO in step S102), the execution program selection unit 112 Then, the protected program selection process is performed, and one protected program is selected (step S104).
- the program load unit 113 loads the one protected program selected in step S104 from the program storage unit 111 to the program load area 114 (step S105).
- the falsification detection unit 402 of the fraud analysis detection unit 116 calculates a falsification detection value of the protected program imported to the program load area 114 (step S106). If tampering of the protected program is detected (YES in step S107), that is, if the tampering detection value calculated in step S106 does not match the judgment tampering detection value held in advance, step S112 Proceed to
- step S107 In the case where no falsification of the protected program is detected (NO in step S107), that is, the falsification detection value calculated in step S106 matches the judgment falsification detection value held in advance.
- the program execution unit 115 starts execution of the protected program loaded in step S105 (step S108).
- the program execution unit 115 continues to execute the protected program.
- step S109 If the debugger detection unit 401 detects a debugger during execution of the protected program (YES in step S109), the debugger detection unit 401 invalidates the debugger and proceeds to step S111.
- the falsification detection unit 402 that has detected the falsification and the debugger detection unit 401 that has detected the debugger notify the fraud analysis notification unit 403 of the fact, and the fraud analysis notification unit 403 cancels the execution to the program execution unit 115. Instruct. Thereafter, the program execution unit 115 executes! And stops the execution of the protected program (step S112).
- Fraud analysis notification unit 403 performs fraud analysis notification processing (step S113), and mobile phone 10 ends the processing.
- FIG. 12 is a flowchart showing the operation of the protected program update process. The operation shown here is the details of step S103 in the flowchart shown in FIG.
- the execution program selection unit 112 of the mobile phone 10 generates a download request for requesting a download of a new protected program (step S201).
- the execution program selection unit 112 outputs the generated download request to the invalidation list update unit 118.
- the invalidation list update unit 118 includes the communication control unit 103, the transmission / reception unit 102, the antenna 101, and the network.
- the download request is transmitted to the program update server 20 via the network 30, and the transmission / reception unit 601 of the program update server 20 receives the download request (step S202).
- control unit 602 of the program update server 20 When receiving the download request from the transmission / reception unit 601, the control unit 602 of the program update server 20 reads out the protected program and the determination falsification detection value from the update program storage unit 604 (step S 203). The control unit 602 outputs the read protected program and the determination falsification detection value to the transmission / reception unit 601.
- the transmission / reception unit 601 transmits the protected program and the falsification detection value for determination to the mobile phone 10 via the network 30, and the transmission / reception unit 102 of the mobile phone 10 determines that the program is a protected program via the antenna 101.
- the falsification detection value is received (step S204).
- the invalidation list update unit 118 generates program invalidation information related to the protected program received in step S204, and the generated program invalidation information is stored in the invalidation list storage unit 117. Is registered in the invalidation list 500 (step S205).
- the invalidation list updating unit 118 outputs the determination falsification detection value and the program identifier received in step S204 to the falsification detection unit 402 of the fraud analysis detection unit 116, and the falsification detection unit 402
- the falsification detection value is associated with the program identifier and registered in the falsification detection value table 410 (step S 206).
- the invalidation list update unit 118 writes the protected program received in step S 204 to the program storage unit 111 (step S 207). When the writing is completed (step S 208), the invalidation list update unit 118 returns to step S 104 in FIG. Continue return processing.
- FIG. 13 is a flowchart showing the operation of the program selection process 1. The operation shown here is the details of step S104 in the flowchart shown in FIG.
- the execution program selection unit 112 refers to the invalidation list 500 stored in the invalidation list storage unit 117 and registers the total number of program invalidation information registered in the invalidation list 500, that is, the program The total number of protected programs stored in the storage unit 111 is N (step S301).
- the execution program selection unit 112 is an integer range from 1 to N using a random number generator. Then, the random number r is generated (step S302). The execution program selection unit 112 reads the invalidation flag included in the program invalidation information located in the r-th upper force among the N pieces of program invalidation information included in the invalidation list 500 (step S303).
- step S304 When the invalidation flag is set to 1! (YES in step S304), since the corresponding protected program is invalidated, the execution program selection unit 112 selects the protected program. Since it cannot, return to step S302 and continue the process of selecting another protected program.
- the execution program selection unit 112 selects the r-th protected program (step S305).
- the execution program selection unit 112 reads the program identifier, program start address, and program size related to the selected protected program from the invalidation list, and reads the read program identifier, program start address, and program size into the program.
- the load unit 113 is notified (step S306). Thereafter, the process returns to step S105 in FIG. 11 to continue the processing.
- the program selection process 2 is a modification of the program selection process 1 described above, and corresponds to the details of step S104 in the flowchart shown in FIG.
- the execution program selection unit 112 refers to the invalidation list 500 stored in the invalidation list storage unit 117 and refers to the total number of program invalidation information registered in the invalidation list 500, that is, the program storage unit. Let N be the total number of protected programs stored in 111 (step S401).
- the execution program selection unit 112 holds a random number list therein.
- the random number list is a list in which random numbers already generated by the random number generator are registered.
- the execution program selection unit 112 refers to the random number list (step S402) and counts the total number of random numbers registered in the random number list. If the total number of random numbers registered in the random number list is N (step S In step 403, YES, the execution program selection unit 112 clears the random number list stored therein (step S404).
- the execution program selection unit 112 If the total number of random numbers registered in the random number list is less than N (NO in step S403), the execution program selection unit 112 generates a random number r in the integer range from 1 to N by the random number generator. (Step S405). The execution program selection unit 112 determines whether or not the random number r generated in step S405 is already registered in the random number list.
- step S406 If the random number r has already been registered in the random number list (YES in step S406), the execution program selecting unit 112 returns to step S401 and continues the processing. If the random number r force is not registered in the random number list (NO in step S406), the random number r generated in step S405 is registered in the random number list (step S407).
- the execution program selection unit 112 reads the invalidation flag included in the program invalidation information located at the r-th position from the top among the N pieces of program invalidation information included in the invalidation list 500 (Step S408). ).
- step S409 If the invalidation flag is set to 1! (YES in step S409), the corresponding protected program has been invalidated, and the execution program selection unit 112 selects the protected program. Therefore, return to step S401 and continue processing.
- the execution program selection unit 112 selects the r-th protected program (step S410).
- the execution program selection unit 112 reads the program identifier, program start address, and program size related to the selected protected program from the invalidation list, and reads the read program identifier, program start address, and program size into the program.
- the load unit 113 is notified (step S411). Thereafter, the process returns to step S105 in FIG. 11 to continue the processing.
- the fraud analysis notifying unit 403 of the fraud analysis detecting unit 116 acquires the program identifier of the protected program that has been loaded into the program load area 114 via the program execution unit 115. Obtain (step S501).
- the fraud analysis notifying unit 403 determines whether the fraud analysis has been detected by the debugger detecting unit 401 or the falsification detecting unit 402.
- the debugger detection unit 401 detects the unauthorized analysis (“debugger detection” in step S502)
- the unauthorized analysis notification unit 403 sets the unauthorized analysis detection code to “1” (step S503).
- the fraud analysis notifying unit 403 acquires each value of the general-purpose register, stack pointer, link register, and program counter from the register file included in the program execution unit 115 (step S504).
- the tampering analysis notifying unit 403 sets the tampering detection code to "2" (step S505)
- the notification unit 403 describes the acquired program identifier in the program identifier column 421 of the fraud analysis log information 420, and further sets the fraud analysis detection code set to either “1” or “2” to the fraud analysis detection code column. Describe in 422.
- the illegal analysis notifying unit 403 acquires each value of the register file in step S504
- the illegal analysis notifying unit 403 converts the acquired values into the general-purpose register value column 423, the stack pointer column 424, the link analysis column information 424, and the link Described in each column of the register column 425 and the program counter column 426
- the fraud analysis log information 420 is generated (step S506).
- the fraud analysis notifying unit 403 transmits the generated fraud analysis log information 420 to the program update server 20 via the communication control unit 103, the transmission / reception unit 102, the antenna 101, and the network 30, and the program update server 20 receives the fraud analysis log information 420 (step S507) o
- the control unit 602 of the program update server 20 Upon receiving the fraud analysis log information 420 from the transmission / reception unit 601, the control unit 602 of the program update server 20 writes the received fraud analysis log information 420 into the fraud analysis log information storage unit 603, and the fraud analysis log information storage unit 603 Stores the fraud analysis log information 420 (step S508).
- the fraud analysis notifying unit 403 of the mobile phone 10 notifies the invalidation list updating unit 118 of detection of fraud analysis together with the program identifier acquired in step S501 (scheduling). Step S509).
- the invalidation list update unit 118 sets the invalidation flag of the program invalidation information identified by the accepted program identifier from the invalidation list to “1” (step S510). Then return to the flowchart in Figure 11.
- the protected program in the present invention may be a program generated by performing obfuscation processing on the entire original program, or a program generated by performing obfuscation processing on a part of the original program. Even so.
- the program storage unit 111 of the mobile phone 10 has a configuration for storing a plurality of protected programs each having a different binary code.
- the program storage unit 111 is a binary It is not essential to store a protected program that is a code.
- a configuration may be adopted in which a protected program that is a source program with different obfuscation is stored.
- the program execution unit 115 may be configured to execute each protected program using an interpreter.
- the tampering detection unit 402 of the mobile phone 10 has a configuration for performing tampering detection using a one-way function, but the tampering detection method in the present invention is not limited to the one-way function.
- an encrypted protected program obtained by encrypting each protected program is stored in advance, and the protected program selected by the execution program selecting unit 112 is subjected to the same encryption process.
- a method of detecting the presence or absence of falsification by comparing the result of the comparison with an encrypted protected program stored in advance may be used.
- the execution program selection unit 112 of the mobile phone 10 is invalidated by executing the program selection process 1 shown in FIG. 13 or the program selection process 2 shown in FIG.
- the method for selecting a protected program in the present invention is not limited to these, and the present invention includes the following cases, for example.
- the execution program selection unit 112 may store a predetermined selection order in advance, and may select a protected program to be executed according to the selection order. Specifically, the execution program selection unit 112 stores program identifiers arranged according to the selection order, and when a decryption request for encrypted content is generated, the execution program selection unit 112 sets the selection order. Read the upper program identifier. Subsequently, the execution program selection unit 112 reads the invalidation list 500 from the invalidation list storage unit 117, and determines whether the protected program identified by the previously read program identifier has been invalidated. to decide. If it is not invalidated, the protected program is selected, and the program start address and program size are notified to the program load unit 113. If it is invalidated, the execution program selection unit 112 reads the program identifier with the next selection order and repeats the above processing. As described above, the execution program selection unit 112 selects one protected program that is not invalidated according to a predetermined selection order.
- the execution program selection unit 112 stores a selection order according to the degree of obfuscation of each protected program in advance, and may select a protected program to be executed according to the selection order. .
- the degree of obfuscation of each protected program depends on the additional size of the dummy code, the complicated pattern of the control structure, and the number of module divisions.
- the execution program selection unit 112 stores program identifiers in descending order of the degree of obfuscation, and when a decryption request for encrypted content occurs, the execution program selection unit 112 determines the upper level, that is, the degree of obfuscation. Reads the program identifier of the protected program with the highest value. Thereafter, the execution program selection unit 112 performs the same processing as in (a), and selects one protected program that is not obfuscated and the protected program power is invalidated in order.
- the execution program selection unit 112 may be configured to select one protected program that is not invalidated in order of the protected program power with a low degree of obfuscation. This is because a protected program with a higher degree of obfuscation generally has a lower execution speed. Therefore, for a bona fide user who does not perform fraud analysis, a program with a high execution speed, that is, a low degree of obfuscation. This is because it is desirable to select programs with priority. [0090] Alternatively, one protected program that is not invalidated may be selected in order of increasing actual execution speed regardless of the degree of obfuscation.
- the execution program selection unit 112 may store information indicating the execution speed of each protected program in association with the program identifier for identifying each protected program, and the mobile phone 10 may be protected. Each time you download a protection program, you can configure it to perform a test run and measure the execution speed of the downloaded protected program.
- the tamper detection unit 402 has a configuration that calculates a tamper detection value when the protected program is loaded into the program load area 114, and determines whether or not tampering has occurred.
- the tampering detection of the protected program in the invention may be performed on the program stored in the program storage unit 111 before the protected program is loaded, or may be performed before the execution of the protected program. Or it may be done periodically while the loaded program is running.
- the fraud analysis notifying unit 403 of the fraud analysis detecting unit 116 receives a notification that fraud analysis has been detected from either the debugger detecting unit 401 or the falsification detecting unit 402.
- the program execution unit 115 is unconditionally instructed to stop the execution of the protected program, and the fraud analysis log information is created.
- the present invention include.
- the fraud analysis notifying unit 403 holds a threshold value indicating a predetermined number in advance.
- the fraud analysis notification unit 403 counts the number of times each time it receives notification from the debugger detection unit 401 and the falsification detection unit 402 that fraud analysis has been detected. When the number of counts exceeds the stored threshold, the fraud analysis detection unit 403 instructs the program execution unit 115 to stop execution of the protected program and creates fraud analysis log information. May be configured. As a result, it is possible to prevent an erroneous operation of a bona fide user from being determined as an unauthorized analysis and immediately stopping the program being executed.
- the protected program in which the fraud analysis is detected is invalidated by rewriting the invalidation flag in the invalidation list from “0” to “1”.
- the invalidation of the program according to the present invention includes clearing the protected program in the program storage unit 111 in addition to rewriting the invalidation flag.
- the program may not be actually executed by overwriting the memory with random number data. In this way, by disabling the protected program that may have been analyzed, it is possible to reduce the risk that the protected program that should have been invalidated due to a user malfunction or the like is executed again.
- the program invalidation information may be deleted from the invalidation list.
- the program invalidation information By deleting the program invalidation information from the invalid key list, the information related to the address of the invalidated protected program is deleted, so the protected program that should have been invalidated due to a user malfunction etc. Can reduce the risk of being executed again.
- the invalidation list in the present invention may include signature data issued by a valid institutional force.
- the execution program selection unit 112 reads the invalidation list in step S101 (FIG. 11), verifies the signature data, and if the verification of the signature data is successful, continues the processing from step S102. However, if the verification of the signature data fails, that is, if the invalidation list is invalid, the processing from step S102 onward may not be performed. According to this configuration, the protected program is disabled. Invalidation It can be determined that the list has not been invalidated by falsification of the list, and execution can be prevented.
- the protection target program is only the original program 200 that is an encrypted content decryption program.
- a plurality of protection target programs may exist.
- the invalidation list storage unit 117 stores an invalidation list for each protection target program.
- the mobile phone 10 is connected from the program update server 20 to the down port.
- the protected program that has been loaded may be overwritten in the area where the protected protected program in the program storage unit 111 is invalidated, or stored in another area in the program storage unit 111. May be. This makes it possible to erase the protected protected program and add a new protected program at a time. Further, since the storage area of the protected program that has been invalidated is reused as the storage area of a new protected program to be added, the capacity of the program storage unit 111 can be used effectively.
- the mobile phone 10 determines that all protected programs stored in the program storage unit 111 are invalidated, and then starts a new one from the program update Sano.
- this configuration is not essential, and the timing for downloading the protected program from the program update server is not particularly limited. For example, each time one protected program is invalidated, the mobile phone 10 may download a new protected program from the program update server 20.
- the mobile phone 10 is stored in the program storage unit 111, and all the protected programs are not invalidated, and there is an effective protected program remaining.
- a new protected program may be downloaded from the program update server 20. For example, when the number of effective protected programs stored in the program storage unit 111 falls below a predetermined number, the mobile phone 10 holds the past selection history and the same protected program is selected. It may be configured to download a new protected program when the probability exceeds a predetermined value.
- the mobile phone 10 since the mobile phone 10 acquires a new protected program when the number of effective protected programs decreases, the mobile phone 10 randomly selects the protected program to be executed to some extent. Can be guaranteed.
- communication between the mobile phone 10 and the program update server 20 establishes a secure communication path, so-called SAC (Secure Authentication Channel), and download processing of the protected program via the SAC, It may be configured to send and receive fraud analysis log information.
- SAC Secure Sockets Layer
- SSL Secure Sockets Layer
- the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal that also has the computer program power.
- the present invention provides a computer-readable recording medium for the computer program or the digital signal, for example, a flexible disk, a hard disk, a CD ROM, a MO, a DVD, a DVD-ROM, a DVD RAM, a BD (Blu-ray Disc). It may be recorded in a semiconductor memory or the like. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
- a computer-readable recording medium for the computer program or the digital signal for example, a flexible disk, a hard disk, a CD ROM, a MO, a DVD, a DVD-ROM, a DVD RAM, a BD (Blu-ray Disc). It may be recorded in a semiconductor memory or the like. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
- the present invention may be configured such that the computer program or the digital signal is transmitted via an electric communication line, a wireless or wired communication line, a network typified by the Internet, or the like.
- the present invention may also be a computer system including a microprocessor and a memory.
- the memory may store the computer program, and the microprocessor may operate according to the computer program.
- the present invention also includes the case where part or all of the functional blocks of the mobile phone 10 and the program update server 20 in the above embodiment are implemented as an LSI that is an integrated circuit. These may be individually chipped, or may be chipped to include some or all of them. Here, it may be called IC, system LSI, super LSI, unoretra LSI, depending on the difference in power integration of LSI.
- the method of circuit integration is not limited to LSI, and may be realized with a dedicated circuit. You can use an FPGA (Field Programmable Gate Array) that can be programmed after manufacturing LSI 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 can be used as a mechanism for preventing exposure of information to be concealed by fraud analysis in a service industry that distributes digital content.
- the present invention can be used for IJ even in the manufacturing industry that produces playback devices for playing back digital content.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06714460A EP1862937A1 (en) | 2005-02-25 | 2006-02-23 | Secure processing device and secure processing system |
JP2007504784A JP4796050B2 (ja) | 2005-02-25 | 2006-02-23 | セキュア処理装置、及びセキュア処理システム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005050419 | 2005-02-25 | ||
JP2005-050419 | 2005-02-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006090800A1 true WO2006090800A1 (ja) | 2006-08-31 |
Family
ID=36927437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/303320 WO2006090800A1 (ja) | 2005-02-25 | 2006-02-23 | セキュア処理装置、及びセキュア処理システム |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1862937A1 (ja) |
JP (1) | JP4796050B2 (ja) |
KR (1) | KR20070105989A (ja) |
CN (1) | CN101128833A (ja) |
WO (1) | WO2006090800A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008047830A1 (fr) * | 2006-10-20 | 2008-04-24 | Panasonic Corporation | Dispositif et procédé de surveillance de falsification de l'information d'application |
JP2008117111A (ja) * | 2006-11-02 | 2008-05-22 | Megachips Lsi Solutions Inc | メモリシステム |
JP2008287441A (ja) * | 2007-05-16 | 2008-11-27 | Toshiba Corp | 情報処理装置およびプログラムの不正利用抑止方法 |
JP2009271884A (ja) * | 2008-05-12 | 2009-11-19 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
JP2010517119A (ja) * | 2007-01-18 | 2010-05-20 | パナソニック株式会社 | 難読化支援装置 |
US7930743B2 (en) | 2006-09-01 | 2011-04-19 | Fuji Xerox Co., Ltd. | Information processing system, information processing method, information processing program, computer readable medium and computer data signal |
JP2014531663A (ja) * | 2011-08-05 | 2014-11-27 | ケーピーアイティ テクノロジーズ リミテッド | 埋め込みソフトウェアコードの保護システム |
JP2014241648A (ja) * | 2010-10-28 | 2014-12-25 | アップル インコーポレイテッド | 無線ネットワーク上で電子識別コンポーネントを配信する方法及び装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8436638B2 (en) * | 2010-12-10 | 2013-05-07 | International Business Machines Corporation | Switch to perform non-destructive and secure disablement of IC functionality utilizing MEMS and method thereof |
KR101322402B1 (ko) * | 2011-11-25 | 2013-11-21 | 농업협동조합중앙회 | 어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기 |
EP2979211B1 (en) | 2013-03-27 | 2020-09-09 | Irdeto B.V. | Protecting software application |
JP6654652B2 (ja) * | 2015-03-13 | 2020-02-26 | エバースピン コーポレーション | 動的なセキュリティーモジュール生成方法及び生成装置 |
JP7173928B2 (ja) * | 2019-06-05 | 2022-11-16 | ファナック株式会社 | 数値制御装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003186753A (ja) * | 2001-12-21 | 2003-07-04 | Canon Electronics Inc | 電子機器、電子機器の制御方法、および電子機器の制御プログラム |
US20040003278A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Secure and opaque type library providing secure data protection of variables |
JP2004348710A (ja) * | 2003-05-20 | 2004-12-09 | Samsung Electronics Co Ltd | 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置 |
-
2006
- 2006-02-23 EP EP06714460A patent/EP1862937A1/en not_active Withdrawn
- 2006-02-23 WO PCT/JP2006/303320 patent/WO2006090800A1/ja active Application Filing
- 2006-02-23 CN CNA2006800060504A patent/CN101128833A/zh active Pending
- 2006-02-23 KR KR1020077018213A patent/KR20070105989A/ko not_active Application Discontinuation
- 2006-02-23 JP JP2007504784A patent/JP4796050B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003186753A (ja) * | 2001-12-21 | 2003-07-04 | Canon Electronics Inc | 電子機器、電子機器の制御方法、および電子機器の制御プログラム |
US20040003278A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Secure and opaque type library providing secure data protection of variables |
JP2004348710A (ja) * | 2003-05-20 | 2004-12-09 | Samsung Electronics Co Ltd | 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930743B2 (en) | 2006-09-01 | 2011-04-19 | Fuji Xerox Co., Ltd. | Information processing system, information processing method, information processing program, computer readable medium and computer data signal |
WO2008047830A1 (fr) * | 2006-10-20 | 2008-04-24 | Panasonic Corporation | Dispositif et procédé de surveillance de falsification de l'information d'application |
JP2008117111A (ja) * | 2006-11-02 | 2008-05-22 | Megachips Lsi Solutions Inc | メモリシステム |
JP2010517119A (ja) * | 2007-01-18 | 2010-05-20 | パナソニック株式会社 | 難読化支援装置 |
US9589115B2 (en) | 2007-01-18 | 2017-03-07 | Panasonic Intellectual Property Management Co., Ltd. | Obfuscation assisting apparatus |
JP2008287441A (ja) * | 2007-05-16 | 2008-11-27 | Toshiba Corp | 情報処理装置およびプログラムの不正利用抑止方法 |
JP2009271884A (ja) * | 2008-05-12 | 2009-11-19 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
JP2014241648A (ja) * | 2010-10-28 | 2014-12-25 | アップル インコーポレイテッド | 無線ネットワーク上で電子識別コンポーネントを配信する方法及び装置 |
JP2014531663A (ja) * | 2011-08-05 | 2014-11-27 | ケーピーアイティ テクノロジーズ リミテッド | 埋め込みソフトウェアコードの保護システム |
Also Published As
Publication number | Publication date |
---|---|
JP4796050B2 (ja) | 2011-10-19 |
CN101128833A (zh) | 2008-02-20 |
KR20070105989A (ko) | 2007-10-31 |
JPWO2006090800A1 (ja) | 2008-07-24 |
EP1862937A1 (en) | 2007-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4796050B2 (ja) | セキュア処理装置、及びセキュア処理システム | |
US10970424B2 (en) | Program execution device | |
US20080168562A1 (en) | Secure Processing Device and Secure Processing System | |
US8555089B2 (en) | Program execution apparatus, control method, control program, and integrated circuit | |
JP4891902B2 (ja) | 電子機器、更新サーバ装置、鍵更新装置 | |
KR100851631B1 (ko) | 보안 모드 제어 메모리 | |
US8438402B2 (en) | Electronic terminal, control method, computer program and integrated circuit | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
US9311487B2 (en) | Tampering monitoring system, management device, protection control module, and detection module | |
JP5646631B2 (ja) | デバイスの監査 | |
TWI468971B (zh) | 安全軟體下載 | |
US8370935B1 (en) | Auditing a device | |
US8949989B2 (en) | Auditing a device | |
US8516574B2 (en) | Software update system, management apparatus, recording medium, and integrated circuit | |
EP2579178A1 (en) | Controller, control method, computer program, program recording medium, recording apparatus, and method of manufacturing recording apparatus | |
CN107870793B (zh) | 一种应用程序中加载so文件的方法及装置 | |
EP2051181A1 (en) | Information terminal, security device, data protection method, and data protection program | |
JP6146476B2 (ja) | 情報処理装置及び情報処理方法 | |
CN1745357A (zh) | 用于在设备中执行测试的方法、系统及设备 | |
US8418256B2 (en) | Memory control apparatus, content playback apparatus, control method and recording medium | |
CN106971105B (zh) | 一种基于iOS的应用程序遭遇假面攻击的防御方法 | |
KR20110133447A (ko) | 칩셋 상에서 적어도 하나의 기능을 활성화하는 방법 및 그 방법을 구현하기 위한 칩셋 | |
Abrahamsson | Security Enhanced Firmware Update Procedures in Embedded Systems | |
JP2010061182A (ja) | ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム | |
JP2006085598A (ja) | プログラム実行装置及びプログラム実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007504784 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020077018213 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200680006050.4 Country of ref document: CN Ref document number: 11885051 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006714460 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2006714460 Country of ref document: EP |