JP3905170B2 - Processing system and client device - Google Patents

Processing system and client device Download PDF

Info

Publication number
JP3905170B2
JP3905170B2 JP05865197A JP5865197A JP3905170B2 JP 3905170 B2 JP3905170 B2 JP 3905170B2 JP 05865197 A JP05865197 A JP 05865197A JP 5865197 A JP5865197 A JP 5865197A JP 3905170 B2 JP3905170 B2 JP 3905170B2
Authority
JP
Japan
Prior art keywords
server
engine
client
way function
code
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.)
Expired - Fee Related
Application number
JP05865197A
Other languages
Japanese (ja)
Other versions
JPH10254840A (en
Inventor
旭 川村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP05865197A priority Critical patent/JP3905170B2/en
Publication of JPH10254840A publication Critical patent/JPH10254840A/en
Application granted granted Critical
Publication of JP3905170B2 publication Critical patent/JP3905170B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、分散して存在する多数の計算機がネットワークで接続された環境における情報処理のセキュリティ技術に関し、特にモーバイルコ−ドによるマルチエージェント方式での情報処理において、モーバイルコ−ドの実行時にそのモーバイルコードに対して不正処理を行わないように保証するモーバイルコ−ド実行システムに関する。
【0002】
パーソナルコンピュータの発達及びコンピュータネットワーク技術の発達によって、大型計算機をメインホストとし、それに端末がぶら下がって、すべての情報処理をメインホストに依存する集中処理方式から、個々のパソコン・ワークステーションをフロントエンドとして、ネットワーク上に設置された複数のスーパーコンピュータを用いた計算サーバ・大規模な記憶装置を持つ計算機を用いたデータベースサーバを適宜選択して目的の情報処理を行うというクライアント−サーバ方式が主流となってきている。
【0003】
さらに、全世界的なコンピュータネットワークの技術動向として、オープンな規格によって、用いている計算機や通信媒体の枠を乗り越え、個々の計算機ネットワークの接続によって形成されたネットワークのネットワークであるインターネットが急速に拡大している。その動きは、規模の面だけでなく、利用の面からも専門家から一般の人々へと拡大し、インターネットは企業や国といった既存の枠組みを越え、全世界的な広がりを持ったコンピュータネットワークとして成長し続けている。また、インターネットの柔軟性と利便性を引継ぎながら、利用範囲を特定の組織内に限定したイントラネットも、昨今、普及してきている。
【0004】
そのようなインターネット・イントラネットの規模と利用分野両面における拡大につれて、クライアント−サーバ間の関係も、限られた範囲の閉鎖的・固定的なものから、ネットワーク上に存在する全てのものへと、時に応じて自由に接続・利用することができるものへ進化することが望まれるようになった。そのため、利用可能なプラットフォームに束縛されないようなインターフェ−スが必要となった。また、利用するユーザが、限られた専門家から一般の人達へと広がるにつれて、簡易なインターフェ−スで複数のネットワークの異なる種類のサーバを統合して扱うような高度なサービスを提供することが必要とされるようになった。それらの要望をみたすために、アクセスする側のエージェントが、各々のサーバを管理するエージェントとのメッセージの交換によって、高度な情報処理を実現するマルチエージェント方式が注目されている。
【0005】
また、携帯端末の普及によって、常にネットワークに接続しているわけではない場合への対応や、サーバ側の出来合いのエージェントとのメッセージ交換ではなく、こちらからエージェントを送り込んで高度で柔軟な情報処理を行うために、エージェント自体がネットワーク上を移動するというモーバイルコ−ド(モーバイルエージェント)方式がマルチエージェント方式の一部として重視されている。
【0006】
【従来の技術】
マルチエージェントのシステムは、次のようにインプリメントされる。
すなわち、各計算機上に少なくとも一つ、エージェントの生成・消滅やエージェント間の通信を司るエンジン(シェルやインタプリタ等)が置かれる。そして、各エージェントは、互いに独立的に機能し、かつ相互にメッセージの交換を行うように、プロセスやスレッド等の実体が与えられる。各エージェントの実体は、エンジンのプロセス内に存在する場合と、エンジンとは独立なプロセスである場合とがある。ネットワーク上の別の計算機上に存在するエージェントとのメッセージ交換は、TCP(伝送制御プロトコル)またはUDP(User Datagram Protocol)等を用いて、エンジン経由で間接的に、またはエンジンを仲介としてエージェント間で直接行われる。
【0007】
モーバイルコ−ド方式では、一方の計算機から、実行すべきエージェントのコ−ドをメッセージとして送信し、受信した計算機で、そのコ−ドを実行する。そのために、一般的には、送付されたコ−ドを計算機のシステム上で直接実行するインプリメントはとられず、エンジンを、そのコ−ドを実行するためのインタプリタ、またはバイトコ−ドを実行するための仮想マシンとするインプリメントがとられる。そうするのは、マルチプラットフォームとするための抽象化と、後で述べる計算機のシステムのセキュリティ確保のためである。
【0008】
ネットワーク上に計算機が分散している環境、特に全世界的な広がりを持つネットワークであるインターネットに於ては、その柔軟性と利便性の裏返しとして、誰が、何時、何処から、如何なる手段で、何にアクセスして来て、何を為し、その結果の影響がどう出るのかについての可能性(危険性)は、無限にある。そのため、悪意または不注意によるアクセスを制限する必要がある。その実現のために、ネットワークのレベルでは、きまった範囲のネットワークの入口に、アクセスコントロール用計算機を用いたファイヤウォールを設置して、通信する相手先のネットワークや、通信プロトコルの種類に制限を加えることが行われている。
【0009】
また、マルチエージェントのエンジンのレベルでは、公開範囲の制限や、過剰占有によるシステムの動作不能防止のため、アクセスできるリソースの範囲・量・占有時間に制限を加えることや、コンピュータウイルス等のシステムへの不正アクセスを防止するために、計算機のシステムへは常に間接アクセスすることにしたり、モーバイルコ−ドの実行前にコ−ド検証を行うこと等が行われている。
【0010】
また、インターネットはその仕組み上、一般的にどのような経路を通るかが判らず、経路上での交信データの盗聴・改ざんや、悪意の第三者が本来の相手に成り済ます可能性・危険性がある。それを防止するために、交信内容の暗号化や、暗号技術を応用した相手の認証・改ざんされてないことを保証するための電子署名等の技術が用いられている。具体的には、秘密鍵暗号を用いるケルベロス、あるいは公開鍵・秘密鍵暗号を用いたPEM(Privacy-Enhanced Mail)やPGP(Pretty Good Privacy) 等が存在する。
【0011】
【発明が解決しようとする課題】
モーバイルコ−ドそれ自体が、高機能化するにしたがい、知的財産権確保の対象としての保護が必要になっていく。また、モーバイルコ−ドはデータを伴った形でネットワークに発信され、ネットワーク上の複数のサービスサーバとメッセージ交換をしていくことによって、データの引き出し・処理等を次々に行っていく使い方も行われ得る。その場合、ネットワーク上のサービスサーバが常に信用できるとは限らないので、データ処理に必要ないデータの読み出しを防ぐ必要があり、また、あるサービスサーバから得たデータを他のサービスサーバには秘匿する必要も有り得る。
【0012】
しかし、従来のセキュリティ技術は、外部の不正アクセス等から、ネットワーク内のデータやシステムを守ることを目的としており、送信するモーバイルコ−ドに関する保護は十分ではない。サービスを提供するサーバをエージェントの一つとしてしまい、サーバからモーバイルコ−ドの内容を不正に覗き見できないようにしたエンジンもあったが、そのエンジンが本当にその制限機能を持っているかどうかを検証する手段は存在しなかった。
【0013】
【課題を解決するための手段】
本発明は、この課題を、次の処理システムおよびクライアント装置を用いることにより解決する。
(1)処理を依頼するクライアントと、クライアントから依頼された処理を実行するエンジンを備えるサーバとからなり、
前記サーバは、
前記エンジンのエンジンコードを入力とした一方向関数による計算処理を行う一方向関数計算部と、
前記クライアントからの検証指示に応じて、前記一方向関数計算部の計算結果を前記クライアントへ返す検証代行エージェント手段と、を設け、
前記クライアントは、
前記サーバの前記一方向関数計算部と同じ一方向関数による計算処理を行うことが可能で、
前記サーバへの処理依頼に関して、前記サーバに対し、そのエンジンコードの検証要求を送信し、その後前記サーバから前記計算結果が届くと、前記サーバの正当な前記エンジンコードと同じデータを入力とした自らの前記一方向関数による計算処理結果と照合し、それが合致していれば、当該処理依頼を前記サーバへ送信する検証エージェント手段を設けた、
ことを特徴とする処理システム。
(2)クライアントから依頼された処理を実行するエンジンと、当該エンジンのエンジンコードを入力とした一方向関数による計算処理を行う一方向関数計算部と、前記クライアントからの検証指示に応じて、前記一方向関数計算部の計算結果を前記クライアントへ返す検証代行エージェント手段と、を有するサーバへ、処理を依頼するクライアント装置であって、
前記サーバの前記一方向関数計算部と同じ一方向関数による計算処理を行うことが可能で、
前記サーバへの処理依頼に関して、前記サーバに対し、そのエンジンコードの検証要求を送信し、その後前記サーバから前記計算結果が届くと、前記サーバの正当な前記エンジンコードと同じデータを入力とした自らの前記一方向関数による計算処理結果と照合し、それが合致していれば、当該処理依頼を前記サーバへ送信する検証エージェント手段を設けた、ことを特徴とするクライアント装置。
(3)処理を依頼するクライアントと、クライアントから依頼された処理を行うエンジンを備えるサーバとからなり、
前記サーバは、
前記エンジンのエンジンコードを入力とした一方向関数による計算処理を行う一方向関数計算部と、
後述の復号化要求に応じて、後述の暗号化されたデータを前記一方向関数計算部の計算結果で復号化できるかどうかを調べ、復号化できた場合にはその内容を前記エンジンに実行させる検証手段と、を設け、
前記クライアントは、
前記サーバへの処理依頼に関して、その内容を、前記サーバが正当な前記エンジンコードに対する前記一方向関数計算部の計算結果で復号化できるように暗号化したデータおよび、それの復号化要求を含む形の復号化用データを生成して前記サーバへ送信する復号化用データ送信手段を設けた、
ことを特徴とする処理システム。
【0014】
エンジンは、各エージェントが明示的に許可していない領域に他のエージェント等がアクセスできないように、各エージェントが実行中に使用するメモリなどのリソースのアクセス管理を行う管理装置を内部に持つ。
【0015】
図1は、本発明の原理構成図である。
図1において、1は本発明による不正読み出し・書換え禁止機能付きエンジン、2は本発明によるエンジンの正当性の検証の代行装置である。3はサービスを要求するクライアント側システムである。4は不正読み出し・書換え禁止機能付きエンジン1が実現されるサーバ側エンジンである。5はサーバ側エンジン4内に備えられているメモリ等のリソースである。6はリソース5へのアクセスを管理するアクセス管理装置、7ないし8はリソース5を用いて動作しているエージェントで、7はサーバエージェント、8,8′は他のエージェントである。9ないし13はエンジンの正当性の検証の代行装置2を構成し、9はサーバ側エンジン4上で動作する検証代行エージェントである。10はエンジン内のインタフェ−ス部である。11はエンジン外の一次記憶または二次記憶上に存在するエンジンコ−ド読み出し部で、12はエンジンコ−ドから読み出すデータの番地を指定するパターンが格納される読み出しパターン格納部、13はエンジンコ−ド読み出し部11から読み出したエンジンコ−ドのデータを入力として関数計算し、固定長の整数値を出力する一方向関数計算部である。
【0016】
クライアント側システム3には以下の2通りの構成がある。その一つは、サーバ側のエンジンの正当性の検証を行うエージェントが、クライアント側のエンジン上で動作するものである。他の一つは、モーバイルコ−ド自体の中に、暗号化された本来の実行コ−ドと持参データとが有り、さらにエンジンの正当性の検証や、検証後の暗号化されたコ−ド等の復号化と、そのコ−ドの実行を行うためのエージェントのコ−ドが有るというものである。そのいずれの場合においても、クライアント側には、サーバ側のエンジンのコ−ドの情報が格納されている。
【0017】
モーバイルコ−ドシステムは、利用するサーバが動作している計算機に、不正な読み出し・書換えから保護すべき実行コ−ド・持参データを送信する。したがって、モーバイルコ−ドのセキュリティの確保は、モーバイルコ−ドが実行されるエンジンに於て行われなければならない。しかし、一般的には、サーバ側エンジン4は、クライアント側システム3の管理下にはない。したがって、本発明では、サーバ側エンジン4として、不正な読み出し・書換えを不可能とするものを用い、クライアント側からは、サーバ側のエンジンが正当なものであるかを検証可能とすることで、クライアント側から送出するモーバイルコ−ドのセキュリティを確保する。
【0018】
サーバ側エンジン4は、各エージェントが明示的に許可していない領域に他のエージェント等がアクセスできないように、各エージェントが実行中に使用するメモリなどのリソース5のアクセス管理を行うアクセス管理装置6を内部に持つ。かつ、サービスを提供するサーバは、サービスをエージェントの一つとしてインプリメントする。そうすると、サーバの各サービスから、モーバイルコ−ドが明示的に指定したデータ以外の読み書きをするのが不可能となる。
【0019】
サーバ側エンジン4の上には、エンジン4の正当性の検証の代行を行う検証代行エージェント9が動作している。検証代行エージェント9は、クライアント側の検証エージェントの要求メッセージにしたがって、エンジン4内のインタフェ−ス部10を介して、エンジン外のエンジンコ−ド読み出し部11と一方向関数計算部13でエンジンコ−ドに依存した整数値を得て、その整数値をクライアントの検証エージェントに返す。ここで、一方向関数は、セキュアハッシュ関数・Messge Digest 関数とも呼ばれ、具体的には、MD4,MD5,SHA,チェックサムCRCなどである。一方向関数は、以下の性質を持っている。
【0020】
1.任意のバイト列を入力として固定長の整数値を出力
2.同じ出力を与える入力の発見が困難
3.逆関数を定義するのが困難
エンジンコ−ドを不正処理実現のために書き換えると、一方向関数が出力する整数値が、元のエンジンコ−ドのときと異なってしまうので、書換えを検出することができる。当然、偶然に同じ値になることは有り得るが、整数値の大きさが十分ならば、実用上問題のない確率に収められる。また、同じ出力を与える入力の発見が困難であるので、書換えたエンジンコ−ドに、書換えの検出を逃れるためのつじつま合わせのための追加書換えを行うことは困難である。ここで、サーバ側のセキュリティの観点からみると、サーバ側がクライアント側に提供するのは、そのままでは限りなく無意味な整数値に過ぎない。クライアント側がエンジンコ−ドの内容を知っていてはじめて、その整数値が意味を持つ。つまり、サーバ側にとっては、最小限の情報の提供で、検証が可能ということになる。
【0021】
クライアント側の検証エージェントは、そのエンジンコ−ドに対応した整数値が、正しい値かどうかを調べて、サーバ側のエンジンが書き換えられていないこと、つまり、正当なエンジンであることを検証する。
【0022】
クライアント側のエンジン上に、サーバ側エンジン4の正当性を検証するエージェントが動作している場合には、検証できた時点ではじめてモーバイルコ−ドの発信を行うことによりセキュリティを確保する。
【0023】
またモーバイルコ−ド自体の中に、サーバ側エンジン4の正当性を検証するエージェントのコ−ドが有る場合には、本来の実行コ−ドと持参データとを暗号化して、持参データとしておく。この暗号化は、正当なエンジンコ−ドを一方向関数に入力したときの整数値を鍵として復号化できるようにしておく。モーバイルコ−ドが最初に、サーバ側エンジン4に到達したときには、サーバ側の検証代行エージェント9とメッセージ交換を行うことで、サーバ側のエンジンを一方向関数に入力したときの整数値を受け取る。その整数値を鍵として、暗号化してある本来の実行コ−ドと持参データとを復号化して、本来のエージェントをサーバ側エンジン4上で動作させることで、セキュリティを確保する。
【0024】
次に図1の構成において、読み出しパターンと一方向関数を用いて行うエンジンの正当性検証処理の手法を、図2乃至図5により具体例で説明する。
図2の(A)は、複数バイトで表されるエンジンコードの例を示す。図2の(B)は、このようなエンジンコードに対して与えられる読み出しパターンの例を示す。読み出しパターンは、エンジンコードのバイト数に対応するビット数をもち、その順次のビット位置は、エンジンコードの順次のバイトデータに対応づけられている。従って、エンジンコードがバイト構成のメモリに格納された場合、読み出しパターンの各ビットは、メモリの順次の番地に対応することになる。
【0025】
読み出しパターンは、例えば乱数に基づいて生成される。読み出しパターンは、図2の(B)に示されるように、値“1”をもつビット位置に対応する番地のバイトデータのみを、メモリから読み出して、エンジンコードから、読み出しパターンに依存する少数のデータを抽出する。
【0026】
図3は一方向関数の機能を示す。図2で読み出しパターンにより読み出されたデータは、一方向関数に入力されて、入力データに依存する値の固定長の出力整数に変換される。
【0027】
図4に示されるように、正当性を検証しようとするサーバ側エンジンのエンジンコードは、クライアント側にも保持されている。クライアント側では、読み出しパターンを生成して、自己が保持するエンジンコードからデータを抽出し、一方向関数に入力して、クライアント側出力整数を作成する。一方、サーバ側で実行されるエンジンコードからも、同じ読み出しパターンを用いてデータを抽出させ、一方向関数によりサーバ側出力整数を作成させる。このようにして得られたクライアント側出力整数とサーバ側出力整数とを比較し、図示のように一致が得られた場合には、サーバ側エンジンは正当であると判定する。
【0028】
これに対し、図5に示されるように、不正処理の目的などでサーバ側エンジンコードの一部が書き替えられている場合には、図4と同じ処理を行っても、得られるクライアント側出力整数とサーバ側出力整数とは不一致となり、サーバ側エンジンコードは不正なものであると判定される。
【0029】
【発明の実施の形態】
図6は、本発明が適用可能なインターネット上のマルチエージェントシステムとモーバイルコードの実行を示す説明図である。図示のようにある計算機のエンジンから送信されたモーバイルコードは、インターネット上に分散している計算機のエンジン間を移動し、順次のサーバエージェントとメッセージ交換をしながら必要なデータを処理していく。
【0030】
図7は、クライアント側のエンジンで検証エージェントが動作するシステムの構成例を示す説明図である。図7では、図1に示したシステム中の構成要素と共通の要素は、同じ参照番号で示してある。図7において新たに示された要素は14ないし16であり、14はクライアント側システムのエンジン、15はエンジン14上で動作する検証エージェント、16はエンジン14から送信されたモーバイルコードである。
【0031】
エンジンコードのすべてを読み出すのではなく、エンジンコード中で読み出しパターンで指定された番地のデータだけが読み出されるようになる。したがって、クライアント側のエンジン14上で動作している検証エージェント15からの検証要求時に、読み出しパターンを任意に指定することで、次のようにセキュリティのレベルを向上させることが可能となる。
【0032】
つまりサーバ側は、クライアント側からの検証要求毎にエンジンコードの読み出しと一方向関数の計算を行なう必要があるので、最初は正当なエンジンを用い、次からは不正エンジンを用いるということができなくなる。クライアントとサーバ間のエンジン検証のためのメッセージ交換の内容を、第三者が盗聴しても、同一の読み出しパターンが再び使われなければ、無意味なパターンと数字の対でしかない。また、副次的効果として、エンジンコードのすべてを読み出す必要がなくなるので、検証のための時間的コストを下げることが可能となる。
【0033】
この読み出しパターンを用いる方法には、検証をクライアント側のエンジン上で行う場合と、検証をサーバ側のエンジン上で行う場合の二つがあり、どちらの場合でも有効性は変わらない。
【0034】
図7の検証をクライアント側のエンジン上で行う場合の動作を、図8の制御フローを参照して説明する。
図7のシステム構成では、クライアント側のエンジン14上で、サーバ側のエンジンの正当性を検証する検証エージェント15を動作させ、利用するサーバが動作するエンジン4に向けて、モーバイルコードを送信する前に、その相手先のエンジンの正当性を検証する。最初に、クライアント側の検証エージェント15から、サーバ側の検証代行エージェント9にエンジン検証要求メッセージを送信する(1)。ここで、読み出しパターンを用いるときには、そのパターンも送信する。サーバ側の検証代行エージェント9は、エンジン4内のインターフェース部10を介して、エンジン外のエンジンコード読み出し部11及び一方向関数計算部13でエンジンコードに依存した整数値を得て、その整数値をクライアント側の検証エージェントに返している(2)。このシステム構成の利点は、相手先のエンジンの検証が終わるまで、モーバイルコード16を送信(3)しなくても良いので、送信途中及び送信先での不正読み出しと書き換えの機会を減らせることである。また、検証エージェント作成にあたって,使用リソースに制限が少ないことも利点となる。
【0035】
このように、クライアント側のエンジン14上で、サーバ側のエンジンの正当性を検証する検証エージェント15を動作させて、サーバ側の検証代行エージェント9とエンジン検証のためのメッセージ交換を行なう場合には、それらのメッセージ交換に、相互の認証とメッセージの電子署名と暗号化を行なうようにしてもよい。そうすると、サーバ側の検証代行エージェントがクライアント側からの検証要求メッセージの真偽を確認してから、検証手続きを開始することで不要な情報の漏出を防ぐとともに、悪意により頻繁に偽の検証要求メッセージが送出された場合のサーバ側のエンジン過負荷状態を回避できる。また、クライアント側がサーバ側からの検証のための整数値のメッセージの真偽を確認することで、第三者の偽または改ざんされたメッセージ送信による検証の妨害を防ぐことが可能となる。
【0036】
次に、検証エージェントをサーバ側のエンジン上で動作させる場合について述べる。
図9は、この場合にクライアント側から、利用するサーバが動作しているエンジンに対して、送信するモーバイルコードの例を示す。モーバイルコードは、実行コード部分と持参コード部分からなる。
【0037】
実行コード部分には、エンジンの正当性の検証と、検証後の暗号化されたコード等の復号化、そして、そのコードの実行を行なう、エンジン検証エージェントのコードが格納される。また持参データ部分には、暗号化された本来の実行コードとその持参データとが格納されている。その暗号化は、エンジンコードを一方向関数に入力して得られる整数値を鍵として復号化できるように施されている。モーバイルコードが、サーバ側のエンジンに到達すると、エンジン検証エージェントが起動される。エンジン検証エージェントは、図10の制御フローに示されるように、最初に、検証代行エージェントに対して、検証要求メッセージを送信する。ここで,読み出しパターンを用いるときには、そのパターンも送信する。検証代行エージェント9は、エンジン内のインターフェース部10を介して、エンジン外のエンジンコード読み出し部、一方向関数計算部でエンジンコードに依存した整数値を得て、その整数値を検証エージェントに返す。検証エージェントは、その整数値を鍵として、持参データ中のこのエンジン上で起動すべきエージェントの実行コードと持参データの復号化を行い、このエンジン上で起動を行なう。このシステム構成の利点は、検証のためのメッセージ交換が、サーバ側のエンジン上でローカルに行なわれるので、第三者に不正な読み出しや書き換えを行なわれる可能性が低いことである。
【0038】
このように、検証エージェントをサーバ側のエンジン上で動作させる場合で、クライアント側から、利用するサーバが動作しているエンジンに対して、送信するモーバイルコードの持参データとして、本来の実行コードとそのデータとを暗号化して格納してあって、それらを検証代行エージェントから得たエンジンコードを一方向関数に入力して得られる整数値を鍵として、復号化して実行するシステムの場合とは、サーバ毎に固有の鍵を暗号化のときに付加する。暗号化に公開鍵を用いる場合で、サーバから得たデータを新たに持参データにする場合には、図11に示すようにクライアントまたは途中でそのデータを利用する必要のあるサーバの公開鍵暗号を用いた暗号化を行なう。この方式の利点は、モーバイルコードが移動しながら複数のサーバを利用する場合に、途中の所定のサーバ及びクライアント自身以外に、実行コード及びデータの読み出し・書き換えを行なわれる危険性をさらに減らせることである。
【0039】
さらに、図12に示すように、サーバ側にエンジンの自己検証装置17を付加する構成とすることができる。この場合、自己検証装置17は、サーバのエンジンの起動及び、稼動中に、定期的にエンジン外のエンジンコード読み出し部11と一方向関数計算部13でエンジンコードに依存した整数値を得て、正しい値と比較を行なうことにより、エンジンコードの書き換えの自己検証を行なう。この方式の利点は、サーバ側で自己検証を行なうことで、クライアント側のモーバイルコードの不正な読み出し・書き換えを未然に防ぐことで、サーバの信頼を保つことがてきることである。
【0040】
【発明の効果】
本発明によれば、モーバイルコードが実行される際に、モーバイルコードが持つデータ(実行コードを含む)の内、サーバに開示されるのは、モーバイルコード内の明示的記述により指定された部分のみであることを、サーバに用いられているモーバイルコード実行エンジン自体が保証し、その保証の確認をクライアント側ですることができる。したがって、モーバイルコードの発信に際して、発信先のサーバに対しては、そのサーバにおける動作に関してモーバイルコード中の必要な情報のみを相手サーバに開示することが可能となるので、インターネット上の複数のサーバを巡っての情報収集や複数ステップからなる一連のデータ処理作業のように、個々のサーバにはモーバイルコード中の一部分の情報を開示しても良いが全部を開示したくない場合や、モーバイルコードが各々のサーバから得て内蔵している情報を他のサーバには秘密にする必要がある場合に、モーバイルコードを安全に用いることが可能となる。
【図面の簡単な説明】
【図1】本発明の原理的構成図である。
【図2】本発明によるエンジンの正当性の検証処理(その1)の説明図である。
【図3】本発明によるエンジンの正当性の検証処理(その2)の説明図である。
【図4】本発明によるエンジンの正当性の検証処理(その3)の説明図である。
【図5】本発明によるエンジンの正当性の検証処理(その4)の説明図である。
【図6】インターネット上でのマルチエージェントシステムとモーバイルコードの実行を示す説明図である。
【図7】クライアント側のエンジンで検証エージェントが動作するシステムの構成例を示す説明図である。
【図8】クライアント側のエンジン上で検証エージェントを動作させるシステムの制御フローである。
【図9】サーバ側のエンジン上で検証エージェントを動作させるシステムのモーバイルコードの説明図である。
【図10】サーバ側のエンジン上で検証エンジンを動作させるシステムの制御フローを示す図である。
【図11】モーバイルコードの構成例を示す説明図である。
【図12】エンジンに自己検証装置を付加した構成例を示す説明図である。
【符号の説明】
1: 不正読み出し・書換え禁止機能付きエンジン
2: エンジンの正当性の検証の代行装置
3: クライアント側システム
4: サーバ側エンジン
5: リソース
6: アクセス管理装置
7: サーバエージェント
8: エージェント
9: 検証代行エージェント
10:インターフェース部
11:エンジンコード読み出し部
12:読み出しパターン格納部
13:一方向関数計算部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a security technology for information processing in an environment in which a large number of distributed computers are connected via a network, and in particular, in a multi-agent information processing by a mobile code, the mobile code is executed when the mobile code is executed. The present invention relates to a mobile code execution system that guarantees that unauthorized processing will not be performed.
[0002]
With the development of personal computers and the development of computer network technology, a large computer is used as the main host, and a terminal is hung from the central processing system that relies on the main host for all information processing. The mainstream is a client-server system in which a computer server using a plurality of supercomputers installed on a network and a database server using a computer having a large-scale storage device are appropriately selected to perform desired information processing. It is coming.
[0003]
Furthermore, as a technology trend of computer networks around the world, the Internet, which is a network of networks formed by connecting individual computer networks, is rapidly expanded by using open standards to overcome the boundaries of computers and communication media used. is doing. Not only in terms of scale, but also in terms of usage, it has expanded from experts to the general public, and the Internet has transcended existing frameworks such as companies and countries, and has become a computer network with a global spread. It continues to grow. In addition, intranets that limit the scope of use to a specific organization while taking over the flexibility and convenience of the Internet have recently become widespread.
[0004]
With the expansion of both the size and use of the Internet / Intranet, the relationship between the client and server has changed from a limited range of closed and fixed to everything existing on the network. It has become desirable to evolve into something that can be freely connected and used accordingly. This necessitated an interface that was not tied to available platforms. In addition, as the number of users increases from a limited number of specialists to the general public, a high-level service is provided so that different types of servers on multiple networks can be integrated and handled with a simple interface. Is now required. In order to meet these demands, attention has been paid to a multi-agent method in which an accessing agent realizes advanced information processing by exchanging messages with an agent managing each server.
[0005]
Also, with the widespread use of mobile devices, it is not necessary to respond to cases where the network is not always connected to the network, or to exchange messages with ready-made agents on the server side, but to send advanced agents and flexible information processing from here. For this purpose, a mobile code (mobile agent) system in which the agent itself moves on the network is regarded as a part of the multi-agent system.
[0006]
[Prior art]
The multi-agent system is implemented as follows.
That is, at least one engine (shell, interpreter, etc.) that manages the generation / extinction of agents and communication between agents is placed on each computer. Each agent is given an entity such as a process or a thread so as to function independently of each other and exchange messages with each other. Each agent entity may exist in the engine process or may be a process independent of the engine. Message exchange with an agent on another computer on the network uses TCP (Transmission Control Protocol) or UDP (User Datagram Protocol), etc., indirectly via the engine, or between agents using the engine as an intermediary. Done directly.
[0007]
In the mobile code system, the code of the agent to be executed is transmitted as a message from one computer, and the code is executed by the received computer. Therefore, in general, it is not implemented to directly execute the sent code on the computer system, and the engine executes an interpreter or byte code for executing the code. An implementation as a virtual machine is taken. This is done for the purpose of abstracting the multi-platform and ensuring the security of the computer system described later.
[0008]
In an environment where computers are distributed on a network, especially the Internet, which has a worldwide spread, as a flip side of its flexibility and convenience, who, what, where, by what means, what There are endless possibilities (risks) about what you can do and what you do and the consequences of the consequences. Therefore, it is necessary to restrict access by malicious or carelessness. To achieve this, at the network level, a firewall using an access control computer is installed at the entrance to a network within a limited range, and restrictions are placed on the type of communication destination network and communication protocol. Things have been done.
[0009]
In addition, at the multi-agent engine level, in order to limit the disclosure range and prevent the system from becoming inoperable due to excessive occupation, limit the range, amount, and occupation time of accessible resources, and to computer viruses and other systems In order to prevent unauthorized access, the computer system is always indirectly accessed, or code verification is performed before the mobile code is executed.
[0010]
In addition, due to its mechanism, the Internet generally does not know what route it passes through, and there is a possibility that a malicious third party may impersonate the original party as eavesdropping / falsification of communication data on the route There is sex. In order to prevent this, technologies such as encryption of communication contents and digital signatures for ensuring that the other party applying encryption technology is not authenticated or altered are used. Specifically, there are Kerberos using private key encryption, PEM (Privacy-Enhanced Mail) using public key / private key encryption, PGP (Pretty Good Privacy), and the like.
[0011]
[Problems to be solved by the invention]
As mobile code itself becomes highly functional, protection as a target for securing intellectual property rights is required. In addition, mobile codes are sent to the network in a form accompanied by data, and by exchanging messages with multiple service servers on the network, data can be retrieved and processed one after another. obtain. In that case, since the service server on the network is not always reliable, it is necessary to prevent reading of data that is not necessary for data processing, and data obtained from one service server is kept secret from other service servers. It may be necessary.
[0012]
However, the conventional security technology aims to protect data and systems in the network from unauthorized external access and the like, and the protection relating to the mobile code to be transmitted is not sufficient. There was an engine that made the server providing the service one of the agents so that the contents of the mobile code could not be illegally peeked from the server, but verify that the engine really has the restriction function There was no means.
[0013]
[Means for Solving the Problems]
The present invention solves this problem by using the following processing system and client device.
(1) Consists of a client that requests processing and a server that includes an engine that executes processing requested by the client.
The server
A one-way function calculation unit that performs a calculation process using a one-way function with the engine code of the engine as an input;
In response to a verification instruction from the client, a verification agent agent means for returning the calculation result of the one-way function calculation unit to the client is provided,
The client
It is possible to perform calculation processing by the same one-way function as the one-way function calculation unit of the server,
Regarding the processing request to the server, the server sends a verification request for the engine code to the server, and then receives the calculation result from the server, and inputs the same data as the valid engine code of the server. A verification agent means for checking the calculation processing result by the one-way function and transmitting the processing request to the server if it matches,
A processing system characterized by that.
(2) an engine that executes a process requested by a client, a one-way function calculation unit that performs a calculation process using a one-way function with the engine code of the engine as an input, and according to a verification instruction from the client, A client device that requests processing to a server having a verification agent agent unit that returns a calculation result of a one-way function calculation unit to the client,
It is possible to perform calculation processing by the same one-way function as the one-way function calculation unit of the server,
Regarding the processing request to the server, the server sends a verification request for the engine code to the server, and then receives the calculation result from the server, and inputs the same data as the valid engine code of the server. A client apparatus comprising: verification agent means for checking the calculation processing result by the one-way function and transmitting the processing request to the server if they match.
(3) A client that requests processing and a server that includes an engine that performs processing requested by the client.
The server
A one-way function calculation unit that performs a calculation process using a one-way function with the engine code of the engine as an input;
In response to a decryption request to be described later, it is checked whether or not encrypted data to be described later can be decrypted by the calculation result of the one-way function calculation unit, and if it can be decrypted, the contents are executed by the engine. And a verification means,
The client
The processing request to the server includes data encrypted so that the server can decrypt it with the calculation result of the one-way function calculation unit for the valid engine code, and a decryption request thereof A decryption data transmission means for generating the decryption data and transmitting it to the server,
A processing system characterized by that.
[0014]
The engine has a management device for managing access to resources such as memory used by each agent so that other agents cannot access areas that are not explicitly permitted by each agent.
[0015]
FIG. 1 is a principle configuration diagram of the present invention.
In FIG. 1, reference numeral 1 denotes an engine with an illegal read / rewrite prohibition function according to the present invention, and reference numeral 2 denotes a proxy verification apparatus for the engine according to the present invention. Reference numeral 3 denotes a client-side system that requests a service. Reference numeral 4 denotes a server-side engine that realizes the engine 1 with an illegal read / rewrite prohibition function. Reference numeral 5 denotes a resource such as a memory provided in the server side engine 4. Reference numeral 6 denotes an access management apparatus for managing access to the resource 5, 7 to 8 are agents operating using the resource 5, 7 is a server agent, and 8 and 8 'are other agents. Reference numerals 9 to 13 constitute a proxy verification apparatus 2 for verifying the legitimacy of the engine. Reference numeral 9 denotes a verification proxy agent operating on the server side engine 4. Reference numeral 10 denotes an interface unit in the engine. Reference numeral 11 denotes an engine code reading unit existing on primary storage or secondary storage outside the engine, 12 is a reading pattern storage unit for storing a pattern for designating an address of data read from the engine code, and 13 is an engine. This is a one-way function calculation unit that performs a function calculation using the engine code data read from the code reading unit 11 as an input and outputs a fixed-length integer value.
[0016]
The client side system 3 has the following two configurations. One is that an agent that verifies the validity of the server-side engine operates on the client-side engine. The other is that the mobile code itself has the encrypted original execution code and the brought-in data, and further verifies the validity of the engine and the encrypted code after the verification. There is a code of an agent for performing decoding and the like and executing the code. In either case, the server side engine code information is stored on the client side.
[0017]
The mobile code system transmits an execution code and bring-in data to be protected from unauthorized reading / rewriting to a computer on which a server to be used is operating. Therefore, the security of the mobile code must be ensured in the engine in which the mobile code is executed. However, in general, the server side engine 4 is not under the management of the client side system 3. Therefore, in the present invention, the server-side engine 4 is used that makes unauthorized reading and rewriting impossible, and from the client side, it is possible to verify whether the server-side engine is valid, The security of the mobile code sent from the client side is secured.
[0018]
The server-side engine 4 performs access management of resources 5 such as memory used by each agent during execution so that other agents cannot access areas that are not explicitly permitted by each agent. Inside. A server that provides a service implements the service as one of the agents. Then, it becomes impossible to read / write data other than those explicitly specified by the mobile code from each service of the server.
[0019]
On the server-side engine 4, a verification proxy agent 9 that operates as a proxy for verifying the validity of the engine 4 operates. The verification agent 9 is operated by the engine code reading unit 11 outside the engine and the one-way function calculation unit 13 via the interface unit 10 in the engine 4 according to the request message of the verification agent on the client side. Get an integer value that depends on the node and return that integer value to the client's validation agent. Here, the one-way function is also called a secure hash function / Messge Digest function, and specifically includes MD4, MD5, SHA, checksum CRC, and the like. The one-way function has the following properties.
[0020]
1. Outputs a fixed-length integer value by inputting an arbitrary byte string
2. Difficult to find inputs that give the same output
3. Difficult to define inverse function
When the engine code is rewritten to realize illegal processing, the integer value output by the one-way function is different from that in the original engine code, so that rewriting can be detected. Of course, the same value can be coincidentally, but if the integer value is sufficiently large, the probability is practically acceptable. In addition, since it is difficult to find an input that gives the same output, it is difficult to perform additional rewriting to match the rewritten engine code to avoid detection of rewriting. Here, from the viewpoint of security on the server side, what the server side provides to the client side is not limited as it is, but only a meaningless integer value. The integer value is meaningful only when the client knows the contents of the engine code. In other words, for the server side, verification is possible by providing a minimum amount of information.
[0021]
The client-side verification agent checks whether the integer value corresponding to the engine code is a correct value, and verifies that the server-side engine has not been rewritten, that is, is a valid engine.
[0022]
When an agent that verifies the validity of the server-side engine 4 is operating on the client-side engine, security is ensured by transmitting a mobile code only after the verification is completed.
[0023]
If the mobile code itself includes an agent code for verifying the validity of the server-side engine 4, the original execution code and the brought-in data are encrypted and used as the brought-in data. In this encryption, an integer value when a valid engine code is input to the one-way function can be decrypted using a key. When the mobile code first reaches the server-side engine 4, it exchanges messages with the server-side verification agent 9 to receive an integer value when the server-side engine is input to the one-way function. Using the integer value as a key, the encrypted original execution code and the brought-in data are decrypted, and the original agent is operated on the server-side engine 4 to ensure security.
[0024]
Next, an engine validity verification method using the read pattern and the one-way function in the configuration of FIG. 1 will be described with reference to FIGS.
FIG. 2A shows an example of an engine code represented by a plurality of bytes. FIG. 2B shows an example of a read pattern given to such an engine code. The read pattern has the number of bits corresponding to the number of bytes of the engine code, and the sequential bit position is associated with the sequential byte data of the engine code. Therefore, when the engine code is stored in a byte-structured memory, each bit of the read pattern corresponds to a sequential address in the memory.
[0025]
The read pattern is generated based on, for example, a random number. As shown in FIG. 2B, the read pattern is such that only the byte data at the address corresponding to the bit position having the value “1” is read from the memory, and a small number depending on the read pattern is read from the engine code. Extract data.
[0026]
FIG. 3 shows the function of the one-way function. Data read according to the read pattern in FIG. 2 is input to a one-way function and converted into a fixed-length output integer having a value depending on the input data.
[0027]
As shown in FIG. 4, the engine code of the server side engine to be verified is also held on the client side. On the client side, a read pattern is generated, data is extracted from the engine code held by itself, and input to a one-way function to create a client-side output integer. On the other hand, data is extracted from the engine code executed on the server side using the same read pattern, and a server-side output integer is created by a one-way function. The client-side output integer and server-side output integer obtained in this way are compared, and if a match is obtained as shown, the server-side engine is determined to be valid.
[0028]
On the other hand, as shown in FIG. 5, when a part of the server side engine code is rewritten for the purpose of illegal processing, the client side output obtained even if the same processing as in FIG. 4 is performed. The integer and the server-side output integer do not match, and it is determined that the server-side engine code is invalid.
[0029]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 6 is an explanatory diagram showing the execution of mobile code and mobile code on the Internet to which the present invention is applicable. As shown in the figure, a mobile code transmitted from a computer engine moves between computer engines distributed on the Internet, and processes necessary data while exchanging messages with sequential server agents.
[0030]
FIG. 7 is an explanatory diagram showing a configuration example of a system in which a verification agent operates in a client-side engine. In FIG. 7, elements common to the components in the system shown in FIG. 1 are denoted by the same reference numerals. The elements newly shown in FIG. 7 are 14 to 16, 14 is an engine of the client side system, 15 is a verification agent operating on the engine 14, and 16 is a mobile code transmitted from the engine 14.
[0031]
Instead of reading all of the engine code, only the data at the address specified by the read pattern in the engine code is read. Therefore, it is possible to improve the level of security as follows by arbitrarily designating the read pattern at the time of a verification request from the verification agent 15 operating on the engine 14 on the client side.
[0032]
In other words, since it is necessary for the server side to read the engine code and calculate a one-way function for each verification request from the client side, it is impossible to use a legitimate engine at first and an unauthorized engine from the next. . Even if a third party eavesdrops on the contents of the message exchange for engine verification between the client and the server, if the same read pattern is not used again, there is only a meaningless pattern / number pair. Further, as a secondary effect, it is not necessary to read out all of the engine code, so that the time cost for verification can be reduced.
[0033]
There are two methods of using this read pattern: when the verification is performed on the client side engine and when the verification is performed on the server side engine, the effectiveness does not change in either case.
[0034]
The operation when the verification of FIG. 7 is performed on the engine on the client side will be described with reference to the control flow of FIG.
In the system configuration of FIG. 7, a verification agent 15 that verifies the validity of the server-side engine is operated on the client-side engine 14, and before the mobile code is transmitted to the engine 4 on which the server to be used operates. Then, verify the legitimacy of the engine at the other end. First, an engine verification request message is transmitted from the client-side verification agent 15 to the server-side verification agent 9 (1). Here, when the read pattern is used, the pattern is also transmitted. The server-side verification agent 9 obtains an integer value depending on the engine code in the engine code reading unit 11 and the one-way function calculation unit 13 outside the engine via the interface unit 10 in the engine 4, and the integer value Is returned to the verification agent on the client side (2). The advantage of this system configuration is that it is not necessary to transmit (3) the mobile code 16 until the verification of the partner engine is completed, thereby reducing the chances of unauthorized reading and rewriting during transmission and at the transmission destination. is there. Another advantage is that there are few restrictions on the resources used when creating a verification agent.
[0035]
In this way, when the verification agent 15 for verifying the validity of the server-side engine is operated on the client-side engine 14 to exchange messages for engine verification with the server-side verification agent 9. In exchange of these messages, mutual authentication, electronic signature of the message, and encryption may be performed. Then, after verifying the authenticity of the verification request message from the client side, the verification agent on the server side starts the verification procedure to prevent leakage of unnecessary information, and false verification request messages are frequently used due to malicious intent. It is possible to avoid an engine overload state on the server side when is transmitted. In addition, since the client side confirms the authenticity of the integer value message for verification from the server side, it is possible to prevent the verification from being disturbed by a third party's false or falsified message transmission.
[0036]
Next, the case where the verification agent is operated on the engine on the server side will be described.
FIG. 9 shows an example of a mobile code transmitted from the client side to the engine on which the server to be used is operating in this case. The mobile code is composed of an execution code portion and a bring-in code portion.
[0037]
The execution code portion stores engine verification agent code that verifies the validity of the engine, decrypts the encrypted code after verification, and executes the code. In the bring-in data portion, an encrypted original execution code and its bring-in data are stored. The encryption is performed so that an integer value obtained by inputting the engine code into the one-way function can be decrypted as a key. When the mobile code reaches the server side engine, the engine verification agent is activated. As shown in the control flow in FIG. 10, the engine verification agent first transmits a verification request message to the verification proxy agent. Here, when the read pattern is used, the pattern is also transmitted. The verification agent 9 obtains an integer value depending on the engine code in the engine code reading unit and the one-way function calculation unit outside the engine via the interface unit 10 in the engine, and returns the integer value to the verification agent. Using the integer value as a key, the verification agent decrypts the execution code of the agent to be started on this engine in the bring-in data and the bring-in data, and starts up on this engine. The advantage of this system configuration is that since the exchange of messages for verification is performed locally on the server-side engine, there is a low possibility that unauthorized reading or rewriting will be performed by a third party.
[0038]
In this way, when the verification agent is operated on the server-side engine, the original execution code and its execution code are sent as bring-in data of the mobile code to be transmitted from the client side to the engine on which the server to be used is operating. In the case of a system in which data is encrypted and stored and decrypted using the integer value obtained by inputting the engine code obtained from the verification agent as a one-way function as a key, the server A unique key is added for each encryption. When the public key is used for encryption and the data obtained from the server is newly brought into the data, as shown in FIG. 11, the public key encryption of the client or the server that needs to use the data in the middle is used. Perform the encryption used. The advantage of this method is that when multiple servers are used while the mobile code is moving, the risk of reading and rewriting the execution code and data other than the predetermined server and client itself is further reduced. It is.
[0039]
Furthermore, as shown in FIG. 12, it can be set as the structure which adds the self-verification apparatus 17 of an engine to the server side. In this case, the self-verification device 17 periodically obtains an integer value depending on the engine code in the engine code reading unit 11 and the one-way function calculation unit 13 outside the engine during the startup and operation of the server engine. Self-verification of engine code rewriting is performed by comparing with correct values. The advantage of this method is that by performing self-verification on the server side, unauthorized reading / rewriting of the mobile code on the client side can be prevented in advance, thereby maintaining the trust of the server.
[0040]
【The invention's effect】
According to the present invention, when the mobile code is executed, only the part specified by the explicit description in the mobile code is disclosed to the server among the data (including the execution code) of the mobile code. This is guaranteed by the mobile code execution engine itself used in the server, and the guarantee can be confirmed on the client side. Therefore, when sending a mobile code, it is possible for a destination server to disclose only necessary information in the mobile code to the other server regarding the operation of that server. A part of the mobile code may be disclosed to individual servers, such as a collection of information and a series of data processing operations consisting of multiple steps. The mobile code can be used safely when the information acquired from each server needs to be kept secret from other servers.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the basic configuration of the present invention.
FIG. 2 is an explanatory diagram of engine validity verification processing (part 1) according to the present invention;
FIG. 3 is an explanatory diagram of engine validity verification processing (part 2) according to the present invention.
FIG. 4 is an explanatory diagram of engine validity verification processing (part 3) according to the present invention;
FIG. 5 is an explanatory diagram of engine validity verification processing (part 4) according to the present invention;
FIG. 6 is an explanatory diagram showing execution of a multi-agent system and a mobile code on the Internet.
FIG. 7 is an explanatory diagram showing a configuration example of a system in which a verification agent operates in a client-side engine.
FIG. 8 is a control flow of a system for operating a verification agent on a client-side engine.
FIG. 9 is an explanatory diagram of a mobile code of a system for operating a verification agent on a server-side engine.
FIG. 10 is a diagram showing a control flow of a system for operating a verification engine on a server-side engine.
FIG. 11 is an explanatory diagram showing a configuration example of a mobile code.
FIG. 12 is an explanatory diagram showing a configuration example in which a self-verification device is added to an engine.
[Explanation of symbols]
1: Engine with illegal read / rewrite prohibition function
2: Agency for verification of engine correctness
3: Client side system
4: Server-side engine
5: Resources
6: Access management device
7: Server agent
8: Agent
9: Verification agent
10: Interface section
11: Engine code reading unit
12: Read pattern storage unit
13: One-way function calculator

Claims (3)

処理を依頼するクライアントと、クライアントから依頼された処理を実行するエンジンを備えるサーバとからなり、It consists of a client that requests processing and a server that has an engine that executes the processing requested by the client.
前記サーバは、The server
前記エンジンのエンジンコードを入力とした一方向関数による計算処理を行う一方向関数計算部と、A one-way function calculation unit that performs a calculation process using a one-way function with the engine code of the engine as an input;
前記クライアントからの検証指示に応じて、前記一方向関数計算部の計算結果を前記クライアントへ返す検証代行エージェント手段と、を設け、In response to a verification instruction from the client, a verification agent agent means for returning the calculation result of the one-way function calculation unit to the client is provided,
前記クライアントは、The client
前記サーバの前記一方向関数計算部と同じ一方向関数による計算処理を行うことが可能で、It is possible to perform calculation processing by the same one-way function as the one-way function calculation unit of the server,
前記サーバへの処理依頼に関して、前記サーバに対し、そのエンジンコードの検証要求を送信し、その後前記サーバから前記計算結果が届くと、前記サーバの正当な前記エンジンコードと同じデータを入力とした自らの前記一方向関数による計算処理結果と照合し、それが合致していれば、当該処理依頼を前記サーバへ送信する検証エージェント手段を設けた、Regarding the processing request to the server, the server sends a verification request for the engine code to the server, and then receives the calculation result from the server, and inputs the same data as the valid engine code of the server. A verification agent means for verifying the calculation processing result by the one-way function and transmitting the processing request to the server if it matches,
ことを特徴とする処理システム。A processing system characterized by that.
クライアントから依頼された処理を実行するエンジンと、当該エンジンのエンジンコードを入力とした一方向関数による計算処理を行う一方向関数計算部と、An engine that executes processing requested by the client, a one-way function calculation unit that performs calculation processing by a one-way function using the engine code of the engine as an input,
前記クライアントからの検証指示に応じて、前記一方向関数計算部の計算結果を前記クライアントへ返す検証代行エージェント手段と、を有するサーバへ、処理を依頼するクライアント装置であって、A client device that requests processing to a server having verification agent means that returns a calculation result of the one-way function calculation unit to the client in response to a verification instruction from the client,
前記サーバの前記一方向関数計算部と同じ一方向関数による計算処理を行うことが可能で、It is possible to perform calculation processing by the same one-way function as the one-way function calculation unit of the server,
前記サーバへの処理依頼に関して、前記サーバに対し、そのエンジンコードの検証要求を送信し、その後前記サーバから前記計算結果が届くと、前記サーバの正当な前記エンジンコードと同じデータを入力とした自らの前記一方向関数による計算結果と照合し、それが合致していれば、当該処理依頼を前記サーバへ送信する検証エージェント手段を設けた、Regarding the processing request to the server, the server sends a verification request for the engine code to the server, and then receives the calculation result from the server, and inputs the same data as the valid engine code of the server. A verification agent means for verifying the calculation result by the one-way function and transmitting the processing request to the server if it matches,
ことを特徴とするクライアント装置。A client device.
処理を依頼するクライアントと、クライアントから依頼された処理を行うエンジンを備えるサーバとからなり、It consists of a client that requests processing and a server that has an engine that performs the processing requested by the client.
前記サーバは、The server
前記エンジンのエンジンコードを入力とした一方向関数による計算処理を行う一方向関数計算部と、A one-way function calculation unit that performs a calculation process using a one-way function with the engine code of the engine as an input;
後述の復号化要求に応じて、後述の暗号化されたデータを前記一方向関数計算部の計算結果で復号化できるかどうかを調べ、復号化できた場合にはその内容を前記エンジンに実行させる検証手段と、を設け、In response to a decryption request to be described later, it is checked whether or not encrypted data to be described later can be decrypted by the calculation result of the one-way function calculation unit. And a verification means,
前記クライアントは、The client
前記サーバへの処理依頼に関して、その内容を、前記サーバが正当な前記エンジンコードに対する前記一方向関数計算部の計算結果で復号化できるように暗号化したデータおよび、それの復号化要求を含む形の復号化用データを生成して前記サーバへ送信する復号化用データ送信手段を設けた、The processing request to the server includes data encrypted so that the server can decrypt the content with the calculation result of the one-way function calculation unit for the valid engine code, and a decryption request thereof A decryption data transmission means for generating the decryption data and transmitting the decryption data to the server,
ことを特徴とする処理システム。A processing system characterized by that.
JP05865197A 1997-03-13 1997-03-13 Processing system and client device Expired - Fee Related JP3905170B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05865197A JP3905170B2 (en) 1997-03-13 1997-03-13 Processing system and client device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05865197A JP3905170B2 (en) 1997-03-13 1997-03-13 Processing system and client device

Publications (2)

Publication Number Publication Date
JPH10254840A JPH10254840A (en) 1998-09-25
JP3905170B2 true JP3905170B2 (en) 2007-04-18

Family

ID=13090498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05865197A Expired - Fee Related JP3905170B2 (en) 1997-03-13 1997-03-13 Processing system and client device

Country Status (1)

Country Link
JP (1) JP3905170B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3761147B2 (en) * 2000-06-07 2006-03-29 日本電信電話株式会社 Information display system and gateway device
JP2003044297A (en) 2000-11-20 2003-02-14 Humming Heads Inc Information processing method and device controlling computer resource, information processing system, control method therefor, storage medium and program
JP2002229790A (en) * 2001-01-30 2002-08-16 Ffc:Kk Program composing method, program composing program, fraudulent use preventing function adding method, and fraudulent use preventing function adding program
CN101213560B (en) 2005-06-28 2011-06-01 松下电器产业株式会社 Verification method, information processing device, and integrated circuit
WO2008001823A1 (en) * 2006-06-27 2008-01-03 Science Park Corporation Computer data management method, program, and recording medium
US8453206B2 (en) 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program
JP4817153B2 (en) * 2009-11-06 2011-11-16 Necインフロンティア株式会社 Authentication method for updating software incorporated in information terminal, system thereof and program thereof
JP5533935B2 (en) * 2012-05-10 2014-06-25 トヨタ自動車株式会社 Software distribution system and software distribution method

Also Published As

Publication number Publication date
JPH10254840A (en) 1998-09-25

Similar Documents

Publication Publication Date Title
CN101479984B (en) Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
US6148402A (en) Apparatus and method for remotely executing commands using distributed computing environment remote procedure calls
JP4668619B2 (en) Device key
JP3466025B2 (en) Method and apparatus for protecting masquerade attack in computer network
US7836121B2 (en) Dynamic executable
JP4689945B2 (en) Resource access method
JP4689946B2 (en) A system that executes information processing using secure data
US5987134A (en) Device and method for authenticating user's access rights to resources
EP1542112A1 (en) Open type general-purpose attack-resistant cpu, and application system thereof
JP4256361B2 (en) Authentication management method and system
US6990582B2 (en) Authentication method in an agent system
CN108418691A (en) Dynamic network identity identifying method based on SGX
CN111431707B (en) Service data information processing method, device, equipment and readable storage medium
KR19980032189A (en) Data communication systems
JP2004265026A (en) Application authentication system and device
JP2007511810A (en) Proof of execution using random number functions
US9443067B1 (en) System for the distribution and deployment of applications, with provisions for security and policy conformance
Alfalayleh et al. An overview of security issues and techniques in mobile agents
CN107948235B (en) JAR-based cloud data security management and audit device
CN114244508A (en) Data encryption method, device, equipment and storage medium
JP3905170B2 (en) Processing system and client device
US20060053288A1 (en) Interface method and device for the on-line exchange of content data in a secure manner
CN114372245A (en) Block chain-based Internet of things terminal authentication method, system, device and medium
CA2202118A1 (en) Protected persistent storage access for mobile applications
CN111651740B (en) Trusted platform sharing system for distributed intelligent embedded system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140119

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees