WO2004053664A1 - プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム - Google Patents

プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム Download PDF

Info

Publication number
WO2004053664A1
WO2004053664A1 PCT/JP2002/013006 JP0213006W WO2004053664A1 WO 2004053664 A1 WO2004053664 A1 WO 2004053664A1 JP 0213006 W JP0213006 W JP 0213006W WO 2004053664 A1 WO2004053664 A1 WO 2004053664A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
client terminal
execution control
input
identifier
Prior art date
Application number
PCT/JP2002/013006
Other languages
English (en)
French (fr)
Inventor
Jun Kamada
Takayuki Hasebe
Souichi Okada
Takehiko Hayashi
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to JP2004558383A priority Critical patent/JP4226556B2/ja
Priority to PCT/JP2002/013006 priority patent/WO2004053664A1/ja
Priority to EP02790723A priority patent/EP1574928A4/en
Publication of WO2004053664A1 publication Critical patent/WO2004053664A1/ja
Priority to US11/024,986 priority patent/US20060150246A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Definitions

  • Program execution control device OS, client terminal, server, program execution control system, program execution control method, program execution control program
  • the present invention relates to a program execution control device, an OS (Operating Systems), a client terminal, a server, a program execution control system, a program execution control method, and a program execution control program that permit execution of only an authenticated program. Things. Food background technology
  • TCP Trusted Computing Platform Alliance
  • OS driver signatures OS driver signatures
  • TCPA adds special security chips to client terminals such as PCs (Personal Computers) and mobile terminals to enable software on client terminals.
  • client terminals such as PCs (Personal Computers) and mobile terminals to enable software on client terminals.
  • the goal is to ensure the security of the entire environment, including hardware.
  • a client terminal such as a basic input / output system (BIOS), a boot program, an OS reader, and an OS.
  • BIOS basic input / output system
  • OS reader an OS reader
  • the code in the BIOS calculates the hash value of the boot program to be started next, stores it in the security chip, and then passes control to the boot program.
  • the hash value is a value calculated by applying a one-way function to the target program.
  • the boot program calculates the hash value of the ⁇ S loader, similarly stores it in the security chip, and then passes control to the ⁇ S loader.
  • the ⁇ S loader calculates the hash value of ⁇ S, similarly stores the hash value in the security chip, and transfers control to ⁇ S.
  • the client terminal returns the hash value group calculated above to the server in response to a request from an external entity such as a server generated at an arbitrary timing.
  • the server can find a list of programs that are currently or have been executed on the client terminal in the form of a hash value, and whether an unauthorized program is operating on the client terminal. You can check if. If it turns out that an illegal program is running, the server can stop the service for the corresponding client terminal, and control can be performed. Also, some OSs have a function that rejects the incorporation of a device driver without a valid signature. Even if there is no valid signature, the embedding can be executed if the user permits.
  • some virtual machines that download and execute programs from outside on the client terminal reject the execution of a program without a valid signature, or permit execution, but the operation of the program is not permitted.
  • Some functions have the function of adding restrictions. Through such processing, it is possible to prevent the incorporation of an illegal driver and the execution of an illegal program.
  • TCPA has a problem in that even if it is possible to externally confirm that unauthorized software is operating, it cannot be controlled so that it does not operate. In addition, TCPA is targeted until the OS is started. The program cannot be started after running.
  • the processing part is falsified to prevent improper driver embedding. There is a problem that this function can be invalidated.
  • the virtual machine is software, as in the case of the OS driver signature, so that the function of rejecting unauthorized programs must be invalidated by falsifying it. There is a problem that can be done.
  • a tamper-resistant hardware prepared in a device uses a program described in a list of programs obtained in advance from a server by a secure means. Passing only the OS to the OS enables the OS to execute the program, keeps a list of the programs executed by the OS in the hardware safely, and notifies the server safely when requested by the server Can execute program execution control device, OS, client terminal, server
  • a program execution control system a program execution control method, and a program execution control program are provided. Disclosure of the invention
  • the present invention is a program execution control device that permits execution of only a specified program specified in advance, and includes an expected value obtained by applying a predetermined function to the specified program in advance, and an identifier of the specified program.
  • An expected value table storage unit for storing at least one set, an input interface capable of externally inputting a set including an input program and an identifier of the input program, and applying a predetermined function to the input program.
  • a function operation unit that obtains an operation value by a comparison unit; and a comparison unit that compares the expected value corresponding to the identifier of the input program among the expected values in the expected value table with the operation value.
  • an output interface for outputting the input program to the outside.
  • the expected value table storage unit is the expected value table storage unit 36
  • the input interface is the input / output interface 31
  • the function operation unit is the operation hash value.
  • the calculation unit 34 is referred to
  • the comparison unit is referred to as the comparison unit 35
  • the output interface is referred to as the input / output interface 31 and the gate 38.
  • the predetermined function is a one-way function
  • the expected value and the operation value are hash values.
  • the program execution control device further includes an operation value table storage unit that stores at least one set of an identifier of the input program being executed and an operation value, and the input program is stored in accordance with an external request. And outputting a set consisting of the identifier, the operation value, and the force to the outside.
  • the information about the currently running program is output to the outside as necessary, so that the currently running program can be confirmed from the outside.
  • the present invention provides an OS using the program execution control device according to the present invention
  • the input program is input to the program execution control device, and the input program is executed when the input program is output from the program execution control device.
  • the program executed by the program execution control device determines whether the program executed by the OS is a specified program or not, so that the OS can execute only the specified program specified in advance. it can.
  • the present invention is a client terminal provided with the program execution control device according to the present invention, wherein the input program input from the outside is input to the program execution control device, and the input is performed from the program execution control device.
  • Program output Execute the input program when the input program is input.
  • the program executed by the program execution control device determines whether or not the program executed by the client terminal is the designated program, so that the client terminal executes only the designated program designated in advance. be able to.
  • the present invention is a client terminal equipped with the program execution control device according to the present invention, wherein the client terminal outputs a set consisting of an identifier of the input program and an operation value to the outside in response to a request from the outside. is there.
  • the present invention also relates to a server which can be connected to the client terminal according to the present invention via a network, wherein a set including an identifier of the designated program and an expected value is transmitted to the client terminal in advance. And transmitting the input program to the client terminal as needed.
  • the server that transmits the specified program transmits information on the specified program in advance, whereby the program permitted to be executed can be specified.
  • the present invention is a server which can be connected to the client terminal according to the present invention via a network, wherein the request for a set consisting of an identifier of a program being executed in the client terminal and an operation value is transmitted to the client terminal.
  • the input program being executed on the client terminal is confirmed based on a set of the identifier and the operation value transmitted to the client terminal and received.
  • the server can monitor whether or not the client terminal is executing the specified program.
  • the present invention is a program execution control system for permitting execution of only a designated program specified in advance, wherein the client terminal according to the present invention can be connected to the client terminal via a network.
  • a server that transmits in advance a set of an expected value, an identifier, and a power of the designated program to the client terminal, and transmits the input program to the client terminal as necessary. Things.
  • the server that transmits the specified program transmits information about the specified program in advance, so that the server can specify a program that is permitted to be executed. Can be performed.
  • the present invention is a program execution control system for permitting execution of only a designated program specified in advance, wherein the client terminal according to the present invention can be connected to the client terminal via a network.
  • a request consisting of an identifier of the program being executed and an operation value to the client terminal, and transmitting the request to the client terminal based on the received identifier and the operation value.
  • a server for checking the input program According to such a configuration, the server can monitor whether or not the client terminal is executing the specified program.
  • the present invention is a program execution control method for permitting execution of only a designated program specified in advance, wherein an expected value obtained by applying a predetermined function to the designated program in advance, an identifier of the designated program, Storing at least one set consisting of: an input program and a set consisting of an identifier of the input program from the outside; and applying a predetermined function to the input program to obtain an operation value. Comparing the expected value corresponding to the identifier of the input program with the calculated value obtained from the function calculating unit, out of the pair of the expected value and the identifier; And a step of outputting the input program to the outside when it is performed.
  • a high security level can be guaranteed by controlling the permission and rejection of the execution of the input program by using the information for confirming that the program is the designated program.
  • the present invention is a program execution control program stored in a computer-readable medium for causing a computer to execute only a designated program designated in advance, wherein the designated program has a predetermined program. At least one set of the expected value obtained by applying the function and the identifier of the specified program is stored.
  • An input program a step of inputting a set of identifiers and powers of the input program from the outside, a step of applying a predetermined function to the input program to obtain an operation value, and the expected value and the identifier. Performing a comparison between the expected value corresponding to the identifier of the input program and the operation value obtained from the function operation unit, and if the comparison indicates a match, the input program And outputting the program to the outside.
  • a high security level can be guaranteed by controlling the permission and rejection of the execution of the input program by using the information for confirming that the program is the designated program.
  • the present invention is a program execution control device which permits execution of only a designated program specified in advance, wherein an expected value obtained by applying a predetermined function to the designated program in advance, an identifier of the designated program,
  • An expected value table storage unit that stores at least one set of the following, a decryption key storage unit that stores a previously input decryption key, and an encrypted set obtained by encrypting a set consisting of an input program and an identifier of the input program
  • a function operation unit that obtains an operation value by applying a predetermined function to the decrypted program; and the decrypted program in the expected value table.
  • a comparison unit for comparing the expected value corresponding to the identifier of the RAM with the operation value obtained from the
  • the decryption key storage unit in the present embodiment is the decryption key storage unit 33, and the decryption unit is the decryption unit 32.
  • the predetermined function is a one-way function
  • the expected value and the operation value are hash values. Is what you do.
  • the determination as to whether the program is the designated program can be made with high reliability.
  • the program execution control device further includes an operation value table storage unit for storing at least one set of an identifier of the decrypted program being executed and an operation value, wherein the decryption is performed according to an external request.
  • a set consisting of the identifier of the completed program and the operation value is output to the outside.
  • the information about the currently running program is output to the outside as necessary, so that the currently running program can be confirmed from the outside.
  • the present invention provides an OS using the program execution control device according to the present invention
  • the encrypted program is input to the program execution control device, and when the decrypted program is output from the program execution control device, the decrypted program is executed.
  • the program execution control device determines whether or not the program executed by ⁇ s is the specified program, so that the OS executes only the specified program specified in advance. Can be.
  • the present invention is a client terminal provided with the program execution control device according to the present invention, wherein the client terminal inputs the externally input programmed program to the program execution control device, When the decrypted program is output, the decrypted program is executed.
  • the client terminal executes only the designated program specified in advance by the program execution control device determining whether or not the program executed by the client terminal is the designated program. can do.
  • the present invention provides a client terminal equipped with the program execution control device according to the present invention, wherein the client terminal outputs a set consisting of the identifier of the decrypted program and an operation value to the outside in response to an external request. It is.
  • the present invention is a server which can be connected to the client terminal according to the present invention via a network, and transmits a set including an identifier of the designated program and an expected value to the client terminal in advance, The encrypted program is transmitted to the client terminal as needed.
  • the server that transmits the specified program transmits information on the specified program in advance, whereby the program permitted to be executed can be specified.
  • the present invention is a server which can be connected to the client terminal according to the present invention via a network, wherein the request for a set consisting of an identifier of a program being executed in the client terminal and an operation value is transmitted to the client terminal.
  • the decrypted program that is transmitted to the client terminal and that is being executed on the client terminal is confirmed based on a set including the received identifier and the calculated value.
  • the server can monitor whether or not the client terminal is executing the specified program.
  • the present invention is a program execution control system for permitting execution of only a designated program specified in advance, wherein the client terminal according to the present invention can be connected to the client terminal via a network.
  • a server configured to transmit a set including an expected value of the designated program and an identifier to the client terminal in advance, and to transmit the encrypted program to the client terminal as necessary.
  • the server that transmits the specified program transmits information about the specified program in advance, so that the server can specify a program that is permitted to be executed. Can be performed.
  • the present invention is a program execution control system for permitting execution of only a designated program specified in advance, wherein the client terminal according to the present invention can be connected to the client terminal via a network.
  • the client terminal Transmitting a request consisting of the identifier of the program being executed and the operation value to the client terminal, and confirming the decrypted program being executed on the client terminal based on the received identifier and the operation value.
  • the server can monitor whether or not the client terminal is executing the specified program.
  • the present invention is a program execution control method for permitting execution of only a designated program specified in advance, wherein an expected value obtained by applying a predetermined function to the designated program in advance, an identifier of the designated program, Storing at least one set consisting of: a decryption key inputted in advance; and transmitting a decrypted program obtained by encrypting a set consisting of an input program, an identifier of the input program, and a power from the outside.
  • a high security level can be assured by controlling permission and rejection of execution of the decrypted program by using information for confirming that the program is the designated program.
  • the present invention is a program execution control program stored in a computer-readable medium for causing a computer to execute only a designated program specified in advance, wherein a predetermined function is previously stored in the designated program. Storing at least one set of an expected value obtained by application and an identifier of the specified program; storing a decryption key input in advance; and an input program and an identifier of the input program. Externally inputting an encrypted program obtained by encrypting the set, and decrypting the encrypted program using the decryption key to generate a decrypted program and an identifier of the decrypted program.
  • a high security level can be guaranteed by controlling the permission and rejection of execution of the decrypted program using the information for confirming that the program is the designated program.
  • FIG. 1 is a block diagram showing an example of a configuration of a program execution control system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing an example of a configuration of the client terminal according to the embodiment of the present invention.
  • FIG. 3 is a block diagram showing an example of a configuration of the program execution control device according to the embodiment of the present invention.
  • FIG. 4 is a block diagram showing an example of a function of the program execution control device according to the embodiment of the present invention.
  • FIG. 5 is a flowchart showing an example of OS processing at the time of program execution.
  • FIG. 6 is a flowchart showing an example of the processing of the program execution control device when executing the program.
  • FIG. 1 is a block diagram showing an example of a configuration of a program execution control system according to an embodiment of the present invention.
  • the program execution control system includes a server 1 and a client terminal 2 connected by a network 3.
  • Server 1 and client terminal 2 transmit and receive data via network 3.
  • Real truth In the embodiment, a description will be given using a PC as the client terminal 2.
  • FIG. 1 shows one client terminal 2 for simplicity, but a plurality of client terminals 2 are connected to the network 3.
  • the server 1 and the client terminal 2 perform mutual authentication to confirm whether or not they are mutually reliable parties, and then use an encrypted communication path between the server 1 and the client terminal 2. The communication that had been done.
  • FIG. 2 is a block diagram showing an example of a configuration of a client terminal.
  • the client terminal 2 includes a CPU (Central Processing Unit) 11, a program execution control device 12, a main storage device 13, an I / O (Input / Output) 14, It comprises a secondary storage device 15, a display 16, a keyboard 17, and a network interface 18.
  • the program execution controller 12, the main storage device 13, and the I / O 14 are connected to the CPU 11 via the system bus, and the secondary storage device 15, the display 16, the keyboard 17, and the network interface 18 are connected to the I / O 14 Is connected to
  • the CPU 11 executes the S and programs.
  • the program execution control device 12 performs decoding / determination of a program to be executed, and the like.
  • the main storage device 13 is a storage device for operating the OS and various programs, and is configured by, for example, a memory.
  • the secondary storage device 15 is a storage device for storing an OS, various programs, and the like executed on the client terminal 2, and is constituted by, for example, a hard disk drive.
  • the display 16 performs display according to the instruction of the CPU 11.
  • the keyboard 17 receives an input from a user and outputs the input to the CPU 11.
  • the network interface 18 inputs and outputs programs and data to and from the server 1 connected via the network 3.
  • FIG. 3 is a block diagram showing an example of a configuration of a program execution control device.
  • the program execution control device 12 includes a CPU 21, a main storage device 22, an I / O 23, an external interface 24, and a secondary storage device 25.
  • the main storage 22 and I / O 23 are connected to the CPU 21 via the system bus,
  • the interface 24 and the secondary storage device 25 are connected to the I / O 23.
  • the CPU 21 controls each unit in the program execution control device 12.
  • the main storage device 22 is a storage device on which software for program execution control operates, and is composed of, for example, a memory.
  • the external interface 24 is an interface for inputting and outputting data to and from the outside of the program execution controller 12, and is connected to the system bus of the client terminal 2.
  • the secondary storage device 25 is a storage device for storing software to be executed by the program execution control device 12, and is composed of, for example, a nonvolatile memory.
  • FIG. 4 is a block diagram showing an example of a function of the program execution control device.
  • the functions of the program execution control device include an input / output interface 31, a decryption unit 32, a decryption key storage unit 33, an operation hash value calculation unit 34, and a comparison unit 3. 5, an expected hash table storage unit 36, an operation hash table storage unit 37, and a gate 38.
  • the input / output interface 31, the decryption unit 32, the operation hash value calculation unit 34, the comparison unit 35, and the gate 38 are software stored in the secondary storage device 25, and the main storage device 22. After that, the program is executed by the CPU 21.
  • the decryption key storage unit 33, the expected hash table storage unit 36, and the operation hash table storage unit 37 are provided in the main storage device 22 or the secondary storage device 25, and are respectively provided for the decryption key, the expected hash table, and the operation. Stores a hash table.
  • the input / output interface 31, the decryption unit 32, the operation hash value calculation unit 34, the comparison unit 35, and the gate 38 may be realized as hardware.
  • the expected hash table is a list of specified programs that the server 1 is permitted to execute for the client terminal 2 and is composed of a set of a program ID of the specified program and an expected hash value.
  • the program ID is a program-specific ID.
  • server 1 applies a one-way function to a specified program, Is calculated as an expected hash value.
  • the server 1 creates an entry in which the program ID of the specified program and the calculated expected hash value are paired.
  • Server 1 creates the required number of entries for the specified program and creates the expected hash table.
  • the server 1 sends the created expected hash table to the client terminal 2.
  • the OS receives the expected hash table from the server 1 and outputs it to the program execution controller 12.
  • the input / output interface 31 outputs the expected hash table input from the OS to the expected hash table storage unit 36, and the expected hash table storage unit 36 stores the expected hash table. .
  • the process of downloading the expected hash table in the client terminal 2 is performed.
  • the server 1 generates an encrypted program by combining the program ID of the designated program to be transmitted to the client terminal 2 with the program and performing encryption.
  • the server 1 sends the encrypted program to the client terminal 2.
  • the OS receives the encrypted program from the server 1 and stores it in the secondary storage device 15 of the client terminal 2. As described above, the program download processing in the client terminal 2 is performed.
  • FIG. 5 is a flowchart showing an example of OS processing at the time of program execution.
  • FIG. 6 is a flowchart showing an example of processing of the program execution control device at the time of program execution.
  • the user uses the keyboard 17 to instruct execution of a program.
  • the OS takes out the encrypted program specified by the keyboard 17 from the secondary storage device 15 and outputs it to the program execution control device 12 (S 1).
  • the encrypted program received from the server 1 may be directly output to the program execution control device 12 without being stored in the secondary storage device 15.
  • the encrypted program from the OS The data is input to the output interface 31 (S11).
  • the input / output interface 31 outputs the encrypted program to the decryption unit 32, and the decryption unit 32 decrypts the encrypted program using the decryption key of the decryption key storage unit 33, and outputs the decrypted program and the program ID of the decrypted program. Is generated (S12).
  • the decryption key is obtained in advance from the outside such as the server 1 and stored in the decryption key storage unit 33.
  • the decrypted program is output to the gate 38 and the operation hash value calculation unit 34, and the program ID of the decrypted program is output to the expected hash table storage unit 36 and the operation hash table storage unit 37.
  • the operation hash value calculation unit 34 calculates a hash value by applying a one-way function to the decrypted program, and sets it as an operation hash value (S13).
  • the operation hash value is output to the comparison unit 35 and the operation hash table storage unit 37.
  • the comparing unit 35 obtains the expected hash value corresponding to the program ID of the decrypted program from the expected noise table storage unit 36 (S14), compares the expected hash value with the calculated hash value, and obtains the expected hash value. It is determined whether or not the value matches the calculated hash value (S15).
  • the operation hash table storage unit 37 sets the unused program entry of the operation hash table with the program ID of the decrypted program and the operation hash value. While storing, the entry number of the stored entry is output to the gate 38 (S16). The gate 38 combines the entry number and the decrypted program, outputs the combined program to the OS via the input / output interface 31 (S17), and ends this flow. On the other hand, if the expected hash value and the operation hash value do not match (S15, N), the gate 38 outputs an error to the OS via the input / output interface 31 (S18), and ends this flow.
  • the OS that outputs the encrypted program to the program execution controller 12 receives the entry number and the decrypted program from the program execution controller 12 (S2, Y), ⁇ S Acquisition, process allocation, acquisition of process table, and setting of management information are performed (S3), and the entry number is stored in the process table (S4).
  • the OS then runs the decrypted program.
  • the line is executed (S5), and this flow ends. If the OS that outputs the encrypted program to the program execution controller 12 receives an error from the program execution controller 12 (S2, N), the flow ends without executing the program. You.
  • the process of executing the program in the client terminal 2 is performed. By passing the program to the program execution controller before executing the program, the OS can execute only the specified program permitted to be executed by the server.
  • the OS outputs the entry number corresponding to the currently executed decrypted program to the program execution controller 12 when ending the currently executed decrypted program, and deletes the entry in the arithmetic hash table. Ask. Next, the OS releases the process allocation memory and the process tape.
  • the input / output interface 31 of the program execution controller 12 outputs the entry number input from OS to the operation hash table storage unit 37.
  • the operation hash table storage unit 37 deletes the input entry number and marks it as “unused”. This is realized, for example, by zeroing the entry corresponding to the input entry number.
  • the program execution termination processing in the client terminal 2 is performed. By performing the execution termination processing of this program, the entry storing the set of the program ID and the operation hash value of the currently executed decrypted program is stored in the operation hash table storage unit 37 of the program execution control device 12. Is stored.
  • the server 1 sends the client terminal 2 a request to acquire all the entries in the operation hash table 37 or a part of the entries in the operation hash table 37.
  • the OS receives a calculation hash table acquisition request from the server 1
  • the OS outputs a calculation hash table acquisition request to the program execution control device 12.
  • the operation hash table storage unit 37 receives a request to obtain an operation hash table via the input / output interface 31.
  • the operation hash table storage unit 37 stores the operation hash According to the table acquisition request, the specified entry of the operation hash table is
  • OS sends the specified entry to server 1.
  • the server 1 that has received the entry can check the list of decrypted programs that are currently being executed on the client terminal 2. As described above, the execution confirmation processing of the program in the server 1 is performed.
  • the server transmits the encrypted program obtained by encrypting the specified program, and the client terminal decrypts and executes the received encrypted program.
  • the execution control device can handle programs that are not encrypted. In that case, the decryption unit 32 and the decryption key storage unit 33 shown in FIG. 4 become unnecessary.
  • server 1 transmits the expected nosh table and the programmed program to client terminal 2, but the expected hash table and the encrypted program are transmitted to client terminal 2 from outside using a portable recording medium or the like. May be entered. Industrial potential
  • a client terminal can operate only a legitimate program authenticated by a server, and controls permission and rejection of execution of a program by hardware instead of software. This guarantees a high security level. Furthermore, since the client terminal hardware safely holds a list of currently executing programs as an operation hash table, the server can reliably acquire the operation status of the program on the client terminal.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

