JP2004227410A - モバイルエージェントシステム、及びモバイルエージェント方法、その方法をコンピュータに実行させるプログラムを記録した記録媒体 - Google Patents
モバイルエージェントシステム、及びモバイルエージェント方法、その方法をコンピュータに実行させるプログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2004227410A JP2004227410A JP2003016366A JP2003016366A JP2004227410A JP 2004227410 A JP2004227410 A JP 2004227410A JP 2003016366 A JP2003016366 A JP 2003016366A JP 2003016366 A JP2003016366 A JP 2003016366A JP 2004227410 A JP2004227410 A JP 2004227410A
- Authority
- JP
- Japan
- Prior art keywords
- agent
- security
- mobile agent
- information
- computer
- 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.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
【課題】エージェントがセキュリティ情報を保持している場合において、ホストの不正を防止しつつセキュリティ処理を実行できるモバイルエージェントシステムを提供する。
【解決手段】複数のコンピュータをネットワークを介して接続し、 [STEP▲1▼]利用者(コンピュータ)の生成APはプラットフォーム内の各種手段を用いてエージェントAPとセキュリティ処理手段とセキュリティ情報を保持するセキュリティ情報保存手段からなるエージェントを生成し、ホスト(コンピュータ)へエージェントを送信し、[STEP▲2▼]ホストはエージェントを受信して処理を行い、処理結果と処理結果の正当性を検証するための検証情報を生成して利用者に送信し、[STEP▲3▼]利用者は処理結果と検証情報を受信し、処理結果と検証情報と制約条件と公開情報(検証者が知りうる情報)を用いて、検証を行う。
【選択図】図8
【解決手段】複数のコンピュータをネットワークを介して接続し、 [STEP▲1▼]利用者(コンピュータ)の生成APはプラットフォーム内の各種手段を用いてエージェントAPとセキュリティ処理手段とセキュリティ情報を保持するセキュリティ情報保存手段からなるエージェントを生成し、ホスト(コンピュータ)へエージェントを送信し、[STEP▲2▼]ホストはエージェントを受信して処理を行い、処理結果と処理結果の正当性を検証するための検証情報を生成して利用者に送信し、[STEP▲3▼]利用者は処理結果と検証情報を受信し、処理結果と検証情報と制約条件と公開情報(検証者が知りうる情報)を用いて、検証を行う。
【選択図】図8
Description
【0001】
【発明の属する技術分野】
本発明は、モバイルエージェント(以下、単に「エージェント」と呼ぶ)システム、方法、およびエージェントとエージェント実行環境(以下、これを「プラットフォーム」と呼ぶ)を記録した記録媒体に関し、特にエージェントに、署名鍵などのセキュリティ情報とそのセキュリティ情報を用いた署名生成などのセキュリティ処理手段を保持させ、あるプラットフォームを備えるコンピュータから別のプラットフォームを備えるコンピュータに送信し、送信先のコンピュータのプラットフォーム上で、セキュリティ処理を施す手段を提供するエージェントシステム、方法およびエージェント方法を実行させるプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
インターネットを利用した各種処理を、利用者に代わって処理させるエージェントシステムについて、図1〜図5を参照して簡単に説明する。各図中斜線になっている部分をエージェントシステムを実現する部分とする。
利用者(コンピュータ)とサービス提供者(ホストコンピュータ)が存在するネットワーク環境を考える。利用者及びホストは、プラットフォームを保持している(図1参照)。利用者は、あるタスク(処理)を代行するエージェントを生成する(図2参照)。利用者は、生成したエージェントをホストのうちの一つに送信する(図3参照)。エージェントを受け取ったホストはエージェントをプラットフォーム上で実行し、必要があれば別のホストに送信する(図4参照)。次にエージェントを受け取った別のホストは前のホストと同様に、エージェントをプラットフォーム上で実行し、必要があれば別のホストに(図示せず)、あるいは、利用者に送信する(図5参照)。利用者はこのエージェントを受け取り、処理結果を得る(図5参照)。
(参考資料1:「モバイルエージェントの性能比較」関口真良 2000年10月4日http://seckey.net/docs/agent/20001004/rejime.html )
【0003】
特に、エージェントが秘密情報を所持し、その秘密情報に基づいて各種のセキュリティ処理を行うことができれば、例えば、決済文書への電子署名の付与を代行させるなど、利用者にとって有益である。しかし、エージェントに署名鍵などのセキュリティ情報を所持させ、署名生成などのセキュリティ処理を代行させることは、ホストの不正が可能となり安全性の観点から問題があった。
この問題点に対しては、(1)ハードウェアを用いた対策と(2)ソフトウェアを用いた対策が検討・提案されてきた。(1)はエージェント(プログラムおよびデータ)を暗号化して送信し、送信先のコンピュータの耐タンパなハードウェア(解析されにくいハードウェア)上で復号し実行するという対策である。(2)としては、主に、以下の3つが考えられる(参考資料2:耐タンパ・移動エージェントの調査研究報告書 報告第I部「耐タンパ・ソフトウェア技術の移動エージェントへの応用に関する調査報告」第1版:岩井俊弥、栗山健、文武、溝口文雄 平成11年2月26日 ”3.エージェントの保護技術について”I−8〜I−22頁 http://www.isdnet.co.jp/IPA/IPA−REPORT1.PDF)。それは、(2−1)プログラムのアルゴリズム自体の暗号化、(2−2)プログラムの難読化(プログラムのリバースエンジニアリングを防ぐ手法の一つで、通常の実行プログラムを解析することが困難なプログラムに変換する手法)、(2−3)秘密情報分離方式(署名生成などのセキュリティ処理を行う安全な環境を別途設置し、その安全な環境との通信を行いつつ、秘密にしたい署名鍵等のセキュリティ情報をそこに預け、その機構に署名生成などのセキュリティ処理をしてもらう)などである。
【0004】
【発明が解決しようとする課題】
エージェントシステムにおいて、エージェントが所持する署名鍵などのセキュリティ情報が盗用され、利用者の意に反した不正な契約文書に、利用者の望まない署名が施され、不正な契約が成立してしまうなどの危険が生じる恐れがある。その理由は、署名鍵などのセキュリティ情報をエージェントが保持しているため、移動先のコンピュータ上で、ホストがエージェントを解析することにより、入手可能なためである。
(1)においては、特殊なハードウェアを用いるのはコストの面から課題が多く、実際には現実的でない。
【0005】
(従来の技術)で述べた解決手段(1),(2−1),(2−2),(2−3)には下記のような課題が存在する。
また、(2−1)の方式は、暗号化できるアルゴリズム、すなわち、実行できるプログラムの範囲が限定されており、応用可能な範囲も限定される。一方、(2−3)は、利用者のコンピュータ以外に、安全な環境を設置する必要があり、利用者のコストを増大させるという問題がある。また(2−2)については、署名鍵などのセキュリティ情報をプログラム内に埋め込んで難読化することにより、その署名鍵を用いた署名生成などのセキュリティ処理を(2−3)の問題点を生じることなく実行可能だが、一定期間を過ぎた後、難読化が解除され、この署名鍵などのセキュリティ情報が漏洩し、このセキュリティ情報を利用して、利用者の不利益となる結果を生成するセキュリティ処理を実行される恐れがあった。本発明の目的は、エージェントが署名生成などのセキュリティ処理に必要な署名鍵などのセキュリティ情報を保持している場合において、ホストの不正を防止しつつセキュリティ処理を実行できるエージェントシステム、方法およびエージェント方法を実行させるプログラムを記録した記録媒体を提供することにある。
【0006】
【課題を解決するための手段】
本発明の提案するエージェントシステムは、利用者(コンピュータ)と複数のホスト(コンピュータ)をネットワークを介して接続して構成し、利用者(コンピュータ)とホスト(コンピュータ)はプラットフォーム(及びOS)からなる(図1参照)。
プラットフォームは、図6に示すように(斜線部分が特許請求の範囲の構成要件を示し、点線の枠で囲まれた部分は特許請求の範囲外の構成要件を示す)
・セキュリティ処理手段/セキュリティ情報生成手段と、
・エージェント難読化手段と、
・制約条件設定手段と、
・制約条件付き公開鍵証明書発行手段と、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段と、
を備える。
【0007】
(ここで、
制約条件とは:エージェントAP(Application)実行結果あるいはセキュリティ処理結果、あるいは、エージェントを受け取った時(検証時)の時間が満たすべき条件のこと
証明書とは:当該セキュリティ処理の結果が制約条件を満たしているかどうかを検証するために必要となる情報のこと
エージェント難読化手段とは:アプリケーション開発者が開発したエージェント生成APによって生成されたエージェントAPと、セキュリティ情報と、セキュリティ処理手段と、セキュリティ情報保存手段にセキュリティ情報を格納したものと、をまとめて難読化したもの(以下、この難読化されたプログラムを「エージェント」と呼ぶ)を生成する手段のこと
検証手段とは:セキュリティ処理の結果が制約条件を満たすかどうかを確認する手段のこと)
エージェントは、図7に示すように(斜線部分が特許請求の範囲の構成要件を示す)
・アプリケーション開発者が開発したエージェント生成APによって生成されたエージェントAP(これは特許請求の範囲の構成要件ではない)と、
・セキュリティ処理手段と、
・セキュリティ情報保存手段と、
を備える。
(ここで、
セキュリティ処理手段とは:プラットフォーム上で行うセキュリティ情報を用いたセキュリティ処理(署名生成、署名検証、暗号化、復号など)を行う手段のこと)
従来技術とは、電子署名用の署名鍵などのセキュリティ情報をプログラムに保持させ、そのセキュリティ情報をある一定の期間難読化して安全に保持させ、その難読化が解除された場合でもそのセキュリティ情報を用いた電子署名などのセキュリティ処理によって生成されたセキュリティ処理結果は、ある制約条件の範囲内でしか効力を持たせないようにしたところが異なる。
【0008】
【発明の実施の形態】
(実施の形態1)
次に、本発明の実施の形態1について図8〜図13を参照して詳細に説明する。
利用者のコンピュータは、図9に示すように
・エージェント生成アプリケーション(以下、「生成AP」と呼ぶ。これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発可能な部分である)と、
・プラットフォームと、
が存在し、
プラットフォームは、
・セキュリティ処理手段/セキュリティ情報生成手段と、
・エージェント難読化手段と、
・制約条件設定手段と、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段と、
から構成されており、生成APが上記のプラットフォームを利用してエージェントを作成し、そのエージェントをホストに送信し、ホスト上でエージェントを実行するという実施の形態を考える。
【0009】
ここで、エージェントは、図10に示すように
・エージェントAP(これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発したエージェント生成APによって生成されるAPである)と、
・セキュリティ処理手段と、
・セキュリティ情報保存手段と、
から構成されており、
ホストのプラットフォームは、図11に示すように
・エージェント実行手段(これは特許請求の範囲の構成要件ではない)
から構成されている。
【0010】
これらの手段を用いた一連の処理の概略を図8を用いて説明する。
[STEP▲1▼]利用者の生成APはプラットフォーム内の各種手段を用いてエージェントAPとセキュリティ処理手段とセキュリティ情報からなるエージェントを生成し、ホストへエージェントを送信し、[STEP▲2▼]ホストはエージェントを受信して処理を行い、処理結果に対して処理結果の正当性を検証するための検証情報(以下、「検証情報」と呼ぶ)を生成して、処理結果と検証情報を利用者に送信し、[STEP▲3▼]利用者は処理結果と検証情報を受信し、処理結果と検証情報を用いて、検証を行う。
【0011】
次に、図9〜図12及び図13のデータフローを参照して本発明の実施の形態1の全体動作について詳細に説明する。
[STEP▲1▼] 利用者はエージェント生成APを用いて、以下の処理を行う(図9参照)。
(▲1▼−1)エージェントプログラム{AP(x),m}(AP(x):プログラム、m:入力値、以下、「エージェントAP」と呼ぶ)を生成する。
(▲1▼−2)セキュリティ情報生成手段を用いて、エージェントAPの使用するセキュリティ処理手段が使用するセキュリティ情報(以下、「SEC」と呼ぶ)を生成する。
(▲1▼−3)セキュリティ処理手段の生成手段を用いて、エージェントAPの使用するセキュリティ処理手段S(SEC,y)を設定する。
(▲1▼−4)エージェント難読化手段を用いて、S(SEC,y)とSECとエージェントAP:[AP(x),m]をまとめたものを難読化する(この難読化されたものをエージェント:Aとする)。
(図9においては難読化手段を用いた難読化処理は図示していない。)
(▲1▼−5)制約条件設定手段を用いて、制約条件Rを設定しておく。
(▲1▼−6)エージェントA:[[AP(x),m],S(SEC,y),SEC]をホストに送信する。
【0012】
[STEP▲2▼]
ホストは以下の処理を行う(図10,図11)
エージェント:Aを実行する(図10)。
エージェント:Aは以下の処理を行う。
(▲2▼−1)エージェントAP実行後、処理(実行)結果AP(m)に、セキュリティ処理手段を用いてエージェントAP内部に保持しているセキュリティ情報(SEC)を用いてセキュリティ処理を行い、検証情報、すなわち、S(SEC,AP(m))を生成する(図11)。
(▲2▼−2) 実行済みエージェントA’:[AP(m),S(SEC,AP(m))]を利用者に送信する。
【0013】
[STEP▲3▼]
利用者は生成APを用いて、以下の処理を行う(図12)。
(▲3▼−1)制約条件付きセキュリティ処理結果検証手段を用いて、エージェントの所持するエージェントAPの処理結果AP(m)(以下、「処理結果」と呼ぶ)と処理結果にセキュリティ処理を施したものS(SEC,AP(m))(以下、「検証情報」と呼ぶ)と、制約条件付きセキュリティ処理結果検証手段が所持するS(SEC,y)、SECから、検証情報が正しいことを検証する。すなわち、ホストによって処理結果が偽造あるいは改竄されていないかどうかを、検証する。
(▲3▼−2)次に、処理結果、検証情報、およびそれらを受け取った時間などが制約条件付きセキュリティ処理結果検証手段が所持する制約条件Rの範囲内に入っているかどうかを、検証する。
【0014】
図13に実施の形態1の詳細なデータ処理フローを示す。
次に、本発明の実施の形態1の効果について説明する。
本実施の形態では、エージェントにセキュリティ情報(ここでは、SECのこと)を持たせ、ホスト上で処理結果に対して処理結果の対となる検証情報を付加することができるように構成されているため、セキュリティ情報が漏洩しない期間(難読化が有効な期間)、ホストが不正に計算結果を偽造したり改竄することができない。また、難読化が無効になり、ホストがセキュリティ情報を用いて、処理結果の偽造を行ったとしても、それを受け取った利用者は、制約条件Rとして処理結果や検証情報を受け取る時間を難読化が無効になる期間内に定めておけば、難読化が無効となった以降は制約条件Rを満たしていないことから、その結果を拒否することができる。
【0015】
(実施の形態1(依頼計算))
次に具体的な実施例を用いて本発明の実施の形態の動作を説明する。
具体例として、図14〜図19を用いて、利用者が計算式と入力値を作成し、計算の代行者がその計算を代行するという、「依頼計算モデル」を挙げる。
図14に示すように、依頼計算の概要は次のとおりである。
[STEP▲1▼]利用者は、ある計算式を生成し、この計算式と入力値と検証情報生成手段を保持するエージェント:Aを計算の代行者に送信する。[STEP▲2▼]計算の代行者は、この計算をプラットフォーム上で計算し、検証情報を生成し、その計算結果と検証情報を、利用者に実行済みエージェント:A’として返信する。[STEP▲3▼]利用者は、計算結果を保持するエージェントAPを受信し、代行者が正しく計算したことを検証する。
【0016】
次に、具体的な実施例の詳細な手順について説明する。
[STEP▲1▼]
利用者は、依頼計算エージェント生成APを用いて、以下を行う(図15)。
(▲1▼−1)依頼計算エージェントAPを、計算式:関数F(x)、入力値mとして生成する。
(▲1▼−2)エージェントが保持するセキュリティ処理手段をh(SEC,y)とする。ここで、h(x)とは、xに対してハッシュ関数を施したものである。(ハッシュ関数に関しては、「参考文献1:「PKI 公開鍵インフラストラクチャの概念、標準、展開」カーライル・アダムズ+スティーブ・ロイド著、鈴木優一訳、ピアソンエデュケーション、ISBN4−89471−248−2の第19頁参照)
(▲1▼−3)セキュリティ情報生成手段を用いて一時的な秘密情報SEC=kを生成する。(▲1▼−4)F(x),m,h(SEC,y),SECを、エージェント難読化手段を用いて難読化する(この難読化されたものをエージェント:Aとする)。
(▲1▼−5)制約条件設定手段を用いて、制約条件Rを、t<LTとしておく。ここで、tは検証時の時刻、LTは難読化が解除される時間とする。
(▲1▼−6)エージェント:Aを代行者に送信する。
【0017】
[STEP▲2▼]
代行者は、以下の処理を行う(図16、図17)
エージェント:Aを実行させる。
エージェント:Aは以下の処理を行う。
(▲2▼−1)依頼計算エージェントAP処理実行後、処理結果F(m)に、セキュリティ処理手段S=h(SEC,F(m))を用いて、エージェント内部に保持しているセキュリティ情報(SEC=k)を用いてセキュリティ処理(S=h(k,F(m)))を行う。
(▲2▼−2)実行済みエージェントA’:[F(m),h(k,F(m)]を利用者に送信する。
【0018】
[STEP▲3▼]
利用者は依頼計算エージェント生成APを用いて、以下の処理を行う(図18)。(すなわち、制約条件付きセキュリティ処理結果検証手段を用いて、下記を検証する。)
(▲3▼−1)生成APは、エージェントAPが持って帰ってきたF(m)と自ら保持するSEC=kから、h(k,F(m))を計算し、エージェントAPが持ってきたh(k,F(m))と比較する。これが一致すれば、第1段階の検証が成功する。
(▲3▼−2)次に、生成APは、現在、この計算結果を受け取った時間Tが、T≦LTであることを検証する。T>LTだった場合は、検証が失敗することとする。
以上により、一定期間LT以内であれば、難読化が解読させる(すなわち、SEC=kがホストによって解析され、任意の処理結果F’に対して、h(k,F’)を生成される)ことはないので、この検証により、代行者が正しく計算したことを確認可能である。
図19に実施の形態1(依頼計算)の詳細なデータ処理フローを示す。
【0019】
(実施の形態2)
次に、本発明の実施の形態2について図20〜図25を参照して詳細に説明する。
利用者のコンピュータは、図21に示すように
・生成AP(これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発可能な部分である)と、
・プラットフォームと、
が存在し、プラットフォームは、
・セキュリティ処理手段/セキュリティ情報生成手段と、
・エージェント難読化手段と、
・制約条件設定手段と、
・制約条件付き公開鍵証明書発行手段と、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段と、
から構成されており、生成APが上記のプラットフォームを利用してエージェントを作成し、そのエージェントを複数のホストで巡回させ、各ホスト上でエージェントを実行するという実施の形態を考える。
エージェントは、図22に示すように
・エージェントAP(これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発したエージェント生成APによって生成されるAPである)と、
・セキュリティ処理手段と、
・セキュリティ情報保存手段と、
から構成されており、
ホストのプラットフォームは、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段(これは特許請求の範囲の構成要件ではない)と、
から構成されている。
【0020】
これらの手段を用いた一連の処理の概略を図20を用いて説明する。
[STEP▲1▼]利用者は、利用者コンピュータ内のプラットフォームの各種手段を用いてエージェントを生成し、エージェントの署名(そのエージェントが、利用者によって正しく認定されたものかどうかを検証するめの検証情報)を生成し、ホスト1に送信し、[STEP▲2▼]ホストjは、ホストj−1(但し、ホスト0は利用者をサス者とする)から受け取ったエージェントとエージェントの署名(そのエージェントが利用者によって正しく認定されたものか、改竄されていないかなどの検証するための検証情報)を用いて検証し、正しければエージェントを実行し、エージェントAP処理後、処理結果を保持する新たなエージェントに対してそのエージェントの署名を生成し、ホストjからホストj+1(但し、ホストN+1は利用者を指すものとする)に送信する(j=1,・・・,N)。[STEP▲3▼]利用者は、最終的な処理結果を保持するエージェントANとその署名SNを受信し、検証を行ったのち、処理結果A(m1,・・・,mN)を得る。
【0021】
次に、図21〜図24及び図25のデータフローを参照して本実施の形態の全体の動作について詳細に説明する。
前提として、認証機関(CA)が存在し、CAが公開鍵ペア(公開鍵,私有鍵)=(PKCA,SKCA)を保持し、CAの公開鍵PKCAに対する公開鍵証明書CERT={PKCA,Sig(SKCA,PKCA)}が設定されているものとする。また、この公開鍵証明書CERTは、利用者及びすべてのホストが保持しているものとする。(「認証機関(CA)」、「公開鍵ペア」、「公開鍵」、「私有鍵」、「公開鍵証明書」などの専門用語は、参考文献1の第16頁参照)。
ここで、Sig(SKCA,x)とは、私有鍵SKCAを用いて、h(x)を暗号化したものである。また、利用者Uは、公開鍵ペア(公開鍵,秘密鍵)=(PKU,SKU)を保持し、利用者の公開鍵PKUに対する公開鍵証明書CE={PKU,Sig(SKCA,PKU}が設定されているものとする。(一般に公開鍵証明書の中には公開鍵以外の情報が複数入っているが、ここでは簡単のために公開鍵のみを記述する。)
【0022】
[STEP▲1▼]
利用者は生成APを用いて、以下の処理を行う(図21)。
(▲1▼−1)エージェントAP:AP0=[AP(x1,・・・,xN),m1,・・・,mN]を生成する。
(▲1▼−2)セキュリティ処理手段S(SEC,y)を設定する。
(▲1▼−3)セキュリティ情報生成手段を用いて、公開鍵ペア(公開鍵,私有鍵)=(pk,sk)を生成し、セキュリティ情報をSEC=skとする。
(▲1▼−4)制約条件設定手段を用いて、制約条件Rを設定しておく。
(▲1▼−5)制約条件付き公開鍵証明書発行手段により、制約条件付き公開鍵証明書Cert={pk,R,Sig(SKU,{pk,R})}を生成する。ここで、Sig(SKU,y)とは、利用者の秘密鍵SKUを用いて、h({PUB,R})を暗号化したものである。
(▲1▼−6)エージェント難読化手段を用いて、PUB={CE,Cert}、エージェントAP、S(SEC,y)、SECをまとめたものを難読化する(この難読化されたものをエージェント:A0とする)。
(▲1▼−7)エージェントに対する署名S0=Sig(sk,A0)(以下、「エージェント署名」と呼ぶ)を生成する。
(▲1▼−8)A0、S0をホスト1に送信する。
【0023】
[STEP▲2▼]
j番目(j=1,・・・,N)のホスト:Hjは以下の処理を行う(図22,図23)。
(▲2▼−1)制約条件付きセキュリティ処理結果検証手段を用いて、ホストj−1(但し、ホスト0は利用者を指すものとする)から受け取ったエージェント:Aj−1とエージェント署名:Sj−1を用いて検証する。検証手順は以下のとおりである。(全て正しければ検証成功とする)
・h(Aj−1)とSj−1をCert内のpkで復号した値、が等しい
・h({pk,R})と、Sig(SKU,{pk,R})をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・エージェントAj−1、エージェント署名Sj−1、およびこれらを受け取った時間などが制約条件Rの範囲内である。
(▲2▼−2)検証が成功すればエージェントの実行を許可する。
エージェントは、j番目(j=1,・・・,N−1)のホスト上で、以下の処理を行う。
(▲2▼−3)エージェントAPを実行する(APjの生成)。
APj={AP(m1,・・・,mj,xj+1,・・・,xN),mj+1,・・・,mN}
(▲2▼−4)エージェントAPの処理結果を含む新たなエージェント:Ajに対してそのエージェント署名:Sj=Sig(sk,Aj)を生成する。
(▲2▼−5)ホストj+1(但し、ホストN+1は利用者を指すものとする)にAj、Sjを送信する。(j=1,・・・,N)
【0024】
[STEP▲3▼]
利用者は生成APを用いて、以下の処理を行う(図24)。
最終的な処理結果(実行済み)を保持するエージェント:ANとANのエージェント署名:SNを受信し、制約条件付きセキュリティ処理結果検証手段を用いて検証を行った後(検証方法は、Hjと同様)、処理結果:A(m1,・・・,mN)を得る。
図25に実施の形態2の詳細なデータ処理フローを示す。
次に、本発明の実施の形態2の効果について説明する。
本実施の形態では、各ホストが制約条件付きセキュリティ処理結果検証手段を備えているため、各ホストも(エージェントを生成した利用者でなくても)、エージェントの正当性、すなわち、受信したエージェントが送信した前のホストによって不正に改竄されていないかどうかを(難読化が有効な期間は)検証可能である。
【0025】
(実施の形態2(協力計算))
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
図26〜図31を参照して一連の処理の概略を説明する。
[STEP▲1▼]利用者は、利用者コンピュータ端末内のプラットフォームの各種手段を用いて協力計算エージェントを生成し、エージェントの署名も生成し協力者1に送信し、[STEP▲2▼]協力者jは、協力者j−1から受け取ったエージェントとエージェントの署名を用いて検証し、正しければエージェントを実行させ、協力者jの分担する計算後、計算結果を保持する新たなエージェントに対してそのエージェントの署名を生成させ、協力者jから協力者j+1に送信させ(j=1,・・・,N−1)、但し協力者Nは利用者に送信させ、[STEP▲3▼]最終的な計算結果を保持するエージェントANとその署名SNを受信し、検証を行ったのち、計算結果F(m1,・・・,mN)を得る。
【0026】
次に、図27〜図30及び図31のデータフローを参照して本実施の形態2の全体の動作について詳細に説明する。
[STEP▲1▼]
利用者は協力計算エージェント生成APを用いて、以下の処理を行う(図27,図28)。
(▲1▼−1)協力計算エージェントAP:F0=[F(x1,・・・,xN),m1,・・・,mN]を生成する。
(▲1▼−2)セキュリティ処理手段S(SEC,y)=Sig(SEC,y)を設定する。
(▲1▼−3)セキュリティ情報生成手段を用いて、公開鍵ペア(公開鍵,私有鍵)=(pk,sk)を生成し、セキュリティ情報SECをSEC=skとする。
(▲1▼−4)制約条件設定手段を用いて、制約条件R={t<LT}と設定する。
(▲1▼−5)制約条件付き公開鍵証明書発行手段により、制約条件付き公開鍵証明書Cert={pk,R,Sig(SKU,{pk,R})}を生成する。
(▲1▼−6)エージェント難読化手段を用いて、PUB={CE,Cert}、協力計算エージェントAP、Sig(SEC,y),SECをまとめたものを難読化する(この難読化されたものをエージェント:A0とする)。
(▲1▼−7)S0=Sig(sk,A0)を生成する。
(▲1▼−8)A0,S0を協力者1に送信する。
【0027】
[STEP▲2▼]
j番目の協力者Hj(j=1,・・・,N)は以下の処理を行う(図29)。
(▲2▼−1)制約条件付きセキュリティ処理結果検証手段を用いて、協力者j−1(但し、協力者0は利用者を指すものとする)から受け取ったエージェントAj−1とエージェント署名Sj−1を用いて検証する。検証手順は以下のとおりである。(全て正しければ検証成功とする)
・h(Aj−1)と、Sj−1をCert内のpkで復号した値、が等しい
・h({pk,R})と、Sig(SKU,{pk,R})をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・エージェントAj−1を受け取った時間TがCertに記述されている制約条件R={t<LT}を満たす
(▲2▼−2)検証に成功すればエージェントの実行を許可する。
エージェントは、j番目の協力者のプラットフォーム上で、以下の処理を行う。
(▲2▼−3)エージェントAPを実行する(Fjの生成)。
Fj={F(m1,・・・,mj,xj+1,・・・,xN),mj+1,・・・,mN}
(▲2▼−4)エージェントAPの処理結果を含む新たなエージェント:Ajに対してそのエージェントの署名Sj=Sig(sk,Aj)を生成する。
(▲2▼−5)協力者j+1(但し、協力者N+1は利用者を指すものとする)にAj、Sjを送信する(j=1,・・・,N)。
【0028】
[STEP▲3▼]
利用者は生成APを用いて、以下の処理を行う(図30)。
・最終的な処理結果を保持するエージェント:ANとそのエージェント署名:SNを受信し、制約条件付きセキュリティ処理結果検証手段を用いて検証を行ったのち(検証方法は協力者jと同様)、処理結果:F(m1,・・・,mN)を得る。
以上により、一定期間LT以内であれば、難読化が解読される(SEC=skが協力者によって解析され、任意の処理結果:F’に対して、検証情報:Sig(sk,F’)を生成される)ことはないので、ここで検証すれば、協力者が正しく計算したことを確認することができる。
【0029】
図31に実施の形態2(協力計算)の詳細なデータ処理フローを示す。
(実施の形態2(SET応用型代理電子商取引))
(SETについては「Visa International and MasterCard International,”Secure Electronic Transaction(SET) Specification ,” Version 1.0,http:// www.setco.org/set specifications.html, 1997 」を参照のこと)
次に、実施の形態2に対して、図32〜図41を参照して第2の具体的な実施例を説明する。
【0030】
一連の処理の概略を図32を用いて説明する。
[STEP▲1▼]
利用者は、SET応用型代理電子商取引エージェント生成APを用いて以下を行う。
利用者コンピュータ内のプラットフォームの各種手段を用いてSET応用型代理電子商取引エージェントを生成し、商店1へ送信し、
[STEP▲2▼]
商店jは、エージェントに商品情報とこの商店が利用している決済機関情報をエージェントに教えて、そのエージェントを商店j+1に送信する(j=1,・・・,N)。但し、エージェントが商店Nに到達している場合は、STEP▲3▼に進む。
[STEP▲3▼]
エージェントは、商店M1〜MNのうち利用者にとって最も望ましい商店(これをMαとする)での購入を決定し、SETのPURCHASEREQと同等のメッセージを作成し、これを商店Mαに送信する。商店Mαは、SETと同様に、注文情報と暗号化された支払い情報を受信し、注文情報の付与された、エージェントの署名をチェックする。(本来のSETでは、利用者の署名が付与されているが、この例では。エージェントの署名鍵skを用いて署名を施し、その対となる公開鍵に対して、制限付き証明書を発行することにより、その制限内で利用者の署名付与と同等の効力を持たせている)。検証後、商店Mαは、決済機関β(商店αの決済機関を決済機関βとする)に、利用者の信用情報を確認するためのメッセージ(AUTHREQ)を作成し、これをエージェントに送付する。
【0031】
[STEP▲4▼]
エージェントは、決済機関βにAUTHRESを送付し、その結果、AUTHRESを受信する。
[STEP▲5▼]
エージェントは、商店αにAUTHRESを送信し、その返答PURCHRESを受信する。[STEP▲6▼]
エージェントは、利用者コンピュータ内の、SET応用型代理電子商取引エージェント生成APのPURCHRESを送信する。
【0032】
次に、図33〜図40及び図41のデータ処理フローを参照して本実施の全体の動作について説明する。
前提として、決済機関:PGの公開鍵ペア(公開鍵,私有鍵)=[PKPG,SKPG]とする。利用者は、NPG個のPGの公開鍵を知っているものとする。
また、下記の記法を用いるものとする。
EPANi=E(PKPG,{tk,Cert,PAN})
E(k,x):暗号鍵kを用いて、xを暗号化することを表す。
tk:一時的な秘密鍵(対象鍵)暗号の秘密鍵
EPIHj=E(tk,{PIH,h(PAN),DS[PI]}
0I:注文情報(商品名、数量、合計金額)
PIH:合計金額
PAN:カード情報(カード番号、有効期限)
PI:{PIH,h(PAN)}:決済情報
0Iα:商店Mαに対する注文情報
PIα:商店Mαに対する決済情報
DS[0I]=[h(PI),Sig(SEC,[h(h(0I),h(PI))])]
DS[PI]=[h(0I),Sig(SEC,[h(h(0I),h(PI))])]
【0033】
[STEP▲1▼]
利用者はSET応用型代理電子商取引エージェント生成APを用いて、以下の処理を行う(図33,図34)。
(▲1▼−1)tk,EPANi(i=1,・・・,NPG)を生成し、代理電子商取引APを生成する。
(▲1▼−2)セキュリティ処理手段S(SEC,[OI,PI]=[DS[OI],DS[PI]]を設定する。
(▲1▼−3)セキュリティ情報生成手段を用いて、公開鍵ぺア(公開鍵,私有鍵)=(pk,sk)を生成し、SEC=skとする。
(▲1▼−4)制約条件設定手段を用いて、制約条件R=[t<LT]と設定する。
(▲1▼−5)制約条件付き公開鍵証明書発行手段により、制約条件付き公開鍵証明書Cert=[pk,R,Sig(SKU,[pk,R])]を生成する。
(▲1▼−6)エージェント難読化手段を用いて、PUB=[CE,Cert]、SET応用型電子商取引エージェントAP、S(SEC,y)、SECをまとめたものを難読化する。
【0034】
[STEP▲2▼]
商店jは、以下の処理を行う(図35)。
エージェントを実行する。
エージェントは、商店Mj上で以下の処理を行う(図36)。
(▲2▼−1)商品情報と商店Mjが利用している決済機関PGの情報を要求し、その情報を入手する
(▲2▼−2)商店j+1にエージェントを送付する。もし、エージェントが現在、商店MNに居るならば以下の処理を行う。
(▲2▼−3)商店M1〜MNの中で最も条件の良い商店を決定し、注文情報0Iαと決済情報PIα=[PIHα,h(PAN)]を作成する。よって、このとき、決済機関PGαも決定する。
(▲2▼−4)S(SEC,[OIα,PIα])によりデュアル署名DS[0Iα]およびDS[PIα]を作成する。
(▲2▼−5)EPIβ=E(tk,[PIHα,h(PAN)],DS[PIα])を作成する。
(▲2▼−6)PUB,0Iα,DS[0Iα],EPANβ,EPIβを商店Mαに送付する。
【0035】
[STEP▲3▼]
商店MαのSET応用型商店APは以下の処理を行う(図37)。
(▲3▼−1)0Iα,DS[0Iα]から、デュアル署名の検証を行う。ここで、検証は、下記のとおりである。
・h(h(0Iα),h(PIα))と、DS[0I]内のSig(sk,[h(h(OI),H(PI))])を、Cert内のpkで復号した値、が等しい
・h([pk,R])と、Sig(SKU,[pk,R])をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・0Iα等を受け取った時間TがCertに記述されている制約条件R=[t<LT]を満たす(▲3▼−2)検証が成功すればEPANβ、EPIHβを含む、AUTHREQ’を作成し、エージェントに送付する
【0036】
[STEP▲4▼]
エージェントは、決済機関PGβに移動し、以下の処理を行う(図38)
(▲4▼−1)AUTHREQ’を決済機関PGβに送付する
決済機関PGβのSET応用型決済機関APは、以下の処理を行う(図38)
(▲4▼−2)EPANβを、PGSKで復号し、tk,Cert,PANを得る。
(▲4▼−3)EPIβを、tkで復号し、PIα、DS[PIα]を得る。
(▲4▼−4)PIα、DS[PIα]から、デュアル署名の検証を行う。ここで、検証は下記の通りである。
・h(h(0Iα),h(PIα))と、DS[PIα]内の、Sig(sk,[h(h(OI),h(PI))])をCert内のpkで復号した値、が等しい
・h([pk,R])と、Sig(SKU,[pk,R])をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・PIαを受け取った時間TがCertに記述されている制約条件R=[t<LT]を満たす
(▲4▼−5)検証が成功すればPANを、決済機関の信頼のネットワークに問い合わせ、PANが正しいことをチェックする
(▲4▼−6)このチェックが正しければ、AUTHRESを作成し、エージェントに送付する
【0037】
[STEP▲5▼]
エージェントは、商店Mαに移動し、以下の処理を行う(図39)。
(▲5▼−1)AUTHRESを商店αに送付する
商店αは、以下の処理を行う(図39)
(▲5▼−2)PURCHRESをエージェントに送付する
【0038】
[STEP▲6▼]
エージェントは、利用者端末に移動し、以下の処理を行う(図40)。
・PURCHRESを、利用者端末のSET応用型代理電子商取引生成APに送付する
図41に実施の形態2(SET応用型代理電子商取引)の詳細なデータ処理フローを示す。
【0039】
【発明の効果】
第1の効果は、利用者が、ある条件を設定してモバイルエージェントを別のプラットフォームを備えたコンピュータに送付すれば、後の処理はモバイルエージェントが、署名生成などのセキュリティ処理時に逐一利用者に確認せずに、利用者の代わりに処理することが可能となり、利用者の利便性が向上することである。その理由は、モバイルエージェントが、署名生成などのセキュリティ処理のための署名鍵などのセキュリティ情報を有しているからである。
第2の効果は、モバイルエージェントが解析され、セキュリティ情報が漏洩した後でも、このセキュリティ情報を用いて、利用者の不利益となるセキュリティ処理を実施される恐れを無くしたことである。その理由は、モバイルエージェントが所持する署名鍵などのセキュリティ情報が、ある制約条件の範囲内でしか効力もたないので、その範囲外でセキュリティ情報を用いて行ったセキュリティ処理は無効となるからである。
【図面の簡単な説明】
【図1】従来のモバイルエージェントの概要(ネットワーク構成)を説明する図。
【図2】従来のモバイルエージェントの概要(エージェントの生成)を説明する図。
【図3】従来のモバイルエージェントの概要(エージェントの移動実行その1)を説明する図。
【図4】従来のモバイルエージェントの概要(エージェントの移動実行その2)を説明する図。
【図5】従来のモバイルエージェントの概要(エージェントの移動結果取得)を説明する図。
【図6】本発明のプラットフォームの構成例を示す図。
【図7】本発明のエージェントの構成例を示す図。
【図8】本発明の実施の形態1の処理の概略を説明する図。
【図9】本発明の実施の形態1の詳細手順[STEP▲1▼]を説明する図。
【図10】本発明の実施の形態1の詳細手順[STEP▲2▼]その1を説明する図(その1)。
【図11】本発明の実施の形態1の詳細手順[STEP▲2▼]その2を説明する図(その2)。
【図12】本発明の実施の形態1の詳細手順[STEP▲3▼]を説明する図。
【図13】本発明の実施の形態1の詳細なデータ処理フローを示す図。
【図14】本発明の実施の形態1(依頼計算)の処理の概略を説明する図。
【図15】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲1▼]を説明する図(その1)。
【図16】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲2▼]その1を説明する図。
【図17】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲2▼]その2を説明する図。
【図18】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲3▼]を説明する図。
【図19】本発明の実施の形態1(依頼計算)の詳細なデータ処理フローを示す図。
【図20】本発明の実施の形態2の処理の概略を説明する図。
【図21】本発明の実施の形態2の詳細手順[STEP▲1▼]を説明する図。
【図22】本発明の実施の形態2の詳細手順[STEP▲2▼](その1)を説明する図。
【図23】本発明の実施の形態2の詳細手順[STEP▲2▼](その2)を説明する図(その2)。
【図24】本発明の実施の形態2の詳細手順[STEP▲3▼]を説明する図。
【図25】本発明の実施の形態2の詳細なデータ処理フローを示す図。
【図26】本発明の実施の形態2(協力計算)の処理の概略を説明する図。
【図27】本発明の実施の形態2(協力計算)の詳細手順[STEP▲1▼](その1)を説明する図。
【図28】本発明の実施の形態2(協力計算)の詳細手順[STEP▲1▼](その2)を説明する図。
【図29】本発明の実施の形態2(協力計算)の詳細手順[STEP▲2▼]を説明する図。
【図30】本発明の実施の形態2(協力計算)の詳細手順[STEP▲3▼]を説明する図。
【図31】本発明の実施の形態2(協力計算)の詳細なデータ処理フローを示す図。
【図32】本発明の実施の形態2(SET応用型代理電子商取引)の処理の概略を説明する図。
【図33】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲1▼](その1)を説明する図。
【図34】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲1▼](その2)を説明する図。
【図35】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲2▼](その1)を説明する図。
【図36】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲2▼](その2)を説明する図。
【図37】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲3▼]を説明する図。
【図38】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲4▼]を説明する図。
【図39】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲5▼]を説明する図。
【図40】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲6▼]を説明する図。
【図41】本発明の実施の形態2(SET応用型代理電子商取引)の詳細なデータ処理フローを示す図。
【発明の属する技術分野】
本発明は、モバイルエージェント(以下、単に「エージェント」と呼ぶ)システム、方法、およびエージェントとエージェント実行環境(以下、これを「プラットフォーム」と呼ぶ)を記録した記録媒体に関し、特にエージェントに、署名鍵などのセキュリティ情報とそのセキュリティ情報を用いた署名生成などのセキュリティ処理手段を保持させ、あるプラットフォームを備えるコンピュータから別のプラットフォームを備えるコンピュータに送信し、送信先のコンピュータのプラットフォーム上で、セキュリティ処理を施す手段を提供するエージェントシステム、方法およびエージェント方法を実行させるプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
インターネットを利用した各種処理を、利用者に代わって処理させるエージェントシステムについて、図1〜図5を参照して簡単に説明する。各図中斜線になっている部分をエージェントシステムを実現する部分とする。
利用者(コンピュータ)とサービス提供者(ホストコンピュータ)が存在するネットワーク環境を考える。利用者及びホストは、プラットフォームを保持している(図1参照)。利用者は、あるタスク(処理)を代行するエージェントを生成する(図2参照)。利用者は、生成したエージェントをホストのうちの一つに送信する(図3参照)。エージェントを受け取ったホストはエージェントをプラットフォーム上で実行し、必要があれば別のホストに送信する(図4参照)。次にエージェントを受け取った別のホストは前のホストと同様に、エージェントをプラットフォーム上で実行し、必要があれば別のホストに(図示せず)、あるいは、利用者に送信する(図5参照)。利用者はこのエージェントを受け取り、処理結果を得る(図5参照)。
(参考資料1:「モバイルエージェントの性能比較」関口真良 2000年10月4日http://seckey.net/docs/agent/20001004/rejime.html )
【0003】
特に、エージェントが秘密情報を所持し、その秘密情報に基づいて各種のセキュリティ処理を行うことができれば、例えば、決済文書への電子署名の付与を代行させるなど、利用者にとって有益である。しかし、エージェントに署名鍵などのセキュリティ情報を所持させ、署名生成などのセキュリティ処理を代行させることは、ホストの不正が可能となり安全性の観点から問題があった。
この問題点に対しては、(1)ハードウェアを用いた対策と(2)ソフトウェアを用いた対策が検討・提案されてきた。(1)はエージェント(プログラムおよびデータ)を暗号化して送信し、送信先のコンピュータの耐タンパなハードウェア(解析されにくいハードウェア)上で復号し実行するという対策である。(2)としては、主に、以下の3つが考えられる(参考資料2:耐タンパ・移動エージェントの調査研究報告書 報告第I部「耐タンパ・ソフトウェア技術の移動エージェントへの応用に関する調査報告」第1版:岩井俊弥、栗山健、文武、溝口文雄 平成11年2月26日 ”3.エージェントの保護技術について”I−8〜I−22頁 http://www.isdnet.co.jp/IPA/IPA−REPORT1.PDF)。それは、(2−1)プログラムのアルゴリズム自体の暗号化、(2−2)プログラムの難読化(プログラムのリバースエンジニアリングを防ぐ手法の一つで、通常の実行プログラムを解析することが困難なプログラムに変換する手法)、(2−3)秘密情報分離方式(署名生成などのセキュリティ処理を行う安全な環境を別途設置し、その安全な環境との通信を行いつつ、秘密にしたい署名鍵等のセキュリティ情報をそこに預け、その機構に署名生成などのセキュリティ処理をしてもらう)などである。
【0004】
【発明が解決しようとする課題】
エージェントシステムにおいて、エージェントが所持する署名鍵などのセキュリティ情報が盗用され、利用者の意に反した不正な契約文書に、利用者の望まない署名が施され、不正な契約が成立してしまうなどの危険が生じる恐れがある。その理由は、署名鍵などのセキュリティ情報をエージェントが保持しているため、移動先のコンピュータ上で、ホストがエージェントを解析することにより、入手可能なためである。
(1)においては、特殊なハードウェアを用いるのはコストの面から課題が多く、実際には現実的でない。
【0005】
(従来の技術)で述べた解決手段(1),(2−1),(2−2),(2−3)には下記のような課題が存在する。
また、(2−1)の方式は、暗号化できるアルゴリズム、すなわち、実行できるプログラムの範囲が限定されており、応用可能な範囲も限定される。一方、(2−3)は、利用者のコンピュータ以外に、安全な環境を設置する必要があり、利用者のコストを増大させるという問題がある。また(2−2)については、署名鍵などのセキュリティ情報をプログラム内に埋め込んで難読化することにより、その署名鍵を用いた署名生成などのセキュリティ処理を(2−3)の問題点を生じることなく実行可能だが、一定期間を過ぎた後、難読化が解除され、この署名鍵などのセキュリティ情報が漏洩し、このセキュリティ情報を利用して、利用者の不利益となる結果を生成するセキュリティ処理を実行される恐れがあった。本発明の目的は、エージェントが署名生成などのセキュリティ処理に必要な署名鍵などのセキュリティ情報を保持している場合において、ホストの不正を防止しつつセキュリティ処理を実行できるエージェントシステム、方法およびエージェント方法を実行させるプログラムを記録した記録媒体を提供することにある。
【0006】
【課題を解決するための手段】
本発明の提案するエージェントシステムは、利用者(コンピュータ)と複数のホスト(コンピュータ)をネットワークを介して接続して構成し、利用者(コンピュータ)とホスト(コンピュータ)はプラットフォーム(及びOS)からなる(図1参照)。
プラットフォームは、図6に示すように(斜線部分が特許請求の範囲の構成要件を示し、点線の枠で囲まれた部分は特許請求の範囲外の構成要件を示す)
・セキュリティ処理手段/セキュリティ情報生成手段と、
・エージェント難読化手段と、
・制約条件設定手段と、
・制約条件付き公開鍵証明書発行手段と、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段と、
を備える。
【0007】
(ここで、
制約条件とは:エージェントAP(Application)実行結果あるいはセキュリティ処理結果、あるいは、エージェントを受け取った時(検証時)の時間が満たすべき条件のこと
証明書とは:当該セキュリティ処理の結果が制約条件を満たしているかどうかを検証するために必要となる情報のこと
エージェント難読化手段とは:アプリケーション開発者が開発したエージェント生成APによって生成されたエージェントAPと、セキュリティ情報と、セキュリティ処理手段と、セキュリティ情報保存手段にセキュリティ情報を格納したものと、をまとめて難読化したもの(以下、この難読化されたプログラムを「エージェント」と呼ぶ)を生成する手段のこと
検証手段とは:セキュリティ処理の結果が制約条件を満たすかどうかを確認する手段のこと)
エージェントは、図7に示すように(斜線部分が特許請求の範囲の構成要件を示す)
・アプリケーション開発者が開発したエージェント生成APによって生成されたエージェントAP(これは特許請求の範囲の構成要件ではない)と、
・セキュリティ処理手段と、
・セキュリティ情報保存手段と、
を備える。
(ここで、
セキュリティ処理手段とは:プラットフォーム上で行うセキュリティ情報を用いたセキュリティ処理(署名生成、署名検証、暗号化、復号など)を行う手段のこと)
従来技術とは、電子署名用の署名鍵などのセキュリティ情報をプログラムに保持させ、そのセキュリティ情報をある一定の期間難読化して安全に保持させ、その難読化が解除された場合でもそのセキュリティ情報を用いた電子署名などのセキュリティ処理によって生成されたセキュリティ処理結果は、ある制約条件の範囲内でしか効力を持たせないようにしたところが異なる。
【0008】
【発明の実施の形態】
(実施の形態1)
次に、本発明の実施の形態1について図8〜図13を参照して詳細に説明する。
利用者のコンピュータは、図9に示すように
・エージェント生成アプリケーション(以下、「生成AP」と呼ぶ。これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発可能な部分である)と、
・プラットフォームと、
が存在し、
プラットフォームは、
・セキュリティ処理手段/セキュリティ情報生成手段と、
・エージェント難読化手段と、
・制約条件設定手段と、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段と、
から構成されており、生成APが上記のプラットフォームを利用してエージェントを作成し、そのエージェントをホストに送信し、ホスト上でエージェントを実行するという実施の形態を考える。
【0009】
ここで、エージェントは、図10に示すように
・エージェントAP(これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発したエージェント生成APによって生成されるAPである)と、
・セキュリティ処理手段と、
・セキュリティ情報保存手段と、
から構成されており、
ホストのプラットフォームは、図11に示すように
・エージェント実行手段(これは特許請求の範囲の構成要件ではない)
から構成されている。
【0010】
これらの手段を用いた一連の処理の概略を図8を用いて説明する。
[STEP▲1▼]利用者の生成APはプラットフォーム内の各種手段を用いてエージェントAPとセキュリティ処理手段とセキュリティ情報からなるエージェントを生成し、ホストへエージェントを送信し、[STEP▲2▼]ホストはエージェントを受信して処理を行い、処理結果に対して処理結果の正当性を検証するための検証情報(以下、「検証情報」と呼ぶ)を生成して、処理結果と検証情報を利用者に送信し、[STEP▲3▼]利用者は処理結果と検証情報を受信し、処理結果と検証情報を用いて、検証を行う。
【0011】
次に、図9〜図12及び図13のデータフローを参照して本発明の実施の形態1の全体動作について詳細に説明する。
[STEP▲1▼] 利用者はエージェント生成APを用いて、以下の処理を行う(図9参照)。
(▲1▼−1)エージェントプログラム{AP(x),m}(AP(x):プログラム、m:入力値、以下、「エージェントAP」と呼ぶ)を生成する。
(▲1▼−2)セキュリティ情報生成手段を用いて、エージェントAPの使用するセキュリティ処理手段が使用するセキュリティ情報(以下、「SEC」と呼ぶ)を生成する。
(▲1▼−3)セキュリティ処理手段の生成手段を用いて、エージェントAPの使用するセキュリティ処理手段S(SEC,y)を設定する。
(▲1▼−4)エージェント難読化手段を用いて、S(SEC,y)とSECとエージェントAP:[AP(x),m]をまとめたものを難読化する(この難読化されたものをエージェント:Aとする)。
(図9においては難読化手段を用いた難読化処理は図示していない。)
(▲1▼−5)制約条件設定手段を用いて、制約条件Rを設定しておく。
(▲1▼−6)エージェントA:[[AP(x),m],S(SEC,y),SEC]をホストに送信する。
【0012】
[STEP▲2▼]
ホストは以下の処理を行う(図10,図11)
エージェント:Aを実行する(図10)。
エージェント:Aは以下の処理を行う。
(▲2▼−1)エージェントAP実行後、処理(実行)結果AP(m)に、セキュリティ処理手段を用いてエージェントAP内部に保持しているセキュリティ情報(SEC)を用いてセキュリティ処理を行い、検証情報、すなわち、S(SEC,AP(m))を生成する(図11)。
(▲2▼−2) 実行済みエージェントA’:[AP(m),S(SEC,AP(m))]を利用者に送信する。
【0013】
[STEP▲3▼]
利用者は生成APを用いて、以下の処理を行う(図12)。
(▲3▼−1)制約条件付きセキュリティ処理結果検証手段を用いて、エージェントの所持するエージェントAPの処理結果AP(m)(以下、「処理結果」と呼ぶ)と処理結果にセキュリティ処理を施したものS(SEC,AP(m))(以下、「検証情報」と呼ぶ)と、制約条件付きセキュリティ処理結果検証手段が所持するS(SEC,y)、SECから、検証情報が正しいことを検証する。すなわち、ホストによって処理結果が偽造あるいは改竄されていないかどうかを、検証する。
(▲3▼−2)次に、処理結果、検証情報、およびそれらを受け取った時間などが制約条件付きセキュリティ処理結果検証手段が所持する制約条件Rの範囲内に入っているかどうかを、検証する。
【0014】
図13に実施の形態1の詳細なデータ処理フローを示す。
次に、本発明の実施の形態1の効果について説明する。
本実施の形態では、エージェントにセキュリティ情報(ここでは、SECのこと)を持たせ、ホスト上で処理結果に対して処理結果の対となる検証情報を付加することができるように構成されているため、セキュリティ情報が漏洩しない期間(難読化が有効な期間)、ホストが不正に計算結果を偽造したり改竄することができない。また、難読化が無効になり、ホストがセキュリティ情報を用いて、処理結果の偽造を行ったとしても、それを受け取った利用者は、制約条件Rとして処理結果や検証情報を受け取る時間を難読化が無効になる期間内に定めておけば、難読化が無効となった以降は制約条件Rを満たしていないことから、その結果を拒否することができる。
【0015】
(実施の形態1(依頼計算))
次に具体的な実施例を用いて本発明の実施の形態の動作を説明する。
具体例として、図14〜図19を用いて、利用者が計算式と入力値を作成し、計算の代行者がその計算を代行するという、「依頼計算モデル」を挙げる。
図14に示すように、依頼計算の概要は次のとおりである。
[STEP▲1▼]利用者は、ある計算式を生成し、この計算式と入力値と検証情報生成手段を保持するエージェント:Aを計算の代行者に送信する。[STEP▲2▼]計算の代行者は、この計算をプラットフォーム上で計算し、検証情報を生成し、その計算結果と検証情報を、利用者に実行済みエージェント:A’として返信する。[STEP▲3▼]利用者は、計算結果を保持するエージェントAPを受信し、代行者が正しく計算したことを検証する。
【0016】
次に、具体的な実施例の詳細な手順について説明する。
[STEP▲1▼]
利用者は、依頼計算エージェント生成APを用いて、以下を行う(図15)。
(▲1▼−1)依頼計算エージェントAPを、計算式:関数F(x)、入力値mとして生成する。
(▲1▼−2)エージェントが保持するセキュリティ処理手段をh(SEC,y)とする。ここで、h(x)とは、xに対してハッシュ関数を施したものである。(ハッシュ関数に関しては、「参考文献1:「PKI 公開鍵インフラストラクチャの概念、標準、展開」カーライル・アダムズ+スティーブ・ロイド著、鈴木優一訳、ピアソンエデュケーション、ISBN4−89471−248−2の第19頁参照)
(▲1▼−3)セキュリティ情報生成手段を用いて一時的な秘密情報SEC=kを生成する。(▲1▼−4)F(x),m,h(SEC,y),SECを、エージェント難読化手段を用いて難読化する(この難読化されたものをエージェント:Aとする)。
(▲1▼−5)制約条件設定手段を用いて、制約条件Rを、t<LTとしておく。ここで、tは検証時の時刻、LTは難読化が解除される時間とする。
(▲1▼−6)エージェント:Aを代行者に送信する。
【0017】
[STEP▲2▼]
代行者は、以下の処理を行う(図16、図17)
エージェント:Aを実行させる。
エージェント:Aは以下の処理を行う。
(▲2▼−1)依頼計算エージェントAP処理実行後、処理結果F(m)に、セキュリティ処理手段S=h(SEC,F(m))を用いて、エージェント内部に保持しているセキュリティ情報(SEC=k)を用いてセキュリティ処理(S=h(k,F(m)))を行う。
(▲2▼−2)実行済みエージェントA’:[F(m),h(k,F(m)]を利用者に送信する。
【0018】
[STEP▲3▼]
利用者は依頼計算エージェント生成APを用いて、以下の処理を行う(図18)。(すなわち、制約条件付きセキュリティ処理結果検証手段を用いて、下記を検証する。)
(▲3▼−1)生成APは、エージェントAPが持って帰ってきたF(m)と自ら保持するSEC=kから、h(k,F(m))を計算し、エージェントAPが持ってきたh(k,F(m))と比較する。これが一致すれば、第1段階の検証が成功する。
(▲3▼−2)次に、生成APは、現在、この計算結果を受け取った時間Tが、T≦LTであることを検証する。T>LTだった場合は、検証が失敗することとする。
以上により、一定期間LT以内であれば、難読化が解読させる(すなわち、SEC=kがホストによって解析され、任意の処理結果F’に対して、h(k,F’)を生成される)ことはないので、この検証により、代行者が正しく計算したことを確認可能である。
図19に実施の形態1(依頼計算)の詳細なデータ処理フローを示す。
【0019】
(実施の形態2)
次に、本発明の実施の形態2について図20〜図25を参照して詳細に説明する。
利用者のコンピュータは、図21に示すように
・生成AP(これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発可能な部分である)と、
・プラットフォームと、
が存在し、プラットフォームは、
・セキュリティ処理手段/セキュリティ情報生成手段と、
・エージェント難読化手段と、
・制約条件設定手段と、
・制約条件付き公開鍵証明書発行手段と、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段と、
から構成されており、生成APが上記のプラットフォームを利用してエージェントを作成し、そのエージェントを複数のホストで巡回させ、各ホスト上でエージェントを実行するという実施の形態を考える。
エージェントは、図22に示すように
・エージェントAP(これは特許請求の範囲の構成要件ではなく、アプリケーション開発者が任意に開発したエージェント生成APによって生成されるAPである)と、
・セキュリティ処理手段と、
・セキュリティ情報保存手段と、
から構成されており、
ホストのプラットフォームは、
・制約条件付きセキュリティ処理結果検証手段と、
・エージェント実行手段(これは特許請求の範囲の構成要件ではない)と、
から構成されている。
【0020】
これらの手段を用いた一連の処理の概略を図20を用いて説明する。
[STEP▲1▼]利用者は、利用者コンピュータ内のプラットフォームの各種手段を用いてエージェントを生成し、エージェントの署名(そのエージェントが、利用者によって正しく認定されたものかどうかを検証するめの検証情報)を生成し、ホスト1に送信し、[STEP▲2▼]ホストjは、ホストj−1(但し、ホスト0は利用者をサス者とする)から受け取ったエージェントとエージェントの署名(そのエージェントが利用者によって正しく認定されたものか、改竄されていないかなどの検証するための検証情報)を用いて検証し、正しければエージェントを実行し、エージェントAP処理後、処理結果を保持する新たなエージェントに対してそのエージェントの署名を生成し、ホストjからホストj+1(但し、ホストN+1は利用者を指すものとする)に送信する(j=1,・・・,N)。[STEP▲3▼]利用者は、最終的な処理結果を保持するエージェントANとその署名SNを受信し、検証を行ったのち、処理結果A(m1,・・・,mN)を得る。
【0021】
次に、図21〜図24及び図25のデータフローを参照して本実施の形態の全体の動作について詳細に説明する。
前提として、認証機関(CA)が存在し、CAが公開鍵ペア(公開鍵,私有鍵)=(PKCA,SKCA)を保持し、CAの公開鍵PKCAに対する公開鍵証明書CERT={PKCA,Sig(SKCA,PKCA)}が設定されているものとする。また、この公開鍵証明書CERTは、利用者及びすべてのホストが保持しているものとする。(「認証機関(CA)」、「公開鍵ペア」、「公開鍵」、「私有鍵」、「公開鍵証明書」などの専門用語は、参考文献1の第16頁参照)。
ここで、Sig(SKCA,x)とは、私有鍵SKCAを用いて、h(x)を暗号化したものである。また、利用者Uは、公開鍵ペア(公開鍵,秘密鍵)=(PKU,SKU)を保持し、利用者の公開鍵PKUに対する公開鍵証明書CE={PKU,Sig(SKCA,PKU}が設定されているものとする。(一般に公開鍵証明書の中には公開鍵以外の情報が複数入っているが、ここでは簡単のために公開鍵のみを記述する。)
【0022】
[STEP▲1▼]
利用者は生成APを用いて、以下の処理を行う(図21)。
(▲1▼−1)エージェントAP:AP0=[AP(x1,・・・,xN),m1,・・・,mN]を生成する。
(▲1▼−2)セキュリティ処理手段S(SEC,y)を設定する。
(▲1▼−3)セキュリティ情報生成手段を用いて、公開鍵ペア(公開鍵,私有鍵)=(pk,sk)を生成し、セキュリティ情報をSEC=skとする。
(▲1▼−4)制約条件設定手段を用いて、制約条件Rを設定しておく。
(▲1▼−5)制約条件付き公開鍵証明書発行手段により、制約条件付き公開鍵証明書Cert={pk,R,Sig(SKU,{pk,R})}を生成する。ここで、Sig(SKU,y)とは、利用者の秘密鍵SKUを用いて、h({PUB,R})を暗号化したものである。
(▲1▼−6)エージェント難読化手段を用いて、PUB={CE,Cert}、エージェントAP、S(SEC,y)、SECをまとめたものを難読化する(この難読化されたものをエージェント:A0とする)。
(▲1▼−7)エージェントに対する署名S0=Sig(sk,A0)(以下、「エージェント署名」と呼ぶ)を生成する。
(▲1▼−8)A0、S0をホスト1に送信する。
【0023】
[STEP▲2▼]
j番目(j=1,・・・,N)のホスト:Hjは以下の処理を行う(図22,図23)。
(▲2▼−1)制約条件付きセキュリティ処理結果検証手段を用いて、ホストj−1(但し、ホスト0は利用者を指すものとする)から受け取ったエージェント:Aj−1とエージェント署名:Sj−1を用いて検証する。検証手順は以下のとおりである。(全て正しければ検証成功とする)
・h(Aj−1)とSj−1をCert内のpkで復号した値、が等しい
・h({pk,R})と、Sig(SKU,{pk,R})をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・エージェントAj−1、エージェント署名Sj−1、およびこれらを受け取った時間などが制約条件Rの範囲内である。
(▲2▼−2)検証が成功すればエージェントの実行を許可する。
エージェントは、j番目(j=1,・・・,N−1)のホスト上で、以下の処理を行う。
(▲2▼−3)エージェントAPを実行する(APjの生成)。
APj={AP(m1,・・・,mj,xj+1,・・・,xN),mj+1,・・・,mN}
(▲2▼−4)エージェントAPの処理結果を含む新たなエージェント:Ajに対してそのエージェント署名:Sj=Sig(sk,Aj)を生成する。
(▲2▼−5)ホストj+1(但し、ホストN+1は利用者を指すものとする)にAj、Sjを送信する。(j=1,・・・,N)
【0024】
[STEP▲3▼]
利用者は生成APを用いて、以下の処理を行う(図24)。
最終的な処理結果(実行済み)を保持するエージェント:ANとANのエージェント署名:SNを受信し、制約条件付きセキュリティ処理結果検証手段を用いて検証を行った後(検証方法は、Hjと同様)、処理結果:A(m1,・・・,mN)を得る。
図25に実施の形態2の詳細なデータ処理フローを示す。
次に、本発明の実施の形態2の効果について説明する。
本実施の形態では、各ホストが制約条件付きセキュリティ処理結果検証手段を備えているため、各ホストも(エージェントを生成した利用者でなくても)、エージェントの正当性、すなわち、受信したエージェントが送信した前のホストによって不正に改竄されていないかどうかを(難読化が有効な期間は)検証可能である。
【0025】
(実施の形態2(協力計算))
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
図26〜図31を参照して一連の処理の概略を説明する。
[STEP▲1▼]利用者は、利用者コンピュータ端末内のプラットフォームの各種手段を用いて協力計算エージェントを生成し、エージェントの署名も生成し協力者1に送信し、[STEP▲2▼]協力者jは、協力者j−1から受け取ったエージェントとエージェントの署名を用いて検証し、正しければエージェントを実行させ、協力者jの分担する計算後、計算結果を保持する新たなエージェントに対してそのエージェントの署名を生成させ、協力者jから協力者j+1に送信させ(j=1,・・・,N−1)、但し協力者Nは利用者に送信させ、[STEP▲3▼]最終的な計算結果を保持するエージェントANとその署名SNを受信し、検証を行ったのち、計算結果F(m1,・・・,mN)を得る。
【0026】
次に、図27〜図30及び図31のデータフローを参照して本実施の形態2の全体の動作について詳細に説明する。
[STEP▲1▼]
利用者は協力計算エージェント生成APを用いて、以下の処理を行う(図27,図28)。
(▲1▼−1)協力計算エージェントAP:F0=[F(x1,・・・,xN),m1,・・・,mN]を生成する。
(▲1▼−2)セキュリティ処理手段S(SEC,y)=Sig(SEC,y)を設定する。
(▲1▼−3)セキュリティ情報生成手段を用いて、公開鍵ペア(公開鍵,私有鍵)=(pk,sk)を生成し、セキュリティ情報SECをSEC=skとする。
(▲1▼−4)制約条件設定手段を用いて、制約条件R={t<LT}と設定する。
(▲1▼−5)制約条件付き公開鍵証明書発行手段により、制約条件付き公開鍵証明書Cert={pk,R,Sig(SKU,{pk,R})}を生成する。
(▲1▼−6)エージェント難読化手段を用いて、PUB={CE,Cert}、協力計算エージェントAP、Sig(SEC,y),SECをまとめたものを難読化する(この難読化されたものをエージェント:A0とする)。
(▲1▼−7)S0=Sig(sk,A0)を生成する。
(▲1▼−8)A0,S0を協力者1に送信する。
【0027】
[STEP▲2▼]
j番目の協力者Hj(j=1,・・・,N)は以下の処理を行う(図29)。
(▲2▼−1)制約条件付きセキュリティ処理結果検証手段を用いて、協力者j−1(但し、協力者0は利用者を指すものとする)から受け取ったエージェントAj−1とエージェント署名Sj−1を用いて検証する。検証手順は以下のとおりである。(全て正しければ検証成功とする)
・h(Aj−1)と、Sj−1をCert内のpkで復号した値、が等しい
・h({pk,R})と、Sig(SKU,{pk,R})をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・エージェントAj−1を受け取った時間TがCertに記述されている制約条件R={t<LT}を満たす
(▲2▼−2)検証に成功すればエージェントの実行を許可する。
エージェントは、j番目の協力者のプラットフォーム上で、以下の処理を行う。
(▲2▼−3)エージェントAPを実行する(Fjの生成)。
Fj={F(m1,・・・,mj,xj+1,・・・,xN),mj+1,・・・,mN}
(▲2▼−4)エージェントAPの処理結果を含む新たなエージェント:Ajに対してそのエージェントの署名Sj=Sig(sk,Aj)を生成する。
(▲2▼−5)協力者j+1(但し、協力者N+1は利用者を指すものとする)にAj、Sjを送信する(j=1,・・・,N)。
【0028】
[STEP▲3▼]
利用者は生成APを用いて、以下の処理を行う(図30)。
・最終的な処理結果を保持するエージェント:ANとそのエージェント署名:SNを受信し、制約条件付きセキュリティ処理結果検証手段を用いて検証を行ったのち(検証方法は協力者jと同様)、処理結果:F(m1,・・・,mN)を得る。
以上により、一定期間LT以内であれば、難読化が解読される(SEC=skが協力者によって解析され、任意の処理結果:F’に対して、検証情報:Sig(sk,F’)を生成される)ことはないので、ここで検証すれば、協力者が正しく計算したことを確認することができる。
【0029】
図31に実施の形態2(協力計算)の詳細なデータ処理フローを示す。
(実施の形態2(SET応用型代理電子商取引))
(SETについては「Visa International and MasterCard International,”Secure Electronic Transaction(SET) Specification ,” Version 1.0,http:// www.setco.org/set specifications.html, 1997 」を参照のこと)
次に、実施の形態2に対して、図32〜図41を参照して第2の具体的な実施例を説明する。
【0030】
一連の処理の概略を図32を用いて説明する。
[STEP▲1▼]
利用者は、SET応用型代理電子商取引エージェント生成APを用いて以下を行う。
利用者コンピュータ内のプラットフォームの各種手段を用いてSET応用型代理電子商取引エージェントを生成し、商店1へ送信し、
[STEP▲2▼]
商店jは、エージェントに商品情報とこの商店が利用している決済機関情報をエージェントに教えて、そのエージェントを商店j+1に送信する(j=1,・・・,N)。但し、エージェントが商店Nに到達している場合は、STEP▲3▼に進む。
[STEP▲3▼]
エージェントは、商店M1〜MNのうち利用者にとって最も望ましい商店(これをMαとする)での購入を決定し、SETのPURCHASEREQと同等のメッセージを作成し、これを商店Mαに送信する。商店Mαは、SETと同様に、注文情報と暗号化された支払い情報を受信し、注文情報の付与された、エージェントの署名をチェックする。(本来のSETでは、利用者の署名が付与されているが、この例では。エージェントの署名鍵skを用いて署名を施し、その対となる公開鍵に対して、制限付き証明書を発行することにより、その制限内で利用者の署名付与と同等の効力を持たせている)。検証後、商店Mαは、決済機関β(商店αの決済機関を決済機関βとする)に、利用者の信用情報を確認するためのメッセージ(AUTHREQ)を作成し、これをエージェントに送付する。
【0031】
[STEP▲4▼]
エージェントは、決済機関βにAUTHRESを送付し、その結果、AUTHRESを受信する。
[STEP▲5▼]
エージェントは、商店αにAUTHRESを送信し、その返答PURCHRESを受信する。[STEP▲6▼]
エージェントは、利用者コンピュータ内の、SET応用型代理電子商取引エージェント生成APのPURCHRESを送信する。
【0032】
次に、図33〜図40及び図41のデータ処理フローを参照して本実施の全体の動作について説明する。
前提として、決済機関:PGの公開鍵ペア(公開鍵,私有鍵)=[PKPG,SKPG]とする。利用者は、NPG個のPGの公開鍵を知っているものとする。
また、下記の記法を用いるものとする。
EPANi=E(PKPG,{tk,Cert,PAN})
E(k,x):暗号鍵kを用いて、xを暗号化することを表す。
tk:一時的な秘密鍵(対象鍵)暗号の秘密鍵
EPIHj=E(tk,{PIH,h(PAN),DS[PI]}
0I:注文情報(商品名、数量、合計金額)
PIH:合計金額
PAN:カード情報(カード番号、有効期限)
PI:{PIH,h(PAN)}:決済情報
0Iα:商店Mαに対する注文情報
PIα:商店Mαに対する決済情報
DS[0I]=[h(PI),Sig(SEC,[h(h(0I),h(PI))])]
DS[PI]=[h(0I),Sig(SEC,[h(h(0I),h(PI))])]
【0033】
[STEP▲1▼]
利用者はSET応用型代理電子商取引エージェント生成APを用いて、以下の処理を行う(図33,図34)。
(▲1▼−1)tk,EPANi(i=1,・・・,NPG)を生成し、代理電子商取引APを生成する。
(▲1▼−2)セキュリティ処理手段S(SEC,[OI,PI]=[DS[OI],DS[PI]]を設定する。
(▲1▼−3)セキュリティ情報生成手段を用いて、公開鍵ぺア(公開鍵,私有鍵)=(pk,sk)を生成し、SEC=skとする。
(▲1▼−4)制約条件設定手段を用いて、制約条件R=[t<LT]と設定する。
(▲1▼−5)制約条件付き公開鍵証明書発行手段により、制約条件付き公開鍵証明書Cert=[pk,R,Sig(SKU,[pk,R])]を生成する。
(▲1▼−6)エージェント難読化手段を用いて、PUB=[CE,Cert]、SET応用型電子商取引エージェントAP、S(SEC,y)、SECをまとめたものを難読化する。
【0034】
[STEP▲2▼]
商店jは、以下の処理を行う(図35)。
エージェントを実行する。
エージェントは、商店Mj上で以下の処理を行う(図36)。
(▲2▼−1)商品情報と商店Mjが利用している決済機関PGの情報を要求し、その情報を入手する
(▲2▼−2)商店j+1にエージェントを送付する。もし、エージェントが現在、商店MNに居るならば以下の処理を行う。
(▲2▼−3)商店M1〜MNの中で最も条件の良い商店を決定し、注文情報0Iαと決済情報PIα=[PIHα,h(PAN)]を作成する。よって、このとき、決済機関PGαも決定する。
(▲2▼−4)S(SEC,[OIα,PIα])によりデュアル署名DS[0Iα]およびDS[PIα]を作成する。
(▲2▼−5)EPIβ=E(tk,[PIHα,h(PAN)],DS[PIα])を作成する。
(▲2▼−6)PUB,0Iα,DS[0Iα],EPANβ,EPIβを商店Mαに送付する。
【0035】
[STEP▲3▼]
商店MαのSET応用型商店APは以下の処理を行う(図37)。
(▲3▼−1)0Iα,DS[0Iα]から、デュアル署名の検証を行う。ここで、検証は、下記のとおりである。
・h(h(0Iα),h(PIα))と、DS[0I]内のSig(sk,[h(h(OI),H(PI))])を、Cert内のpkで復号した値、が等しい
・h([pk,R])と、Sig(SKU,[pk,R])をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・0Iα等を受け取った時間TがCertに記述されている制約条件R=[t<LT]を満たす(▲3▼−2)検証が成功すればEPANβ、EPIHβを含む、AUTHREQ’を作成し、エージェントに送付する
【0036】
[STEP▲4▼]
エージェントは、決済機関PGβに移動し、以下の処理を行う(図38)
(▲4▼−1)AUTHREQ’を決済機関PGβに送付する
決済機関PGβのSET応用型決済機関APは、以下の処理を行う(図38)
(▲4▼−2)EPANβを、PGSKで復号し、tk,Cert,PANを得る。
(▲4▼−3)EPIβを、tkで復号し、PIα、DS[PIα]を得る。
(▲4▼−4)PIα、DS[PIα]から、デュアル署名の検証を行う。ここで、検証は下記の通りである。
・h(h(0Iα),h(PIα))と、DS[PIα]内の、Sig(sk,[h(h(OI),h(PI))])をCert内のpkで復号した値、が等しい
・h([pk,R])と、Sig(SKU,[pk,R])をCE内のPKUで復号した値、が等しい
・h(PKU)と、Sig(SKCA,PKU)をCERT内のPKCAで復号した値、が等しい
・h(PKCA)と、Sig(SKCA,PKCA)をCERT内のPKCAで復号した値、が等しい
・PIαを受け取った時間TがCertに記述されている制約条件R=[t<LT]を満たす
(▲4▼−5)検証が成功すればPANを、決済機関の信頼のネットワークに問い合わせ、PANが正しいことをチェックする
(▲4▼−6)このチェックが正しければ、AUTHRESを作成し、エージェントに送付する
【0037】
[STEP▲5▼]
エージェントは、商店Mαに移動し、以下の処理を行う(図39)。
(▲5▼−1)AUTHRESを商店αに送付する
商店αは、以下の処理を行う(図39)
(▲5▼−2)PURCHRESをエージェントに送付する
【0038】
[STEP▲6▼]
エージェントは、利用者端末に移動し、以下の処理を行う(図40)。
・PURCHRESを、利用者端末のSET応用型代理電子商取引生成APに送付する
図41に実施の形態2(SET応用型代理電子商取引)の詳細なデータ処理フローを示す。
【0039】
【発明の効果】
第1の効果は、利用者が、ある条件を設定してモバイルエージェントを別のプラットフォームを備えたコンピュータに送付すれば、後の処理はモバイルエージェントが、署名生成などのセキュリティ処理時に逐一利用者に確認せずに、利用者の代わりに処理することが可能となり、利用者の利便性が向上することである。その理由は、モバイルエージェントが、署名生成などのセキュリティ処理のための署名鍵などのセキュリティ情報を有しているからである。
第2の効果は、モバイルエージェントが解析され、セキュリティ情報が漏洩した後でも、このセキュリティ情報を用いて、利用者の不利益となるセキュリティ処理を実施される恐れを無くしたことである。その理由は、モバイルエージェントが所持する署名鍵などのセキュリティ情報が、ある制約条件の範囲内でしか効力もたないので、その範囲外でセキュリティ情報を用いて行ったセキュリティ処理は無効となるからである。
【図面の簡単な説明】
【図1】従来のモバイルエージェントの概要(ネットワーク構成)を説明する図。
【図2】従来のモバイルエージェントの概要(エージェントの生成)を説明する図。
【図3】従来のモバイルエージェントの概要(エージェントの移動実行その1)を説明する図。
【図4】従来のモバイルエージェントの概要(エージェントの移動実行その2)を説明する図。
【図5】従来のモバイルエージェントの概要(エージェントの移動結果取得)を説明する図。
【図6】本発明のプラットフォームの構成例を示す図。
【図7】本発明のエージェントの構成例を示す図。
【図8】本発明の実施の形態1の処理の概略を説明する図。
【図9】本発明の実施の形態1の詳細手順[STEP▲1▼]を説明する図。
【図10】本発明の実施の形態1の詳細手順[STEP▲2▼]その1を説明する図(その1)。
【図11】本発明の実施の形態1の詳細手順[STEP▲2▼]その2を説明する図(その2)。
【図12】本発明の実施の形態1の詳細手順[STEP▲3▼]を説明する図。
【図13】本発明の実施の形態1の詳細なデータ処理フローを示す図。
【図14】本発明の実施の形態1(依頼計算)の処理の概略を説明する図。
【図15】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲1▼]を説明する図(その1)。
【図16】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲2▼]その1を説明する図。
【図17】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲2▼]その2を説明する図。
【図18】本発明の実施の形態1(依頼計算)の詳細手順[STEP▲3▼]を説明する図。
【図19】本発明の実施の形態1(依頼計算)の詳細なデータ処理フローを示す図。
【図20】本発明の実施の形態2の処理の概略を説明する図。
【図21】本発明の実施の形態2の詳細手順[STEP▲1▼]を説明する図。
【図22】本発明の実施の形態2の詳細手順[STEP▲2▼](その1)を説明する図。
【図23】本発明の実施の形態2の詳細手順[STEP▲2▼](その2)を説明する図(その2)。
【図24】本発明の実施の形態2の詳細手順[STEP▲3▼]を説明する図。
【図25】本発明の実施の形態2の詳細なデータ処理フローを示す図。
【図26】本発明の実施の形態2(協力計算)の処理の概略を説明する図。
【図27】本発明の実施の形態2(協力計算)の詳細手順[STEP▲1▼](その1)を説明する図。
【図28】本発明の実施の形態2(協力計算)の詳細手順[STEP▲1▼](その2)を説明する図。
【図29】本発明の実施の形態2(協力計算)の詳細手順[STEP▲2▼]を説明する図。
【図30】本発明の実施の形態2(協力計算)の詳細手順[STEP▲3▼]を説明する図。
【図31】本発明の実施の形態2(協力計算)の詳細なデータ処理フローを示す図。
【図32】本発明の実施の形態2(SET応用型代理電子商取引)の処理の概略を説明する図。
【図33】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲1▼](その1)を説明する図。
【図34】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲1▼](その2)を説明する図。
【図35】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲2▼](その1)を説明する図。
【図36】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲2▼](その2)を説明する図。
【図37】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲3▼]を説明する図。
【図38】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲4▼]を説明する図。
【図39】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲5▼]を説明する図。
【図40】本発明の実施の形態2(SET応用型代理電子商取引)の詳細手順[STEP▲6▼]を説明する図。
【図41】本発明の実施の形態2(SET応用型代理電子商取引)の詳細なデータ処理フローを示す図。
Claims (6)
- 複数のコンピュータをネットワークを介して接続し、あるコンピュータ上で生成されそのコンピュータから別のコンピュータに送信され送信先のコンピュータ上で各種処理を実行する移動を伴うプログラム(以下、「モバイルエージェント」と呼ぶ)を用いたモバイルエージェントシステムにおいて、
モバイルエージェントが秘密とする情報(以下、「セキュリティ情報」と呼ぶ)を保持し、セキュリティ情報を用いた処理(以下、「セキュリティ処理」と呼ぶ)を行うこと、を特徴とするモバイルエージェントシステム。 - 請求項1に記載のモバイルエージェントシステムにおいて、
モバイルエージェントのセキュリティ処理が用いるセキュリティ情報を一定期間安全に保護できる難読化手段とセキュリティ処理の結果に対する条件(以下、「制約条件」と呼ぶ)を設定した当該セキュリティ処理の結果が制約条件の範囲外である場合には当該セキュリティ処理の結果の効力が無いことを検証可能な制約条件付きセキュリティ処理手段を組み合わせたこと、を特徴とするモバイルエージェントシステム。 - 複数のコンピュータをネットワークを介して接続し、あるコンピュータ上で生成されそのコンピュータから別のコンピュータに送信され送信先のコンピュータ上で各種処理を実行する移動を伴うプログラム(以下、「モバイルエージェント」と呼ぶ)を用いたモバイルエージェント方法において、
モバイルエージェントが秘密とする情報(以下、「セキュリティ情報」と呼ぶ)を保持し、セキュリティ情報を用いた処理(以下、「セキュリティ処理」と呼ぶ)を行う手順を有すること、を特徴とするモバイルエージェント方法。 - 請求項3に記載のモバイルエージェント方法において、
モバイルエージェントのセキュリティ処理が用いるセキュリティ情報を一定期間安全に保護できる難読化する手順とセキュリティ処理の結果に対する条件(以下、「制約条件」と呼ぶ)を設定した当該セキュリティ処理の結果が制約条件の範囲外である場合には当該セキュリティ処理の結果の効力が無いことを検証可能な制約条件付きセキュリティ処理を行う手順を組み合わせたこと、を特徴とするモバイルエージェント方法。 - あるコンピュータ上で生成されそのコンピュータから別のコンピュータに送信され送信先のコンピュータ上で各種処理を実行する移動を伴うプログラム(以下、「モバイルエージェント」と呼ぶ)が秘密とする情報(以下、「セキュリティ情報」と呼ぶ)を保持し、セキュリティ情報を用いた処理(以下、「セキュリティ処理」と呼ぶ)を行うモバイルエージェント方法をコンピュータに実行させるプログラムを記録した記録媒体。
- 請求項5に記載のプログラムを記録した記録媒体において、
モバイルエージェントのセキュリティ処理が用いるセキュリティ情報を一定期間安全に保護できる難読化する処理とセキュリティ処理の結果に対する条件(以下、「制約条件」と呼ぶ)を設定した当該セキュリティ処理の結果が制約条件の範囲外である場合には当該セキュリティ処理の結果の効力が無いことを検証可能な制約条件付きセキュリティ処理を組み合わせたモバイルエージェント方法をコンピュータに実行させるプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003016366A JP2004227410A (ja) | 2003-01-24 | 2003-01-24 | モバイルエージェントシステム、及びモバイルエージェント方法、その方法をコンピュータに実行させるプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003016366A JP2004227410A (ja) | 2003-01-24 | 2003-01-24 | モバイルエージェントシステム、及びモバイルエージェント方法、その方法をコンピュータに実行させるプログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004227410A true JP2004227410A (ja) | 2004-08-12 |
Family
ID=32903845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003016366A Pending JP2004227410A (ja) | 2003-01-24 | 2003-01-24 | モバイルエージェントシステム、及びモバイルエージェント方法、その方法をコンピュータに実行させるプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004227410A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006093238A1 (ja) * | 2005-03-03 | 2006-09-08 | Matsushita Electric Industrial Co., Ltd. | 認証補助装置、認証主装置、集積回路及び認証方法 |
-
2003
- 2003-01-24 JP JP2003016366A patent/JP2004227410A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006093238A1 (ja) * | 2005-03-03 | 2006-09-08 | Matsushita Electric Industrial Co., Ltd. | 認証補助装置、認証主装置、集積回路及び認証方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dai et al. | SDTE: A secure blockchain-based data trading ecosystem | |
CN111316615B (zh) | 使用调解器计算机系统确保计算机程序正确执行的系统和方法 | |
Claessens et al. | (How) can mobile agents do secure electronic transactions on untrusted hosts? A survey of the security issues and the current solutions | |
US8843415B2 (en) | Secure software service systems and methods | |
AU776027C (en) | Method and system for enforcing access to a computing resource using a licensing attribute certificate | |
KR100457750B1 (ko) | 인증매체의 암호키와 컴퓨터하드웨어의 고유정보를 이용한 변동 암호키 방식의 인증 방법 및 이 인증 방법을 기록한 기간과 권한이 명시된 인증 매체 | |
JP4681554B2 (ja) | 安全な移動体通信及び高価な取引の実行に対しランタイムパッケージ署名において信頼性の高いハードウェアベースのアイデンティティ信任状を使用する方法 | |
US20080235513A1 (en) | Three Party Authentication | |
CN109450843B (zh) | 一种基于区块链的ssl证书管理方法及系统 | |
US20110161671A1 (en) | System and method for securing data | |
CN109697365A (zh) | 信息处理方法及区块链节点、电子设备 | |
JP2008501176A (ja) | プライバシーを保護する情報配布システム | |
CN101479987A (zh) | 生物测定凭证验证框架 | |
JP2004023796A (ja) | 選択的に開示可能なデジタル証明書 | |
CN1897027A (zh) | 使用移动装置的认证服务 | |
CN111160908B (zh) | 基于区块链的供应链交易隐私保护系统、方法及相关设备 | |
CN113169866A (zh) | 使用同时密钥发布来防止共谋的技术 | |
CN105162607A (zh) | 一种支付账单凭证的认证方法及系统 | |
CN113010861B (zh) | 一种基于区块链的融资事务中的身份验证方法和系统 | |
CN115242553B (zh) | 一种支持安全多方计算的数据交换方法及系统 | |
EP1837789A2 (en) | Method and apparatus for temporarily accessing content using temporary license | |
CN110445751B (zh) | 一种基于重加密的分布式信息共享方法及系统 | |
KR20200041490A (ko) | 블록체인 기반의 계약 서비스 제공 방법 및 장치 | |
Barskar et al. | The algorithm analysis of e-commerce security issues for online payment transaction system in banking technology | |
JP2004227410A (ja) | モバイルエージェントシステム、及びモバイルエージェント方法、その方法をコンピュータに実行させるプログラムを記録した記録媒体 |