JP2005293504A - Program, computer and data processing method - Google Patents

Program, computer and data processing method Download PDF

Info

Publication number
JP2005293504A
JP2005293504A JP2004111426A JP2004111426A JP2005293504A JP 2005293504 A JP2005293504 A JP 2005293504A JP 2004111426 A JP2004111426 A JP 2004111426A JP 2004111426 A JP2004111426 A JP 2004111426A JP 2005293504 A JP2005293504 A JP 2005293504A
Authority
JP
Japan
Prior art keywords
data
program
application program
communication destination
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2004111426A
Other languages
Japanese (ja)
Inventor
Yoshito Ishibashi
義人 石橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2004111426A priority Critical patent/JP2005293504A/en
Priority to TW094110747A priority patent/TW200607288A/en
Priority to PCT/JP2005/006633 priority patent/WO2005098640A1/en
Priority to KR1020057022195A priority patent/KR20070009371A/en
Priority to US10/557,169 priority patent/US20070044160A1/en
Priority to CN200580000498.0A priority patent/CN1806235A/en
Priority to EP05728436A priority patent/EP1736892A1/en
Publication of JP2005293504A publication Critical patent/JP2005293504A/en
Abandoned legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a program capable of reducing burdens on the computer of a communicating destination when the destination computer determines validity of a starting application program. <P>SOLUTION: A client device 12_1 verifies validity of an application program started by itself, and sends approved data indicating the result to a server device 10. The server device 10 sends contents data to the client device 12_1 based on the approved data, assuming that a desired application program runs on the client device 12_1. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、通信先が起動するアプリケーションプログラムの正当性を判断するためのプログラム、コンピュータおよびデータ処理方法に関する。   The present invention relates to a program, a computer, and a data processing method for determining the validity of an application program activated by a communication destination.

例えば、著作権保護機能を持つ所望のアプリケーションプログラムがクライアント装置で起動されていることを条件に、著作権に係わるコンテンツデータをサーバ装置からクライアント装置に送信する通信システムがある。
このような通信システムでは、サーバ装置が、上記所望のアプリケーションプログラムがクライアント装置で起動されているか否かを判断する。
このとき、従来では、例えば、サーバ装置は、上記アプリケーションプログラムのハッシュデータ(ハッシュ値)を予め保持し、当該ハッシュデータと、クライアント装置がハッシュ関数を基に生成した上記アプリケーションプログラムのハッシュデータとが一致していることを確認した場合に、上記所望のアプリケーションプログラムがクライアント装置上で動作していると判断する。
For example, there is a communication system that transmits content data related to copyrights from a server device to a client device on condition that a desired application program having a copyright protection function is activated on the client device.
In such a communication system, the server device determines whether the desired application program is activated on the client device.
At this time, conventionally, for example, the server device holds the hash data (hash value) of the application program in advance, and the hash data and the hash data of the application program generated by the client device based on the hash function are obtained. When it is confirmed that they match, it is determined that the desired application program is operating on the client device.

ところで、上記ハッシュデータの生成に用いるハッシュ関数は、クライアント装置のOS(Operating System)によって様々なものが用いられる。
また、同じ機能を持つアプリケーションプログラムでも、それが記述されたプログラム言語やバージョンによって、そのハッシュデータは異なる。
そのため、複数のクライアント装置にコンテンツデータを送信するサーバ装置は、膨大な数のハッシュデータを保持および管理する必要があり、負荷が大きいという問題がある。
また、近年、クライアント装置間でコンテンツデータの送受信を行う場合があるが、そのような場合に、各クライアント装置が、上記所望のアプリケーションプログラムが通信先のクライアント装置で起動されているか否かを判断するために、上述した膨大な数のハッシュデータを保持および管理することは現実的ではない。
By the way, various hash functions used for generating the hash data are used depending on the OS (Operating System) of the client apparatus.
In addition, even in an application program having the same function, the hash data differs depending on the program language and version in which the application program is described.
Therefore, a server device that transmits content data to a plurality of client devices needs to hold and manage a huge number of hash data, and there is a problem that the load is large.
In recent years, content data may be transmitted and received between client devices. In such a case, each client device determines whether or not the desired application program is activated on the client device of the communication destination. Therefore, it is not realistic to hold and manage the huge number of hash data described above.

本発明は、上述した従来技術に鑑みてなされ、起動されるアプリケーションプログラムの正当性を通信先が判断する場合に、当該通信先の負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
また、本発明は、通信先の起動されるアプリケーションプログラムの正当性を判断する負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
The present invention is made in view of the above-described prior art, and provides a program, a computer, and a data processing method capable of reducing the load on the communication destination when the communication destination determines the validity of the application program to be activated. Objective.
It is another object of the present invention to provide a program, a computer, and a data processing method that can reduce the load for determining the validity of an application program that is started by a communication destination.

上述した従来技術の問題点を解決し、上述した目的を達成するために、第1の発明のプログラムは、アプリケーションプログラムの管理をコンピュータに実行させるプログラムであって、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順と、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順とを前記コンピュータに実行させる。   In order to solve the above-described problems of the prior art and achieve the above-described object, a program according to a first invention is a program for causing a computer to execute management of an application program, which is an application program started by the computer. A first procedure for verifying validity and generating proof data indicating identification data of the application program that has been determined to be valid; and a communication destination that provides data used by the application program, the first procedure And causing the computer to execute a second procedure for transmitting the certification data generated in step (b).

第1の発明のプログラムの作用は以下のようになる。
第1の発明のプログラムがコンピュータで実行され、コンピュータに対して、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順を前記コンピュータに実行させる。
次に、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順を前記コンピュータに実行させる。
The operation of the program of the first invention is as follows.
The program of the first invention is executed by a computer, the validity of an application program started by the computer is verified, and proof data indicating identification data of the application program determined to be valid is generated for the computer The computer executes the first procedure.
Next, the computer is caused to execute a second procedure for transmitting the certification data generated in the first procedure to a communication destination that provides data used by the application program.

第2の発明のプログラムは、通信先へのデータ送信をコンピュータに実行させるプログラムであって、前記通信先の正当性を認証する第1の手順と、前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順と、所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順と、前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順とを前記コンピュータに実行させる。   The program of the second invention is a program for causing a computer to execute data transmission to a communication destination, wherein the first procedure for authenticating the validity of the communication destination and the authentication as valid by the first procedure And the second procedure for receiving certification data indicating the identification data of the application program that is determined to be legitimate by the communication destination and started by the communication destination, and the desired identification data is A third procedure for determining whether or not the certification data received in the second procedure is included, and a condition that it is determined that the desired identification data is included in the third procedure And causing the computer to execute a fourth procedure for transmitting data to the communication destination.

第2の発明のプログラムの作用は以下のようになる。
第2の発明のプログラムがコンピュータで実行され、前記通信先の正当性を認証する第1の手順を前記コンピュータに実行させる。
次に、前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順を前記コンピュータに実行させる。
次に、所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順を前記コンピュータに実行させる。
次に、前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順を前記コンピュータに実行させる。
The operation of the program of the second invention is as follows.
A program of the second invention is executed by a computer, and causes the computer to execute a first procedure for authenticating the validity of the communication destination.
Next, certifying data indicating identification data of an application program that is determined to be valid by the communication destination and started at the communication destination is provided on the condition that it is authenticated as valid in the first procedure. The computer is caused to execute a second procedure received from the computer.
Next, the computer is caused to execute a third procedure for determining whether or not desired identification data is included in the certification data received in the second procedure.
Next, on the condition that it is determined that the desired identification data is included in the third procedure, the computer is caused to execute a fourth procedure for transmitting data to the communication destination.

第3の発明のコンピュータは、アプリケーションプログラムが記憶されたメモリと、記憶データの改竄および監視を防止する機能が備えられ、ブ−トプログラムを記憶する回路モジュールと、前記メモリから読み出した前記アプリケーションプログラムと、前記回路モジュールからセキュアな状態で読み出した前記ブ−トプログラムとを実行する実行回路と、インタフェースとを有するコンピュータであって、前記実行回路は、前記回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。   According to a third aspect of the present invention, there is provided a computer having a memory in which an application program is stored, a circuit module having a function of preventing falsification and monitoring of stored data, and storing a boot program, and the application program read from the memory And an execution circuit that executes the boot program read from the circuit module in a secure state, and an interface, the execution circuit being read from the circuit module in a secure state The boot program is executed, the legitimacy of the application program is verified according to the boot program, and proof data indicating identification data of the application program determined to be legitimate is stored in the circuit module. , The circuit module Transmitting the certification data read out from Le to the communication destination via the interface.

第3の発明のコンピュータの作用は以下のようになる。
実行回路が、回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行する。
そして、前記実行回路が、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶する。
そして、前記実行回路が、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
The operation of the computer of the third invention is as follows.
The execution circuit executes the boot program read from the circuit module in a secure state.
Then, the execution circuit verifies the validity of the application program according to the boot program, and stores certification data indicating identification data of the application program determined to be valid in the circuit module.
Then, the execution circuit transmits the certification data read from the circuit module to the communication destination via the interface.

第4の発明のコンピュータは、アプリケーションプログラムおよびブ−トプログラムが記憶されたメモリと、記憶データの改竄、並びに記憶データおよび内部処理の監視を防止する機能が備えられた回路モジュールと、前記メモリから読み出した前記アプリケーションプログラムおよび前記ブ−トプログラムとを実行する実行回路と、インタフェースとを有するコンピュータであって、前記回路モジュールは、前記メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力し、前記実行回路は、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。   According to a fourth aspect of the present invention, there is provided a computer in which an application program and a boot program are stored, a circuit module having a function of preventing alteration of stored data and monitoring of stored data and internal processing, and the memory. A computer having an execution circuit for executing the read application program and the boot program, and an interface, wherein the circuit module verifies the validity of the boot program read from the memory The boot program is output to the execution circuit in a secure state, and the execution circuit executes the boot program input from the circuit module, and the application program is validated according to the boot program. Verifies sex and determines that it is legitimate The proof data indicating the identification data of the application program is stored in the circuit module, and transmits the certificate data read from the circuit module to the communication destination via the interface.

第4の発明のコンピュータの作用は以下のようになる。
回路モジュールが、メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力する。
次に、前記実行回路が、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させる。
次に、前記実行回路が、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
The operation of the computer of the fourth invention is as follows.
After the circuit module verifies the validity of the boot program read from the memory, the boot module outputs the boot program in a secure state to the execution circuit.
Next, the execution circuit executes the boot program input from the circuit module, verifies the validity of the application program according to the boot program, and determines the validity of the application program. Proof data indicating identification data is stored in the circuit module.
Next, the execution circuit transmits the certification data read from the circuit module to the communication destination via the interface.

