WO2005052769A1 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- WO2005052769A1 WO2005052769A1 PCT/JP2004/017614 JP2004017614W WO2005052769A1 WO 2005052769 A1 WO2005052769 A1 WO 2005052769A1 JP 2004017614 W JP2004017614 W JP 2004017614W WO 2005052769 A1 WO2005052769 A1 WO 2005052769A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- secure
- normal
- data processing
- processing device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06C—DIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
- G06C1/00—Computing aids in which the computing members form at least part of the displayed result and are manipulated directly by hand, e.g. abacuses or pocket adding devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Definitions
- the present invention relates to a program executed in a secure mode in an apparatus that executes a program by switching between a secure mode in which a secure resource can be accessed and a normal mode in which only a normal resource other than the secure resource can be accessed.
- the present invention relates to a technology for operating a program and a program executed in a normal mode in a corresponding manner.
- a secure mode in which secure data that needs to be protected and a secure application that needs to be protected can be accessed, and a normal mode in which these secure data and secure application cannot be accessed.
- a data processing device that is switched and executed by a monitor.
- an application that operates in the normal mode requests a secure application via the operating system that operates in the normal mode.
- the operating system requests the monitor to switch the execution mode, and the monitor switches the execution mode.
- the secure application performs the requested processing and returns the processing result to the application via the secure operating system operating in the secure execution mode.
- the secure operating system requests the monitor to switch the execution mode, and the monitor switches the execution mode.
- Non-Patent Document 1 A New Foundation for CPU Systems Security (2003 November 20 search, URL:
- the present invention has been made in view of a serious problem, and provides a data processing device, a data processing method, a data processing program, and a recording medium that can be used in a secure mode and that can reduce memory.
- the purpose is to do.
- the present invention switches between a secure mode in which use of a protected secure resource is permitted and a normal mode in which only use of a non-protected regular resource is permitted.
- a data processing device that executes a program comprising: a normal storage unit that stores a normal program configured with at least one processing procedure that uses the normal resource; and one or more that uses the secure resource.
- a secure storage means configured to store a secure program including at least a call instruction for calling the normal program, and whether a next instruction to be executed in the secure mode is the call instruction. Determining means for determining whether the call instruction is the call instruction in the secure mode.
- An output unit for outputting identification information indicating the normal program, a switching unit for switching from the secure mode to the normal mode by protecting a secure resource when it is determined that the call instruction is provided, Receiving means for receiving the identification information; And a reading means for reading out the normal program indicated by the received identification information from the normal storage means, and a processing means operating in the normal mode according to the read normal program.
- the secure program includes the call instruction, and when the next instruction to be executed is the call instruction, the switching unit switches from the secure mode to the normal mode, In the mode, the receiving means receives the identification information, the reading means reads the normal program indicated by the received identification information from the normal storage means, and the processing means operates according to the read normal program. Therefore, by executing the call instruction, the secure program can request a normal program operating in the normal mode to perform processing. That is, by causing a normal program to execute processing without using a secure resource, the program size of the secure program itself is reduced. Further, in the secure mode, the memory used by the secure program can be reduced.
- the switching means suspends a secure operating system for controlling the secure program, and activates a normal operating system for controlling the normal program. Switch to mode.
- the switching unit activates the normal operating system after suspending the secure operating system. Therefore, while operating in the normal mode, the data processing device can completely cut off the access route to the secure resource, and can realize the secure mode and the normal mode exclusively.
- the data processing device includes a shared storage area to which access is permitted in both the secure mode and the normal mode, and the output unit stores the identification information in the secure mode in the secure mode.
- the identification information is output by writing to the storage area, and the receiving unit receives the identification information by reading the identification information from the shared storage area in the normal mode.
- the shared storage area is stored in the normal mode and the secure mode. Accessible. Therefore, the data processing device of the present invention realizes the secure mode and the normal mode exclusively, and securely exchanges information between the secure mode and the normal mode while protecting the secure resources. It can be carried out.
- the reading unit stores the identification information and position information indicating the location of the normal program in the normal storage unit in association with each other, and indicates the position by the position information corresponding to the received identification information.
- the normal position program is read out.
- the reading unit stores the identification information and the position information indicating the location of the normal program in the normal storage unit in association with each other.
- the information can be used to read the normal program reliably and quickly.
- one processing procedure constituting the normal program includes a plurality of functions constituting a library, and another processing procedure calls one of the plurality of functions, and Operates according to the function called by the other processing procedure when operating according to the other processing procedure.
- one processing procedure configuring the normal program includes a plurality of functions configuring a library, and another processing procedure calls one of the plurality of functions. Therefore, the secure program can request the normal program to perform a process using the functions constituting the library. Therefore, in the secure mode, there is no need to hold the library in the memory.
- the data processing apparatus may further include: an instruction acquisition unit that receives a write instruction indicating writing of the secure program into the secure storage unit in the secure mode; and an instruction acquisition unit that acquires the write instruction in the secure mode. And a secure load means for writing the secure program in the secure storage means and outputting write end information indicating that the writing has been completed, wherein the switching means further comprises a step for outputting the write end information. Switch from the secure mode to the normal mode, the data processing device further includes a normal load unit that receives the write completion information and writes the normal program in the normal storage unit in the normal mode.
- the instruction acquiring unit acquires the write instruction
- the write instruction indicating that the secure program is to be written to the secure storage means is provided in the secure mode when the secure mode unit is in the secure mode.
- the security program is received
- the secure program is written in the secure storage means
- the normal load means writes the normal program in the normal storage means.
- the normal program is always stored in the normal storage means, and when a call instruction including the secure program is executed, the normal program is promptly executed. You can move on to executing a normal program.
- the read unit that configures the data processing device when the normal program is written to the normal storage unit by the normal load unit, the read unit that configures the data processing device further includes the identification information and the normal storage unit. It is characterized in that it is stored in association with position information indicating the location of the normal program.
- the reading means when the normal program is written in the normal storage means, the reading means stores the identification information in association with position information indicating the location of the normal program in the normal storage means. I do. By doing so, immediately after loading the secure program, the reading means stores the identification information and the location information indicating the location of the normal program in the normal storage means in association with each other. Therefore, when the call instruction included in the secure program is executed, the normal program can be read quickly.
- the data processing device may further include: a deletion instruction obtaining unit configured to obtain a deletion instruction instructing deletion of the secure program; The secure storage means, and secure deletion means for outputting deletion end information indicating that the deletion has been completed, and the switching means further comprises: from the secure mode when the deletion end information is output.
- the data processing apparatus further includes a normal deletion unit that acquires the deletion end information in the normal mode and deletes the normal program from the normal storage unit.
- the deletion instruction acquisition unit instructs deletion of the secure program.
- the secure deletion unit deletes the secure program from the secure storage unit
- the normal deletion unit deletes the normal program from the normal storage unit.
- the normal program does not need to be loaded. This prevents the normal program from wasting a memory area used in the normal mode. be able to.
- the reading means stores the identification information and position information indicating the location of the normal program in the normal storage means in association with each other.
- the normal program is read from an existing position indicated by position information corresponding to the identification information.
- the reading unit since the reading unit stores the identification information and the position information indicating the location of the normal program in the normal storage unit in association with each other, the read unit uses the position information corresponding to the received identification information.
- the normal program can be read reliably and quickly.
- the data processing apparatus may further include a boot program including an initialization procedure for initializing one or more devices included in the data processing apparatus including the processing means and a startup procedure for activating the secure operating system. Reading the boot program from the stored boot program storage means and the boot program storage means, initializing the device in accordance with the read boot program, and starting the secure operating system after the initialization is completed. And an initialization means for starting.
- the initialization means initializes the device according to the boot program when the power is turned on, and starts the secure operating system after the initialization is completed.
- the data processing device of the present invention activates the secure operating system before activating the program executed in the normal mode.
- the data processing device may further perform processing by the processing unit.
- Normal output means for outputting a result and secure identification information indicating the secure program
- the switching means further switches from a normal mode to a secure mode when the processing result is output
- the data processing device comprises: Further, in the secure mode, the secure mode includes secure receiving means for receiving the processing result and the secure identification information, and secure reading means for reading the secure program corresponding to the received secure identification information from the normal storage means,
- the processing means is further characterized by operating in a secure mode using the processing result in accordance with the secure program.
- the normal output means outputs the processing result of the processing means and the secure identification information indicating the secure program in the normal mode
- the secure receiving means outputs the processing result and the secure result in the secure mode.
- the secure reading means reads the secure program corresponding to the received secure identification information from the normal storage means
- the processing means further uses the processing result in the secure mode. And operates according to the secure program. Therefore, in the data processing device of the present invention, the processing means executes the processing requested by the secure program executed in the secure mode in the normal mode according to the normal program, and accurately outputs the processing result to the secure program. Can be returned to
- the switching means disconnects the secure resource and the processing means when switching from the secure mode to the normal mode.
- the switching unit disconnects the secure resource from the processing unit when switching from the secure mode to the normal mode. Therefore, in the normal mode, the processing unit may access the secure resource. Can not. Therefore, the security of the secure resource can be ensured.
- the switching means encrypts the secure information held in the secure resource when switching from the secure mode to the normal mode.
- the switching unit switches the mode from the secure mode to the normal mode. Since the secure information held in the secure resource is encrypted, the processing means cannot use the secure data in the normal mode. Therefore, in the normal mode, the security of the secure data held by the secure resource can be secured.
- the security information held in the secure resource is executed in a secure mode, and includes a program including an instruction code part, a data part, and a stack part.
- the means encrypts the instruction code portion when switching from the secure mode to the normal mode. Further, the switching means is very good for encrypting the data portion when switching from the secure mode to the normal mode.
- the switching means may encrypt the stack portion when switching from the secure mode to the normal mode.
- the switching unit encrypts the instruction code portion when switching from the secure mode to the normal mode.
- the switching means encrypts the data portion when switching from the secure mode to the normal mode.
- the switching unit encrypts the stack portion when switching from the secure mode to the normal mode.
- the data processing device further includes a debug receiving unit that monitors the operation of the processing unit and receives a debug operation signal from a debug device that operates the processing unit.
- the switching unit performs the processing when switching from the secure mode to the normal mode. Means for connecting to the debug accepting means, and disconnecting the processing means and the debug accepting means when switching from the normal mode to the secure mode.
- the switching unit when the switching unit switches from the normal mode to the secure mode, the switching unit disconnects the processing unit and the debug receiving unit. Therefore, the data processing device of the present invention operates in the secure mode. Since the operation is not monitored and operated by an external debugging device, it is necessary to protect the secure resource from the debugging device. Can do.
- the reading unit stores the identification information and position information indicating the location of the normal program in the normal storage unit in association with each other, and corresponds to the received identification information.
- a configuration in which the presence position indicated by the position information also reads the normal program may be employed.
- the reading unit stores the identification information and the position information indicating the location of the normal program in the normal storage unit in association with each other.
- the information can be used to read the normal program reliably and quickly.
- the present invention switches between the first operating system and the second operating system, and executes a process by shifting a process generated in each operating system to an execution state, an execution wait state, or a sleep state of! / ⁇ .
- the data processing apparatus for managing, wherein the first operating system generates a first process in the first operating system, and the second operating system generates a second process corresponding to the first process.
- a first output unit for operating the first operating system and the second operating system.
- OS switching means for switching to a switching system, second acquisition means for acquiring the transition information in the second operating system, and second transition means for transitioning the state of the second process in accordance with the acquired transition information.
- a data processing device comprising:
- the first output unit outputs the transition information
- the OS switching unit switches the second operating system to switch the first operating system to the second operating system.
- the second transition means transitions the state of the second process according to the transition information. Therefore, in the data processing device in which two operating systems that are exclusively executed operate, the operating state of the first process controlled by the first operating system is referred to as the second process. It can also be monitored in the second operating system via the second operating system.
- the data processing device may further include, in the second operating system, a second detecting means for detecting a state transition of the second process, and a transition indicating the detected state transition in the second operating system.
- Second output means for outputting information, wherein the OS switching means further switches the second operating system to the first operating system, and the data processing device further comprises the first operating system.
- the second output means outputs the transition information in the second operating system
- the first transition means changes the state of the first process according to the transition information. Let it.
- the operation state of the second process controlled by the second operating system can be monitored also in the first operating system via the first process. Therefore, the first operating system and the second operating system can mutually monitor the operating states of the first process and the second process controlled by the first operating system and the second operating system, respectively.
- the data processing device includes an accessible shared storage area in both the first operating system and the second operating system, and the first output means stores the transition information in the shared storage area.
- the transition information is output by writing, and the second acquisition unit acquires the transition information by reading the transition information from the shared storage area.
- the first output means and the second acquisition means provide the transition information via the shared storage area accessible to both the first operating system and the second operating system. Hand over. Since the shared storage area is accessible to both the first operating system and the second operating system, the data processing device of the present invention includes the first operating system and the second operating system. The first operating system can also pass information to the second operating system while performing the operations exclusively. [0034]
- the second output means constituting the data processing device outputs the transition information by writing the transition information in the shared storage area, and the first acquisition means outputs the transition information to the shared storage area. The transition information is obtained by reading the transition information.
- the second operating system can pass information to the first operating system while executing the second operating system and the first operating system exclusively.
- the data processing device includes a device that operates under the control of the second operating system, and the second process is a device driving program that controls driving of the device.
- the second detecting means detects a state transition of the second process accompanying the operation of the device.
- the second process is a device driving program for controlling the driving of the device, and the second detecting means detects a state transition of the second process accompanying the operation of the device. I do. Accordingly, the first process also makes an invitation transition along with the state transition of the device driving program, and the first operating system can also monitor the driving state of the device.
- the data processing device when the first process transits from a hibernation state to an execution state, the data processing device performs an exclusion process that avoids duplication of a processing request to the device. It operates according to a first process, and in the first operating system, the first output means outputs the transition information after the exclusion process ends.
- such exclusive processing is performed by a device driving program that controls the driving of the device.
- the first process performs processing on the device.
- the first output means outputs the transition information.
- the second process transits to an execution state, and starts controlling the driving of the device.
- the memory space used by the first and second operating systems is required separately, especially for the second operating system. Assuming that it is necessary to protect the memory used by the oneting system from external access, the first process performs the exclusion process, so that the second process does not need to perform the exclusion process. Therefore, the memory area used by the second process for exclusive processing is reduced. For this reason, the memories that need to be protected are reduced, and the load on the protection mechanism that protects these memories from the outside can be reduced.
- the first operating system and the second operating system may further include an interrupt detection unit configured to detect an occurrence of an interrupt, and the first operating system configured to detect an interrupt.
- the interrupt investigating means for investigating the cause of the interrupt and, in the first operating system, when the interrupt investigating means determines that the interrupt is caused by the device, the first process is halted from the idle state.
- Interrupt transition means for transitioning to the execution state.
- the data processing device includes, in the second operating system, a notification unit that outputs, when an interrupt is detected, interrupt notification information indicating the detection of the interrupt
- the OS switching unit includes: The second operating system is switched to the first operating system, the first obtaining means further obtains the interrupt notification information in the first operating system, and the interrupt investigating means further comprises: In the one-operating system, when the interrupt notification information is acquired, an interrupt occurrence factor is investigated.
- the interrupt checking means checks the cause of the interrupt. Further, when an interrupt is detected in the second operating system, the notifying means outputs interrupt notification information indicating the detection of the interrupt, and in the first operating system, the interrupt checking means Investigate the factors.
- the notifying unit causes the interrupt detecting unit to stop detecting the interrupt, and the first acquiring unit outputs the interrupt notification.
- the stop is released to the interrupt detection means.
- the notifying unit when an interrupt is detected, the notifying unit causes the interrupt detecting unit to stop detecting the interrupt, and the first acquiring unit outputs the interrupt notification information. Is obtained, the stop is released to the interrupt detection means. Therefore, the interruption detecting means switches the second operating system to the first operating system until the first acquiring means acquires the interruption notification information output from the notifying means. Is not disturbed. Further, it is possible to prevent the interrupt detection means from detecting the same interrupt repeatedly before switching to the second operating system power and the first operating system.
- the present invention is the data processing device that operates in accordance with a program, wherein the data processing device stores a program configured with a plurality of processing procedures, and stores the program. It is provided with a validity judging means for judging whether the program is improper or not, and invalidating means for invalidating the program when it is judged that the program is improper. It is also a data processing device.
- the validity determining means determines whether or not the program is unauthorized, and if the invalidating means is determined to be unauthorized, the validity determining means determines whether the program is unauthorized. Because of the invalidation, execution of an unauthorized program can be prevented in the data processing device of the present invention.
- the validity determination unit may include a program information acquisition unit that acquires program identification information indicating the program stored in the storage unit, and invalidation identification information indicating an invalidated program. An invalidation information acquisition unit to be acquired, and a determination unit to determine whether or not the acquired program identification information matches the acquired invalidation identification information. Is determined to be invalid.
- the program can be easily illicitly determined depending on whether or not the program identification information acquired by the information acquisition unit and the invalidation identification information acquired by the invalidation information acquisition unit match. A certain force can be determined.
- the program information acquisition unit included in the data processing device of the present invention stores the program identification information indicating the program, and reads the program identification information from the identification information storage unit.
- the invalidation information acquiring unit stores invalidation identification information indicating an invalidated program.
- the invalidation information acquiring unit acquires the invalidation information from the invalidation information storage unit.
- a reading unit that obtains the invalidation identification information by reading it.
- the program information acquisition unit can quickly acquire the program identification information from the identification information storage unit that stores program identification information indicating the program in advance. Further, the revocation information acquisition unit stores in advance revocation identification information indicating a revoked program, and quickly acquires the revocation identification information from the revocation information storage unit. be able to.
- the validity determining means may determine whether or not the program is unauthorized based on a public key certificate that certifies the validity of a public key assigned to the program. Is determined.
- the validity determination unit makes the determination based on the public key certificate that certifies the validity of the public key assigned to the program.
- the legitimacy of the program can be determined more reliably.
- the validity determining means stores the public key certificate including public key identification information for identifying the public key, and a certificate storage unit for storing the public key certificate.
- a public key information acquisition unit that acquires the public key identification information; and a revocation information storage unit that stores revocation identification information indicating a revoked public key.
- a revocation information reading unit that reads revocation identification information from the revocation information storage unit, and a determination unit that determines whether the acquired public key identification information matches the read revocation identification information. And determining that the program is illegal when it is determined that they match.
- the determination unit stores the public key identification information included in the public key certificate stored in the certificate storage unit and the revocation information storage unit. ing By comparing with the invalidation identification information, it can be easily determined that the program is illegal.
- the validity determination unit may further include an update unit that acquires the latest invalidation identification information from the outside and writes the acquired invalidation identification information into the invalidation information storage unit.
- the updating unit acquires the latest invalidation identification information from the outside, and writes the acquired invalidation identification information to the invalidation information storage unit.
- the issuing organization of the public key certificate periodically updates the revocation identification information by adding information indicating a later revoked public key.
- the update unit acquires the latest invalidation identification information every time an access request to the storage unit is detected.
- the update unit always obtains the latest invalidation identification information every time an access request to the storage unit is detected, and thus the determination unit always uses the latest invalidation identification information to perform the update.
- the legitimacy of the program can be determined.
- the updating unit receives the revocation identification information from a CRL (Certificate Revocation List) issuing device via a network, and receives the revocation identification information from the CRL issuing device via a network and a server device. And receiving the invalidation identification information by reading the invalidation identification information.
- the updating unit can acquire the latest invalidation identification information from the CRL issuing device via the network, thereby receiving the latest invalidation identification information.
- the server may receive the invalidation information.
- the invalidation identification information can be updated by the device.
- the data processing device can store the invalidation identification information. It is better to update.
- the updating unit further obtains signature data generated by applying a digital signature to the latest invalidation identification information from the outside, performs signature verification on the obtained signature data, and performs signature verification. If the verification is successful, the obtained invalidation identification information is written to the invalidation information storage unit.
- the updating unit acquires the signature data, performs signature verification on the acquired signature data, and when the signature verification is successful, stores the acquired invalidation identification information in the invalidation information storage unit. Since the writing is performed, the invalidation identification information issued from the valid issuer of the invalidation identification information can be obtained.
- the validity determining means constituting the data processing device stores the public key certificate including signature data generated by applying a digital signature to the public key at least! A certificate storage unit, a public key certificate acquisition unit for acquiring the public key certificate from the certificate storage unit, and performing signature verification on signature data included in the acquired public key certificate.
- a verification unit for verifying whether or not the obtained public key certificate is correct, and when it is determined that the public key certificate is not valid, the program is invalid. Is determined.
- the validity determination unit verifies whether or not the acquired public key certificate is correct by performing signature verification on the signature data. Is determined to be incorrect, the program is determined to be incorrect. Therefore, the data processing device can determine whether the public key certificate assigned to the program is illegally generated by an unauthorized third party. Only those programs that have it can be executed.
- the validity judging means stores the validity of at least two public keys in the storage means using at least two public key certificates respectively. Then, it may be determined whether or not the program is unauthorized.In this configuration, the validity determining unit stores the program in the storage unit using at least two public key certificates. Judge whether the said program is illegal The By performing the determination using a plurality of public key certificates, it is possible to more accurately determine whether or not the program is illegal.
- the two public keys are a first public key assigned to the program and a second public key assigned to the data processing device or an operating system that controls the operation of the program.
- the validity determination means constituting the device includes: a second signature data generated by applying a digital signature to at least the second public key using a secret key of an authoritative certification authority; At least a first public key generated by digitally signing at least the first public key using a second public key certificate including a key and a secret key of the data processing device or the operating system.
- a certificate storage unit that stores signature data and a first public key certificate including the first public key; and the first public key certificate and the second public key certificate from the certificate storage unit.
- the obtained public key certificate obtaining unit and the obtained second signature data included in the obtained second public key certificate are subjected to signature verification using the public key of the certification authority, thereby obtaining the obtained second key data. Verify whether the public key certificate is correct, and if it is determined to be correct, obtain the second public key certificate and obtain the second public key, and obtain the obtained first public key certificate.
- the first signature data included in the certificate is subjected to signature verification using the obtained second public key, thereby verifying whether the obtained first public key certificate is correct.
- the validity determination unit performs signature verification on the second signature data included in the obtained second public key certificate using the public key of the certification authority.
- it is verified whether the obtained second public key certificate is correct, and when it is determined that the second public key certificate is correct, the second public key is obtained from the second public key certificate, and the obtained second public key is obtained.
- the obtained first public key certificate is correct. Verify whether or not.
- the program is invalidated even when the operating system to be controlled is unauthorized, and the program is prevented from being executed under the unauthorized operating system.
- the legitimacy judging means constituting the data processing device makes the judgment each time an access request to the storage means is detected.
- the validity determination means may make the determination each time an access request to a program stored in the storage means is detected.
- the validity determination means may make the determination immediately after the power supply to the data processing device is started.
- the validity determination unit makes the determination each time an access request to the storage unit is detected.
- the determination is made each time an access request to the program stored in the storage unit is detected.
- the determination is made immediately after power supply to the data processing device is started. Therefore, before executing the program, it is possible to determine whether or not the program is illegal.
- the present invention is the data processing device for decrypting and executing an encrypted program, wherein the storage means encrypts the program using a program key instead of the program.
- An encryption key storage unit that stores an encryption key program generated by performing an encryption algorithm, wherein the validity determination unit stores m encryption keys selected from p encryption keys. Using each of the m encryption keys, the program key and m pieces of encryption information generated by encrypting any of the predetermined detection information are associated with the m encryption keys.
- An encryption information storage unit, and a decryption unit that applies a decryption algorithm to the corresponding encryption information using each of the m encryption keys to generate m decryption information.
- All of the generated m pieces of decoding information are A determination unit for determining whether or not the detection information is the detection information, and when all of the generated m pieces of decoding information are determined to be the detection information, the program is determined to be unauthorized. It is characterized by determining that there is.
- m encryption keys are selected from the first row and the encryption key storage constituting the data processing device is selected.
- the unit stores, in the first matrix, the element position where each encryption key is arranged in association with each encryption key, and the encryption information storage unit stores the element position in the second matrix of n rows and m columns.
- the encryption information is stored at the same element position as the element position where the encryption key corresponding to each piece of encryption information is arranged, and the decryption unit stores the element corresponding to the encryption key from the encryption key storage unit. Reading the position, reading the encryption information arranged at the same element position as the read element position in the second matrix of the encryption information storage unit, and using the read encryption key to read the encryption key; To apply a decryption algorithm to the information And butterflies.
- the validity determination means performs a decryption algorithm on the corresponding encryption information using each of the m encryption keys, generates m decryption information, and generates the decryption information.
- the data processing device When it is determined that all the m pieces of decoded information are the detection information, it is determined that the program is invalid. If the program is valid, the data processing device generates an encryption key from the encrypted encryption key, and decrypts the encryption program using the generated encryption key to generate a program. Run the generated program. In this way, by performing double encryption, the program can be protected from unauthorized use.
- the p encryption keys are selected.
- One of the programs is illegal, and all m pieces of decryption information generated using the m encryption keys assigned to the illegal program are the detection information. Even if one of the m encryption keys assigned to another legitimate program matches the m encryption keys of the unauthorized program, the program key is generated using the other encryption keys. can do.
- assigning m encryption keys in different combinations for each program only unauthorized programs can be invalidated and legitimate programs can be used.
- the present invention also relates to the data processing device, wherein the data processing device has a memory device for storing data. And a processor operating in accordance with a program comprising a plurality of processing procedures; and a transfer data addressed to the memory means, which is arranged between the memory means and the processor and output from the processor, satisfies a transfer restriction condition. When it is determined whether or not the condition is satisfied, and when it is determined that the transfer restriction condition is satisfied! / ⁇ , the transfer of the transfer data to the memory unit is suppressed, and it is determined that the transfer restriction condition is not satisfied. And monitoring means for transferring the transfer data to the memory means.
- the monitoring unit is disposed between the memory unit and the processor, and determines whether transfer data output from the processor and addressed to the memory unit satisfies a transfer restriction condition. When it is determined that the transfer restriction condition is satisfied, the transfer of the transfer data to the memory unit is suppressed. By doing so, it is possible to prevent unauthorized access to the memory that occurs during the operation of the program.
- the monitoring means stores a transfer restriction condition for each of a plurality of application programs, and stores a transfer restriction condition for each application program executed by the processor. A condition is selected, and the selected transfer restriction condition is used.
- the monitoring unit selects a transfer restriction condition for each application program executed by the processor, and uses the selected transfer restriction condition.
- the transfer restriction condition is address range information indicating a predetermined storage space in the memory unit
- the data processing device is configured such that the monitoring unit extracts address information from the transfer data. The transfer of the transfer data is suppressed when the extracted address information is included in the address range information.
- the monitoring unit suppresses transfer of the transfer data when the extracted address information is included in the address range information. Therefore, it is possible to prevent the processor from accessing the predetermined storage space.
- the transfer restriction condition is a restriction count indicating an upper limit of the number of accesses to a predetermined storage space in the memory means, and the monitoring means constituting the data processing apparatus transmits the storage restriction to the storage space in the past.
- the address information is extracted from the transfer data, and when the extracted address information is included in the address range information, 1 is added to the cumulative number of times, and the sum is added. The transfer of the transfer data is suppressed when the obtained number of times of addition exceeds the limited number of times.
- the monitoring unit suppresses the transfer of the transfer data when the number after addition exceeds the limited number. In this way, an unauthorized access accidentally occurring for some reason during the execution of the program is overlooked, and, for example, an unauthorized access to the predetermined storage space is constantly performed due to unauthorized alteration of the program. Only when access occurs, transfer of transfer data accompanying execution of the program is suppressed.
- the monitoring means is characterized in that it determines whether or not the transfer data transferred on the bus connected to the processor satisfies a transfer restriction condition.
- the monitoring unit determines whether or not the transfer data transferred on the node connected to the processor satisfies a transfer restriction condition. Each time an output is made, the determination can be made reliably.
- the memory means constituting the data processing apparatus of the present invention uses an encryption key to store a code portion and a data portion of an application program different from the current program being executed by the port processor, respectively.
- An encryption code and encrypted data generated by encryption are stored, and the transfer restriction condition is address range information indicating a storage space in the memory means where the encrypted data is stored.
- the monitoring means stores the encryption code and a decryption key for decrypting the encrypted data.
- the monitoring means extracts address information from the transfer data, and the extracted address information is stored in the encrypted code. When the address is within the address range indicating the stored storage space, the data exists in the storage space indicated by the transfer data using the decryption key. Decoding the Goi ⁇ code to generate a decoded code, and transfers the generated decrypted code to the processor, extracted ad Address information capability When the address information is included in the address range information, transfer of transfer data is suppressed.
- the monitoring means stores the encryption code and a decryption key for decrypting the encrypted data, and the address information is stored in the storage in which the encryption code is stored.
- the decryption key is used to decrypt the encryption code existing in the storage space indicated by the transfer data to generate a decryption code, and the generated decryption code is sent to the processor.
- the address information transferred and extracted is included in the address range information, transfer of the transfer data is suppressed.
- the use of the data portion of the application program can be limited to only the application program.
- the monitoring means is further characterized in that, when it is determined that the transfer restriction condition is satisfied, identification information for identifying the program being executed by the mouth processor is added to a program revocation list. I do.
- the monitoring unit when the monitoring unit determines that the transfer restriction condition is satisfied, the monitoring unit adds identification information for identifying the program being executed by the processor to a program invalidation list. This prevents the program from being executed again.
- the data processing apparatus of the present invention operates according to a memory means for storing data and a program comprising a plurality of processing procedures, and stores an address of an instruction to be executed next.
- a processor provided with a program counter, and determining whether or not an address stored in the program counter is within a predetermined address range.
- Monitoring means for instructing the processor to store a predetermined value in a program counter, wherein the processor power stores the predetermined value in a program counter upon receiving the instruction; .
- the monitoring means determines whether or not the address stored in the program counter is within a predetermined address range, and determines that the address is within the predetermined address range.
- the predetermined value is stored in the program counter for the processor. To be stored. This prevents the processor from accessing the storage area corresponding to the predetermined address range in advance, and transfers the execution right of the processor to another program such as an operating system, for example. Thus, the execution of the program can be interrupted.
- FIG. 1 shows an example of use of a mobile phone 100 according to the first embodiment.
- FIG. 2 is a block diagram showing a configuration of a mobile phone 100 and a memory card 300.
- FIG. 3 shows an example of information stored in a secondary storage unit 104.
- FIG. 4 shows an example of information stored in a normal memory 111.
- FIG. 5 shows details of the application management table 166.
- FIG. 6 shows an example of information stored in the secure memory 113.
- FIG. 7 shows details of the secure application management table 186.
- FIG. 8 is a block diagram showing the relationship between programs stored in a normal memory 111 and a secure memory 113.
- FIG. 9 shows a data configuration of a command handled by the normal OS 151 and the secure memory 113.
- FIG. 10 is a flowchart showing an operation of a normal OS 151.
- FIG. 11 is a flowchart showing an operation of the secure OS 171.
- FIG. 12 is a flowchart showing the operation of the music decryption daemon 156.
- FIG. 13 is a flowchart showing a switching process from a normal OS 151 to a secure OS 171
- FIG. 14 is a flowchart showing switching processing from a secure OS 171 to a normal OS 151
- FIG. 15 is a flowchart showing an operation of the mobile phone 100.
- FIG. 16 is a flowchart showing an operation of each program in a music decryption program registration process.
- FIG. 17 is a flowchart showing an operation of each program in a music decryption program registration process. Continued from Figure 16.
- FIG. 18 A diagram showing the operation of each program in a processing request to the music decryption program 176. It is a low chart.
- FIG. 19 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 18.
- FIG. 20 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 19.
- FIG. 21 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 20.
- FIG. 22 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 21.
- FIG. 23 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 22.
- FIG. 24 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 23.
- FIG. 25 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 24.
- FIG. 26 is a flowchart showing the operation of each program in a process request to the music decryption program 176. Continued from Figure 25.
- FIG. 27 is a flowchart showing an operation of each program in a process request to the music decryption program 176. Continued from Figure 26.
- FIG. 28 is a flowchart showing a process when an interrupt is generated by the normal input / output device 132 during execution of the normal OS 151.
- Figure 21 shows the details of step S239.
- FIG. 29 is a flowchart showing a process when an interrupt is generated by the normal input / output device 132 while the secure OS 171 is running.
- FIG. 30 is a flowchart showing a process performed by the secure device 133 when an interrupt occurs while the normal OS 151 is running. Figure 23 Details of step S287.
- FIG. 31 is a flowchart showing processing when an interrupt is generated by the secure device 133 during execution of the normal OS 151. Continued from Figure 30.
- Figure 32 Normally, when an interrupt is generated by the cryptographic processing device 117 while the OS 151 is running It is a flowchart which shows a process. Figure 27 Details of step S337.
- FIG. 33 is a flowchart showing processing when an interrupt is generated by the cryptographic processing device 117 during execution of the normal OS 151. Continued from Figure 32.
- FIG. 34 is a flowchart showing processing when an interrupt is generated by the cryptographic processing device 117 while the normal OS 151 is being executed. Continued from Figure 33.
- FIG. 35 is a flowchart showing deletion processing of the music decryption program 176.
- FIG. 36 shows the transfer of commands between programs in connection with the operation of mobile phone 100.
- FIG. 37 shows the transfer of commands between programs in the operation of mobile phone 100.
- FIG. 38 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 37.
- FIG. 39 shows the transfer of commands between programs in the operation of mobile phone 100. Continue from Figure 38.
- FIG. 40 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 39.
- FIG. 41 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 40.
- FIG. 42 shows the transfer of commands between programs in the operation of mobile phone 100. Continued from Figure 41.
- FIG. 43 shows an example of information stored in a normal memory 111.
- FIG. 44 is a flowchart showing an operation when the mobile phone 100 is activated.
- FIG. 45 shows an example of information stored in the secure memory 113.
- FIG. 46 shows an example of a logical memory space formed by the MMU control program 184.
- FIG. 47 is a block diagram showing an association between programs in a modification of the first embodiment.
- FIG. 48 shows a configuration of a secure device driver management table 231 of a normal OS 151 and a secure OS 171 according to a modification of the first embodiment.
- FIG. 49 shows a usage example of the mobile phone 400 according to the second embodiment.
- FIG. 50 is a block diagram showing a configuration of an invalidation list issuing device 250.
- FIG. 51 is a block diagram showing a configuration of a memory protection unit 414 and a secure memory 413 included in the mobile phone 400.
- FIG. 52 is a flowchart showing an operation of a memory protection unit 414.
- FIG. 53 is a flowchart showing an operation of the memory protection unit 414. Continued from Figure 52.
- FIG. 54 is a block diagram showing a configuration of a memory protection unit 454 and a secure memory 453 according to a modification of the second embodiment.
- FIG. 56 shows a configuration and relation of an application certificate 501, a maker certificate 511, and a CA certificate 521 included in a music decryption program 476 in a modification of the second embodiment.
- FIG. 57 shows an example of the configuration of an OS revocation list.
- FIG. 58 illustrates an example of information stored in an information storage unit 610 of the revocation list issuing device according to Embodiment 3.
- FIG. 59 A configuration of an application unique key matrix 592 and an OS unique key matrix 597 are shown.
- FIG. 60 A detailed configuration of the application matrix revocation list 611 is shown.
- FIG. 61 is a flowchart showing a processing procedure for generating an application matrix revocation list.
- FIG. 62 is a block diagram showing a configuration of a memory protection unit 571 and a secure memory 613 provided in the mobile phone according to the third embodiment.
- FIG. 63 is a flowchart showing a verification operation by a memory protection unit 571.
- FIG. 64 is a flowchart showing a verification operation of the music decryption program 592 by the application verification unit 578.
- FIG. 65 is a configuration diagram showing a configuration of a home network according to a modification of the third embodiment.
- FIG. 66 is a block diagram showing a configuration of a memory protection unit 701 and a secure memory 713 constituting the mobile phone according to the fourth embodiment.
- FIG. 67 shows an example of the configuration of the secure memory card 820 and information stored in the secure memory card 820 in Embodiment 5.
- FIG. 68 is a block diagram showing configurations of a mobile phone 750 and a normal memory card 800 and a secure memory card 820 mounted on the mobile phone 750 according to the fifth embodiment.
- FIG. 69 is a block diagram showing a configuration of a memory protection unit 764.
- FIG. 70 shows a configuration of a secure memory table 811 and a normal memory table 861.
- FIG. 71 is a flowchart showing operations of an access control unit 783 and an ID detection unit 786.
- FIG. 72 is a flowchart showing an operation of an access control unit 783. Continued from Figure 71.
- FIG. 1 shows an example of use of the mobile phone 100 of the present invention.
- the mobile phone 100 is equipped with a memory card 300.
- the memory card 300 stores the encrypted music data, and the mobile phone 100 reads out the music data from the memory card 300 and reproduces the music data.
- the mobile phone 100 is connected to a content distribution device via a base station 15, a mobile phone network 10, and the Internet 20.
- the mobile phone 100 acquires various types of content such as music and video stored in the content distribution apparatus via the Internet and a mobile phone network.
- the memory card 300 includes an input / output unit 301, a secure processing unit 302, a general area 303, and a secure area 306.
- the general area 303 is a storage area that can be freely accessed by an external device, and stores the encrypted music data 304.
- the secure area 306 is a storage area that can be accessed only by an authorized external device, and stores a content key 307.
- the encrypted music data 304 is generated by applying the encryption key E1 to the music data of one music using the content key 307. Each encrypted music data is identified by a music ID.
- the encryption algorithm El uses, for example, DES (Data Encryption Standard).
- the input / output unit 301 inputs and outputs various data between the external device and the general area 303 and the secure processing unit 302.
- the secure processing unit 302 performs mutual authentication with an external device based on a CPRM (Content Protection for Recordable Media) mechanism, and shares the key with the authenticated device when authentication is successful. Use the shared key to securely input and output data to and from external devices.
- CPRM Content Protection for Recordable Media
- the mobile phone 100 includes a debugger IF101, a CPU 102, an MMU 103, a secondary storage unit 104, a switching control unit 106, an interrupt controller 107, an input unit 108, a display unit 109, a normal memory 111, and a shared memory 112. , Secure memory 113, memory protection unit 114, input / output unit 116, cryptographic processing device 117, wireless communication control unit 118, microphone 119, speaker 120, communication unit 121, antenna 122, knocker 123, code processing unit 124, and DZA conversion It is composed of a unit 126, and each circuit is connected to a bus 130.
- the mobile phone 100 is, specifically, a computer system. Various computer programs are stored in the normal memory 111, the shared memory 112, the secure memory 113, and the secondary storage unit 104. By operating according to this computer program, the mobile phone 100 realizes a part of its functions.
- Secondary storage unit 104 shared memory 112
- the secondary storage unit 104 also has a ROM function, and stores, for example, an encrypted music decryption program 141 and a music decryption daemon 142 as shown in FIG.
- the encryption / decryption music decryption program 141 is generated by encrypting and / or decrypting a music decryption program loaded and executed on the secure memory 113.
- the music decryption program is a program for decrypting the encrypted music data 304 stored in the memory card 300. This will be described in detail later.
- the music decryption daemon 142 is a program loaded and executed on the normal memory 111, and corresponds to the music decryption program on a one-to-one basis.
- a music decryption program executes a process that requires high security and a process that handles data to be protected, and a music decryption daemon executes a process that does not require high security. . Details will be described later.
- the shared memory 112 is composed of a RAM, and is a memory that can be used by the program on the normal memory 111, the program on the secure storage!
- the secondary storage unit 104 may be configured by a hard disk unit that also configures a ROM.
- the normal memory 111 includes a RAM and a ROM, and stores various programs executed by the CPU 102.
- a normal OS 151 a library 152, a music playback program 153, a music decryption daemon 156, a normal input / output device driver 157, a secure input / output entry device driver 158, a cryptographic entry device driver 159, a normal The switching device driver 160 and the normal interrupt handler 161 are stored.
- the secure memory 113 is composed of a RAM, and stores various programs executed by the CPU 102.
- the secure memory 113 is connected to a bus 130 via a memory protection unit 114.
- the secure memory 113 stores a secure OS171, a music decryption program 176, a secure input / output device driver 178, a cryptographic device driver 179, a secure switching device driver 180, and a secure interrupt handler 181 as shown in FIG. Te ru.
- FIG. 8 is a block diagram functionally showing a relationship between programs stored in the normal memory 111 and the secure memory 113.
- communication between programs on the same memory is normally realized by outputting a system call to the OS 151 and the secure OS 171.
- the normal switching device driver 160, the secure switching device driver 180, and the switching control unit 106 operate to switch between the normal OS 151 and the secure OS 171.
- the shared memory 112 is connected to the normal input / output device 132 and the cryptographic processing device 117. This shows a part of the role played by the shared memory 112. 112 is also used by other programs.
- the normal OS 151 is basic software for controlling various programs loaded and executed on the normal memory 111, and includes a control program and control data.
- the control data includes an application management table 166 as shown in FIG.
- the application management table 166 includes a plurality of entries 167, 168,... As shown in FIG. Each entry consists of a handle value, daemon address, and application context address.
- the handle value is an identifier assigned to the secure application loaded on the secure memory 113.
- a secure application an application loaded on the secure memory 113 and executing a secure process is referred to as a secure application.
- the secure process is a process that handles data to be protected and a process that needs to protect the algorithm itself.
- the daemon address is a load address on the normal memory 111 of a program that operates in correspondence with the secure application.
- the application context address is an address on the normal memory 111 that stores the context of the application that requests secure processing to the secure application corresponding to the handle value.
- the context includes a register value of the CPU 102, a stack pointer, the contents of the MMU 103, and the like.
- the handle value “1” is an identifier assigned to the music decryption program 176 (described later) to which the music reproduction program 153 requests secure processing.
- the daemon address “0000BBBB” is a load address on the normal memory 111 of the music decryption daemon 156 that operates in correspondence with the music decryption program 176.
- the application context address “0000AAEE” is an address on the normal memory 111 that stores the context of the music reproduction program 153.
- the control data includes an identification information device indicating the normal input / output device driver 157.
- a device ID—A, a device ID—B that is identification information for identifying the secure input / output entry device driver 158, and a device ID—C that is identification information for indicating the encryption entry device driver 159 are included. These are stored in association with the load addresses on the normal memory 111 of the normal input / output device driver 157, the secure input / output entry device driver 158, and the encryption entry device driver 159, respectively.
- the device ID-B is the same as the identification information indicating the secure input / output device driver 178 (described later), and the device ID-C is the same as the identification information indicating the encryption device driver 179.
- the OS 151 sends and receives various commands to and from the secure OS 171 via a predetermined area (called a command area) in the shared memory 112. Also, various commands are transmitted / received to / from a program in the normal memory 111.
- the shared memory 112 may be used, or the normal memory 111 may be used.
- FIG. 9A shows an example of the data structure of a command normally handled by the OS 151.
- the command 1000 includes a command section 1011 and a data storage section 1012.
- Commands stored in the command section 1011 include secure application registration request, registration completion notification, application return request, secure application deletion instruction, deletion completion notification, system call, response notification, secure processing request, external processing request, sleep Request, interrupt occurrence notification, etc.
- the data storage unit 1012 stores various data and commands 1016, and identification information 1013 indicating a program to receive the data and command 1016, according to commands stored in the command unit 1011.
- the secure application registration request is a command requesting that a secure application that requests secure processing of an application running on the normal memory 111 be loaded onto the secure memory 113 and made usable.
- the data storage unit 1012 stores secure application information indicating a secure application and daemon information indicating a program that operates in association with the secure application.
- the secure application information is the address where the encrypted music decryption program 141 on the secondary storage unit 104 is stored, and the daemon information is the music decryption program.
- the secure application information and the daemon information may be identifiers corresponding to the encrypted music decryption program 141 and the music decryption daemon 142.
- the registration completion notification notifies that the secure application has been loaded on the secure memory 113 and registration in the secure application management table (described later) has been completed. At this time, the handle value corresponding to the registered secure application is stored in the data storage unit 1012.
- the application return request is a command for requesting the return of the application that has requested the secure application that has completed the requested processing.
- identification information indicating the secure application is stored in the data storage unit.
- the secure application deletion instruction instructs the deletion of the secure application on the secure memory 113. At this time, a handle value for uniquely identifying the secure application to be deleted is stored in the data storage unit 1012.
- the deletion completion notification is for notifying that the secure application on the secure memory 113 has been deleted.
- the data storage unit 1012 stores a handle value for uniquely identifying the deleted secure application.
- the system call is a command for requesting the application power on the normal memory 111, the normal OS 151, to another program on the normal memory 111 to relay a command or data.
- identification information indicating the application that has requested mediation, identification information indicating the program of the mediation destination, and mediating data and commands are written.
- Fig. 9 (c) shows the data structure of a system call output by the music decryption daemon 156.
- the command section 1011 stores a system call.
- the data storage section 1012 stores a node value “1” indicating the music decryption daemon 156 that is the source of the system call, and a cryptographic entry that is the destination of the data.
- a device ID-C indicating the device driver 159 and data “processing result” to be mediated are stored.
- the response notification is a program that receives an application command or data by a system call, performs processing according to the received command and data, and sends a notification of the processing result to the application that is the output source of the system call.
- Ask 151 It is.
- the data storage unit 1012 stores identification information indicating a program that has requested notification, identification information indicating an application of a notification destination, a processing result, and the like.
- the cryptographic entry device driver 159 that has received the handle value “1”, the device ID—C, and the processing result by the system call shown in FIG. 9C releases the exclusive control (details will be described later). ), The response notification including the handle value “1”, the device ID—C and the processing result is output to the normal OS 151, and the handle value “1”, the device ID—C and the processing result are music-decoded via the normal OS 151. Notify the daemon 156 (details will be described later).
- the secure processing request is a command for requesting mediation of a command or data from a program on the normal memory 111 to a program on the secure memory 113.
- the data storage unit 1012 stores identification information indicating the program that is the output source of the secure processing request, information indicating the program of the mediation destination, and mediating data and commands.
- FIG. 9D shows the data structure of the secure processing request output from the music decryption daemon 156 as an example.
- the data storage unit 1012 includes a node value “1” indicating the music decryption daemon 156 that is the output source of the secure processing request, a device ID—C that indicates the encryption device driver 179 that is the destination of the secure processing request, and a command “ Interrupt notification "is stored.
- the external processing request is a request for mediation of a command and data from a program on the secure memory 113 to a program on the normal memory 111.
- the data storage unit 1022 stores identification information indicating the program that is the output source of the secure processing request, identification information indicating the program of the relay destination, and data and commands to be relayed.
- FIG. 9E shows a data configuration of an external processing request output from the cryptographic device driver 179 as an example.
- the command section stores an external processing request
- the data storage section has a device ID-C corresponding to the cryptographic device driver 179 that is the output source of the external processing request, and a music decryption daemon 156 that is the receiving destination.
- the stored handle value “1” and the mediated command “sleep request” are stored.
- the sleep request is a command included in the mobile phone 100 that requests a device driver of a device and a program that has requested the device to perform processing to transition to a sleep state.
- the data storage unit 1012 stores an identification indicating the device driver requesting the sleep request. Information and identification information corresponding to a program requesting a device to perform processing are stored.
- the interrupt occurrence notification is for notifying the occurrence of an interrupt.
- the secure application registration request, the registration completion notification, the application return request, the secure application deletion instruction and the deletion completion notification specifically include the application in the normal memory 111 as the music reproduction program 153 and the secure application as the music decryption program.
- a program that operates in combination with the secure application will be described as a music decryption daemon.
- step S1001 Normally, when the OS 151 returns to the CPU 102 by the switching process, the command area power of the shared memory 112 is also read out (step S1001).
- the switching process will be described in detail in the following description of the normal switching device driver 160 and the secure switching device driver 180.
- the read command is decoded (step S1002). If the decoded command is a registration completion notification, the music decoding daemon 156 is loaded on the normal memory 111 (step S1004), and the loaded address and registration completion notification data are read. It writes the received and included value “1” in the storage unit to the entry 167 of the application management table 166 (step S1005), and outputs the handle value “1” to the music playback program 153.
- step S1002 If the read command is an external processing request (step S1002), the program corresponding to the identification information indicating the mediation destination included in the data storage is called, and the called program is sent to the data storage of the external processing request.
- the received information is output (step S1006).
- step S1002 If the read command is an interrupt occurrence notification (step S1002), the interrupt mask is released by erasing the dummy data written in the interrupt register of the CPU 102 (step S1007). The interrupt mask will be described later in the description related to the secure interrupt handler 181. If the read command is an application return request (step S 1002), the context of the music playback program 153 is restored based on the handle value “1” included in the data storage unit and the application management table 166 (Step S1009).
- step S1002 If the read command is a deletion completion notification (step S1002), the music decryption daemon 156 corresponding to the handle value “1” included in the data storage unit is deleted from the normal memory 111 (step S1011), and the application management table is displayed. The entry 167 including the handle value “1” is deleted from 166 (step S1012).
- step S1013 a command from each program on the normal memory 111 is received.
- Step S1013 a program corresponding to identification information indicating a mediation destination such as a handle value or a device ID written in the data storage is called, and information included in the data storage is output (Ste S1014). For example, if the handle value “1” is included! /, Then the entry 167 including the handle value “1” is selected in the application management table 166, and the music decoding daemon is selected based on the daemon address of the selected entry 167. 156 is called, and if the device ID-C is included, the cryptographic entry device driver 159 is called.
- the application when the response notification is received, similarly to the case where the system call is received, the application corresponding to the identification information written in the data storage unit. And outputs information included in the data storage unit.
- the program corresponding to the identification information such as the handle value or the device ID written in the data storage unit and the corresponding program are transited to the sleep state (step S1016).
- the dormant state is a state in which no operation is performed.
- the music decryption program 176 receives the secure application registration request including the secure application information and the daemon information from the music decryption program 176 (step S103), and the music reproduction program 153
- the context is stored in the normal memory 111, the address of the storage destination is written to the application context address, and the encrypted music decryption program 141 read from the secondary storage unit 104 based on the secure application information is written to the shared memory 112 (S Step S1017).
- the secure application registration request is written on the shared memory 112 (step S1018), and the process proceeds to step S1028.
- the secure application registration request includes the address of the write destination on the shared memory 112 of the encrypted music decryption program in the data storage unit.
- step S1013 When receiving the secure application deletion command from the music playback program 153 (step S1013), the received secure application deletion command is written to the shared memory 112 (step S1019).
- a node value “1” indicating the music decryption program 176 to be deleted is stored in the data storage unit.
- step S1013 When the secure processing request is received (step S1013), the received secure processing request is written to the shared memory 112 (step S1021). Next, a switching process is performed (step S1028).
- step S1023 when an interrupt is generated and an interrupt generation notification is received from the interrupt controller 107 (step S1023), the normal interrupt handler 161 is activated (step S1024). Based on the result of the investigation of the cause of the interrupt by the normal interrupt handler 161, the program sleeps and releases the program from sleep (step S1026). Move the process to step S1013.
- the normal OS 151 and the secure OS 171 may use a dedicated register instead of the shared memory 112 that exchanges various commands via the shared memory 112.
- the secure OS 171 includes an operating program 172, a debug invalidation program 173, and a decryption program 174.
- the debug invalidation program 173 is a program that writes dummy data into the register of the debugger IF101 and invalidates the debugger IF101. Note that a switch may be provided between the debugger IF101 and the CPU 102, and the debug disabling program 173 may be configured to disable the debugger IF101 by opening and closing the switch.
- the decryption program 174 has a decryption key coded in advance, and decrypts the encrypted music decryption program to generate a music decryption program.
- the operating program 172 executes various programs loaded on the secure memory 113.
- This is basic software for controlling the program, and is composed of a control program and control data.
- the control unit data includes a secure application management table 186 as shown in FIG.
- the secure application management table 186 includes a plurality of entries 187, 188, as shown in FIG. Each entry includes a handle value, a secure application address, and a secure application context address, and corresponds to the secure application loaded on the secure memory 113.
- the handle value is an identifier assigned to each secure application.
- the secure application address is an address on the secure memory 113 where the secure application is loaded.
- the secure application context address is an address on the secure memory 113 where the context of the secure application is stored.
- the handle value "1" of the entry 187 is an identifier assigned by the operating program 172 to the music decoding program 176.
- the secure application address “1111EEEE” is an address on the secure memory 113 in which the music decryption program 176 is stored.
- the secure application context address “11AADDDE” is a secure memory in which the context of the music decryption program 176 is stored. The above address.
- the control data includes a device ID_B which is identification information corresponding to the secure input / output device driver 178, and a device ID-C which is identification information corresponding to the encryption device driver 179. These are stored on the secure memory 113 in association with the load addresses on the secure memory 113 of the secure input / output device driver 178 and the encryption device driver 179, respectively.
- the device ID-B and the device ID-C are the same as the device ID-B and the device ID-C normally included in the control data of the OS 151.
- the secure OS 171 exchanges various commands with the normal OS 151 via the command area of the shared memory 112. In addition, commands are transmitted to and received from each program on the secure memory 113 via the storage area of the operating program 172 on the secure memory 113.
- the processing performed by the operating program 172 is expressed as the processing performed by the secure OS 171 for convenience of description.
- the various commands handled by the secure OS 171 have the structure shown in FIG. 9A similarly to the commands handled by the normal OS 151.
- the commands stored in the command section 1011 include a secure application registration request, registration completion notification, application return request, secure application deletion instruction, deletion completion notification, system call, response notification, secure processing request, external processing request, interrupt Notification of occurrence, etc.
- the secure application registration request, registration completion notification, application return request, secure absolute deletion instruction, deletion completion notification, secure processing request, external processing request, and interrupt occurrence notification have already been described in the description of the normal OS 151 above. It is on the street.
- a system call is a request for mediation of data and commands from an application on the secure memory 113 to another program on the secure memory 113. This is a request to the secure OS 171 for notification of the processing result and the like.
- the operation of the secure OS 171 will be described with reference to the flowchart in FIG.
- the application is paired with the music reproduction program 153, the secure application with the music decryption program 176, and the secure application.
- the program that operates in this manner will be described as a music decryption daemon 156.
- the secure OS 171 is not related to the present invention that performs various kinds of processing other than the processing shown in this flowchart, and thus will not be described here.
- the secure OS 171 returns to the CPU 102 (step S1041).
- the secure OS 171 reads and decodes the command in the command area of the shared memory 112 (step S1042), and performs the following processing according to the decoded command.
- step S1042 If the read command is a secure application registration request (step S1042), the encrypted music decryption program on the shared memory 112 is decrypted by the decryption program 174 to generate a music decryption program 176, which is loaded on the secure memory 113. (Step S104 3). The load address and the handle value “1” are written to the entry 187 of the secure application management table 186 (step S1044). Next, a registration completion notification is stored in the command section, and a registration completion notification in which the handle value “1” is stored in the data storage section is generated and written to the shared memory 112 (step S1046). Next, the process proceeds to a switching process (step S1062).
- step S1042 If the decrypted command is a secure processing request (step S1042), the program corresponding to the identification information of the destination program stored in the data storage unit is called (step S1047). For example, if the handle value “1” is stored, the music playback program 153 is called, and if the device ID-B is stored, the secure input / output device driver 178 is called. Next, the process moves to step S1052.
- the read command is a secure application deletion instruction (step S1042)
- the node value "1" indicating the program to be deleted stored in the data storage unit is extracted, and the extracted handle value is extracted.
- the music decryption program 176 corresponding to "1" is deleted from the secure memory 113, and then the entry 187 is deleted from the secure application management table 186 (step S1049).
- step S1051 When the deletion is completed, a deletion completion notification is written to the shared memory 112 (step S1051). At this time, a deletion completion notification is stored in the command part, and a handle value “1” is stored in the data storage part. Next, the process moves to step S1062.
- the secure OS 171 receives a command from each program on the secure memory 113 (Step S1052).
- step S1052 If the received command processing is an external processing request (step S1052), the received external processing request is written to the shared memory (step S1053), and the process proceeds to step S1062.
- step S1054 Upon receiving an interrupt notification from the secure interrupt handler 181 (described later) indicating that an interrupt has occurred in any device, the received interrupt notification is written to the shared memory 112 (step S1054). Then, the process is shifted to step S1062.
- step S1052 If the received command is a system call (step S1052), the corresponding program is called based on the identification information indicating the destination program stored in the data storage unit (step S1056).
- step S1052 If the received command return request is an application return request (step S1052), the received application return request is written into the shared memory (step S1061), and the process proceeds to step S1062.
- the application corresponding to the identification information included in the data storage unit is also called in the case of the response notification.
- step S1057 when an interrupt occurs and an interrupt occurrence notification is received from the interrupt controller 107 (step S1057), the secure interrupt handler 181 is activated (step S1059), and the process returns to step S1052.
- the library 152 includes functions commonly used by various programs, and includes, for example, an access function for accessing the memory card 300.
- the access function is a function that calls the normal input / output device driver 157 and instructs data reading.
- the music reproduction program 153 is an application that includes various image data to be displayed to the user and reproduces music stored in the memory card 300 in response to the operation of the user.
- secure application information is information indicating a program for which the music reproduction program 153 requests secure processing.
- the secure application information is an address on the secondary storage unit 104 where the encrypted music decryption program 141 is stored. is there.
- the daemon information is information indicating a program that is paired with the program indicated by the secure application information, and specifically is an address on the secondary storage unit 104 where the music decoding daemon 142 is stored.
- the music decryption program 176 and the music decryption daemon 156 operate in a pair to achieve the decryption processing of the encrypted music data.
- the music decryption program 176 receives a decryption command from the music playback program 153 via the normal OS 151 and the secure OS 171 and receives a data read step, a content key read step, a decryption step, and music data output as shown in FIG. Through the steps, music data is generated, and in a music data output step, a write destination address of the music data on the notifier 123 is output as a processing result.
- a process that does not require high security is requested to the music decryption daemon 156.
- a data read command is output to the music decryption daemon 156.
- the write destination address of the encrypted music data on the shared memory 112 is received.
- a decryption command is output to the music decryption daemon 156, and as a processing result, the write destination address of the music data on the buffer 123 is obtained.
- the music decryption daemon 156 receives a data read command and a decryption command from the music decryption program 176 via the secure OS 171 and the normal OS 151. Also, it receives various commands and data from the normal input / output device driver 157, the secure input / output entry device driver 158, the encryption entry device driver 159, the secure input / output device driver 178, and the encryption device driver 179. Perform various processes based on the received command and data.
- the processing by the music decryption daemon 156 will be described with reference to the flowchart of FIG. In FIG. 9, all commands and data received by the abbreviated music decryption daemon 156 include a handle value “1” as identification information indicating the music decryption daemon 156 that is the receiving destination. I have.
- step SO11 Various commands and data are received via the secure OS 171 (step SO11).
- the received instruction is determined (step S012), and if it is a data read instruction, the access function of the library 152 is called (step SO13).
- the received processing result is output to the music decoding program 176 in response to an external processing request (step S014).
- the data storage unit stores the processing result and a node value “1” indicating the receiving destination.
- the received sleep request is output to the secure input / output entry device driver 158 by a system call to the normal OS 151 (step S012). Step S015).
- the received device ID-B is stored in the data storage unit as identification information indicating the destination, and the handle value “1” indicating the music decoding daemon 156 itself is identified as the identification information indicating the output source of the system call. Is stored.
- step S0138 Upon receiving the device ID-B indicating the output source of the command and the interrupt notification (step S012), the received interrupt notification, device ID-B, and music decryption are stored in the secure processing request data storage unit. Stores the value indicating the daemon 156 itself and the dollar value "1" and outputs it to the normal OS. Then, the received interrupt notification is output to the secure input / output device driver 178 (step SO 16).
- the decryption instruction is output to the encryption entry device driver 159 by a system call (step S017).
- the received decryption command is output to the cryptographic device driver 179 by the secure processing request.
- the decryption command, the received device ID_C, and the handle value “1” indicating the music decryption daemon 156 itself are stored in the data storage unit (step SO18).
- the received sleep request is output to the cryptographic entry device driver 159 by a system call (step S019).
- the data storage unit stores the received device ID-C, the handle value “1” indicating the music decoding daemon 156 itself, and a sleep request as identification information indicating the reception destination.
- the received interrupt notification is output to the cryptographic device driver 179 by the secure processing request (step S012).
- the data storage unit stores the received device ID—C, the interrupt notification, and the handle value “1” indicating the music decryption daemon 156 itself.
- step S022 Normally, when the device ID-C and the processing result are received from the OS 151, the received processing result is output to the encryption entry device driver 159 by a system call (step S022).
- the received processing result is output to the music decryption program 176 by the secure processing request (step S023).
- the normal input / output device driver 157 itself Has device ID_A as identification information indicating the ID.
- the normal input / output device driver 157 is a program for controlling the normal input / output device 132 included in the input / output unit 116.
- the normal input / output device driver 157 stores an exclusive flag. When the normal input / output device 132 is operating, the exclusive flag “1” is set, and when not operating, the exclusive flag “0” is set. If the exclusion flag is “1” when the input / output processing instruction is received, an error notification is output indicating that the normal input / output device 132 is operating and cannot receive the processing.
- the secure input / output device driver 178 and the secure input / output entry device driver 158 have the same identification information and device ID-B in advance.
- the secure input / output device driver 178 and the secure input / output entry device driver 158 control in a pair, the secure input / output device 133 operates normally.
- the secure input / output device driver 178 requests the secure input / output processing and obtains the processing result from among the controls of the secure input / output device 133, and the secure input / output entry device driver 158 requires high security. Dormancy and interruption detection.
- the secure input / output device driver 178 receives a content key read command from the music decryption program 176 via the secure OS 171. Upon receiving the content key readout instruction, it instructs the cryptographic processing device 117 to read out the content key. Next, by outputting an external processing request to the secure OS 171, a sleep request is output to the music decryption daemon 156. At this time, the command data storage unit stores the sleep request, the handle value “1” received from the music decoding program 176 as identification information indicating the reception destination, and secure input / output as identification information indicating the output source of the command. The device driver 178 stores the device ID_B indicating itself.
- the secure input / output device driver 178 receives the interrupt notification from the music decryption daemon 156 via the secure OS 171, and receives the processing result from the secure input / output device 133. Then, the address at which the content key is stored is obtained. Secure the obtained processing results o
- the music decoding program 176 is output.
- the secure input / output entry device driver 158 normally receives a sleep request from the music decoding daemon 156 via the OS 151. When the sleep request is received, the sleep request including the handle value “1” and the device ID-B is output to the data storage unit to the normal OS 151.
- the cure input / output entry device driver 158 outputs an interrupt notification to the music decoding daemon 156 via the normal OS 151 by a response notification.
- a “sleep request”, a device ID—B, and a handle value “1” are stored in the data storage unit.
- the encryption device driver 179 and the encryption entry device driver 159 have a device ID-C as identification information in advance!
- the cryptographic processing device 117 can operate normally. Among the controls of the cryptographic processing device 117, the cryptographic device driver 179 requests a decryption process and obtains a processing result, and the cryptographic entry device driver 159 performs exclusive control, sleep, and interrupt notification.
- the encryption entry device driver 159 receives a decryption command from the music decryption daemon 156 by a system call. Upon receiving the decryption instruction, exclusive control is performed using the exclusive flag. That is, if the exclusion flag is “l”, an error notification is output and the following processing is stopped. If the exclusion flag is “0”, the exclusion flag is changed to “1”.
- a response notification including the received decryption instruction, handle value "1", and the device ID-C of the cryptographic entry device driver 159 itself in the data storage unit is output to the normal OS 151, thereby performing decryption.
- the command is output to the music decryption daemon 156.
- a sleep request is received from the music decoding daemon 156 by a system call.
- a sleep request is output to the normal OS 151.
- the handle value “1” received in the system call and the device ID C are stored in the data storage part of the sleep request.
- the sleep is canceled by the normal OS.
- the sleep is released, and an interrupt notification is output to the music decoding daemon 156 by a response notification.
- the processing result is received from the music decryption daemon 156 via the normal OS 151.
- the exclusive control is released and the exclusive flag is returned to "0".
- the received processing result is output to the music decoding daemon 156.
- the cryptographic device driver 179 receives a decryption processing command from the music decryption daemon 156 via the secure OS 171 in response to the secure processing request, and requests the cryptographic processing device 117 to decrypt. Next, it outputs to the secure OS 171 the device ID_C of the cryptographic device driver 179 itself, an external process request in which the sleep request is stored in the data storage unit, together with the device value “1” and the sleep request received together with the decryption processing command.
- an interrupt notification is received from the music decryption daemon 156, and a write destination address on the buffer 123 is received from the cryptographic processing device 117 as a processing result.
- the processing result is output to the music decryption daemon 156.
- the normal switching device driver 160 and the secure switching device driver 180 Upon receiving a switching instruction from the normal OS 151 or the secure OS, the normal switching device driver 160 and the secure switching device driver 180 output a switching instruction to the switching control unit 106, and change the right to use the CPU 102 from the normal OS 151 to the secure OS 171 or This is a program to transfer secure OS171 power to normal OS151.
- the normal switching device driver 160 is called from the normal OS 151 and receives a switching instruction (step S162). Upon receiving the switching instruction, the context of the normal OS 151 is saved on the normal memory 111 (step S163). Next, a switching instruction is output to the switching control unit 106. (Step SI64).
- the switching control unit 106 After clearing the CPU 102 and the MMU 103, the switching control unit 106 outputs a connection instruction to the memory protection unit 114, and connects the secure memory 113 and the bus 130 (Step S166). Next, the switching control unit 106 calls the secure switching device driver 180 on the secure memory 113 (Step S167).
- the secure switching device driver 180 When called, the secure switching device driver 180 returns the context of the secure OS 171 to the CPU 102 (step S168).
- the secure OS 171 invalidates the debugger IF101 by using the debug invalidation program 173 (Step S169).
- the secure OS 171 enables the debugger IF101 by the debug disabling program 173 (step S176), calls the secure switching device driver 180, and outputs a switching instruction (step S177).
- the secure switching device driver 180 saves the context of the secure OS 171 (step S178), and outputs a switching instruction to the switching control unit 106.
- the switching control unit 106 receives the switching instruction and clears the CPU 102 and the MMU 103.
- step S182 a disconnection instruction is output to the memory protection unit 114, and the secure memory 113 and the bus 130 are disconnected.
- step S182 the normal switching device driver 160 on the normal memory 111 is called (step S182).
- the normal switching device driver 160 returns the context of the normal OS 151 to the CPU 102 (step S183).
- the debugger IF 101 is disabled and enabled by the debug disable program 173 included in the secure OS 171.
- the normal OS 151 may include a debug disable program.
- the debug invalidation program may be an independent program loaded on the normal memory 111 and normally managed by the OS 151.
- the normal OS 151 and the secure OS 171 may each have a debug invalidation program.
- the debug disabling programmer debugger IF101 included in the normal OS 151 is disabled, and the debug disabling program included in the secure OS 171 enables the debugger IF.
- the debug disable IF 101 included in the secure OS171 may be disabled and the debug disable IF program included in the normal OS 151 may enable the debugger IF.
- the normal interrupt handler 161 is called by the normal OS 151 when an interrupt occurs during execution of the normal OS 151 and a program controlled by the normal OS 151. Normally, when called from the OS 151 and receives the interrupt occurrence notification, the interrupt controller 107 is controlled and the factor causing the interrupt is investigated. Next, identification information indicating the device causing the interrupt and the interrupt notification are output to the normal OS 151.
- the secure interrupt handler 181 is called by the secure OS 171 when an interrupt occurs during the execution of the secure OS 171 and the program controlled by the secure OS 171.
- the CPU 102 When called from the secure OS 171 and receives an interrupt occurrence notification, the CPU 102 performs an interrupt mask process by writing dummy data to an interrupt detection register of the CPU 102 and outputs an interrupt occurrence notification to the secure OS 171.
- the input / output unit 116 includes an access unit 131, a normal input / output device 132, It comprises a secure input / output device 133.
- the access unit 131 is connected to the memory card 300, and inputs and outputs information between the memory card 300 and the normal input / output device 132 and the secure input / output device 133.
- the normal input / output device 132 reads and writes data from / to the general area 303 of the memory card 300 under the control of the normal input / output device driver 157.
- a music ID is received as an argument and a read request is received
- encrypted music data corresponding to the received music ID is read from the general area 303, and the read encrypted music data is written to the shared memory 112.
- the address on the shared memory 112 to which the encrypted music data is written is output as the processing result.
- the secure input / output device 133 Under the control of the secure input / output device driver 178, the secure input / output device 133 performs mutual authentication with the secure processing unit 302 of the memory card 300 based on the CPRM mechanism. Only when the mutual authentication is successful, the key is shared, and the writing and reading of data to and from the secure area 306 are performed safely using the shared key.
- a card error notification indicating that the memory card 300 cannot be accessed is output to the secure input / output device driver 178.
- the secure input / output device 133 is a device used only when accessing the secure area 306 of the memory card 300, and a program for accessing the secure area 306 of the memory card 300 is limited. Therefore, since it is impossible for a plurality of applications to request processing at the same time, there is no need to perform exclusive control.
- the cryptographic processing device 117 performs cryptographic processing of various data under the control of the cryptographic device driver 179.
- an address on the shared memory 112 where the encrypted music data is stored and an address on the secure memory 113 where the content key is stored are received from the encryption device driver 179. Is instructed to decrypt the encrypted music data.
- the decryption algorithm D1 is applied to the encrypted music data to generate music data, and the generated music data is written to the buffer 123.
- Write destination address Is output to the encryption device driver 179 as a processing result.
- the decryption algorithm D1 is for decrypting the cipher text generated by the encryption algorithm E1.
- the encryption processing device 117 is a device that decrypts various types of encrypted data, and also decrypts encrypted content transmitted from the content distribution server. Therefore, the cryptographic processing device 117 may be requested to perform decryption processing by a plurality of different programs, and exclusive control is required.
- the CPU 102 includes an instruction fetch unit, an instruction decoder, an arithmetic unit, a program counter, a register, etc., fetches an instruction from a program in the normal memory 111 or the secure memory 113, decodes the fetched instruction, and decodes the decoded instruction. Execute.
- the MMU 103 realizes a virtual storage function by converting a logical address into a physical address.
- the debugger IF101 is an interface for connecting the mobile phone 100 and an external debugger.
- the interrupt controller 107 detects various interrupts and outputs an interrupt occurrence notification to an interrupt detection register of the CPU 102.
- the switching control unit 106 receives a switching instruction from the normal switching device driver 160 on the normal memory 111 or the secure switching device driver 180 on the secure memory 113, and connects the node 130 and the secure memory 113 by the memory protection unit 114. Disconnect.
- the detailed operations of the switching control unit 106 and the memory protection unit 114 are the same as those described in the above (a) switching process 1 and (b) switching process 2.
- the communication unit 121 transmits and receives information between the wireless communication control unit 118 and external devices connected to the mobile phone network 10 and the Internet 20 via the antenna 122.
- the wireless communication control unit 118 includes a baseband unit, a modulation / demodulation unit, an amplifier, etc. It performs signal processing of various types of information transmitted and received via the communication unit 121 and the antenna 122.
- the buffer 123 temporarily stores music data.
- the code processing unit 124 performs a decoding process on the music data stored in the buffer 123 according to an encoding technique such as MP3 and outputs the music data to the DZA conversion unit 126.
- DZA conversion section 126 converts the music data decoded by code processing section 124 into an analog audio signal, and outputs the analog audio signal to speaker 120.
- the input unit 108 includes various buttons such as a numeric keypad and an enter button, and accepts these operations by the user.
- the display unit 109 includes a VRAM and a liquid crystal screen, and displays various screens.
- Microphone 119 detects the sound, and outputs the detected sound to wireless communication control section 118.
- Speaker 120 receives the analog audio signal from wireless communication control section 118 and DZA conversion section 126, and outputs audio based on the received audio signal.
- FIGS. 15 to 35 are flowcharts showing the operation of the mobile phone 100.
- FIG. 36 to FIG. 40 are sequence diagrams showing transmission and reception of commands between programs in the operation of the mobile phone 100. The operation of the mobile phone 100 will be described using these flowcharts and sequence diagrams.
- each program in the normal memory 111 and the secure memory 113 communicates with other programs by a system call, a response notification, an external processing request, and a secure processing request.
- Fig. 15-Fig. 40 and in the following description the description of system calls, response notifications, external processing requests, and secure processing requests is omitted, and each program power is stored in the data storage section of these commands. Describe only data and commands.
- step S101 receives a button operation by the user through the input unit 108 (step S101). If the accepted operation indicates music playback, the music playback program 153 is started (step S102). If the accepted button operation indicates other processing, other processing is performed (step S103).
- a music decryption program registration process is performed (step S104).
- it requests the music decryption program 176 to perform decryption processing (step S106).
- the generated music data is expanded by a method according to MP3, converted to analog data to generate analog music data, and the generated analog music data is output by the speaker 120. Yes (step S107).
- Steps S106-108 are repeated until a button operation indicating the end of music playback is received by input unit 108 (step S108).
- step S108 When the button operation indicating the end of the music reproduction is received (YES in step S108), the music decryption program is deleted (step S109).
- FIG. 16-17 is a flowchart showing in detail the operation of each program in the music decryption program registration process. This corresponds to the sequence of Step S132 to Step S153 in FIG. The process of registering the music decryption program will be described with reference to the flowchart shown in FIGS. 16-17 and the sequence diagram of FIG.
- the music reproduction program 153 reads in advance coded daemon information and secure application information (step S131).
- the secure application registration request and the read demo information and secure application information are output to the normal OS 151 (step S132).
- the OS 151 saves the context of the music playback program 153 and writes the save destination address to the application context address of the entry 167 of the application management table (step S133).
- the encrypted music decryption program 141 corresponding to the received secure application information is read from the secondary storage unit 104 and written to the shared memory 112 (step S134).
- the secure application registration request is written in the command area of the shared memory 112 (step S136), and the process proceeds to the switching process 1 (step S137).
- the secure OS 171 registers the secure application from the shared memory 112.
- the recording request is read (step SI 38).
- the decryption program decrypts the encrypted music decryption program on the shared memory 112 to generate a music decryption program, and writes the generated music decryption program on the secure memory 113 (step S139).
- a secure memory in which the handle value “1” is set for the music decryption program, “1” is written to the handle value of entry 187 of the secure application management table 186, and the music decryption program 176 is written to the secure application address Write the address on 113 (step S141).
- step S143 the registration completion notification and the handle value “1” are written into shared memory 112 (step S143), and the process proceeds to switching process 2 (step S144).
- the OS 151 reads the registration completion notification and the handle value “1” from the shared memory 112 (Step S146).
- the read-out value "1" is written to the entry 167 of the application management table 166 (step S147).
- the music decryption daemon 142 is read from the secondary storage unit 104 based on the daemon information, and written on the normal memory 111 (step S149).
- the write destination address of the music decryption daemon 156 on the normal memory 111 is written to the entry 167 of the application management table 166 (step S151).
- step S152 the context of the music playback program 153 is returned to the CPU 102 based on the application context address of the entry 167 (step S152), and the received handle value “1” is output to the music playback program 153. Yes (step S153).
- the music reproduction program 153 writes the received value “1” into the storage area of the music reproduction program 153 itself in the normal memory 111 (step S154).
- FIGS. 18 to 27 show the operation of each program when the music decryption program 176 decrypts the encrypted music data at the request of the music reproduction program 153. This corresponds to step S193 in FIG. 36—step S347 in FIG.
- the music reproduction program 153 displays a selection screen including a music list and accepts a user's selection of a music piece (step S191).
- the song ID indicating the accepted song and the handle value "1" are read (step S192).
- the argument, the handle value “1”, and the decryption processing instruction are output to the normal OS 151 (step S193).
- the OS 151 stores the context of the music playback program 153 in the normal memory 111. Then, the address of the storage destination is written to the entry 167 containing the handle value “1” of the application management table 166 (step S197). Next, the received argument, the handle value “1”, and the decoding processing instruction are written in the shared memory 112 (step S198), and the switching processing 1 is performed (step S199).
- step S199 the secure OS 171 returns from the shared memory 112.
- the I number, the handle value “1”, and the decryption processing instruction are read (step S201).
- the music decryption program 176 is started based on the secure application address of the entry 187 including the read-out value “1” (step S202), and the read-out argument and the handle value “1” are read. And the decryption processing instruction to the music decryption program 176 (step S203).
- the music decryption program 176 receives the argument and the decryption processing instruction from the secure OS 171 and stores the received argument (song ID).
- the CPU 102 executes the music decoding program 176 (data reading step) (step S204).
- the music decryption program 176 reads the music ID (step S206), and outputs the data read command, the argument, and the handle value “1” to the secure OS 171 using the read music ID as an argument (step S208).
- the secure OS 171 receives the data read command, the argument, and the handle value "1" from the music decryption program 176, saves the context of the music decryption program 176 on the secure memory 113, and manages the save destination address in the secure application. Write to entry 187 of table 186 (step S209). Next, the received data read command, argument, and handle value “1” are written in the shared memory 112 (step S211), and the process proceeds to the switching process 2 (step S216).
- the normal OS 151 reads the data read command, the argument, and the handle value “1” from the shared memory 112 (step S217).
- the entry 167 including the handle value “1” in the application management table 166 is selected, and the music decryption daemon 156 is started by the demo address included in the selected entry 167 (step S218).
- the read data read command, the argument, and the handle value “1” are output to the music decryption daemon 156 (step S219).
- the music decryption daemon 156 receives the data read command, the argument, and the handle value "1".
- the access function stored in library 152 is called. And outputs the argument and the handle value “1” (step S221).
- the access function called by the music decryption daemon 156 outputs the read request, the argument, the device ID—A, and the received handle value “1” to the normal OS 151 (step S222).
- the normal OS 151 outputs the read request, the argument, the device ID—A, and the handle value “1” to the normal input / output device driver 157 corresponding to the received device ID—A (step S223).
- the normal input / output device driver 157 receives a read request, an argument, and a handle value “1”. Next, it is determined whether or not the force has the exclusive flag of “0” (step S224). If the exclusive flag is “1” (NO in step S224), the normal input / output device driver 157 issues an error notification indicating that the normal input / output device 132 is operating and cannot accept a new read request. Is output.
- the music decryption daemon 156 receives the error notification via the OS 151 and the access function, and outputs a read request again after a predetermined time has elapsed. Further, the received error notification may be output to the music decryption program 176 via the normal OS 151 and the secure OS 171 to stop the decoding process.
- step S224 If the exclusive flag is determined to be “0” (YES in step S224), the exclusive flag is changed to “1” (step S227), the received argument is output to the normal input / output device 132, and the data is read. Instruct (step S231).
- the normal input / output device 132 receives the argument (song ID) and the read request, reads out the encrypted music data 304 corresponding to the received song ID from the general area 303 of the memory card 300, and The writing of the read encrypted music data 304 into the shared memory 112 is started (step S236).
- the normal I / O device driver 157 When the normal I / O device driver 157 outputs a read request to the normal I / O device 132 (step S231), the normal I / O device driver 157 owns the device ID—A and the received handle value “1” to the normal OS 151. The sleep request including the message is output (step S232).
- the normal OS 151 Upon receiving the sleep request, the normal OS 151 puts the music decoding daemon 156 corresponding to the handle value “1” and the normal input / output device driver 157 corresponding to the device ID_A into a sleep state (step S233, step S233). S234). Next, executable by task scheduling The CPU 102 is allocated to another active program (step S238).
- step S239 When the processing in the normal input / output device 132 ends, an interrupt occurs, and the music decoding daemon 156 acquires a processing result (step S239).
- the process 1 when an interrupt occurs in step S239 will be described later.
- the processing in step S239 corresponds to the sequence in steps S463-478 in FIG.
- the music decryption daemon 156 acquires the write destination address of the encrypted music data on the shared memory 112 as the processing result by the normal input / output device 132.
- the obtained processing result and the handle value “1” are output to the normal OS 151 (step S241).
- the OS 151 writes the received processing result and the handle value “1” to the shared memory 112 (step S242), and performs switching processing 1 (step S244).
- the secure OS 171 reads the handle value “1” and the processing result from the shared memory 112 (Step S251). From the secure application management table 186, the entry 187 including the read-out value "1" is selected, and the context of the music decryption program 176 is returned to the CPU 102 by the secure application context address of the entry 187 (step S252). Next, the read processing result and the handle value “1” are output to the music decoding program 176 (step S254).
- the music decryption program 176 receives the write destination address of the encrypted music data as a processing result, and stores the received write destination address in its own storage area.
- the CPU 102 executes the music decryption program 176 (content key reading step) (step S256).
- the music decryption program 176 outputs to the secure OS 171 a system call including the content key read command, the device ID_B, and the handle value “1” indicating the music decryption program 176 itself (step S257).
- the secure OS 171 receives the content key read command, the device ID—B, and the handle value “1”, and sends the received content key read command to the secure I / O device driver 178 corresponding to the received device ID—B. And device ID—B and handle value “1” are output (step S258).
- the secure input / output device driver 178 receives the content key read command, the device ID—B and the handle value “1”, and sends the content key read command to the secure input / output device 133. Is output (step S259).
- the secure input / output device 133 receives the content key read command, and then performs mutual authentication with the secure processing unit 302 of the memory card 300 (step S262).
- step S263 acquisition of the content key is started (step S266). If the authentication has failed, a card error notification is output, and the acquisition of the content key is stopped (step S264).
- the music decryption daemon 156 and the music decryption program 176 stop the decryption processing, and the music reproduction program 153 displays a screen notifying that the memory card 300 cannot be read.
- the secure input / output device driver 178 outputs a sleep request to the secure OS 171, the received node value "1", and the device ID-B indicating the secure input / output device driver 178 itself.
- the sleep request output here does not request the secure OS 171 to perform sleep processing, but is a command stored in the data storage unit of the external processing request and mediated by the music decoding daemon 156.
- the secure OS 171 receives the sleep request, the handle value “1”, and the device ID—B from the secure input / output device driver 178, and sends the received sleep request, the handle value “1”, and the device to the shared memory 112. Write ID—B (step S272). Next, the process proceeds to the switching process 2 (step S273).
- step S273 the normal OS 151 reads out the sleep request, the handle value “1”, and the device ID-B from the shared memory 112 (step S274).
- the music decryption daemon 156 is started based on the entry 168 including the read handle value “1” (step S276), and the read sleep request, the device ID—B, and the handle value “1” are output (step S277). ).
- the music decryption daemon 156 normally receives a sleep request, a device ID-B, and a handle value "1" from the OS 151.
- a system call including the sleep request, the device ID-B, and the handle value “1” is output to the normal OS 151 (step S278).
- the secure OS 171 outputs the received sleep request, the device ID—B, and the handle value “1” to the secure input / output entry device driver 158 corresponding to the received device ID_B (step S281).
- the secure input / output entry device driver 158 Upon receiving a sleep request from the music decryption daemon 156 via the normal OS 151, the secure input / output entry device driver 158 sends a sleep request including the device ID-B and the handle value "1" to the normal OS 151. Output (Step S282).
- the OS 151 receives the sleep request, the device ID—B, and the handle value “1”.
- the sleep processing is performed to the secure input / output entry device driver 158 corresponding to the received device ID-B and the music decryption daemon 156 corresponding to the received node value “1” (step). S283, step S284).
- the normal OS 151 performs task scheduling, and allocates a CPU to another program in an executable state (step S286).
- step S287 The acquisition of the content key by the secure input / output device 133 is completed, and the music decryption program 176 acquires the processing result by the processing 2 (step S287) when an interrupt occurs.
- Processing 2 when an interrupt occurs in step S287 will be described later. Also, the processing in step S287 corresponds to step S512 in FIG. 38—step S541 in FIG.
- step S287 the music decryption program 176 acquires the address on the secure memory 113 where the content key is stored as the processing result.
- the CPU 102 executes the music decoding program 176 (decoding step) (step S291).
- the music decryption program 176 receives a decryption command, an argument, and a handle value using, as arguments, the address of the secure memory 113 where the content key is stored and the address of the shared memory 112 where the encrypted data is stored. "1" is output to the secure OS 171 (step S292).
- the secure OS 171 receives the decryption command, the argument, and the handle value "1" from the music decryption program 176. Next, the received decryption instruction, argument, and handle value “1” are written into the shared memory 112 (step S293), and the switching process 2 is performed (step S294).
- step S294 the normal OS 151 reads the decoding command, the argument, and the node value “1” from the shared memory 112 (step S296).
- step S296 the music decoding daemon 156 is started, and the read decryption command, argument, and handle value “1” are output to the music decoding daemon 156 (step S2 97).
- the music decryption daemon 156 normally transmits a decryption instruction, an argument, and a handle value "1" from the OS 151. receive. Upon receiving the decryption command, the received decryption command and arguments and the device ID—C
- the handle value “1” is output to the normal OS 151 (step S298).
- the OS 151 receives the decryption command, the argument, the device ID—C and the handle value “1” from the music decryption daemon 156, and sends the received decryption command and the argument to the received device ID—C and the corresponding cryptographic entry device driver 159. Then, the device ID—C and the handle value “1” are output (step S301).
- the encryption entry device driver 159 receives the argument, the decryption command, the device ID—C, and the handle value “1”, usually via the OS 151. If the exclusive flag is “l” when the decryption instruction is received (NO in step S303), the cryptographic processing device
- step S304 the music decryption daemon 156 that has received the error notification outputs the decryption command again after a predetermined time has elapsed.
- step S303 If the exclusive flag is "0" (YES in step S303), the exclusive flag is changed to "1" (step S306), and the received argument, decryption instruction, handle value "1", and device ID— Output C to OS151 (step S307)
- the OS invokes the music decryption daemon 156 corresponding to the received dollar value “1” and outputs the received decryption instruction, argument, handle value “1”, and device ID_C (step S 308). .
- the music decryption daemon 156 receives a decryption command, an argument, a handle value “1”, and a device ID—C from the encryption entry device driver 159 via the normal OS 151. Next, the received decryption command, argument, device ID—C, and handle value “1” are output to the normal OS 151 (step S309).
- the OS 151 receives the decryption command, argument, device ID—the handle value “1” from the music decryption daemon 156, and sends the received decryption command, argument, device ID—C, and handle value “1” to the shared memory 112. Is written (step S312), and the switching process 2 is performed (step S313) o
- the secure OS 171 reads the decryption command, the argument, the device ID_C, and the handle value "1" from the shared memory 112 (step S314). Reading The encryption device driver 179 is activated based on the extracted device ID_C (step S315), and the read decryption instruction, argument, and handle value “1” are output to the encryption device driver 179 (step S316).
- the cryptographic device driver 179 receives the decryption command, the argument, the device ID—C, and the handle value "1" from the secure OS 171, outputs the received argument to the cryptographic processing device 117, and instructs the decryption (step S317). .
- the encryption processing device 117 Upon being instructed by the encryption device driver 179 to decrypt, the encryption processing device 117 reads the content key from the secure memory 113, and uses the read content key to apply the decryption algorithm D1 to the encrypted data on the shared memory 112. To generate music data, and output the generated music data to the buffer 123 (step S318).
- the cryptographic device driver 179 After instructing the cryptographic processing device 117 to decrypt, the cryptographic device driver 179 transmits the sleep request, the handle value "1" received from the secure OS 171, and the device ID-C indicating the cryptographic device driver 179 itself. Is output to the secure OS 171 (step S321).
- the sleep request output here is not a request for sleep processing to the secure OS 171, but is a command stored in the data storage of an external processing request and mediated by the music decryption daemon 156.
- the secure OS 171 receives the sleep request, the handle value “1”, and the device ID—C from the cryptographic device driver 179, and sends the received sleep request, the handle value “1”, and the device ID—C to the shared memory 112. Write (step 3322). Next, switching process 2 is performed (step S323).
- the normal OS 151 reads the handle value “1”, the device ID_C, and the sleep request from the shared memory 112 (step S326).
- the music decoding daemon 156 is started based on the read handle value “1” and the application management table 166, and the read sleep request, the handle value “1”, and the device ID—C are output to the music decoding daemon 156. (Step S327).
- the music decoding daemon 156 normally receives a sleep request, a handle value "1", and a device ID-C from the OS 151.
- the received sleep request, the device ID—C, and the node value “1” indicating the music decryption daemon 156 itself are output to the normal OS 151 (step S328).
- Normal OS1 51 outputs the received sleep request, the device ID—C, and the handle value “1” to the encryption entry device driver 159 corresponding to the received device ID_C (step S329).
- the encryption entry device driver 159 receives the sleep request, the device ID—C, and the handle value “1” from the music decryption daemon 156 via the normal OS 151. Next, the sleep processing and the received handle value “1” and the device ID_C of the encryption entry device driver 159 itself are output to the normal OS 151 (step S332).
- the OS 151 receives the sleep request, the handle value “1”, and the device ID—C from the encryption entry device driver 159, and puts the music decryption daemon 156 corresponding to the received data and handle value “1” into the sleep state (Ste S333).
- the encryption entry device driver 159 corresponding to the received device ID_C is put into a sleep state (step S334).
- task scheduling is performed, and a CPU is allocated to the executable program (step S336).
- step S337 is described later. Note that step S337i corresponds to step S552 in FIG. 37—step S606 in FIG.
- the music decryption program 176 acquires a write destination address of the music data on the buffer 123 as a processing result by the encryption processing device 117.
- the CPU 102 executes the music decoding program 176 (music data output step) (step S338).
- the music decryption program 176 outputs the processing result, the application return request, and the handle value “1” to the secure OS 171 with the music data write destination address as the processing result (step S339).
- the secure OS 171 receives the application return request, the processing result, and the handle value "1", and writes the received application return request, the processing result, and the handle value "1" to the shared memory 112 (step S341). .
- the switching process 2 is performed (step S342).
- step S342 When the switching process 2 ends (step S342), the normal OS 151 reads out the application return request, the processing result, and the handle value “1” from the shared memory 112 (step S344).
- the context of the music decryption program 176 is restored based on the entry 167 including the handle value “1” in the application management table 166 (step S346).
- the read processing result is stored in a music decoding program. Output to 176 (step S347).
- the interrupt controller 107 detects the occurrence of the interrupt, and outputs an interrupt occurrence notification to the normal OS 151 (step S464). Normally, the OS 151 receives the interrupt occurrence notification and activates the normal interrupt handler 161 based on the interrupt table (Step S466). Then the normal interrupt handler 1
- An interrupt occurrence notification is output to 61 (step S467).
- the normal interrupt handler 161 controls the interrupt controller 107 and checks the cause of the interrupt (step S468). Next, the device ID-A corresponding to the normal input / output device causing the interrupt and the interrupt notification are output to the normal OS 151 (step S469).
- the normal OS 151 receives the interrupt notification and the device ID-A from the normal interrupt handler 161.
- the sleep state of the received device ID—A and the corresponding normal input / output device driver 157 and the music decoding daemon 156 that has been subjected to the sleep process together with the normal input / output device driver 157 are released (steps S471 and S472), and the CPU 102 is set to the normal state. Assigned to I / O device driver 157.
- the normal input / output device driver 157 is released from sleep, outputs a result request to the normal input / output device 132 (step S473), and outputs a processing result from the normal input / output device 132 to the encryption memory on the shared memory 112 as a processing result.
- the destination address of the dani music data is obtained (step S474).
- the exclusive flag is set to “0” (step S476), and the obtained processing result, the node value “1” received as identification information indicating the output source of the read request, and the normal input / output
- the device driver 157 outputs the device ID_A indicating itself to the normal OS 151 (step S477), and the normal OS 151 sends the received processing result and the handle value “1” to the music decoding daemon 156 corresponding to the handle value “1”. And the device ID—A are output (step S478).
- the above-described process 1 when an interrupt occurs indicates an operation when an interrupt occurs during execution of the normal OS 151 or a program in the normal memory 111 managed by the normal OS 151.
- the operation when an interrupt occurs during the execution of a program managed by the secure OS 171 or the secure OS 171 will be described with reference to the flowchart of FIG.
- the interrupt controller 107 detects the interrupt and outputs an interrupt notification to the secure OS 171 (step S493).
- the secure OS 171 receives an interrupt occurrence notification from the interrupt controller 107. Upon receiving the notification of the occurrence of the interrupt, it activates the secure interrupt handler 181 (step S494) and outputs the notification of the occurrence of the interrupt (step S496).
- the secure interrupt handler 181 receives the interrupt notification, performs an interrupt mask process on the CPU 102 (step S497), and outputs an interrupt notification to the secure OS 171 (step S497).
- the secure OS 171 receives the interrupt notification from the secure interrupt handler 181, and writes the received interrupt notification to the shared memory 112 (step S499). Next, the secure OS 171 and the normal OS 151 perform the switching process 2 (step S501).
- step S501 When the switching process 2 is completed (step S501), an interrupt occurrence notification is read from the shared memory 112, and the CPU interrupt mask is released (step S502).
- step S502 is the same as the processing after step S464 in FIG.
- step S287 in FIG.
- step S541 in FIG.
- the interrupt controller 107 detects the occurrence of the interrupt, and outputs an interrupt occurrence notification to the normal OS 151 (step S513).
- the OS 151 receives the interrupt occurrence notification from the interrupt controller 107, and activates the normal interrupt handler 161 (Step S514). Next, an interrupt occurrence notification is output to the normal interrupt handler 161 (step S516).
- the normal interrupt handler 161 receives the notification of the occurrence of the interrupt and investigates the factor causing the interrupt (step S517). It detects that the secure input / output device 133 is generating an interrupt, and outputs the device ID—B corresponding to the secure input / output device 133 and the interrupt notification to the normal OS 151 (step S518).
- the OS 151 receives the interrupt notification and the device ID-B from the normal interrupt handler 161.
- the sleep of the secure input / output entry device driver 158 corresponding to the received device ID-B and the music decoding daemon 156 that has been subjected to the sleep process together with the secure input / output entry device driver 158 is released (step S519, step S521). . Allocate CPU 102 to secure input / output entry device driver 158.
- the secure input / output entry device driver 158 which has been released from sleep, receives the interrupt notification, the handle value "1" received as identification information indicating the output source of the sleep request, and the secure input / output entry device driver 158 itself. And outputs the device ID_B of the OS to the normal OS 151 (step S523).
- the OS 151 Normally, the OS 151 outputs the received interrupt notification, the handle value “1”, and the device ID-B to the music decryption daemon 156 corresponding to the received dollar value “1” (step S524).
- the music decryption daemon 156 receives the interrupt notification, the handle value "1", and the device ID-B.
- the received interrupt notification, the device ID-B, and the middle value “1” indicating the music decryption daemon 156 itself are output to the normal OS 151 (step S527).
- the OS 151 receives the interrupt notification, the device ID—B, and the handle value “1” from the music decryption daemon 156.
- the received interrupt notification and device ID—B and handle value “1” are shared.
- the data is written to the memory 112 (step S529), and the process proceeds to the switching process 1 (step S531).
- the secure OS 171 reads the interrupt notification, the device ID-B, and the handle value "1" from the shared memory 112 (step S532), and based on the read device ID-B.
- the secure input / output device driver 178 is started (step S533).
- the read interrupt notification, the device ID—B, and the handle value “1” are output to the secure input / output device driver 178 (step S534).
- the secure input / output device driver 178 receives the interrupt notification, the device ID—B, and the handle value “1”, and requests a processing result from the secure input / output device 133 (Step S536). Then, a content key storage address on the secure memory 113 is received as the processing result (step S537). A response notification including the received processing result, the handle value “1”, and the device ID—B is output to the secure OS 171 (step S539)
- the secure OS 171 outputs the received processing result, the handle value "1", and the device ID-B to the music decryption program 176 corresponding to the received dollar value "1" (Step S541).
- step S337 in FIG. Processing 3 when an interrupt occurs corresponds to the sequence from step S552 in FIG. 40 to step S606 in FIG.
- the encryption processing device 117 Upon completion of the decryption of the encrypted music data, the encryption processing device 117 generates an interrupt (step S552).
- the interrupt controller 107 detects the occurrence of the interrupt and normally issues an interrupt occurrence notification to the OS 151. (Step S553).
- the OS 151 receives the interrupt occurrence notification from the interrupt controller 107 and activates the normal interrupt handler 161 (Step S556).
- An interrupt notification is output to the normal interrupt handler 161 (step S557).
- the normal interrupt handler 161 Upon receiving the notification of the occurrence of the interrupt, the normal interrupt handler 161 investigates the cause of the interrupt (step S558). It detects that the cryptographic processing device 117 has generated an interrupt, and outputs a device ID—C and an interrupt notification to the normal OS 151 (step S561).
- the OS 151 receives the interrupt notification and the device ID-C from the normal interrupt handler 161. Releases the sleep of the encryption device driver 159 corresponding to the received device ID-C and the music decryption daemon 156 that has been subjected to the sleep process together with the encryption entry device driver 159 (steps S562 and S563), and the encryption entry device driver. Assign CPU 102 to 159.
- step S564 the OS 151 receives the interrupt notification, the handle value “1”, and the device ID—C, and sends the interrupt notification, the handle value “1”, and the device ID_C to the music decryption daemon 156 corresponding to the received handle value “1”. Is output (step S567).
- the music decryption daemon 156 receives the device ID-C and the interrupt notification from the encryption entry device driver 159 via the normal OS 151. Next, the received interrupt notification and device ID-C and the handle value “1” corresponding to the music decryption daemon 156 itself are output to the normal OS 151 (step S568).
- the OS 151 receives the interrupt notification, the device ID—C, and the handle value “1” from the music decryption daemon 156, and sends the received interrupt notification, the device ID—C, and the handle value “1” to the shared memory 112. Write (step S571).
- step S572 the normal OS 151 and the secure OS 171 perform the switching process 1 (step S572).
- the secure OS 171 reads the interrupt notification, the device ID C, and the handle value “1” from the shared memory 112 (Step S576).
- Read device ID Start the cryptographic device driver 179 based on C, and output the read interrupt notification, the device ID_C, and the handle value “1” (step S577).
- the cryptographic device driver 179 receives the interrupt notification and the device ID-C handle value "1", and requests the cryptographic processing device 117 for the processing result (step S578). From the encryption processing device 117, a write destination address of music data on the buffer 123 is obtained as a processing result (step S579).
- the cryptographic device driver 179 outputs the obtained processing result, the received handle value “1”, and the device ID—C indicating the cryptographic device driver 179 itself to the secure OS 171 (step S582).
- the secure OS 171 receives the processing result, the handle value “1”, and the device ID—C from the cryptographic device driver 179, and stores the received processing result, the handle value “1”, and the device ID—in the shared memory 112. (Step S583).
- step S584 the secure OS 171 and the normal OS 151 perform the switching process 2 (step S584).
- the normal OS 151 reads the handle value “1”, the processing result, and the device ID—C from the shared memory 112 (Step S586).
- the music decryption daemon 156 is activated based on the read handle value “1”, and the read processing result, the handle value “1”, and the device ID_C are output to the music decryption daemon 156 (step S587).
- the music decryption daemon 156 normally receives the processing result, the handle value “1”, and the device ID—C from the OS 151.
- a system call including the received processing result, the device ID—C, and the node value “1” indicating the music decryption daemon 156 itself is output to the normal OS 151 (step S588).
- the OS 151 Normally, the OS 151 outputs the received processing result, the device ID-C, and the handle value "1" to the device driver 159 corresponding to the device ID-C (step S589).
- the encryption entry device driver 159 receives the processing result, the device ID—C, and the handle value “1” from the music decryption daemon 156 via the normal OS 151, and changes the exclusive flag to “0” (step S592). Next, the cipher entry device driver 159 sends the received processing result to the music decryption daemon 156 by notifying the response to the normal OS 151 (step S596). The result, the handle value “1” and the device ID—C are output (step S597).
- the music decryption daemon 156 receives the processing result, the handle value "1", and the device ID-C from the music decryption daemon 156 via the secure OS 171. Next, the received processing result and the handle value “1” are output to the normal OS 151 (step S598).
- the OS 151 receives the processing result and the handle value “1” from the music decryption daemon 156, and writes the received processing result and the handle value “1” to the shared memory 112 (Step S601).
- step S602 the normal OS 151 and the secure OS 171 perform the switching process 1 (step S602).
- the secure OS 171 reads the handle value “1” and the treatment result from the shared memory 112 (Step S603).
- the context of the music decryption program 176 is restored based on the entry 187 containing the handle value “1” on the secure application management table 186 (Step S604), and the read processing result is output to the music decryption program 176 (Step S604). S606).
- the deletion process of the music decryption program will be described with reference to the flowchart shown in FIG. This is a detail of step S109 in FIG. Also, the music decryption program deletion process corresponds to the sequence of steps S611-618 in FIG.
- the music decryption program 176 outputs the secure application deletion command and the handle value “1” to the normal OS 151 (step S611).
- the OS 151 receives the handle value "1" and the secure application deletion instruction from the music decryption program 176, and writes the received nurse value "1" and the secure application deletion instruction to the shared memory 112 (Step S). 612).
- the normal OS 151 and the secure OS 171 perform the switching process 1 (step S613).
- the secure OS 171 reads the secure application deletion instruction and the handle value “1” from the shared memory 112 (Step S614).
- the music decryption program 176 is deleted from the secure memory 113 based on the secure application address of the entry including the handle value “1” on the secure application management table 186 (step S616), and the entry 187 including the handle value “1” is deleted. It is deleted from the secure application management table 186 (step S617).
- step S619 the secure OS 171 and the normal OS 151 perform the switching process 2 (step S619).
- the normal OS 151 reads the deletion process completion notification and the handle value “1” from the shared memory 112 (Step S621).
- the music decryption daemon 156 is deleted from the normal memory 111 based on the handle value “1” and the application management table 166 (step S622).
- a deletion completion notification is output to the music reproduction program 153 (step S623), and the entry 167 including the handle value “1” is deleted from the application management table 166 (step S624).
- the music reproduction program 153 which is usually dictated on the memory 111 and executed is a process to be protected, specifically, the encrypted music data.
- the music decryption program 176 loaded on the secure memory 113 and executed.
- the music decryption program 176 and the music decryption daemon 156 on the normal memory 111 operate as a pair, and among the series of processes related to decryption of encrypted music data, the processes to be protected include music decryption.
- the processing that is shared by the program 176 and does not need to be protected is handled by the music decryption daemon 156.
- the program size of the music decoding program 176 itself is reduced, and the data and variables held by the music decoding program 176 are also reduced.
- the music decryption daemon 156 uses the functions stored in the library on the normal memory 111. Therefore, there is no need to have a library on the secure memory 113. [0255] Therefore, in a series of decryption processes by the music decryption program 176 and the music decryption daemon 156, the capacity of the secure memory 113 to be secured is reduced, and the load on the protection mechanism that protects the secure memory 113 is reduced. be able to.
- the cryptographic entry device driver 159 is loaded and executed.
- the OS 151 normally causes the encryption entry device driver 159 to transition to the execution state by a system call from the music decryption daemon 156.
- the encryption entry device driver 159 performs exclusive control and calls the music decryption daemon 156.
- the music decryption daemon 156 calls the encryption device driver 179 via the normal OS 151 and the secure OS 171.
- the secure OS 171 causes the cryptographic device driver 179 to transition to the execution state.
- the encryption device driver 179 outputs a sleep request.
- the encryption entry device driver 159 requests the normal OS 151 to perform a sleep process. To a dormant state.
- the processing by the cryptographic processing device 117 ends, an interrupt occurs, and the OS 151 normally releases the sleep state of the music decryption daemon 156, and makes a transition to the execution state.
- the encryption entry device driver 159 outputs an interrupt notification, and the music decryption daemon 156 outputs an interrupt notification to the encryption device driver 179 via the normal OS 151 and the secure OS 171.
- the OS 151 allocates the CPU 102 to the cryptographic device driver 179 and sets the CPU 102 to the execution state.
- the cryptographic device driver 179 and the cryptographic entry device driver 159 make a state transition correspondingly. Therefore, the normal OS 151 can manage the use state of the cryptographic processing device 117 managed by the secure OS 171 via the cryptographic entry device driver 159.
- the OS 151 can monitor and control the operation of the secure input / output device 133.
- FIG. 43 shows an example of data stored in the normal memory 111. This shows the state in the normal memory 111 immediately after the activation of the mobile phone 100.
- the boot program 162 is stored in advance in a ROM constituting the normal memory 111, and the boot program 162 is a program that is read and executed by an activation unit included in the mobile phone 100, although not specifically illustrated. It is.
- the activation unit reads the boot program 162 from the normal memory 111 immediately after the power of the mobile phone 100 is turned on, and operates according to the read boot program 162.
- the boot program will be described by the operation of the boot unit according to the boot program 162.
- the boot program 162 clears the register of the CPU 102 and the MMU 103, and outputs an initialization request to the switching control unit 106.
- the initialization control unit 106 receives from the switching control unit 106 an initialization completion notification notifying that the initialization of the program on the secure memory 113 has been completed. And initialize.
- the mobile phone 100 is initialized by the switching control unit 106 and the boot program at the time of startup. The operation at the time of activation of the mobile phone 100 will be described using a flowchart shown in FIG.
- step S651 When the power of the mobile phone 100 is turned on and power supply is started (step S651), the activation unit activates the boot program 162 (step S652).
- Boot program 16 In step 2 initialization is performed by first clearing the registers of the CPU 102 and the MMU 103 (step S653). Next, an initialization request is output to the switching control unit 106 (step S654).
- the switching control unit 106 Upon receiving the initialization request, the switching control unit 106 reads the encrypted secure OS from the secondary storage unit 104 (Step S656).
- the secure OS is generated by decrypting the read encrypted OS (step S657).
- the bus 130 and the secure memory 113 are connected by the memory protection unit 114 (step S658).
- the generated secure OS is written into the secure memory 113 and initialized (step S659).
- the secure switching device driver is read from the secondary storage unit 104 and loaded on the secure memory 113 (step S661).
- step S662 the secure memory 113 and the bus 130 are disconnected by the memory protection unit 114 (step S662), and an initialization completion notification is output to the boot program 162 (step S663).
- the boot program 162 receives the initialization completion notification from the switching control unit 106, and then loads programs such as the normal OS 151 and the normal switching device driver 160 onto the normal memory and initializes them (Step S664).
- the encryption OS and the secure switching device driver are described as being stored on the secondary storage unit 104. Even if they are stored on an external recording medium or the like. Good.
- the normal input / output device driver 157, the secure input / output entry device driver 158, and the encryption entry device driver 159 are programs resident on the normal memory 111 under the control of the normal OS 151.
- the secure input / output device driver 178 and the encryption device driver 179 are programs resident on the secure memory 113 under the control of the secure OS 171.
- the boot program 162 loads the normal OS 151, the normal switching device driver 160, and the like onto the normal memory 111, and activates the normal OS 151 when initialization is completed.
- the normal OS 151 When the normal OS 151 starts up, it first searches for a program loaded on the normal memory 111, and determines whether the normal input / output device driver 157, the secure input / output entry device driver 158, and the encryption entry device driver 159 are loaded. Judge and load If not, the data is read from the secondary storage unit 104 and loaded.
- the secure input / output device driver 178 and the cryptographic device driver 179 are also stored on the secure memory 113 by the secure OS 171. Loaded. Since this operation by the normal OS 151 and the secure OS 171 is similar to the music decryption program registration process described above, a brief description will be given here. It is assumed that the secondary storage unit 104 stores in advance each device driver and an encrypted device driver generated by encrypting the entry device driver.
- the normal OS 151 When it is determined that the secure input / output entry device driver has not been loaded, the normal OS 151 reads the secure input / output entry device driver from the secondary storage unit 104 and writes it to the normal memory 111.
- the write destination address and the secure input / output entry device driver 158 are stored in association with each other.
- a device driver registration request instructing the device driver mode and a device ID-B indicating a secure input / output device driver are written in the shared memory 112.
- a switching instruction is output to the normal switching device driver 160.
- the switching process ends, and the secure OS 171 returns to the CPU 102.
- a request for registration of the driver and the device ID-B are read.
- the write destination address and the device ID_B are stored in association with each other.
- the normal OS 151 reads out the notification of the completion of the driver registration from the shared memory 112.
- the encryption entry device driver is similarly loaded.
- the secure OS 171 includes the MMU control program 184 as shown in FIG.
- the MMU control program 184 is executed by the MMU 103
- the program is a program that converts a physical address and a logical address of the secure memory 113, the shared memory 112, and the secondary storage unit 104 into a virtual storage space.
- FIG. 46 shows an example of a virtual storage space realized by the MMU control program 184. As shown in FIG. 45, it is assumed that a music decryption program 176 and a communication key generation program 185 are loaded on the secure memory 113. The music decryption program 176 and the communication key generation program 185 are secure applications.
- the music decryption program 176 and the communication key generation program 185 are loaded in the virtual space 201 and the virtual space 204, respectively.
- Each program is individually assigned an ordinary shared space 202 and an ordinary shared space 206.
- the normal shared space 202 and the normal shared space 206 are virtual spaces that each program shares with a program on the normal memory 111.
- the music decryption program 176 cannot access the virtual space 204 and the normal shared space 206. Further, the communication key generation program 185 cannot access the virtual space 201 and the normal shared space 202.
- the secure shared space 207 contains a music decryption program 176 and a communication key generation program 185! It is a virtual space that can be accessed by the slip force, but cannot be accessed by the program power that normally operates under the control of the OS 151.
- the secure OS 171 is loaded in the virtual space 208.
- the secure OS 171 can access the virtual spaces 201 and 204, but cannot access the virtual space 208 from the music decryption program 176 and the communication key generation program 185.
- the MMU control program 184 assigns a separate virtual space to each application and performs control so that they cannot access each other.
- the MMU control program 184 implements the above-described virtual storage space on the secure memory 113, the shared memory 112, and the secondary storage unit 104.
- the MMU control program 184 includes an encryption processing program, and when data stored on the secure memory 113 is paged out to the secondary storage unit 104, the data is encrypted and the secondary storage is performed. When page-in is performed from the unit 104 to the secure memory 113, the page may be decrypted.
- the music decryption program 176 and the communication key generation program 185 Even if you can access each other in the shared space.
- the music playback program 153b is loaded on the normal memory 111 in place of the music playback program 153.
- the music reproduction program 153b includes an external processing manager 156b, and the external processing manager 156b, like the above-described music decryption demo 156, needs to be protected in the decryption processing of the encrypted music data. Share no processing. It also inputs and outputs various information and commands between the music decryption program 176 and the normal OS 151.
- each entry of the application management table 166 is composed of a handle value and an application context address.
- the OS 151 receives the command including the handle value “1” as the identification information indicating the receiving destination, the OS 151 restores the context of the music reproduction program 153 based on the application management table 166, and sends the CPU 102 to the thread of the external processing manager. Assign.
- the music reproduction program 153 since the music reproduction program 153 includes the external processing manager 156b, it is not necessary to load the music decryption daemon 156 into the normal memory when registering the music decryption program.
- the registration process described in the first embodiment can be shortened.
- the secure input / output entry device driver 158 and the secure input / output device driver 178 are identified by the same identification information device ID—B, but may be identified by different identification information. good. The same applies to the encryption entry device driver 159 and the encryption device driver 179! /.
- the normal OS 151 and the secure OS 171 each have a secure device driver management table 231 shown in FIG. 48 in their respective storage areas as control data.
- the secure device driver management table 231 shown in FIG. 48 includes two secure device driver management information 232 and 234. Each secure device driver management information is stored in the entry device. And a secure device driver identifier.
- the secure device driver identifier is identification information indicating a device driver that controls a device managed by the secure OS 171.
- An entry device driver identifier is a program on the normal memory 111 that operates in combination with the device driver. Is the identification information indicating Specifically, the secure device driver management information 232 includes a device ID_B, which is information for identifying the secure input / output entry device driver 158, and a secure input / output device driver operating in combination with the secure input / output entry device driver 158. It consists of “100” which is information for identifying 178.
- the secure device driver management information 234 includes the identification information device ID-C indicating the encryption entry device driver 159, and the identification information “101” indicating the encryption device driver 179 that operates in combination with the encryption entry device driver 159. And
- the secure device driver management table 231 is generated when the normal OS 151 and the secure OS 171 are started.
- the normal OS 151 loads the secure input / output entry device driver onto the normal memory 111
- the secure input / output The device ID-B which is the identification information indicating the entry device driver, is written in the shared memory 112, and the process proceeds to the switching process.
- the secure OS 171 reads out the device ID-B from the shared memory 112, then reads out the encrypted device driver from the secondary storage unit 104, decrypts it, and decrypts it on the secure memory 113.
- the secure device driver management information 232 including the identification information “100” indicating the loaded secure input / output device driver and the received device ID—B is generated and written on the secure memory 113.
- the identification information “100” is written into the shared memory 112, and the process proceeds to the switching process.
- the normal OS 151 reads the identification information "100" from the shared memory 112, and uses the read identification information "100" and the device ID-B indicating the secure input / output entry device driver 158.
- the secure device driver management information is generated and written into the normal memory 111.
- the secure device driver management table 231 generated as described above, the secure input / output entry device driver 158 and the cryptographic entry device driver 158 are used. No. 159 is managed.
- the secure OS 171 uses the secure device driver management table 231 to manage the secure input / output device driver 178 and the encryption device driver 179.
- the secure OS 171 includes the debug invalidation program, but the secure switching device driver 180 may have this function.
- the secure switching device driver 180 each time the secure switching device driver 180 is called from the switching control unit 106, the secure switching device driver 180 first invalidates the debugger IF101, and then restores the context of the secure OS 171.
- the switching control unit 106 instead of the program on the secure memory 113, the switching control unit 106
- F101 may be disabled and enabled.
- the normal input / output device driver 157 and the cryptographic entry device driver 159 perform exclusive control using the exclusive flag.
- the normal input / output device driver 157 and the encryption entry device driver 159 have a QUEUE for storing the received processing request, and upon receiving the processing request, instead of checking the exclusive flag, Store the received processing request in QUEUE.
- the normal input / output device driver 157 acquires the processing result after the normal input / output device 132 finishes processing. Next, the next processing request is read out and output to the normal input / output device 132.
- the cryptographic entry device driver 159 receives the processing result, and processes the received processing result. When output, the next processing request is read from QUEUE. The read processing request is output to the encryption device driver 179.
- a buffer area dedicated to the cryptographic entry device driver 159 may be provided, and the received processing request and the priority of the received processing request may be written in the buffer area in association with each other.
- the cryptographic device driver 179 reads a processing request with a high priority and outputs it to the cryptographic processing device 117.
- the secure switching device driver 180 is the force that saves and restores the context of the secure OS 171.
- S is the normal switching device driver: L
- the secure OS 171 outputs a switching instruction to the switching control unit 106.
- the switching control unit 106 outputs a disconnection instruction to the memory protection unit 114, and disconnects the secure memory 113 and the bus 130.
- the normal switching device driver 160 is called.
- the normal switching device driver 160 saves the context of the secure OS 171 including the register of the CPU 102 and the contents of the MMU 103 in the normal memory 111, clears the CPU 102 and the MMU 103, and restores the context of the normal OS 151.
- the normal switching device driver 160 In the switching process 1 from the normal OS 151 to the secure OS 171, upon receiving a switching instruction from the normal OS 151, the normal switching device driver 160 saves the context of the normal OS 151 and clears the CPU 102 and the MMU 103. Next, the context of the secure OS 171 is restored, and a switching instruction is output to the switching control unit 106.
- the normal switching device driver 160 on the normal memory 111 saves and restores the context of the secure OS 171, thereby eliminating the need for the secure switching device driver 180 on the secure memory 113. Therefore, the capacity of the secure memory 113 can be reduced.
- the mobile phone 100 forms a virtual storage space with the MMU 103.
- a configuration that does not use a virtual storage space may be used.
- the data and programs stored in each memory are managed by physical addresses.
- the secure switching device driver 180 restores the start address of the secure OS 171 to the CPU 102 and activates the secure OS 171 from the beginning.
- the mobile phone 100 includes the normal OS 151 loaded on the normal memory 111 and the secure OS 171 loaded and executed on the secure memory 113. ! /, RU 1S Normally equipped with OS 151.
- the boot program 162 is first activated after the power is turned on. After initializing the CPU 102 and the MMU 103, the boot program 162 outputs an initialization request to the switching control unit 106, and the switching control unit 106 loads the secure OS 171 and the secure switching device driver 180 onto the secure memory 113. .
- Secure OS 171 load Various programs are loaded on the secure memory 113 and the normal memory 111.
- Each program in the normal memory 111 outputs all commands including the system call to the normal switching device driver 160 in place of the normal OS 151.
- the normal switching device driver 160 When receiving the command from the program on the normal memory 111, the normal switching device driver 160 writes the received command into a predetermined storage area and performs a switching process. When the OS 171 returns to the CPU 102, the command is read from a predetermined storage area.
- the configuration may not include the secure OS 171.
- the security switching device driver 180 or the switching control unit 106 has a debugger disabling program.
- Each program on the secure memory 113 outputs all commands including the system call to the secure switching device driver 180.
- the secure switching device driver 180 writes the received command in the command area on the shared memory 112, and outputs a switching instruction to the switching control unit 106.
- the OS 151 reads a command output from a program on the secure memory 113 from the command area of the shared memory 112.
- the normal OS 151 may control each program on the normal memory 111 and the secure memory 113.
- the switching control unit 106 and the memory protection unit 114 disconnect the secure memory 113 and the bus 130 so that programs and data on the secure memory 113 can be transferred to an external device. Protect your access.
- the data in the secure memory 113 may be protected by encrypting and decrypting the data in the secure memory 113.
- the switching control unit 106 instructs the memory protection unit 114 to perform encryption or decryption instead of the connection instruction or the disconnection instruction.
- the memory protection unit 114 encrypts or decrypts data in the secure memory 113 according to an instruction from the switching control unit 106.
- only the code portion, only the data portion, or only the stack portion of the music reproduction program 153 may be encrypted if necessary, instead of all the data in the secure memory 113.
- the normal OS 151 manages the application management table 166, and uses the application management table 166 to execute a program (for example, the music decryption daemon 156) corresponding to the relevant application and the secure application. ) Is calling.
- a program for example, the music decryption daemon 1566 corresponding to the relevant application and the secure application.
- the configuration is provided with a program that manages the application management table 166 and calls the program separately from the normal OS 151. Also good. This program is called a daemon control program.
- each application and the program including the music decryption daemon 156 output a secure processing request to the daemon control program instead of the normal OS 151.
- the daemon control program writes the received secure processing request in the shared memory 112, and outputs a switching instruction to the normal switching device driver 160.
- the mobile phone 100 has been described as one embodiment of the present invention, but may be an information processing apparatus having the same function, for example, a personal computer.
- the normal memory 111 and the secure memory 113 include a RAM and a hard disk.
- the secure OS 171 and the music decryption program 176 may be encrypted and stored in advance in the hard disk portion of the secure memory 113 before being stored in the secondary storage unit 104. .
- Embodiment 2 of the present invention will be described below.
- FIG. 49 shows a usage example of the mobile phone 400 according to Embodiment 2 of the present invention.
- the 400 is connected to the revocation list issuing device 250 via the base station 15, the mobile phone network 10, and the Internet 20.
- the revocation list issuing device 250 manages information related to the revoked programs, generates a revocation list indicating these programs, and sends the generated revocation list to the mobile phone 400 via the Internet 20. Send.
- the mobile phone 400 receives the revocation list from the revocation list issuing device 250, and determines whether or not the stored program is invalid based on the received revocation list. .
- the revocation list issuing device 250 includes a communication unit 251, a signature generation unit 252, a key storage unit 253, a hash generation unit 254, a control unit 257, an information storage unit 260, an input unit 262, and a display unit. It consists of 263.
- the revocation list issuing device 250 is, specifically, a computer system including a microprocessor, a RAM, and a ROM. A computer program is stored in the RAM and ROM, and the revocation list issuing device 250 achieves its function by the microprocessor operating according to the computer program.
- the information storage unit 260 stores an OS revocation list 266 and an application revocation list 276, as shown in FIG.
- the OS invalidation list 266 is composed of a publisher ID 267, a list ID 268, and invalidation IDs 269, 270, 27 1.
- the issuer ID 267 indicates the issuer of the OS revocation list, and includes, for example, the device ID of the revocation list issuance device 250 and the identification information of the administrator of the revocation list issuance device 250.
- the list ID 268 is information indicating the old and new of the OS revocation list 266.
- "20041015" which is the creation of the OS revocation list 266, is the list ID 268.
- Revocation IDs 269, 270, 271 ⁇ ⁇ ⁇ are the identification information of the revoked operating system.
- the application invalidation list 276 includes a publisher ID 277, a registration ID 278, and invalidation IDs 279, 280, 281 '.
- the issuer ID 277 is information indicating the issuer of the application revocation list, and includes, for example, the device ID of the revocation list issuing device 250, the identification information of the administrator of the revocation list issuing device 250, and the like.
- the list ID 278 is information indicating the new and old versions of the application revocation list 276.
- "20041009” which is the creation of the application invalidation list 276, is used as the list ID 278!
- the revocation IDs 279, 280, 281 ⁇ ⁇ ⁇ are the identification information of the revoked application
- the communication unit 251 is connected to the Internet 20, and transmits and receives information between the control unit 257 and an external device connected to the Internet 20.
- the external device is the mobile phone 400.
- the hash value generation unit 254 receives the OS revocation list 266 and the hash generation instruction from the control unit 257. Further, it receives the application revocation list 276 and a hash generation instruction.
- the received OS revocation list 266 or application revocation list 276 is substituted for the nosh function, and 160-byte OS digest data or application digest data is generated.
- SHA-1 is used as an example for the Nosh function. No.
- the hash function SHA-1 is a known technique, and a description thereof will be omitted. You can also use other hash functions!
- the generated OS digest data or application digest data is output to the control unit 257.
- the key storage unit 253 stores an issuing device private key unique to the revocation list issuing device 250 and an issuing device public key corresponding to the issuing device private key.
- the signature generation unit 252 receives the OS digest data or the application digest data from the control unit 257, and is instructed to generate a signature.
- the issuing device private key is read out from the key storage unit 253, and a signature generation algorithm S is added to the received OS digest data using the read issuing device private key. Then, signature data is generated, and the generated signature data is output to the control unit 257.
- the signature generation algorithm S uses, for example, an oval DSA signature, an RSA (RivestShamirAdleman) signature, or the like.
- signature data is generated in the same manner and output to the control unit 257.
- the control unit 257 receives a list request for requesting transmission of the latest OS revocation list and application revocation list from the mobile phone 400 via the communication unit 251 and the Internet 20.
- the OS revocation list 266 is read from the information storage unit 260, the read OS revocation list 266 is output to the hash generation unit 254, and a hash and hash generation instruction is output.
- the OS digest data is received from the NO / SH generation unit 254.
- Receive The generated OS digest data is output to the signature generation unit 252 to instruct signature generation.
- the signature data is received from the signature generation unit 252.
- the received signature data is added to the OS revocation list 266 to generate a signed OS revocation list.
- the application revocation list 276 is instructed to the hash value generation unit 254 and the signature generation unit 252 to generate signature data.
- the generated signature is attached to the mobile phone 400 via the communication unit 251 and the Internet 20.
- the control unit 257 receives various instructions and data from the operator via the input unit 262, and operates according to the received instructions.
- the input unit 262 receives an instruction and data input by the operator of the revocation list issuing device 250, and outputs the received instruction and data to the control unit 257.
- the display unit 263 displays various screens according to an instruction from the control unit 257.
- the hardware configuration of the mobile phone 400 is almost the same as the configuration of the mobile phone 100 shown in FIG. 2, and includes a debugger IF, CPU, MMU, secondary storage unit, switching control unit 106, interrupt controller, input unit, display unit, Normal memory, shared memory, secure memory 413, memory protection unit 414, input / output unit, cryptographic processing device, wireless communication control unit, microphone, speaker, communication unit, buffer, code processing unit, DZA conversion unit .
- each unit other than the secure memory 413 and the memory protection unit 414 is the same as that of the mobile phone 100, a detailed description is omitted, and only a portion different from the mobile phone 100 will be described here.
- the secure memory 413 stores various programs such as a music decryption program 446 and a secure OS 441.
- the music decoding program 446 includes a procedure for decoding encrypted music data, and the description of this procedure is omitted.
- the music decryption program 446 includes an application ID 447 and an invalid flag 448 in a header portion.
- the application ID 447 is identification information unique to the music decryption program 446.
- the invalid flag 448 is a flag indicating whether or not the music decryption program 446 has been disabled, and the invalid flag “1” indicates that the music decryption program 446 has been disabled.
- the flag “0” indicates that it has not been invalidated.
- the secure OS 441 is the software that executes the same processing as the secure OS 171 of the first embodiment, the description of the operation of the secure OS 441 is omitted. However, when starting each application on the secure memory 413 or returning the CPU to the secure memory 413, the secure OS 441 reads the invalid flag in the header of each application, and if the invalid flag S is “l”, the application is started. Or cancel return.
- the secure OS 441 includes a secure OS ID 442 and an invalid flag 443 in the header portion.
- the secure OS ID 442 is identification information corresponding to the secure OS 171.
- the invalid flag 443 is a flag indicating whether or not the secure OS 441 has been invalidated, the invalid flag “1” indicates that the music decryption program 446 has been invalidated, and the invalid flag “0” has been invalidated. , Indicating that it has not been disabled.
- the secure switching device driver loaded on the secure memory 413 and performing the switching process reads the invalid flag 443 of the secure OS 441 before returning the context of the secure OS 441 to the CPU. If the invalid flag strength is “l”, the return of the secure OS441 is stopped.
- the memory protection unit 414 includes a revocation list storage unit 421, a revocation list update unit 424, an application verification unit 428, an application revocation unit 429, an OS verification unit 431, and an OS revocation unit 432, Be composed.
- the revocation list storage unit 421 stores an application revocation list 422 and an OS revocation list 423.
- the application revocation list 422 and the OS revocation list 423 have the same configurations as the application revocation list 276 and the OS revocation list 266 stored in the information storage unit 260 of the revocation list issuance device 250, respectively. .
- the revocation list updating unit 424 stores the signature verification key 426 in advance.
- the signature verification key 426 is the same key as the issuing device public key stored in the key storage unit 253 of the revocation list issuing device 250.
- the revocation list updating unit 424 receives, from the switching control unit 106, a connection instruction for instructing connection between the secure memory 413 and the bus 130.
- a connection instruction for instructing connection between the secure memory 413 and the bus 130.
- a list request for transmitting the latest application revocation list and OS revocation list is transmitted to the revocation list issuing device 250 via the wireless communication control unit and the communication unit.
- a signed OS revocation list and a signed application revocation list are received from the revocation list issuing device 250 via the wireless communication control unit and the communication unit.
- the signature verification is performed on the received signature data of the signed OS revocation list using the signature verification key. More specifically, the signature data is subjected to a signature verification algorithm V using a signature verification key to generate check data.
- the signature verification algorithm V is an algorithm for verifying the signature data generated by the signature generation algorithm S.
- the received OS revocation list is substituted into a hash function to generate OS digest data.
- the generated check data is compared with the digest data. If the two match, the signature verification is determined to be successful. If not, the signature verification is determined to have failed. If the signature verification fails, stop comparing the list ID and updating the OS revocation list described below.
- Signature verification is similarly performed on the received signed application revocation list. If the signature verification fails, stop the comparison of the application ID and update of the application revocation list described below.
- list IDs included in the received OS revocation list and the OS revocation list 423 stored in the revocation list storage unit 421 are compared. If both are the same, discard the received OS revocation list.
- the list ID of the received OS revocation list is stored in the revocation list storage unit 42 If the date indicates a newer date than the list ID of the stored OS revocation list 423, the OS revocation list 423 stored in the revocation list storage unit 421 is stored in the received OS revocation list. Update by
- the received application revocation list is compared with the old and new application revocation lists 422 stored in the revocation list storage unit 421, and the application revocation list 422 is compared. If is older, the application revocation list 422 in the revocation list storage unit 421 is updated with the received application revocation list.
- the OS verification unit 431 reads the secure OSID 442 from the header of the secure OS 441.
- the OS revocation list 423 is read from the revocation list storage unit 421, and it is determined whether or not the read secure OSID 442 is included in the invalid ID of the OS revocation list 423! /. If the secure OSID 442 is included in the OS revocation list 423, it is determined that the secure OS 441 is invalid, and instructs the OS revocation unit 432 to revoked.
- the OS invalidating unit 432 is instructed to invalidate by the OS verifying unit 431, and rewrites the invalid flag in the header of the secure OS 441 to “1”.
- the application verification unit 428 also reads the application ID 447 from the header part of the music decryption program 446 on the secure memory 413.
- the application revocation list 422 is read from the revocation list storage unit 421, and it is determined whether the application ID 447 is included in the application revocation list 422 or not.
- the music decryption program 446 is determined to be an invalid program, and the invalidation is instructed to the application revocation unit 429.
- the application invalidating unit 429 receives the instruction of invalidation from the application verifying unit 428, and sets the invalid flag of the music decryption program 446 to “1”.
- the application verification unit 428 and the application invalidation unit 429 similarly determine whether or not the application case is invalid for all the applications, and If invalid, the setting of the invalid flag is repeated.
- connection instruction is received from the switching control unit 106 (step S671).
- the revocation list updating unit 424 transmits a list request to the revocation list issuing device 250 via the wireless communication control unit 118 and the communication unit 121 (step S672).
- a signed OS revocation list and a signed application revocation list are acquired via the communication unit and the wireless communication control unit (step S673).
- the revocation list updating unit 424 reads the signature verification key 426, and performs signature verification of the obtained signed OS revocation list and signed application revocation list using the read signature verification key (step S674). ). If the signature verification fails (NO in step S676), the process proceeds to step S681 by the OS verification unit.
- step S676 the list IDs of the OS revocation list 423 and the application revocation list 422 stored in the revocation list storage unit are read (step S677).
- the OS It is determined whether the revocation list 423 and the application revocation list 422 are the latest versions (step S678).
- step S678 If it is determined that it is not the latest version (N0 in step S678), the OS revocation list 423 stored in the revocation list storage unit 421 and the OS revocation list 423 and the received application revocation list are used.
- the application revocation list 422 is updated (step S679).
- step S679 If it is determined that the version is the latest version (YES in step S678), the processing in step S679 is omitted.
- the OS Upon completion of the processing by the revocation list updating unit 424 in step S672—679, the OS is verified.
- the unit 431 reads the secure OSID 442 from the secure memory 413 (step S681), and determines whether the secure OS 441 is invalid or valid depending on whether the read secure OS ID 442 is registered in the OS revocation list 423. It is determined whether there is (Step S682).
- step S683 If it is determined that the application is valid (YES in step S683), the process proceeds to step S686 by the application verification unit 428.
- the OS invalidating unit 432 sets the invalid flag 443 of the secure OS 441 to “1” (step S684).
- the application verification unit 428 reads out the application ID 447 of the music decryption program 446 on the secure memory 413 (step S686), and reads the read application. It is determined whether or not the music decryption program 446 is valid or invalid depending on whether the ID is registered in the application revocation list 422 or not! (Step S687).
- step S688 If it is determined that it is valid (YES in step S688), the verification processing ends. If it is determined to be invalid (NO in step S688), the application invalidating unit 429 sets the invalid flag of the music decoding program 446 to “1” (step S689).
- the mobile phone 400 of the present embodiment acquires the latest OS revocation list and application revocation list from the revocation list issuing device 250 as needed. Based on the obtained OS revocation list and application revocation list, the application stored in the secure memory 413 including the secure OS 441 and the music decryption program 446 is effective. Judgment is made as to whether or not there is a certain force.
- Embodiment 2 of the present invention may have the following configuration.
- the revocation list issuing device 250 stores the OS revocation list and the application revocation list.
- the OS revocation list uses the revoked IDs 269, 270, 271 ⁇ ⁇ ⁇ instead of the revoked operating system. It is configured to include the certificate ID of the secure OS certificate (described later).
- the application revocation list also includes the certificate ID of the application certificate (described later) of the revoked application instead of the revocation IDs 279, 280, 281 ⁇ ⁇ ⁇ ⁇ .
- the mobile phone 400 includes a memory protection unit 454 in place of the memory protection unit 414, and includes a secure memory 453 in place of the secure memory 413. Instead of the memory protection unit 414 determining whether each program is valid or invalid based on the ID unique to each program on the secure memory 413, the memory protection unit 454 determines whether each program on the secure memory 453 is valid. Is determined by using a certificate unique to.
- the secure memory 453 includes a music decryption program 476 and a secure OS 481 as shown in FIG.
- the secure OS 481 includes a secure OS certificate 482 and an invalid flag 483 in the header portion.
- the secure OS certificate 482 is a public key certificate according to X.509. As shown in Fig. 55, the issuer ID 484, certificate ID 487, secure OS public key 488, signature algorithm 489, and CA signature are used. Including 491.
- the issuer ID 484 is an identifier of a certificate authority (hereinafter, referred to as a CA: Certificate Authority) that has issued the secure OS certificate 482.
- the secure OS public key 488 is a public key unique to the secure OS 481 whose validity is proved by the secure OS certificate 482.
- the signature algorithm 489 is identification information indicating the algorithm used to generate the CA signature 491.
- the CA signature 491 is generated using the private key of the CA that issued the secure OS certificate 482 and applying the algorithm S1 indicated by the signature algorithm 489 to the issuer ID 484 and certificate ID 487 ' Signature data.
- the invalid flag 483 indicates whether the secure OS 481 is valid or invalid.
- the music decryption program 476 includes an application certificate 477 and an invalid flag 478 in its header.
- the application certificate 477 has a configuration in which the secure OS public key 488 in FIG. 55 is replaced with an application public key.
- the invalid flag 478 indicates whether the music decryption program 476 is invalid or valid.
- the memory protection unit 454 includes a revocation list storage unit 461, a revocation list update unit 424, a key storage unit 464, an application verification unit 468, an application revocation unit 429, an OS verification unit 471, and an OS. It comprises a nullification unit 432.
- the revocation list storage unit 461 includes an OS revocation list 463 and an application revocation list 462 as shown in FIG.
- the OS revocation list 463 has the same configuration as the OS revocation list stored in the revocation list issuing device 250, and includes the certificate ID of the revoked operating system.
- the application revocation list 462 has the same configuration as the application revocation list stored in the revocation list issuing device 250, and includes the certificate ID of the revoked application.
- the key storage unit 464 stores the CA public key 466.
- the CA public key 466 is the public key of the CA that issued the secure OS certificate 482 and the application certificate 477, and the CA used to generate the CA signature included in the secure OS certificate 482 and the application certificate 477. It is a key that is paired with his secret key.
- ⁇ OS verification unit 471> When the processing of updating the OS revocation list and the application revocation list by the revocation list update unit 424 is completed, the OS verification unit 471 reads the secure OS certificate 482 included in the secure OS 481 from the secure memory 453.
- the CA public key 466 is read from the key storage unit 464, and the signature verification algorithm VI is applied to the CA signature 491 included in the secure OS certificate 482 using the read CA public key 466 to perform signature verification.
- the signature verification algorithm V1 is an algorithm for verifying the signature data generated by the signature generation algorithm S1.
- the certificate ID 487 included in the secure OS certificate 482 is used to determine whether or not the secure OS 481 is invalid according to whether or not it is registered in the OS revocation list 463. judge. If it is registered, it is determined that the secure OS481 is an invalid program, and the OS invalidation unit 432 is instructed to invalidate the secure OS481.
- the OS verification unit 471 determines that the secure OS 481 is a valid program.
- the signature of the secure OS certificate 482 is verified, and if the signature verification is successful, the certificate ID 487 is used to determine whether or not the certificate is registered in the OS revocation list 463. It may be determined whether or not the certificate ID 487 is registered in the OS revocation list 463, and if it is not registered, signature verification may be performed.
- the application verification unit 468 reads the application certificate 477 included in the music decryption program 476 from the secure memory 453.
- the CA public key 466 is read from the key storage unit 464, and the signature verification algorithm VI is performed on the CA signature included in the application certificate 477 using the read CA public key 466 to perform signature verification.
- the subsequent processing is stopped and the application disabling unit 429 is instructed to disable the music decryption program 476.
- the music decryption program 476 is invalid is determined based on whether the certificate ID included in the application certificate 477 is registered in the application revocation list 462. Is determined. If the music decryption program 476 is registered, it is determined that the music decryption program 476 is invalid, and the application invalidating unit 429 is instructed to invalidate the music decryption program 476.
- the music decryption program 476 determines that it is a valid program.
- the music decryption program 476 may include a plurality of certificates forming a hierarchical structure.
- FIG. 56 shows the configuration of a plurality of certificates included in the music decryption program 476 and the hierarchical structure of these certificates.
- the music decryption program 476 includes an application certificate 501, a manufacturer certificate 511, and a CA certificate 521, as shown in FIG.
- the application certificate 501 includes an issuer 502, a certificate ID 503, an application public key 504, a signature algorithm 506, and a manufacturer signature 508.
- the issuer 502 is identification information indicating the application maker that is the issuer of the application certificate 501. In FIG. 56, “app maker” is described for convenience of explanation.
- the certificate ID 503 is identification information unique to the application certificate 501.
- the application public key 504 is a public key unique to the music decryption program 476, and its validity is proved by the application certificate 501.
- the signature algorithm 506 is identification information indicating the signature generation algorithm used to generate the maker signature 508.
- the manufacturer signature 508 is included in the application certificate 501 such as the issuer 502, certificate ID 503, application public key 504, and signature algorithm 506 using the application manufacturer private key 519 unique to the manufacturer of the music decryption program 476. This is the signature data generated by applying the signature generation algorithm S2 to the information to be processed.
- the manufacturer certificate 511 is composed of the issuer 512, certificate ID 513, manufacturer public key 514, and signature key. It comprises a algorithm 516 and a CA signature 518.
- the issuer 512 is identification information indicating the CA that issued the manufacturer certificate 511.
- CA is described for convenience of explanation.
- the certificate ID 513 is identification information unique to the manufacturer certificate 511.
- the manufacturer public key 514 is the public key of the manufacturer of the music decryption program 476, and its validity is proved by the manufacturer certificate 511.
- the public key 514 is a key corresponding to the private key 519 of the application maker.
- the signature algorithm 516 is identification information indicating the signature generation algorithm used to generate the CA signature 518.
- the CA signature 518 is generated by applying the signature generation algorithm S3 to the information included in the maker certificate 511 such as the issuer 512, certificate ID 513, maker public key 514, and signature algorithm 516, using the CA private key 529. Signed data.
- the CA certificate 521 includes an issuer 522, a certificate ID 523, a CA public key 524, a signature algorithm 526, and a root CA signature 528.
- the issuer 522 is identification information indicating the root CA that is the issuer of the CA certificate 521.
- “Root CA” is described for convenience of explanation.
- the certificate ID 523 is identification information unique to the CA certificate 521.
- the CA public key 524 is the public key of the CA, and its validity is proved by the CA certificate 521.
- the CA public key 524 is a key corresponding to the CA private key 529.
- the signature algorithm 526 is identification information indicating the signature generation algorithm used to generate the root CA signature 528.
- the root CA signature 528 uses the root CA private key 531 for information included in the CA certificate 521, such as the issuer 522, certificate ID 523, CA public key 524, and signature algorithm 526, using the root CA private key 531. This is the signature data generated by applying the signature generation algorithm S4.
- the root CA private key 531 is a private key unique to the root CA.
- the CA corresponds to a sales maker of the mobile phone 400
- the root CA corresponds to a public certificate issuing organization.
- an OS certificate 482 of the secure OS 481 that controls the music decryption program 476, a certificate assigned to the mobile phone 400, and a certificate of the manufacturer of the secure OS 481 may be used.
- the key storage unit 464 stores a root CA public key instead of the CA public key 466.
- the root CA public key is the key corresponding to the root CA private key 531 .
- the revocation list storage unit 461 stores a maker revocation list and a CA revocation list in addition to the application revocation list 462.
- the manufacturer revocation list is a list that contains the certificate IDs of the revoked key certificates
- the CA revocation list is a list that contains the certificate IDs of the revoked CA certificates.
- the application verification unit 468 reads the CA certificate 521 and the root CA public key, and applies the signature verification algorithm V4 to the root CA signature 528 included in the CA certificate 521 using the read root CA public key.
- the signature verification algorithm V4 is an algorithm that verifies the signature data generated by the signature generation algorithm S4.
- the application verification unit 468 stops the following processing, and instructs the application invalidation unit 429 to invalidate the music decryption program 476.
- the maker certificate 511 is read out, and the signature verification algorithm V3 is applied to the CA signature 518 included in the read maker certificate 511 using the CA public key 524 included in the CA certificate 521.
- the signature verification algorithm V3 is an algorithm that verifies the signature data generated by the signature generation algorithm S3.
- the application verification unit 468 stops the following processing and instructs the application invalidation unit 429 to invalidate the music decryption program 476.
- the signature verification is successful, it is next determined whether or not the certificate ID 513 included in the manufacturer certificate 511 is registered in the manufacturer revocation list. Then, the following processing is stopped, and the application disabling unit 429 is instructed to disable the music decryption program 476.
- the application certificate 501 is read next.
- the signature verification algorithm V2 is performed on the signature 508 included in the read application certificate 501 to perform signature verification.
- Signature verification The algorithm V2 is an algorithm that verifies the signature data generated by the signature generation algorithm S2.
- the application verification unit 468 cancels the following processing and instructs the application invalidation unit 429 to invalidate the music decryption program 476.
- music decoding program 476 is a valid program.
- the secure OS 481 may be similarly verified using a plurality of certificates.
- the OS revocation list includes the date when the OS revocation list was generated as the list ID.
- One John number may be included as the list ID 543.
- the version information is a number indicating the generation of the OS revocation list, and the larger the value is, the more recent it is.
- the total number of invalidation IDs may be included as the list ID 553. Since the total number of invalidated programs cannot decrease, the total number of invalidated IDs is used as the list ID, and the larger the value of the list ID is, the newer the OS invalidation list is. be able to.
- the revocation list issuance device 250 generates the OS revocation list and the abrasion revocation list, but the application revocation list and the OS revocation list may be issued by different sources. good.
- the OS revocation list is generated and issued by a revocation list issuing device managed by the operating system developer.
- the app revocation list is Generated and issued by the revocation list issuing device managed by the developer of the application.
- the OS verification may verify the secure application
- the application verification unit may verify the secure OS
- the application revocation list and OS revocation list transmitted by the revocation list issuing device 250 are always the latest, and the application revocation lists 422 and 422 stored in the revocation list storage unit 421. It is unlikely that OS revocation list 423 is newer. Accordingly, the revocation list update unit 424 omits the above-described comparison of list IDs when updating the application revocation list and the OS revocation list, and if signature verification is successful, unconditionally
- the application revocation list 422 and the OS revocation list 423 may be updated with the application revocation list and the OS revocation list received from the revocation list issuing device 250.
- the mobile phone of the present embodiment is connected to the revocation list issuing device via the mobile phone network and the Internet.
- the revocation list issuing device like the revocation list issuing device 250 according to the second embodiment, has a communication unit, a signature generation unit, a key storage unit, a hash generation unit, a control unit, an information storage unit 610, It comprises an input unit and a display unit.
- the configurations and operations of the communication unit, signature generation unit, key storage unit, hash generation unit, input unit, and display unit include the communication unit 251 included in the revocation list issuing device 250, the signature generation unit 252, and the key storage. It is almost the same as the unit 253, the hash generation unit 254, the input unit 262, and the display unit 263, and the hash generation unit replaces the OS invalidation list and the application invalidation list with the OS matrix invalidation.
- OS list data (to be described later) is generated, and application matrix invalidation list (to be described later) is also generated as application digest data. Description of these units is omitted, and is a feature of the present embodiment. Only the information storage unit 610 and the control unit will be described.
- the information storage unit 610 includes an application issuance key matrix 601, an OS issuance key matrix 602, a pre-invalidation ⁇ blue report 604, 606, a pre-matrix inactivation list 611, and an OS matrix.
- an application issuance key matrix 601 an OS issuance key matrix 602
- a pre-invalidation ⁇ blue report 604 606
- a pre-matrix inactivation list 611 615
- an OS matrix revocation list 621.
- the application issue key matrix 601 has 16 issue keys Key-11, Key-12, and Key-13 as the matrix elements of a 4-by-4 matrix. Things.
- Each issuance key is, for example, 64-bit key data generated using a pseudo-random number.
- the application issuing key matrix 601 arranges the row numbers "1", “2”, “3”, and “4" in the vertical direction from the top, and sequentially sets the column numbers “1", “2”, “3” and “4" are arranged.
- the matrix element 661 corresponding to the row number “1” and the column number “1” is the issue key Key-11
- the matrix element 662 corresponding to the row number “1” and the column number “2” is the issue key Key.
- the matrix element 663 corresponding to the row number “1” and the column number "3” is the issue key Key-13
- the matrix element 664 corresponding to the row number "1” and the column number "4" is the issue key Key_14. It is.
- matrix elements 665-668 of row number "2", column numbers "1" and "4" are issued keys Key-21, Key-22, Key-23 and Key-24, respectively.
- the matrix elements 669-672 of the row number "3" and the column numbers "1"-"4" are the issued keys Key-31, Key-32, Key-33, and Key-34.
- the matrix elements 673-676 with row number "4" and column numbers "1"-"4" are Key-41, Key-42, Key-43, and Key-44.
- each secure application is assigned a total of four issued keys, one from each column of the application issued key matrix 601. The combination of the four issued keys differs for each secure application.
- a music decryption program executed on a mobile phone includes an application issuing key matrix 601 surrounded by a solid line circle 677, 678, 679, 680! Issued keys Key_ll, Key_32, Key_23, and Key_14 are assigned.
- a secure application (called application B) that is different from the music decryption program includes the issuance keys Key 21, Key 32, and Key 33, which are surrounded by dotted circles 681, 682, 683, and 684.
- Key —44 is assigned.
- the OS issuance key matrix 602 has the same configuration as the application issuance key matrix 601 and stores 16 issuance keys as matrix elements of a 4 ⁇ 4 matrix.
- Fig. 59 shows an application-specific key matrix 592 included in the encrypted music decryption program 591 (described later) stored in the mobile phone according to the present embodiment and an encryption key decryption program OS 596 (described below) included in the program. OS-specific key matrix 597.
- the application unique key matrix 592 has a one-to-one correspondence with a music decryption program generated by decrypting the encryption / decryption music decryption program 591, and includes four issued keys assigned to the music decryption program. .
- the application-specific key matrix 592 includes four pieces of key information 901, 902, 903, and 904. Each key information includes a column number, a row number, and an issuance key.
- the key information 901 includes an issuance key Key-11 assigned to the music decryption program from a matrix element in the first column of the application issuance key matrix 601. And a row number “1” and a column number “1” corresponding to Key-11 on the application issuing key matrix 601.
- the key information 902 includes an issue key Key-32 assigned to the music decryption program in the second column of the application issue key matrix 601 and a row number "3" corresponding to Key-32 on the application issue key matrix 601. ”And column number“ 2 ”.
- the key information 903 is composed of the issue key Key-23 assigned to the music decryption program in the third column of the application issue key matrix 601 and the row number “2” corresponding to Key-23 on the application issue key matrix 601. "And the column number” 3 ".
- the key information 904 includes an issuance key Key-14 assigned to the music decryption program in the fourth column of the abri issue key matrix 601, and a row number “1” corresponding to Key-14 on the application issuance key matrix 601. And column number "4".
- the OS unique key matrix 597 has the same configuration as the application unique key matrix, and has the key information 90 6, 907, 908, and 909, and each key information includes a column number and a row number issuing key.
- a secure OS generated by decrypting the encrypted OS 596 stored in the present embodiment is assigned a total of four issued keys, one from each column of the OS issued key matrix 602. Has been. The combination of these four keys differs for each operating system.
- the key information 906—909 is obtained from each column of the OS unique key matrix 602 by using the unique key assigned to the secure OS and the column number and row number on the OS unique key matrix 602 corresponding to the unique key. Contains.
- the application revocation information 604, 606 ⁇ extracts the key information sequence numbers and row numbers of the application-specific key matrix of the revoked application.
- the application revocation information 604 corresponds to the application B described above.
- the application invalidation information 604 is shown in Fig. 58.
- the column number “1” —931 and the row number “2” —935 correspond to the issue key Key-21 assigned to the application ⁇ ⁇ ⁇ from the first column of the application issue key matrix 601.
- Column number “2” —932, row number “3” —936, and the second column of the pre-issued key matrix 601 correspond to the issued key Key—32 assigned to application B.
- column number “3” —933 and row number “3” —937 correspond to issue key Key—33
- column number “4” and row number “4” correspond to issue key Key—44. Yes, it is.
- the information storage unit 610 stores an OS invalidity obtained by extracting a column number and a row number from each key information function of the OS-specific key matrix of the invalidated operating system. Memorization information.
- the application matrix invalidity list 611 is configured by arranging 16 even rows of IJ elements 911-926 in a matrix of 4 rows ⁇ 4 columns.
- the matrix element stored in the matrix element at the i-th row and the j-th column is represented using a variable Mij.
- the variable Mij is used as a decryption key for decrypting an encrypted music decryption program 591 and other encrypted applications using the issuance key in the i-th row and the j-th column on the application issuance key matrix 601. It is generated by applying the optimization algorithm E2. Enc (Key—ij, Key) is generated by encrypting the decryption key using the issued key Key-ij.
- the variable Mil which is a matrix element 911 having a row number “1” and a column number “1”
- the decryption key is encrypted using the key Key_ll.
- the application matrix revocation list 611 is generated when the application revocation information stored in the information storage unit 610 is only the application revocation information 604.
- the matrix elements M21, M32, M33, and M44 corresponding to the row number and column number included in the application revocation information 604 encrypt the dummy data “0000” using the issue key instead of the decryption key. It is a thing.
- the OS matrix revocation list 621 has the same configuration as the application matrix revocation list 611, in which 16 matrix elements are arranged in a matrix of 4 rows x 4 columns.
- the matrix element at the i-th row and the j-th column is a decryption key for decrypting various encryption operating systems including the encrypted secure OS 596, and the issuance key arranged at the i-th row and the j-th column of the OS issuance key matrix 602. It was used for encryption. However, the matrix element corresponding to the row number and the column number included in the OS revocation information is obtained by encrypting dummy data instead of the decryption key.
- the application matrix revocation list 611 and the OS matrix revocation list include list IDs indicating the new and old versions.
- the control unit receives a list request from a mobile phone via the Internet.
- the OS matrix revocation list 621 and the application matrix revocation list 611 are read from the information storage unit 610, and the signature-added OS to which the signatures generated by the hash control unit and the signature generation unit are added.
- the matrix revocation list and the signed application matrix revocation list are sent to the mobile phone. This is the same as the generation and transmission of the signed OS revocation list and the signed application revocation list by the control unit 257 of the second embodiment, and thus a detailed description is omitted.
- control unit accepts, via the input unit, an instruction from the operator to input new application revocation information and generate an application matrix revocation list. According to the instructions received , A new application matrix revocation list is generated.
- the application issuance key matrix 601 and the application matrix revocation list are not limited to 1S in which 16 elements are arranged in a 4 ⁇ 4 matrix.
- the case of p rows and n columns is described more generally. (, 11 is an integer of 1 or more)
- a decryption key is assigned to each of the p X n matrix elements Ml l, M12-... ⁇ (step S721).
- the variable j for storing the column number and the variable i for storing the row number are initialized to 0 (step S722).
- step S723 the application invalidation information is read (step S723), and 1 is added to the variable j (step S724) 0
- step S724 The row number corresponding to the column number j of the read application invalidation information is extracted and extracted.
- the line number is assigned to a variable i (step S726).
- step S727 the dummy data “0000” is substituted for the matrix element Mij (step S727).
- step S731 If it is determined that all the application invalidation information has been read (YES in step S731), 0 is substituted for the variable i (step S734), and 0 is substituted for the variable j (step S736). Next, 1 is added to the variable i (step S737), and 1 is added to the variable j (step S739).
- the issued key Key-ij at the i-th row and the j-th column of the application issued key matrix 601 is read (step S741).
- the encryption element E2 is applied to the matrix element Mij to generate Enc (Key-ij, Mij), and the generated Enc (Key-ij, Mij) is converted to Mij. substitute (Step S742).
- the OS matrix revocation list is generated by the same procedure using the OS issuance key matrix and OS revocation information.
- the mobile phone according to the present embodiment has a configuration similar to that of mobile phone 400 according to the second embodiment. Therefore, the description of the same parts as in the second embodiment is omitted here, and only the characteristic parts of the present embodiment will be described.
- the secure memory 613 stores an encrypted music decryption program 591 and an encrypted secure OS 596 as shown in FIG.
- the encryption decryption program 591 is generated by applying the encryption decryption algorithm E3 to a music decryption program including the same music decryption procedure as the music decryption program 446 of the second embodiment.
- the encryption and decryption music decryption program 591 includes an application-specific key matrix 592 and an invalid flag 593 that are unique to the music decryption program in a header portion.
- the application unique key matrix 592 is as described above.
- the invalid flag 593 is a flag indicating whether or not the music decryption program is invalid. If it is “0”, it is valid, and if it is “1”, it is invalid.
- the encrypted secure OS 596 is generated by applying the encryption algorithm E3 to a secure OS having the same operating function as the secure OS 441 of the second embodiment.
- the encrypted secure OS 596 includes an OS-specific key matrix 597 unique to the secure OS and an invalid flag 598 in a header portion. About OS unique key matrix 597 , As described above.
- the invalid flag 598 is a flag indicating whether or not the secure OS is invalid. "0" indicates that the secure OS is valid, and "1" indicates that the secure OS is invalid.
- the memory protection unit 571 includes a revocation list storage unit 572, a revocation list update unit 575, an application verification unit 578, an application revocation unit 579, an OS verification unit 581, an OS revocation unit 582, and an encryption It comprises a decoding unit 586.
- the revocation list storage unit 572 stores the application matrix revocation list 573 and the OS matrix revocation list 574.
- the application matrix revocation list 573 and the OS matrix revocation list 574 have the same configurations as the application matrix revocation list 611 and the OS matrix revocation list stored in the information storage unit 610 of the revocation list issuing device.
- the operation of the revocation list update unit 575 is the same as that of the revocation list update unit 424 of the second embodiment. Instead of the application revocation list and the OS revocation list, the application matrix revocation list and the OS Update the matrix revocation list.
- the operations of the application disabling unit 579 and the OS disabling unit 582 are the same as those of the application disabling unit 429 and the OS disabling unit 432 of the second embodiment, and thus will not be described again here.
- the application verification unit 578 uses the application-specific key matrix 592 included in the encryption program decryption program 591 and the application matrix revocation list 573 stored in the revocation list storage unit 572 to decrypt the code. Generate a decryption key for program 591. If the decryption key can be generated correctly, it is determined that the music decryption program is valid. If it cannot be generated, it is determined that the music decryption program is invalid. The detailed procedure for verifying the music decryption program will be described later.
- the generated decryption key is output to the encryption / decryption unit 586, and the decryption of the encrypted music decryption program 176 is instructed.
- the application invalidation unit 579 is instructed to invalidate the application.
- the OS verification unit 581 determines whether the secure OS generated by decrypting the encrypted OS 596 is valid or invalid, similarly to the application verification unit 578.
- an OS unique key matrix 597 and an OS matrix revocation list 574 are used.
- the encryption / decryption unit 586 receives the decryption key of the encrypted secure OS 596 from the OS verification unit 581, and is instructed to decrypt.
- the decryption algorithm D3 is applied to the encryption OS 596 on the secure memory 613 using the received decryption key to generate a secure OS.
- D3 is an algorithm for decrypting the ciphertext generated by the encryption algorithm E3, and uses, for example, DES, AES (Advanced Encryption Standard), etc.
- a disconnection instruction output from the switching control unit 576 and indicating disconnection between the secure memory 613 and the bus 130 is detected.
- the music decryption program and the secure OS are encrypted using the received decryption key to generate the encrypted music decryption program 591 and the encrypted secure OS 596.
- the memory protection unit 571 receives the connection instruction (Step S701).
- the revocation list updating unit 575 acquires the latest application matrix revocation list and OS matrix revocation list from the revocation list issuing device via the Internet, and stores the revocation list storage unit 572.
- the application matrix revocation list 573 and the OS matrix revocation list 574 stored in the application matrix are updated (step S702).
- the process of step S702 by the revocation list updating unit 575 is the same as the process of step S672—679 (FIG. 49) by the revocation list updating unit 424 of the second embodiment, and invalidates the OS revocation list in the OS matrix.
- the OS verification unit 581 verifies the secure OS (step S703), and if it determines that the secure OS is valid (YES in step S706), sends the encryption / decryption OS 596 to the encryption / decryption unit 586.
- the decryption unit 586 decrypts the encrypted secure OS 596 and generates a secure OS (step S707).
- step S706 If it is determined that the secure OS is invalid (NO in step S706), an instruction is given to the OS invalidating unit 582 to set the invalid flag 598 to “1” (step S709).
- the application verifying unit 578 verifies whether or not the music decryption program is valid (step S711). If it is determined to be valid (YES in step S712), the encryption / decryption unit 586 decrypts the encrypted music decryption program 591 to generate a music decryption program (step S713).
- step S712 If it is determined that the application is invalid (NO in step S712), the application invalidating unit 579 sets the invalid flag 593 to “1” (step S716).
- the application matrix revocation list 573 constitutes a matrix of 4 rows ⁇ 4 columns
- the application unique key matrix 592 is composed of four pieces of key information. More generally, the case where the application matrix revocation list 573 forms a matrix of n rows and p columns and the application unique key matrix 592 also includes p pieces of key information will be described.
- the application verification unit 578 reads the application unique key matrix 573 (Step S731). For convenience of explanation, a variable i indicating a row number and a variable j indicating a column number will be introduced and described.
- the application verification unit 578 substitutes 1 for a variable j (Step S732).
- the row number corresponding to the column number j of the application unique key matrix 592 is substituted for a variable i (step S733).
- a matrix element Mij is read from the application matrix invalidation list 573 (step S736).
- An issuance key Key-ij is extracted from the application unique key matrix 592, and a decryption algorithm D2 is applied to the read matrix element Mij using the extracted issuance key Key-ij to perform decryption (step S737). If the decryption result is not “0000” (NO in step S739), it is determined that the music decryption program is valid (step S741), and the decryption result, that is, the encrypted music decryption program is determined.
- the decryption key of the program 591 is output to the decryption unit 586 (step S742).
- step S703 the secure OS verification by the OS verification unit 581 in step S703 is performed by replacing the application-specific key matrix in the flow chart of Fig. 61 with the OS-specific key matrix, and replacing the application matrix revocation list with the OS matrix revocation list. Since it has been replaced, the description is omitted.
- the encrypted music decryption program 591 and the encrypted secure OS 596 on the secure memory 613 of the mobile phone are respectively provided with the unique application-specific key matrix 592 and the OS-specific key matrix. Contains 597.
- the memory protection unit 571 determines whether the music decryption program is valid based on the application matrix revocation list 573 and the application unique key matrix 592. Only when it is valid, it is possible to generate a decryption key from the application matrix revocation list 573.
- the validity is determined using the OS matrix revocation list 574 and the OS-specific key matrix.
- each application is assigned a total of four issue keys, one from each column. At this time, they are assigned in such a manner that they do not match the issued key strengths assigned to different applications.
- the music decryption program according to the present embodiment is assigned issuing keys Key-11, Key-32, Key-23, and Key-14, and these issuing keys are assigned to the encrypted music decryption program 590. Included in the application-specific key matrix 592.
- App B Applications that are shipped from the same manufacturer as the music decryption program (called App B) are assigned harmful keys Kev 21, Key 32, Key 33, and Key 44.
- the application issuing key matrix of the encryption key application B includes these four issuance keys.
- Application invalidation information 604 is added.
- the application revocation information 604 includes four issue keys assigned to the application B, and corresponding column numbers and row numbers.
- the application matrix revocation list 611 generated based on the application revocation information 604 includes dummy data in the matrix elements M21, M32, M33, and M44.
- the decryption key cannot be generated with the four issuance keys assigned to.
- the key that is also assigned to the music decryption program is Key-32.
- the decryption key is generated by another issued key. Can be.
- the encryption / decryption unit 586 encrypts applications such as the secure OS and the music decryption program again. Therefore, while the program on the normal memory uses the CPU, the program on the secure memory 613 can be more reliably protected. In such a configuration, the memory protection unit does not need to physically disconnect the bus and the secure memory 613.
- the memory protection unit 571 obtains the latest OS matrix revocation list and application matrix revocation list via the communication control unit every time a connection instruction is received from the switching control unit 106. Then, these programs are updated and each program on the secure memory 613 is verified.
- the timing of updating the OS matrix revocation list and the application matrix revocation list and verifying each program on the secure memory 613 is not limited to this.
- the OS matrix revocation list and the application matrix revocation list may be updated, and the program may be verified when a connection instruction is received after the startup.
- the secure OS When each program is started, for example, when switching from the normal OS to the secure OS, the secure OS is verified, and when the secure OS starts the music decryption program, the music decryption program is verified. It may be.
- a list request is transmitted from the memory protection unit 571 to the revocation list issuance device, and the latest OS matrix revocation list and application matrix revocation list are acquired. When it is found and the OS matrix revocation list and the application matrix revocation list are created again, it may be transmitted from the revocation list issuing device to the mobile phone.
- the mobile phone may obtain the latest OS matrix revocation list and ab-matrix revocation list via the Internet.
- the recording medium power such as a memory card may be obtained.
- the mobile phone has been described as one embodiment of the present invention, it may be a communication device configuring a LAN as described below.
- One of the devices constituting the LAN may acquire the latest revocation list and distribute it to other devices.
- An example is a device that forms a home network as shown in FIG.
- the home network is configured by connecting a PC (Personal Computer) 650, a notebook PC 651, a DVD player 652, a home server 653, and a microwave oven 654 by a bus.
- PC Personal Computer
- Each device has a secure memory that cannot be directly accessed by ordinary operating systems and applications, and verifies the effectiveness of various applications and operating systems that are loaded and executed on the secure memory. It has the function of
- the home server 653 is connected to the Internet 20 and periodically requests the revocation list issuing device 250 for the application revocation list and the OS revocation list.
- the latest application revocation list and OS revocation list from the revocation list issuing device 250 via the Internet To get.
- the acquired revocation list is output to each device configuring the home network via the bus.
- Embodiment 4 of the present invention will be described below.
- the mobile phone includes a debugger IF, a CPU 102, an MMU, a secondary storage unit, a switching control unit, an interrupt controller, an input unit, a display unit, a normal memory, and the like, similarly to the mobile phone 100 according to the first embodiment. It consists of shared memory, secure memory 713, memory protection unit 701, input / output unit, cryptographic processing device, wireless communication control unit, microphone, speaker, communication unit, antenna, buffer, code processing unit, DZA conversion unit, Each circuit is connected to a node.
- each unit other than the memory protection unit 701 and the secure memory 713 are the same as those of the first embodiment, and a description thereof will not be repeated. Only the features of the embodiment will be described.
- the secure memory 713 stores a secure application such as a music decryption program 704 and a communication key generation program 706, and a secure OS 707.
- a secure application such as a music decryption program 704 and a communication key generation program 706, and a secure OS 707.
- the music decryption program 704 is a secure application that includes the same music decryption processing procedure as the music decryption program 176 of the first embodiment.
- the communication key generation program 706 is a secure application that generates an encryption key for transmitting and receiving content via the mobile phone power Internet.
- Secure OS 707 is an operating system similar to secure OS 171 of the first embodiment.
- each program on the secure memory 713 when activated on the secure memory, it outputs its own access information to the access management unit 702.
- the access information is the address of the memory area that can be accessed by each program.
- the memory protection unit 701 includes an access management unit 702 and a signal monitoring unit 703 as shown in FIG. [0425]
- the access management unit 702 receives access information from each program on the secure memory 713, and stores the received access information in association with the corresponding program.
- Each program has a counter that counts the number of unauthorized accesses.
- the signal monitoring unit 703 stores, in advance, the number of times (permissible times) that an unauthorized access of each program is allowed.
- the signal monitoring unit 703 monitors a signal on the bus between the secure memory 713 and the CPU, and detects an address on the secure memory 713 to be accessed by the CPU.
- the access information of the currently executing program is read from the access management unit 702, and the read access information is compared with the detected address. If the detected address is included in the storage area indicated by the read access information, the monitoring is continued as it is. If not, the access management unit 702 adds 1 to the counter stored in association with the corresponding program. Next, the counter is compared with the stored allowable number. If the counter is equal to or less than the allowable number, monitoring is continued as it is.
- the signal monitoring unit 703 forcibly stops the execution of the music decryption program 704 and transfers the execution right of the CPU 102 to the secure OS 707. .
- the signal monitoring unit 703 forcibly stops execution of the secure OS 707, clears the CPU 102 and the MMU, and issues a switching instruction to the switching control unit. Is output.
- the mobile phone of the present invention monitors the operation of each program loaded in the secure memory 713, and stops the execution of the program that repeats an illegal operation. By doing so, even if a program in the secure memory 713 has a defect or if illegal alteration is added during execution, the execution of these programs can be stopped. [0429] 4.3 Modification of Embodiment 4
- the memory protection unit 701 uses the signal monitoring unit 703 to monitor the signal on the node to detect an improper operation.
- the PU program counter value may be monitored.
- the access management unit 702 may store information indicating an access prohibited area on the secure memory 713 in advance. In this case, even if any program is running, if the user tries to access the prohibited area, the signal monitoring unit stops the CPU 102 from executing the program, clears the CPU 102 and the MMU, and issues a switching instruction to the switching control unit. Is output.
- the memory protection unit 701 includes the revocation list storage unit, the application verification unit, the application invalidation unit, the OS verification unit, and the OS invalidation. It is also possible to determine whether or not each program on the secure memory is valid when receiving a connection instruction from the switching control unit.
- the signal monitoring unit 703 finds a program that performs an illegal operation during operation, stops the operation of the program, and disables the OS revocation list or the application revocation list stored in the revocation list storage unit. Add the secure OSID or application ID corresponding to the program that performed the illegal operation to the list.
- Embodiment 5 of the present invention will be described below.
- the mobile phone 750 of the fifth embodiment has two memory cards.
- One of the memory cards stores an OS (operating system) and various applications, and the mobile phone 750 reads and executes these programs.
- This memory card is usually referred to as a memory card 800 for convenience of explanation.
- a program for performing a process to be protected is encrypted. It is remembered. Each program is composed of a program part and a data part. This memory card is referred to as a secure memory card 820 for convenience of explanation.
- the mobile phone 750 prohibits the reading of the program portion of each program on the secure memory card 820, the reading portion S of the other program, and the reading of the data portion of the other program.
- the secure memory card 820 includes an input / output unit 821 and an information storage unit 830.
- the secure memory card 820 is a computer system specifically including a microprocessor, a RAM, and a ROM, and the RAM and the ROM store computer programs. When the microprocessor operates according to the computer program, the secure memory card 820 achieves some of its functions.
- the input / output unit 821 inputs and outputs information to and from an external device.
- the information storage unit 830 stores a secure ID 850, an encryption key decryption program 831, an encryption key generation program 841, and the like.
- the secure ID 850 is information unique to the secure memory card 820, and indicates that the secure memory card 820 stores a program for performing secure processing! /.
- the encrypted music decryption program 831 includes an ID 832 “A”, an encryption decryption program 834, and encrypted data 836.
- ID832 “A” is identification information unique to the encryption / decryption music decryption program 831.
- the decryption program 834 is generated by decrypting a decryption program including a procedure for decrypting music data.
- the decryption data 836 includes parameters used by the decryption program for decryption processing. Is obtained by encrypting the above data.
- the encryption key generation program 841 includes ID 842 "B", an encryption generation program 844, and encryption key data 846.
- ID 842 “B” is identification information unique to the encryption key generation program 841.
- the encryption generation program 844 is obtained by encrypting a generation program including a procedure for generating an encryption key, and the encryption key data 846 stores data such as parameters used by the generation program. The data is encrypted.
- the normal memory card 800 includes an input / output unit 801 and an information storage unit 802 as shown in FIG.
- the input / output unit 801 inputs and outputs various data between the information storage unit 802 and an external device.
- the information storage unit 802 stores various applications such as the music reproduction program 808, and the OS 806.
- the programs stored in the information storage unit 802 are composed of a code part including a procedure of a process executed by each program and a data part.
- Each program has a unique program ID.
- the OS 806 has a program ID “OS”
- the music playback program 808 has a program ID “E”.
- Cellular phone 750 Fig. 68 [As shown here, Denogga IF751, CPU752, MMU753, harmful controller 757, input section 758, display section 759, memory 761, memory protection section 764, input / output section 765 , I / O section 766, wireless communication control section 768, communication section 771, antenna 772, microphone 796, speaker 770, buffer 773, code processing 774, D / A conversion 776 It is composed.
- the operation and configuration of the 776 are the same as those in the first embodiment, and thus description thereof is omitted here.
- the memory 761 stores various data and programs, and the CPU 752 fetches instructions included in the programs stored in the memory 761, the normal memory card 800 and the secure memory card 820 one by one, Decode and execute the fetched instruction.
- I / O section 765 and I / O section 766 The input / output unit 765 and the input / output unit 766 are connected to one of the two memory cards, and perform input / output of information between the memory card and the memory protection unit 764.
- the memory protection unit 764 includes a decryption unit 781, a decryption key storage unit 782, an access control unit 783, a key storage unit 784, a memory information storage unit 785, and an ID detection unit 786.
- the key storage unit 784 stores the decryption key of the encryption key decryption program 831 and the decryption key of the encryption key generation program 841 in association with the ID of each program.
- the decryption unit 781 receives the decryption instruction and the cipher text from the access control unit 783. Upon receiving the decryption instruction, the decryption key is read from the decryption key storage unit 782, and the decrypted data is decrypted using the decrypted key to generate plaintext. Output the generated plaintext to CPU752.
- the encrypted data decrypted by the decrypting unit 781 is encrypted data stored in the secure memory card 820 and constituting the encrypted encrypted music decryption program 831 and the encrypted encryption key generation program 841.
- the decryption key storage unit 782 stores only one decryption key used by the decryption unit 781.
- the memory information storage unit 785 stores a secure memory information table 811 and a normal memory information table 861.
- the secure memory information table 811 is composed of a plurality of secure memory information 812, 813.
- Each secure memory information includes a program, a code address, and a data address.
- the program ID is an ID of each program stored in the secure memory card 820.
- the code address is an address indicating an area where a program portion of the encryption application stored in the secure memory card 820 is stored.
- the data address is an address indicating an area where a data portion of the encryption application is stored.
- the secure memory information 812 includes an ID "A” 832 of the encrypted music decryption program 831 as a program ID and an address "AOOOO" stored in the encryption and decryption program 834 as a code address. —All ”and the address of“ A222—A333 ”stored as the data address of the encrypted and decrypted data 836! /.
- the secure memory information 813 includes an ID “B” 842 of the encryption key generation program 841 as a program ID, an address ⁇ 444—A555 stored in the encryption generation program 844 as a code address, and a data address as a data address. Includes the address “A666—A777” stored in the encryption key data 846!
- the normal memory information table 861 is configured to include a plurality of pieces of normal memory information 862, 863 ... Each piece of normal memory information includes a program, a code address, and a data address.
- the program ID is usually the ID of the program stored on the memory card 800
- the code address is an address indicating the area where the program portion of the program corresponding to the program ID is stored
- the data address is the data address. This is the address of the area where the part is stored.
- the normal memory information 862 corresponds to the OS 806 stored on the normal memory card 800, and the normal memory information 863 corresponds to the music reproduction program 808.
- the ID detection unit 786 constantly monitors the program counter (hereinafter referred to as PC) of the CPU 752. While the program on the secure memory card 820 is being executed, the program ID indicating the program being executed by the CPU 752 is output. I remember.
- PC program counter
- step S801 the CPU 752 normally executes a program stored in the memory card 800 or the memory 761.
- the ID detection unit 786 monitors the PC (step S801), and includes the code address of each program included in the secure memory information table 811 and the normal memory information table 861 stored in the memory information storage unit 785, and indicates the PC address. By comparing with the address, the PC It is determined whether the address is an address on the secure memory card 820 (step S802).
- step S802 If the address is not an address on the secure memory card 820 (NO in step S802), monitoring of the PC is continued.
- step S802 If it is determined that the address is on the secure memory card 820 (YES in step S802), the secure memory information corresponding to the detected address of the PC is selected from the secure memory information table 811 and the selected secure memory information is selected. Then, the program ID included in is extracted (step S803). The extracted program ID is stored (step S804). Next, a secure access notification indicating that the execution of the program on the secure memory card 820 is started is output to the access control unit 783 (step S805).
- step S806 the PC is monitored (step S806), and it is determined whether or not the address stored in the PC is an address on the secure memory card 820 (step S807).
- step S807 If it is determined that the address is on the secure memory card 820 (YES in step S807), the secure memory information corresponding to the detected address is selected from the secure memory information table 811 and the program ID included in the selected secure memory information is selected. Is extracted (step S809). The extracted program ID is compared with the program ID stored in the ID detection unit 786 itself. If they match (YES in step S811), the process returns to step S806 to continue monitoring the PC.
- step S811 If they do not match (NO in step S811), the stored program ID is rewritten to the extracted program ID (step S812), and the process returns to step S806.
- step S807 If it is determined in step S807 that the address is not the address on the secure memory card 820 (NO in step S807), the program ID stored in the ID detection unit 786 itself is deleted (step S814), and the process returns to step S801.
- the access control unit 783 stores the security ID written in the secure memory card 820 in advance.
- the memory card Via the input / output unit 765 and the input / output unit 766, it is detected that the memory card is inserted. When a memory card is detected, the data written to the memory card is searched. The When the same secure ID 850 as the stored secure ID is detected, it is detected that the memory card is the secure memory card 820.
- the input / output unit 265 is connected to the normal memory card 800, and the secure memory card 820 is connected to the secure memory card 820.
- the access control unit 783 searches for information stored in the normal memory card 800 via the input / output unit 765, and A memory information table is generated, and the generated normal memory information table is stored in the memory information storage unit 785.
- the attachment of the secure memory card 820 is detected through the input / output unit 766, the information stored in the secure memory card 820 is searched through the input / output unit 766, and the secure memory information table is generated. The generated secure memory information table is written to the memory information storage unit 785.
- the access control unit 783 mediates a signal output from the CPU 752 (hereinafter, referred to as an access signal) to the normal memory card 800 as it is. It receives output data from the memory card 800 and outputs the received data to the CPU 752.
- the CPU 752 accesses the secure memory card 820
- the address of the access destination is extracted from the access signal, and reading of the secure memory card 820 data or prohibition of reading is performed by the extracted address.
- the operation of the access control unit 783 will be described in detail with reference to flowcharts shown in FIGS. Note that the description starts from step S821 for convenience of description. At this time, the CPU 752 executes the program on the memory card 800 or the memory 761 normally.
- the access control unit 783 mediates data input / output between the CPU 752 and the normal memory card 800 (step S821).
- the secure access notification indicating that the execution of the program on the secure memory card 820 is started is received from the ID detection unit 786 (step S805).
- the access control unit 783 Upon receiving the secure access notification, the access control unit 783 invalidates the debugger IF751 (step S823) and reads the program ID stored in the ID detection unit 786 (step S823). Step S824).
- the decryption key corresponding to the read program ID is read from the key storage unit 784 (step S826), and the read decryption key is written to the decryption key storage unit 782 (step S827).
- the access signal output from the CPU 752 is received, and the address of the access destination is detected from the received access signal (step S829).
- the program ID is read from the ID detection unit 786 (step S831).
- the secure memory information including the detected access destination address in the code address or the data address is selected from the secure memory information table 811. The selected secure memory information is also used to extract the program ID. Yes (step S834).
- step S836 The extracted program ID is compared with the program ID read from ID detection section 786, and if they match (YES in step S836), the process proceeds to step S844.
- the access control unit 783 further checks whether the detected address is included in the code address of the selected secure memory information or in the data address. Is determined (step S838). If it is determined that the address is included in the data address (NO in step S838), an error notification indicating that access is not permitted is output to CPU 752, and the process returns to step S829.
- step S838 If it is determined that it is included in the code address (YES in step S838), the decryption key corresponding to the extracted program ID is read from the key storage unit 784, and the decryption key stored in the decryption key storage unit 782 is read. Is changed to the read decryption key (step S842).
- step S844 the information stored in the storage area corresponding to the detected address is read out via the input / output unit 766 (step S844).
- the decoding unit 781 is instructed to decode the read information (step S846), and the process returns to step S829.
- step S832 if the program ID stored in ID detection section 786 does not exist (NO in step S832), access control section 783 determines the decryption key stored in decryption key storage section 782. Is erased (step S851), the debugger IF751 is enabled (step S852), and the process returns to step S821.
- the mobile phone of the present invention normally executes a program stored in a memory card and a secure memory card. Stored on a secure memory card
- the memory protection unit 764 manages an area to which access is permitted and an area to be prohibited by the program being executed. .
- the CPU 752 is configured to store an area in which the encrypted music decryption program 831 included in the encrypted music decryption program 831 is stored and the encryption area of the encrypted decryption key generation program.
- the CPU 752 is configured to store an area in which the encrypted music decryption program 831 included in the encrypted music decryption program 831 is stored and the encryption area of the encrypted decryption key generation program.
- each application on the secure memory card 820 can be prevented from accessing its own data section from another application, reading data illegally, and being modified.
- the secure memory card 820 since the information stored in the secure memory card 820 is encrypted, if the secure memory card 820 is accessed while the CPU 752 is executing a program other than the program on the secure memory card 820, But it cannot be deciphered. Therefore, the data on the secure memory card 820 can be protected from unauthorized access.
- the access control unit 783 when the CPU 752 attempts to access the data portion of another application during execution of the secure application on the secure memory card 820, the access control unit 783 outputs an error notification to the CPU 752 As in the fourth embodiment, the execution right of the CPU 752 may be transferred to another program, for example, the OS 806. In this case, the access control unit 783 deletes the decryption key stored in the decryption key storage unit 782 and sets the address stored in the OS 806 in the program counter of the CPU 782.
- the present invention may be a method for executing the above-described Embodiments 13 to 13 and modified examples.
- the present invention may be a computer program that realizes these methods by a computer, or a digital signal that also has the capability of the computer program.
- the present invention provides a computer-readable recording medium for the computer program or the digital signal, for example, a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAMROMBD (Blu-ray Disc), semiconductor memory, or the like. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
- the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, data broadcasting, or the like.
- the present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
- Each device and recording medium constituting the present invention handles an industry that handles information that needs to be protected, for example, an industry related to creation and distribution of content including video and audio, and handles such information. It can be used managerically and continuously and repeatedly in the industries that manufacture and sell electrical equipment. Further, each device and recording medium constituting the present invention are manufactured in the electric appliance manufacturing industry in a business-wise, continuously and repeatedly manner. Can be sold.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2004800352503A CN1886712B (zh) | 2003-11-28 | 2004-11-26 | 数据处理装置 |
EP04819456A EP1688816A4 (en) | 2003-11-28 | 2004-11-26 | DATA PROCESSING DEVICE |
US10/580,818 US7788487B2 (en) | 2003-11-28 | 2004-11-26 | Data processing apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003-399055 | 2003-11-28 | ||
JP2003399055 | 2003-11-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005052769A1 true WO2005052769A1 (ja) | 2005-06-09 |
Family
ID=34631589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2004/017614 WO2005052769A1 (ja) | 2003-11-28 | 2004-11-26 | データ処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7788487B2 (ja) |
EP (1) | EP1688816A4 (ja) |
KR (1) | KR101037006B1 (ja) |
CN (1) | CN1886712B (ja) |
WO (1) | WO2005052769A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114051036A (zh) * | 2021-09-23 | 2022-02-15 | 通号城市轨道交通技术有限公司 | 轨道交通信号系统数据同步方法、装置、设备及存储介质 |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2852777B1 (fr) * | 2003-03-21 | 2005-06-10 | Gemplus Card Int | Procede de protection d'un terminal de telecommunication de type telephone mobile |
WO2005071515A1 (en) * | 2004-01-22 | 2005-08-04 | Koninklijke Philips Electronics N.V. | Method of authorizing access to content |
TWI258696B (en) * | 2004-05-04 | 2006-07-21 | Intervideo Digital Technology | Computer system capable of rendering encrypted multimedia and method thereof |
JP4794269B2 (ja) * | 2004-11-08 | 2011-10-19 | パナソニック株式会社 | セキュアデバイスおよび中継端末 |
KR20080014786A (ko) * | 2005-06-01 | 2008-02-14 | 마츠시타 덴끼 산교 가부시키가이샤 | 컴퓨터시스템 및 프로그램 생성장치 |
US20070016961A1 (en) * | 2005-07-11 | 2007-01-18 | Vogler Dean H | Application revocation using an application revocation list in a portable electronic device |
US8510846B1 (en) * | 2006-06-29 | 2013-08-13 | Google Inc. | Data encryption and isolation |
WO2008007305A2 (en) * | 2006-07-12 | 2008-01-17 | Koninklijke Philips Electronics N.V. | Method and system for obfuscating a gryptographic function |
US7698542B2 (en) * | 2006-08-25 | 2010-04-13 | Infineon Technologies Ag | Circuit and method for comparing program counter values |
JP2008123482A (ja) * | 2006-10-18 | 2008-05-29 | Matsushita Electric Ind Co Ltd | 記憶媒体制御方法 |
DE102006057093B4 (de) * | 2006-12-04 | 2008-10-02 | Infineon Technologies Ag | Vorrichtung zur Auswahl einer virtuellen Kartenanwendung |
US8056143B2 (en) | 2007-01-19 | 2011-11-08 | Research In Motion Limited | Selectively wiping a remote device |
JP4903071B2 (ja) * | 2007-03-15 | 2012-03-21 | 株式会社リコー | 情報処理装置、ソフトウェア更新方法及び画像処理装置 |
US20080244753A1 (en) * | 2007-03-30 | 2008-10-02 | Motorola, Inc. | Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection |
US8181038B2 (en) * | 2007-04-11 | 2012-05-15 | Cyberlink Corp. | Systems and methods for executing encrypted programs |
US7958371B2 (en) * | 2007-05-09 | 2011-06-07 | Sony Computer Entertainment Inc. | Methods and apparatus for secure operating system distribution in a multiprocessor system |
CN101689149A (zh) * | 2007-07-05 | 2010-03-31 | Nxp股份有限公司 | 提高微处理器安全性的方法 |
EP2738680A1 (en) | 2007-09-04 | 2014-06-04 | Nintendo Co., Ltd. | Writing area security system |
WO2009031245A1 (ja) * | 2007-09-04 | 2009-03-12 | Nintendo Co., Ltd. | ダウンロードセキュリティシステム |
US9207990B2 (en) * | 2007-09-28 | 2015-12-08 | Hewlett-Packard Development Company, L.P. | Method and system for migrating critical resources within computer systems |
JP4371327B2 (ja) * | 2007-10-24 | 2009-11-25 | 富士通株式会社 | 申請処理プログラム、申請処理方法、および仲介サーバ装置、並びに仲介サーバシステム |
US8639941B2 (en) * | 2007-12-05 | 2014-01-28 | Bruce Buchanan | Data security in mobile devices |
US8826037B2 (en) * | 2008-03-13 | 2014-09-02 | Cyberlink Corp. | Method for decrypting an encrypted instruction and system thereof |
US8607034B2 (en) * | 2008-05-24 | 2013-12-10 | Via Technologies, Inc. | Apparatus and method for disabling a microprocessor that provides for a secure execution mode |
US8225390B2 (en) * | 2008-06-27 | 2012-07-17 | Microsoft Corporation | Licensing protected content to application sets |
US9348633B2 (en) | 2009-07-20 | 2016-05-24 | Google Technology Holdings LLC | Multi-environment operating system |
US9372711B2 (en) | 2009-07-20 | 2016-06-21 | Google Technology Holdings LLC | System and method for initiating a multi-environment operating system |
US9367331B2 (en) | 2009-07-20 | 2016-06-14 | Google Technology Holdings LLC | Multi-environment operating system |
US9389877B2 (en) | 2009-07-20 | 2016-07-12 | Google Technology Holdings LLC | Multi-environment operating system |
JP2013507698A (ja) * | 2009-10-15 | 2013-03-04 | エフティーエス コンピューターテクニク ジーエムビーエイチ | 安全性に関連したおよび安全性に関連していないソフトウェア・コンポーネントを1つのハードウェア・プラットフォーム上で実行する方法 |
EP2507708B1 (en) * | 2009-12-04 | 2019-03-27 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
JP5565040B2 (ja) * | 2010-03-30 | 2014-08-06 | 富士通株式会社 | 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム |
US20120079282A1 (en) * | 2010-06-28 | 2012-03-29 | Lionstone Capital Corporation | Seamless end-to-end data obfuscation and encryption |
JP5573489B2 (ja) * | 2010-08-23 | 2014-08-20 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
JP5133387B2 (ja) * | 2010-10-22 | 2013-01-30 | シャープ株式会社 | 複合機、制御プログラムおよび記録媒体 |
WO2012086106A1 (ja) * | 2010-12-21 | 2012-06-28 | パナソニック株式会社 | 仮想計算機システム及び仮想計算機システム制御方法 |
CN102542219A (zh) * | 2010-12-31 | 2012-07-04 | 富泰华工业(深圳)有限公司 | 具有记忆功能的电子装置及其存储卡读取方法 |
US20120192100A1 (en) * | 2011-01-25 | 2012-07-26 | Motorola-Mobility, Inc. | Method and apparatus for locking and unlocking multiple operating system environments with a single gesture input |
JP5775738B2 (ja) * | 2011-04-28 | 2015-09-09 | 富士通株式会社 | 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム |
US9354900B2 (en) | 2011-04-28 | 2016-05-31 | Google Technology Holdings LLC | Method and apparatus for presenting a window in a system having two operating system environments |
US9076020B2 (en) * | 2011-05-13 | 2015-07-07 | Microsoft Technology Licensing, Llc | Protected mode for mobile communication and other devices |
US20120331303A1 (en) * | 2011-06-23 | 2012-12-27 | Andersson Jonathan E | Method and system for preventing execution of malware |
US9363250B2 (en) | 2011-12-23 | 2016-06-07 | Microsoft Technology Licensing, Llc | Hub coordination service |
US9158902B2 (en) * | 2011-12-29 | 2015-10-13 | Intel Corporation | Software modification for partial secure memory processing |
KR20130101632A (ko) * | 2012-02-16 | 2013-09-16 | 삼성전자주식회사 | 콘텐츠 보안 장치 및 방법 |
US9417753B2 (en) | 2012-05-02 | 2016-08-16 | Google Technology Holdings LLC | Method and apparatus for providing contextual information between operating system environments |
US9342325B2 (en) | 2012-05-17 | 2016-05-17 | Google Technology Holdings LLC | Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device |
US9003475B1 (en) * | 2012-06-05 | 2015-04-07 | Symantec Corporation | Systems and methods for applying data-loss-prevention policies |
US9230076B2 (en) * | 2012-08-30 | 2016-01-05 | Microsoft Technology Licensing, Llc | Mobile device child share |
US9749206B2 (en) | 2012-10-30 | 2017-08-29 | Elwha Llc | Methods and systems for monitoring and/or managing device data |
US10091325B2 (en) | 2012-10-30 | 2018-10-02 | Elwha Llc | Methods and systems for data services |
US10216957B2 (en) * | 2012-11-26 | 2019-02-26 | Elwha Llc | Methods and systems for managing data and/or services for devices |
US9886458B2 (en) | 2012-11-26 | 2018-02-06 | Elwha Llc | Methods and systems for managing one or more services and/or device data |
US20140123300A1 (en) | 2012-11-26 | 2014-05-01 | Elwha Llc | Methods and systems for managing services and device data |
US9088450B2 (en) | 2012-10-31 | 2015-07-21 | Elwha Llc | Methods and systems for data services |
EP2741229B1 (en) * | 2012-12-07 | 2018-10-17 | Samsung Electronics Co., Ltd | Priority-based application execution method and apparatus of a dual-mode data processing device |
US9846656B2 (en) * | 2013-04-17 | 2017-12-19 | Laurence H. Cooke | Secure computing |
GB2515047B (en) | 2013-06-12 | 2021-02-10 | Advanced Risc Mach Ltd | Security protection of software libraries in a data processing apparatus |
KR20150070890A (ko) * | 2013-12-17 | 2015-06-25 | 삼성전자주식회사 | 파일 처리 방법 및 이를 지원하는 전자 장치 |
JP6265783B2 (ja) * | 2014-03-06 | 2018-01-24 | キヤノン株式会社 | 暗号化/復号化システム及びその制御方法、並びにプログラム |
US20160048688A1 (en) * | 2014-08-14 | 2016-02-18 | Google Inc. | Restricting System Calls using Protected Storage |
US20160147765A1 (en) * | 2014-11-25 | 2016-05-26 | Quixey, Inc. | Techniques for Using Similarity to Enhance Relevance in Search Results |
JP2016116134A (ja) * | 2014-12-16 | 2016-06-23 | パナソニックIpマネジメント株式会社 | 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法 |
US10432547B2 (en) * | 2016-03-18 | 2019-10-01 | Hewlett-Packard Development Company, L.P. | Verifying functionality restrictions of computing devices |
WO2019126185A1 (en) * | 2017-12-18 | 2019-06-27 | Convida Wireless, Llc | Methods to enable context aware authorization for data or services in the iot/m2m service layer |
KR20200021815A (ko) * | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20200101211A (ko) * | 2019-02-19 | 2020-08-27 | 삼성전자주식회사 | 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62103146A (ja) * | 1985-10-30 | 1987-05-13 | Matsushita Electric Ind Co Ltd | プリンタ−ヘツド制御回路 |
JPS62205443A (ja) * | 1986-03-06 | 1987-09-10 | Nec Corp | アドレス発生回路 |
JPH06103058A (ja) * | 1992-05-15 | 1994-04-15 | Addison M Fischer | プログラム権限情報データ構造 |
JPH08227356A (ja) * | 1994-12-21 | 1996-09-03 | Tec Corp | データ処理装置 |
JPH11175355A (ja) * | 1997-12-15 | 1999-07-02 | Sony Corp | 情報処理装置及び方法、オペレーティングシステム並びにコンピュータ読み取り可能な媒体 |
JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
JP2002189633A (ja) * | 2000-12-21 | 2002-07-05 | Nec Corp | 仮想空間のメモリ保護方法及び装置 |
JP2002251326A (ja) * | 2001-02-22 | 2002-09-06 | Hitachi Ltd | 耐タンパ計算機システム |
JP2003280756A (ja) * | 2002-03-25 | 2003-10-02 | Seiko Epson Corp | 情報処理装置のデバッグ手段 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809160A (en) * | 1985-10-28 | 1989-02-28 | Hewlett-Packard Company | Privilege level checking instruction for implementing a secure hierarchical computer system |
US5412717A (en) * | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
US7290284B1 (en) * | 1999-01-11 | 2007-10-30 | Myspace Ab | System for data processing a security critical activity |
AU2278601A (en) * | 1999-12-23 | 2001-07-03 | General Instrument Corporation | Dual-mode processor |
JP4226760B2 (ja) | 2000-05-08 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 |
US7475398B2 (en) * | 2000-08-01 | 2009-01-06 | Wind River Systems, Inc. | System and method for implementing a smart system call |
JP2002353960A (ja) | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
GB2376761A (en) * | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
CN1230751C (zh) * | 2001-12-31 | 2005-12-07 | 武汉瑞达电子有限公司 | 一卡多用安全智能卡 |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US7127579B2 (en) * | 2002-03-26 | 2006-10-24 | Intel Corporation | Hardened extended firmware interface framework |
GB2396451B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
US7370210B2 (en) * | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
GB2396712B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Handling multiple interrupts in a data processing system utilising multiple operating systems |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
EP1563376B1 (en) * | 2002-11-18 | 2006-04-12 | ARM Limited | Exception types within a secure processing system |
GB2402785B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Processor switching between secure and non-secure modes |
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 |
CN1871568B (zh) * | 2003-08-26 | 2010-04-28 | 松下电器产业株式会社 | 程序执行设备 |
US7076637B2 (en) * | 2003-10-29 | 2006-07-11 | Qualcomm Inc. | System for providing transitions between operating modes of a device |
US7120794B2 (en) * | 2003-10-29 | 2006-10-10 | Qualcomm Inc. | System for invoking a privileged function in a device |
-
2004
- 2004-11-26 KR KR1020067012914A patent/KR101037006B1/ko not_active IP Right Cessation
- 2004-11-26 CN CN2004800352503A patent/CN1886712B/zh active Active
- 2004-11-26 EP EP04819456A patent/EP1688816A4/en not_active Withdrawn
- 2004-11-26 WO PCT/JP2004/017614 patent/WO2005052769A1/ja active Application Filing
- 2004-11-26 US US10/580,818 patent/US7788487B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62103146A (ja) * | 1985-10-30 | 1987-05-13 | Matsushita Electric Ind Co Ltd | プリンタ−ヘツド制御回路 |
JPS62205443A (ja) * | 1986-03-06 | 1987-09-10 | Nec Corp | アドレス発生回路 |
JPH06103058A (ja) * | 1992-05-15 | 1994-04-15 | Addison M Fischer | プログラム権限情報データ構造 |
JPH08227356A (ja) * | 1994-12-21 | 1996-09-03 | Tec Corp | データ処理装置 |
JPH11175355A (ja) * | 1997-12-15 | 1999-07-02 | Sony Corp | 情報処理装置及び方法、オペレーティングシステム並びにコンピュータ読み取り可能な媒体 |
JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
JP2002189633A (ja) * | 2000-12-21 | 2002-07-05 | Nec Corp | 仮想空間のメモリ保護方法及び装置 |
JP2002251326A (ja) * | 2001-02-22 | 2002-09-06 | Hitachi Ltd | 耐タンパ計算機システム |
JP2003280756A (ja) * | 2002-03-25 | 2003-10-02 | Seiko Epson Corp | 情報処理装置のデバッグ手段 |
Non-Patent Citations (2)
Title |
---|
ITOH S. ET AL.: "FUkusu OS kankyo o riyo shita hysteresis shomei system no jisso", COMPUTER SECURITY SYMPOSIUM 2002, INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 2002, no. 16, 30 October 2002 (2002-10-30), pages 65 - 69, XP002997686 * |
See also references of EP1688816A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114051036A (zh) * | 2021-09-23 | 2022-02-15 | 通号城市轨道交通技术有限公司 | 轨道交通信号系统数据同步方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP1688816A4 (en) | 2012-04-25 |
KR101037006B1 (ko) | 2011-05-25 |
US20070113079A1 (en) | 2007-05-17 |
US7788487B2 (en) | 2010-08-31 |
EP1688816A1 (en) | 2006-08-09 |
KR20060107826A (ko) | 2006-10-16 |
CN1886712A (zh) | 2006-12-27 |
CN1886712B (zh) | 2010-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2005052769A1 (ja) | データ処理装置 | |
JP6067449B2 (ja) | 情報処理装置、情報処理プログラム | |
EP2249280B1 (en) | Information processor and method for controlling the same | |
JP4886682B2 (ja) | データ処理装置 | |
JP4903188B2 (ja) | 信用済基盤区画(tpm)のための更新可能な鍵束縛を提供する方法及び装置 | |
US9158924B2 (en) | Information processing apparatus and information processing method | |
US8555089B2 (en) | Program execution apparatus, control method, control program, and integrated circuit | |
RU2295834C2 (ru) | Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным | |
JP4795812B2 (ja) | セキュアプロセッサ | |
EP2062191B1 (en) | System and method for securely restoring a program context from a shared memory | |
WO2010041462A1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び集積回路 | |
JP4843531B2 (ja) | 暗号変換装置、暗号変換方法および暗号変換プログラム | |
CN107077428A (zh) | 保护应用秘密免受操作系统攻击 | |
JP2003108442A (ja) | マイクロプロセッサ | |
JP2006203564A (ja) | マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法 | |
JP4629416B2 (ja) | データ処理装置 | |
JP2014048725A (ja) | 情報処理装置 | |
WO2013011902A1 (ja) | ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、及びプログラム | |
JP2005182774A5 (ja) | ||
US20150039900A1 (en) | Program execution method and decryption apparatus | |
JP2010146635A (ja) | コンテンツ記録再生装置並びにコンテンツの書き込み及び読み出し方法 | |
US20130103953A1 (en) | Apparatus and method for encrypting hard disk | |
JP5304304B2 (ja) | セキュリティ強化システム、方法、プログラム及びusbメモリ | |
JP2005018379A (ja) | プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法 | |
JP2004240719A (ja) | ソフトウェア実行制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200480035250.3 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
REEP | Request for entry into the european phase |
Ref document number: 2004819456 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2004819456 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2007113079 Country of ref document: US Ref document number: 10580818 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020067012914 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 2004819456 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020067012914 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 10580818 Country of ref document: US |