プログラム実行制御装置、 o s、 クライアント端末、 サーバ、 プログラム実行制 御システム、 プログラム実行制御方法、 プログラム実行制御プログラム 技術分野
本発明は、 認証された正当なプ明ロダラムのみの実行を許可するプロダラム実行 制御装置、 O S (Operating Systems) 、 クライアント端末、 サーバ、 プロダラ ム実行制御システム、 プログラム実行制御方法、 プログラム実行制御プログラム に関するものである。 食曰 背景技術
近年、 携帯電話や I C (Integrated Circuit) カード等のデバイスは、 無線や 有線でネットワークに接続されており、 電子決済等の電子商取引、 電子申請等、 セキュリティが要求される処理を、 これらのデバイス上で行うことが現実化して きている。 これらのサービスは多種多様であるため、 すべてのサービスに対応す るプログラムを事前にデバイスに保持しておくことは不可能であり、 享受するサ 一ビスに合わせて動的に必要なプログラムだけをデバイスにダウンロードし、 動 作させることが不可欠となる。 ' このような場合には、 セキュリティ上の観点から、 デバイスがあるサービスを 享受している間は、 許可されたプロダラムのみを動作させることを保証すること 、 及ぴ、 デパイス上で動作しているプログラムの一覧が、 サービスを提供するサ ーパ側から確認できることが重要である。 これにより、 許可していないプログラ ムがデパイス上で動作して!/、ることが判明した場合に、 セキュリティ上の理由に より、 サーバ側からサービスをうち切ることが可能となる。 セキュリティに関連 する技術として、 T C P A (Trusted Computing Platform Alliance) 、 O Sの ドライバ署名、 外部からダウンロードして実行するプログラムの認証等がある。
T C P Aは、 特別なセキュリティチップを P C (Personal Computer) や携帯 端末等のクライアント端末に追加することで、 クライアント端末におけるソフト ウェアを含む環境全体の安全性を保証することを目指している。 現状の仕様では
、 一般に B I O S (Basic Input/Output System) 、 ブートプログラム、 O S口 ーダ一、 O Sというようにソフトウェアが順次起動されていくクライアント端末 の起動時に、 以下の処理を行う。
まずクライアント端末において、 B I O S中のコードが、 次に起動するブート プログラムのハッシュ値を算出し、 セキュリティチップ内に格納した後、 ブート プログラムに制御を渡す。 ここでハッシュ値とは、 対象となるプログラムに一方 向性関数を適用して算出された値のことである。 次に、 ブートプログラムが、 〇 Sローダーのハッシュ値を算出し、 同様にセキュリティチップ内に格納した後、 〇Sローダーに制御を渡す。 次に、 〇Sローダーが、 〇Sのハッシュ値を算出し 、 同様にセキュリティチップ内に格納した後、 〇Sに制御を移す。 次に、 クライ アント端末は、 任意のタイミングで発生するサーバ等の外部エンティティからの 要求により、 上記で算出したハッシュ値群をサーバに返答する。
このような処理により、 現在クライアント端末で実行している、 または実行し てしまったプログラムの一覧を、 ハッシュ値という形でサーバ側が知ることがで き、 不正なプログラムがクライアント端末で動作しているかどうかを確認できる 。 不正なプログラムが動作していることが判明した場合には、 サーバが該当する クライアント端末に対するサービスをうち切るといつた制御が可能になる。 また、 O Sの中には、 正当な署名の付与されていないデバイスドライバの組み 込みを拒絶する機能を採用しているものがある。 なお、 正当な署名がなくても、 ユーザが許可すれば組み込みを実行することもできる。
また、 クライアント端末において、 外部からプログラムをダウンロードして実 行する仮想マシンの中には、 正当な署名の付与されていないプログラムの実行を 拒絶するもの、 あるいは、 実行は許可するが、 プログラムの動作に制限を加える という機能を持つものがある。 このような処理により、 不正なドライバの組み込 みや、 不正なプログラムの実行を防ぐことができる。
しかしながら、 T C P Aにおいては、 不正なソフトウェアが動作していること を外部より確認することができても、 動作しないように制御することはできない という問題がある。 また、 T C P Aは O Sの起動までを対象としており、 〇S起 動後のプログラムの起動に対応できていない。
また、 O Sのドライバ署名においては、 署名の検証処理、 および、 検証結果が 否となった場合の組み込み拒絶処理がソフトウェアで実現されているため、 処理 部分を改竄することにより不正なドライバの組み込み防止の機能を無効ィ匕するこ とができてしまうという問題がある。 また、 外部からダウンロードして実行する プログラムの認証においても、 O Sのドライバ署名の場合と同様、 仮想マシンは ソフトウェアであるため、 これを改竄することにより不正なプログラムの拒絶の 機能を無効化することができてしまうという問題がある。
本発明は、 このような問題を解決するためになされたものであり、 デバイス内 に用意する耐タンパなハードウエアが、 事前に安全な手段によってサーバから取 得したプログラムの一覧に記載されたプログラムのみを O Sに渡すことで、 O S によるプログラムの実行を可能とし、 さらに O Sにより実行されているプログラ ムの一覧をハードウエア内に安全に保持し、 サーバからの要求に応じて安全に通 知することができるプログラム実行制御装置、 o s、 クライアント端末、 サーバ
、 プログラム実行制御システム、 プログラム実行制御方法、 プログラム実行制御 プログラムを提供することを目的とする。 発明の開示
本発明は、 予め指定された指定プログラムのみの実行を許可するプログラム実 行制御装置であって、 予め前記指定プログラムに所定の関数を適用して得られる 期待値と前記指定プログラムの識別子とからなる組を少なくとも 1組記憶する期 待値テーブル記憶部と、 入力プログラムと該入力プログラムの識別子とからなる 組を外部から入力することができる入カインタフェースと、 前記入力プロダラム に所定の関数を適用して演算値を得る関数演算部と、 前記期待値テーブル内の期 待値のうち前記入力プログラムの識別子に対応する前記期待値と前記演算値との 比較を行う比較部と、 該比較結果が一致した場合に、 前記入力プログラムを外部 へ出力する出力インタフェースとを備えてなるものである。
このような構成によれば、 ハードウェアであるプロダラム実行制御装置が指定 プログラムであることを確認するための情報を内部に保持するとともに、 入カフ。 口グラムの実行の許可およぴ拒絶の制御を行うことにより、 高いセキュリティレ ベルを保証できる。 なお、 本実施の形態における期待値テーブル記憶部とは期待 値テーブル記憶部 3 6のことであり、 入力インタフェースとは入出力インタフエ ース 3 1のことであり、 関数演算部とは演算ハッシュ値算出部 3 4のことであり 、 比較部とは比較部 3 5のことであり、 出力インタフェースとは入出力インタフ エース 3 1とゲート 3 8のことである。
また、 本発明に係るプログラム実行制御装置において、 前記所定の関数は一方 向性関数であり、 前記期待値および前記演算値はハッシュ値であることを特徴と するものである。
このような構成によれば、 入力プログラムに一方向性関数を適用して算出され るハッシュ値を用いることにより、 指定プログラムである力、否かの判断を高い信 賴性で行うことができる。
また、 本発明に係るプログラム実行制御装置において、 実行中の前記入力プロ グラムの識別子と演算値とからなる組を少なくとも 1組記憶する演算値テーブル 記憶部を備え、 外部からの要求に従って前記入力プログラムの識別子と演算値と 力 らなる組を前記外部へ出力することを特徴とするものである。
このような構成によれば、 現在実行中のプログラムに関する情報を必要に応じ て外部へ出力することにより、 現在実行中のプログラムを外部から確認すること ができる。
また、 本発明は、 本発明に係るプログラム実行制御装置を用いる O Sであって
、 前記プログラム実行制御装置へ前記入力プログラムを入力し、 前記プログラム 実行制御装置から前記入力プログラムを出力された場合に、 前記入力プログラム を実行するものである。
このような構成によれば、 O Sが実行するプログラムが、 指定プログラムであ る力否かの判断をプログラム実行制御装置が行うことにより、 O Sは予め指定さ れた指定プログラムのみを実行することができる。
また、 本発明は、 本発明に係るプログラム実行制御装置を備えたクライアント 端末であって、 外部から入力された前記入力プログラムを前記プログラム実行制 御装置へ入力し、 前記プログラム実行制御装置から前記入力プログラムが出力さ れた場合に、 前記入力プログラムを実行するものである。
このような構成によれば、 クライアント端末が実行するプログラムが、 指定プ ログラムであるか否かの判断をプログラム実行制御装置が行うことにより、 クラ イアント端末は予め指定された指定プログラムのみを実行することができる。 また、 本発明は、 本発明に係るプログラム実行制御装置を備えたクライアント 端末であって、 外部からの要求に従つて前記入力プログラムの識別子と演算値と からなる組を前記外部へ出力するものである。
このような構成によれば、 現在実行中のプログラムに関する情報を必要に応じ て外部へ出力することにより、 現在実行中のプログラムを外部から確認すること ができる。 - また、 本発明は、 本発明に係るクライアント端末とネットワークを介して接続 されることができるサーバであって、 予め前記クライアント端末へ前記指定プ口 グラムの識別子と期待値とからなる組を送信し、 必要に応じて前記クライアント 端末へ前記入力プログラムを送信するものである。
このような構成によれば、 指定プログラムを送信するサーバが指定プログラム に関する情報を予め送信することにより、 実行を許可するプログラムを指定する ことができる。
また、 本発明は、 本発明に係るクライアント端末とネットワークを介して接続 されることができるサーバであって、 前記クライアント端末において実行中のプ ログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し 、 受信した識別子と演算値とからなる組に基づレ、て前記クライアント端末で実行 中の前記入力プログラムを確認するものである。
このような構成によれば、 サーバは、 クライアント端末が指定プログラムを実 行しているか否かを監視することができる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御システムであって、 本発明に係るクライアント端末と、 該クライア ント端末とネットワークを介して接続されることができ、 予め前記クライアント 端末へ前記指定プログラムの期待値と識別子と力 らなる組を送信し、 必要に応じ て前記クライアント端末へ前記入力プログラムを送信するサーバとを備えてなる ものである。
このような構成によれば、 指定プログラムを送信するサーバが指定プログラム に関する情報を予め送信することにより、 サーバは実行を許可するプログラムを 指定することができ、 クライアント端末は予め指定された指定プログラムのみを 実行することができる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御システムであって、 本発明に係るクライアント端末と、 該クライア ント端末とネットワークを介して接続されることができ、 前記クライアント端末 にお!/、て実行中のプログラムの識別子と演算値とからなる組の要求を前記クライ アント端末へ送信し、 受信した識別子と演算値に基づいて前記クライアント端末 で実行中の前記入力プログラムを確認するサーバとを備えてなるものである。 このような構成によれば、 サーバは、 クライアント端末が指定プログラムを実 行している力否かを監視することができる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御方法であって、 予め前記指定プログラムに所定の関数を適用して得 られる期待値と前記指定プログラムの識別子とからなる組を少なくとも 1組記憶 するステップと、 入力プログラムと該入力プログラムの識別子とからなる組を外 部から入力するステップと、 前記入力プログラムに所定の関数を適用して演算値 を得るステップと、 前記期待値と識別子とからなる組のうち、 前記入力プロダラ ムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との 比較を行うステップと、 前記比較により一致と判断された場合に、 前記入力プロ グラムを外部へ出力するステツプとを備えてなるものである。
このような構成によれば、 指定プログラムであることを確認するための情報を 用いて、 入力プログラムの実行の許可および拒絶の制御を行うことにより、 高い セキュリティレベルを保証できる。
また、 本発明は、 予め指定された指定プログラムのみをコンピュータに実行さ せるために、 コンピュータにより読取可能な媒体に記憶されたプ口グラム実行制 御プログラムであって、 予め前記指定プログラムに所定の関数を適用して得られ る期待値と前記指定プログラムの識別子とからなる組を少なくとも 1組記憶する ステップと、 入力プログラムと該入力プログラムの識別子と力 らなる組を外部か ら入力するステップと、 前記入力プログラムに所定の関数を適用して演算値を得 るステップと、 前記期待値と識別子とからなる組のうち、 前記入力プログラムの 識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較 を行うステップと、 前記比較により一致と判断された場合に、 前記入力プログラ ムを外部へ出力するステップとを備えてなるものである。
このような構成によれば、 指定プログラムであることを確認するための情報を 用いて、 入力プログラムの実行の許可および拒絶の制御を行うことにより、 高い セキュリティレベルを保証できる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御装置であって、 予め前記指定プログラムに所定の関数を適用して得 られる期待値と前記指定プログラムの識別子とからなる組を少なくとも 1組記憶 する期待値テーブル記憶部と、 予め入力された復号鍵を記憶する復号鍵記憶部と 、 入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済 みプログラムを外部から入力することができる入カインタフェースと、 前記復号 鍵を用いて前記暗号済みプログラムの復号を行!/、、 復号済みプロダラムと該復号 済みプログラムの識別子を生成する復号部と、 前記復号済みプログラムに所定の 関数を適用して演算値を得る関数演算部と、 前記期待値テーブル内の前記復号済 みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記 演算値との比較を行う比較部と、 該比較結果が一致した場合に、 前記インタフエ ースを介して前記復号済みプログラムを外部へ出力させる出カインタフェースと を備えてなるものである。
このような構成によれば、 ハードウェアであるプログラム実行制御装置が指定 プログラムであることを確認するための情報を内部に保持するとともに、 復号済 みプログラムの実行の許可および拒絶の制御を行うことにより、 高いセキユリテ ィレベルを保証できる。 なお、 本実施の形態における復号鍵記憶部とは復号鍵記 憶部 3 3のことであり、 復号部とは復号部 3 2のことである。
また、 本発明に係るプログラム実行制御装置において、 前記所定の関数は一方 向性関数であり、 前記期待値および前記演算値はハッシュ値であることを特徴と するものである。
このような構成によれば、 復号済みプログラムに一方向性関数を適用して算出 されるハッシュ値を用いることにより、 指定プログラムであるか否かの判断を高 い信頼性で行うことができる。
また、 本発明に係るプログラム実行制御装置において、 実行中の前記復号済み プログラムの識別子と演算値とからなる組を少なくとも 1組記憶する演算値テー ブル記憶部を備え、 外部からの要求に従って前記復号済みプログラムの識別子と 演算値とからなる組を前記外部へ出力することを特徴とするものである。
このような構成によれば、 現在実行中のプログラムに関する情報を必要に応じ て外部へ出力することにより、 現在実行中のプログラムを外部から確認すること ができる。
また、 本発明は、 本発明に係るプログラム実行制御装置を用いる O Sであって
、 前記プログラム実行制御装置へ前記暗号済みプログラムを入力し、 前記プログ ラム実行制御装置から前記復号済みプログラムを出力された場合に、 前記復号済 みプログラムを実行するものである。
このような構成によれば、 〇sが実行するプログラムが、 指定プログラムであ るか否かの判断をプログラム実行制御装置が行うことにより、 O Sは予め指定さ れた指定プログラムのみを実行することができる。
また、 本発明は、 本発明に係るプログラム実行制御装置を備えたクライアント 端末であって、 外部から入力された前記喑号済みプログラムを前記プログラム実 行制御装置へ入力し、 前記プログラム実行制御装置から前記復号済みプログラム が出力された場合に、 前記復号済みプログラムを実行するものである。
このような構成によれば、 クライアント端末が実行するプログラムが、 指定プ 口グラムであるか否かの判断をプログラム実行制御装置が行うことにより、 クラ イアント端末は予め指定された指定プログラムのみを実行することができる。 また、 本発明は、 本発明に係るプログラム実行制御装置を備えたクライアント 端末であって、 外部からの要求に従つて前記復号済みプロダラムの識別子と演算 値とからなる組を前記外部へ出力するものである。
このような構成によれば、 現在実行中のプログラムに関する情報を必要に応じ て外部へ出力することにより、 現在実行中のプログラムを外部から確認すること ができる。
また、 本発明は、 本発明に係るクライアント端末とネットワークを介して接続 されることができるサーバであって、 予め前記クライアント端末へ前記指定プロ グラムの識別子と期待値とからなる組を送信し、 必要に応じて前記クライアント 端末へ前記暗号済みプログラムを送信するものである。
このような構成によれば、 指定プログラムを送信するサーバが指定プログラム に関する情報を予め送信することにより、 実行を許可するプログラムを指定する ことができる。
また、 本発明は、 本発明に係るクライアント端末とネットワークを介して接続 されることができるサーバであって、 前記クライアント端末において実行中のプ ログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し 、 受信した識別子と演算値とからなる組に基づいて前記クライアント端末で実行 中の前記復号済みプログラムを確認することを特徴とするものである。
このような構成によれば、 サーバは、 クライアント端末が指定プログラムを実 行している力否かを監視することができる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御システムであって、 本発明に係るクライアント端末と、 該クライア ント端末とネットワークを介して接続されることができ、 予め前記クライアント 端末へ前記指定プログラムの期待値と識別子とからなる組を送信し、 必要に応じ て前記クライアント端末へ前記暗号済みプログラムを送信するサーバとを備えて なるものである。
このような構成によれば、 指定プログラムを送信するサーバが指定プログラム に関する情報を予め送信することにより、 サーバは実行を許可するプログラムを 指定することができ、 クライアント端末は予め指定された指定プログラムのみを 実行することができる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御システムであって、 本発明に係るクライアント端末と、 該クライア ント端末とネットワークを介して接続されることができ、 前記クライアント端末 において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライ アント端末へ送信し、 受信した識別子と演算値に基づレヽて前記クライアント端末 で実行中の前記復号済みプログラムを確認するサーバとを備えてなるものである このような構成によれば、 サーバは、 クライアント端末が指定プログラムを実 行している力否かを監視することができる。
また、 本発明は、 予め指定された指定プログラムのみの実行を許可するプログ ラム実行制御方法であって、 予め前記指定プログラムに所定の関数を適用して得 られる期待値と前記指定プログラムの識別子とからなる組を少なくとも 1組記憶 するステップと、 予め入力された復号鍵を記憶するステップと、 入力プログラム と該入力プログラムの識別子と力 らなる組を暗号ィ匕した喑号済みプログラムを外 部から入力するステップと、 前記復号鍵を用いて前記暗号済みプログラムの復号 を行い、 復号済みプログラムと該復号済みプログラムの識別子を生成するステツ プと、 前記復号済みプログラムに所定の関数を適用して演算値を得るステップと 、 前記期待値と識別子とからなる ¾aのうち、 前記復号済みプログラムの識別子に 対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うス テツプと、 前記比較により一致と判断された場合に、 前記復号済みプログラムを 外部へ出力するステップとを備えてなるものである。
このような構成によれば、 指定プログラムであることを確認するための情報を 用いて、 復号済みプログラムの実行の許可および拒絶の制御を行うことにより、 高いセキュリティレべノレを保証できる。
また、 本発明は、 予め指定された指定プログラムのみをコンピュータに実行さ せるために、 コンピュータにより読取可能な媒体に記憶されたプログラム実行制 御プログラムであって、 予め前記指定プロダラムに所定の関数を適用して得られ る期待値と前記指定プログラムの識別子とからなる組を少なくとも 1組記憶する ステップと、 予め入力された復号鍵を記憶するステップと、 入力プログラムと該 入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部か ら入力するステップと、 前記復号鍵を用いて前記暗号済みプログラムの復号を行 い、 復号済みプログラムと該復号済みプログラムの識別子を生成するステップと 、 前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、 前 記期待値と識別子と力 らなる組のうち、 前記復号済みプログラムの識別子に対応 する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステッ プと、 前記比較により一致と判断された場合に、 前記復号済みプログラムを外部 へ出力するステップとを備えてなるものである。
このような構成によれば、 指定プログラムであることを確認するための情報を 用いて、 復号済みプログラムの実行の許可および拒絶の制御を行うことにより、 高いセキュリティレベルを保証できる。 図面の簡単な説明
第 1図は、 本発明の実施の形態に係るプログラム実行制御システムの構成の一 例を示すブロック図である。
第 2図は、 本発明の実施の形態に係るクライアント端末の構成の一例を示すブ 口ック図である。
第 3図は、 本発明の実施の形態に係るプログラム実行制御装置の構成の一例を 示すブロック図である。
第 4図は、 本発明の実施の形態に係るプログラム実行制御装置の機能の一例を 示すブロック図である。
第 5図は、 プログラム実行時における O Sの処理の一例を示すフローチヤ一ト である。
第 6図は、 プログラム実行時におけるプログラム実行制御装置の処理の一例を 示すフローチャートである。 発明を実施するための最良の形態
以下、 本発明の実施の形態について図面を参照して詳細に説明する。 第 1図は 、 本発明の実施の形態に係るプログラム実行制御システムの構成の一例を示すブ ロック図である。 第 1図に示すように、 このプログラム実行制御システムは、 ネ ットワーク 3で接続されたサーバ 1とクライアント端末 2で構成される。 サーバ 1とクライアント端末 2はネットワーク 3を介してデータの送受信を行う。 本実 施の形態では、 クライアント端末 2として PCを用いて説明する。 第 1図には簡 単のため、 1台のクライアント端末 2を図示しているが、 ネットワーク 3には複 数台のクライアント端末 2が接続されている。 また、 サーバ 1とクライアント端 末 2は、 通信を行う際に、 互いに信頼できる相手か否かを確認、する相互認証を行 い、 その後サーバ 1とクライアント端末 2の間で暗号化通信路を用いた通信を行 ラ。
次に、 クライアント端末 2について説明する。 第 2図は、 クライアント端末の 構成の一例を示すブロック図である。 第 2図に示すように、 このクライアント端 末 2は、 CPU (Central Processing Unit) 1 1と、 プログラム実行制御装置 12と、 主記憶装置 13と、 I/O (Input / Output) 14と、 二次記憶装置 1 5と、 ディスプレイ 16と、 キーボード 17と、 ネットワークインタフェース 1 8から構成される。 プログラム実行制御装置 12と主記憶装置 13と I/O 14 はシステムバスを介して CPU 11と接続されており、 二次記憶装置 15とディ スプレイ 16とキーボード 17とネットワークインタフェース 18は I /O 14 と接続されている。
CPU 11は、 〇Sやプログラムの実行を行う。 プログラム実行制御装置 12 は、 実行するプログラムの復号ゃ判定等を行う。 主記憶装置 13は、 OSや各種 プログラムが動作するための記憶装置であり、 例えばメモリで構成される。 二次 記憶装置 15は、 クライアント端末 2で実行される OSや各種プログラム等を格 納するための記憶装置であり、 例えばハードデイスクドライブで構成される。 デ イスプレイ 16は、 CPU1 1の指示に従って表示を行う。 キーボード 17は、 ユーザからの入力を受け付け、 CPU11へ出力する。 ネットワークインタフエ ース 18は、 ネットワーク 3で接続されたサーバ 1との間でプログラムやデータ の入出力を行う。
次に、 プログラム実行制御装置 12について説明する。 第 3図は、 プログラム 実行制御装置の構成の一例を示すブロック図である。 第 3図に示すように、 この プログラム実行制御装置 12は、 CPU21と、 主記憶装置 22と、 I /O 23 と、 外部インタフェース 24と、 二次記憶装置 25から構成される。 主記憶装置 22と I/O 23はシステムバスを介して C P U 21に接続されており、 外部ィ ンタフェース 2 4と二次記憶装置 2 5は I /O 2 3に接続されている。
C P U 2 1は、 プログラム実行制御装置 1 2内の各部の制御を行う。 主記憶装 置 2 2は、 プログラム実行制御のソフトウエアが動作するための記憶装置であり 、 例えばメモリで構成される。 外部インタフェース 2 4は、 プログラム実行制御 装置 1 2の外部との間でデータの入出力を行うインタフェースであり、 クライア ント端末 2のシステムバスに接続されている。 二次記憶装置 2 5は、 プログラム 実行制御装置 1 2で実行されるソフトウェアを格納するための記憶装置であり、 例えば不揮発性メモリで構成される。
次に、 プログラム実行制御装置 1 2の機能について説明する。 第 4図は、 プロ グラム実行制御装置の機能の一例を示すプロック図である。 第 4図に示すように 、 このプログラム実行制御装置の機能は、 入出力インタフェース 3 1と、 復号部 3 2と、 復号鍵記憶部 3 3と、 演算ハッシュ値算出部 3 4と、 比較部 3 5と、 期 待ハッシュテーブル記憶部 3 6と、 演算ハッシュテーブル記憶部 3 7と、 ゲート 3 8カゝら構成される。
入出力インタフェース 3 1と復号部 3 2と演算ハッシュ値算出部 3 4と比較部 3 5とゲート 3 8は、 二次記憶装置 2 5に格納されているソフトウエアであり、 主記憶装置 2 2に読み込まれた後、 C P U 2 1により実行される。 復号鍵記憶部 3 3と期待ハッシュテーブル記憶部 3 6と演算ハッシュテーブル記憶部 3 7は、 主記憶装置 2 2または二次記憶装置 2 5に備えられ、 それぞれ、 復号鍵、 期待ハ ッシュテーブル、 演算ハッシュテーブルを格納する。 ここで、 入出力インタフエ ース 3 1と復号部 3 2と演算ハッシュ値算出部 3 4と比較部 3 5とゲート 3 8は 、 ハードウェアとして実現しても良い。
以下、 サーバ 1が指定した指定プログラムのみを、 クライアント端末 2が実亍 するプログラム実行制御システムについて説明する。 最初に、 クライアント端末 2における期待ハッシュテーブルのダウンロード処理について説明する。 期待ハ ッシュテーブルとは、 サーバ 1がクライアント端末 2に対して実行を許可する指 定プログラムの一覧のことであり、 指定プログラムのプログラム I Dと期待ハツ シュ値の組からなる。 プログラム I Dとはプログラム固有の I Dのことである。 まず、 サーバ 1は、 ある指定プログラムに一方向性関数を適用してハッシュ値 を算出し、 期待ハッシュ値とする。 次に、 サーバ 1は、 ある指定プログラムのプ ログラム I Dと算出された期待ハッシュ値とを組にしたエントリを作成する。 サ ーバ 1は、 必要な指定プログラムの数だけエントリを作成し、 期待ハッシュテー ブルを作 する。 次に、 サーバ 1は、 作成した期待ハッシュテーブルをクライア ント端末 2へ送信する。 一方、 クライアント端末 2において、 O Sはサーバ 1か らの期待ハッシュテーブルを受信し、 プログラム実行制御装置 1 2へ出力する。 プログラム実行制御装置 1 2において、 入出力インタフェース 3 1は O Sから入 力された期待ハッシュテーブルを期待ハッシュテーブル記憶部 3 6へ出力し、 期 待ハッシュテーブル記憶部 3 6は期待ハッシュテーブルを格納する。 以上のよう に、 クライアント端末 2における期待ハッシュテーブルのダウンロード処理は行 われる。
次に、 クライアント端末 2におけるプログラムのダウンロード処理について説 明する。 まず、 サーバ 1は、 クライアント端末 2へ送信する指定プログラムのプ ログラム I Dとプログラムを結合して暗号ィヒを行うことにより暗号済みプログラ ムを生成する。 次に、 サーバ 1は、 暗号済みプログラムをクライアント端末 2へ 送信する。 一方、 クライアント端末 2において、 O Sはサーバ 1からの暗号済み プログラムを受信し、 クライアント端末 2の二次記憶装置 1 5へ格納する。 以上 のように、 クライアント端末 2におけるプログラムのダウンロード処理は行われ る。
次に、 クライアント端末 2におけるプログラムの実行処理についてフローチヤ ートを用いて説明する。 第 5図は、 プログラム実行時における O Sの処理の一例 を示すフローチャートである。 第 6図は、 プログラム実行時におけるプログラム 実行制御装置の処理の一例を示すフローチャートである。 まず、 ユーザは、 キー ボード 1 7を用いてプログラムの実行を指示する。 O Sは、 キーボード 1 7によ り指定された暗号済みプログラムを二次記憶装置 1 5から取り出してプログラム 実行制御装置 1 2へ出力する (S 1 ) 。 ここで、 サーバ 1から受信した暗号済み プログラムを二次記憶装置 1 5に格納せずに、 直接、 プロダラム実行制御装置 1 2へ出力しても良い。
プログラム実行制御装置 1 2において、 O Sからの暗号済みプログラムは、 入 出力インタフェース 31へ入力される (S 11) 。 入出力インタフェース 31は 、 暗号済みプログラムを復号部 32へ出力し、 復号部 32は復号鍵記憶部 33の 復号鍵を用いて暗号済みプログラムを復号して、 復号済みプログラムと復号済み プログラムのプログラム I Dを生成する (S 12) 。 ここで、 復号鍵は予めサー バ 1等の外部から取得され、 復号鍵記憶部 33へ格納されている。 復号済みプロ グラムはゲート 38と演算ハッシュ値算出部 34へ出力され、 復号済みプロダラ ムのプログラム I Dは期待ハッシュテーブル記憶部 36と演算ハッシュテーブル 記憶部 37へ出力される。
演算ハッシュ値算出部 34は、 復号済みプログラムに一方向性関数を適用して ハッシュ値を算出し、'演算ハッシュ値とする (S 13) 。 演算ハッシュ値は、 比 較部 35と演算ハッシュテーブル記憶部 37へ出力される。 比較部 35は、 復号 済みプログラムのプログラム I Dに対応する期待ハッシュ値を期待ノヽッシュテ一 ブル記憶部 36から取得し (S 14) 、 期待ハッシュ値と演算ハッシュ値との比 較を行い、 期待ハッシュ値と演算ハッシュ値が一致する力否かの判断を行う (S 15) 。
期待ハッシュ値と演算ハッシュ値が一致した場合 (S 15, Y) 、 演算ハツシ ュテーブル記憶部 37は、 演算ハッシュテーブルの未使用エントリに、 復号済み プログラムのプログラム I Dと演算ハッシュ値とを組にして格納するとともに、 格納したエントリのエントリ番号をゲート 38へ出力する (S 16) 。 ゲート 3 8は、 エントリ番号と復号済みプログラムを結合し、 入出力インタフェース 31 を介して OSへ出力し (S 17) 、 このフローを終了する。 一方、 期待ハッシュ 値と演算ハッシュ値が一致しなかった場合 (S 15, N) 、 ゲート 38はエラー を、 入出力インタフェース 31を介して OSへ出力し (S 18) 、 このフローを 終了する。
一方、 暗号済みプログラムをプログラム実行制御装置 12へ出力した OSが、 エントリ番号と復号済みプログラムをプログラム実行制御装置 12から入力され た場合 (S 2, Y) 、 〇Sは、 プロセス配置用メモリの獲得、 プロセスの配置、 及びプロセステーブルの獲得、 管理情報の設定を行い (S 3) 、 プロセステープ ルへエントリ番号を格納する (S 4) 。 その後 OSは、 復号済みプログラムの実 行を行い (S 5 ) 、 このフローを終了する。 暗号済みプログラムをプログラム実 行制御装置 1 2へ出力した O Sが、 エラーをプログラム実行制御装置 1 2から入 力された場合 ( S 2 , N) 、 プログラムの実行を行わずに、 このフローを終了す る。 以上のように、 クライアント端末 2におけるプログラムの実行処理は行われ る。 O Sはプログラムの実行前にプログラムをプログラム実行制御装置へ渡すこ とにより、 サーバにより実行を許可された指定プログラムのみを実行することが できる。
次に、 プログラムの実行終了処理について説明する。 O Sは実行中の復号済み プログラムの終了処理を行う際に、 実行中の復号済みプログラムに対応するェン トリ番号をプログラム実行制御装置 1 2へ出力し、 演算ハッシュテーブルのェン トリの削除を依頼する。 次に、 O Sはプロセス配置用メモリ、 プロセステープノレ の解放を行う。
プログラム実行制御装置 1 2の入出力インタフェース 3 1は、 O Sから入力さ れたェントリ番号を演算ハッシュテーブル記憶部 3 7へ出力する。 演算ハッシュ テーブル記憶部 3 7は、 入力されたェントリ番号を削除し、 「未使用」 とマーク する。 これは、 例えば入力されたエントリ番号に対応するエントリ内をゼロタリ ァすることで実現される。 以上のように、 クライアント端末 2におけるプロダラ ムの実行終了処理は行われる。 このプログラムの実行終了処理を行うことにより 、 プロダラム実行制御装置 1 2の演算ハッシュテーブル記憶部 3 7には、 現在実 行中の復号済みプログラムのプログラム I Dと演算ハッシュ値の組が格納された エントリのみが記憶される。
次に、 サーバ 1におけるプログラムの実行確認処理について説明する。 まず、 サーバ 1は演算ハッシュテーブル 3 7内の全てのェントリ、 または演算ハッシュ テーブル 3 7内の一部のエントリの取得要求をクライアント端末 2へ送信する。 一方、 クライアント端末 2において、 O Sはサーバ 1からの演算ハッシュテー ブルの取得要求を受信すると、 演算ハッシュテーブルの取得要求をプログラム実 行制御装置 1 2へ出力する。 プログラム実行制御装置 1 2において、 演算ハツシ ュテーブル記憶部 3 7は、 入出力インタフェース 3 1を介して演算ハッシュテー プルの取得要求を受け取る。 演算ハッシュテーブル記憶部 3 7は、 演算ハッシュ テーブルの取得要求に従って演算ハッシュテーブルのうち指定されたェントリを
、 入出力インタフェース 3 1を介して O Sへ出力する。 O Sは、 指定されたェン トリをサーバ 1へ送信する。 エントリを受信したサーバ 1は、 クライアント端末 2において現在実行中の復号済みプログラムの一覧を確認することができる。 以 上のように、 サーバ 1におけるプログラムの実行確認処理は行われる。
なお、 本実施の形態では、 サーバ側で指定プログラムを暗号化した暗号済みプ ログラムを送信し、 クライアント端末側で受信した暗号済みプログラムを復号し て実行する構成としたが、 本発明に係るプログラム実行制御装置は、 暗号化され ていないプログラムにも対応することができる。 その場合、 第 4図に示した復号 部 3 2と復号鍵記憶部 3 3は不要となる。 また、 本実施の形態では、 サーバ 1が 期待ノヽッシュテーブルと喑号済みプログラムをクライアント端末 2へ送信すると したが、 期待ハッシュテーブルと暗号済みプログラムは、 可搬記録媒体等により 外部からクライアント端末 2へ入力されても良い。 産業上の利用の可能性
以上説明したように本発明によれば、 クライアント端末はサーバにより認証さ れた正当なプログラムだけを動作させることができるとともに、 ソフトウェアで はなくハードウエアでプログラムの実行の許可および拒絶の制御を行うことで高 いセキュリティレベルを保証できる。 さらに、 現在実行中のプログラムの一覧を 演算ハッシュテーブルとしてクライアント端末のハードウェアが安全に保持する ことにより、 サーバはクライアント端末におけるプログラムの動作状況を確実に 取得することができる。