第5の発明のコンピュータは、プログラムが記憶されたメモリと、前記メモリから読み出した前記プログラムを実行する実行回路と、通信先で起動され当該通信先によって正当性が認められたアプリケーションプログラムの識別データを示す証明データを前記通信先から受信するインタフェースとを有するコンピュータであって、前記実行回路は、前記メモリから読み出したプログラムを実行し、当該プログラムに従って、前記インタフェースを介して通信先が正当であると認証したことを条件に、前記インタフェースを介して受信した前記証明データに所望の識別データが含まれているか否かを判断し、前記所望の識別データが含まれていると判断したことを条件に、前記インタフェースを介して前記通信先にデータを送信する。   According to a fifth aspect of the present invention, there is provided a computer in which a program is stored, an execution circuit that executes the program read from the memory, and identification data of an application program that is activated at the communication destination and recognized by the communication destination The execution circuit executes a program read from the memory, and the communication destination is valid via the interface according to the program. On the condition that it has been authenticated, it is determined whether or not the desired identification data is included in the certification data received via the interface, and it is determined that the desired identification data is included In addition, data is transmitted to the communication destination via the interface.

第6の発明のデータ処理方法は、アプリケーションプログラムの管理を行うコンピュータが行うデータ処理方法であって、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の工程と、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の工程で生成した前記証明データを送信する第2の工程とを有する。   A data processing method according to a sixth aspect of the present invention is a data processing method performed by a computer that manages application programs, wherein the validity of the application program started by the computer is verified, and the application program determined to be valid A first step of generating proof data indicating identification data; and a second step of transmitting the proof data generated in the first step to a communication destination that provides data used by the application program. .

第7の発明のデータ処理方法は、通信先へのデータ送信をコンピュータが行うデータ処理方法であって、前記通信先の正当性を認証する第1の工程と、前記第1の工程で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の工程と、所望の識別データが、前記第2の工程で受信した前記証明データに含まれているか否かを判断する第3の工程と、前記第3の工程で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の工程とを有する。   A data processing method according to a seventh aspect of the present invention is a data processing method in which a computer transmits data to a communication destination, wherein the first step for authenticating the validity of the communication destination and the first step are valid. A second step of receiving, from the communication destination, proof data indicating identification data of an application program that is determined to be valid by the communication destination and is activated at the communication destination on the condition that it is authenticated; A third step of determining whether identification data is included in the certification data received in the second step, and a determination that the desired identification data is included in the third step; And a fourth step of transmitting data to the communication destination.

第1、第3、第4および第6の発明によれば、起動されるアプリケーションプログラムの正当性を通信先が判断する場合に、当該通信先の負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することができる。
また、第2,第5および第7の発明によれば、通信先の起動されるアプリケーションプログラムの正当性を判断する負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することができる。
According to the first, third, fourth, and sixth inventions, there is provided a program, a computer, and a data processing method capable of reducing the load on a communication destination when the communication destination determines the validity of an application program to be activated. Can be provided.
According to the second, fifth, and seventh inventions, it is possible to provide a program, a computer, and a data processing method that can reduce the load for determining the validity of an application program that is started by a communication destination.

先ず、本発明の関連技術を説明する。
<関連技術>
図1および図2は、本発明の関連技術を説明するための図である。
図1に示すシステムでは、例えば、クライアント装置上で正当なブートプログラムBP
が動作していることを条件に、著作権に係わるコンテンツデータをサーバ装置110からコンピュータPCに送信する。
このようなシステムでは、コンピュータPCは、CPUがセキュリティモジュール回路SM1からブ−トプログラムBPをセキュアな状態で読み出し、そのハッシュデータHashを生成し、これをセキュリティモジュール回路SM1に書き込む。
セキュリティモジュールSM1では、不揮発性メモリ102にブートプログラムBPと署名鍵データとが記憶され、レジスタ103にブートプログラムBPのハッシュデータHashが記憶される。
なお、CPUとセキュリティモジュール回路SM1との間では、両者で鍵データを保持し、その鍵データを基に暗号化したデータをバスに流したり、両者で相互認証を行った後に鍵データを共有したり、CPUとセキュリティモジュール回路SM1とを耐タンパ性のモジュール(Multi-Chip-Module) に組み込むなどの方法により、セキュアな状態でのデータ授受を実現している。
First, a related technique of the present invention will be described.
<Related technologies>
1 and 2 are diagrams for explaining a related technique of the present invention.
In the system shown in FIG. 1, for example, a valid boot program BP on the client device.
The content data related to the copyright is transmitted from the server apparatus 110 to the computer PC on the condition that is operating.
In such a system, in the computer PC, the CPU reads the boot program BP from the security module circuit SM1 in a secure state, generates the hash data Hash, and writes this into the security module circuit SM1.
In the security module SM1, the boot program BP and signature key data are stored in the nonvolatile memory 102, and the hash data Hash of the boot program BP is stored in the register 103.
In addition, between the CPU and the security module circuit SM1, the key data is held by both, and the data encrypted based on the key data is sent to the bus, or the key data is shared after mutual authentication between the two. In addition, data is transferred in a secure state by, for example, incorporating the CPU and the security module circuit SM1 into a tamper-resistant module (Multi-Chip Module).

サーバ装置110は、ブートプログラムBPのハッシュデータHashを予め保持し、当該ハッシュデータHashと、コンピュータPCがレジスタ103から読み出して送信したハッシュデータHashとが一致していることを条件に、正当なブートプログラムBPがコンピュータPC上で動作していると判断する。
しかしながら、この場合に、コンピュータPCが送信したハッシュデータHashが正当に生成されたものであるかは不明である。
一方、セキュリティモジュール回路SM1が正当であれば、ブートプログラムBPが正当であると判断できる。
The server device 110 holds the hash data Hash of the boot program BP in advance, and the valid booting is performed on the condition that the hash data Hash and the hash data Hash read from the register 103 by the computer PC match. It is determined that the program BP is operating on the computer PC.
However, in this case, it is unknown whether the hash data Hash transmitted by the computer PC has been properly generated.
On the other hand, if the security module circuit SM1 is valid, it can be determined that the boot program BP is valid.

また、著作権保護機能を持つ所望のアプリケーションプログラムがコンピュータPC等のクライアント装置上で起動されていることを条件に、著作権に係わるコンテンツデータをサーバ装置110からコンピュータPC等に送信する場合がある。
このような場合に、サーバ装置110は、アプリケーションプログラムのハッシュデータHashを記憶し、コンピュータPC等から受信した当該アプリケーションプログラムのハッシュデータHashと比較を行う。
ところで、上記ハッシュデータの生成に用いるハッシュ関数は、クライアント装置のOS(Operating System)によって様々なものが用いられる。
また、同じ機能を持つアプリケーションプログラムでも、それが記述されたプログラム言語やバージョンによって、そのハッシュデータは異なる。
そのため、例えば、図2に示すように、サーバ装置110が、コンピュータPC1、PC2、PDA(Personal Digital Assistants) および携帯電話MPなどの複数のクライアント装置にコンテンツデータを送信する場合に、サーバ装置110は、それぞれのクライアント装置について、そのブ−トプログラムBPのハッシュデータHashと、そのアプリケーションプログラムAPのハッシュデータHashを保持する必要があり、負担が大きいという問題がある。
Further, content data related to copyright may be transmitted from the server apparatus 110 to the computer PC or the like on condition that a desired application program having a copyright protection function is started on the client apparatus such as the computer PC or the like. .
In such a case, the server apparatus 110 stores the hash data Hash of the application program and compares it with the hash data Hash of the application program received from the computer PC or the like.
By the way, various hash functions used for generating the hash data are used depending on the OS (Operating System) of the client apparatus.
In addition, even in an application program having the same function, the hash data differs depending on the program language and version in which the application program is described.
Therefore, for example, as shown in FIG. 2, when the server apparatus 110 transmits content data to a plurality of client apparatuses such as a computer PC1, PC2, PDA (Personal Digital Assistants) and a mobile phone MP, the server apparatus 110 For each client device, it is necessary to store the hash data Hash of the boot program BP and the hash data Hash of the application program AP.

例えば、図2に示すように、サーバ装置110は、コンピュータPC1のブ−トプログラムのハッシュデータBP(PC1)Hash、並びにコンピュータPC1のアプリケーションプログラムのハッシュデータAP(PC1)Hashを記憶する必要がある。
また、サーバ装置110は、コンピュータPC2のブ−トプログラムのハッシュデータBP(PC2)Hash、並びにコンピュータPC2のアプリケーションプログラムのハッシュデータAP(PC2)Hashを記憶する必要がある。
また、サーバ装置110は、PDAのブ−トプログラムのハッシュデータBP(PDA)Hash、並びにPDAのアプリケーションプログラムのハッシュデータAP(PDA)Hashを記憶する必要がある。
さらに、サーバ装置110は、携帯電話MPのブ−トプログラムのハッシュデータBP(MP)Hash、並びに携帯電話MPのアプリケーションプログラムのハッシュデータAP(MP)Hashを記憶する必要がある。
For example, as shown in FIG. 2, the server apparatus 110 needs to store the hash data BP (PC1) Hash of the boot program of the computer PC1 and the hash data AP (PC1) Hash of the application program of the computer PC1. .
Further, the server apparatus 110 needs to store the hash data BP (PC2) Hash of the boot program of the computer PC2 and the hash data AP (PC2) Hash of the application program of the computer PC2.
Further, the server device 110 needs to store the hash data BP (PDA) Hash of the PDA boot program and the hash data AP (PDA) Hash of the PDA application program.
Further, the server apparatus 110 needs to store the hash data BP (MP) Hash of the boot program of the mobile phone MP and the hash data AP (MP) Hash of the application program of the mobile phone MP.

また、近年、クライアント装置間でコンテンツデータの送受信を行う場合があるが、そのような場合にも、各クライアント装置が、上記所望のアプリケーションプログラムが通信先のクライアント装置で起動されているか否かを判断するために、上述した膨大な数のハッシュデータを保持および管理する必要があり、負担が大かったり、現実的ではない。   In recent years, content data may be transmitted and received between client devices. Even in such a case, each client device determines whether or not the desired application program is started on the communication destination client device. In order to make a determination, it is necessary to hold and manage the enormous number of hash data described above, which is burdensome or impractical.

