JP2005293504A - プログラム、コンピュータおよびデータ処理方法 - Google Patents
プログラム、コンピュータおよびデータ処理方法 Download PDFInfo
- 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
Links
Images
Abstract
【目的】 起動されるアプリケーションプログラムの正当性を通信先が判断する場合に、当該通信先の負荷を軽減できるプログラムを提供する。
【解決手段】 クライアント装置12_1が自らが起動するアプリケーションプログラムの正当性を検証し、その結果を示す証明データをサーバ装置10に送信する。サーバ装置10は、証明データを基に、所望のアプリケーションプログラムがクライアント装置12_1で起動されていること条件に、コンテンツデータをクライアント装置12_1に送信する。
【選択図】 図1
【解決手段】 クライアント装置12_1が自らが起動するアプリケーションプログラムの正当性を検証し、その結果を示す証明データをサーバ装置10に送信する。サーバ装置10は、証明データを基に、所望のアプリケーションプログラムがクライアント装置12_1で起動されていること条件に、コンテンツデータをクライアント装置12_1に送信する。
【選択図】 図1
Description
本発明は、通信先が起動するアプリケーションプログラムの正当性を判断するためのプログラム、コンピュータおよびデータ処理方法に関する。
例えば、著作権保護機能を持つ所望のアプリケーションプログラムがクライアント装置で起動されていることを条件に、著作権に係わるコンテンツデータをサーバ装置からクライアント装置に送信する通信システムがある。
このような通信システムでは、サーバ装置が、上記所望のアプリケーションプログラムがクライアント装置で起動されているか否かを判断する。
このとき、従来では、例えば、サーバ装置は、上記アプリケーションプログラムのハッシュデータ(ハッシュ値)を予め保持し、当該ハッシュデータと、クライアント装置がハッシュ関数を基に生成した上記アプリケーションプログラムのハッシュデータとが一致していることを確認した場合に、上記所望のアプリケーションプログラムがクライアント装置上で動作していると判断する。
このような通信システムでは、サーバ装置が、上記所望のアプリケーションプログラムがクライアント装置で起動されているか否かを判断する。
このとき、従来では、例えば、サーバ装置は、上記アプリケーションプログラムのハッシュデータ(ハッシュ値)を予め保持し、当該ハッシュデータと、クライアント装置がハッシュ関数を基に生成した上記アプリケーションプログラムのハッシュデータとが一致していることを確認した場合に、上記所望のアプリケーションプログラムがクライアント装置上で動作していると判断する。
ところで、上記ハッシュデータの生成に用いるハッシュ関数は、クライアント装置のOS(Operating System)によって様々なものが用いられる。
また、同じ機能を持つアプリケーションプログラムでも、それが記述されたプログラム言語やバージョンによって、そのハッシュデータは異なる。
そのため、複数のクライアント装置にコンテンツデータを送信するサーバ装置は、膨大な数のハッシュデータを保持および管理する必要があり、負荷が大きいという問題がある。
また、近年、クライアント装置間でコンテンツデータの送受信を行う場合があるが、そのような場合に、各クライアント装置が、上記所望のアプリケーションプログラムが通信先のクライアント装置で起動されているか否かを判断するために、上述した膨大な数のハッシュデータを保持および管理することは現実的ではない。
また、同じ機能を持つアプリケーションプログラムでも、それが記述されたプログラム言語やバージョンによって、そのハッシュデータは異なる。
そのため、複数のクライアント装置にコンテンツデータを送信するサーバ装置は、膨大な数のハッシュデータを保持および管理する必要があり、負荷が大きいという問題がある。
また、近年、クライアント装置間でコンテンツデータの送受信を行う場合があるが、そのような場合に、各クライアント装置が、上記所望のアプリケーションプログラムが通信先のクライアント装置で起動されているか否かを判断するために、上述した膨大な数のハッシュデータを保持および管理することは現実的ではない。
本発明は、上述した従来技術に鑑みてなされ、起動されるアプリケーションプログラムの正当性を通信先が判断する場合に、当該通信先の負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
また、本発明は、通信先の起動されるアプリケーションプログラムの正当性を判断する負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
また、本発明は、通信先の起動されるアプリケーションプログラムの正当性を判断する負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
上述した従来技術の問題点を解決し、上述した目的を達成するために、第1の発明のプログラムは、アプリケーションプログラムの管理をコンピュータに実行させるプログラムであって、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順と、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順とを前記コンピュータに実行させる。
第1の発明のプログラムの作用は以下のようになる。
第1の発明のプログラムがコンピュータで実行され、コンピュータに対して、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順を前記コンピュータに実行させる。
次に、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順を前記コンピュータに実行させる。
第1の発明のプログラムがコンピュータで実行され、コンピュータに対して、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順を前記コンピュータに実行させる。
次に、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順を前記コンピュータに実行させる。
第2の発明のプログラムは、通信先へのデータ送信をコンピュータに実行させるプログラムであって、前記通信先の正当性を認証する第1の手順と、前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順と、所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順と、前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順とを前記コンピュータに実行させる。
第2の発明のプログラムの作用は以下のようになる。
第2の発明のプログラムがコンピュータで実行され、前記通信先の正当性を認証する第1の手順を前記コンピュータに実行させる。
次に、前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順を前記コンピュータに実行させる。
次に、所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順を前記コンピュータに実行させる。
次に、前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順を前記コンピュータに実行させる。
第2の発明のプログラムがコンピュータで実行され、前記通信先の正当性を認証する第1の手順を前記コンピュータに実行させる。
次に、前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順を前記コンピュータに実行させる。
次に、所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順を前記コンピュータに実行させる。
次に、前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順を前記コンピュータに実行させる。
第3の発明のコンピュータは、アプリケーションプログラムが記憶されたメモリと、記憶データの改竄および監視を防止する機能が備えられ、ブ−トプログラムを記憶する回路モジュールと、前記メモリから読み出した前記アプリケーションプログラムと、前記回路モジュールからセキュアな状態で読み出した前記ブ−トプログラムとを実行する実行回路と、インタフェースとを有するコンピュータであって、前記実行回路は、前記回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
第3の発明のコンピュータの作用は以下のようになる。
実行回路が、回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行する。
そして、前記実行回路が、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶する。
そして、前記実行回路が、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
実行回路が、回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行する。
そして、前記実行回路が、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶する。
そして、前記実行回路が、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
第4の発明のコンピュータは、アプリケーションプログラムおよびブ−トプログラムが記憶されたメモリと、記憶データの改竄、並びに記憶データおよび内部処理の監視を防止する機能が備えられた回路モジュールと、前記メモリから読み出した前記アプリケーションプログラムおよび前記ブ−トプログラムとを実行する実行回路と、インタフェースとを有するコンピュータであって、前記回路モジュールは、前記メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力し、前記実行回路は、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
第4の発明のコンピュータの作用は以下のようになる。
回路モジュールが、メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力する。
次に、前記実行回路が、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させる。
次に、前記実行回路が、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
回路モジュールが、メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力する。
次に、前記実行回路が、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させる。
次に、前記実行回路が、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する。
第5の発明のコンピュータは、プログラムが記憶されたメモリと、前記メモリから読み出した前記プログラムを実行する実行回路と、通信先で起動され当該通信先によって正当性が認められたアプリケーションプログラムの識別データを示す証明データを前記通信先から受信するインタフェースとを有するコンピュータであって、前記実行回路は、前記メモリから読み出したプログラムを実行し、当該プログラムに従って、前記インタフェースを介して通信先が正当であると認証したことを条件に、前記インタフェースを介して受信した前記証明データに所望の識別データが含まれているか否かを判断し、前記所望の識別データが含まれていると判断したことを条件に、前記インタフェースを介して前記通信先にデータを送信する。
第6の発明のデータ処理方法は、アプリケーションプログラムの管理を行うコンピュータが行うデータ処理方法であって、前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の工程と、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の工程で生成した前記証明データを送信する第2の工程とを有する。
第7の発明のデータ処理方法は、通信先へのデータ送信をコンピュータが行うデータ処理方法であって、前記通信先の正当性を認証する第1の工程と、前記第1の工程で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の工程と、所望の識別データが、前記第2の工程で受信した前記証明データに含まれているか否かを判断する第3の工程と、前記第3の工程で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の工程とを有する。
第1、第3、第4および第6の発明によれば、起動されるアプリケーションプログラムの正当性を通信先が判断する場合に、当該通信先の負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することができる。
また、第2,第5および第7の発明によれば、通信先の起動されるアプリケーションプログラムの正当性を判断する負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することができる。
また、第2,第5および第7の発明によれば、通信先の起動されるアプリケーションプログラムの正当性を判断する負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することができる。
先ず、本発明の関連技術を説明する。
<関連技術>
図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) に組み込むなどの方法により、セキュアな状態でのデータ授受を実現している。
<関連技術>
図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) に組み込むなどの方法により、セキュアな状態でのデータ授受を実現している。
サーバ装置110は、ブートプログラムBPのハッシュデータHashを予め保持し、当該ハッシュデータHashと、コンピュータPCがレジスタ103から読み出して送信したハッシュデータHashとが一致していることを条件に、正当なブートプログラムBPがコンピュータPC上で動作していると判断する。
しかしながら、この場合に、コンピュータPCが送信したハッシュデータHashが正当に生成されたものであるかは不明である。
一方、セキュリティモジュール回路SM1が正当であれば、ブートプログラムBPが正当であると判断できる。
しかしながら、この場合に、コンピュータPCが送信したハッシュデータHashが正当に生成されたものであるかは不明である。
一方、セキュリティモジュール回路SM1が正当であれば、ブートプログラムBPが正当であると判断できる。
また、著作権保護機能を持つ所望のアプリケーションプログラムがコンピュータPC等のクライアント装置上で起動されていることを条件に、著作権に係わるコンテンツデータをサーバ装置110からコンピュータPC等に送信する場合がある。
このような場合に、サーバ装置110は、アプリケーションプログラムのハッシュデータHashを記憶し、コンピュータPC等から受信した当該アプリケーションプログラムのハッシュデータHashと比較を行う。
ところで、上記ハッシュデータの生成に用いるハッシュ関数は、クライアント装置のOS(Operating System)によって様々なものが用いられる。
また、同じ機能を持つアプリケーションプログラムでも、それが記述されたプログラム言語やバージョンによって、そのハッシュデータは異なる。
そのため、例えば、図2に示すように、サーバ装置110が、コンピュータPC1、PC2、PDA(Personal Digital Assistants) および携帯電話MPなどの複数のクライアント装置にコンテンツデータを送信する場合に、サーバ装置110は、それぞれのクライアント装置について、そのブ−トプログラムBPのハッシュデータHashと、そのアプリケーションプログラムAPのハッシュデータHashを保持する必要があり、負担が大きいという問題がある。
このような場合に、サーバ装置110は、アプリケーションプログラムのハッシュデータHashを記憶し、コンピュータPC等から受信した当該アプリケーションプログラムのハッシュデータHashと比較を行う。
ところで、上記ハッシュデータの生成に用いるハッシュ関数は、クライアント装置のOS(Operating System)によって様々なものが用いられる。
また、同じ機能を持つアプリケーションプログラムでも、それが記述されたプログラム言語やバージョンによって、そのハッシュデータは異なる。
そのため、例えば、図2に示すように、サーバ装置110が、コンピュータPC1、PC2、PDA(Personal Digital Assistants) および携帯電話MPなどの複数のクライアント装置にコンテンツデータを送信する場合に、サーバ装置110は、それぞれのクライアント装置について、そのブ−トプログラムBPのハッシュデータHashと、そのアプリケーションプログラムAPのハッシュデータHashを保持する必要があり、負担が大きいという問題がある。
例えば、図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を記憶する必要がある。
また、サーバ装置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を記憶する必要がある。
また、近年、クライアント装置間でコンテンツデータの送受信を行う場合があるが、そのような場合にも、各クライアント装置が、上記所望のアプリケーションプログラムが通信先のクライアント装置で起動されているか否かを判断するために、上述した膨大な数のハッシュデータを保持および管理する必要があり、負担が大かったり、現実的ではない。
以下、上述した関連技術の問題点を解決する本発明の実施形態に係わる通信システムについて説明する。
<第1実施形態>
図3は、本発明の実施形態に係わる通信システム1の全体構成図である。
図3に示すように、通信システム1は、例えば、サーバ装置10およびクライアント装置12_1,12_2を有する。
サーバ装置10、クライアント装置12_1およびクライアント装置12_1は、ネットワーク9を介して相互に通信を行う。
なお、本実施形態では、多数のサーバ装置10および2つのクライアント装置12_1,12_3で通信を行う場合を例示するが、本発明は、複数のサーバ装置を用いてもよいし、単数または3個以上のクライアント装置を用いてもよい。
<第1実施形態>
図3は、本発明の実施形態に係わる通信システム1の全体構成図である。
図3に示すように、通信システム1は、例えば、サーバ装置10およびクライアント装置12_1,12_2を有する。
サーバ装置10、クライアント装置12_1およびクライアント装置12_1は、ネットワーク9を介して相互に通信を行う。
なお、本実施形態では、多数のサーバ装置10および2つのクライアント装置12_1,12_3で通信を行う場合を例示するが、本発明は、複数のサーバ装置を用いてもよいし、単数または3個以上のクライアント装置を用いてもよい。
先ず、図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の間でコンテンツデータの送受信する場合を例示するが、コンテンツデータ自体ではなく、暗号化されたコンテンツデータを復号する復号鍵データや、当該コンテンツデータの利用するために必要な権利情報を送受信してもよい。
クライアント装置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の間でコンテンツデータの送受信する場合を例示するが、コンテンツデータ自体ではなく、暗号化されたコンテンツデータを復号する復号鍵データや、当該コンテンツデータの利用するために必要な権利情報を送受信してもよい。
以下、本実施形態を図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が、本発明の証明データに対応している。
先ず、本実施形態の各構成要素と本発明の構成要素との対応関係を説明する。
図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が、本発明の証明データに対応している。
〔サーバ装置10〕
図4は、図3に示すサーバ装置10の構成図である。
図4に示すように、サーバ装置10は、例えば、インタフェース21、メモリ22およびCPU23を有し、これらがデータ線20を介して接続されている。
ここで、インタフェース21が第5の発明のインタフェースに対応し、メモリ22が第5の発明のメモリに対応し、CPU23が第5の発明の実行回路に対応している。
図4は、図3に示すサーバ装置10の構成図である。
図4に示すように、サーバ装置10は、例えば、インタフェース21、メモリ22およびCPU23を有し、これらがデータ線20を介して接続されている。
ここで、インタフェース21が第5の発明のインタフェースに対応し、メモリ22が第5の発明のメモリに対応し、CPU23が第5の発明の実行回路に対応している。
インタフェース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を記憶する。
メモリ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を記憶する。
CPU23は、アプリケーションプログラムAP_Sを実行し、サーバ装置10の動作を統括的に制御する。
CPU23が行う処理については、サーバ装置10の動作例と関連付けて説明する。
CPU23が行う処理については、サーバ装置10の動作例と関連付けて説明する。
以下、図4に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明する。
図5は、図4に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、アプリケーションプログラムAP_Sによって規定されている。
なお、図5に示す処理は、サーバ装置10のブートプログラムが規定してもよい。
ステップST1:
サーバ装置10のCPU23が、ユーザから指定されたアプリケーションプログラムAP_Sをメモリ22から読み出して実行する。
アプリケーションプログラムAP_Sは、例えば、所定のコンテンツデータを暗号化して送信するプログラムであり、これに対応した識別データAP_IDを持つプログラムとのみコンテンツデータを送受信するプログラムである。当該コンテンツデータは、例えば、著作権に係わるものである。
図5は、図4に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、アプリケーションプログラムAP_Sによって規定されている。
なお、図5に示す処理は、サーバ装置10のブートプログラムが規定してもよい。
ステップST1:
サーバ装置10のCPU23が、ユーザから指定されたアプリケーションプログラムAP_Sをメモリ22から読み出して実行する。
アプリケーションプログラムAP_Sは、例えば、所定のコンテンツデータを暗号化して送信するプログラムであり、これに対応した識別データAP_IDを持つプログラムとのみコンテンツデータを送受信するプログラムである。当該コンテンツデータは、例えば、著作権に係わるものである。
ステップ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に進み、そうでない場合には処理を終了かエラー処理を行う。
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に進み、そうでない場合には処理を終了かエラー処理を行う。
ステップST4:
CPU23は、インタフェース21を介してクライアント装置12_1から署名データSIGが付された証明データAP_CERを受信する。
証明データAP_CERは、例えば、後述するように、クライアント装置12_1で起動され、その正当性が確認されたアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュ値HASHを図6に示すように対応付けて示している。
CPU23は、インタフェース21を介してクライアント装置12_1から署名データSIGが付された証明データAP_CERを受信する。
証明データAP_CERは、例えば、後述するように、クライアント装置12_1で起動され、その正当性が確認されたアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュ値HASHを図6に示すように対応付けて示している。
ステップ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で暗号化する場合には、この乱数データを含んだデータに対するハッシュデータに対して暗号化を行う。
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で暗号化する場合には、この乱数データを含んだデータに対するハッシュデータに対して暗号化を行う。
ステップ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に送信する。
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に送信する。
〔クライアント装置12_1〕
図7は、図3に示すクライアント装置12_1の構成図である。
図7に示すように、クライアント装置12_1は、例えば、インタフェース31、メモリ32、CPU33およびセキュリティモジュール回路SMを有し、これらがデータ線30を介して接続されている。
ここで、インタフェース31が第3の発明のインタフェースに対応し、メモリ32が第5の発明のメモリに対応し、セキュリティモジュール回路SMが第5の発明の回路モジュールに対応し、CPU33が第5の発明の実行回路に対応している。
図7は、図3に示すクライアント装置12_1の構成図である。
図7に示すように、クライアント装置12_1は、例えば、インタフェース31、メモリ32、CPU33およびセキュリティモジュール回路SMを有し、これらがデータ線30を介して接続されている。
ここで、インタフェース31が第3の発明のインタフェースに対応し、メモリ32が第5の発明のメモリに対応し、セキュリティモジュール回路SMが第5の発明の回路モジュールに対応し、CPU33が第5の発明の実行回路に対応している。
インタフェース31は、ネットワーク9を介して、サーバ装置10およびクライアント装置12_2との間で通信を行う。
メモリ32は、アプリケーションプログラムAP_C1を記憶する。
メモリ32は、半導体メモリあるいはハードディスクドライブである。
セキュリティモジュール回路SMは、例えば、メモリ35および演算回路36を有する。
セキュリティモジュール回路SMは、耐タンパ性を有する回路であり、メモリ35の記憶データの改竄および監視、並びに演算回路36の処理の監視を防止する機能が備えられている。
耐タンパ性の回路は、外部からの当該回路に対する攻撃(内部データの不正読み出し、入力周波数や入力電圧を所定外に設定したりする攻撃)を加えたときに、誤動作や内部データの漏洩を起こさないように構成された回路である。具体的には、内部データの読み出しを防止するために、回路構成を多層構造とし、メモリを最下層に配置すると共に、上下層にダミー層(例えばアルミ層)を取り入れることで、外部からメモリ入出力I/Fに直接アクセスすることを困難にしている。また、耐タンパ性の回路周波数検知回路や電圧検知回路を備え、周波数や電圧が所定の範囲内にない場合に動作しなように構成されている。
メモリ32は、アプリケーションプログラムAP_C1を記憶する。
メモリ32は、半導体メモリあるいはハードディスクドライブである。
セキュリティモジュール回路SMは、例えば、メモリ35および演算回路36を有する。
セキュリティモジュール回路SMは、耐タンパ性を有する回路であり、メモリ35の記憶データの改竄および監視、並びに演算回路36の処理の監視を防止する機能が備えられている。
耐タンパ性の回路は、外部からの当該回路に対する攻撃(内部データの不正読み出し、入力周波数や入力電圧を所定外に設定したりする攻撃)を加えたときに、誤動作や内部データの漏洩を起こさないように構成された回路である。具体的には、内部データの読み出しを防止するために、回路構成を多層構造とし、メモリを最下層に配置すると共に、上下層にダミー層(例えばアルミ層)を取り入れることで、外部からメモリ入出力I/Fに直接アクセスすることを困難にしている。また、耐タンパ性の回路周波数検知回路や電圧検知回路を備え、周波数や電圧が所定の範囲内にない場合に動作しなように構成されている。
メモリ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を記憶する。
また、メモリ35は、サーバ装置10との通信などにより、サーバ装置10の公開鍵データPK_Sおよび公開鍵証明データPKC_Sを記憶する。
また、メモリ35は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。
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の起動の信頼性をさらに高めてもよい。
また、CPU33は、メモリ32からアプリケーションプログラムAP_C1を読み出し、これを実行する。
なお、上記セキュアな状態での読み出しを実現するために、CPU33とセキュリティモジュール回路SMとで共通の暗号鍵データを共有し、データ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとの間で相互認証を行い、互いに共有したセッション鍵データでデータ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとを1つのパッケージにモールドし、外部からデータ線30上のデータへのアクセスを防止するなどの手法が用いられる。
また、セキュリティモジュール回路SMを、他のクライアント装置に組み込むことを防止するために、クライアント装置12_1に装置固有のメモリデータ(ID、乱数、鍵などのデータ)を分散化して保持させ、起動時にセキュリティモジュール回路SMが上記メモリデータの検証を行うようにしてもよい。また、インタフェース31への入出力動作を複雑化するなどして、CPU33のブートメカニズムを複雑化し、許諾を受けた製造者のみが、そのメカニズムを知るようにすることで、ブ−トプログラムB_PRGの起動の信頼性をさらに高めてもよい。
CPU33は、クライアント装置12_1の動作を統括的に制御する。
CPU33が行う処理については、クライアント装置12_1の動作例と関連付けて説明する。
CPU33が行う処理については、クライアント装置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に進み、そうでない場合にはエラー処理を行う。
図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に進み、そうでない場合にはエラー処理を行う。
ステップST13:
クライアント装置12_1のCPU33が、データ線30を介して、メモリ35からブ−トプログラムB_PRGをセキュアな状態で読み出す。
ステップST14:
CPU33が、ステップST13で読み出したブ−トプログラムB_PRGを実行する。
ステップST15:
CPU33が、ブ−トプログラムB_PRGに従って、ユーザにより指定された複数のアプリケーションプログラムAP_C1のうち、未選択のアプリケーションプログラムAP_C1を選択する。
クライアント装置12_1のCPU33が、データ線30を介して、メモリ35からブ−トプログラムB_PRGをセキュアな状態で読み出す。
ステップST14:
CPU33が、ステップST13で読み出したブ−トプログラムB_PRGを実行する。
ステップST15:
CPU33が、ブ−トプログラムB_PRGに従って、ユーザにより指定された複数のアプリケーションプログラムAP_C1のうち、未選択のアプリケーションプログラムAP_C1を選択する。
ステップST16:
CPU33が、ステップST15で選択したアプリケーションプログラムAP_C1をメモリ32から読み出して、その正当性を検証する。
このとき、CPU33は、例えば、アプリケーションプログラムAP_C1のハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたアプリケーションプログラムAP_C1のハッシュデータとを比較し、一致していれば、メモリ32に記憶されているアプリケーションプログラムAP_C1が正当であると判断する。
また、CPU33は、アプリケーションプログラムAP_C1に対応付けられた所定の署名データを公開鍵データを基に検証してもよい。署名データSIGはアプリケーションプログラムAP_C1に付加されたり、別途メモリに保存されているようにしても良い。
CPU33が、ステップST15で選択したアプリケーションプログラムAP_C1をメモリ32から読み出して、その正当性を検証する。
このとき、CPU33は、例えば、アプリケーションプログラムAP_C1のハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたアプリケーションプログラムAP_C1のハッシュデータとを比較し、一致していれば、メモリ32に記憶されているアプリケーションプログラムAP_C1が正当であると判断する。
また、CPU33は、アプリケーションプログラムAP_C1に対応付けられた所定の署名データを公開鍵データを基に検証してもよい。署名データSIGはアプリケーションプログラムAP_C1に付加されたり、別途メモリに保存されているようにしても良い。
ステップ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に戻る。
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に戻る。
以下、図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に進み、そうでない場合には処理を終了する。
図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に進み、そうでない場合には処理を終了する。
ステップ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に送信する。
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に送信する。
以下、図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に進み、そうでない場合には処理を終了かエラー処理を行う。
図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に進み、そうでない場合には処理を終了かエラー処理を行う。
ステップ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に示すように、対応付けて示している。
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に示すように、対応付けて示している。
ステップST46:
CPU33は、ステップST44で受信した証明データAP_CER2の正当性を検証する。
このとき、CPU33は、例えば、証明データAP_CER2のハッシュデータをハッシュ関数を基に生成する。そして、CPU33は、上記生成したハッシュデータと、署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER2が改竄されていない正当なものであると判断する。
そして、CPU33は、証明データAP_CER2が正当であると判断した場合にステップST47に進み、そうでない場合に処理を終了するかエラー処理を行う。
CPU33は、ステップST44で受信した証明データAP_CER2の正当性を検証する。
このとき、CPU33は、例えば、証明データAP_CER2のハッシュデータをハッシュ関数を基に生成する。そして、CPU33は、上記生成したハッシュデータと、署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER2が改竄されていない正当なものであると判断する。
そして、CPU33は、証明データAP_CER2が正当であると判断した場合にステップST47に進み、そうでない場合に処理を終了するかエラー処理を行う。
ステップ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には著作権保護機能が備えられているため、その機能により、コンテンツデータの著作権が保護される。
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には著作権保護機能が備えられているため、その機能により、コンテンツデータの著作権が保護される。
なお、クライアント装置12_2は、上述したクライアント装置12_1と同じ構成を有している。
以下、図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を示す処理を行う。
クライアント装置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を示す処理を行う。
以上説明したように、通信システム1によれば、クライアント装置12_1,12_2の各々が自らが起動するアプリケーションプログラムAP_C1,AP_C2の正当性を検証し、その結果をそれぞれ示す証明データAP_CER1、AP_CER2をサーバ装置10に送信する。
そのため、サーバ装置10は、クライアント装置12_1,12_2が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置10の負荷を軽減できる。
そのため、サーバ装置10は、クライアント装置12_1,12_2が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置10の負荷を軽減できる。
また、通信システム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で起動されているアプリケーションプログラムの正当性を高い信頼性で判断できる。
また、通信システム1によれば、サーバ装置10は、クライアント装置12_1,12_2と相互認証を行ってから、署名付きの証明データAP_CERを受信し、その署名データSIGを検証するため、サーバ装置10は、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性を高い信頼性で判断できる。
また、通信システム1によれば、サーバ装置10とクライアント装置12_1,12_2との間のみならず、クライアント装置12_1と12_2との間でコンテンツデータを送受信する場合にも、クライアント装置12_1,12_2の一方は、他方で起動されているアプリケーションプログラムの正当性を小さな負荷で判断できる。
本発明は上述した実施形態には限定されない。
例えば、図11に示すように、クライアント装置12_1において、ブ−トプログラムB_PRGを耐タンパ性を有しないメモリ32に記憶してもよい。
この場合には、セキュリティモジュール回路SMがメモリ32からブ−トプログラムB_PRGを読み出し、演算回路36においてブ−トプログラムB_PRGの正当性を検証した後に、データ線30を介してCPU33に出力する。
なお、図11は、第4の発明の実施形態にである。
例えば、図11に示すように、クライアント装置12_1において、ブ−トプログラムB_PRGを耐タンパ性を有しないメモリ32に記憶してもよい。
この場合には、セキュリティモジュール回路SMがメモリ32からブ−トプログラムB_PRGを読み出し、演算回路36においてブ−トプログラムB_PRGの正当性を検証した後に、データ線30を介してCPU33に出力する。
なお、図11は、第4の発明の実施形態にである。
また、図9のステップST33あるいは図10のステップST43において、クライアント装置12_1のCPU33は、サーバ装置10あるいはクライアント装置12_2から受信したデータ(例えばクライアント装置12_2で生成した乱数など)と証明データAP_CERとによって構成されるデータに対してハッシュデータを生成して署名データSIGを生成してもよい。このようにすることで、一度通信に使われたデータを再利用されて不正を行うことを防止することができる。
このようにすることで、クライアント装置12_1が過去にやりとりした署名付きの証明データAP_CERを不正に利用してなりすましを行うことを防止できる。
このようにすることで、クライアント装置12_1が過去にやりとりした署名付きの証明データAP_CERを不正に利用してなりすましを行うことを防止できる。
また、上述した実施形態では、クライアント装置12_1がブ−トプログラムB_PRGに従って、証明データAP_CERを生成した場合を例示したが、ブ−トプログラムB_PRGが正当性を検証した他のプログラムが証明データAP_CERの生成を行ってもよい。
また、上述した実施形態において、ブ−トプログラムB_PRGの更新は、セキュリティモジュール回路SMの演算回路36が更新後のブ−トプログラムの正当性を検証した後に行うようにしてもよい。
また、上述した実施形態において、ブ−トプログラムB_PRGの更新は、セキュリティモジュール回路SMの演算回路36が更新後のブ−トプログラムの正当性を検証した後に行うようにしてもよい。
また、上述した相互認証は、公開鍵認証に限定されるのではなく、相互認証できる方法またはシステムであればどのような認証方法でもよい。
本発明は、通信先が起動するアプリケーションプログラムの正当性を判断するシステムに適用可能である。
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…証明データ
Claims (14)
- アプリケーションプログラムの管理をコンピュータに実行させるプログラムであって、
前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順と、
前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順と
を前記コンピュータに実行させるプログラム。 - 前記第1の手順で前記正当性であると判断された前記アプリケーションプログラムが、前記通信先から受信した前記データを利用する第3の手順
をさらに有する請求項1に記載のプログラム。 - 前記第1の手順は、前記アプリケーションプログラムが改竄されているか否かを検証し、改竄されていないと判断した場合に、前記識別データを示す前記証明データを生成する
請求項1に記載のプログラム。 - 前記第1の手順は、前記正当であると判断された前記アプリケーションプログラムのバ−ジョンデータおよびハッシュデータの少なくとも一つを、前記識別データに対応付けて示す前記証明データを生成する
請求項1に記載のプログラム。 - 前記第1の手順で生成した前記証明データに署名データを付加する第4の手順
をさらに有し、
前記第2の手順は、前記第4の手順で前記署名データが付加された前記証明データを前記通信先に送信する
請求項1に記載のプログラム。 - 前記第4の手順は、前記証明データと前記通信先から受信したデータとを含むデータに対して前記署名データを生成し、当該署名データが付加された前記証明データを前記通信先に送信する
請求項5に記載のプログラム。 - 記憶データの改竄および監視を防止する機能が備えられたメモリに記憶されており、
前記コンピュータによって前記メモリからセキュアな状態で読み出されて当該コンピュータに実行される
請求項1に記載のプログラム。 - 前記第1の手順は、前記証明データを前記メモリに書き込み、
前記第2の手順は、前記メモリから読み出した前記証明データを前記通信先に送信する
請求項7に記載のプログラム。 - 通信先へのデータ送信をコンピュータに実行させるプログラムであって、
前記通信先の正当性を認証する第1の手順と、
前記第1の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の手順と、
所望の識別データが、前記第2の手順で受信した前記証明データに含まれているか否かを判断する第3の手順と、
前記第3の手順で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の手順と
を前記コンピュータに実行させるプログラム。 - アプリケーションプログラムが記憶されたメモリと、
記憶データの改竄および監視を防止する機能が備えられ、ブ−トプログラムを記憶する回路モジュールと、
前記メモリから読み出した前記アプリケーションプログラムと、前記回路モジュールからセキュアな状態で読み出した前記ブ−トプログラムとを実行する実行回路と、
インタフェースと
を有するコンピュータであって、
前記実行回路は、前記回路モジュールからセキュアな状態で読み出された前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する
コンピュータ。 - アプリケーションプログラムおよびブ−トプログラムが記憶されたメモリと、
記憶データの改竄、並びに記憶データおよび内部処理の監視を防止する機能が備えられた回路モジュールと、
前記メモリから読み出した前記アプリケーションプログラムおよび前記ブ−トプログラムとを実行する実行回路と、
インタフェースと
を有するコンピュータであって、
前記回路モジュールは、前記メモリから読み出した前記ブ−トプログラムの正当性を検証した後に、当該ブ−トプログラムを前記実行回路にセキュアな状態で出力し、
前記実行回路は、前記回路モジュールから入力した前記ブ−トプログラムを実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを前記インタフェースを介して前記通信先に送信する
コンピュータ。 - プログラムが記憶されたメモリと、
前記メモリから読み出した前記プログラムを実行する実行回路と、
通信先で起動され当該通信先によって正当性が認められたアプリケーションプログラムの識別データを示す証明データを前記通信先から受信するインタフェースと
を有するコンピュータであって、
前記実行回路は、前記メモリから読み出したプログラムを実行し、当該プログラムに従って、前記インタフェースを介して通信先が正当であると認証したことを条件に、前記インタフェースを介して受信した前記証明データに所望の識別データが含まれているか否かを判断し、前記所望の識別データが含まれていると判断したことを条件に、前記インタフェースを介して前記通信先にデータを送信する
コンピュータ。 - アプリケーションプログラムの管理を行うコンピュータが行うデータ処理方法であって、
前記コンピュータが起動するアプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の工程と、
前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の工程で生成した前記証明データを送信する第2の工程と
を有するデータ処理方法。 - 通信先へのデータ送信をコンピュータが行うデータ処理方法であって、
前記通信先の正当性を認証する第1の工程と、
前記第1の工程で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第2の工程と、
所望の識別データが、前記第2の工程で受信した前記証明データに含まれているか否かを判断する第3の工程と、
前記第3の工程で前記所望の識別データが含まれていると判断したことを条件に、前記通信先にデータを送信する第4の工程と
を有するデータ処理方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004111426A JP2005293504A (ja) | 2004-04-05 | 2004-04-05 | プログラム、コンピュータおよびデータ処理方法 |
TW094110747A TW200607288A (en) | 2004-04-05 | 2005-04-04 | Program, computer, and data processing method |
KR1020057022195A KR20070009371A (ko) | 2004-04-05 | 2005-04-05 | 프로그램, 컴퓨터, 및 데이터 처리 방법 |
PCT/JP2005/006633 WO2005098640A1 (ja) | 2004-04-05 | 2005-04-05 | プログラム、コンピュータおよびデータ処理方法 |
CN200580000498.0A CN1806235A (zh) | 2004-04-05 | 2005-04-05 | 程序、计算机和数据处理方法 |
US10/557,169 US20070044160A1 (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 (ja) | 2004-04-05 | 2004-04-05 | プログラム、コンピュータおよびデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005293504A true JP2005293504A (ja) | 2005-10-20 |
Family
ID=35326329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004111426A Abandoned JP2005293504A (ja) | 2004-04-05 | 2004-04-05 | プログラム、コンピュータおよびデータ処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2005293504A (ja) |
CN (1) | CN1806235A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009301429A (ja) * | 2008-06-16 | 2009-12-24 | Ricoh Co Ltd | ソフトウェア改ざん検知方法、機器及び画像処理装置 |
WO2010103800A1 (ja) * | 2009-03-13 | 2010-09-16 | 株式会社オンサイト | サーバ、端末、プログラムおよびサービス提供方法 |
JP2012027887A (ja) * | 2010-03-09 | 2012-02-09 | On Site:Kk | サーバ、端末、プログラムおよびサービス提供方法 |
JP2015119357A (ja) * | 2013-12-18 | 2015-06-25 | トヨタ自動車株式会社 | 情報処理装置 |
JP2019022073A (ja) * | 2017-07-18 | 2019-02-07 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599709B (zh) * | 2015-10-15 | 2021-08-17 | 中兴通讯股份有限公司 | 一种防隐私信息泄露的方法、装置及终端 |
-
2004
- 2004-04-05 JP JP2004111426A patent/JP2005293504A/ja not_active Abandoned
-
2005
- 2005-04-05 CN CN200580000498.0A patent/CN1806235A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009301429A (ja) * | 2008-06-16 | 2009-12-24 | Ricoh Co Ltd | ソフトウェア改ざん検知方法、機器及び画像処理装置 |
WO2010103800A1 (ja) * | 2009-03-13 | 2010-09-16 | 株式会社オンサイト | サーバ、端末、プログラムおよびサービス提供方法 |
JP2012027887A (ja) * | 2010-03-09 | 2012-02-09 | On Site:Kk | サーバ、端末、プログラムおよびサービス提供方法 |
JP2015119357A (ja) * | 2013-12-18 | 2015-06-25 | トヨタ自動車株式会社 | 情報処理装置 |
JP2019022073A (ja) * | 2017-07-18 | 2019-02-07 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN1806235A (zh) | 2006-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI735691B (zh) | 資料金鑰的保護方法、裝置和系統 | |
JP6151402B2 (ja) | データセンタへのプラットフォームの内包検証 | |
US8150039B2 (en) | Single security model in booting a computing device | |
Anati et al. | Innovative technology for CPU based attestation and sealing | |
JP4906854B2 (ja) | 情報処理装置、情報記録装置、情報処理システム、プログラムアップデート方法、プログラムおよび集積回路 | |
JP4638912B2 (ja) | ディストリビューションcdを使用した、署名されたグループにおけるダイレクトプルーフの秘密鍵を装置に伝達する方法 | |
CN109639427B (zh) | 一种数据发送的方法及设备 | |
JP5136012B2 (ja) | データ送付方法 | |
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 (ja) | プログラム、コンピュータおよびデータ処理方法 | |
US20050283826A1 (en) | Systems and methods for performing secure communications between an authorized computing platform and a hardware component | |
JP2008506338A (ja) | 配布cdを用いて直接証明秘密鍵を装置に配布する方法 | |
JP2010514000A (ja) | 電子装置にプログラム状態データをセキュアに記憶するための方法 | |
US20070277037A1 (en) | Software component authentication via encrypted embedded self-signatures | |
JP2017011491A (ja) | 認証システム | |
WO2011150650A1 (zh) | 密钥授权信息管理方法及装置 | |
JP4998314B2 (ja) | 通信制御方法および通信制御プログラム | |
JP2005293504A (ja) | プログラム、コンピュータおよびデータ処理方法 | |
JP2005215945A (ja) | 情報処理装置、ソフトウェアの実行を許可する記憶装置、および、ソフトウェア実行方法 | |
JP4337608B2 (ja) | プログラム、コンピュータおよびデータ処理方法 | |
JP2005301531A (ja) | プログラム、コンピュータおよびデータ処理方法 | |
KR20070019790A (ko) | 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법 | |
WO2010109560A1 (ja) | 半導体メモリ、当該半導体メモリと結合されるコンピュータマシン、及び、そのデータ処理方法 |
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 |