Claims

請 求 の 範 囲
1 . 予め指定された指定プログラムのみの実行を許可するプログラム実行制御装 置であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プ ログラムの識別子とからなる組を少なくとも 1糸且記憶する期待値テーブル記憶部 と、
入力プログラムと該入力プログラムの識別子と力 らなる組を外部から入力する ことができる入力インタフェースと、
前記入力プログラムに所定の関数を適用して演算値を得る関数演算部と、 前記期待値テーブル内の期待値のうち前記入力プログラムの識別子に対応する 前記期待値と前記演算値との比較を行う比較部と、
該比較結果が一致した場合に、 前記入力プログラムを外部へ出力する出カイン タフエースと、
を備えてなるプログラム実行制御装置。
2 . 請求の範囲第 1項に記載のプロダラム実行制御装置において、
前記所定の関数は一方向性関数であり、 前記期待値および前記演算値はハツシ ュ値であることを特徴とするプログラム実行制御装置。
3 . 請求の範囲第 1項に記載のプログラム実行制御装置において、
実行中の前記入力プログラムの識別子と演算値とからなる組を少なくとも 1組 記憶する演算値テーブル記憶部を備え、
外部からの要求に従つて前記入力プログラムの識別子と演算値とからなる組を 前記外部へ出力することを特徴とするプロダラム実行制御装置。
4 . 請求の範囲第 1項に記載のプログラム実行制御装置を用いる〇 Sであって、 前記プログラム実行制御装置へ前記入力プログラムを入力し、 前記プログラム 実行制御装置から前記入力プログラムを出力された場合に、 前記入力プログラム を実行する O S
5 . 請求の範囲第 1項に記載のプログラム実行制御装置を備えたクライアント端 末であって、
外部から入力された前記入力プログラムを前記プログラム実行制御装置へ入力 し、 前記プロダラム実行制御装置から前記入力プログラムが出力された場合に、 前記入力プログラムを実行するクライアント端末。
6 . 請求の範囲第 3項に記載のプログラム実行制御装置を備えたクライアント端 末であって、
外部からの要求に従つて前記入力プログラムの識別子と演算値とからなる組を 前記外部へ出力するクライアント端末。
7 . 請求の範囲第 5項に記載のクライアント端末とネットワークを介して接続さ れることができるサーバであって、
予め前記クライアント端末へ前記指定プログラムの識別子と期待値と力 らなる 組を送信し、 必要に応じて前記クライアント端末へ前記入力プログラム'を送信す るサーバ。
8 . 請求の範囲第 6項に記載のクライアント端末とネットワークを介して接続さ れることができるサーバであって、
前記クライアント端末にぉレ、て実行中のプログラムの識別子と演算値とカ らな る組の要求を前記クライアント端末へ送信し、 受信した識別子と演算値と力 らな る組に基づいて前記クライアント端末で実行中の前記入力プログラムを確認する サーバ。
9 . 予め指定された指定プログラムのみの実行を許可するプログラム実行制御シ ステムであって、
請求の範囲第 5項に記載のクライアント端末と、 該クライアント端末とネットワークを介して接続されることができ、 予め前記 クライアント端末へ前記指定プログラムの期待値と識別子とからなる組を送信し 、 必要に応じて前記クライアント端末へ前記入力プログラムを送信するサーバと を備えてなるプログラム実行制御システム。
1 0 . 予め指定された指定プログラムのみの実行を許可するプログラム実行制御 システムであって、
請求の範囲第 6項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、 前記クラ イアント端末にぉレ、て実行中のプログラムの識別子と演算値とからなる組の要求 を前記クライアント端末へ送信し、 受信した識別子と演算値に基づレ、て前記クラ イアント端末で実行中の前記入力プログラムを確認するサーバと、
を備えてなるプログラム実行制御システム。
1 1 . 予め指定された指定プログラムのみの実行を許可するプログラム実行制御 方法であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プ ログラムの識別子とからなる組を少なくとも 1糸且記憶するステツプと、
入力プログラムと該入カプログラムの識別子と力 らなる組を外部から入力する ステップと、
前記入力プログラムに所定の関数を適用して演算値を得るステップと、 前記期待値と識別子とからなる組のうち、 前記入力プログラムの識別子に対応 する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステツ プと、 '
前記比較により一致と判断された場合に、 前記入力プログラムを外部へ出力す るステップと、
を備えてなるプログラム実行制御方法。
1 2. 予め指定された指定プログラムのみをコンピュータに実行させるために、 コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラム であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プ ログラムの識別子とからなる組を少なくとも 1組記憶するステップと、
入力プログラムと該入力プログラムの識別子と力 らなる組を外部から入力する ステップと、
前記入力プログラムに所定の関数を適用して演算値を得るステップと、 前記期待値と識別子とからなる組のうち、 前記入力プログラムの識別子に対応 する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステツ プと、
前記比較により一致と判断された場合に、 前記入力プログラムを外部へ出力す るステップと、
を備えてなるプロダラム実行制御プロダラム。
1 3. 予め指定された指定プログラムのみの実行を許可するプログラム実行制御 装置であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プ ログラムの識別子とからなる組を少なくとも 1組記憶する期待値テーブル記憶部 と、
予め入力された復号鍵を記憶する復号鍵記憶部と、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化'した喑号済 みプログラムを外部から入力することができる入カインタフ ースと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、 復号済みプログラ ムと該復号済みプログラムの識別子を生成する復号部と、
前記復号済みプログラムに所定の関数を適用して演算値を得る関数演算部と、 前記期待値テーブル内の前記復号済みプログラムの識別子に対応する前記期待 値と前記関数演算部から得られる前記演算値との比較を行う比較部と、
該比較結果が一致した場合に、 前記ィンタフヱースを介して前記復号済みプロ グラムを外部へ出力させる出力インタフェースと、
を備えてなるプログラム実行制御装置。
1 4 . 請求の範囲第 1 3項に記載のプログラム実行制御装置において、
前記所定の関数は一方向性関数であり、 前記期待値および前記演算値はハツシ ュ値であることを特徴とするプログラム実行制御装置。
1 5 . 請求の範囲第 1 3項に記載のプログラム実行制御装置において、
実行中の前記復号済みプログラムの識別子と'演算値とからなる組を少なくとも
1組記憶する演算値テーブル記憶部を備え、
外部からの要求に従つて前記復号済みプログラムの識別子と演算値とからなる 糸且を前記外部へ出力することを特徴とするプログラム実行制御装置。
1 6 . 請求の範囲第 1 3項に記載のプログラム実行制御装置を用いる O Sであつ て、
前記プログラム実行制御装置へ前記暗号済みプログラムを入力し、 前記プログ ラム実行制御装置から前記復号済みプログラムを出力された場合に、 前記復号済 みプログラムを実行する O S。
1 7 . 請求の範囲第 1 3項に記載のプログラム実行制御装置を備えたクライアン ト端末であって、
外部から入力された前記暗号済みプログラムを前記プログラム実行制御装置へ 入力し、 前記プログラム実行制御装置から前記復号済みプログラムが出力された 場合に、 前記復号済みプログラムを実行するクライアント端末。
1 8 . 請求の範囲第 1 5項に記載のプログラム実行制御装置を備えたクライアン ト端末であって、
外部からの要求に従つて前記復号済みプログラムの識別子と演算値とからなる 糸且を前記外部へ出力するクライアント端末。
1 9 . 請求の範囲第 1 7項に記載のクライアント端末とネットワークを介して接 続されることができるサーバであって、
予め前記クライアント端末へ前記指定プログラムの識別子と期待値とカ らなる 組を送信し、 必要に応じて前記クライアント端末へ前記暗号済みプログラムを送 信するサーバ。
2 0 . 請求の範囲第 1 8項に記載のクライアント端末とネットワークを介して接 続されることができるサーバであって、
前記クライアント端末にぉレヽて実行中のプログラムの識別子と演算値と力ゝらな る組の要求を前記クライアント端末へ送信し、 受信した識別子と演算値とからな る組に基づいて前記クライアント端末で実行中の前記復号済みプログラムを確認 するサーバ。
2 1 . 予め指定された指定プログラムのみの実行を許可するプログラム実行制御 システムであって、
請求の範囲第 1 7項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、 予め前記 クライアント端末へ前記指定プログラムの期待値と識別子とカゝらなる組を送信し 、 必要に応じて前記クライアント端末へ前記暗号済みプログラムを送信するサー バと、
を備えてなるプログラム実行制御システム。
2 2. 予め指定された指定プログラムのみの実行を許可するプログラム実行制御 システムであって、
請求の範囲第 1 8項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、 前記クラ イアント端末にぉ 、て実行中のプログラムの識別子と演算値とからなる組の要求 を前記クライアント端末へ送信し、 受信した識別子と演算値に基づいて前記クラ イアント端末で実行中の前記復号済みプログラムを確認するサーバと を備えてなるプログラム実行制御システム。
2 3 . 予め指定された指定プログラムのみの実行を許可するプログラム実行制御 方法であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プ ログラムの識別子とからなる組を少なくとも 1組記憶するステップと、
予め入力された復号鍵を記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済 みプログラムを外部から入力するステップと、
前記復号鍵を用いて前記喑号済みプログラムの復号を行い、 復号済みプロダラ ムと該復号済みプログラムの識別子を生成するステップと、
前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、 前記期待値と識別子とからなる組のうち、 前記復号済みプログラムの識別子に 対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うス テツプと、
前記比較により一致と判断された場合に、 前記復号済みプログラムを外部へ出 力するステップと、
を備えてなるプロダラム実行制御方法。
2 4. 予め指定された指定プログラムのみをコンピュータに実行させるために、 コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラム であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プ ログラムの識別子とからなる組を少なくとも 1組記憶するステップと、
予め入力された復号鍵を記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済 みプログラムを外部から入力するステップと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、 復号済みプログラ ムと該復号済みプログラムの識別子を生成するステップと、
前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、 前記期待値と識別子とからなる組のうち、 前記復号済みプログラムの識別子に 対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うス テツプと、
前記比較により一致と判断された場合に、 前記復号済みプログラムを外部へ出 力するステップと、
を備えてなるプログラム実行制御プログラム。
PCT/JP2002/013006 2002-12-12 2002-12-12 プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム WO2004053664A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004558383A JP4226556B2 (ja) 2002-12-12 2002-12-12 プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
PCT/JP2002/013006 WO2004053664A1 (ja) 2002-12-12 2002-12-12 プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
EP02790723A EP1574928A4 (en) 2002-12-12 2002-12-12 PROGRAM MANAGEMENT CONTROL DEVICE, OS, CLIENT DEVICE, SERVER; PROGRAMMING CONTROL SYSTEM, PROGRAMMING CONTROL METHOD AND PROGRAMMING CONTROL PROGRAM
US11/024,986 US20060150246A1 (en) 2002-12-12 2004-12-30 Program execution control device, OS, client terminal, server, program execution control system, program execution control method and computer program execution control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/013006 WO2004053664A1 (ja) 2002-12-12 2002-12-12 プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/024,986 Continuation US20060150246A1 (en) 2002-12-12 2004-12-30 Program execution control device, OS, client terminal, server, program execution control system, program execution control method and computer program execution control program