以下、上述した関連技術の問題点を解決する本発明の実施形態に係わる通信システムについて説明する。
<第1実施形態>
図3は、本発明の実施形態に係わる通信システム1の全体構成図である。
図3に示すように、通信システム1は、例えば、サーバ装置10およびクライアント装置12_1,12_2を有する。
サーバ装置10、クライアント装置12_1およびクライアント装置12_1は、ネットワーク9を介して相互に通信を行う。
なお、本実施形態では、多数のサーバ装置10および2つのクライアント装置12_1,12_3で通信を行う場合を例示するが、本発明は、複数のサーバ装置を用いてもよいし、単数または3個以上のクライアント装置を用いてもよい。
Hereinafter, a communication system according to an embodiment of the present invention that solves the problems of the related art described above will be described.
<First Embodiment>
FIG. 3 is an overall configuration diagram of the communication system 1 according to the embodiment of the present invention.
As illustrated in FIG. 3, the communication system 1 includes, for example, a server device 10 and client devices 12_1 and 12_2.
The server device 10, the client device 12_1, and the client device 12_1 communicate with each other via the network 9.
In this embodiment, a case where communication is performed by a large number of server apparatuses 10 and two client apparatuses 12_1 and 12_3 is illustrated, but the present invention may use a plurality of server apparatuses, or a single or three or more. The client device may be used.

先ず、図3に示す通信システム1の概要を説明する。
クライアント装置12_1,12_2の各々が自らが起動するアプリケーションプログラムの正当性を検証し、その結果を示す証明データAP_CERをサーバ装置10に送信する。
サーバ装置10は、証明データAP_CERを基に、所望のアプリケーションプログラムがクライアント装置12_1,12_2で起動されていること条件に、コンテンツデータをクライアント装置12_1,12_2に送信する。
通信システム1では、サーバ装置10は、クライアント装置12_1,12_2が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置10の負荷を軽減できる。
なお、本実施形態では、サーバ装置10、クライアント装置12_1,12_2の間でコンテンツデータの送受信する場合を例示するが、コンテンツデータ自体ではなく、暗号化されたコンテンツデータを復号する復号鍵データや、当該コンテンツデータの利用するために必要な権利情報を送受信してもよい。
First, an outline of the communication system 1 shown in FIG. 3 will be described.
Each of the client devices 12_1 and 12_2 verifies the validity of the application program started by itself, and transmits certification data AP_CER indicating the result to the server device 10.
Based on the certification data AP_CER, the server device 10 transmits content data to the client devices 12_1 and 12_2 on condition that a desired application program is activated on the client devices 12_1 and 12_2.
In the communication system 1, the server device 10 does not need to hold all the hash data of the application programs executed by the client devices 12_1 and 12_2, and does not need to perform verification processing of the validity. Therefore, it is possible to reduce the load on the server apparatus 10 due to the determination of the validity of the application program activated on the client apparatuses 12_1 and 12_2.
In the present embodiment, the case where content data is transmitted and received between the server device 10 and the client devices 12_1 and 12_2 is illustrated, but the decryption key data for decrypting the encrypted content data instead of the content data itself, Rights information necessary for using the content data may be transmitted and received.

以下、本実施形態を図3〜図11を参照して説明する。
先ず、本実施形態の各構成要素と本発明の構成要素との対応関係を説明する。
図4に示すアプリケーションプログラムAP_Sが第2および第5の発明のプログラムに対応している。 図7等に示すブ−トプログラムB_PRGが、第1および第3の発明のプログラムあるいはブ−トプログラムに対応している。
また、図3に示すクライアント装置12_1が第1および第3の発明のコンピュータに対応し、図3に示すサーバ装置10およびクライアント装置12_2が第1および第3の発明の通信先に対応している。
また、図3に示すサーバ装置10が第2の発明および第5の発明のコンピュータに対応し、図3に示すクライアント装置12_1が第2および第5の発明の通信先に対応している。
また、証明データAP_CERが、本発明の証明データに対応している。
Hereinafter, the present embodiment will be described with reference to FIGS.
First, the correspondence between each component of the present embodiment and the component of the present invention will be described.
The application program AP_S shown in FIG. 4 corresponds to the programs of the second and fifth inventions. A boot program B_PRG shown in FIG. 7 and the like corresponds to the program or the boot program of the first and third inventions.
Also, the client device 12_1 shown in FIG. 3 corresponds to the computers of the first and third inventions, and the server device 10 and the client device 12_2 shown in FIG. 3 correspond to the communication destinations of the first and third inventions. .
Further, the server device 10 shown in FIG. 3 corresponds to the computer of the second invention and the fifth invention, and the client device 12_1 shown in FIG. 3 corresponds to the communication destination of the second and fifth inventions.
Further, the certification data AP_CER corresponds to the certification data of the present invention.

〔サーバ装置10〕
図4は、図3に示すサーバ装置10の構成図である。
図4に示すように、サーバ装置10は、例えば、インタフェース21、メモリ22およびCPU23を有し、これらがデータ線20を介して接続されている。
ここで、インタフェース21が第5の発明のインタフェースに対応し、メモリ22が第5の発明のメモリに対応し、CPU23が第5の発明の実行回路に対応している。
[Server device 10]
FIG. 4 is a configuration diagram of the server apparatus 10 shown in FIG.
As illustrated in FIG. 4, the server device 10 includes, for example, an interface 21, a memory 22, and a CPU 23, which are connected via a data line 20.
Here, the interface 21 corresponds to the interface of the fifth invention, the memory 22 corresponds to the memory of the fifth invention, and the CPU 23 corresponds to the execution circuit of the fifth invention.

インタフェース21は、ネットワーク9を介して、クライアント装置12_1,12_2との間でデータ送受信を行う。
メモリ22は、アプリケーションプログラムAP_Sを記憶する。
メモリ22は、サーバ装置10の秘密鍵データSK_S、公開鍵データPK_S、公開鍵証明データPKC_S、並びに識別データID_Sを記憶する。
また、メモリ22には、クライアント装置12_1との通信などにより、クライアント装置12_1の公開鍵データPK_C1および公開鍵証明データPKC_C1を記憶する。
また、メモリ22は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。
The interface 21 transmits and receives data to and from the client devices 12_1 and 12_2 via the network 9.
The memory 22 stores the application program AP_S.
The memory 22 stores the secret key data SK_S, public key data PK_S, public key certification data PKC_S, and identification data ID_S of the server device 10.
Further, the memory 22 stores the public key data PK_C1 and the public key certification data PKC_C1 of the client device 12_1 through communication with the client device 12_1 and the like.
Further, the memory 22 stores the public key data PK_C2 and the public key certification data PKC_C2 of the client device 12_2 through communication with the client device 12_2 or the like.

CPU23は、アプリケーションプログラムAP_Sを実行し、サーバ装置10の動作を統括的に制御する。
CPU23が行う処理については、サーバ装置10の動作例と関連付けて説明する。
The CPU 23 executes the application program AP_S and comprehensively controls the operation of the server device 10.
The processing performed by the CPU 23 will be described in association with an operation example of the server device 10.

以下、図4に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明する。
図5は、図4に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、アプリケーションプログラムAP_Sによって規定されている。
なお、図5に示す処理は、サーバ装置10のブートプログラムが規定してもよい。
ステップST1:
サーバ装置10のCPU23が、ユーザから指定されたアプリケーションプログラムAP_Sをメモリ22から読み出して実行する。
アプリケーションプログラムAP_Sは、例えば、所定のコンテンツデータを暗号化して送信するプログラムであり、これに対応した識別データAP_IDを持つプログラムとのみコンテンツデータを送受信するプログラムである。当該コンテンツデータは、例えば、著作権に係わるものである。
Hereinafter, an operation example when the server apparatus 10 illustrated in FIG. 4 communicates with the client apparatus 12_1 will be described.
FIG. 5 is a flowchart for explaining an operation example when the server apparatus 10 shown in FIG. 4 communicates with the client apparatus 12_1.
Each step shown below is defined by the application program AP_S.
Note that the processing shown in FIG. 5 may be defined by the boot program of the server device 10.
Step ST1:
The CPU 23 of the server device 10 reads the application program AP_S designated by the user from the memory 22 and executes it.
The application program AP_S is, for example, a program that encrypts and transmits predetermined content data, and is a program that transmits and receives content data only with a program having identification data AP_ID corresponding thereto. The content data relates to copyright, for example.

ステップST2:
CPU23は、例えば、メモリ22から読み出した秘密鍵データSK_S、公開鍵データPK_C1および公開鍵証明データPKC_C1を基に、インタフェース21を介してクライアント装置12_1との間で相互認証を行う。すなわち、公開鍵による相互認証を行う。
相互認証の方法としては、ISO/IEC 9798-3などの方式を用いることができる。
CPU23は、当該相互認証により互いの正当性が確認されると、クライアント装置12_1との間の以後の通信に用いるセッション鍵データをクライアント装置12_1と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
本実施形態では、例えば、CPU23は、クライアント装置12_1のブ−トプログラムB_PRGのハッシュデータの検証は行わないでよい。
ステップST3:
CPU23は、ステップST2で行った相互認証によって互いの正当性が確認されると、ステップST4に進み、そうでない場合には処理を終了かエラー処理を行う。
Step ST2:
For example, the CPU 23 performs mutual authentication with the client device 12_1 via the interface 21 based on the secret key data SK_S, the public key data PK_C1, and the public key certification data PKC_C1 read from the memory 22, for example. That is, mutual authentication using a public key is performed.
As a mutual authentication method, a method such as ISO / IEC 9798-3 can be used.
When the mutual authenticity is confirmed by the mutual authentication, the CPU 23 shares the session key data used for the subsequent communication with the client device 12_1 with the client device 12_1, and based on the session key data in the subsequent communication. Encrypt the data.
In the present embodiment, for example, the CPU 23 may not verify the hash data of the boot program B_PRG of the client device 12_1.
Step ST3:
The CPU 23 proceeds to step ST4 when mutual validity is confirmed by the mutual authentication performed in step ST2, and ends the process or performs error processing if not.

ステップST4:
CPU23は、インタフェース21を介してクライアント装置12_1から署名データSIGが付された証明データAP_CERを受信する。
証明データAP_CERは、例えば、後述するように、クライアント装置12_1で起動され、その正当性が確認されたアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュ値HASHを図6に示すように対応付けて示している。
Step ST4:
The CPU 23 receives the certification data AP_CER attached with the signature data SIG from the client device 12_1 via the interface 21.
For example, as will be described later, the certification data AP_CER includes identification data AP_ID, manufacturing identification data MF_ID, version VER, and hash value HASH of the application program AP_C1 that has been activated by the client device 12_1 and has been confirmed to be valid. They are shown in association with each other.

