WO2006126686A1 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- WO2006126686A1 WO2006126686A1 PCT/JP2006/310584 JP2006310584W WO2006126686A1 WO 2006126686 A1 WO2006126686 A1 WO 2006126686A1 JP 2006310584 W JP2006310584 W JP 2006310584W WO 2006126686 A1 WO2006126686 A1 WO 2006126686A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- data
- access
- address
- normal mode
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Definitions
- the present invention relates to a data processing apparatus that processes protected data by a cooperative operation of a plurality of processes, and more particularly to a technique for preventing unauthorized processing of protected data.
- Patent Document 1 Japanese Patent Laid-Open No. 2-155034
- Patent Document 2 JP-A-4-102920
- Patent Document 3 Japanese Patent Laid-Open No. 2001-318787
- Non-Patent Document 1 Lie, D., Thekkath, C. A., Mitchell, M., Lincoln,
- Non-Patent Document 2 E. Suh, D. Clarke, B. Gassend, M. van Dijk, and S. Devadas.The AEGIS processor architecture for tampereviden t and tamper resistant processing.
- an object of the present invention is to provide a data processing apparatus that can prevent leakage of data even when data handled by each program is subjected to cooperative processing.
- the present invention includes a processor that operates according to a program, and switches between a normal mode in which a process that is an execution unit of the program operates and a protection mode in which the operation of the process is suppressed.
- An access prohibiting means for permitting access by the first process and prohibiting access by other processes to the processing target data of the first process in the normal mode;
- a detection means for detecting a call instruction for instructing a call of the second process from the first process, a switching means for switching from the normal mode to the protection mode when the call instruction is detected, and in the protection mode Determining whether the second process has the right to use the data to be processed.
- Control means for controlling the access to the target data so as to be permitted.
- the data processing apparatus of the present invention has the above-described configuration, so that the first process can pass data to the second process so that it is not known to processes other than the second process. It is possible to prevent data leakage by other operating processes.
- the second program is updated and the function is changed. If you lose the right to use the data to be processed! Even so, the determination means can detect it and the control means can prevent information leakage.
- the access prohibition means operates in the normal mode and a holding unit that holds the memory and management information indicating an area that is allowed to be accessed in the memory for each process so as to be rewritable only in the protection mode.
- An access restriction unit that accesses the memory in accordance with the management information, and when the control means determines that the use right is granted by the determination means, the management information of the second process includes: Information for permitting access to the area in which the target data is stored on the memory may be added.
- the management information held by the holding unit includes one or more pieces of information in which an address in the memory is associated with a key corresponding to the address
- the access restriction unit includes the memory including the address of the memory An access request included in the access request, an address determination unit that determines whether or not the access power is included in the management information, and the access request when the access request is determined to be included. If it is a write request, the data to be written is encrypted with the key corresponding to the address and written to the area indicated by the address, and if the access request is a read request, the memory And an access execution unit that decrypts and outputs data read from the address using a key corresponding to the address.
- data is encrypted and recorded in the memory with a key for each address determined for each process, and the encrypted and recorded data is decrypted and read.
- the access can prevent the data from being used properly.
- the access request to the memory includes a read request for reading data from the memory, a write request for data to the memory, a use permission request for the area of the memory desired to be used, and other requests. It shall include a shared setting request to use the memory area that the process is permitted to use in its own process.
- the data may be a process code.
- Each process is assigned an individual process identifier, and the management information held by the holding unit associates an address in the memory with a process identifier permitted to access the address.
- the access restriction unit is assigned to an acquisition unit that obtains an access request to the memory including an address of the memory, an address included in the access request, and a process that requested the access.
- An address determination unit that determines whether or not the information associated with the process identifier is included in the management information, and if it is determined that the information is included, causes the process that requested access to access the address in the memory It is good also as including an access execution part.
- the process indicated by the process identifier corresponding to the access-requested address included in the management information indicates access to the address of the memory. Therefore, it is possible to prevent the data from being leaked by other processes.
- security requirement information indicating whether or not to allow execution of each of one or more data processing methods is assigned to the data, and each of the processes can be executed with or without the ability to execute each of the above data processing methods.
- the call command includes processing specification information indicating one or more data processing methods! /, Deviation, and the determination means includes the security requirement information indicated by the processing specification information. The right to use the data processing method is permitted and the function information of the second process indicates that the data processing method indicated by the processing specifying information can be executed. It is good also as deciding.
- the switching means saves the context of the process operating in the normal mode to the memory, and When switching from the protection mode to the normal mode, the context of the process operating in the normal mode may be restored from the memory.
- execution of context save / restore processing can be limited to the case in the protection mode, so that an illegal operation is performed on the context and data is leaked by the process operating in the normal mode. Can be prevented.
- the first process and the second process include an interrupt process or an exception process for handling an interrupt or an exception when an interrupt or an exception occurs while each of the first process and the second process is operating.
- the apparatus further includes a vector table holding means for holding a vector table indicating processing to be executed in an rewritable state only in the protection mode when an interrupt or an exception occurs, and a process for operating the vector table.
- the vector tape is executed in the protection mode, and the interrupt process or exception process of the second process is executed when an interrupt or exception occurs in the normal mode. This may include vector table rewriting means for rewriting.
- the determination means further includes a process request receiving unit that receives a use request for an area in the memory, a use determination unit that determines whether the requested address is already used, and a use If it is determined that there is a use authority by the authority determination unit and the authority determination unit that determines whether or not there is a use authority for the data requested to be stored at the address of the requested process
- the management information of the process that has requested use includes a management information registration unit for registering information permitting access to the area indicated by the address.
- the management information in accordance with a request from the process, is generated so that only the process that has requested use can use the requested memory area, and is stored in the area by another process. Data can be prevented from being leaked.
- the management information registration unit generates a key when the authority determination unit determines that there is a use authority, and information that associates the address with the generated key as information that permits the access Please add it to the management information of the process that requested use.
- the data processing apparatus further includes debugging means for performing debugging related to the process.
- the switching means further enables the debugging means and switches to the protection mode when switching to the normal mode. In this case, the debugging means may be disabled.
- the data processing method of the present invention includes a processor that operates according to a program, and is used for a data processing device that operates by switching between a normal mode in which a process that is an execution unit of the program operates and a protection mode in which the operation of the process is suppressed.
- a normal mode an access prohibition step for permitting access by the first process and prohibiting access by other processes in the normal mode, and a normal process.
- a detection step for detecting a call instruction for instructing the calling of the second process from the first process
- a switching step for switching from the normal mode to the protection mode when the call instruction is detected
- a protection mode The second process power The right to use the data to be processed!
- the second access process is performed with respect to the second access prohibition unit. And a control step of controlling the process so that access to the processing target data is permitted in the normal mode.
- the computer program of the present invention includes a processor that operates according to the program.
- a computer program used for a data processing device that operates by switching between a normal mode in which a process that is an execution unit of the program operates and a protection mode in which the operation of the process is suppressed, and in the normal mode, the first process
- a detection step of detecting a call instruction to be performed, a switching step of switching from the normal mode to the protection mode when the call instruction is detected, and the second process in the protection mode is authorized to use the data to be processed.
- the access prohibition means is permitted to allow the second process to access the processing target data in the normal mode.
- the first process power can pass data to the second process so that it is not known to processes other than the second process, and the data is transferred by other processes operating in the normal mode. Leakage can be prevented.
- An integrated circuit of the present invention includes a processor that operates according to a program, and operates by switching between a normal mode in which a process that is an execution unit of the program operates and a protection mode in which the operation of the process is suppressed
- access prohibition means for permitting access by the first process to the data to be processed by the first process and prohibiting access by other processes, and in the normal mode
- the first process Detecting means for detecting a call instruction for instructing a second process, switching means for switching from a normal mode to a protection mode when the call instruction is detected, and in the protection mode, the second process is configured to A means for determining whether or not the user has authority to use the data to be processed, and a protection mode.
- Control means for controlling the second process to be permitted to access the processing target data in the normal mode.
- the first process power can pass data to the second process so that it is not known to processes other than the second process, and the data is transferred by other processes operating in the normal mode. Leakage can be prevented.
- the determination means can detect it and the control means can prevent information leakage.
- FIG. 1 is a diagram schematically showing a main part of a configuration of a program protection device according to the present invention.
- FIG. 2 is a diagram showing a hardware configuration of a program protection device according to the present invention.
- FIG. 3 is a diagram showing a configuration of a key register.
- FIG. 4 is a diagram showing a configuration of data to be protected.
- FIG. 5 is a diagram schematically showing the structure of a file for recording a program.
- FIG. 6 is a diagram schematically showing the structure of a file for recording a program.
- FIG. 7 is a diagram showing a software configuration of the program protection device.
- FIG. 8 is a diagram showing a configuration of a management table.
- FIG. 9 is a diagram showing a configuration of a management table.
- FIG. 10 is a flowchart showing an unauthorized operation prevention control process.
- FIG. 11 is a flowchart showing processing of state switching operations A and B.
- FIG. 12 is a flowchart showing processing of the unauthorized operation prevention control unit in response to a request from program X.
- FIG. 13 is a flowchart showing the overall operation of the program.
- FIG. 14 is a flowchart showing the overall operation of the program (continuation of FIG. 13).
- FIG. 15 is a flowchart showing the operation of the program protection device.
- FIG. 17 shows the state of the management table during operation of the program protection device.
- FIG. 18 shows the status of the management table during operation of the program protection device.
- ⁇ 19] Indicates the status of the management table during operation of the program protection device.
- FIG. 20 is a flowchart showing processing for determining whether or not a function flag of a program satisfies a security requirement.
- FIG. 21 is a flowchart showing the operation of a program in the program protection device.
- FIG. 22 is a block diagram showing a configuration of a program protection device according to a modification.
- FIG. 23 is a diagram showing a configuration of an ID register according to a modification.
- FIG. 1 is a diagram schematically showing main parts of the configuration of the program protection device 0101.
- the program protection device 0101 includes a CPU 0201, an unauthorized operation prevention circuit 0105, a storage medium 0216, It is comprised including.
- the CPU 0201 is a processor that executes a program.
- the unauthorized operation prevention circuit 0105 is a circuit having a mechanism for preventing unauthorized execution of programs executed by the CPU 0201 and unauthorized access between programs.
- the storage medium 0216 stores protected data 0108, which is confidential information such as contents and personal information, handled by a program executed by the CPU 0201 in an encrypted state.
- Examples of programs executed on the CPU 0201 include an operating system (OS) 0104, a program A0102, a program B0103, a program C0107, and an unauthorized operation prevention control unit 0106 as shown in FIG.
- OS operating system
- A0102 program A0102
- program B0103 program B0103
- program C0107 program C0107
- unauthorized operation prevention control unit 0106 as shown in FIG.
- the unauthorized operation prevention control unit 0106 obtains a memory area use request from each of the program A0102, program B0103, program C0107, and other programs and OS0104, and determines whether or not the memory area can be used. Control 0105 Thus, the memory area is used only in a mode requested by the request source program.
- An operating system (OS) 0104 is basic software for operating a program A0102, a program B0103, a program C0107, and other programs (not shown).
- Program A0102, program B0103, and program C0107 are application programs that execute arbitrary processing.
- the program A010 2 is a program that decrypts the protection target data 0108, which is the content
- the program B0103 is a player program that plays the content
- the program A0102 and the program BO 103 Suppose that they cooperate when processing content.
- the program A0102 decrypts the encrypted content that is the protection target data 0108, and causes the program B0103 to reproduce the decrypted content.
- the program A0102 includes a call instruction for calling the program B0103, and when the CPU0201 detects the call instruction, the CPU 0201 issues a state switching instruction indicating a protection mode to be described later to the unauthorized operation prevention circuit 0105.
- the unauthorized operation prevention circuit 0105 performs processing by switching to the protection mode based on the state switching instruction.
- the call instruction includes information indicating a data processing method such as content output, copy, move, special reproduction, and digital output.
- the unauthorized operation prevention control unit 0106 controls the unauthorized operation prevention circuit 01 05 in the protection mode, thereby preventing the program C0107 from illegally using the content or destroying the content. ing.
- the program protection device 0101 includes a CPU 0201, a nonvolatile memory 0203, a nose encryption circuit 0204, a key register 0205, an access limit circuit 0207, a state switching circuit 0208, which are connected to each other via a bus 0210.
- Debugger I / F0209 storage media 0216, non-volatile memory 0221, RAM0202 connected to nose encryption circuit 0204, and access limit times
- a protection memory 0206 connected to the path 0207 is included.
- the program protection device 0101 is a computer system that also includes a microprocessor, ROM, RAM, and the like.
- the ROM stores a computer program
- the program protection device 0101 achieves its function by operating according to the microprocessor power and the computer program.
- the CPU 0201 is a microprocessor that executes programs stored in the RAM 0202 and the protection memory 0206.
- the state switching circuit 0208 receives a state switching instruction selectively indicating either the normal mode or the protection mode from the CPU 0201, and the debugger IF0209, the key register 0 205, and the access restriction circuit 0207 are
- the protection mode for switching to the mode corresponding to the state switching instruction is a mode in which only a specific program with high security operates, and the normal mode is a mode in which other programs operate.
- the state switching circuit 0208 When the received state switching instruction indicates the protection mode, the state switching circuit 0208 outputs a status signal A0211 indicating the protection mode to the debugger IZF0209, invalidates the debugger I ZF209, and stores it in the key register 0205. Status signal B0217 indicating protection mode is output, and status signal C0218 indicating protection mode is output to the access restriction circuit 0207.
- the state switching circuit 0208 When the received state switching instruction indicates the normal mode, the state switching circuit 0208 outputs a status signal A0211 indicating the normal mode to the debugger IZF0209 and sets the normal mode to the key register 0205. Status signal B0217 is output, and a status signal C0218 indicating the normal mode is output to the access restriction circuit 0207. Further, the state switching circuit 02 08 changes the vector table 0219 as necessary. The operation for switching the state and the change of the vector table 0219 will be described later.
- the access restriction circuit 0207 is a circuit that controls the connection between the bus 0210 and the protection memory 0206.
- the state signal C received from the state switching circuit 0208 indicates the normal mode
- the access restriction circuit 0207 When the connection between the bus 0210 and the protection memory 0206 is cut off and the protection mode is indicated, the bus 0210 and the protection memory 0206 are connected. Therefore, a program operating in the normal mode cannot access the data in the protection memory 0206.
- the debugger IZF0209 is an interface to which a program debugger outside the program protection device 0101 can be connected, and is connected to the CPU 0201!
- the debugger IZF0209 connects the program debugger and the CPU 0201 when the status signal A notified from the status switching circuit 0208 indicates the normal mode, and connects with the program debugger when the status signal A indicates the protection mode. Disconnect from CPU0201.
- the key register 0205 is a circuit that outputs an encryption key corresponding to the address requested to be accessed to the bus encryption circuit 0204.
- the key register 0205 is a command key information table 0305 indicating correspondence between addresses and instruction bus encryption keys, and a data register indicating correspondence between addresses and data bus encryption keys.
- the key information table 0306 is held, the address signal 0 301 is acquired from the bus encryption circuit 0204, the instruction bus key number key signal 0302 associated with the address indicated by the address signal 0301, and the data
- the bus encryption key signal 0303 is output to the bus encryption circuit 0204.
- the instruction key information table 0305 includes instruction key information T0311, T0312, T0313 • ⁇ , and each instruction key information indicates a correspondence between an address and an instruction bus encryption key.
- the data key information table 0306 includes data key information ⁇ 0321, ⁇ 0322, ⁇ 0323, and the like. Each data key information indicates a correspondence between an address and a data bus encryption key.
- the change of the setting of the key register 0205 can be changed only when the status signal ⁇ output from the status switching circuit 0208 indicates the protection mode, and is notified by the unauthorized operation prevention control unit 0106 via the bus 0210.
- the setting signal 0304 is changed.
- the RAM 0202 is a memory device connected to the bus encryption circuit 0204 !.
- the bus encryption circuit 0204 uses the key notified from the key register 0205 to correspond to the key. Codes and data that are input to and output from the associated memory addresses are decrypted.
- the bus encryption circuit 0204 detects whether the CPU 0201 is accessing the RAM 0202 for fetching instructions and whether it is accessing for data access, and in the case of fetching instructions to the same physical address. Uses an instruction bus encryption key, and in the case of data access, encrypts and decrypts codes and data using a data bus encryption key.
- the nonvolatile memory 0203 stores a file A0212, a file B0213, a file C0214, a file OS0215, a BIOS0405, and a file S0220.
- the file A0212 includes a code encryption key 0710, a code 0711 of the program A0102, a signature A 0115, and a function flag A0111.
- the code encryption key 0710 is a key (KC — A) used to encrypt the code 0711 of the program A.
- the code encryption key 0710 is encrypted with a public key encryption algorithm! /.
- the secret key corresponding to the public key used when encrypting the code encryption key 0710 is held by the unauthorized operation prevention control unit 0106.
- the code 0711 of the program A describes the processing performed by the program A0102.
- the code 0711 of the program A is encrypted with the code encryption key 0710.
- the signature A0115 stores a vendor signature obtained by encrypting the code 0711 of the program A.
- Function flag A0111 is the program A0102 force function 0714, 0715, 0716, 0717, 0
- the function flag indicates whether the program has file output, copy, move, special playback, and digital output functions.
- the function flag is, for example, 5-bit data, and a file output function, a copy function, a movement function, a special playback function, and a digital output function are assigned to each bit.
- the function flag when the file output and movement functions are provided is 10100 in binary representation, and 00001 is expressed in binary representation when only the digital output function is provided.
- Function flag A0111 of program A01 02 is 00000 in binary notation, indicating that not all functions are provided.
- the function flag C0113 of the file C0214 indicates that the file output function 0734 is provided
- the function flag OS0114 of the file OS0215 indicates that the file output function 0744, the copy function 0745, and the move function 0746 are provided.
- the non-volatile memory 0221 is a memory device that stores a vector table 0219 indicating addresses of exceptions and interrupt handlers.
- the CPU 0201 when the CPU 0201 detects the occurrence of an interrupt or an exception, the CPU 0201 refers to the vector table 0219 to obtain the position of the handler to be executed next.
- the handler address corresponding to various exceptions and interrupts stored in the vector table 0219 can be changed only by the state switching circuit 0208, and only the software operating in the protection mode can be used. You can request to change the setting contents of vector table 0219.
- the storage medium 0216 stores the protection target data 0108, which is confidential information such as contents and personal information, in an encrypted state.
- the protection target data 0108 includes data 0701, a data encryption key 0702, a security requirement list 0109, and signature data 0708.
- Data 0701 is data to be protected, and is encrypted using a data encryption key 0702. However, the data 0701 is not necessarily encrypted.
- Data encryption key 0702 is encrypted with the public key encryption algorithm and is encrypted. Since the secret key corresponding to the public key used at this time is held by the unauthorized operation prevention control unit 0106, only the unauthorized operation prevention control unit 0106 can decrypt it.
- the security requirement list 0109 includes security requirements 0703, 0704, 0705, 0706, 070 7.
- the security requirement list is, for example, 5-bit data in which each bit indicates security requirements.Each bit corresponds to the file output function, copy function, move function, special playback function, and digital output function, and the bit value is A case of 1 indicates that the function is possible, and a bit value of ⁇ indicates that the function is not possible.
- the security requirement list when the file output and movement functions are possible is 10100 in binary representation, and 00001 is expressed in binary representation when only the digital output function is possible.
- the security requirements 0703, 0704, 0705, 0706, and 0707 for the data 0701 are all impossible.
- the signature data 0708 is signature data for the security requirement list 0109, and the validity of the security requirement list 0109 can be verified by using the signature data.
- the program operating on the CPU 0201 of the program protection device 0101 includes an operating system (OS) 0104 including an OS interrupt management unit 0404, and a program A0102 including a program A interrupt management unit 0402.
- the program B 0103 includes the program B interrupt management unit 0403
- the program C 0107 includes the program C interrupt management unit 0406
- the security kernel 0401 includes the program unauthorized operation prevention control unit 0106
- the BIOS 0405 includes the program B interrupt management unit 0403, the program C 0107 including the program C interrupt management unit 0406, the security kernel 0401, the unauthorized operation prevention control unit 0106, and the BIOS 0405.
- the BIOS 0405 is stored in the nonvolatile memory 0203 and is executed by the CPU 0201 in the normal mode when the program protection device 0101 is turned on.
- BIOS 0405 loads the OS 0104 into the RAM 0202 after performing basic hardware settings.
- BIOS0405 loads only OS0104.
- the OS 0104 is an OS having a general operating system function, and after starting, the program A 0102, the program B 0103, and the program C 0107 are started in order.
- the OS interrupt management unit 0404 included in the OS0104 includes a handler for handling an interrupt or an exception that occurs when the OS0104 is operating.
- the program A0102, the program B0103, and the program C0107 are programs that perform general-purpose processing that operates on the OS0104, and handle the protection target data 0108.
- the interrupt management unit 0402 included in the program A0102 includes a handler for handling an interrupt or exception that occurs when the program A0102 is operating.
- interrupt management unit 0403 included in the program B0103 and the interrupt management unit 0403 included in the program C0107 include handlers that handle interrupts and exceptions that occur when the programs B0103 and C0107 are operating.
- Program A0102, program B0103, program C0107, and OS0104 are software that operates in the normal mode, and are loaded into the RAM0202 and executed by the CPU0201.
- the security kernel 0401 is software that performs system control in the protection mode, and is loaded into the protection memory 0206 and executed by the CPU 0201.
- the security kernel 0401 handles interrupts and exceptions that occur in the protection mode, and executes processing for the handled interrupts and exceptions.
- the contents of the vector table 0219 in the protection mode are rewritten by the state switching unit 0206 so that the CPU 0201 executes the handler in the security kernel 0401 when an interrupt or exception occurs immediately before switching to the protection mode.
- the security kernel 0401 transfers the control subject to the unauthorized operation prevention control unit 0106.
- the control subject When the unauthorized operation prevention control process by the unauthorized operation prevention control unit 0106 is completed, the control subject returns to the security kernel 0401, and the security kernel 0401 issues a state switching request to the state switching circuit 0 208 to shift to the normal mode. Output.
- the unauthorized operation prevention control unit 0106 controls the unauthorized operation prevention circuit 0105 to prevent an unauthorized operation of a program including the OS 0104 and the like.
- the unauthorized operation prevention control unit 0106 is a program that operates in the protection mode, and is a protection memory. It is loaded into 0206 and executed by the CPU0201. Therefore, the security kernel 0401 and the unauthorized operation prevention control unit 0106 cannot be accessed from a program operating in the normal mode without access authority to the protected memory 0206.
- the unauthorized operation prevention control unit 0106 manages a management table 0110 that is data for controlling the unauthorized operation prevention circuit 0105.
- management table 0110 will be described with reference to FIGS.
- the management table 0110 is a group of management data for protecting the program data and the code area.
- the data area management information table group 0501, the code area management information table group 0502 shown in FIG. Includes security requirement management information table T0310, program management information table T0410, and current program management table 0503 shown in Fig. 9.
- a data area management information table group 0501, a code area management information table group 0502, a security requirement management information table ⁇ 0310, a program management information table ⁇ 0410, and a powerful program management table 0503 are stored in the protection memory 0206.
- the unauthorized operation prevention control unit 0106 displays the contents of the code area management information table group and the program management information table according to the registration request made by the OS 0104 for the program ⁇ 0102, the program ⁇ 0103, and the program C0107 Register or renew.
- the unauthorized operation prevention control unit 0106 registers or updates the contents of the data area management information table group according to the protection setting request generated by another program in the data area protection setting process described later, and performs data area sharing setting described later. Then, register or update the contents of the security requirement management information table according to the sharing setting request made from other programs.
- Program management information table T0410 contains program management information T0411, T0412, TO 413, T0414.
- Each program management information includes a program management information identifier, a code address, a program identifier, a shared program identifier, and a function flag.
- the program management information identifier is an identifier for identifying program management information.
- the illegal operation prevention control unit 0106 registers the program management information, the illegal operation prevention control unit 0106 assigns a value that does not overlap with a value already used.
- the code address is an address area that is managed by each program management information.
- the program identifier is an identifier of a program including a code loaded in the address area, and is assigned to each program in advance.
- the shared program identifier is an identifier of a program that shares the address area code.
- the function flag is a flag indicating whether or not file output, copy, move, special reproduction, and digital output functions are permitted for the code in the address area.
- the function flag is, for example, 5-bit data, and a file output function, a copy function, a move function, a special playback function, and a digital output function are assigned to each bit.
- the function flag is 10100 in binary representation when file output and movement are permitted, and 0 0001 in binary representation when only the digital output function is permitted.
- the code area management information table group 0502 includes program code area management information tables ⁇ ⁇ ⁇ ⁇ ⁇ 0210, ⁇ 0220, ⁇ 0230, and the like.
- the program code region management information table is generated for each program.
- the code area management information table T0210 generated for a program whose program identifier is P1 includes code area management information T0211, T0212, T0213-•, and the data area management information includes a code area identifier, Includes code address and code encryption key.
- the code area identifier is an identifier for identifying the code area management information, and is already used when the unauthorized operation prevention control unit 0106 generates the code area management information. V, assign a value that does not overlap with the value.
- the code address is an address area that is managed by the code area management information.
- the code encryption key is a key for encrypting and decrypting a code held in the memory area indicated by the address area, and is used for code access.
- Data area management information table group 0501 includes data area management information table T0110,
- the data area management information table is generated for each program, and includes a data area identifier, a data address, and a data encryption key.
- the data area identifier is an identifier for identifying each data area management information.
- the data address is an address area that is managed by each data area management information.
- the data encryption key is a key for encrypting and decrypting data held in the memory area indicated by the address area, and is used for data access.
- Security requirement management information table T0310 is a data area management information table group 0
- This table is used to manage security requirements for each data area management information included in 501.
- the security requirement management information includes a security requirement management information identifier, a data address, a generated program identifier, a shared program identifier, and a security requirement.
- the security requirement management information identifier is an identifier for identifying security requirement management information.
- the data address is an address area managed by the security area management information.
- the generated program identifier is an identifier of a program that first sets data for the address area on the physical memory.
- the shared program identifier is an identifier for identifying a program sharing the memory area with respect to the address area on the physical memory.
- the security requirement defines a method of protecting data held in the address area on the physical memory indicated by the data address.
- the security requirement has the same structure as the function flag.
- the security requirement is 5-bit data, and each bit includes a file output function, a copy function, a move function, and a special playback function. The execution of the digital output function is assigned.
- the function flag is 10100 in binary representation when file output and transfer are permitted, and 00001 in binary representation when only digital output is permitted.
- the identifier of the currently running program is stored.
- the BIOS 0405 is activated (step S2011).
- the BIOS 0405 performs basic settings for the hardware of the program protection device 0101 and then loads the OS 0104 into the RAM 0202 (step S2012).
- OS0104 is connected to OS0104, which is its own program, against unauthorized operation prevention control unit 0106! Perform the registration process described later (step S2020), connect to program A0102! /, Perform the registration process described later (step S2021), perform the registration process for program B0103 (step S2022), Registration processing for C0107 is performed (step S2023).
- the unauthorized operation prevention control unit 0106 can process each request such as memory protection from the OS 0104, the program A01 02, the program B0103, and the program C0107.
- OS0104 sequentially selects the programs A0102, B0103, and C0107 that have been successfully registered. (Step S2031).
- the OS 0104 makes a protection setting to be described later for the data area used in its own program to the unauthorized operation prevention control unit 0106 (step S2040).
- the program A0102 performs the later-described protection setting for the data area used in its own program for the unauthorized operation prevention control unit 0106 (step S2041), and the program B0103 provides for the unauthorized operation prevention control unit 0106.
- the program A0102 performs the data area sharing setting described later for sharing the data area to be used with other programs to the unauthorized operation prevention control unit 0106 (step S2051).
- the program B0103 sends an illegal operation prevention control unit 0106 to the program B0103 when necessary.
- a data area sharing setting is made to share the data area to be used with other programs (step S 2053).
- step S2061 the OS 0104 switches the current program to be operated as necessary (step S2061), and the current program executes a process to be performed by the own program (step S2062).
- step S2021 the program registration process in step S2021, the protection setting process in step S2041, the data area sharing setting process in step 2051, and the program switching process in step S2061 will be described.
- Step S2020, Step SS2021, Step S2022, Step S2023, Step S2040, Step S2041, Step S2042, Step S2043, Step S2051 Steps S2052 and S2053 are all executed according to the basic processing flow shown in FIGS.
- steps S2020 to S2023 will be described by taking step S2021 as an example, and steps S2040 to S2043 will be described as! Steps S2041 will be described as Italy, and steps S2051 to S2053 will be described! In the following, step S2051 will be described as a column.
- Step S2021 in FIG. 21 is a process of registering information about the OS0104 force program A in the improper operation prevention control unit 0106.
- the program X shown in FIGS. 11 and 12 shows a program that operates according to the flowchart, and in this embodiment, the program A0102, program B0103, program C0107, or OS0104 is any power. Here, it corresponds to OS0104 force program X, OS interrupt management unit 0404 force, corresponds to program X interrupt management unit, and OS0104 requests registration of program A !.
- the program X first writes a registration request for registering the program A in the data area on the RAM 0202 that is designated in advance for the program X.
- the registration request includes the key (code encryption) used for encrypting the code of program A, which is the program to be registered, as shown in FIG. 5, the signature data of the program, and the function flag. It is. Further, the registration request includes program load address information.
- the key is encrypted by the public key encryption algorithm, and the secret key corresponding to the public key used for the key encryption is stored in the unauthorized operation prevention control unit 0106.
- the program signature data is used to verify the correctness and completeness of the program.
- the program load address information is an address area in which a program to be registered is loaded.
- Program X generates a software interrupt caused by the program A registration request (step S0801), and transfers control to the program X interrupt manager.
- the interrupt management unit for program X investigates the cause of the software interrupt generated by program X, reads the registration request from the predetermined data area, and confirms the type of interrupt (step S0802).
- the interrupt management unit for program X confirms that the interrupt type is a software interrupt caused by a registration request for program A.
- the program X interrupt management unit stores the registration request in the shared memory (step S0803).
- the shared memory is a predetermined memory area in the RAM 0202 used for communication between the normal mode and the protection mode.
- the state switching operation A for switching the operation state of the program protection device 0101 from the normal mode to the protection mode is executed.
- program X is OS0104.
- the program X interrupt management unit requests the state switching circuit 0208 to switch the state to the protection mode (step S 1700).
- the state switching circuit 0208 stores the state in the CPU in a predetermined data area managed by the program X in the RAM 0202 (step S1701).
- the state switching circuit 0208 saves the context of the program X, which is the state switching request source, in an area predetermined for use by the program X in the RAM 2022.
- the state switching circuit 0208 outputs the state signal A0211 indicating the protection mode, and disables the debugger IZ F0209 (step S 1702).
- the state switching circuit 0208 clears the CPU internal state (step S1703).
- state switching circuit 0208 outputs a state signal B0217 indicating a protection mode, and changes the setting of key register 0205 (step S 1704).
- the key register 0205 can change the instruction key information table 0305 and the data key information table 0306 using the setting signal 0304 notified via the bus 0210.
- the state switching circuit 0208 outputs a state signal C0218 indicating the protection mode, changes the setting of the access restriction circuit 0207 (step S 1705), and the access restriction circuit 0207 also protects the bus 0210 force. Open access to memory 0206.
- the open state indicates a state where access from the bus 0210 to the protected memory 0206 is permitted.
- the state switching circuit 0208 changes the setting of the vector table 0219 so that the CPU 0201 executes the handler in the security kernel 0401 when an interrupt or exception occurs (step S 1706).
- the state switching circuit 0208 returns the context stored in the protection memory 0206 immediately before switching from the previous protection mode to the normal mode to the CPU (step S 1707).
- the program protection device 0101 enters the protection mode, and the state switching operation A ends.
- the security kernel 0401 transfers control to the unauthorized operation prevention control unit 0106 (step S0815).
- misbehaving prevention controller 0106 obtains the request from the shared memory (step S0806) o
- the request is the registration request.
- the unauthorized operation prevention control unit 0106 executes unauthorized operation prevention control processing (step S0807).
- step S 0807 the details of the unauthorized operation prevention control process (step S 0807) when the request is the registration request will be described with reference to FIG.
- the unauthorized operation prevention control unit 0106 determines which request is the request (step S600).
- step S600 registration
- step S0612 Since the request is a registration request (step S600: registration), the process branches to step S0612.
- the unauthorized operation prevention control unit 0106 uses the security requirement management information table T0310 and the program management information table T0410 to determine the program load address information. It is determined whether or not the code address area force indicated in this field is an unused area (step S0612).
- step S0612 If the area is an unused area (YES in step S0612), the unauthorized operation prevention control unit 0106 verifies the signature of the program and the signature of the function flag (step S0613).
- step S0613 If the signature verification result is OK (YES in step S0613), the unauthorized operation prevention control unit 0106 generates a new code area management information table and data area management information table (step S0614).
- the program management information table T0410 and the code area management information table are updated (step S0615).
- the unauthorized operation prevention control unit 0106 Upon updating the program management information table T0410, the unauthorized operation prevention control unit 0106 adds a program management information after generating a unique program identifier.
- the unauthorized operation prevention control unit 0106 decrypts the code encryption key and adds code area management information.
- the unauthorized operation prevention control unit 0106 generates a processing result.
- the processing result includes the program identifier generated when the management table is updated (step S0615). If the code address area is not used in the unused area (NO in step S0612) and the signature verification fails (NO in step S0613), the cause of the process failure is included in the process result.
- the processing result generated here is stored in the shared memory (step S080 8).
- unauthorized operation prevention control unit 0106 transfers control to security kernel 0401 (step S0816).
- the security kernel 0401, the state switching unit 0208, and the program X interrupt management unit execute the state switching operation B to switch from the protection mode to the normal mode (step S0809).
- program X is OS0104 as described above.
- the security kernel 0401 requests the state switching circuit 0208 to switch the state by outputting a state signal C0218 indicating the normal mode (step S 1710).
- the state switching circuit 0208 stores the CPU context in the protected memory 0206 (step S0817).
- the access restriction circuit 0207 receives the status signal C0218 and blocks access from the bus 0210 to the protection memory 0206.
- the shut-off state indicates a state where the protected memory 0206 cannot be accessed from the bus 0210.
- the state switching circuit 0208 controls the state signal B0217 and changes the setting of the key register 0205 (step S 1713).
- the key register 0205 prevents the command key information table 0305 and the data key information table 0306 from being changed by using the setting signal 0304 notified via the bus 0210.
- the state switching circuit 0208 clears the CPU internal state (step S1714).
- the state switching circuit 0208 changes the setting of the vector table 0219 (step S1715).
- the state switching circuit 0208 sets the CPU 0201 to execute the handler included in the program X interrupt management unit when an interrupt or exception occurs.
- the vector table 0219 is set to execute the handler included in each interrupt management unit.
- the interrupt control unit 0106 can instruct the state switching circuit 0208 which interrupt management unit is set to execute a handler.
- the state switching circuit 0208 controls the state signal A0211 to enable the debugger IZF0209 (step S 1716).
- the state switching circuit 0208 restores the context of the program X (step S1 717), and then the state switching circuit 0208 transfers control to the program X interrupt management unit (step S1718), and the program protection device 0101 Enters the normal mode, and state switching operation B ends.
- the interrupt management unit for program X acquires the processing result from the shared memory (step S0811).
- the program X interrupt management unit stores the processing result in the data area managed by the program X (step S0812), and then returns from the software interrupt (step S0813).
- Step S2041 in FIG. 21 is a process in which program A requests the illegal operation prevention control unit 0106 to set protection of the memory area to be used.
- program X is assumed to be program A0102.
- the program X writes a data area protection setting request including a data address and security requirements to a shared memory that is a data area on the RAM 0202 specified in advance for the program itself.
- the data address includes a head address and a tail address of a memory area that the program X desires to use as a data area.
- the security requirement is a protection attribute that the program X desires to set for the data stored at the data address, and has the same data structure as the security requirement list 0109.
- the security requirement is 5-bit data, and whether or not to execute a file output function, a copy function, a move function, a special reproduction function, and a digital output function is assigned to each bit.
- the security requirement may be a security requirement list 0109.
- step S0802 the unauthorized operation prevention control unit 0106 obtains the data area protection setting request.
- Steps S0803 to S0806 are similar to the program registration process.
- step S0600 of FIG. 10 which is a detail of step S0807, the unauthorized operation prevention control unit 0106 determines that the processing request is a data area protection setting request (protection of step S0600), and step S0602 Migrate to
- the unauthorized operation prevention control unit 0106 includes the data address strength included in the data area protection setting request and the security requirement management information in the security requirement management information table T0310. (Step S0602), if it is not registered, it is determined that it is an unused area, and if it is registered, it is determined that it is not an unused area.
- step S0602 If it is an unused area (YES in step S0602), the security requirement management information table T0310 and the data area management information table group 0501 are updated (step SO 603).
- the unauthorized operation prevention control unit 0106 adds a new security that uses the start address and the end address as data addresses in the data area management information table corresponding to the request source program. Add requirements management information.
- the unauthorized operation prevention control unit 0106 generates and registers a random value for the data encryption key in the new security requirement management information.
- the unauthorized operation prevention control unit 0106 sets the updated information in the data area management information table in the unauthorized operation prevention circuit 0105 (step S0604).
- the unauthorized operation prevention control unit 0106 performs an unauthorized operation on the set of the data address of the new security requirement management information and the data encryption key as the setting of the updated information in the unauthorized operation prevention circuit 0105. This is added to the data key information table 0306 of the prevention circuit 0105.
- step S0602 if the received data address area has already been secured by another program (NO in step S0602), the unauthorized operation prevention control unit 0106 updates the management table (step S0603). ), And the process of changing the data area setting (step S0604) is not performed, and the process proceeds to step S0808.
- the unauthorized operation prevention control unit 0106 stores the processing result in the shared memory (step S0808).
- the processing result includes error factors such as normal termination, data address area reserved by another program, and V.
- the subsequent processing is the same as the program registration processing described above.
- step S2051 in FIG. 21 program A responds to the unauthorized operation prevention control unit 0106. And a process for requesting the sharing setting of the memory area to be used.
- the program X is the program AO 102.
- the program X writes the data area sharing setting request including the data address and the security requirement and the signature AO 115 to the shared memory that is the data area on the RAM 0202 that is designated in advance for the program itself.
- the data address includes a head address and a tail address of a memory area that the program X desires to share as a data area, and the security requirement includes information on a function flag AO 111 of the file A0212.
- the signature A0115 is used by the unauthorized operation prevention control unit 0106 to confirm the validity of the function flag A0111.
- the unauthorized operation prevention control unit 0106 acquires the data area sharing setting request.
- Steps S0803 to S0806 are the same as those in the program registration process.
- step S0600 in FIG. 10 which is the details of step S0807, it is determined that the processing request is a data area sharing setting request (sharing in step S0600).
- step S0802 the unauthorized operation prevention control unit 0106 obtains the data area sharing setting request from the shared memory on the RAM 0202.
- step S0632 the data address included in the data area sharing setting request is obtained.
- the security requirement management information table determines whether it is registered as security requirement management information in T0310. If it is registered (YES in step S0632), the unauthorized operation prevention control unit 0106 stores the data area. The validity of the sharing setting request is determined (step S0633).
- step S0633 If it is determined to be valid (YES in step S0633), the unauthorized operation prevention control unit 0106 reads the security requirement management information table T0310 and the data area for the requesting program.
- the area management information table is updated (step S0634).
- the unauthorized operation prevention control unit 0106 specifically adds the identifier of the program requesting sharing to the shared program identifier of the security requirement management information corresponding to the target data area.
- the identifier stored in the current program management table 0503 is used as the identifier of the requesting program.
- the security requirement management corresponding to the data area to which the requesting program specifies the security requirements specified add as information security requirements.
- the security requirement specified by the requesting program is stricter than the existing security requirement, because the security requirement has the same data structure as security requirement list 0109. , When security requirements are higher than existing ones. Further, in updating the data area management information table, the unauthorized operation prevention control unit 0106 adds the data area management information to the data area management information table for the request source program.
- the requested address area is set as the data address of the data area management information to be added, and the encryption key used for encryption / decryption of the data area to be shared is set as the data encryption key. Set.
- the unauthorized operation prevention control unit 0106 changes the data protection setting (step S06 35).
- the unauthorized operation prevention control unit 0106 reflects the updated contents of the data area management information table updated in step S0634 in the unauthorized operation prevention circuit 0105, and generates a processing result indicating normal termination.
- step S0632 determines whether it is registered (NO in step S063 2) and if the setting is not valid (NO in step S0633).
- the unauthorized operation prevention control unit 0106 performs processing indicating an error. Generate results.
- the unauthorized operation prevention control unit 0106 stores the generated processing result in the shared memory ( Step S0808).
- the processing result includes error factors such as normal termination, data address area reserved by another program, and V.
- the subsequent processing is the same as the program registration processing described above.
- Step S2061 in FIG. 21 is a process for requesting the program A0102 force unauthorized operation prevention control unit 010 6 to switch the current program and for the request.
- program X is program A0102, and it is requested to switch to program B0103.
- program X wishes to transmit to a shared memory, which is a data area in RAM0202 designated in advance for its own program, to the switching request including the identifier of the program to be switched and to the program to be switched.
- a shared memory which is a data area in RAM0202 designated in advance for its own program, to the switching request including the identifier of the program to be switched and to the program to be switched.
- step S0802 the interrupt management unit for program X acquires the program switching request.
- Steps S0803 to S0806 are similar to the program registration process.
- step S0600 of FIG. 10 which is the details of step S0807, the processing request is
- the program switching request is determined (switching of step S0600).
- step S0802 the unauthorized operation prevention control unit 0106 acquires the switching request from the RAM 0202, and further acquires argument data (step S0621).
- the argument data is information transmitted to the program power of the switching source and the program of the switching destination, and includes commands and the like.
- the unauthorized operation prevention control unit 0106 stores the acquired argument data in the protected memory 0206.
- the storage position of the argument data in the RAM 0202 is determined in advance, and the unauthorized operation prevention control unit 0106 knows in advance.
- the position of the argument data need not be fixed, but may be included in the switching request.
- the unauthorized operation prevention control unit 0106 updates the current program management table (step S0622).
- the unauthorized operation prevention control unit 0106 changes the setting of the unauthorized operation prevention circuit 0105 (step S0623).
- the unauthorized operation prevention control unit 0106 erases the contents of the instruction key information table and the data key information table stored in the key register 0205, and is included in the data area management information table group 0501. Write the data address and data encryption key pair stored in each data area management information in the data area management information table corresponding to the switching destination program to the data key table of the unauthorized operation prevention circuit 0105. .
- the unauthorized operation prevention control unit 0106 stores the argument data stored in advance in the protection memory 0206 in the RAM 0202 managed by the switching destination program (step S0624).
- the unauthorized operation prevention control unit 0106 generates a processing result including a branch instruction to the switching destination program, and stores the processing result in the shared memory (step S0808).
- the unauthorized operation prevention control unit 0106 can pass the argument data to another program via the protected memory.
- the illegal operation prevention control unit 0106 when requested to transfer data from a program including OS0104 to another program, the data leaks to a program other than the request source program and the request destination program. In this way, it is possible to perform delivery.
- the program A0102 After decrypting the content that is the protection target data 0108, the program A0102 sends the decrypted content to the program B in a predetermined data area to request the reproduction of the decrypted content.
- a processing request including argument data is written, a software interrupt is generated to switch to program B0103, and control is transferred to program A interrupt management unit 0402 (step S0901).
- Program A interrupt management unit 0402 obtains the argument data from the data area, and confirms that the interrupt type is a software interrupt for switching to program B0103 (step S0902). .
- the program A interrupt management unit 0402 stores a request for switching to the program B0103 and argument data in the shared memory (step S0903).
- program A interrupt management unit 0402, state switching circuit 0208, and security kernel 0401 execute state switching operation A described above to switch from the normal mode to the protection mode (step S0905).
- step S0905 the security kernel 0401 that has become the controlling entity transfers control to the unauthorized operation prevention control unit 0106 (step S0907).
- the unauthorized operation prevention control unit 0106 acquires the request and the argument data stored in Step S0903 from the shared memory (Step S0908).
- the unauthorized operation prevention control unit 0106 determines that the program switching process is necessary because the request is a switching request to the program B0103, and performs the above-described program switching process 0602. (S0909). [0133] The unauthorized operation prevention control unit 0106 stores the result of the switching process in the shared memory (step S0910).
- the unauthorized operation prevention control unit 0106 transfers control to the security kernel (step S09l).
- the security kernel 0401, the state switching circuit 0208, and the OS interrupt management unit 0404 execute the state switching operation B described above to switch from the protection mode to the normal mode (step S0913). Since switching of programs requires processing of the operating system, control is transferred to the OS interrupt management unit 0404 after returning to the normal mode.
- the OS interrupt management unit 0404 acquires the processing result from the shared memory (step S 0915), and transfers control to the OS 0104 (step S0916).
- OS0104 performs switching processing from program A0102 to program B0103 (step S0917).
- OS0104 performs processing such as program context switching.
- the OS 0104 transfers control to the OS interrupt management unit 0404 in order to request the unauthorized operation prevention control unit 0106 to switch to the program B 0103 (step S0918).
- the OS interrupt management unit 0404 stores the request for switching to the program B0103 in the shared memory (step S0919).
- steps S0921 to S0929 are the same processes as steps S0905 to S0913, and thus the description thereof is omitted.
- the program B interrupt management unit 0403 acquires a processing result from the shared memory (step S0931).
- the program B interrupt management unit 0403 stores the processing result in the data area managed by the program B0103 (step S0932), and then returns from the software interrupt (step S0933).
- FIG. 16 shows the state of the RAM 0202 during operation of the program protection device 0101.
- the codes of the program A0102, the program B0103, the program C0107, and the OS0104 are encrypted by the code encryption keys KC—A, KC—B, KC—C, and KC—OS and stored in the nonvolatile memory 0203, respectively.
- BIOS 0405 stored in the nonvolatile memory 0203 loads the final A0212, the final B0 213, the file C0214, and the file OS0215 into the RAM0202.
- the code area 1201 of program A0102 (including constants) is loaded at address 1000 and address 1100.
- program B0103, program C0107, and OS0104 are loaded at addresses 2000 to 2100, 3000 to 3100, and 4000 to 4100, respectively.
- protection target data 0108 stored in the storage medium 0216 is loaded into the protection target data area 1210 at addresses 8000-9000.
- protection target data 0108 may be loaded by other programs that need not be loaded by the BIOS 0405.
- BIOS 0405 makes a program registration request to the unauthorized operation prevention control unit 0106.
- the unauthorized operation prevention control unit 0106 registers each program according to the program registration process 0601.
- the management table 0110 includes the data area management information table T0500, ⁇ 0600, ⁇ 0700, ⁇ 0800, the code area management information table TO 900, T1000, ⁇ 1100, ⁇ 1200, and program management information.
- Table Tl 300 and security requirement management information table T1400 are generated.
- BIOS0405 is program A0102, program B0103, program CO
- BIOS 0405 registers only OS0104, it can register OS0104 power program A0102, program B0103, and program C0107.
- Program management information T1301 to T1304 is added to the program management information table T1300 by updating the management table of the program registration process 0601 (step S0615).
- the function flags 0113 and 0114 of the programs 0107 and 030104 have the file output function
- the function flags of the program management information T1303 and T1304 have the file output function.
- the code area management information T0901 and 2090 2 are the best for the program ⁇ ⁇ ⁇ code area management information table ⁇ 0900! ]
- “A—CO” is set as the code area identifier, “1000 to 1099” as the code address, and “KC_A” as the code encryption key.
- the unauthorized operation prevention control unit 0106 decrypts the code code key 0710 stored in the file A0212 with the secret key.
- code area management information T0902 “undefined area” is set as the code area identifier, “non-defined area” is set as the code address, and “KC_RA” is set as the code encryption key.
- non-defined area means a code area other than the code address area defined in the code area management information other than the code area management information T0902 registered in the code area management information table T0900 for program A This means an area, and KC_RA is used as the code encryption key in this area.
- KC-RA is a random value generated by the unauthorized operation prevention control unit 0106.
- Other codes and area management ⁇ Blueprint tape tapes T1000, T1100, T1200 Figure 16 [As shown] Is set.
- FIG. 15 is a flowchart showing the operation of the program protection device 0101.
- the program A0102 requests the illegal operation prevention control unit 0106 to set data protection in order to make the data area 1202 of the program A usable (step S1101).
- program A0102 assigns the data area from 1500 to 1599 to program AO.
- Program A0102 performs the same operation as step S0801 to step S0813, and sets data protection.
- data area management information T0501 is added to the program A data area management information table T0500, and security requirement management information T1401 is added to the security requirement management information table T1400.
- the unauthorized operation prevention control unit 0106 performs the data area protection setting process 0603.
- the data encryption key KD-A1 of the data area management information T0501 is a random value generated by the unauthorized operation prevention control unit.
- the program A0102 performs setting so that the data in the protection target data area 1210 can be handled (step S1102).
- the program A0102 sets the data area for the unauthorized operation prevention control unit 0106. Make a request.
- the data area setting request includes the address of the protected data area 1210 and the security requirements.
- the program A0102 instructs the unauthorized operation prevention control unit 0106 to use the security requirement list 0109 included in the protection target data 0108 as the security requirement.
- the unauthorized operation prevention control unit 0106 performs processing up to (step S0801) force (step S0813) shown in FIG.
- step S0807 the unauthorized operation prevention control unit 0106 performs the same process as the data area protection setting process 0603.
- step S0602 After the process of checking whether it is an unused area (step S0602), whether the function flag of program A satisfies the security requirement described in the security requirement list 0109 of the protected data 0108 shown in the flowchart of FIG. A process for confirming this is added.
- the unauthorized operation prevention control unit 0 106 first confirms the validity of the security requirement list (step S1801).
- step S1801 If it is determined that the security requirement list is not valid (NO in step S1801), the unauthorized operation prevention control process ends.
- the unauthorized operation prevention control unit 0106 confirms the validity of the security requirement list 0109 using the signature data 0708.
- the unauthorized operation prevention control unit 0106 compares the security requirement with the function flag (step S 1802).
- the unauthorized operation prevention control unit 0106 compares the security requirement list 01 09 whose validity has been confirmed with the function flag of the program A included in the program management information T1301, and checks whether the security requirements are satisfied.
- Security requirement management information table Check whether or not the security requirements of the security requirement management information for which the generated program included in T1400 is program A satisfies the security requirement list 0109. Confirm.
- step SI 802 If it is determined that the security requirements are not satisfied (NO in step SI 802), the unauthorized operation prevention control process is terminated.
- the unauthorized operation prevention control unit 0106 updates the data area management information table (Step S0603).
- the unauthorized operation prevention control unit 0106 adds the data area management information T0502 to the program A data area management information table T0500 and also adds the security requirement management information T1402 to the security requirement management information table T1400.
- the data encryption key 0702 is stored in the data encryption key of the data area management information T0502.
- the data encryption key 0702 is indicated as “KD_S”.
- the program A0102 requests the unauthorized operation prevention control unit 0106 to secure the data area from addresses 1600 to 1699 with the security requirements based on the security requirement list 0109 (step S1103).
- the security requirement list 0109 includes information indicating that the protection target data 0108 is file output prohibited.
- the unauthorized operation prevention control unit 0106 determines whether the requested security requirement is equivalent or strict to the security requirement of all data areas already generated by the program A0102. Use to confirm.
- management information is not updated. If the required security requirements are the same or strict as the security requirements of all data areas that have already been generated! /, The data area management information T0503 is stored in the data area management information table T0500 for program A. As security requirements are added Security requirement management information T1403 is added to the physical information table T1400.
- the program A0102 reads the protection target data 0108 from the protection target data area 1210, and processes the protection target data 0108 (step S1105).
- the processing result is stored in the data area 1203 of program A.
- the program A0102 performs a switching process from the program A0102 to the program B0103 (step S1106).
- step S 1106 Before the switching process (step S 1106) is executed, information on the program A code area management information table T0900 and the program A data area management information table T0500 is set in the unauthorized operation prevention control unit 0105.
- step S 1106 When the switching process (step S 1106) is executed, information on the program B code area management information table T1000 and the program B data area management information table T0600 is set in the unauthorized operation prevention control unit 0105. Is done.
- each code area management information table is stored in the instruction key information table 0305 of the key register 0205 constituting the unauthorized operation prevention control unit 0105 so that a key corresponding to the program being operated is set in the key register.
- the settings of each data area management information table are reflected in the data key information table 03 06.
- the program protection device 0101 performs the switching process from the program A0102 to the program B0103 (step S1106), and the program A0102 is loaded! Therefore, unauthorized execution of program A0102 by program B0103 can be prevented.
- code area 1201 located at addresses 1000 to 1099
- code area The code 1201 is decrypted using the code encryption key KC-RB.
- step S1106 when the program protection device 0101 performs the switching process from the program A0102 to the program B0103 (step S1106) and an interrupt or exception occurs, it is included in the program B interrupt management unit 0403 The handler is executed.
- control other than program B0103 is not deprived of control by interrupts and exceptions.
- the program B0103 requests the illegal operation prevention control unit 0106 to set data protection in order to make the data area 1205 of the program B usable (step S1107).
- the program B0103 requests the unauthorized operation prevention control unit 0106 to secure the data area from 2500 to 2599 in a state where only the program B0103 is accessible.
- the data area management information T0601 is added to the program B data area management information table T0600, and the security requirement management information T1404 is added to the security requirement management information table T1400.
- the program B0103 performs data protection setting in order to share the data area 1203 with the program A (step S 1108).
- the program B0103 requests the unauthorized operation prevention control unit 0106 to secure the data area 1203 from addresses 1600 to 1699 with security requirements indicating that output to the file is impossible.
- the data area 1203 is already secured by the program A0102, the data area is shared.
- the program protection device 0101 performs the same processing as steps S0801 to S0813 shown in FIG.
- the unauthorized operation prevention control unit 0106 performs the data area sharing setting process 0604 shown in FIG.
- the unauthorized operation prevention control unit 0106 checks whether or not the requested data area exists in the security requirement management information table T1400 (step S0632).
- the unauthorized operation prevention control unit 0106 can confirm the presence of the security requirement management information T1403.
- the unauthorized operation prevention control unit 0106 confirms whether or not the function flag included in the program management information T1302 of program B satisfies the security requirement included in the security requirement management information T1403 of the requested data area.
- the security requirement of the data area 1203 to be shared cannot be output to a file, whereas the function flag of the program B0103 cannot be output to a file, so it is determined to be appropriate.
- the identifier of program B is set as the shared program identifier included in the security requirement management information T1403.
- step S0634 the management table is updated (step S0634), and the data area management information T0602 is added to the program B data area management information table T0600.
- step S0635 the data protection setting is changed (step S0635), and the setting of the key register 0205 is changed.
- the program A data area 1203 can be referenced from the program B0103.
- program B0103 performs processing using the data in data area 1203 (step S1109).
- the program protection device 0101 performs a process for switching the program B force to C (step S1110).
- the program C0107 requests the unauthorized operation prevention control unit 0106 to set data protection in order to make the data area 1207 of the program C usable (step S1111).
- the program C0107 requests the unauthorized operation prevention control unit 0106 to secure the data area from addresses 3500 to 3599 in a state where only the program C can be accessed.
- data area management information T0701 is added to the data area management information table T0700 for program C
- security requirement management information T1405 is added to the security requirement management information table T1400.
- program C0107 performs data protection setting in order to share data area 1203 with program A0102 (step S1112).
- the program C0107 requests the unauthorized operation prevention control unit 0106 to secure the data area 1203 from addresses 1600 to 1699 with security requirements indicating that output to the file is possible.
- step S1108 Similar to the setting of the shared memory (step S1108), the unauthorized operation prevention control unit 0106 performs the data area sharing setting process 0604.
- the shared memory setting (step S1112) is different from the shared memory setting (step S1108), and the shared memory setting fails.
- the unauthorized operation prevention control unit 0106 checks whether the security requirement of the security requirement management information T1403 is satisfied by the function flag of the program management information T1303.
- the unauthorized operation prevention control unit 0106 determines that the program does not satisfy the security requirement of the data area 1203 (NO in step S0633), The unauthorized operation prevention control unit 0106 ends the unauthorized operation prevention control process.
- the code encryption key such as the code encryption key 0710 is encrypted with the public key encryption algorithm.
- the present invention is not limited to this.
- Each code encryption key may be encrypted by a common key encryption method.
- the common key used for encryption is held by the unauthorized operation prevention control unit 0106.
- the program does not necessarily need to be encrypted.
- the code encryption key 0710 is a null key. Further, the code encryption key 0710 can include algorithm information used when encrypting the code 0711 of the program A.
- the data encryption key 0702 may be encrypted by the common key encryption method.
- the common key used for encryption is the unauthorized operation prevention control unit 01. 06 hold.
- the data encryption key 0702 is a null key.
- the data encryption key 0702 can include algorithm information used when the data 0701 is encrypted.
- the power of restricting access to the RAM0202 using the unauthorized operation prevention circuit 0105 is not limited to this.
- an unauthorized operation prevention circuit 2105 may be used in place of the unauthorized operation prevention circuit 0105.
- the unauthorized operation prevention circuit 2105 restricts access to the RAM 0202 using the program ID instead of performing encryption and decryption on the code and data stored in the RAM 0202.
- the unauthorized operation prevention circuit 2105 includes an ID register 2205 instead of the key register, and includes a bus connection permission circuit 2204 instead of the bus signal circuit.
- the ID register 2205 includes an instruction ID information table 2305 indicating the correspondence between the address and the instruction bus connection ID, and a data HD information table indicating the correspondence between the address and the data bus connection ID. 2306 and is added from the bus connection permission circuit 2204.
- the response signal 2301 is acquired, and the instruction bus connection ID 2302 and the data bus connection ID 2303 associated with the address indicated by the address signal 2301 are output to the bus connection permission circuit 2204.
- the instruction HD information table 2305 includes instruction HD information T2311, T2312, T231 3... For each instruction.
- the data HD information table 2306 includes data HD information T2321, ⁇ 2322, ⁇ 2 323, etc., and each data HD information indicates the correspondence between the address and the data bus connection ID. It is shown.
- the contents of the management table 0110 managed by the unauthorized operation prevention control unit 0106 are related to IDs to be set in the unauthorized operation prevention circuit 2105 instead of those described in the above embodiment. Information.
- the setting of the ID register 2205 can be changed using the setting signal 2304 notified by the bus 0210 only when the status signal B output from the status switching circuit 0208 indicates the protection mode.
- the RAM 0202 is a memory device connected to the bus connection permission circuit 2204.
- the bus connection permission circuit 2204 compares the data bus connection ID and code nose connection ID notified from the ID register 2205 with the IDs unique to the currently operating program. Allows access to the indicated memory area.
- the unique ID of the currently running program is the unique ID of the current program set in the current program management table T0503.
- the bus connection permission circuit 2204 detects whether a program running on the CPU 0201 accesses the RAM0202 for the instruction fetch! /, Or accesses for the data access!
- the instruction bus connection ID is used for instruction fetch to a physical address
- the data bus connection ID is used for data access.
- information management such as code area, data area, security requirement, program management information, memory sharing, and execution unit switching are performed in units of programs.
- the present invention is not limited to this, and may be performed for each other unit such as a process or a thread.
- the processes and threads that operate cooperatively in the normal mode and the protected mode may be different processes or threads of the same program that are not included in the processes and threads included in different programs.
- Each of the above devices is specifically a computer system that also includes power, such as a microprocessor, ROM, RAM, hard disk unit, display unit, keyboard, and mouse.
- a computer program is stored in the RAM or the hard disk unit.
- Microprocessor power Each device achieves its functions by operating according to the computer program.
- the computer program is configured by combining a plurality of instruction codes indicating commands to the computer in order to achieve a predetermined function.
- System LSI Large Scale Integration
- System LSI is an ultra-multifunctional LSI that is manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. It is. A computer program is stored in the RAM. Microprocessor power The system LSI achieves its functions by operating according to the computer program. These may be individually arranged on one chip, or may be integrated into one chip to include some or all of them.
- IC integrated circuit
- system LSI system LSI
- super LSI super LSI
- non-linear LSI depending on the difference in the degree of power integration.
- the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. 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
- each of the above devices may be configured as an IC card or a single module force that can be attached to and detached from each device.
- the IC card or the module is a computer system including a microprocessor, ROM, RAM, and the like.
- the IC card or the module may include the super multifunctional LSI described above.
- the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or module may be tamper resistant! /.
- 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 also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray). Disc), semiconductor memory, etc. may be recorded. 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 represented by the Internet, a data broadcast, 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 data processing device corresponds to the program protection device 0101.
- the detection means corresponds to the CPU 0201 and the state switching unit 0208.
- the access means corresponds to the unauthorized operation prevention control circuit 0105, the RAM 0202, the protection memory 0206, and the access restriction circuit 0207.
- the switching means corresponds to the state switching unit 0208.
- the determination means corresponds to the unauthorized operation prevention control unit 0106.
- the control means corresponds to the unauthorized operation prevention control unit 0106 and the security kernel 0401.
- the memory corresponds to RAM0202.
- the holding unit corresponds to the key register 0205.
- the access restriction unit corresponds to the unauthorized operation prevention control unit 0106, the security kernel 0401, the unauthorized operation prevention control circuit 0105, the RAM 0202, the protection memory 0206, and the access restriction circuit 0207.
- the acquisition unit in the access restriction unit corresponds to the RAM 0202, the unauthorized operation prevention circuit 02 05, the security kernel 0401, and the unauthorized operation prevention control unit 0106.
- the address determination unit corresponds to the key register 0205 and the bus encryption circuit 0204.
- the access execution unit corresponds to the bus encryption circuit 0204.
- the management information adding unit corresponds to the unauthorized operation prevention control unit 0106.
- the vector table holding means corresponds to the nonvolatile memory 221.
- the vector table rewriting means corresponds to the unauthorized operation prevention control unit 0106.
- the use request receiving unit corresponds to the bus encryption circuit 0204.
- the use determination unit corresponds to the bus encryption circuit 0204.
- the authority determination unit corresponds to the unauthorized operation prevention control unit 0106.
- the management information registration unit corresponds to the unauthorized operation prevention control unit 0106.
- the debugging means corresponds to the debugger IZF0209.
- the forced invalidation means corresponds to the CPU 0201.
- the program protection device of the present invention is used as a digital home appliance that can be updated to add a function or correct a defect. Produced, used and sold.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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 |
---|---|---|---|
JP2007517924A JP4886682B2 (ja) | 2005-05-26 | 2006-05-26 | データ処理装置 |
US11/914,525 US7874009B2 (en) | 2005-05-26 | 2006-05-26 | Data processing device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005-153478 | 2005-05-26 | ||
JP2005153478 | 2005-05-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006126686A1 true WO2006126686A1 (ja) | 2006-11-30 |
Family
ID=37452108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/310584 WO2006126686A1 (ja) | 2005-05-26 | 2006-05-26 | データ処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7874009B2 (ja) |
JP (1) | JP4886682B2 (ja) |
CN (1) | CN101233525A (ja) |
WO (1) | WO2006126686A1 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008114560A1 (ja) * | 2007-02-21 | 2008-09-25 | Nec Corporation | コンピュータ、動作ルール適用方法、オペレーティングシステム |
JP2009163738A (ja) * | 2008-01-02 | 2009-07-23 | Arm Ltd | 非安全アプリケーションへの安全サービスの提供 |
JP2009278491A (ja) * | 2008-05-16 | 2009-11-26 | Casio Comput Co Ltd | マイクロプロセッサ及びマイクロプロセッサ応用装置 |
US20100174919A1 (en) * | 2009-01-08 | 2010-07-08 | Takayuki Ito | Program execution apparatus, control method, control program, and integrated circuit |
JP2012186553A (ja) * | 2011-03-03 | 2012-09-27 | Toshiba Corp | 通信装置および通信方法 |
CN102763092A (zh) * | 2010-02-16 | 2012-10-31 | Arm有限公司 | 根据硬件模式和安全标志限制用于指令读取的存储器区域 |
WO2012169111A1 (ja) * | 2011-06-06 | 2012-12-13 | パナソニック株式会社 | コンテンツデータ再生方法、およびサムネイル画像生成方法 |
US8775824B2 (en) | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US9286242B2 (en) | 2013-09-17 | 2016-03-15 | Kabushiki Kaisha Toshiba | Information processing apparatus and program execution method |
JP2016139211A (ja) * | 2015-01-26 | 2016-08-04 | Kddi株式会社 | ソフトウェア更新装置、方法及びプログラム |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101425621B1 (ko) * | 2008-01-15 | 2014-07-31 | 삼성전자주식회사 | 컨텐츠를 안전하게 공유하는 방법 및 시스템 |
US8484486B2 (en) * | 2008-08-06 | 2013-07-09 | Silver Spring Networks, Inc. | Integrated cryptographic security module for a network node |
JP5272751B2 (ja) * | 2009-01-26 | 2013-08-28 | 富士通セミコンダクター株式会社 | プロセッサ |
US20110167496A1 (en) * | 2009-07-07 | 2011-07-07 | Kuity Corp. | Enhanced hardware command filter matrix integrated circuit |
KR101601790B1 (ko) * | 2009-09-22 | 2016-03-21 | 삼성전자주식회사 | 암호키 선택장치를 구비하는 스토리지 시스템 및 암호 키 선택방법 |
US9076020B2 (en) * | 2011-05-13 | 2015-07-07 | Microsoft Technology Licensing, Llc | Protected mode for mobile communication and other devices |
US9798873B2 (en) | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US9098608B2 (en) | 2011-10-28 | 2015-08-04 | Elwha Llc | Processor configured to allocate resources using an entitlement vector |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US9575903B2 (en) * | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US9298918B2 (en) | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US9170843B2 (en) | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US9558034B2 (en) | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US9772875B2 (en) * | 2011-11-29 | 2017-09-26 | Dell Products L.P. | Multiple framework level modes |
KR20140105343A (ko) * | 2013-02-22 | 2014-09-01 | 삼성전자주식회사 | 디바이스 및 디바이스에서 복수의 모드를 이용한 데이터의 보안 방법 |
EP2808818B1 (en) * | 2013-05-29 | 2016-07-13 | Nxp B.V. | Processing system |
WO2015016824A1 (en) * | 2013-07-30 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Resource management based on a process identifier |
DE102015110729A1 (de) * | 2014-07-21 | 2016-01-21 | Dspace Digital Signal Processing And Control Engineering Gmbh | Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle |
JP2016139322A (ja) * | 2015-01-28 | 2016-08-04 | 株式会社リコー | 画像処理装置及びそれを備えた電子黒板 |
WO2017019061A1 (en) * | 2015-07-29 | 2017-02-02 | Hewlett Packard Enterprise Development Lp | Firewall to determine access to a portion of memory |
US10339333B2 (en) * | 2016-07-20 | 2019-07-02 | Montage Technology Co., Ltd. | Method and apparatus for controlling application to access memory |
US10649678B2 (en) * | 2017-01-13 | 2020-05-12 | Arm Limited | Partitioning of memory system resources or performance monitoring |
JP2019133345A (ja) * | 2018-01-30 | 2019-08-08 | 東芝メモリ株式会社 | データ蓄積装置、データ処理システムおよびデータ処理方法 |
KR102287758B1 (ko) * | 2018-03-05 | 2021-08-09 | 삼성전자주식회사 | 부채널 공격으로부터 캐시를 보호하는 시스템 |
KR20200021815A (ko) * | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
CN111968693B (zh) * | 2020-08-21 | 2022-08-05 | 广芯微电子(广州)股份有限公司 | 一种mcu及mcu调试接口控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337864A (ja) * | 2000-03-22 | 2001-12-07 | Hitachi Ltd | アクセス制御システム |
JP2002202720A (ja) * | 2000-12-28 | 2002-07-19 | Toshiba Corp | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
JP2004199693A (ja) * | 2002-01-16 | 2004-07-15 | Texas Instruments Inc | 高度機能電話または携帯情報端末用機密保護モード指示器 |
JP2004288155A (ja) * | 2002-11-18 | 2004-10-14 | Arm Ltd | メモリへのアクセスを管理するための装置および方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02155034A (ja) | 1988-12-08 | 1990-06-14 | Toshiba Corp | セキュリティ機能付き計算機 |
JPH04102920A (ja) | 1990-08-22 | 1992-04-03 | Nec Corp | 情報処理装置 |
DE69925087T2 (de) * | 1998-09-22 | 2006-02-02 | Matsushita Electric Industrial Co., Ltd., Kadoma | Optische Platte, Verfahren zur Wiedergabe zusätzlicher Daten aus einer optischen Platte, Wiedergabegerät für optische Platte sowie Aufzeichnungs- und Wiedergabegerät für optische Platte |
US7096268B1 (en) * | 1999-09-01 | 2006-08-22 | Matsushita Electric Industrial Co., Ltd. | Copyrighted data processing method and apparatus |
US6983374B2 (en) | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
JP4226760B2 (ja) | 2000-05-08 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 |
US7035850B2 (en) | 2000-03-22 | 2006-04-25 | Hitachi, Ltd. | Access control system |
EP1331539B1 (en) | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
JP4102920B2 (ja) | 2002-07-25 | 2008-06-18 | カシオ計算機株式会社 | 情報提供装置およびプログラム |
US7231476B2 (en) | 2002-11-18 | 2007-06-12 | Arm Limited | Function control for a processor |
GB2396451B (en) | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
DE60306952T2 (de) | 2002-11-18 | 2007-02-08 | Arm Ltd., Cherry Hinton | Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich |
US7370210B2 (en) | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
GB2411254B (en) | 2002-11-18 | 2006-06-28 | Advanced Risc Mach Ltd | Monitoring control for multi-domain processors |
GB2395583B (en) | 2002-11-18 | 2005-11-30 | Advanced Risc Mach Ltd | Diagnostic data capture control for multi-domain processors |
US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7117284B2 (en) | 2002-11-18 | 2006-10-03 | Arm Limited | Vectored interrupt control within a system having a secure domain and a non-secure domain |
GB2396712B (en) | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Handling multiple interrupts in a data processing system utilising multiple operating systems |
EP1563388A2 (en) | 2002-11-18 | 2005-08-17 | ARM Limited | Secure memory for protecting against malicious programs |
EP1563376B1 (en) | 2002-11-18 | 2006-04-12 | ARM Limited | Exception types within a secure processing system |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
GB2402785B (en) | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Processor switching between secure and non-secure modes |
US7383587B2 (en) | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
GB2396713B (en) | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
WO2004046925A1 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Security mode switching via an exception vector |
US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US7539853B2 (en) | 2002-11-18 | 2009-05-26 | Arm Limited | Handling interrupts in data processing of data in which only a portion of a function has been processed |
-
2006
- 2006-05-26 US US11/914,525 patent/US7874009B2/en active Active
- 2006-05-26 WO PCT/JP2006/310584 patent/WO2006126686A1/ja active Application Filing
- 2006-05-26 JP JP2007517924A patent/JP4886682B2/ja not_active Expired - Fee Related
- 2006-05-26 CN CN200680027404.3A patent/CN101233525A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337864A (ja) * | 2000-03-22 | 2001-12-07 | Hitachi Ltd | アクセス制御システム |
JP2002202720A (ja) * | 2000-12-28 | 2002-07-19 | Toshiba Corp | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
JP2004199693A (ja) * | 2002-01-16 | 2004-07-15 | Texas Instruments Inc | 高度機能電話または携帯情報端末用機密保護モード指示器 |
JP2004288155A (ja) * | 2002-11-18 | 2004-10-14 | Arm Ltd | メモリへのアクセスを管理するための装置および方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008114560A1 (ja) * | 2007-02-21 | 2008-09-25 | Nec Corporation | コンピュータ、動作ルール適用方法、オペレーティングシステム |
JP5131563B2 (ja) * | 2007-02-21 | 2013-01-30 | 日本電気株式会社 | コンピュータ、動作ルール適用方法、オペレーティングシステム |
US8332660B2 (en) | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
JP2009163738A (ja) * | 2008-01-02 | 2009-07-23 | Arm Ltd | 非安全アプリケーションへの安全サービスの提供 |
US8775824B2 (en) | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
JP2009278491A (ja) * | 2008-05-16 | 2009-11-26 | Casio Comput Co Ltd | マイクロプロセッサ及びマイクロプロセッサ応用装置 |
US20100174919A1 (en) * | 2009-01-08 | 2010-07-08 | Takayuki Ito | Program execution apparatus, control method, control program, and integrated circuit |
US8555089B2 (en) * | 2009-01-08 | 2013-10-08 | Panasonic Corporation | Program execution apparatus, control method, control program, and integrated circuit |
JP2010182296A (ja) * | 2009-01-08 | 2010-08-19 | Panasonic Corp | プログラム実行装置、制御方法、制御プログラム及び集積回路 |
CN102763092A (zh) * | 2010-02-16 | 2012-10-31 | Arm有限公司 | 根据硬件模式和安全标志限制用于指令读取的存储器区域 |
JP2012186553A (ja) * | 2011-03-03 | 2012-09-27 | Toshiba Corp | 通信装置および通信方法 |
WO2012169111A1 (ja) * | 2011-06-06 | 2012-12-13 | パナソニック株式会社 | コンテンツデータ再生方法、およびサムネイル画像生成方法 |
JPWO2012169111A1 (ja) * | 2011-06-06 | 2015-02-23 | パナソニック株式会社 | コンテンツデータ再生方法、およびサムネイル画像生成方法 |
US9286242B2 (en) | 2013-09-17 | 2016-03-15 | Kabushiki Kaisha Toshiba | Information processing apparatus and program execution method |
JP2016139211A (ja) * | 2015-01-26 | 2016-08-04 | Kddi株式会社 | ソフトウェア更新装置、方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2006126686A1 (ja) | 2008-12-25 |
US20090083520A1 (en) | 2009-03-26 |
JP4886682B2 (ja) | 2012-02-29 |
US7874009B2 (en) | 2011-01-18 |
CN101233525A (zh) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2006126686A1 (ja) | データ処理装置 | |
US7788487B2 (en) | Data processing apparatus | |
US10360411B2 (en) | Secure processing unit systems and methods | |
US8214630B2 (en) | Method and apparatus for controlling enablement of JTAG interface | |
KR100809977B1 (ko) | 집적 시스템 내에서의 보안 운영의 활성화 방법, 보안 운영의 초기화 방법, 암호화된 데이터의 변환 방법 및 집적 시스템 기능의 복원 방법 | |
US8190917B2 (en) | System and method for securely saving and restoring a context of a secure program loader | |
JP4702957B2 (ja) | 耐タンパ・トラステッド仮想マシン | |
CN103210396B (zh) | 包括用于保护敏感代码和数据的架构的方法和装置 | |
US6735696B1 (en) | Digital content protection using a secure booting method and apparatus | |
CA2333613C (en) | Method of controlling usage of software components | |
JP3881942B2 (ja) | 暗号化部を有する半導体装置 | |
WO2009107330A1 (ja) | 情報処理装置及びその制御方法 | |
US20070180271A1 (en) | Apparatus and method for providing key security in a secure processor | |
US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
US20080065907A1 (en) | System and Method for Securely Restoring a Program Context from a Shared Memory | |
WO2006129654A1 (ja) | 電子機器、更新サーバ装置、鍵更新装置 | |
JP2005527019A (ja) | マルチトークンのシール及びシール解除 | |
TWI446210B (zh) | 數位內容之保護方法、解密方法、播放器、儲存媒體及加密裝置 | |
JP4676547B2 (ja) | 半導体装置およびそのブート方法 | |
JP4580024B2 (ja) | コンテンツ再生方法 | |
KR20090000566A (ko) | 보안 영역을 제공하는 장치 및 그 방법 | |
JP2006179029A (ja) | 外部インターフェースを有する半導体装置、およびコンテンツ再生方法 | |
CA2638979A1 (en) | Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function | |
JP2010044792A (ja) | セキュアデバイス、集積回路および暗号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200680027404.3 Country of ref document: CN |
|
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: 2007517924 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11914525 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06746913 Country of ref document: EP Kind code of ref document: A1 |