Publications (1)

Publication Number Publication Date
WO2004053664A1 true WO2004053664A1 (ja) 2004-06-24

Family

ID=32500624

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/013006 WO2004053664A1 (ja) 2002-12-12 2002-12-12 プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム

Country Status (4)

Country Link
US (1) US20060150246A1 (ja)
EP (1) EP1574928A4 (ja)
JP (1) JP4226556B2 (ja)
WO (1) WO2004053664A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185056A (ja) * 2004-12-27 2006-07-13 Toshiba Corp 電子商取引に用いられる端末機器と端末システム
JP2008005156A (ja) * 2006-06-21 2008-01-10 Matsushita Electric Ind Co Ltd 情報処理端末および状態通知方法
JP2009509373A (ja) * 2005-09-16 2009-03-05 ノキア コーポレイション 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート
US8438385B2 (en) 2008-03-13 2013-05-07 Fujitsu Limited Method and apparatus for identity verification
JP2016538640A (ja) * 2013-11-14 2016-12-08 インカ・エントワークス・インコーポレイテッドInka Entworks, Inc. プログラム保護装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080214300A1 (en) * 2000-12-07 2008-09-04 Igt Methods for electronic data security and program authentication
US8083585B2 (en) 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
JP2005316890A (ja) * 2004-04-30 2005-11-10 Sony Corp プログラム、コンピュータ、データ処理方法、通信システムおよびその方法
US8156488B2 (en) * 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
US8666900B1 (en) * 2005-03-30 2014-03-04 Intuit Inc. Secure product enablement over channels with narrow bandwidth
EP2235657B1 (en) * 2007-12-21 2014-11-26 Motorola Mobility LLC System and method for preventing unauthorised use of digital media
WO2009109811A1 (en) * 2008-03-07 2009-09-11 Ashish Anand Platform security model for networking solution platforms
FR2933836B1 (fr) * 2008-07-11 2010-09-17 Expway Procede de declenchement d'une operation dans un terminal mobile
US20100030874A1 (en) * 2008-08-01 2010-02-04 Louis Ormond System and method for secure state notification for networked devices
US8949991B2 (en) * 2011-01-28 2015-02-03 International Business Machines Corporation Testing web services that are accessible via service oriented architecture (SOA) interceptors
JP5885616B2 (ja) * 2012-08-08 2016-03-15 キヤノン株式会社 情報処理装置、インストール方法、およびプログラム
US9891966B2 (en) * 2015-02-10 2018-02-13 Red Hat, Inc. Idempotent mode of executing commands triggered by complex event processing
US10423468B2 (en) 2015-02-10 2019-09-24 Red Hat, Inc. Complex event processing using pseudo-clock
JP6829168B2 (ja) 2017-09-04 2021-02-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
JP2001312402A (ja) * 2000-04-28 2001-11-09 Ntt Data Corp カードシステム、icカード及び記録媒体

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5416840A (en) * 1993-07-06 1995-05-16 Phoenix Technologies, Ltd. Software catalog encoding method and system
JP3647907B2 (ja) * 1994-09-09 2005-05-18 富士通株式会社 暗号化ソフトウェアの解凍システム
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
AU4674300A (en) * 1999-05-25 2000-12-12 Motorola, Inc. Pre-verification of applications in mobile computing
US7694139B2 (en) * 2002-10-24 2010-04-06 Symantec Corporation Securing executable content using a trusted computing platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
JP2001312402A (ja) * 2000-04-28 2001-11-09 Ntt Data Corp カードシステム、icカード及び記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1574928A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185056A (ja) * 2004-12-27 2006-07-13 Toshiba Corp 電子商取引に用いられる端末機器と端末システム
JP2009509373A (ja) * 2005-09-16 2009-03-05 ノキア コーポレイション 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート
JP2008005156A (ja) * 2006-06-21 2008-01-10 Matsushita Electric Ind Co Ltd 情報処理端末および状態通知方法
US8438385B2 (en) 2008-03-13 2013-05-07 Fujitsu Limited Method and apparatus for identity verification
JP2016538640A (ja) * 2013-11-14 2016-12-08 インカ・エントワークス・インコーポレイテッドInka Entworks, Inc. プログラム保護装置