ステップST5:
CPU23は、ステップST4で受信した証明データAP_CERの正当性を検証する。
このとき、CPU23は、例えば、証明データAP_CERのハッシュデータをハッシュ関数を基に生成する。そして、CPU23は、上記生成したハッシュデータと、図6に示す証明データAP_CERに付加された署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER1が改竄されていない正当なものであると判断する。
ここで、ハッシュ関数は、与えられた原文から固定長のデータを生成する関数であり、ハッシュ値から原文を再現できず、且つ、同じハッシュ値を持つ異なるデータを生成することも極めて困難であるという特性を有している。
そして、CPU23は、証明データAP_CERが正当であると判断した場合にステップST6に進み、そうでない場合に処理を終了する。
なお、クライアント装置12_1が上記ハッシュデータをクライアント装置12_1の秘密鍵SK_C1で暗号化して署名データSIGを生成した場合には、CPU23は、
署名データSIGをクライアント装置12_1の公開鍵PK_C1で復号し、復号されたデータと上記ハッシュデータを比較する。
なお、ネットワーク9上ではデータはセッション鍵で暗号化されているため、処理時間のかかるディジタル署名技術を用いなくても所望の目的を達成できる。すなわち、ハッシュデータそのものはセッション鍵で暗号化されており、ディジタル署名とほぼ同じ機能を実現できるからである。
また、過去にやりとりされたデータを不正に再利用することを防止するために、通常はデータ(本例では図6に示す証明データAP_CER)に乱数データを追加し、乱数を含む全データに対しハッシュデータを計算し、それを署名データSIGとして利用する。また、秘密鍵SK_C1で暗号化する場合には、この乱数データを含んだデータに対するハッシュデータに対して暗号化を行う。
Step ST5:
The CPU 23 verifies the validity of the certification data AP_CER received in step ST4.
At this time, for example, the CPU 23 generates hash data of the certification data AP_CER based on the hash function. Then, the CPU 23 determines whether or not the generated hash data matches the signature data SIG added to the certification data AP_CER shown in FIG. 6, and if they match, the certification data AP_CER1 is falsified. Judge that it is not legitimate.
Here, the hash function is a function that generates fixed-length data from a given original text, and the original text cannot be reproduced from the hash value, and it is extremely difficult to generate different data having the same hash value. It has the characteristic.
Then, the CPU 23 proceeds to step ST6 when determining that the certification data AP_CER is valid, and ends the process when it is not.
When the client device 12_1 encrypts the hash data with the secret key SK_C1 of the client device 12_1 and generates the signature data SIG, the CPU 23
The signature data SIG is decrypted with the public key PK_C1 of the client device 12_1, and the decrypted data is compared with the hash data.
Since the data is encrypted with the session key on the network 9, a desired object can be achieved without using a digital signature technique that takes a long processing time. That is, the hash data itself is encrypted with the session key, and almost the same function as the digital signature can be realized.
Further, in order to prevent illegally reusing data exchanged in the past, usually random number data is added to the data (in this example, the certification data AP_CER shown in FIG. 6), and all data including random numbers is added. Hash data is calculated and used as signature data SIG. Further, when encrypting with the secret key SK_C1, encryption is performed on the hash data for the data including the random number data.

ステップST6:
CPU23は、指定されたアプリケーションプログラムAP_C1の識別データAP_IDが、ステップST4で受信した証明データAP_CERに含まれているか否かを判断し、当該識別データAP_IDが含まれている(クライアント装置12_1においてアプリケーションプログラムAP_C1の正当性が確認され且つ起動されている)と判断するとステップST7に進み、そうでない場合には処理を終了する。
ここで、アプリケーションプログラムAP_C1は、例えば、アプリケーションプログラムAP_Sが著作権に係わるコンテンツデータを送信した場合に、当該コンテンツデータに対する著作権保護機能を有するプログラムである。
なお、CPU23は、当該ステップの上記検証において、識別データAP_IDの他に製造識別データMF_IDおよびバージョンデータVERが所望のものであるか否かを検証してもよい。
ステップST7:
CPU23は、ステップST1で起動したアプリケーションプログラムAP_Sに従って、所定のコンテンツデータを暗号化して、インタフェース21を介してクライアント装置12_1に送信する。
Step ST6:
The CPU 23 determines whether or not the identification data AP_ID of the designated application program AP_C1 is included in the certification data AP_CER received in step ST4, and the identification data AP_ID is included (the application program in the client device 12_1). If it is determined that the validity of AP_C1 has been confirmed and activated, the process proceeds to step ST7, and if not, the process ends.
Here, the application program AP_C1 is, for example, a program having a copyright protection function for content data when the application program AP_S transmits content data related to copyright.
Note that the CPU 23 may verify whether the manufacturing identification data MF_ID and the version data VER are desired in addition to the identification data AP_ID in the verification in the step.
Step ST7:
The CPU 23 encrypts predetermined content data according to the application program AP_S activated in step ST1, and transmits it to the client device 12_1 via the interface 21.

〔クライアント装置12_1〕
図7は、図3に示すクライアント装置12_1の構成図である。
図7に示すように、クライアント装置12_1は、例えば、インタフェース31、メモリ32、CPU33およびセキュリティモジュール回路SMを有し、これらがデータ線30を介して接続されている。
ここで、インタフェース31が第3の発明のインタフェースに対応し、メモリ32が第5の発明のメモリに対応し、セキュリティモジュール回路SMが第5の発明の回路モジュールに対応し、CPU33が第5の発明の実行回路に対応している。
[Client device 12_1]
FIG. 7 is a configuration diagram of the client apparatus 12_1 illustrated in FIG.
As illustrated in FIG. 7, the client device 12_1 includes, for example, an interface 31, a memory 32, a CPU 33, and a security module circuit SM, which are connected via a data line 30.
Here, the interface 31 corresponds to the interface of the third invention, the memory 32 corresponds to the memory of the fifth invention, the security module circuit SM corresponds to the circuit module of the fifth invention, and the CPU 33 corresponds to the fifth invention. This corresponds to the execution circuit of the invention.

インタフェース31は、ネットワーク9を介して、サーバ装置10およびクライアント装置12_2との間で通信を行う。
メモリ32は、アプリケーションプログラムAP_C1を記憶する。
メモリ32は、半導体メモリあるいはハードディスクドライブである。
セキュリティモジュール回路SMは、例えば、メモリ35および演算回路36を有する。
セキュリティモジュール回路SMは、耐タンパ性を有する回路であり、メモリ35の記憶データの改竄および監視、並びに演算回路36の処理の監視を防止する機能が備えられている。
耐タンパ性の回路は、外部からの当該回路に対する攻撃(内部データの不正読み出し、入力周波数や入力電圧を所定外に設定したりする攻撃)を加えたときに、誤動作や内部データの漏洩を起こさないように構成された回路である。具体的には、内部データの読み出しを防止するために、回路構成を多層構造とし、メモリを最下層に配置すると共に、上下層にダミー層(例えばアルミ層)を取り入れることで、外部からメモリ入出力I/Fに直接アクセスすることを困難にしている。また、耐タンパ性の回路周波数検知回路や電圧検知回路を備え、周波数や電圧が所定の範囲内にない場合に動作しなように構成されている。
The interface 31 performs communication between the server device 10 and the client device 12_2 via the network 9.
The memory 32 stores the application program AP_C1.
The memory 32 is a semiconductor memory or a hard disk drive.
The security module circuit SM includes, for example, a memory 35 and an arithmetic circuit 36.
The security module circuit SM is a circuit having tamper resistance, and has a function of preventing tampering and monitoring of data stored in the memory 35 and monitoring of processing of the arithmetic circuit 36.
A tamper-resistant circuit causes malfunction or leakage of internal data when an attack against the circuit from the outside (an attack that illegally reads internal data or sets the input frequency or input voltage outside of the specified range) is applied. The circuit is configured so as not to exist. Specifically, in order to prevent the reading of internal data, the circuit configuration has a multilayer structure, the memory is arranged at the lowest layer, and dummy layers (for example, aluminum layers) are incorporated in the upper and lower layers, so that the memory can be input from the outside. It is difficult to directly access the output I / F. Further, a tamper-resistant circuit frequency detection circuit and a voltage detection circuit are provided, and are configured not to operate when the frequency and voltage are not within a predetermined range.

メモリ35は、クライアント装置12_1の秘密鍵データSK_C1、公開鍵データPK_C1、公開鍵証明データPKC_C1、並びに識別データID_C1を記憶する。
また、メモリ35は、サーバ装置10との通信などにより、サーバ装置10の公開鍵データPK_Sおよび公開鍵証明データPKC_Sを記憶する。
また、メモリ35は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。
The memory 35 stores secret key data SK_C1, public key data PK_C1, public key certification data PKC_C1, and identification data ID_C1 of the client device 12_1.
Further, the memory 35 stores the public key data PK_S and the public key certification data PKC_S of the server device 10 through communication with the server device 10 or the like.
The memory 35 stores the public key data PK_C2 and the public key certification data PKC_C2 of the client device 12_2 through communication with the client device 12_2 or the like.

CPU33は、セキュリティモジュール回路SM内のメモリ35から、データ線30を介してブ−トプログラムB_PRGをセキュアな状態で読み出し、これを実行する。
また、CPU33は、メモリ32からアプリケーションプログラムAP_C1を読み出し、これを実行する。
なお、上記セキュアな状態での読み出しを実現するために、CPU33とセキュリティモジュール回路SMとで共通の暗号鍵データを共有し、データ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとの間で相互認証を行い、互いに共有したセッション鍵データでデータ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとを1つのパッケージにモールドし、外部からデータ線30上のデータへのアクセスを防止するなどの手法が用いられる。
また、セキュリティモジュール回路SMを、他のクライアント装置に組み込むことを防止するために、クライアント装置12_1に装置固有のメモリデータ(ID、乱数、鍵などのデータ)を分散化して保持させ、起動時にセキュリティモジュール回路SMが上記メモリデータの検証を行うようにしてもよい。また、インタフェース31への入出力動作を複雑化するなどして、CPU33のブートメカニズムを複雑化し、許諾を受けた製造者のみが、そのメカニズムを知るようにすることで、ブ−トプログラムB_PRGの起動の信頼性をさらに高めてもよい。
The CPU 33 reads the boot program B_PRG in a secure state from the memory 35 in the security module circuit SM via the data line 30 and executes it.
Further, the CPU 33 reads the application program AP_C1 from the memory 32 and executes it.
In order to realize reading in the secure state, the CPU 33 and the security module circuit SM share common encryption key data, encrypt the data on the data line 30, and the CPU 33 and the security module circuit SM. The data on the data line 30 is encrypted with the session key data shared with each other, the CPU 33 and the security module circuit SM are molded into one package, and the data on the data line 30 is transferred from the outside. For example, a method of preventing access is used.
In addition, in order to prevent the security module circuit SM from being incorporated into another client device, the client device 12_1 distributes and holds memory data (data such as IDs, random numbers, and keys) unique to the device, thereby providing security at startup. The module circuit SM may verify the memory data. Further, the boot mechanism of the CPU 33 is complicated by making the input / output operation to the interface 31 complicated, and only the licensed manufacturer knows the mechanism so that the boot program B_PRG can be read. The activation reliability may be further increased.

CPU33は、クライアント装置12_1の動作を統括的に制御する。
CPU33が行う処理については、クライアント装置12_1の動作例と関連付けて説明する。
The CPU 33 comprehensively controls the operation of the client device 12_1.
The processing performed by the CPU 33 will be described in association with an operation example of the client device 12_1.

以下、図7に示すクライアント装置12_1が証明データAP_CDを生成する動作を説明する。
図8は、図7に示すクライアント装置12_1が証明データAP_CDを生成する動作を説明するためのフローチャートである。
以下に示す各ステップは、ブ−トプログラムB_PRGによって規定されている。
ステップST11:
クライアント装置12_1が起動されると、セキュリティモジュール回路SMの演算回路36が、メモリ35からブ−トプログラムB_PRGを読み出し、当該ブ−トプログラムB_PRGの正当性を検証する。 このとき、演算回路36は、例えば、ブ−トプログラムB_PRGのハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたブ−トプログラムB_PRGのハッシュデータとを比較し、一致していれば、メモリ35に記憶されているブ−トプログラムB_PRGが正当である(改竄されていない)と判断する。
ステップST12:
クライアント装置12_1は、ステップST11でブ−トプログラムB_PRGが正当であると判断されるとステップST13に進み、そうでない場合にはエラー処理を行う。
Hereinafter, an operation in which the client device 12_1 illustrated in FIG. 7 generates the certification data AP_CD will be described.
FIG. 8 is a flowchart for explaining an operation in which the client apparatus 12_1 shown in FIG. 7 generates the certification data AP_CD.
Each step shown below is defined by the boot program B_PRG.
Step ST11:
When the client device 12_1 is activated, the arithmetic circuit 36 of the security module circuit SM reads the boot program B_PRG from the memory 35 and verifies the validity of the boot program B_PRG. At this time, for example, the arithmetic circuit 36 generates hash data of the boot program B_PRG based on the hash function, and compares the generated hash data with the hash data of the boot program B_PRG prepared in advance. If they match, it is determined that the boot program B_PRG stored in the memory 35 is valid (not tampered).
Step ST12:
If it is determined in step ST11 that the boot program B_PRG is valid, the client device 12_1 proceeds to step ST13, and if not, performs error processing.

ステップST13:
クライアント装置12_1のCPU33が、データ線30を介して、メモリ35からブ−トプログラムB_PRGをセキュアな状態で読み出す。
ステップST14:
CPU33が、ステップST13で読み出したブ−トプログラムB_PRGを実行する。
ステップST15:
CPU33が、ブ−トプログラムB_PRGに従って、ユーザにより指定された複数のアプリケーションプログラムAP_C1のうち、未選択のアプリケーションプログラムAP_C1を選択する。
Step ST13:
The CPU 33 of the client device 12_1 reads the boot program B_PRG from the memory 35 through the data line 30 in a secure state.
Step ST14:
The CPU 33 executes the boot program B_PRG read in step ST13.
Step ST15:
In accordance with the boot program B_PRG, the CPU 33 selects an unselected application program AP_C1 among the plurality of application programs AP_C1 specified by the user.

ステップST16:
CPU33が、ステップST15で選択したアプリケーションプログラムAP_C1をメモリ32から読み出して、その正当性を検証する。
このとき、CPU33は、例えば、アプリケーションプログラムAP_C1のハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたアプリケーションプログラムAP_C1のハッシュデータとを比較し、一致していれば、メモリ32に記憶されているアプリケーションプログラムAP_C1が正当であると判断する。
また、CPU33は、アプリケーションプログラムAP_C1に対応付けられた所定の署名データを公開鍵データを基に検証してもよい。署名データSIGはアプリケーションプログラムAP_C1に付加されたり、別途メモリに保存されているようにしても良い。
Step ST16:
The CPU 33 reads the application program AP_C1 selected in step ST15 from the memory 32 and verifies its validity.
At this time, for example, the CPU 33 generates hash data of the application program AP_C1 based on the hash function, compares the generated hash data with the hash data of the application program AP_C1 prepared in advance, and if they match, The application program AP_C1 stored in the memory 32 is determined to be valid.
Further, the CPU 33 may verify predetermined signature data associated with the application program AP_C1 based on public key data. The signature data SIG may be added to the application program AP_C1 or may be stored separately in the memory.

ステップST17:
CPU33は、ステップST16でアプリケーションプログラムAP_C1が正当であると判断するとステップST18に進み、そうでない場合にはステップST20に進む。
ステップST18:
CPU33は、ステップST16で正当であると判断したアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID、バージョンデータVERおよびハッシュデータHASH(以下単に、識別データAP_IDとも記す)を、証明データAP_CERに追加する。
ステップST19:
CPU33は、ステップST16で正当性であると判断されたアプリケーションプログラムAP_C1を起動する。
すなわち、本実施形態では、アプリケーションプログラムAP_C1が正当であるとステップST16で判断したことを条件に、アプリケーションプログラムAP_C1を起動する場合を例示するが、その他、アプリケーションプログラムAP_C1が正当であると判断されなかった場合に、その旨をユーザに通知し、ユーザの同意を得てアプリケーションプログラムAP_C1を起動してもよい。但し、この場合には、CPU33は、アプリケーションプログラムAP_C1の識別データAP_IDを、証明データAP_CERに追加しない。
ステップST20:
CPU33は、ユーザにより指定された全てのアプリケーションプログラムAP_C1がステップST15で選択されたか否かを判断し、選択されたと判断すると処理を終了し、そうでない場合にはステップST15に戻る。
Step ST17:
If the CPU 33 determines in step ST16 that the application program AP_C1 is valid, the process proceeds to step ST18, and if not, the process proceeds to step ST20.
Step ST18:
The CPU 33 adds the identification data AP_ID, manufacturing identification data MF_ID, version data VER, and hash data HASH (hereinafter, also simply referred to as identification data AP_ID) of the application program AP_C1 determined to be valid in step ST16 to the certification data AP_CER. .
Step ST19:
The CPU 33 activates the application program AP_C1 determined to be valid in step ST16.
That is, in the present embodiment, the case where the application program AP_C1 is started on the condition that it is determined in step ST16 that the application program AP_C1 is valid is illustrated. However, the application program AP_C1 is not determined to be valid. In such a case, the user may be notified of this and the application program AP_C1 may be activated with the user's consent. However, in this case, the CPU 33 does not add the identification data AP_ID of the application program AP_C1 to the certification data AP_CER.
Step ST20:
The CPU 33 determines whether or not all application programs AP_C1 designated by the user have been selected in step ST15. If it is determined that the application program AP_C1 has been selected, the process ends. If not, the process returns to step ST15.

以下、図7に示すクライアント装置12_1がサーバ装置10からコンテンツデータを受信する場合の動作例を説明する。
図9は、図7に示すクライアント装置12_1がサーバ装置10からコンテンツデータを受信する場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、ブ−トプログラムB_PRGによって規定されている。
ステップST31:
クライアント装置12_1のCPU33は、セキュリティモジュール回路SMのメモリ35から読み出した秘密鍵データSK_C1、公開鍵データPK_S1および公開鍵証明データPKC_S1を基に、インタフェース31を介してサーバ装置10との間で相互認証を行う。すなわち、公開鍵による相互認証を行う。
CPU33は、当該相互認証により互いの正当性が確認されると、サーバ装置10との間の以後の通信に用いるセッション鍵データをサーバ装置10と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、上記相互認証において、CPU33は、サーバ装置10のAC(Attribute Certificate) やURL(Uniform Resource Locator)を基に、サーバ装置10の正当性を認証してもよい。ここで、ACは、所定の認証機関(AC発行機関)が公開鍵証明データの識別データIDにリンクして被発行者の機能や属性を証明する電子データであり、本例では、所定のコンテンツデータを配信するサーバであることを示している。
ステップST32:
CPU33は、ステップST31で行った相互認証によって互いの正当性が確認されるとステップST33に進み、そうでない場合には処理を終了する。
Hereinafter, an operation example when the client apparatus 12_1 illustrated in FIG. 7 receives content data from the server apparatus 10 will be described.
FIG. 9 is a flowchart for explaining an operation example when the client device 12_1 shown in FIG. 7 receives content data from the server device 10.
Each step shown below is defined by the boot program B_PRG.
Step ST31:
The CPU 33 of the client device 12_1 performs mutual authentication with the server device 10 via the interface 31 based on the secret key data SK_C1, the public key data PK_S1, and the public key certification data PKC_S1 read from the memory 35 of the security module circuit SM. I do. That is, mutual authentication using a public key is performed.
When the mutual authenticity is confirmed by the mutual authentication, the CPU 33 shares the session key data used for the subsequent communication with the server device 10 with the server device 10, and based on the session key data in the subsequent communication. Encrypt the data.
In the mutual authentication, the CPU 33 may authenticate the validity of the server device 10 based on an AC (Attribute Certificate) or URL (Uniform Resource Locator) of the server device 10. Here, AC is electronic data in which a predetermined certification authority (AC issuing authority) is linked to the identification data ID of the public key certification data to prove the functions and attributes of the issuer. This indicates that the server distributes data.
Step ST32:
CPU33 will progress to step ST33, if mutual validity is confirmed by the mutual authentication performed by step ST31, and will complete | finish a process otherwise.