Also Published As

Publication number Publication date
EP1574928A1 (en) 2005-09-14
EP1574928A4 (en) 2007-11-21
JP4226556B2 (ja) 2009-02-18
US20060150246A1 (en) 2006-07-06
JPWO2004053664A1 (ja) 2006-04-13

Similar Documents

Publication Publication Date Title
CN111213171B (zh) 用于安全离线支付的方法和装置
WO2004053664A1 (ja) プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
US9294279B2 (en) User authentication system
US10430616B2 (en) Systems and methods for secure processing with embedded cryptographic unit
US8560857B2 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable program
US8484449B2 (en) Program, communication device, data processing method, and communication system
US9264426B2 (en) System and method for authentication via a proximate device
TWI524275B (zh) 儲存裝置及操作一儲存裝置之方法
US7457960B2 (en) Programmable processor supporting secure mode
US10361864B2 (en) Enabling a secure OEM platform feature in a computing environment
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
JP2004213216A (ja) 情報セキュリティマイクロコンピュータ、そのプログラム開発装置およびそれらを含んだプログラム開発システム
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
US7577849B2 (en) Keyed-build system for controlling the distribution of software
WO2016192774A1 (en) Electronic device and method in an electronic device
KR20190128534A (ko) 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법
CN117063174A (zh) 用于通过基于app的身份的app间相互信任的安全模块及方法
CN114785845B (zh) 会话的建立方法、装置、存储介质及电子装置
Urien An OPENID Identity Service for Android, Based on USIM Secure Elements
US20220078026A1 (en) Verifications of workload signatures

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004558383

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2002790723

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11024986

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2002790723

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11024986

Country of ref document: US