ステップST33:
CPU33は、図8を基に説明した処理を経て生成した証明データAP_CERのハッシュデータを生成し、これを署名データSIGとして証明データAP_CERに付加する。
ステップST34:
CPU33は、ステップST33で生成した署名付き証明データAP_CERを、インタフェース31を介してサーバ装置10に送信する。
ステップST35:
CPU33は、アプリケーションプログラムAP_C1に従って、インタフェース31を介してサーバ装置10から受信したコンテンツデータを利用する。
このとき、前述したように、アプリケーションプログラムAP_C1には著作権保護機能が備えられているため、その機能により、コンテンツデータの著作権が保護される。
なお、上述した実施形態では、CPU33が、セキュリティモジュール回路SMから読み出したブ−トプログラムB_PRGを基に、認証処理、並びに署名データSIGの生成処理を行う場合を例示したが、セキュリティモジュール回路SMの演算回路36が当該処理を行ってもよい。
この場合には、クライアント装置12_1は、サーバ装置10から受信したデータのうち、認証に必要なデータをセキュリティモジュール回路SMに提供する。そして、セキュリティモジュール回路SMの演算回路36が、当該データを基に演算処理を行い、その結果をインタフェース31を介してサーバ装置10に送信する。また、セキュリティモジュール回路SMの演算回路36が、証明データAP_CERの署名データSIGを生成し、署名データSIGが付加させた証明データAP_CERをインタフェース31を介してサーバ装置10に送信する。
Step ST33:
The CPU 33 generates hash data of the certification data AP_CER generated through the processing described with reference to FIG. 8, and adds this to the certification data AP_CER as signature data SIG.
Step ST34:
The CPU 33 transmits the signed certification data AP_CER generated in step ST33 to the server device 10 via the interface 31.
Step ST35:
The CPU 33 uses content data received from the server device 10 via the interface 31 in accordance with the application program AP_C1.
At this time, as described above, since the application program AP_C1 has a copyright protection function, the copyright of the content data is protected by this function.
In the embodiment described above, the case where the CPU 33 performs the authentication process and the generation process of the signature data SIG based on the boot program B_PRG read from the security module circuit SM is illustrated. The arithmetic circuit 36 may perform the processing.
In this case, the client device 12_1 provides data necessary for authentication among the data received from the server device 10 to the security module circuit SM. Then, the arithmetic circuit 36 of the security module circuit SM performs arithmetic processing based on the data, and transmits the result to the server device 10 via the interface 31. Further, the arithmetic circuit 36 of the security module circuit SM generates the signature data SIG of the certification data AP_CER, and transmits the certification data AP_CER added with the signature data SIG to the server device 10 via the interface 31.

以下、図7に示すクライアント装置12_1が図3に示すクライアント装置12_2との間でコンテンツデータの送受信を行う場合の動作例を説明する。
図10は、図7に示すクライアント装置12_1が図3に示すクライアント装置12_2との間でコンテンツデータの送受信を行う場合の動作例を説明するためのフローチャートである。
ステップST41:
クライアント装置12_1のCPU33は、セキュリティモジュール回路SMのメモリ35から読み出した秘密鍵データSK_C1、公開鍵データPK_C2および公開鍵証明データPKC_C2を基に、インタフェース31を介してクライアント装置12_2との間で相互認証を行う。すなわち、公開鍵による相互認証を行う。
なお、本実施形態では、メモリ35に公開鍵データPK_2および公開鍵証明データPKC_2が記憶されているとしたが、認証に先立って、クライアント装置12_2から受信するようにしてもよい。
CPU33は、当該相互認証により互いの正当性が確認されると、クライアント装置12_2との間の以後の通信に用いるセッション鍵データをクライアント装置12_2と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
ステップST42:
CPU33は、ステップST41で行った相互認証によって互いの正当性が確認されるとステップST43に進み、そうでない場合には処理を終了かエラー処理を行う。
Hereinafter, an operation example when the client apparatus 12_1 illustrated in FIG. 7 transmits and receives content data to and from the client apparatus 12_2 illustrated in FIG. 3 will be described.
FIG. 10 is a flowchart for explaining an operation example when the client apparatus 12_1 shown in FIG. 7 transmits / receives content data to / from the client apparatus 12_2 shown in FIG.
Step ST41:
The CPU 33 of the client device 12_1 performs mutual authentication with the client device 12_2 via the interface 31 based on the secret key data SK_C1, the public key data PK_C2, and the public key certification data PKC_C2 read from the memory 35 of the security module circuit SM. I do. That is, mutual authentication using a public key is performed.
In the present embodiment, the public key data PK_2 and the public key certification data PKC_2 are stored in the memory 35, but may be received from the client device 12_2 prior to authentication.
When the mutual authenticity is confirmed by the mutual authentication, the CPU 33 shares the session key data used for the subsequent communication with the client device 12_2 with the client device 12_2, and based on the session key data in the subsequent communication. Encrypt the data.
Step ST42:
CPU33 will progress to step ST43, if mutual validity is confirmed by the mutual authentication performed by step ST41, and when that is not right, it will complete | finish a process or will perform an error process.

ステップST43:
CPU33は、図8を基に説明した処理を経て生成した証明データAP_CER1のハッシュデータを生成し、これを署名データSIGとして証明データAP_CER1に付加する。
ステップST44:
CPU33は、ステップST43で生成した署名付き証明データAP_CER1を、インタフェース31を介してクライアント装置12_2に送信する。
ステップST45:
CPU33は、図9を用いて説明した処理と同様の処理をクライアント装置12_2が行って生成された署名データSIGが付された証明データAP_CER2を、インタフェース31を介してクライアント装置12_2から受信する。
証明データAP_CER2は、前述したように、クライアント装置12_2で起動され、その正当性が確認されたアプリケーションプログラムAP_C2の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュ値HASHを図6に示すように、対応付けて示している。
Step ST43:
The CPU 33 generates hash data of the certification data AP_CER1 generated through the processing described with reference to FIG. 8, and adds this to the certification data AP_CER1 as signature data SIG.
Step ST44:
The CPU 33 transmits the signed certification data AP_CER1 generated in step ST43 to the client device 12_2 via the interface 31.
Step ST45:
The CPU 33 receives the certification data AP_CER2 with the signature data SIG generated by the client apparatus 12_2 performing the same process as described with reference to FIG. 9 from the client apparatus 12_2 via the interface 31.
As described above, the certification data AP_CER2 is started by the client device 12_2, and the identification data AP_ID, the manufacturing identification data MF_ID, the version VER, and the hash value HASH of the application program AP_C2 whose validity has been confirmed as shown in FIG. Are shown in association with each other.

ステップST46:
CPU33は、ステップST44で受信した証明データAP_CER2の正当性を検証する。
このとき、CPU33は、例えば、証明データAP_CER2のハッシュデータをハッシュ関数を基に生成する。そして、CPU33は、上記生成したハッシュデータと、署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER2が改竄されていない正当なものであると判断する。
そして、CPU33は、証明データAP_CER2が正当であると判断した場合にステップST47に進み、そうでない場合に処理を終了するかエラー処理を行う。
Step ST46:
The CPU 33 verifies the validity of the certification data AP_CER2 received in step ST44.
At this time, for example, the CPU 33 generates hash data of the certification data AP_CER2 based on the hash function. Then, the CPU 33 determines whether or not the generated hash data matches the signature data SIG. If they match, the CPU 33 determines that the certification data AP_CER2 is a legitimate one that has not been tampered with.
If the CPU 33 determines that the certification data AP_CER2 is valid, the process proceeds to step ST47. If not, the CPU 33 ends the process or performs error processing.

ステップST47:
CPU33は、ユーザによって指定されたアプリケーションプログラムAP_C1の識別データAP_IDが、ステップST45で受信した証明データAP_CER2に含まれているか否かを判断し、当該識別データAP_IDが含まれている(クライアント装置12_2においてアプリケーションプログラムAP_C2の正当性が確認され且つ起動されている)と判断するとステップST48に進み、そうでない場合には処理を終了するかエラー処理を行う。
なお、CPU33は、当該ステップにおいて、識別データAP_IDの他に製造識別データMF_IDおよびバージョンデータVERが所望のものであるか否かを判断してもよい。
ステップST48:
CPU33は、既に起動しているアプリケーションプログラムAP_C1に従って、所定のコンテンツデータを暗号化して、インタフェース31を介してクライアント装置12_2に送信する。
CPU33は、アプリケーションプログラムAP_C1に従って、インタフェース31を介してクライアント装置12_2から受信したコンテンツデータを利用する。
このとき、前述したように、アプリケーションプログラムAP_C1には著作権保護機能が備えられているため、その機能により、コンテンツデータの著作権が保護される。
Step ST47:
The CPU 33 determines whether or not the identification data AP_ID of the application program AP_C1 designated by the user is included in the certification data AP_CER2 received in step ST45, and the identification data AP_ID is included (in the client device 12_2) If it is determined that the validity of the application program AP_C2 has been confirmed and started, the process proceeds to step ST48, and if not, the process is terminated or an error process is performed.
In this step, the CPU 33 may determine whether the manufacturing identification data MF_ID and the version data VER are desired in addition to the identification data AP_ID.
Step ST48:
The CPU 33 encrypts predetermined content data according to the already started application program AP_C1 and transmits it to the client device 12_2 via the interface 31.
The CPU 33 uses the content data received from the client device 12_2 via the interface 31 in accordance with the application program AP_C1.
At this time, as described above, since the application program AP_C1 has a copyright protection function, the copyright of the content data is protected by this function.

なお、クライアント装置12_2は、上述したクライアント装置12_1と同じ構成を有している。   The client device 12_2 has the same configuration as the client device 12_1 described above.

以下、図3に示す通信システム1の全体動作例を説明する。
クライアント装置12_1,12_2は、前述した図8に示す処理を行って証明データAP_CERを、それぞれクライアント装置12_1,12_2の図7に示すセキュリティモジュール回路SM内のメモリ35に書き込む。
先ず、サーバ装置10からクライアント装置12_1にコンテンツデータを送信する場合には、例えば、サーバ装置10が前述した図5に示す処理を行い、クライアント装置12_1が前述した図9に示す処理を行う。
また、クライアント装置12_1とクライアント装置12_2との間でコンテンツデータの送受信を行う場合には、各々が前述した図10を示す処理を行う。
Hereinafter, an overall operation example of the communication system 1 shown in FIG. 3 will be described.
The client devices 12_1 and 12_2 perform the process shown in FIG. 8 to write the certification data AP_CER into the memory 35 in the security module circuit SM shown in FIG. 7 of the client devices 12_1 and 12_2, respectively.
First, when content data is transmitted from the server apparatus 10 to the client apparatus 12_1, for example, the server apparatus 10 performs the process shown in FIG. 5 and the client apparatus 12_1 performs the process shown in FIG.
Further, when content data is transmitted and received between the client device 12_1 and the client device 12_2, each performs the process shown in FIG.

以上説明したように、通信システム1によれば、クライアント装置12_1,12_2の各々が自らが起動するアプリケーションプログラムAP_C1,AP_C2の正当性を検証し、その結果をそれぞれ示す証明データAP_CER1、AP_CER2をサーバ装置10に送信する。
そのため、サーバ装置10は、クライアント装置12_1,12_2が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置10の負荷を軽減できる。
As described above, according to the communication system 1, each of the client devices 12_1 and 12_2 verifies the validity of the application programs AP_C1 and AP_C2 that the client devices 12_1 and 12_2 themselves start, and uses the certification data AP_CER1 and AP_CER2 indicating the results respectively as the server device 10 to send.
Therefore, the server device 10 does not need to hold all the hash data of the application programs executed by the client devices 12_1 and 12_2, and does not need to perform verification processing of the validity. Therefore, it is possible to reduce the load on the server apparatus 10 due to the determination of the validity of the application program activated on the client apparatuses 12_1 and 12_2.

また、通信システム1によれば、クライアント装置12_1,12_2において、図7に示すように、上述した証明データAP_CER1,AP_CER2をそれぞれ生成するブ−トプログラムB_PRGがセキュリティモジュール回路SM内のメモリ35に記憶され、且つ、それがデータ線30を介してセキュアな状態でCPU33に読み出されるので、証明データAP_CER1、AP_CER2の信頼性を高めることができる。
また、通信システム1によれば、サーバ装置10は、クライアント装置12_1,12_2と相互認証を行ってから、署名付きの証明データAP_CERを受信し、その署名データSIGを検証するため、サーバ装置10は、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性を高い信頼性で判断できる。
Further, according to the communication system 1, in the client devices 12_1 and 12_2, as shown in FIG. 7, the boot program B_PRG for generating the above-described certification data AP_CER1 and AP_CER2 is stored in the memory 35 in the security module circuit SM. In addition, since it is read to the CPU 33 in a secure state via the data line 30, the reliability of the certification data AP_CER1 and AP_CER2 can be increased.
Further, according to the communication system 1, the server apparatus 10 performs mutual authentication with the client apparatuses 12_1 and 12_2, receives the proof data AP_CER with the signature, and verifies the signature data SIG. Therefore, it is possible to determine the legitimacy of the application program activated on the client devices 12_1 and 12_2 with high reliability.

また、通信システム1によれば、サーバ装置10とクライアント装置12_1,12_2との間のみならず、クライアント装置12_1と12_2との間でコンテンツデータを送受信する場合にも、クライアント装置12_1,12_2の一方は、他方で起動されているアプリケーションプログラムの正当性を小さな負荷で判断できる。   Further, according to the communication system 1, not only between the server device 10 and the client devices 12_1 and 12_2 but also when content data is transmitted and received between the client devices 12_1 and 12_2, one of the client devices 12_1 and 12_2. Can determine the legitimacy of the application program activated on the other side with a small load.

本発明は上述した実施形態には限定されない。
例えば、図11に示すように、クライアント装置12_1において、ブ−トプログラムB_PRGを耐タンパ性を有しないメモリ32に記憶してもよい。
この場合には、セキュリティモジュール回路SMがメモリ32からブ−トプログラムB_PRGを読み出し、演算回路36においてブ−トプログラムB_PRGの正当性を検証した後に、データ線30を介してCPU33に出力する。
なお、図11は、第4の発明の実施形態にである。
The present invention is not limited to the embodiment described above.
For example, as shown in FIG. 11, in the client device 12_1, the boot program B_PRG may be stored in a memory 32 that does not have tamper resistance.
In this case, the security module circuit SM reads the boot program B_PRG from the memory 32, verifies the validity of the boot program B_PRG in the arithmetic circuit 36, and then outputs it to the CPU 33 via the data line 30.
FIG. 11 shows an embodiment of the fourth invention.

また、図9のステップST33あるいは図10のステップST43において、クライアント装置12_1のCPU33は、サーバ装置10あるいはクライアント装置12_2から受信したデータ(例えばクライアント装置12_2で生成した乱数など)と証明データAP_CERとによって構成されるデータに対してハッシュデータを生成して署名データSIGを生成してもよい。このようにすることで、一度通信に使われたデータを再利用されて不正を行うことを防止することができる。
このようにすることで、クライアント装置12_1が過去にやりとりした署名付きの証明データAP_CERを不正に利用してなりすましを行うことを防止できる。
In step ST33 of FIG. 9 or step ST43 of FIG. 10, the CPU 33 of the client device 12_1 uses the data received from the server device 10 or the client device 12_2 (for example, a random number generated by the client device 12_2) and the certification data AP_CER. The signature data SIG may be generated by generating hash data for the configured data. By doing so, it is possible to prevent fraud by reusing data once used for communication.
By doing so, it is possible to prevent impersonation by using the certification data AP_CER with the signature exchanged in the past by the client apparatus 12_1.

また、上述した実施形態では、クライアント装置12_1がブ−トプログラムB_PRGに従って、証明データAP_CERを生成した場合を例示したが、ブ−トプログラムB_PRGが正当性を検証した他のプログラムが証明データAP_CERの生成を行ってもよい。
また、上述した実施形態において、ブ−トプログラムB_PRGの更新は、セキュリティモジュール回路SMの演算回路36が更新後のブ−トプログラムの正当性を検証した後に行うようにしてもよい。
In the above-described embodiment, the client device 12_1 has exemplified the case where the proof data AP_CER is generated according to the boot program B_PRG. However, another program verified by the boot program B_PRG is the proof data AP_CER. Generation may be performed.
In the above-described embodiment, the boot program B_PRG may be updated after the arithmetic circuit 36 of the security module circuit SM verifies the validity of the updated boot program.

また、上述した相互認証は、公開鍵認証に限定されるのではなく、相互認証できる方法またはシステムであればどのような認証方法でもよい。   The mutual authentication described above is not limited to public key authentication, and any authentication method may be used as long as it is a method or system capable of mutual authentication.

本発明は、通信先が起動するアプリケーションプログラムの正当性を判断するシステムに適用可能である。   The present invention can be applied to a system that determines the validity of an application program started by a communication destination.

図1は、本発明の関連技術を説明するための図である。FIG. 1 is a diagram for explaining a related technique of the present invention. 図2は、本発明の関連技術を説明するための図である。FIG. 2 is a diagram for explaining a related technique of the present invention. 図3は、本発明の実施形態に係わる通信システムの全体構成図である。FIG. 3 is an overall configuration diagram of a communication system according to the embodiment of the present invention. 図4は、図3に示すサーバ装置の構成図である。FIG. 4 is a block diagram of the server device shown in FIG. 図5は、図4に示すサーバ装置がクライアント装置と通信を行う場合の動作例を説明するためのフローチャートである。FIG. 5 is a flowchart for explaining an operation example when the server apparatus shown in FIG. 4 communicates with the client apparatus. 図6は、本発明の実施形態に係わる証明データを説明するための図である。FIG. 6 is a diagram for explaining the certification data according to the embodiment of the present invention. 図7は、図3に示すクライアント装置の構成図である。FIG. 7 is a block diagram of the client device shown in FIG. 図8は、図7に示すクライアント装置が証明データを生成する動作を説明するためのフローチャートである。FIG. 8 is a flowchart for explaining an operation in which the client device shown in FIG. 7 generates proof data. 図9は、図7に示すクライアント装置がサーバ装置からコンテンツデータを受信する場合の動作例を説明するためのフローチャートである。FIG. 9 is a flowchart for explaining an operation example when the client device shown in FIG. 7 receives content data from the server device. 図10は、図7に示すクライアント装置12_1が図3に示すクライアント装置12_2との間でコンテンツデータの送受信を行う場合の動作例を説明するためのフローチャートである。FIG. 10 is a flowchart for explaining an operation example when the client apparatus 12_1 shown in FIG. 7 transmits / receives content data to / from the client apparatus 12_2 shown in FIG. 図11は、本発明の実施形態の変形例に係わるクライアント装置を説明するための図である。FIG. 11 is a diagram for explaining a client device according to a modification of the embodiment of the present invention.

符号の説明Explanation of symbols

1…通信システム、10…サーバ装置、12_1,12_2…クライアント装置、20…データ線、21…インタフェース、22…メモリ、23…CPU、30…データ線、31…インタフェース、32…メモリ、33…CPU、SM…セキュリティモジュール回路、35…メモリ、36…演算回路、AP_S,AP_C1…アプリケーションプログラム、B_PRG…ブ−トプログラム、AP_CER…証明データ   DESCRIPTION OF SYMBOLS 1 ... Communication system, 10 ... Server apparatus, 12_1, 12_2 ... Client apparatus, 20 ... Data line, 21 ... Interface, 22 ... Memory, 23 ... CPU, 30 ... Data line, 31 ... Interface, 32 ... Memory, 33 ... CPU , SM ... security module circuit, 35 ... memory, 36 ... arithmetic circuit, AP_S, AP_C1 ... application program, B_PRG ... boot program, AP_CER ... certification data

Claims (14)

アプリケーションプログラムの管理をコンピュータに実行させるプログラムであって、
前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順と、
前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順と
を前記コンピュータに実行させるプログラム。
A program for causing a computer to manage application programs,
A first procedure for verifying validity of an application program started by the computer and generating certification data indicating identification data of the application program determined to be valid;
A program that causes the computer to execute a second procedure for transmitting the certification data generated in the first procedure to a communication destination that provides data used by the application program.
前記第1の手順で前記正当性であると判断された前記アプリケーションプログラムが、前記通信先から受信した前記データを利用する第3の手順
をさらに有する請求項1に記載のプログラム。
The program according to claim 1, further comprising: a third procedure in which the application program determined to be valid in the first procedure uses the data received from the communication destination.
前記第1の手順は、前記アプリケーションプログラムが改竄されているか否かを検証し、改竄されていないと判断した場合に、前記識別データを示す前記証明データを生成する
請求項1に記載のプログラム。
The program according to claim 1, wherein the first procedure verifies whether or not the application program is falsified, and generates the certification data indicating the identification data when it is determined that the application program has not been falsified.
前記第1の手順は、前記正当であると判断された前記アプリケーションプログラムのバ−ジョンデータおよびハッシュデータの少なくとも一つを、前記識別データに対応付けて示す前記証明データを生成する
請求項1に記載のプログラム。
The first procedure generates the certification data indicating at least one of version data and hash data of the application program determined to be valid in association with the identification data. The listed program.
前記第1の手順で生成した前記証明データに署名データを付加する第4の手順
をさらに有し、
前記第2の手順は、前記第4の手順で前記署名データが付加された前記証明データを前記通信先に送信する
請求項1に記載のプログラム。
A fourth procedure for adding signature data to the certification data generated in the first procedure,
The program according to claim 1, wherein the second procedure transmits the certification data to which the signature data is added in the fourth procedure to the communication destination.
前記第4の手順は、前記証明データと前記通信先から受信したデータとを含むデータに対して前記署名データを生成し、当該署名データが付加された前記証明データを前記通信先に送信する
請求項5に記載のプログラム。
The fourth procedure generates the signature data for data including the certification data and data received from the communication destination, and transmits the certification data to which the signature data is added to the communication destination. Item 6. The program according to item 5.
記憶データの改竄および監視を防止する機能が備えられたメモリに記憶されており、
前記コンピュータによって前記メモリからセキュアな状態で読み出されて当該コンピュータに実行される
請求項1に記載のプログラム。
It is stored in a memory with a function to prevent tampering and monitoring of stored data,
The program according to claim 1, which is read from the memory in a secure state by the computer and executed by the computer.
前記第1の手順は、前記証明データを前記メモリに書き込み、
前記第2の手順は、前記メモリから読み出した前記証明データを前記通信先に送信する
請求項7に記載のプログラム。
The first procedure writes the certification data to the memory,
The program according to claim 7, wherein the second procedure transmits the certification data read from the memory to the communication destination.
通信先へのデータ送信をコンピュータに実行させるプログラムであって、
前記通信先の正当性を認証する第1の手順と、
前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順と、
所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順と、
前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順と
を前記コンピュータに実行させるプログラム。
A program for causing a computer to execute data transmission to a communication destination,
A first procedure for authenticating the validity of the communication destination;
On the condition that it is authenticated as valid in the first procedure, proof data indicating identification data of an application program that is judged as valid by the communication destination and started at the communication destination is received from the communication destination. A second procedure;
A third procedure for determining whether desired identification data is included in the certification data received in the second procedure;
A program for causing the computer to execute a fourth procedure for transmitting data to the communication destination on condition that the desired identification data is included in the third procedure.
アプリケーションプログラムが記憶されたメモリと、
記憶データの改竄および監視を防止する機能が備えられ、ブ−トプログラムを記憶する回路モジュールと、
前記メモリから読み出した前記アプリケーションプログラムと、前記回路モジュールからセキュアな状態で読み出した前記ブ−トプログラムとを実行する実行回路と、
インタフェースと
を有するコンピュータであって、
前記実行回路は、前記回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する
コンピュータ。
A memory storing application programs;
A circuit module having a function of preventing tampering and monitoring of stored data and storing a boot program;
An execution circuit for executing the application program read from the memory and the boot program read in a secure state from the circuit module;
A computer having an interface,
The execution circuit executes the boot program read in a secure state from the circuit module, verifies the validity of the application program according to the boot program, and determines that the application program is valid. A computer that stores certification data indicating identification data of an application program in the circuit module, and transmits the certification data read from the circuit module to the communication destination via the interface.
アプリケーションプログラムおよびブ−トプログラムが記憶されたメモリと、
記憶データの改竄、並びに記憶データおよび内部処理の監視を防止する機能が備えられた回路モジュールと、
前記メモリから読み出した前記アプリケーションプログラムおよび前記ブ−トプログラムとを実行する実行回路と、
インタフェースと
を有するコンピュータであって、
前記回路モジュールは、前記メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力し、
前記実行回路は、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する
コンピュータ。
A memory storing an application program and a boot program;
A circuit module having a function of preventing alteration of stored data and monitoring of stored data and internal processing;
An execution circuit for executing the application program and the boot program read from the memory;
A computer having an interface,
The circuit module, after verifying the validity of the boot program read from the memory, outputs the boot program in a secure state to the execution circuit,
The execution circuit executes the boot program input from the circuit module, verifies the validity of the application program according to the boot program, and obtains identification data of the application program determined to be valid. A proof data to be stored in the circuit module, and the proof data read from the circuit module is transmitted to the communication destination via the interface.
プログラムが記憶されたメモリと、
前記メモリから読み出した前記プログラムを実行する実行回路と、
通信先で起動され当該通信先によって正当性が認められたアプリケーションプログラムの識別データを示す証明データを前記通信先から受信するインタフェースと
を有するコンピュータであって、
前記実行回路は、前記メモリから読み出したプログラムを実行し、当該プログラムに従って、前記インタフェースを介して通信先が正当であると認証したことを条件に、前記インタフェースを介して受信した前記証明データに所望の識別データが含まれているか否かを判断し、前記所望の識別データが含まれていると判断したことを条件に、前記インタフェースを介して前記通信先にデータを送信する
コンピュータ。
Memory in which the program is stored;
An execution circuit for executing the program read from the memory;
A computer having an interface that receives identification data indicating identification data of an application program that is activated at the communication destination and is validated by the communication destination;
The execution circuit executes a program read from the memory, and requests the certification data received via the interface on the condition that the communication destination is authenticated via the interface according to the program. A computer that transmits the data to the communication destination via the interface on the condition that it is determined whether the desired identification data is included.
アプリケーションプログラムの管理を行うコンピュータが行うデータ処理方法であって、
前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の工程と、
前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の工程で生成した前記証明データを送信する第2の工程と
を有するデータ処理方法。
A data processing method performed by a computer that manages application programs,
A first step of verifying validity of an application program started by the computer and generating certification data indicating identification data of the application program determined to be valid;
A data processing method comprising: a second step of transmitting the certification data generated in the first step to a communication destination that provides data used by the application program.
通信先へのデータ送信をコンピュータが行うデータ処理方法であって、
前記通信先の正当性を認証する第1の工程と、
前記第1の工程で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の工程と、
所望の識別データが、前記第2の工程で受信した前記証明データに含まれているか否かを判断する第3の工程と、
前記第3の工程で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の工程と
を有するデータ処理方法。
A data processing method in which a computer transmits data to a communication destination,
A first step of authenticating the correctness of the communication destination;
On the condition that it is authenticated as valid in the first step, certification data indicating identification data of an application program that is judged valid by the communication destination and started at the communication destination is received from the communication destination. A second step;
A third step of determining whether desired identification data is included in the certification data received in the second step;
A data processing method comprising: a fourth step of transmitting data to the communication destination on condition that it is determined that the desired identification data is included in the third step.
JP2004111426A 2004-04-05 2004-04-05 Program, computer and data processing method Abandoned JP2005293504A (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004111426A JP2005293504A (en) 2004-04-05 2004-04-05 Program, computer and data processing method
TW094110747A TW200607288A (en) 2004-04-05 2005-04-04 Program, computer, and data processing method
PCT/JP2005/006633 WO2005098640A1 (en) 2004-04-05 2005-04-05 Program, computer, and data processing method
KR1020057022195A KR20070009371A (en) 2004-04-05 2005-04-05 Program, computer, and data processing method
US10/557,169 US20070044160A1 (en) 2004-04-05 2005-04-05 Program, computer, and data processing method
CN200580000498.0A CN1806235A (en) 2004-04-05 2005-04-05 Program, computer, and data processing method
EP05728436A EP1736892A1 (en) 2004-04-05 2005-04-05 Program, computer, and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004111426A JP2005293504A (en) 2004-04-05 2004-04-05 Program, computer and data processing method

Publications (1)

Publication Number Publication Date
JP2005293504A true JP2005293504A (en) 2005-10-20

Family

ID=35326329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004111426A Abandoned JP2005293504A (en) 2004-04-05 2004-04-05 Program, computer and data processing method

Country Status (2)

Country Link
JP (1) JP2005293504A (en)
CN (1) CN1806235A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009301429A (en) * 2008-06-16 2009-12-24 Ricoh Co Ltd Method and apparatus for detecting software falsification, and image processor
WO2010103800A1 (en) * 2009-03-13 2010-09-16 株式会社オンサイト Server, terminal, program, and service providing method
JP2012027887A (en) * 2010-03-09 2012-02-09 On Site:Kk Server, terminal, program and service providing method
JP2015119357A (en) * 2013-12-18 2015-06-25 トヨタ自動車株式会社 Information processor
JP2019022073A (en) * 2017-07-18 2019-02-07 富士ゼロックス株式会社 Device and program for information processing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599709B (en) * 2015-10-15 2021-08-17 中兴通讯股份有限公司 Method, device and terminal for preventing privacy information leakage

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009301429A (en) * 2008-06-16 2009-12-24 Ricoh Co Ltd Method and apparatus for detecting software falsification, and image processor
WO2010103800A1 (en) * 2009-03-13 2010-09-16 株式会社オンサイト Server, terminal, program, and service providing method
JP2012027887A (en) * 2010-03-09 2012-02-09 On Site:Kk Server, terminal, program and service providing method
JP2015119357A (en) * 2013-12-18 2015-06-25 トヨタ自動車株式会社 Information processor
JP2019022073A (en) * 2017-07-18 2019-02-07 富士ゼロックス株式会社 Device and program for information processing

Also Published As

Publication number Publication date
CN1806235A (en) 2006-07-19

Similar Documents

Publication Publication Date Title
TWI735691B (en) Data key protection method, device and system
JP6151402B2 (en) Inclusive verification of platform to data center
US8150039B2 (en) Single security model in booting a computing device
Anati et al. Innovative technology for CPU based attestation and sealing
JP4906854B2 (en) Information processing apparatus, information recording apparatus, information processing system, program update method, program, and integrated circuit
JP4638912B2 (en) Method for transmitting a direct proof private key in a signed group to a device using a distribution CD
CN109639427B (en) Data sending method and equipment
JP5136012B2 (en) Data sending method
US7263608B2 (en) System and method for providing endorsement certificate
US20090259855A1 (en) Code Image Personalization For A Computing Device
US20040088541A1 (en) Digital-rights management system
WO2005098640A1 (en) Program, computer, and data processing method
US20050283826A1 (en) Systems and methods for performing secure communications between an authorized computing platform and a hardware component
JP2008506338A (en) A method for directly distributing a certification private key to a device using a distribution CD
JP2010514000A (en) Method for securely storing program state data in an electronic device
US20070277037A1 (en) Software component authentication via encrypted embedded self-signatures
JP2017011491A (en) Authentication system
WO2011150650A1 (en) Method and device for key authorization information management
JP4998314B2 (en) Communication control method and communication control program
JP2005293504A (en) Program, computer and data processing method
JP2005215945A (en) Information processor, storage device for permitting software execution, and software execution method
JP4337608B2 (en) Program, computer and data processing method
JP2005301531A (en) Program, computer, and data processing method
KR20070019790A (en) Method of delivering direct proof private keys in signed groups to devices using a distribution cd
WO2010109560A1 (en) Semiconductor memory, computer machine connected with semiconductor memory, and data processing method of same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061012

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20090813