(57)【要約】  通信端末装置は、通信相手との通信に先立って実行されるべき処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持する記憶部を備えている。通信命令実行制御部は、前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する。セキュリティゲート進入処理部は、前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更する。セキュリティゲート退出処理部は、前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻す。
2007055169.tif 000002
【特許請求の範囲】
【請求項１】
通信相手との通信に先立って実行されるべき処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持する記憶部と、
前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、
前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、
前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部と
を具備する通信端末装置。
【請求項２】
請求の範囲１記載の通信端末装置において、
通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含む
通信端末装置。
【請求項３】
請求の範囲１記載の通信端末装置において、
通信相手との通信に先立って実行されるべき前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含む
通信端末装置。
【請求項４】
請求の範囲２または３記載の通信端末装置において、
前記前処理は課金処理を含む
通信端末装置。
【請求項５】
請求の範囲２または３記載の通信端末装置において、
前記前処理は著作権管理処理を含む
通信端末装置。
【請求項６】
請求の範囲１乃至５の何れか１項に記載の通信端末装置において、
前記属性値が、前記クライアントアプリケーションのセキュリティレベルを示す属性値である
通信端末装置。
【請求項７】
請求の範囲６記載の通信端末装置において、
前記通信命令実行制御部は、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行する
通信端末装置。
【請求項８】
請求の範囲１乃至５の何れか１項に記載の通信端末装置において、
前記属性値が、前記クライアントアプリケーションのセキュリティゲート進入状態を示す属性値である
通信端末装置。
【請求項９】
請求の範囲８記載の通信端末装置にお８いて、
前記通信命令実行制御部は、前記クライアントアプリケーションがセキュリティゲート進入状態にある場合、通信命令を実行する
通信端末装置。
【請求項１０】
請求の範囲１乃至５の何れか１項に記載の通信端末装置において、
前記属性値が、前記クライアントアプリケーションのセキュリティレベルを示す属性値と前記クライアントアプリケーションのセキュリティゲート進入状態を示す属性値とを含む
通信端末装置。
【請求項１１】
請求の範囲１０記載の通信端末装置において、
前記通信命令実行制御部は、前記クライアントアプリケーションがセキュリティゲート進入状態にある場合、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを省略して通信命令を実行し、前記クライアントアプリケーションがセキュリティゲート進入状態にない場合、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行する
通信端末装置。
【請求項１２】
請求の範囲１０記載の通信端末装置において、
前記セキュリティゲート進入処理部は、セキュリティゲート進入状態となったクライアントアプリケーションのセキュリティレベルを変更するものであり、
前記セキュリティゲート退出処理部は、セキュリティゲート退出状態となったクライアントアプリケーションのセキュリティレベルを元に戻すものであり、
前記通信命令実行制御部は、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行する
通信端末装置。
【請求項１３】
請求の範囲１０記載の通信端末装置において、
前記通信命令実行制御部は、前記クライアントアプリケーションがセキュリティゲート進入状態にある場合、前記クライアントアプリケーションのセキュリティレベルを更新した後、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行した後にセキュリティレベルを元の値に戻す
通信端末装置。
【請求項１４】
請求の範囲１１乃至１３のいずれかに記載の通信端末装置において、
セキュリティゲート進入状態にある前記クライアントアプリケーションの走行中にシグナルまたは割り込みが発生した際、前記クライアントアプリケーションのシグナル／割り込みハンドラを呼び出す前に前記クライアントアプリケーションのセキュリティレベルをセキュリティゲート進入前の値に戻し、前記シグナル／割り込みハンドラによる処理が終わったとき若しくは終わった後にセキュリティゲート進入後の値に戻すセキュリティゲート一時退出処理部を備える
通信端末装置。
【請求項１５】
請求の範囲１乃至５の何れか１項に記載の通信端末装置において、
前記セキュリティゲート進入処理部によって前記クライアントアプリケーションの前記属性値を変更した後、前記セキュリティゲート退出処理部によって前記クライアントアプリケーションの前記属性値を元に戻すまでの前記クライアントアプリケーションの走行中にシグナルまたは割り込みが発生した際、前記クライアントアプリケーションのシグナル／割り込みハンドラを呼び出す前に前記クライアントアプリケーションの前記属性値を前記セキュリティゲート進入処理部による変更前の値に戻し、前記シグナル／割り込みハンドラによる処理が終わったとき若しくは終わった後に前記セキュリティゲート進入処理部による変更後の値に戻すセキュリティゲート一時退出処理部を備える
通信端末装置。
【請求項１６】
請求の範囲６、７、１０〜１４の何れか１項に記載の通信端末装置において、
前記セキュリティゲート進入処理部は、前記クライアントアプリケーションのセキュリティレベルを特権レベルに変更する
通信端末装置。
【請求項１７】
請求の範囲１〜１６の何れか１項に記載の通信端末装置において、
前記ライブラリ関数は、前処理記述の前に第１特定命令が配置され、呼び出し元に戻る出口の前に第２特定命令が配置されている
通信端末装置。
【請求項１８】
請求の範囲１〜１６の何れか１項に記載の通信端末装置において、
前記ライブラリ関数は、前処理記述の前に第１特定命令が配置され、第１特定命令が配置された箇所以降で必ず実行される経路上に、呼び出し元に戻る前に第２特定命令を含む関数を経由するように前記クライアントアプリケーションのスタックを改変する命令列が配置されている
通信端末装置。
【請求項１９】
請求の範囲１〜１６の何れか１項に記載の通信端末装置において、
前記ライブラリ関数は、前処理記述の前に第１特定命令が配置されており、
前記セキュリティゲート進入処理部は、前記クライアントアプリケーションの前記属性値を変更した場合、前記クライアントアプリケーションが呼び出し元に戻る前に第２特定命令を含む関数を経由するように前記クライアントアプリケーションのスタックを改変する
通信端末装置。
【請求項２０】
請求の範囲１〜１６の何れか１項に記載の通信端末装置において、
前記予め定められたアドレス範囲が、ＲＯＭ領域内のアドレス範囲である
通信端末装置。
【請求項２１】
請求の範囲１〜１６の何れか１項に記載の通信端末装置において、
前記セキュリティゲート進入処理部は、前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かのチェックに加えて、前記第１特定命令のアドレスがプログラムエリアであるか否かのチェックを行う
通信端末装置。
【請求項２２】
請求の範囲１〜１６の何れか１項に記載の通信端末装置において、
前記第１特定命令と前記第２特定命令は、それぞれセキュリティゲート進入要求、退出要求をオペレーティングシステムに対して発行するシステムコール命令である
通信端末装置。
【請求項２３】
サーバアプリケーションを保持する記憶部と、
証明書が正当であるか否かを判別する証明書検証部と、
クライアントアプリケーションから受信したデータに付加された証明書が前記証明書検証部で正当であると判別された場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して前記サーバアプリケーションに伝達する通信処理部と
を具備するサーバ端末装置。
【請求項２４】
サーバアプリケーションを保持する記憶部と、
暗号化データを自装置の公開鍵で復号化する復号化部と、
クライアントアプリケーションから受信した暗号化データが前記復号化部で復号化できた場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して復号化したデータを前記サーバアプリケーションに伝達する通信処理部と
を具備するサーバ端末装置。
【請求項２５】
ネットワークで接続された通信端末装置とサーバ端末装置とを備え、
前記通信端末は、
通信相手との通信に先立って実行されるべき処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持する記憶部と、
前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、
前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、
前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部とを具備し、
通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含み、
前記サーバ端末装置は、
サーバアプリケーションを保持する記憶部と、
証明書が正当であるか否かを判別する証明書検証部と、
クライアントアプリケーションから受信したデータに付加された証明書が前記証明書検証部で正当であると判別された場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して前記サーバアプリケーションに伝達する通信処理部とを具備する
通信システム。
【請求項２６】
ネットワークにより接続された通信端末装置とサーバ端末装置とを備え、
前記通信端末装置は、
通信相手との通信に先立って実行されるべき処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持する記憶部と、
前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、
前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、
前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部とを具備し、
通信相手との通信に先立って実行されるべき前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含み、
サーバ端末装置は、
サーバアプリケーションを保持する記憶部と、
暗号化データを自装置の公開鍵で復号化する復号化部と、
クライアントアプリケーションから受信した暗号化データが前記復号化部で復号化できた場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して復号化したデータを前記サーバアプリケーションに伝達する通信処理部とを具備する。
通信システム。
【請求項２７】
通信端末装置にて、通信相手との通信に先立って実行する処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持するステップと、
前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御するステップと、
前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するステップと、
前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理とを実行するステップと
を具備する情報処理方法。
【請求項２８】
請求の範囲２７記載の情報処理方法において、
通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含む
情報処理方法。
【請求項２９】
請求の範囲２７記載の情報処理方法において、
通信相手との通信に先立って実行する前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含む
情報処理方法。
【請求項３０】
通信端末装置にて、通信相手との通信に先立って実行する処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持する記憶部を有するコンピュータにより実行される方法のためのコンピュータ読み取り可能なソフトウェアプロダクトであって、
前記方法は、
前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御するステップと、
前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するステップと、
前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すステップとを具備する
コンピュータ読み取り可能なソフトウェアプロダクト。
【請求項３１】
請求の範囲３０記載のコンピュータ読み取り可能なソフトウェアプロダクトにおいて、
通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含む
コンピュータ読み取り可能なソフトウェアプロダクト。
【請求項３２】
請求の範囲３０記載のコンピュータ読み取り可能なソフトウェアプロダクトであって、
通信相手との通信に先立って実行する前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含む
コンピュータ読み取り可能なソフトウェアプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末装置および通信システムに関し、特に通信相手との通信に先立って必ず特定の処理が行われる通信端末装置および通信システムに関する。
【背景技術】
【０００２】
クライアントアプリケーションプログラム（以下、クライアントアプリケーションと略す）が動作する通信端末装置と、サーバアプリケーションプログラム（以下、サーバアプリケーションと略す）が動作するサーバ端末装置とをインターネットなどのネットワークを通じて相互に通信可能に接続し、通信端末装置からの要求をネットワーク経由でサーバ端末装置へ送信し、サーバ端末装置がその要求に応答してサービスなどを提供する通信システムが、数多く提案ないし実用化されている（例えば特開２００５−１２８９６０号公報参照）。【０００３】
このような通信システムにおいて、サーバ端末装置との通信に先立って特定の処理が通信端末装置で行われるようにする仕組みは、図４３の概念図に示されるように、通信端末装置４３００におけるクライアントアプリケーション４３０１と通信処理部４３０３との間に前処理部４３０２を介在させ、クライアントアプリケーション４３０１がサーバ端末装置４３１０上のサーバアプリケーション４３１１と通信する場合、サーバアプリケーション４３１１に対するデータを前処理部４３０２に渡し、前処理部４３０２が、この渡されたデータに基づいて特定の処理を行った後、通信処理部４３０３にデータを渡してサーバ端末４３１０上の通信処理部４３１２との間で通信を行わせる方法である。【０００４】
このシステムでは、クライアントアプリケーション４３０１が前処理部４３０２をバイパスしてデータを通信処理部４３０３に直接渡して通信することが可能である。従って、通信端末装置においてサーバ端末装置との通信に先立って特定の処理を実行することは可能であるが、その実行を保証することが困難である。
また、改ざんや偽造された通信処理をクライアントアプリケーション４３０１が実行する可能性がある。従って、クライアントアプリケーション４３０１が、通信前に必要な前処理が未遂にもかかわらず通信前に必要な前処理が完了したかのように振舞う不正な通信処理を介してサーバアプリケーション４３１１と通信することが可能である。
通信端末装置４３００で通信前に必要な前処理を行ったクライアントアプリケーション４３０１からの通信か否かをサーバ端末装置４３１０が判別できない。通信前に必要な前処理を行ったクライアントアプリケーション４３０１からの通信とそうでない通信とをサーバ端末装置４３１０側で区別する方法がない。
以上のことから、通信端末装置においてサーバ端末装置との通信に先立って実行する特定の処理としては、実行されていてもいなくても大きな問題にならない処理に限定せざるを得ず、例えば課金処理などのサーバ端末装置にとって重要な処理は通信端末装置側でなくサーバ端末装置側で実施する必要があった。【０００５】
上記説明と関連して、情報管理システムが特開２００４−２１３６４０号公報に開示されている。この従来例の情報管理システムは、データを記憶する複数の端末装置と、データに関する管理情報を管理する情報管理サーバとがネットワークを介して接続されている。前記情報管理サーバは、前記管理情報を記憶するための管理情報記憶部と、前記各端末装置との間でセキュアな通信路を形成し、当該通信路を介して各端末装置と通信する第１セキュア通信部とを備えている。前記各端末装置は、耐タンパモジュールを備え、前記耐タンパモジュールは、前記データをセキュアに記憶するためのデータ記憶部と、前記データ記憶手段に記憶されたデータに対して前記管理情報に影響を及ぼす処理をセキュアに実行する実行部と、前記第１セキュア通信手段との間でセキュアな通信路を形成し、当該通信路を介して前記管理情報に影響を及ぼす処理を実行した旨を示す完了通知を送信する第２セキュア通信部とを備えている。【０００６】
また、データ処理装置のデータ処理方式が特開平５−１３４９１７号公報に開示されている。この従来のデータ処理装置のデータ処理方式では、データ処理装置はファイル形式でデータを記し処理するオペレーティングシステムを備えている。データ処理方式は、ファイル内の分割された有意なフィールドに対応して登録されたアクセス前処理およびアクセス後処理と、前記ファイル内のフィールドに対するアクセス時に該フィールドに対応付けられたアクセス前処理を実行するアクセス前処理実行部と、このアクセス前処理実行手段によるアクセス前処理の結果に応じて該フィールドに対するアクセスの可否の決定を行うアクセス許可決定部と、このアクセス許可決定手段によりアクセスが許可された場合に該フィールドに対するアクセスを行うフィールドアクセス部と、このフィールドアクセス手段によるフィールドのアクセスの後に該フィールドに対応付けられたアクセス後処理を実行するアクセス後処理実行部とを備えている。【０００７】
また、ネットワークシステムのセキュリティ管理方法が特開平１０−２６９１８４号公報に開示されている。この従来例は、ネットワークを介してクライアント、業務サーバ及び統合認証サーバが相互に通信可能なネットワークシステムのセキュリティ管理方法である。クライアントから業務サーバへ証明証の情報を送信して業務要求を行い、業務サーバから統合認証サーバへ証明証の情報を送信して証明証の確認要求を行い、統合認証サーバによって証明証の確認とユーザの該業務サーバへのアクセス権限のチェックとを行い、正当であれば業務サーバへユーザＩＤとパスワードを送信し、該業務サーバによってユーザＩＤとパスワードによる認証を行う。
【発明の開示】
【０００８】
本発明の目的は、サーバ端末装置と通信端末装置とが通信する際に、通信前に必要な前処理の実行を通信端末装置内で保証する技術を提供することにある。
本発明の他の目的は、通信前に必要な前処理が未遂にもかかわらず通信前に必要な前処理が完了したかのように振舞う不正な通信処理を介して通信端末装置がサーバ端末装置と通信することを防止する技術を提供することにある。
本発明の更に他の目的は、通信端末装置で通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別する技術を提供することにある。
【０００９】
本発明の観点では、通信端末装置は、通信相手との通信に先立って実行する処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持する記憶部と、前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部とを備えている。
【００１０】
通信端末装置は、通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含むでいる。通信相手との通信に先立って実行する前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含んでいてもよい。前記前処理は課金処理を含むでいてもよいし、前記前処理は著作権管理処理を含んでもよい。
【００１１】
本発明の他の観点では、サーバ端末装置は、サーバアプリケーションを保持する記憶部と、証明書が正当であるか否かを判別する証明書検証部と、クライアントアプリケーションから受信したデータに付加された証明書が前記証明書検証部で正当であると判別された場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して前記サーバアプリケーションに伝達する通信処理部とを備えている。
サーバ端末装置は、サーバアプリケーションを保持する記憶部と、暗号化データを自装置の公開鍵で復号化する復号化部と、クライアントアプリケーションから受信した暗号化データが前記復号化部で復号化できた場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して復号化したデータを前記サーバアプリケーションに伝達する通信処理部とを備えている。
【００１２】
本発明の他の観点では、通信システムは、通信端末装置とサーバ端末装置とを備え、それらはネットワークを通じて通信可能に接続されている。
【００１３】
本発明の他の観点では、情報処理方法は、通信端末装置にて、通信相手との通信に先立って実行する処理の実行前に第１特定命令が実行され且つ呼び出し元に戻る前に第２特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第１特定命令の許容アドレス範囲を保持ステップと、前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御するステップと、前記クライアントアプリケーションが第１特定命令を実行して内部割り込みが発生した際、前記第１特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するステップと、前記クライアントアプリケーションが第２特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すステップにより達成される。
【００１４】
前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含ンでも良いし、前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含んでもよい。
【００１５】
本発明において、通信端末装置のクライアントアプリケーションがライブラリ関数を呼び出すと、サーバ端末装置との通信に先立って実行する処理の実行前に第１特定命令が実行され、内部割り込みが発生する。この内部割り込みにかかる例外処理において、セキュリティゲート進入処理部により、第１特定命令のアドレスが許容アドレス範囲内であるか否かがチェックされ、許容アドレス範囲内であれば、クライアントアプリケーションの属性値が通信命令を実行できるように変更され、許容アドレス範囲内でなければそのような属性値の変更は行われない。この後、呼び出されたライブラリ関数の後続の処理が実行され、それに伴いサーバ端末装置との通信に先立って実行する処理が実行される。そして、ライブラリ関数の処理が通信命令の箇所に進むと、その通信命令の実行により内部割り込みが発生し、その内部割り込みにかかる例外処理において、通信命令実行制御部により、クライアントアプリケーションの属性値に基づいて通信命令の実行可否が制御される。従って、通信命令の実行が許されていないクライアントアプリケーションが通信命令へ直接ジャンプした場合、第１特定命令が実行されないので、属性値は通信命令を実行できない状態のままであるのに対し、第１特定命令が許容アドレス範囲内に存在する正規なライブラリ関数を呼び出した場合には、第１特定命令の実行によって通信命令が使用できるように属性値が変更されているため、通信命令の実行が可能となる。またこの場合、第１特定命令の後に配置された、通信相手との通信に先立って実行する処理が必ず実行されることになる。そして、ライブラリ関数から呼び出し元のクライアントアプリケーションに戻る前に、クライアントアプリケーションが第２特定命令を実行すると、内部割り込みが発生し、この内部割り込みにかかる例外処理において、セキュリティゲート退出処理部により、クライアントアプリケーションの属性値が通信命令を実行できない元の状態に戻される。これにより、正規のライブラリ関数に含まれる通信命令以外の通信命令の実行が防止される。
【００１６】
通信端末装置のクライアントアプリケーションは第１特定命令が許容アドレス範囲内に存在する正規なライブラリ関数を呼び出す以外に通信命令を使用する方法がなく、正規なライブラリ関数を呼び出せば、サーバ端末装置のサーバアプリケーションとの通信に先立って実行する処理が必ず実行される。従って、本発明によれば、サーバ端末装置と通信端末装置とが通信する際に、通信前に必要な前処理の実行を通信端末装置内で保証することができる。
【００１７】
また、クライアントアプリケーションから呼び出されるライブラリ関数およびＯＳに処理を追加することで実現されている。従って、本発明によれば、通信前に必要な前処理の実行を通信端末装置内で保証するために、クライアントアプリケーションに対して変更を加える必要がない。
さらに、正規にライブラリ関数を呼び出してサーバ端末装置と通信した通信端末装置だけが、正しい証明書の作成あるいは通信相手の秘密鍵を用いた暗号化が行えるため、サーバ端末装置でその証明書を検証するか、或いは公開鍵で復号化すれば、通信端末装置で通信前に必要な前処理を行った通信か否かを判別できる。従って、通信相手との通信に先立って実行する処理として、前処理に加えて、前処理を行ったことを通信相手に証明する証明書を作成する処理あるいは通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理を含ませる発明にあっては、通信端末装置で通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別することができる。
またさらに、正規にライブラリ関数を呼び出してサーバ端末装置と通信した通信端末装置だけが、正しい証明書の作成あるいは通信相手の秘密鍵を用いた暗号化が行えるため、サーバ端末装置でその証明書を検証するか、或いは公開鍵で復号化すれば、そのような不正な通信処理かどうかを判別できる。従って、通信相手との通信に先立って実行する処理として、前処理に加えて、前処理を行ったことを通信相手に証明する証明書を作成する処理あるいは通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理を含ませる発明にあっては、通信前に必要な前処理が未遂にもかかわらず通信前に必要な前処理が完了したかのように振舞う不正な通信処理を介して通信端末装置がサーバ端末装置と通信することを防止できる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の通信端末装置のハードウェア構成の一例を示すブロック図である。
【図２】図２は、本発明の第１実施例による通信端末装置のブロック図である。
【図３】図３は、本発明の第２実施例による通信端末装置のブロック図である。
【図４】図４は、本発明の第２実施例の変形例による通信端末装置のブロック図である。
【図５】図５は、本発明の第３実施例による通信端末装置のブロック図である。
【図６】図６は、本発明の第１実施例によるサーバ端末装置のブロック図である。
【図７】図７は、本発明の第１実施例におけるサーバ端末装置の通信処理部の処理例を示すフローチャートである。
【図８】図８は、本発明の第１実施例におけるサーバ端末装置の証明書検証部の処理例を示すフローチャートである。
【図９】図９は、本発明の第１実施例におけるサーバ端末装置のサーバアプリケーションの処理例を示すフローチャートである。
【図１０】図１０は、本発明の第２実施例におけるサーバ端末装置の通信処理部の処理例を示すフローチャートである。
【図１１】図１１は、本発明の第２実施例におけるサーバ端末装置のサーバアプリケーションの処理例を示すフローチャートである。
【図１２】図１２は、本発明の第３実施例によるサーバ端末装置のブロック図である。
【図１３】図１３は、本発明の第３実施例におけるサーバ端末装置の通信処理部の処理例を示すフローチャートである。
【図１４】図１４は、本発明の第３実施例におけるサーバ端末装置の復号化部の処理例を示すフローチャートである。
【図１５】図１５は、本発明の第１実施例による通信システムのブロック図である。
【図１６】図１６は、本発明の第１実施例における通信システムのセキュリティゲート進入処理部の処理例を示すフローチャートである。
【図１７】図１７は、本発明の第１実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。
【図１８】図１８は、本発明の第１実施例における通信システムのセキュリティゲート退出処理部の処理例を示すフローチャートである。
【図１９】図１９は、本発明の第２実施例による通信システムのブロック図である。
【図２０】図２０は、本発明の第３実施例による通信システムのブロック図である。
【図２１】図２１は、本発明の第４実施例による通信システムのブロック図である。
【図２２】図２２は、本発明の通第４実施例における信システムのセキュリティゲート進入処理部の処理例を示すフローチャートである。
【図２３】図２３は、本発明の第４実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。
【図２４】図２４は、本発明の第４実施例における通信システムのセキュリティゲート退出処理部の処理例を示すフローチャートである。
【図２５】図２５は、本発明の第５実施例による通信システムのブロック図である。
【図２６】図２６は、本発明の第６実施例による通信システムのブロック図である。
【図２７】図２７は、本発明の第７実施例による通信システムのブロック図である。
【図２８】図２８は、本発明の第７実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。
【図２９】図２９は、本発明の第８実施例による通信システムのブロック図である。
【図３０】図３０は、本発明の第９実施例による通信システムのブロック図である。
【図３１】図３１は、本発明の第１０実施例による通信システムのブロック図である。
【図３２】図３２は、本発明の第１０実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。
【図３３】図３３は、本発明の第１１実施例による通信システムのブロック図である。
【図３４】図３４は、本発明の通第１２実施例による信システムのブロック図である。
【図３５】図３５は、本発明の通第１３実施例による信システムのブロック図である。
【図３６】図３６Ａと３６Ｂは、本発明の第１３実施例における通信システムのスタック改変処理部の処理の説明図である。
【図３７】図３７は、本発明の第１４実施例による通信システムのブロック図である。
【図３８】図３８は、本発明の第１５実施例による通信システムのブロック図である。
【図３９】図３９は、本発明の第１６実施例による通信システムのブロック図である。
【図４０】図４０は、本発明の第１６実施例における通信システムのシグナル／割り込み処理部の処理例を示すフローチャートである。
【図４１】図４１は、本発明の第１７実施例による通信システムのブロック図である。
【図４２】図４２は、本発明の第１８実施例による通信システムのブロック図である。
【図４３】図４３は、従来技術のブロック図である。
【発明を実施するための最良の形態】
【００１９】
以下、添付図面を参照して、本発明の通信端末装置と、それを使用する通信システムを詳細に説明する。【００２０】
＜通信端末装置のハードウェア構成＞
図１は、本発明の通信端末装置のハードウェア構成の一例を示すブロック図である。図１を参照すると、本発明の通信端末装置は、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、表示部４、入力操作部５、ファイルシステム６、ネットワークインタフェースカード（ＮＩＣ）７およびこれらを相互に接続するバス８を備えている。ＲＯＭ２は、読み取り専用のメモリであり、ＣＰＵ１で実行されるオペレーティングシステム（ＯＳ）、ライブラリ関数および固定データなどを記憶する。ＲＡＭ３は、読み書き可能なメモリであり、ＣＰＵ１で実行されるクライアントアプリケーションおよび演算データなどを一時的に記憶する。表示部４は、ＬＣＤなどで構成され、アプリケーション画面などを表示する。入力操作部５はキーボードなどで構成され、ユーザからのデータや指示を入力する。ファイルシステム６は、ハードディスクやＩＣカードなどで構成され、クライアントアプリケーションや各種データを記憶する。ＮＩＣ７は、有線あるいは無線により外部の通信相手と通信するためのものである。このようなハードウェア構成を有する通信端末装置の例としては、パーソナルコンピュータなどの一般的なコンピュータ、ゲーム端末、携帯電話などがある。【００２１】
＜通信端末装置の第１実施例＞
図２は、本発明の第１実施例による通信端末装置の構成を示すブロック図である。図２を参照すると、本発明の第１実施例による通信端末装置は、ＯＳ１１、ライブラリ関数１２、クライアントアプリケーション１３、属性値１４および第１特定命令の許容アドレス範囲１５を、コンピュータ読み取り可能な記録媒体に保持している。【００２２】
ライブラリ関数１２は、自関数で行われる処理のうち通信相手との通信に先立って実行する処理２１の実行前に第１特定命令２２が実行され、且つ呼び出し元に戻る前に第２特定命令２３が実行されるようになっている。典型的には、関数の先頭部分に第１特定命令２２が配置され、呼び出し元に戻る直前の部分に第２特定命令２３が配置される。処理２１は、例えば、課金処理などの前処理と、前処理を行ったことの証明書を作成する処理もしくは通信相手に送るデータをその通信相手の秘密鍵で暗号化する処理を含む。またライブラリ関数１２には、通信相手と通信するための通信命令２４が含まれる。第１特定命令２２、第２特定命令２３および通信命令２４はシステムコール命令であり、その実行時に内部割り込みが発生し、制御がＯＳ１１に移される。また、第１特定命令２２の許容アドレス範囲１５が事前に設定され、第１特定命令２２の実行による内部割り込み時に、ＯＳ１１により参照される。【００２３】
クライアントアプリケーション１３は、ライブラリ関数１２を呼び出すコール命令４１、ライブラリ関数１２内の通信命令２４に直接ジャンプするジャンプ命令４２、および通信命令４３を実行する。
ＯＳ１１は、例えば、クライアントアプリケーション１３毎にセキュリティレベルを設定可能なセキュアＯＳである。ＯＳ１１は、クライアントアプリケーション１３毎の属性値１４を管理している。属性値１４は、クライアントアプリケーション１３が利用する機能やリソースのアクセス制御の判断に用いられる１以上の属性値である。属性値１４の具体例としては、セキュリティレベルを示す属性値、セキュリティゲート進入状態を示す属性値がある。また、第１特定命令２２、第２特定命令２３および通信命令２４、４３の実行によって内部割り込みが発生した際、それらに対応する例外処理として、セキュリティゲート進入処理３１、セキュリティゲート退出処理３２および通信命令実行制御３３を行う機能を持つ。
通信命令実行制御３３では、クライアントアプリケーション１３がライブラリ関数１２を呼び出してその通信命令２４を実行した際、および、クライアントアプリケーションコード上の通信命令４３を実行した際、クライアントアプリケーション１３の属性値１４に基づいて通信命令２４、４３の実行可否を制御する。
セキュリティゲート進入処理３１では、クライアントアプリケーション１３が第１特定命令２２を実行した際、第１特定命令２２のアドレスが許容アドレス範囲１５内であるか否かをチェックし、許容アドレス範囲１５内であれば、クライアントアプリケーション１３の属性値１４を変更する。
セキュリティゲート退出処理３２では、クライアントアプリケーション１３が第２特定命令２３を実行した際、クライアントアプリケーション１３の属性値１４を元に戻す。【００２４】
次に本実施例の通信端末装置の動作を説明する。ここで、クライアントアプリケーション１３の属性値１４は、通信命令を実行することができない値になっているものとする。また、許容アドレス範囲１５には、正規のライブラリ関数１２が配置されているメモリ（例えば図１のＲＯＭ２）のメモリアドレス範囲が設定されているものとする。【００２５】
クライアントアプリケーション１３がコール命令４１によってライブラリ関数１２を呼び出すと、その先頭部分に配置された第１特定命令２２がまず実行され、ＯＳ１１のセキュリティゲート進入処理３１により、クライアントアプリケーション１３の属性値１４が変更される。例えば、通信命令の実行可否をセキュリティレベルで制御する場合にはセキュリティレベルが変更され、通信命令の実行可否をセキュリティゲート進入状態で制御する場合にはセキュリティゲート進入の有無を示す属性値が変更される。なお、この時点ではセキュリティゲート進入状態を示す属性値を変更しておき、通信命令実行制御３３の時点でセキュリティゲート進入状態か否かを判定し、セキュリティゲート進入状態であればセキュリティレベルを変更してから通信命令の実行可否をセキュリティレベルに基づいて判断し、再びセキュリティレベルを元に戻すような処理を行うことも可能である。【００２６】
続いて、通信相手との通信に先立って実行する処理２１が実行された後、通信命令２４がクライアントアプリケーション１３によって実行されると、ＯＳ１１の通信命令実行制御３３により、クライアントアプリケーション１３の属性値１４に基づいて通信命令の実行可否が判定され、実行可であれば通信命令２４の実行が行われ、制御が呼び出し元に戻される。この通信命令２４の実行により、通信端末装置と図示しないサーバ端末装置との間で通信が行われる。【００２７】
続いて、ライブラリ関数１２の処理が進み、呼び出し元に戻る直前に第２特定命令２３が実行されると、ＯＳ１１のセキュリティゲート退出処理３２により、クライアントアプリケーション１３の属性値１４がセキュリティゲート進入前の状態に戻される。【００２８】
その後、クライアントアプリケーション１３が、ライブラリ関数１２の通信命令２４に直接ジャンプする命令４２を実行すると、ジャンプ先の通信命令２４が実行されることにより、制御がＯＳ１１の通信命令実行制御３３に移るが、第１特定命令が実行されていないのでクライアントアプリケーション１３の属性値１４は通信命令を実行できるように変更されていないため、通信命令実行制御３３では、通信命令を実行せずにエラーとする。【００２９】
また、クライアントアプリケーション１３が通信命令４３を直接に実行すると、制御がＯＳ１１の通信命令実行制御３３に移るが、この場合も第１特定命令が実行されていないのでクライアントアプリケーション１３の属性値１４は通信命令を実行できるように変更されていないため、通信命令実行制御３３では、通信命令を実行せずにエラーとする。【００３０】
このようにして本実施例によれば、クライアントアプリケーション１３による通信命令２４、４３およびライブラリ関数１２の不正な使用を防止でき、ライブラリ関数１２の通信命令２４を正しく利用して図示しないサーバ端末装置と通信する場合に処理２１を必ず実行させることが可能となる。【００３１】
＜通信端末装置の第２実施例＞
図３は、本発明の第２実施例による通信端末装置の構成を示すブロック図である。図３を参照すると、本発明の第２実施例による通信端末装置は、ライブラリ関数１２内に第２特定命令２３が配置されておらず、その代わりに、呼び出し元に戻る前に第２特定命令２３を含む関数１６を経由するようにクライアントアプリケーション１３のスタック１７を改変（更新）する命令列２５が配置されている点で、第１実施例の通信端末装置と相違する。ここで、命令列２５の配置場所は、第１特定命令２２が配置された箇所以降で必ず実行される経路上であれば、任意の場所で良い。【００３２】
次に本実施例の通信端末装置の動作を第１実施例の通信端末装置との相違点を中心に説明する。
クライアントアプリケーション１３がコール命令４１によってライブラリ関数１２を呼び出すと、その先頭部分に配置された第１特定命令２２がまず実行され、ＯＳ１１のセキュリティゲート進入処理３１により、クライアントアプリケーション１３の属性値１４が変更される。続いて、命令列２５がクライアントアプリケーション１３によって実行されることにより、クライアントアプリケーション１３に戻る前に関数１６を経由するようにスタック１７が改変される。続いて、通信相手との通信に先立って実行する処理２１が実行された後、通信命令２４がクライアントアプリケーション１３によって実行されると、ＯＳ１１の通信命令実行制御３３により、クライアントアプリケーション１３の属性値１４に基づいて通信命令の実行可否が判定され、実行可であれば、通信命令２４の実行が行われて、制御が呼び出し元に戻される。続いて、ライブラリ関数１２の処理が進み、呼び出し元の情報を得るためにスタック１７をポップすると、関数１６の情報が得られるため、関数１６が呼び出され、その中の第２特定命令２３が実行される。これにより、ＯＳ１１のセキュリティゲート退出処理３２が実行され、クライアントアプリケーション１３の属性値１４がセキュリティゲート進入前の状態に戻される。【００３３】
クライアントアプリケーション１３が、ライブラリ関数１２の通信命令２４に直接ジャンプする命令４２を実行した場合と通信命令４３を実行した場合の動作は、第１実施例と同じである。【００３４】
このようにして本実施例の通信端末装置によれば、クライアントアプリケーション１３による通信命令２４、４３およびライブラリ関数１２の不正な使用を防止でき、ライブラリ関数１２の通信命令２４を正しく利用して図示しないサーバ端末装置と通信する場合に処理２１を必ず実行させることが可能となる。また、ライブラリ関数１２から呼び出し元のクライアントアプリケーション１３に戻る出口が複数存在する場合、ライブラリ関数１２内に第２特定命令を配置する方法では、それらすべての出口の前に第２特定命令を配置する必要があるが、本実施例では、１つの命令列２５を配置しておくだけで済む利点がある。【００３５】
＜通信端末装置の第２実施例の変形例＞
図４は、本発明の第２実施例の変形例による通信端末装置のブロック図である。図４を参照すると、本発明の第２実施例の変形例による通信端末装置は、ライブラリ関数１２内に第２特定命令２３が配置されておらず、その代わりに、ＯＳ１１のセキュリティゲート進入処理３１に、ライブラリ関数１２からクライアントアプリケーション１３に戻る前に第２特定命令２３を含む関数１６を経由するようにクライアントアプリケーション１３のスタック１７を改変（更新）する処理が追加されている点で、第１実施例と相違する。【００３６】
次に本実施例の通信端末装置の動作を第１実施例の通信端末装置との相違点を中心に説明する。
クライアントアプリケーション１３がコール命令４１によってライブラリ関数１２を呼び出すと、その先頭部分に配置された第１特定命令２２がまず実行され、ＯＳ１１のセキュリティゲート進入処理３１により、クライアントアプリケーション１３の属性値１４が変更され、且つ、ライブラリ関数１２からクライアントアプリケーション１３に戻る前に関数１６を経由するようにスタック１７が改変される。続いて、通信相手との通信に先立って実行する処理２１が実行された後、通信命令２４がクライアントアプリケーション１３によって実行されると、ＯＳ１１の通信命令実行制御３３により、クライアントアプリケーション１３の属性値１４に基づいて通信命令の実行可否が判定され、実行可であれば、通信命令２４の実行が行われて、制御が呼び出し元に戻される。続いて、ライブラリ関数１２の処理が進み、呼び出し元の情報を得るためにスタック１７をポップすると、関数１６の情報が得られるため、関数１６が呼び出され、その中の第２特定命令２３が実行される。これにより、ＯＳ１１のセキュリティゲート退出処理３２が実行され、クライアントアプリケーション１３の属性値１４がセキュリティゲート進入前の状態に戻される。【００３７】
クライアントアプリケーション１３が、ライブラリ関数１２の通信命令２４に直接ジャンプする命令４２を実行した場合と通信命令４３を実行した場合の動作は、第１実施例の通信端末装置と同じである。【００３８】
このようにして本実施例の通信端末装置によれば、クライアントアプリケーション１３による通信命令２４、４３およびライブラリ関数１２の不正な使用を防止でき、ライブラリ関数１２の通信命令２４を正しく利用して図示しないサーバ端末装置と通信する場合に処理２１を必ず実行させることが可能となる。また、ライブラリ関数１２から呼び出し元のクライアントアプリケーション１３に戻る出口が複数存在する場合、ライブラリ関数１２内に第２特定命令を配置する方法では、それらすべての出口の前に第２特定命令を配置する必要があり、第２実施例の通信端末装置では１つの命令列２５を配置する必要があるが、本実施例の通信端末装置ではそれらが不要となる。【００３９】
＜通信端末装置の第３実施例＞
図５は、本発明の第３実施例による通信端末装置のブロック図である。図５を参照すると、本発明の第３実施例による通信端末装置は、セキュリティゲート進入処理３１によってクライアントアプリケーション１３の属性値１４を変更した後、セキュリティゲート退出処理３２によってクライアントアプリケーション１３の属性値１４を元に戻すまでのクライアントアプリケーション１３の走行中に、シグナルまたは割り込み２６が発生した際、クライアントアプリケーション１３のシグナル／割り込みハンドラ４４を呼び出す前にクライアントアプリケーション１３の属性値１４をセキュリティゲート進入処理３１による変更前の値に戻し、シグナル／割り込みハンドラ４４による処理が終わったときにセキュリティゲート進入処理３１による変更後の値に戻すセキュリティゲート一時退出処理３４をＯＳ１１が実行するようにした点で、第１実施例と相違する。【００４０】
次に本実施例の通信端末装置の動作を第１実施例の通信端末装置との相違点を中心に説明する。
クライアントアプリケーション１３がコール命令４１によってライブラリ関数１２を呼び出すと、その先頭部分に配置された第１特定命令２２がまず実行され、ＯＳ１１のセキュリティゲート進入処理３１により、クライアントアプリケーション１３の属性値１４が変更される。続いて、通信相手との通信に先立って実行する処理２１が実行された後、通信命令２４がクライアントアプリケーション１３によって実行されると、ＯＳ１１の通信命令実行制御３３により、クライアントアプリケーション１３の属性値１４に基づいて通信命令の実行可否が判定され、実行可であれば、通信命令２４の実行が行われて、制御が呼び出し元に戻される。その後、シグナルまたは割り込み２６が発生すると、内部割り込みが発生して制御がＯＳ１１に移り、セキュリティゲート一時退出処理３４が実行され、クライアントアプリケーション１３の属性値１４がセキュリティゲート進入処理３１による変更前の値に戻された後、クライアントアプリケーション１３のシグナル／割り込みハンドラ４４が呼び出される。そして、シグナル／割り込みハンドラ４４による処理が終了すると、制御がＯＳ１１のセキュリティゲート一時退出処理３４に戻り、クライアントアプリケーション１３の属性値１４がセキュリティゲート進入処理３１による変更後の値に戻された後、ライブラリ関数１２の前記シグナルまたは割り込み２６で中断した箇所に制御が戻される。そして、ライブラリ関数１２の処理が進み、呼び出し元に戻る直前に第２特定命令２３が実行されると、ＯＳ１１のセキュリティゲート退出処理３２により、クライアントアプリケーション１３の属性値１４がセキュリティゲート進入前の状態に戻される。【００４１】
クライアントアプリケーション１３が、ライブラリ関数１２の通信命令２４に直接ジャンプする命令４２を実行した場合と通信命令４３を実行した場合の動作は、第１実施例の通信端末装置と同じである。【００４２】
このようにして本実施例の通信端末装置によれば、第１実施例の通信端末装置に比べてより確実に、クライアントアプリケーション１３による通信命令２４、４３およびライブラリ関数１２の不正な使用を防止することができる。【００４３】
＜本発明のサーバ端末装置のハードウェア構成＞
本発明のサーバ端末装置のハードウェア構成の一例は、図１に示した通信端末装置と同じ構成、あるいは図１から表示部４および入力操作部５を取り除いた構成を有する。この場合、ＲＯＭ２には、ＣＰＵ１で実行されるＯＳおよび固定データなどが記憶され、ＲＡＭ３にはＣＰＵ１で実行されるサーバアプリケーションおよび演算データなどが一時的に記憶される。また、ファイルシステム６は、ハードディスクなどで構成され、サーバアプリケーションや各種データが記憶される。ＮＩＣ７は、有線あるいは無線により外部の通信相手と通信するためのものである。このようなハードウェア構成を有する通信端末装置の例としては、パーソナルコンピュータやワークステーションなどの一般的なコンピュータなどがある。【００４４】
＜サーバ端末装置の第１実施例＞
図６は、本発明の第１実施例によるサーバ端末装置のブロック図である。図６を参照すると、本発明の第１実施例によるサーバ端末装置は、サーバアプリケーション５２と、通信処理部５３と、証明書検証部５４とを含んで構成されている。【００４５】
証明書検証部５４は、通信相手から受信した証明書（電子証明書）を通信処理部５３から受け取り、その証明書が正当であるかどうかを検証し、その検証結果を通信処理部５３に通知する部である。
通信処理部５３は、図示しないネットワークを通じて通信相手と有線または無線により通信する部である。通信処理部５３は、通信相手からデータおよび証明書を受信すると、証明書を証明書検証部５４に渡してその検証結果を受け取り、証明書が正当である旨の検証結果が得られた場合、通信相手が所定の前処理を実行済みであると判断し、証明書と共に受信したデータをサーバアプリケーション５２に伝達する。証明書が正当である旨の検証結果が得られなかった場合、通信処理部５３は、通信相手が所定の前処理を実行していないと判断し、証明書と共に受信したデータはサーバアプリケーション５２に伝達せず、破棄する。
サーバアプリケーション５２は、通信相手から受信したデータを通信処理部５３から受け取って処理する。処理の結果、通信相手に何らかのデータを送信する必要がある場合、サーバアプリケーション５２は、データを通信処理部５３を通じて通信相手へ送信する。【００４６】
次に本実施例のサーバ端末装置５１の動作を説明する。
サーバ端末装置５１の通信処理部５３は、通信相手からデータと証明書を受信すると（図７のＳ１０１）、証明書を証明書検証部５４へ渡し（Ｓ１０２）、証明書認証信号または証明書否認信号を受信するまで待つ（Ｓ１０３）。
証明書検証部５４は、証明書を受け取ると（図８のＳ１１１）、その証明書が正当か不当かを判断する（Ｓ１１２）。証明書検証部５４は、証明書が不当である場合、通信処理部５３に証明書否認信号を送信し（Ｓ１１３）、証明書が正当である場合は通信処理部５３に証明書認証信号を送信する（Ｓ１１４）。
通信処理部５３は、証明書否認信号を受信すると（Ｓ１０３）、処理を終了する。他方、通信処理部５３は、証明書認証信号を受信すると（Ｓ１０３）、通信相手から受信したデータをサーバアプリケーション５２に伝達する（Ｓ１０４）。
サーバアプリケーション５２は、通信処理部５３からデータを渡されると（図９のＳ１２１）、渡されたデータを処理する（Ｓ１２２）。【００４７】
このようにして本実施例のサーバ端末装置によれば、受信した証明書が認証された場合に限って、その証明書と共に受信したデータをサーバアプリケーション５２で処理することにより、通信相手が通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別し、その判別結果に応じて処理を切り分けることが可能となる。【００４８】
＜サーバ端末装置の第２実施例＞
本発明の第２実施例によるサーバ端末装置は、データと証明書とを送信してきた通信相手に対して通信の成功、失敗を応答する点が、サーバ端末装置の第１実施例と相違する。【００４９】
第２実施例のサーバ端末装置は、図６に示した第１実施例のサーバ端末装置５１と同様に、サーバアプリケーション５２、通信処理部５３および証明書検証部５４で構成される。このうち、証明書検証部５４の処理は第１実施例と同じであり、サーバアプリケーション５２と通信処理部５３の処理が第１実施例と相違する。【００５０】
次に本実施例のサーバ端末装置の動作を第１実施例のサーバ端末装置との相違点を中心に説明する。
サーバ端末装置５１の通信処理部５３は、通信相手からデータと証明書を受信すると（図１０のＳ１０１）、証明書を証明書検証部５４へ渡し（Ｓ１０２）、証明書認証信号または証明書否認信号を受信するまで待つ（Ｓ１０３）。証明書検証部５４は、証明書を受け取ると（Ｓ１１１）、その証明書が正当か不当かを判断し（Ｓ１１２）、証明書が不当である場合、通信処理部５３に証明書否認信号を送信し（Ｓ１１３）、証明書が正当である場合は通信処理部５３に証明書認証信号を送信する（Ｓ１１４）。
通信処理部５３は、証明書否認信号を受信すると（Ｓ１０３）、データと証明書を送信してきた通信相手に対して通信失敗信号を送信する（Ｓ１０６）。他方、通信処理部５３は、証明書認証信号を受信すると（Ｓ１０３）、通信相手から受信したデータをサーバアプリケーション５２に伝達する（Ｓ１０４）。
サーバアプリケーション５２は、通信処理部５３からデータを渡されると（図１１のＳ１２１）、渡されたデータを処理し（Ｓ１２２）、通信処理部５３にデータ処理完了信号を渡す（Ｓ１２３）。通信処理部５３は、データ処理完了信号を受信すると（Ｓ１０５）、データと証明書を送信してきた通信相手に対して通信成功信号を送信する（Ｓ１０７）。【００５１】
このようにして本実施例のサーバ端末装置によれば、受信した証明書が認証された場合に限って、その証明書と共に受信してデータをサーバアプリケーション５２で処理することにより、通信相手が通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別し、その判別結果に応じて処理を切り分けることが可能となる。【００５２】
また、本実施例のサーバ端末装置によれば、証明書が正当でなかった場合には通信失敗信号を、証明書が正当であってサーバアプリケーションによる処理が完了した場合には通信成功信号をそれぞれデータと証明書を送信してきた通信相手に応答するため、通信相手は、通信成功信号または通信失敗信号によって、サーバアプリケーションにデータを送信できたか否かを知ることができ、通信相手側のクライアントアプリケーションはサーバアプリケーションにデータを送信できた場合の処理とデータを送信できなかった場合の処理を切り分けて実行することができる。【００５３】
＜サーバ端末装置の第３実施例＞
図１２を参照すると、本発明のサーバ端末装置の第３実施例は、サーバアプリケーション６２と、通信処理部６３と、復号化部６４とを含んで構成されている。【００５４】
復号化部６４は、通信相手から受信した暗号化データを通信処理部６３から受け取り、自サーバ端末装置６１の公開鍵で復号化し、その結果を通信処理部６３に通知する。
通信処理部６３は、図示しないネットワークを通じて通信相手から暗号化データを受信すると、この暗号化データを復号化部６４に渡してその結果を受け取り、復号化したデータが得られた場合、通信相手が所定の前処理を実行済みであると判断し、復号化したデータをサーバアプリケーション６２に伝達する。復号化に失敗していれば、通信処理部６３は、通信相手が所定の前処理を実行していないと判断し、処理を終了する。
サーバアプリケーション６２は、通信処理部６３から復号化したデータを受け取って処理する。処理の結果、通信相手に何らかのデータを送信する必要がある場合、サーバアプリケーション６２は、データを通信処理部６３を通じて通信相手へ送信する。【００５５】
次に本実施例のサーバ端末装置６１の動作を説明する。
サーバ端末装置６１の通信処理部６３は、通信相手から暗号化データを受信すると（図１３のＳ１３１）、その暗号化データを復号化部６４へ渡し（Ｓ１３２）、その復号結果を待つ（Ｓ１３３）。
復号化部６４は、暗号化データを受け取ると（図１４のＳ１４１）、自サーバ端末装置６１の公開鍵でその暗号化データを復号化する（Ｓ１４２）。復号化部６４は、復号化に成功した場合（Ｓ１４３でＹＥＳ）、復号化したデータを通信処理部６３に渡し（Ｓ１４４）、復号化に失敗した場合（Ｓ１４３でＮＯ）、復号不可信号を通信処理部６３に渡す（Ｓ１４５）。
通信処理部６３は、復号不可信号を受信すると（Ｓ１３３）、処理を終了する。他方、通信処理部５３は、復号化したデータを受信すると（Ｓ１３３）、この復号化したデータサーバアプリケーション６２に伝達する（Ｓ１３４）。サーバアプリケーション６２は、通信処理部６３から渡されたデータを処理する。【００５６】
このようにして本実施例のサーバ端末装置によれば、受信した暗号化データが自サーバ端末装置の公開鍵で復号化できた場合に限って、復号化したデータをサーバアプリケーション６２で処理することにより、通信相手が通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別し、その判別結果に応じて処理を切り分けることが可能となる。【００５７】
次に、本発明の通信端末装置およびサーバ端末装置を備える通信システムの実施例について図面を参照して詳細に説明する。【００５８】
＜通信システムの第１実施例＞
図１５を参照すると、本発明の第１実施例の通信システムは、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置５１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【００５９】
通信端末装置１００は、プログラム制御により動作するコンピュータで構成され、通常メモリエリア１１０と高信頼メモリエリア１２０を具備する。また、基本プログラムであるＯＳ１３０が動作している。ＯＳ１３０は、例えばＬｉｎｕｘであるが、それ以外の種類のＯＳであってもかまわない。【００６０】
通常メモリエリア１１０には、クライアントアプリケーション１１１が配置される。通常メモリエリア１１０は、ＲＡＭ等により実現され、クライアントアプリケーション１１１から自由に利用することができる。【００６１】
クライアントアプリケーション１１１は、製品の工場出荷時には含まれず、後から追加したような、信頼できるか不明なプログラムとする。一般にクライアントアプリケーション１１１は、ＯＳ１３０によってファイルシステム等の不揮発ストレージから通常メモリエリア１１０にロードされ、アプリケーションプロセスとして実行される。【００６２】
高信頼メモリエリア１２０には、信頼できるライブラリ関数１２１が配置される。ここで、高信頼メモリエリア１２０は、通常メモリエリア１１０とは異なり、記憶されている情報が改ざんされている可能性が低く信頼度が高いメモリエリアのことである。最も一般的な実現方法は、ＲＯＭによる実装であるが、ＯＳ１３０の管理の下、アプリケーションプロセスから容易に改ざんされない設定をされたＲＡＭ、つまり、アプリケーションプログラムからの書き込み権限が設定されていないメモリ空間として割り当てられたＲＡＭでも良い。この場合、ＯＳ１３０が、高信頼メモリエリア１２０に、ＲＯＭやファイルシステムよりライブラリ関数１２１をロードすることによって配置される。なお、例えば、Ｌｉｎｕｘでは、プログラムコードが格納されているメモリ空間は書き込み禁止に設定されるので、そのようなメモリ空間が該当する。【００６３】
ライブラリ関数１２１は、クライアントアプリケーション１１１に対して、サーバ端末装置５１のサーバアプリケーション５２との通信機能を提供するものである。本実施例の場合、ライブラリ関数１２１には、第１特定命令１２３と第２特定命令１２４とが配置される。また、ライブラリ関数１２１は、通信システムコール１２２と前処理部１２５と証明書管理部１２６とを含む。【００６４】
第１特定命令１２３は、特定のシステムコール命令として実装され、ライブラリ関数１２１の処理の先頭に配置される。クライアントアプリケーション１１１がこの命令１２３を呼び出すと、内部割り込みが発生し、ＯＳ１３０のセキュリティゲート進入処理部１３１が呼び出される。【００６５】
第２特定命令１２４も、特定のシステムコール命令として実装され、ライブラリ関数１２１の処理の末尾に配置される。クライアントアプリケーション１１１がこの命令１２４を呼び出すと、内部割り込みが発生し、ＯＳ１３０のセキュリティゲート退出処理部１３２が呼び出される。【００６６】
通信システムコール１２２は、ｓｏｃｋｅｔ通信システムコールなどであり、クライアントアプリケーション１１１がサーバ端末装置５１のサーバアプリケーション５２と通信する際に使用される。この通信システムコール１２２は、信頼できるか不明なクライアントアプリケーション１１１のセキュリティレベルでは実行権が与えられていない特権命令である。通信システムコール１２２をクライアントアプリケーション１１１が呼び出すと、内部割り込みが発生し、ＯＳ１３０内の権限チェック処理部１３６が呼び出される。クライアントアプリケーション１１１のセキュリティレベルは、本実施例の場合、”Ｌｏｗ”（非特権レベル）と”Ｈｉｇｈ”（特権レベル）の２レベルとする。勿論、３レベル以上のレベルを持つコンピュータや、或る種の携帯電話機のように、装置製造者レベル、通信事業者レベル、信頼できるアプリケーションベンダレベル、信頼できるか不明なレベルの４レベルのセキュリティレベルを持つ端末にも適用可能である。【００６７】
前処理部１２５は、クライアントアプリケーション１１１がサーバアプリケーション５２と通信する前に実行すべき予め定められた処理を行う命令列で構成される。【００６８】
証明書管理部１２６は、前処理部１２５の処理後に実行され、前処理を行ったことを証明する証明書をクライアントアプリケーション１１１の送信データに付加する命令列で構成される。【００６９】
ＯＳ１３０には、セキュリティゲート進入処理部１３１と、セキュリティゲート退出処理部１３２と、メモリ種別判断処理部１３３と、セキュリティレベル変更部１３４と、セキュリティレベル変更ポリシデータベース１３５と、権限チェック処理部１３６と、通信システムコール処理部１３７と、プロセス状態管理データベース１３８とが設けられている。【００７０】
セキュリティゲート進入処理部１３１は、第１特定命令１２３が正規に実行されたかどうかを、メモリ種別判断処理部１３３の結果を元に判断し、正規に実行されたものである場合には、セキュリティレベル変更部１３４を用いて当該アプリケーションプロセスのセキュリティレベルをより高次なものに切り替える。他方、第１特定命令１２３が不正に実行されたものである場合には、セキュリティレベルの切り替えは行わない。【００７１】
メモリ種別判断処理部１３３は、実行された第１特定命令１２３が、高信頼メモリエリア１２０にあるかどうかを判断する。具体的には、高信頼メモリエリア１２０のアドレス範囲を許容アドレス範囲として保持し、実行された第１特定命令１２３のアドレスと許容アドレス範囲とを比較し、第１特定命令１２３のアドレスが許容アドレス範囲内であれば、高信頼メモリ１２０にあると判断し、それ以外は通常メモリエリア１１０にあると判断する。また、メモリ種別判断処理部１３３は、さらに、高信頼メモリエリアであることが確認された第１特定命令の存在するメモリアドレスが、プログラムコードエリアであって、データエリアではないことをＯＳ１３０が管理するデータを参照することで確認しても良く、そうすればデータエリアの偶然のパターン一致による判断ミスを防ぐことができる。【００７２】
上記の許容アドレス範囲の設定は、以下のａ）、ｂ）のように行う。
ａ）高信頼メモリエリア１２０がＲＯＭ領域であれば、そのＲＯＭ領域のアドレス範囲を許容アドレス範囲とする。
ｂ）ファイルシステムまたはＲＯＭ中にある信頼できるライブラリ関数１２１をＲＡＭ領域にロードして実行するコンピュータの場合、そのロードされたメモリアドレス範囲を許容アドレス範囲とする。なお、ロードされるライブラリ関数１２１が信頼できるかどうかの判断は、ロード元のファイルシステムやＲＯＭそのものが信頼できるかどうかの情報をあらかじめ保持しておき、これを参照して判断する方法、信頼できるライブラリ関数のリストをあらかじめ保持しておき、これを参照して判断する方法、信頼できるライブラリ関数自身にあらかじめ印（署名など）をつけておき、ロード時に確認する方法等を利用することができる。【００７３】
セキュリティゲート退出処理部１３２は、セキュリティレベル変更部１３４を用いて、クライアントアプリケーションのセキュリティレベルを元の状態に戻す。【００７４】
プロセス状態管理データベース１３８は、クライアントアプリケーションのプロセスを一意に識別するプロセスＩＤとセキュリティレベルとの組を保持する。【００７５】
セキュリティレベル変更部１３４は、セキュリティゲート進入処理部１３１の要求により、クライアントアプリケーションのセキュリティレベルを変更すべく、プロセス状態管理データベース１３８の当該クライアントアプリケーションのセキュリティレベルを表す部分を変更する。この際、元に戻せるように、変更前の値をプロセス状態管理データベース１３８に保持しておく。【００７６】
ここで、変更ルールを保持するセキュリティレベル変更ポリシデータベース１３５を設け、セキュリティレベル変更部１３４がこのデータベース１３５に保持された変更ルールに則って、クライアントアプリケーションのセキュリティレベルを変更するようにしても良い。例えば、クライアントアプリケーションの種類、素性、元のセキュリティレベルによって、どのレベルまでセキュリティレベルを上げるかを記述した変更ルールや、装置（コンピュータ）の状態によって、どのレベルまでセキュリティレベルを上げるかを記述した変更ルールを用いれば、より柔軟なセキュリティレベル変更が可能になる。【００７７】
また、セキュリティレベル変更部１３４は、セキュリティゲート退出処理部１３２の要求により、クライアントアプリケーションのセキュリティレベルを元に戻す処理を行う。【００７８】
権限チェック処理部１３６は、ＯＳ１３０に対して要求された通信システムコール１２２が、要求元のクライアントアプリケーション１１１の現在のセキュリティレベルで実行する権限があるかどうかを、プロセス状態管理データベース１３８の情報を参照して判断し、権限がある場合は通信システムコール処理部１３７を用いて処理を行う。権限が無いときには要求された通信システムコール１２２の実行を行わず、エラーとする。【００７９】
通信システムコール処理部１３７は、要求された通信システムコール１２２の処理を行う。【００８０】
他方、サーバ端末装置５１は、図６で説明した第１実施例のサーバ端末装置であり、サーバアプリケーション５２と通信処理部５３と証明書検証部５４とを含んで構成される。【００８１】
次に、図１５及び図１６から図１８のフローチャートを参照して本実施例の動作について詳細に説明する。
まず、通信端末装置１００の動作を説明する。ＯＳ１３０によって、クライアントアプリケーション１１１が通常メモリエリア１１０にロードされ、アプリケーションプロセス（プロセスＩＤ＝ｎｎｎ）として実行される。この時、クライアントアプリケーション１１１は信頼できるかどうか不明であり、セキュリティレベルは“Ｌｏｗ”で動作する。クライアントアプリケーション１１１は、サーバ端末装置５１のサーバアプリケーション５２にデータを送信する場合、ライブラリ関数１２１を呼び出す。ライブラリ関数１２１は、呼び出されると、まず関数の先頭に配置された第１特定命令１２３を実行する（図１６のＳ２０１）。【００８２】
第１特定命令１２３が実行されると、ＯＳ１３０内にあるセキュリティゲート進入処理部１３１が呼び出される。セキュリティゲート進入処理部１３１では、呼び出される原因となった第１特定命令１２３が存在するメモリエリアの種別をメモリ種別判断処理部１３３を用いて求める（Ｓ２０２）。求めたメモリエリアの種別が高信頼メモリエリア１２０である場合に限り、セキュリティレベル変更部１３４を用いてクライアントアプリケーション１１１のセキュリティレベルをより高次なものに変更する（Ｓ２０３及びＳ２０４）。これにより、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーション１１１のプロセスのセキュリティレベルに関するデータが例えば“Ｌｏｗ”から“Ｈｉｇｈ”に変更されることになる。クライアントアプリケーション１１１のセキュリティレベルの変更が完了したら、第１特定命令１２３の処理を完了する（ステップＳ２０５）。ステップＳ２０３で、メモリエリアの種別が高信頼メモリエリア１２０でなければ、クライアントアプリケーション１１１のセキュリティレベルを変更せずに、第１特定命令１２３の処理を完了する（Ｓ２０５）。【００８３】
その後、クライアントアプリケーション１１１は、ライブラリ関数１２１が提供するプログラムを実行し、この過程で、前処理部１２５、証明書管理部１２６、および通信システムコール１２２がこの順に実行される。【００８４】
前処理部１２５は、サーバ端末装置５１のサーバアプリケーション５２と通信する前に実行すべき所定の処理を実行する。また、証明書管理部１２６は、前処理を行ったことを証明する証明書をクライアントアプリケーション１１１の送信データに付加する処理を実行する。なお、前処理部１２５および証明書管理部１２６の処理の実行に際して、ＯＳ１３０の機能を必要とする場合、適宜ＯＳ１３０の各種機能が利用される。【００８５】
また通信システムコール１２２が実行されると（図１７のＳ２１１）、ＯＳ１３０内の権限チェック処理部１３６が呼び出される。権限チェック処理部１３６では、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーション１１１のセキュリティレベルを参照し、“Ｈｉｇｈ”状態にあるならば、通信システムコール処理部１３７を用いて通信処理を行う（Ｓ２１２〜Ｓ２１４）。これにより、クライアントアプリケーション１１１の送信データと証明書管理部１２６で付加された証明書とがネットワークＮＷを通じて、サーバ端末装置５１の通信処理部５３に送信される。他方、クライアントアプリケーション１１１のセキュリティレベルが“Ｌｏｗ”の場合は、権限チェック処理部１３６は、通信処理を行わず、特権モードエラーを返し（ステップＳ２１５）、処理を終了する（ステップＳ２１４）。【００８６】
その後、クライアントアプリケーション１１１によるライブラリ関数１２１の処理が完了し、クライアントアプリケーション１１１に処理が戻る直前で、第２特定命令１２４が実行される（図１８のステップＳ２２１）。【００８７】
第２特定命令１２４が実行されると、ＯＳ１３０内にあるセキュリティゲート退出処理部１３２が呼び出される。セキュリティゲート退出処理部１３２では、セキュリティレベル変更部１３４を用いて、当該クライアントアプリケーション１１１のセキュリティレベルを元に戻し（Ｓ２２２）、処理を終了する（Ｓ２２３）。ここで、プロセス状態管理データベース１３８内にある、クライアントアプリケーション１１１のセキュリティレベルに関するデータが“Ｌｏｗ”に戻ることになる。【００８８】
次にサーバ端末装置５１の動作を説明する。サーバ端末装置５１の通信処理部５３は、通信端末装置１００からデータと証明書を受信すると（図７のＳ１０１）、証明書を証明書検証部５４へ渡す。証明書検証部５４は、渡された証明書が正当か不当かを判断し（図８のＳ１１１、Ｓ１１２）、不当であれば通信処理部５３に証明書否認信号を送信し（Ｓ１１３）、正当であれば証明書認証信号を送信する（Ｓ１１４）。【００８９】
通信処理部５３は、証明書検証部５４から証明書否認信号を受信すると処理を終了し、証明書認証信号を受信すると、通信相手から受信したデータをサーバアプリケーション５２に伝達する（Ｓ１０３、Ｓ１０４）。サーバアプリケーション５２は、通信処理部５３から渡されたデータを処理する（図９のＳ１２１、Ｓ１２２）。【００９０】
本実施例によれば、クライアントアプリケーション１１０がサーバアプリケーション５２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。その理由は、通信端末装置１００におけるクライアントアプリケーション１１１による通信システムコール１２２およびライブラリ関数１２１の不正な使用が行えず、ライブラリ関数１２１を正しく利用しなければサーバ端末装置５１と通信できないようになっており、ライブラリ関数１２１を正しく利用すると、その通信に先立って前処理部１２５が必ず実行されるためである。【００９１】
また本実施例によれば、通信前に必要な前処理を行った通信か否かをサーバ端末装置５１側で判別することができる。その理由は、通信端末装置１００におけるクライアントアプリケーション１１１はライブラリ関数１２１を正しく利用しなければサーバ端末装置５１と通信できず、ライブラリ関数１２１を正しく利用すると、その通信に先立って前処理部１２５および証明書管理部１２６が必ず実行されるため、サーバ端末装置５１において、受信した証明書が正当かどうかを検証することにより、通信前に必要な前処理が行われた通信かどうか判別できるからである。そして、証明書が正当と判断した場合に限って、その証明書と共に受信したデータをサーバアプリケーション５２で処理することにより、判別結果に応じて処理を切り分けることが可能となる。【００９２】
なお、本実施例では、サーバ端末装置５１として前述した第１実施例のものを使用したが、第２実施例のサーバ端末装置を使用することも可能である。その場合、通信処理部５３から送信される通信失敗信号または通信成功信号は、ネットワークＮＷを通じて通信端末装置１００で受信され、最終的にクライアントアプリケーション１１１に伝達される。これにより、クライアントアプリケーション１１１は、通信が成功した場合と失敗した場合とで処理を切り分けることができる。【００９３】
＜適用例１＞  次に本実施例にかかる通信システムの適用例について説明する。
本適用例は、通信端末装置１００としてＬｉｎｕｘ端末を、サーバ端末装置５１としてパーソナルコンピュータを備えている。
パーソナルコンピュータであるサーバ端末装置５１のサーバアプリケーション５２は、ゲームコンテンツを配布する機能を有し、通信端末装置１００とＳｅｃｕｒｉｔｙ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）を用いて通信する。Ｌｉｎｕｘ端末である通信端末装置１００のクライアントアプリケーション１１１は、サーバアプリケーション５２が配布するゲームコンテンツをダウンロードする機能を有する。通信端末装置１００は、電子マネー情報が記憶されたＩＣカードの機能を有しており、ＲＯＭ領域でＸＩＰ（ｅＸｅｃｕｔｅ  Ｉｎ  Ｐｌａｃｅ）実行されるライブラリ関数１２１の前処理部１２５は、ＩＣカードを通じて課金処理を行う機能を有している。このような前提で、クライアントアプリケーション１１１がサーバアプリケーション５２にダウンロードリクエストを送信し、ゲームコンテンツのダウンロードを試みた場合の動作を説明する。【００９４】
通信端末装置１００において、クライアントアプリケーション１１１がダウンロードリクエストを渡してライブラリ関数１２１を呼び出すと、ライブラリ関数１２１は、まず第１特定命令１２３を実行する（図１６のＳ２０１）。これによりＯＳ１３０内にあるセキュリティゲート進入処理部１３１が呼び出され、第１特定命令１２３が存在するメモリエリアの種別が高信頼メモリエリア１２０である場合に限り、セキュリティレベル変更部１３４を用いてクライアントアプリケーション１１１のセキュリティレベルが“Ｈｉｇｈ”に変更される。次に前処理部１２５は、ゲームコンテンツのダウンロードに対する課金を行うため、ＩＣカードを参照し、記憶されている電子マネー情報を更新する。次に証明書管理部１２６は、前処理を実行したことを証明する証明書をダウンロードリクエストに付加する。次に通信システムコール１２２が実行されると、ＯＳ１３０内の権限チェック処理部１３６が呼び出され、クライアントアプリケーション１１１のセキュリティレベルが“Ｈｉｇｈ”状態にあるので、通信システムコール処理部１３７を用いて通信処理を行う。これにより、クライアントアプリケーション１１１のダウンロードリクエストと証明書管理部１２６で付加された証明書とがＳＳＬを利用してサーバ端末装置５１の通信処理部５３に送信される。【００９５】
サーバ端末装置５１の通信処理部５３は、通信端末装置１００からダウンロードリクエストと証明書を受信すると、証明書を証明書検証部５４へ渡し、証明書検証部５４は、渡された証明書が正当か不当かを判断し、結果を通信処理部５３に返す。通信処理部５３は、証明書検証部５４から証明書認証信号を受信した場合に限り、通信端末装置１００から受信したダウンロードリクエストをサーバアプリケーション５２に伝達する。サーバアプリケーション５２は、このダウンロードリクエストを処理し、ゲームコンテンツを通信端末装置１００のクライアントアプリケーション１１１に配布する。【００９６】
この適用例１によれば、通信端末装置１００においてライブラリ関数１２１を介して適切に課金処理がなされた場合のみ、ゲームコンテンツをダウンロードすることが可能となり、サーバ端末装置５１側で課金処理していた従来技術に比べて、サーバ端末装置５１の負荷を軽減することが可能となる。【００９７】
以上の適用例１では、ゲームコンテンツのダウンロードサービスを取り上げたが、音楽データなどの再生サービスにも適用することができる。また、前処理として課金処理を取り上げたが、再生する音楽データなどの著作権管理処理であるＤＲＭ（Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ）処理など、他の種類の処理であっても良い。【００９８】
＜通信システムの第２実施例＞
図１９を参照すると、本発明の通信システムの第２実施例は、通信端末装置１００の高信頼メモリエリア１２０に、データと前処理識別子との対応関係を保持する前処理記憶部１２７を備え、ライブラリ関数１２１の前処理部１２５は、クライアントアプリケーション１１１の送信データと同じデータに対応する前処理識別子を前処理記憶部１２７から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図１５に示した第１実施例と相違する。【００９９】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置１００のライブラリ関数１２１における前処理部１２５の動作だけが第１実施例の通信システムと相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１が、第１特定命令１２３を処理した後、前処理部１２５による処理に進むと、前処理部１２５は、前処理記憶部１２７を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部１２６による処理へ進む。【０１００】
次に本実施例の効果を説明する。
本実施例によれば、第１実施例の通信システムと同等の効果が得られると同時に、前処理記憶部１２３を備えたことにより、クライアントアプリケーション１１１がサーバアプリケーション５２に送信するデータに応じて、前処理の内容を変更することができる。【０１０１】
＜適用例２＞
次に本実施例にかかる通信システムの適用例について説明する。
本適用例は、通信端末装置１００としてＬｉｎｕｘ端末を、サーバ端末装置５１としてパーソナルコンピュータを備えている。
パーソナルコンピュータであるサーバ端末装置５１のサーバアプリケーション５２は、価格の異なる複数のゲームコンテンツを配布する機能を有し、通信端末装置１００とＳＳＬを用いて通信する。Ｌｉｎｕｘ端末である通信端末装置１００のクライアントアプリケーション１１１は、サーバアプリケーション５２が配布するゲームコンテンツをダウンロードする機能を有する。前処理記憶部１２７には、ダウンロード対象となるゲームコンテンツ毎の価格情報が記憶されている。通信端末装置１００は、電子マネー情報が記憶されたＩＣカードの機能を有しており、ＲＯＭ領域でＸＩＰ実行されるライブラリ関数１２１の前処理部１２５は、前処理記憶部１２７を参照して、ＩＣカードを通じてダウンロードするゲームコンテンツに応じた課金処理を行う機能を有している。このような前提で、クライアントアプリケーション１１１がサーバアプリケーション５２にダウンロードリクエストを送信し、ゲームコンテンツのダウンロードを試みた場合の動作を説明する。【０１０２】
通信端末装置１００において、クライアントアプリケーション１１１がダウンロードリクエストを引数としてライブラリ関数１２１を呼び出すと、ライブラリ関数１２１は、まず第１特定命令１２３を実行する（図１６のＳ２０１）。これによりＯＳ１３０内にあるセキュリティゲート進入処理部１３１が呼び出され、第１特定命令１２３が存在するメモリエリアの種別が高信頼メモリエリア１２０である場合に限り、セキュリティレベル変更部１３４を用いてクライアントアプリケーション１１１のセキュリティレベルが“Ｈｉｇｈ”に変更される。次に前処理部１２５は、ゲームコンテンツのダウンロードに対する課金を行うため、ダウンロードリクエストに含まれるゲームコンテンツに対応する価格情報を前処理記憶部１２７から参照し、ＩＣカードに記憶されている電子マネー情報を前記価格情報に相当する価格だけ更新する。以降、前述した適用例１と同様の処理が行われる。【０１０３】
この適用例２によれば、通信端末装置１００においてライブラリ関数１２１を介して適切な価格の課金処理がなされた場合のみ、ゲームコンテンツをダウンロードすることが可能となり、サーバ端末装置５１側で課金処理していた従来技術に比べて、サーバ端末装置５１の負荷を軽減することが可能となる。【０１０４】
＜通信システムの第３実施例＞
図２０を参照すると、本発明の通信システムの第３実施例は、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置６１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【０１０５】
通信端末装置１００は、予めサーバ端末装置６１より配布された秘密鍵を保持し、クライアントアプリケーション１１１の送信データを前記秘密鍵を用いて暗号化する暗号化部１２８を証明書管理部１２６の代わりに有する点で図１５に示した第１実施例の通信システムにおける通信端末装置と相違する。【０１０６】
サーバ端末装置６１は、図１２で説明したサーバ端末装置の第３実施例のものであり、サーバアプリケーション６２と通信処理部６３と復号化部６４とを含んで構成される。【０１０７】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置１００は、ライブラリ関数１２１において証明書管理部１２６による処理に代えて暗号化部１２８による処理を行う点が第１実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１は、第１特定命令１２３および前処理部１２５による処理を終えると、暗号化部１２８により、クライアントアプリケーション１１１の送信データをサーバ端末装置６１の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール１２２を使用した通信では、この暗号化データがネットワークＮＷを通じてサーバ端末装置６１の通信処理部６３へ送信される。【０１０８】
次にサーバ端末装置６１の動作を説明する。サーバ端末装置６１の通信処理部６３は、通信端末装置１００から暗号化データを受信すると（Ｓ１３１）、その暗号化データを復号化部６４へ渡す（Ｓ１３２）。復号化部６４は、暗号化データを自サーバ端末装置６１の公開鍵で復号化し（Ｓ１４２）、復号化に成功すれば復号化したデータを通信処理部６３に渡し（Ｓ１４４）、復号化に失敗すれば復号不可信号を通信処理部６３に渡す（Ｓ１４５）。【０１０９】
通信処理部６３は、復号不可信号を受信した場合には処理を終了し、復号化したデータを受信した場合には、この復号化したデータサーバアプリケーション６２に伝達する（Ｓ１３４）。サーバアプリケーション６２は、通信処理部６３から渡されたデータを処理する。【０１１０】
本実施例によれば、通信システムの第１実施例と同じ理由により、クライアントアプリケーション１１０がサーバアプリケーション６２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。【０１１１】
また本実施例によれば、通信前に必要な前処理を行った通信か否かをサーバ端末装置６１側で判別することができる。その理由は、通信端末装置１００におけるクライアントアプリケーション１１１はライブラリ関数１２１を正しく利用しなければサーバ端末装置６１と通信できず、ライブラリ関数１２１を正しく利用すると、その通信に先立って前処理部１２５およびサーバ端末装置６１の秘密鍵による暗号化部１２８が必ず実行されるため、サーバ端末装置６１において、受信した暗号化データが自身の公開鍵で復号化できるかどうかを確かめることにより、通信前に必要な前処理が行われた通信かどうか判別できるからである。【０１１２】
＜適用例３＞
次に本実施例にかかる通信システムの適用例について説明する。
本適用例は、通信端末装置１００としてＬｉｎｕｘ端末を、サーバ端末装置６１としてパーソナルコンピュータを備えている。
パーソナルコンピュータであるサーバ端末装置６１のサーバアプリケーション６２は、ゲームコンテンツを配布する機能を有し、Ｌｉｎｕｘ端末である通信端末装置１００のクライアントアプリケーション１１１は、サーバアプリケーション６２が配布するゲームコンテンツをダウンロードする機能を有する。通信端末装置１００とサーバ端末装置６１の通信は、通信端末装置１００の暗号化部１２８が保持するサーバ端末装置６１が予め配布した秘密鍵と、サーバ端末装置６１の通信処理部６３が保持する公開鍵を利用したＳＳＬを用いて行う。また通信端末装置１００は、電子マネー情報が記憶されたＩＣカードの機能を有しており、ＲＯＭ領域でＸＩＰ実行されるライブラリ関数１２１の前処理部１２５は、ＩＣカードを通じて課金処理を行う機能を有している。このような前提で、クライアントアプリケーション１１１がサーバアプリケーション６２にダウンロードリクエストを送信し、ゲームコンテンツのダウンロードを試みた場合の動作を説明する。【０１１３】
通信端末装置１００において、クライアントアプリケーション１１１がダウンロードリクエストを渡してライブラリ関数１２１を呼び出すと、ライブラリ関数１２１は、まず第１特定命令１２３を実行する。これによりＯＳ１３０内にあるセキュリティゲート進入処理部１３１が呼び出され、第１特定命令１２３が存在するメモリエリアの種別が高信頼メモリエリア１２０である場合に限り、セキュリティレベル変更部１３４を用いてクライアントアプリケーション１１１のセキュリティレベルが“Ｈｉｇｈ”に変更される。次に前処理部１２５は、ゲームコンテンツのダウンロードに対する課金を行うため、ＩＣカードを参照し、記憶されている電子マネー情報を更新する。次に暗号化部１２８は、クライアントアプリケーション１１１のダウンロードリクエストをサーバ端末装置６１より配布された秘密鍵を用いて暗号化する。次に通信システムコール１２２が実行されると、ＯＳ１３０内の権限チェック処理部１３６が呼び出され、クライアントアプリケーション１１１のセキュリティレベルが“Ｈｉｇｈ”状態にあるので、通信システムコール処理部１３７を用いて通信処理を行う。これにより、クライアントアプリケーション１１１の暗号化されたダウンロードリクエストがサーバ端末装置６１の通信処理部６３に送信される。【０１１４】
サーバ端末装置６１の通信処理部６３は、通信端末装置１００から暗号化されたダウンロードリクエストを受信すると、それを復号化部６４へ渡し、復号化部６４は公開鍵を用いて復号化したダウンロードリクエストを通信処理部６３に返す。通信処理部６３はそれをサーバアプリケーション５２に伝達する。サーバアプリケーション５２は、このダウンロードリクエストを処理し、ゲームコンテンツを通信端末装置１００のクライアントアプリケーション１１１に配布する。【０１１５】
この適用例３によれば、通信端末装置１００においてライブラリ関数１２１を介して適切に課金処理がなされた場合のみ、ゲームコンテンツをダウンロードすることが可能となり、サーバ端末装置６１側で課金処理していた従来技術に比べて、サーバ端末装置６１の負荷を軽減することが可能となる。【０１１６】
＜通信システムの第４実施例＞
図２１を参照すると、本発明の通信システムの第４実施例は、通信端末装置１００において、クライアントアプリケーション１１１の新たな属性値としてセキュリティゲート進入状態を示す属性値を追加し、プロセス状態管理データベース１３８がプロセスＩＤとセキュリティレベルと前記属性値に対応するセキュリティゲート通過フラグとの組を保持し、このプロセス状態管理データベース１３８内のセキュリティゲート通過フラグを変更する機能を持つセキュリティゲート進入状態記録処理部１３９を備え、クライアントアプリケーション１１１がセキュリティゲートに進入した時点ではそのセキュリティレベルを変更せずに、セキュリティゲート進入状態にあることをセキュリティゲート通過フラグで管理しておき、権限チェック処理部１３６による通信命令実行の権限チェック時に一時的にセキュリティレベルを変更するようにした点で、通信システムの第１実施例と相違する。【０１１７】
次に、図２１及び図２２から図２４のフローチャートを参照して本実施例の通信システムの動作について詳細に説明する。
通信端末装置１００において、クライアントアプリケーション１１１が通常メモリエリア１１０にＯＳ１３０によりロードされ、アプリケーションプロセス（プロセスＩＤ＝ｎｎｎ）として実行される。この時、クライアントアプリケーション１１１は信頼できるかどうか不明であり、セキュリティレベルは“Ｌｏｗ”で動作する。また、セキュリティゲート通過フラグは“０”である。クライアントアプリケーション１１１は、サーバ端末装置５１のサーバアプリケーション５２にデータを送信する場合、ライブラリ関数１２１を呼び出す。ライブラリ関数１２１は、呼び出されると、まず関数の先頭に配置された第１特定命令１２３を実行する（図２２のＳ３０１）。【０１１８】
第１特定命令１２３が実行されると、ＯＳ１３０内にあるセキュリティゲート進入処理部１３１が呼び出される。セキュリティゲート進入処理部１３１では、呼び出される原因となった第１特定命令１２３が存在するメモリエリアの種別をメモリ種別判断処理部１３３を用いて求める（Ｓ３０２）。求めたメモリエリアの種別が高信頼メモリエリア１２０である場合に限り、セキュリティゲート進入状態記録処理部１３９を用いて、クライアントアプリケーション１１１がセキュリティゲート進入状態であることを記録する（Ｓ３０３及びＳ３０４）。これにより、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーション１１１のセキュリティゲート通過フラグが例えば“０”から“１”に変更されることになる。クライアントアプリケーション１１１のセキュリティゲート通過フラグの変更が完了したら、第１特定命令１２３の処理を完了する（Ｓ３０５）。他方、第１特定命令１２３が存在するメモリエリアが高信頼メモリエリア１２０でなければ（Ｓ３０３でＮＯ）、クライアントアプリケーションのセキュリティゲート通過フラグを変更せずに、第１特定命令１２３の処理を完了する（Ｓ３０５）。【０１１９】
その後、クライアントアプリケーション１１１は、ライブラリ関数１２１が提供するプログラムを実行し、この過程で、前処理部１２５、証明書管理部１２６、および通信システムコール１２２がこの順に実行される。【０１２０】
前処理部１２５は、サーバ端末装置５１のサーバアプリケーション５２と通信する前に実行すべき所定の処理を実行する。また、証明書管理部１２６は、前処理を行ったことを証明する証明書をクライアントアプリケーション１１１の送信データに付加する処理を実行する。なお、前処理部１２５および証明書管理部１２６の処理の実行に際して、ＯＳ１３０の機能を必要とする場合、適宜ＯＳ１３０の各種機能が利用される。【０１２１】
また通信システムコール１２２が実行されると（図２３のＳ３１１）、ＯＳ１３０内の権限チェック処理部１３６が呼び出される。権限チェック処理部１３６では、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーションのセキュリティゲート通過フラグを参照し、“１”状態にあるならばセキュリティレベル変更部１３４を用いて当該クライアントアプリケーションのセキュリティレベルを”Ｈｉｇｈ”に変更する（ステップＳ３１２及びＳ３１３）。次に、変更されたセキュリティレベルを元に、当該クライアントアプリケーションが通信システムコール命令を処理する権限を保持しているかどうかをチェックし、権限を保持している場合、通信システムコール処理部１３７を用いて通信処理を行う（Ｓ３１４及びＳ３１５）。これにより、クライアントアプリケーション１１１の送信データと証明書管理部１２６で付加された証明書とがネットワークＮＷを通じて、サーバ端末装置５１の通信処理部５３に送信される。他方、権限を保持していない場合は、通信処理を行わず、特権モードエラーとする（Ｓ３１８）。その後、再びセキュリティレベル変更部１３４を用いて当該クライアントアプリケーション１１１のセキュリティレベルを“Ｌｏｗ”に戻し、通信システムコール処理を終了する（Ｓ３１６及びＳ３１７）。【０１２２】
その後、クライアントアプリケーション１１１が、ライブラリ関数１２１の処理を完了し、クライアントアプリケーション１１１に処理が戻る直前で、第２特定命令１２４が実行される（図２４のＳ３２１）。【０１２３】
第２特定命令１２４が実行されると、ＯＳ１３０内にあるセキュリティゲート退出処理部１３２が呼び出される。セキュリティゲート退出処理部１３２では、セキュリティゲート進入状態記録処理部１３９を用いて、当該クライアントアプリケーションのセキュリティゲート通過フラグを元に戻し（Ｓ３２２）、処理を終了する（Ｓ３２３）。これにより、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーションのセキュリティゲート通過フラグが“０”に戻ることになる。  【０１２４】
サーバ端末装置５１の動作は、通信システムの第１実施例と同じである。【０１２５】
本実施例によれば、第１実施例と同様に、クライアントアプリケーション１１０の通信前に必要な前処理の実行を通信端末装置１００内で保証することができると共に、通信前に必要な前処理を行った通信か否かをサーバ端末装置５１側で判別することができる。【０１２６】
また本実施例によれば、第１実施例の通信システムにおける通信端末装置に比べて、クライアントアプリケーション１１１のセキュリティレベルを“Ｈｉｇｈ”の状態にする区間を短く限定できるため、より安全に運用することが可能になる。【０１２７】
なお、本実施例では、クライアントアプリケーション１１１がセキュリティゲート進入状態であるかどうかを、各クライアントアプリケーションのプロセスＩＤに対応して少なくともセキュリティレベルを保持しているプロセス状態管理データベース１３８に設けたフラグで管理したが、セキュリティゲート進入状態のアプリケーションプロセスのプロセスＩＤ一覧を管理する別のデータベースを設けるようにしても良い。【０１２８】
＜通信システムの第５実施例＞
図２５を参照すると、本発明の通信システムの第５実施例は、通信端末装置１００の高信頼メモリエリア１２０に、データと前処理識別子との対応関係を保持する前処理記憶部１２７を備え、ライブラリ関数１２１の前処理部１２５は、クライアントアプリケーション１１１の送信データと同じデータに対応する前処理識別子を前処理記憶部１２７から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図２１に示した第４実施例と相違する。【０１２９】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置１００のライブラリ関数１２１における前処理部１２５の動作だけが第４実施例の通信システムと相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１が、第１特定命令１２３を処理した後、前処理部１２５による処理に進むと、前処理部１２５は、前処理記憶部１２７を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部１２６による処理へ進む。【０１３０】
本実施例によれば、第４実施例の通信システムと同等の効果が得られると同時に、前処理記憶部１２７を備えたことにより、クライアントアプリケーション１１１がサーバアプリケーション５２に送信するデータに応じて、前処理の内容を変更することができる効果がある。【０１３１】
＜通信システムの第６実施例＞
図２６を参照すると、本発明の通信システムの第６実施例は、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置６１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【０１３２】
通信端末装置１００は、予めサーバ端末装置６１より配布された秘密鍵を保持し、クライアントアプリケーション１１１の送信データを前記秘密鍵を用いて暗号化する暗号化部１２８を証明書管理部１２６の代わりに有する点で第４実施例の通信システムにおける通信端末装置と相違する。【０１３３】
サーバ端末装置６１は、図１２で説明したサーバ端末装置の第３実施例のものと同一であり、サーバアプリケーション６２と通信処理部６３と復号化部６４とを含んで構成される。【０１３４】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置１００は、ライブラリ関数１２１において証明書管理部１２６による処理に代えて暗号化部１２８による処理を行う点が第４実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１は、第１特定命令１２３および前処理部１２５による処理を終えると、暗号化部１２８により、クライアントアプリケーション１１１の送信データをサーバ端末装置６１の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール１２２を使用した通信では、この暗号化データがネットワークＮＷを通じてサーバ端末装置６１の通信処理部６３へ送信される。【０１３５】
サーバ端末装置６１の動作は、第３実施例の通信システムにおけるサーバ端末装置と同じである。【０１３６】
本実施例によれば、通信システムの第４実施例と同じ理由により、クライアントアプリケーション１１１がサーバアプリケーション６２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。【０１３７】
また本実施例によれば、通信システムの第３実施例と同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置６１側で判別することができる。【０１３８】
＜通信システムの第７実施例＞
図２７を参照すると、本発明の通信システムの第７実施例における通信端末装置１００は、図２１に示した第４実施例の通信システムにおける通信端末装置の構成から、セキュリティレベル変更部１３４及びセキュリティレベル変更ポリシデータベース１３５を省略し、権限チェック処理部１３６は、クライアントアプリケーション１１１がセキュリティゲート進入状態にある場合、クライアントアプリケーション１１１のセキュリティレベルによる権限チェックを省略して通信命令を実行し、クライアントアプリケーション１１１がセキュリティゲート進入状態にない場合、クライアントアプリケーション１１１のセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行し、通信命令を実行する権限がないときは特権命令違反としてエラーを発生させるようにした点で、第４実施例の通信システムにおける通信端末装置と相違する。サーバ端末装置５１は、第４実施例の通信システムにおけるものと同じである。【０１３９】
次に、図２７及び図２８のフローチャートを参照して本実施例の動作について詳細に説明する。
通信端末装置１００において、クライアントアプリケーション１１１が通常メモリエリア１１０にＯＳ１３０によりロードされ、アプリケーションプロセス（プロセスＩＤ＝ｎｎｎ）として実行される。この時、クライアントアプリケーション１１１は信頼できるかどうか不明であり、セキュリティレベルは“Ｌｏｗ”で動作する。クライアントアプリケーション１１１は、サーバ端末装置５１のサーバアプリケーション５２にデータを送信する場合、ライブラリ関数１２１を呼び出す。ライブラリ関数１２１は、呼び出されると、まず関数の先頭に配置された第１特定命令１２３を実行する。このときの動作は第４実施例の通信システムにおける通信端末装置と同じであり、その結果、第１特定命令１２３が存在するメモリエリアが高信頼メモリエリア１２０である場合に限り、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーション１１１のセキュリティゲート通過フラグが例えば“０”から“１”に変更される。【０１４０】
その後、クライアントアプリケーション１１１は、ライブラリ関数１２１が提供するプログラムを実行し、この過程で、前処理部１２５、証明書管理部１２６、および通信システムコール１２２がこの順に実行される。【０１４１】
前処理部１２５は、サーバ端末装置５１のサーバアプリケーション５２と通信する前に実行すべき所定の処理を実行する。また、証明書管理部１２６は、前処理を行ったことを証明する証明書をクライアントアプリケーション１１１の送信データに付加する処理を実行する。なお、前処理部１２５および証明書管理部１２６の処理の実行に際して、ＯＳ１３０の機能を必要とする場合、適宜ＯＳ１３０の各種機能が利用される。【０１４２】
また通信システムコール１２２が実行されると（図２８のＳ４０１）、ＯＳ１３０内の権限チェック処理部１３６が呼び出される。権限チェック処理部１３６では、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーション１１１のセキュリティゲート通過フラグを参照し、“１”状態にあるならば、セキュリティレベルによる権限チェックをパスして、通信システムコール処理部１３７を用いて通信処理を行う（Ｓ４０２、Ｓ４０４、Ｓ４０５）。これにより、クライアントアプリケーション１１１の送信データと証明書管理部１２６で付加された証明書とがネットワークＮＷを通じて、サーバ端末装置５１の通信処理部５３に送信される。他方、セキュリティゲート通過フラグが“０”状態であれば（ステップＳ４０２でＮＯ）、当該クライアントアプリケーション１１１のセキュリティレベルに基づいて、当該クライアントアプリケーション１１１が通信システムコール命令を処理する権限を保持しているかどうかをチェックし、権限を保持している場合、通信システムコール処理部１３７を用いて通信処理を行い、通信システムコール処理を終了する（Ｓ４０３〜Ｓ４０５）。しかし、権限を保持していない場合は、通信処理を行わず、特権モードエラーとする（Ｓ４０３、Ｓ４０６）。【０１４３】
その後、クライアントアプリケーション１１１が、ライブラリ関数１２１の処理が完了し、クライアントアプリケーション１１１処理が戻る直前で、第２特定命令１２４が実行されると、第４実施例の通信システムにおける通信端末装置と同様に、プロセス状態管理データベース１３８内にある、当該クライアントアプリケーションプロセスのセキュリティゲート通過フラグが“０”に戻される。【０１４４】
本実施例によれば、第１実施例と同様に、クライアントアプリケーション１１１の通信前に必要な前処理の実行を通信端末装置１００内で保証することができると共に、通信前に必要な前処理を行った通信か否かをサーバ端末装置５１側で判別することができる。【０１４５】
また本実施例によれば、セキュリティレベル変更に関する処理が行われないため、きめ細かな制御はできなくなる一方で構成が単純になり、実装が容易になり、処理速度も向上する効果がある。【０１４６】
なお、本実施例では、クライアントアプリケーション１１１がセキュリティゲート進入状態であるかどうかを、各クライアントアプリケーションのプロセスＩＤに対応して少なくともセキュリティレベルを保持しているプロセス状態管理データベース１３８に設けたフラグで管理したが、セキュリティゲート進入状態のアプリケーションプロセスのプロセスＩＤ一覧を管理する別のデータベースを設けるようにしても良い。【０１４７】
＜通信システムの第８実施例＞
図２９を参照すると、本発明の通信システムの第８実施例は、通信端末装置１００の高信頼メモリエリア１２０に、データと前処理識別子との対応関係を保持する前処理記憶部１２７を備え、ライブラリ関数１２１の前処理部１２５は、クライアントアプリケーション１１１の送信データと同じデータに対応する前処理識別子を前処理記憶部１２７から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図２７に示した第７実施例と相違する。【０１４８】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置１００のライブラリ関数１２１における前処理部１２５の動作だけが第７実施例の通信システムと相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１が、第１特定命令１２３を処理した後、前処理部１２５による処理に進むと、前処理部１２５は、前処理記憶部１２７を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部１２６による処理へ進む。【０１４９】
本実施例によれば、第７実施例の通信システムと同等の効果が得られると同時に、前処理記憶部１２３を備えたことにより、クライアントアプリケーション１１１がサーバアプリケーション５２に送信するデータに応じて、前処理の内容を変更することができる効果がある。【０１５０】
＜通信システムの第９実施例＞
図３０を参照すると、本発明の通信システムの第９実施例は、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置６１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【０１５１】
通信端末装置１００は、予めサーバ端末装置６１より配布された秘密鍵を保持し、クライアントアプリケーション１１１の送信データを前記秘密鍵を用いて暗号化する暗号化部１２８を証明書管理部１２６の代わりに有する点で第７実施例の通信システムにおける通信端末装置と相違する。【０１５２】
サーバ端末装置６１は、図１２で説明したサーバ端末装置の第３実施例のものと同一であり、サーバアプリケーション６２と通信処理部６３と復号化部６４とを含んで構成される。【０１５３】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置１００は、ライブラリ関数１２１において証明書管理部１２６による処理に代えて暗号化部１２８による処理を行う点が第７実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１は、第１特定命令１２３および前処理部１２５による処理を終えると、暗号化部１２８により、クライアントアプリケーション１１１の送信データをサーバ端末装置６１の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール１２２を使用した通信では、この暗号化データがネットワークＮＷを通じてサーバ端末装置６１の通信処理部６３へ送信される。【０１５４】
サーバ端末装置６１の動作は、第３実施例の通信システムにおけるサーバ端末装置と同じである。【０１５５】
本実施例によれば、第７実施例の通信システムと同じ理由により、クライアントアプリケーション１１１がサーバアプリケーション６２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。【０１５６】
また本実施例によれば、第３実施例の通信システムと同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置６１側で判別することができる。【０１５７】
＜通信システムの第１０実施例＞
図３１を参照すると、本発明の通信システムの第１０実施例における通信端末装置１００は、図２１に示した第４実施例の通信システムにおける通信端末装置の構成から、セキュリティレベル変更部１３４、セキュリティレベル変更ポリシデータベース１３５及びプロセス状態管理データベース１３８を省略する一方、セキュリティゲート進入状態のクライアントアプリケーション１１１のプロセスＩＤ一覧を管理するセキュリティゲート進入中プロセスＩＤデータベース１５０を追加し、権限チェック処理部１３６は、クライアントアプリケーション１１１がセキュリティゲート進入状態にあるか否かによって、通信命令の実行可否を制御するようにした点で、第４実施例の通信システムにおける通信端末装置と相違する。本実施例におけるサーバ端末装置５１は、第４実施例の通信システムにおけるものと同じである。【０１５８】
次に、図３１及び図３２のフローチャートを参照して本実施例の通信システムの動作について詳細に説明する。
通信端末装置１００において、クライアントアプリケーション１１１が通常メモリエリア１１０にＯＳ１３０によりロードされ、アプリケーションプロセス（プロセスＩＤ＝ｎｎｎ）として実行される。本実施例の場合、クライアントアプリケーション１１１へのセキュリティレベルの設定は必須でないため、任意のセキュリティレベルを設定して良い。クライアントアプリケーション１１１は、サーバ端末装置５１のサーバアプリケーション５２にデータを送信する場合、ライブラリ関数１２１を呼び出す。ライブラリ関数１２１は、呼び出されると、まず関数の先頭に配置された第１特定命令１２３を実行する。このときの動作は第４実施例の通信システムにおける通信端末装置と同じであり、第１特定命令１２３が存在するメモリエリアが高信頼メモリエリア１２０である場合に限り、当該クライアントアプリケーション１１１がセキュリティゲート進入中として管理される。具体的には、セキュリティゲート進入状態記録処理部１３９により、当該クライアントアプリケーション１１１のプロセスＩＤがセキュリティゲート進入中プロセスＩＤデータベース１５０に記録される。【０１５９】
その後、クライアントアプリケーション１１１は、ライブラリ関数１２１が提供するプログラムを実行し、この過程で、前処理部１２５、証明書管理部１２６、および通信システムコール１２２がこの順に実行される。【０１６０】
前処理部１２５は、サーバ端末装置５１のサーバアプリケーション５２と通信する前に実行すべき所定の処理を実行する。また、証明書管理部１２６は、前処理を行ったことを証明する証明書をクライアントアプリケーション１１１の送信データに付加する処理を実行する。なお、前処理部１２５および証明書管理部１２６の処理の実行に際して、ＯＳ１３０の機能を必要とする場合、適宜ＯＳ１３０の各種機能が利用される。【０１６１】
また通信システムコール１２２が実行されると（図３２のステップＳ５０１）、ＯＳ１３０内の権限チェック処理部１３６が呼び出される。権限チェック処理部１３６では、セキュリティゲート進入中プロセスＩＤデータベース１５０に当該クライアントアプリケーション１１１のプロセスＩＤが登録されているか否かを調べ、登録されていれば、通信システムコール処理部１３７を用いて通信処理を行う（ステップＳ５０２〜Ｓ５０４）。これにより、クライアントアプリケーション１１１の送信データと証明書管理部１２６で付加された証明書とがネットワークＮＷを通じて、サーバ端末装置５１の通信処理部５３に送信される。他方、登録されていなければ（Ｓ５０２でＮＯ）、通信処理を行わず、特権モードエラーとする（Ｓ５０５）。【０１６２】
その後、クライアントアプリケーション１１１が、ライブラリ関数１２１の処理を完了し、アプリケーションプログラム１１１に処理が戻る直前で、第２特定命令１２４が実行されると、セキュリティゲート退出処理部１３２が呼び出され、セキュリティゲート進入状態記録処理部１３９により、セキュリティゲート進入中プロセスＩＤデータベース１５０から当該クライアントアプリケーションのプロセスＩＤが削除される。【０１６３】
本実施例によれば、第１実施例と同様に、クライアントアプリケーション１１１の通信前に必要な前処理の実行を通信端末装置１００内で保証することができると共に、通信前に必要な前処理を行った通信か否かをサーバ端末装置５１側で判別することができる。【０１６４】
また本実施例によれば、セキュリティレベル変更に関する処理が行われないため、きめ細かな制御はできなくなる一方で構成が単純になり、実装が容易になり、処理速度も向上する効果がある。【０１６５】
＜通信システムの第１１実施例＞
図３３を参照すると、本発明の通信システムの第１１実施例は、通信端末装置１００の高信頼メモリエリア１２０に、データと前処理識別子との対応関係を保持する前処理記憶部１２７を備え、ライブラリ関数１２１の前処理部１２５は、クライアントアプリケーション１１１の送信データと同じデータに対応する前処理識別子を前処理記憶部１２７から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図３１に示した第１０実施例と相違する。【０１６６】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置１００のライブラリ関数１２１における前処理部１２５の動作だけが第１０実施例の通信システムと相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１が、第１特定命令１２３を処理した後、前処理部１２５による処理に進むと、前処理部１２５は、前処理記憶部１２７を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部１２６による処理へ進む。【０１６７】
本実施例によれば、第１０実施例の通信システムと同等の効果が得られると同時に、前処理記憶部１２３を備えたことにより、クライアントアプリケーション１１１がサーバアプリケーション５２に送信するデータに応じて、前処理の内容を変更することができる。【０１６８】
＜通信システムの第１２実施例＞
図３４を参照すると、本発明の通信システムの第１２実施例は、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置６１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【０１６９】
通信端末装置１００は、予めサーバ端末装置６１より配布された秘密鍵を保持し、クライアントアプリケーション１１１の送信データを前記秘密鍵を用いて暗号化する暗号化部１２８を証明書管理部１２６の代わりに有する点で第１０実施例の通信システムにおける通信端末装置と相違する。【０１７０】
サーバ端末装置６１は、図１２で説明したサーバ端末装置の第３実施例のものと同一であり、サーバアプリケーション６２と通信処理部６３と復号化部６４とを含んで構成される。【０１７１】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置１００は、ライブラリ関数１２１において証明書管理部１２６による処理に代えて暗号化部１２８による処理を行う点が第１０実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１は、第１特定命令１２３および前処理部１２５による処理を終えると、暗号化部１２８により、クライアントアプリケーション１１１の送信データをサーバ端末装置６１の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール１２２を使用した通信では、この暗号化データがネットワークＮＷを通じてサーバ端末装置６１の通信処理部６３へ送信される。【０１７２】
サーバ端末装置６１の動作は、第３実施例の通信システムにおけるサーバ端末装置と同じである。【０１７３】
本実施例によれば、第１０実施例の通信システムと同じ理由により、クライアントアプリケーション１１１がサーバアプリケーション６２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。【０１７４】
また本実施例によれば、第３実施例の通信システムと同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置６１側で判別することができる。【０１７５】
＜通信システムの第１３実施例＞
図３５を参照すると、本発明の通信システムの第１３実施例は、通信端末装置１００において、ライブラリ関数１２１の処理の末尾に配置される第２特定命令１２４を省略する代わりに、第１特定命令１２３を実行する際に、クライアントアプリケーション１１１に戻る直前に必ず第２特定命令１２４を含む関数を経由するようにクライアントアプリケーション１１１のプロセスのスタックを改変する命令列であるところのスタック改変処理部１２９をライブラリ関数１２１に付加するようにした点で、第１実施例の通信システムにおける通信端末装置と相違する。本実施例のサーバ端末装置５１は、第１実施例の通信システムにおけるものと同じである。【０１７６】
次に、図３５及び図３６を参照して本実施例の動作について詳細に説明する。
通信端末装置１００において、クライアントアプリケーション１１１が通常メモリエリア１１０にＯＳ１３０によりロードされ、アプリケーションプロセス（プロセスＩＤ＝ｎｎｎ）として実行される。この時、クライアントアプリケーション１１１は信頼できるかどうか不明であり、セキュリティレベルは“Ｌｏｗ”で動作する。クライアントアプリケーション１１１は、サーバ端末装置５１のサーバアプリケーション５２にデータを送信する場合、ライブラリ関数１２１を呼び出す。ライブラリ関数１２１は、呼び出されると、まず関数の先頭に配置された第１特定命令１２３を実行する。これにより、第１実施例の通信システムの通信端末装置と同様に、第１特定命令１２３が存在するメモリエリアの種別が高信頼メモリエリア１２０である場合に限り、セキュリティレベル変更部１３４を用いてアプリケーションプロセスのセキュリティレベルが例えば“Ｌｏｗ”から“Ｈｉｇｈ”に変更される。【０１７７】
続いて、スタック改変処理部１２９が実行され、当該クライアントアプリケーション１１１のスタック情報を改変し、図３６に示すように、ライブラリ内ＡＰＩ関数のスタック情報と、アプリケーションプログラム内関数のスタック情報との間に、第２特定命令１２４を実行する関数のスタック情報を挿入する。このようにスタック情報を改変することで、当該クライアントアプリケーション１１１がライブラリ関数１２１の処理を終え、クライアントアプリケーションのプログラム内関数に処理が戻る前に、必ず第２特定命令１２４を実行する関数が呼び出されることになる。【０１７８】
第２特定命令１２４を実行する関数が呼び出され、その第２特定命令１２４が実行されると、第１実施例の通信システムにおける通信端末装置と同様に、セキュリティレベル変更部１３４を用いてクライアントアプリケーション１１１のセキュリティレベルが“Ｌｏｗ”に戻される。そして、スタック情報に従って、クライアントアプリケーション１１１に制御が戻される。【０１７９】
本実施例によれば、第１実施例の通信システムと同じ効果が得られると共に、スタック改変処理により、クライアントアプリケーション１１１がライブラリ関数１２１の処理を終え、クライアントアプリケーション１１１内関数に処理が戻る前に、必ず第２特定命令１２４を実行する関数が呼び出されることになるため、第２特定命令１２４の配置ミスによる特権レベルの不正流出を防止することができる。【０１８０】
なお、前述したようにスタック改変処理をＯＳ１３０の一機能として提供し、第１特定命令１２３の実行時に呼び出されるセキュリティゲート進入処理部１３１でスタック改変処理を実行するようにしても良い。【０１８１】
＜通信システムの第１４実施例＞
図３７を参照すると、本発明の通信システムの第１４実施例は、通信端末装置１００の高信頼メモリエリア１２０に、データと前処理識別子との対応関係を保持する前処理記憶部１２７を備え、ライブラリ関数１２１の前処理部１２５は、クライアントアプリケーション１１１の送信データと同じデータに対応する前処理識別子を前処理記憶部１２７から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図３５に示した第１３実施例と相違する。【０１８２】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置１００のライブラリ関数１２１における前処理部１２５の動作だけが第１３実施例の通信システムと相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１が、第１特定命令１２３およびスタック改変処理部１２９による処理を行った後、前処理部１２５による処理に進むと、前処理部１２５は、前処理記憶部１２７を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部１２６による処理へ進む。【０１８３】
本実施例によれば、第１３実施例の通信システムと同等の効果が得られると同時に、前処理記憶部１２３を備えたことにより、クライアントアプリケーション１１１がサーバアプリケーション５２に送信するデータに応じて、前処理の内容を変更することができる効果がある。【０１８４】
＜通信システムの第１５実施例＞
図３８を参照すると、本発明の通信システムの第１５実施例は、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置６１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【０１８５】
通信端末装置１００は、予めサーバ端末装置６１より配布された秘密鍵を保持し、クライアントアプリケーション１１１の送信データを前記秘密鍵を用いて暗号化する暗号化部１２８を証明書管理部１２６の代わりに有する点で第１３実施例の通信システムにおける通信端末装置と相違する。【０１８６】
サーバ端末装置６１は、図１２で説明したサーバ端末装置の第３実施例のものと同一であり、サーバアプリケーション６２と通信処理部６３と復号化部６４とを含んで構成される。【０１８７】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置１００は、ライブラリ関数１２１において証明書管理部１２６による処理に代えて暗号化部１２８による処理を行う点が第１３実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１は、第１特定命令１２３、スタック改変処理部１２９および前処理部１２５による処理を終えると、暗号化部１２８により、クライアントアプリケーション１１１の送信データをサーバ端末装置６１の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール１２２を使用した通信では、この暗号化データがネットワークＮＷを通じてサーバ端末装置６１の通信処理部６３へ送信される。【０１８８】
サーバ端末装置６１の動作は、第３実施例の通信システムにおけるサーバ端末装置と同じである。【０１８９】
本実施例によれば、通信システムの第１３実施例と同じ理由により、クライアントアプリケーション１１０がサーバアプリケーション６２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。【０１９０】
また本実施例によれば、通信システムの第３実施例と同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置６１側で判別することができる。【０１９１】
＜通信システムの第１６実施例＞
図３９を参照すると、本発明の通信システムの第１６実施例は、第１実施例の通信システムにおける通信端末装置１００に、シグナル／割り込みハンドラ１１２と、シグナル／割り込み処理部１４０と、セキュリティゲート一時退出処理部１４１とが追加されている。また、プロセス状態管理データベース１３８は、クライアントアプリケーション１１１のプロセスＩＤと、現在のセキュリティレベルと、プロセス生成時に元々割り当てられていたセキュリティレベル（初期レベル）と、セキュリティレベルの保存域との組を格納する。【０１９２】
シグナル／割り込みハンドラ１１２は、クライアントアプリケーション１１１内に存在し、クライアントアプリケーションが走行している間に発生したシグナルや割り込みに対応する処理を行う。【０１９３】
シグナル／割り込み処理部１４０は、ＯＳ１３０内に存在し、クライアントアプリケーション１１１が走行している間にシグナルや割り込みが発生した時に、それまでの処理を中断し、セキュリティゲート一時退出処理部１４１を経由して、クライアントアプリケーション１１１内のシグナル／割り込みハンドラ１１２を呼び出す処理を行う。【０１９４】
セキュリティゲート一時退出処理部１４１は、シグナル／割り込み処理部１４０がクライアントアプリケーション１１１内のシグナル／割り込みハンドラ１１２を呼び出す前に、当該クライアントアプリケーション１１１のセキュリティレベルを一時的に元に戻す処理を行う。【０１９５】
次に、図３９及び図４０のフローチャートを参照して本実施例の動作について詳細に説明する。
第１実施例の通信システムにおいて説明した処理動作にて通信端末装置１００が動作している場合において、クライアントアプリケーション１１１が処理を行っている間にシグナルや割り込みが発生すると、ＯＳ１３０はクライアントアプリケーション１１１の処理を一時中断し、シグナル／割り込み処理部１４０を用いてクライアントアプリケーション１１１内にあるシグナル／割り込みハンドラ１１２を呼び出そうとする。この時、もしもクライアントアプリケーション１１１の状態が、セキュリティゲート進入処理部１３１を通過している状態であれば、このままではクライアントアプリケーション１１１のプログラム内の通信システムコールの実行が可能になり、前処理を保証することができなくなる。そこで本実施例では、これを防ぐため、シグナル／割り込み処理部１４０がシグナル／割り込みハンドラ１１２を呼び出す前に、セキュリティゲート一時退出処理部１４１を用いて、以下のように、当該クライアントアプリケーション１１１のセキュリティレベルを一時的に元に戻す処理を行う。【０１９６】
クライアントアプリケーション１１１の処理中にシグナルや割り込みが発生すると（図４０のＳ６０１）、シグナル／割り込み処理部１４０は、セキュリティゲート一時退出処理部１４１を呼び出す。セキュリティゲート一時退出処理部１４１は、当該クライアントアプリケーション１１１の現在のセキュリティレベルをプロセス状態管理データベース１３８の保存域に記録する（Ｓ６０２）。次に当該クライアントアプリケーションのセキュリティレベルをプロセス生成時に元々割り当てられていたセキュリティレベルに変更する（Ｓ６０３）。その後、クライアントアプリケーション１１１中にあるシグナル／割り込みハンドラ１１２を呼び出す（Ｓ６０４）。【０１９７】
シグナル／割り込みハンドラ１１２の処理が終わると、制御がセキュリティゲート一時退出処理部１４１に戻され、セキュリティゲート一時退出処理部１４１は、当該クライアントアプリケーション１１１のセキュリティレベルを、プロセス状態管理データベース１３８の保存域に記録したセキュリティレベルに戻す（Ｓ６０５）。その後、制御がシグナル／割り込み処理部１４０に戻され、シグナル／割り込み処理が終了する（Ｓ６０６）。【０１９８】
本実施例によれば、第１実施例の通信システムと同じ効果が得られると共に、セキュリティゲートを通過したクライアントアプリケーション１１１にシグナルや割り込みが発生して、クライアントアプリケーション１１１内にあるハンドラを実行する場合でも、当該クライアントアプリケーションのセキュリティレベルをクライアントアプリケーションに元々割り当てられていた状態に一時的に戻すことが可能になるため、特権状態の不正な流出を防ぎ、通信前の前処理の実行をより確実に保証することができる。【０１９９】
＜通信システムの第１７実施例＞
図４１を参照すると、本発明の通信システムの第１７実施例は、通信端末装置１００の高信頼メモリエリア１２０に、データと前処理識別子との対応関係を保持する前処理記憶部１２７を備え、ライブラリ関数１２１の前処理部１２５は、クライアントアプリケーション１１１の送信データと同じデータに対応する前処理識別子を前処理記憶部１２７から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図３９に示した第１６実施例と相違する。【０２００】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置１００のライブラリ関数１２１における前処理部１２５の動作だけが第１６実施例の通信システムと相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１が、第１特定命令１２３を処理した後、前処理部１２５による処理に進むと、前処理部１２５は、前処理記憶部１２７を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部１２６による処理へ進む。【０２０１】
本実施例によれば、第１６実施例の通信システムと同等の効果が得られると同時に、前処理記憶部１２３を備えたことにより、クライアントアプリケーション１１１がサーバアプリケーション５２に送信するデータに応じて、前処理の内容を変更することができる効果がある。【０２０２】
＜通信システムの第１８実施例＞
図４２を参照すると、本発明の通信システムの第１８実施例は、クライアント端末として動作する通信端末装置１００とサーバ端末として動作するサーバ端末装置６１とがインターネットなどのネットワークＮＷを通じて相互に通信可能に接続されている。【０２０３】
通信端末装置１００は、予めサーバ端末装置６１より配布された秘密鍵を保持し、クライアントアプリケーション１１１の送信データを前記秘密鍵を用いて暗号化する暗号化部１２８を証明書管理部１２６の代わりに有する点で第１６実施例の通信システムにおける通信端末装置と相違する。【０２０４】
サーバ端末装置６１は、図１２で説明したサーバ端末装置の第３実施例のものと同一であり、サーバアプリケーション６２と通信処理部６３と復号化部６４とを含んで構成される。【０２０５】
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置１００は、ライブラリ関数１２１において証明書管理部１２６による処理に代えて暗号化部１２８による処理を行う点が第１６実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション１１１から送信データを渡されて呼び出されたライブラリ関数１２１は、第１特定命令１２３および前処理部１２５による処理を終えると、暗号化部１２８により、クライアントアプリケーション１１１の送信データをサーバ端末装置６１の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール１２２を使用した通信では、この暗号化データがネットワークＮＷを通じてサーバ端末装置６１の通信処理部６３へ送信される。【０２０６】
サーバ端末装置６１の動作は、第３実施例の通信システムにおけるサーバ端末装置と同じである。【０２０７】
本実施例によれば、通信システムの第１６実施例と同じ理由により、クライアントアプリケーション１１０がサーバアプリケーション６２と通信する場合、その通信前に必要な前処理の実行を通信端末装置１００内で保証することができる。【０２０８】
また本実施例によれば、通信システムの第３実施例と同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置６１側で判別することができる。【０２０９】
本発明によれば、通信端末装置上で動作するクライアントアプリケーションが、サーバ端末装置上にあるサーバアプリケーションと通信を行い動作するシステムで、クライアントアプリケーションが、通信端末装置で特定の処理を必ず実行してから、サーバアプリケーションと通信を行う機能を実現する用途に適用できる。
【図１】
2007055169.tif 000003
【図２】
2007055169.tif 000004
【図３】
2007055169.tif 000005
【図４】
2007055169.tif 000006
【図５】
2007055169.tif 000007
【図６】
2007055169.tif 000008
【図７】
2007055169.tif 000009
【図８】
2007055169.tif 000010
【図９】
2007055169.tif 000011
【図１０】
2007055169.tif 000012
【図１１】
2007055169.tif 000013
【図１２】
2007055169.tif 000014
【図１３】
2007055169.tif 000015
【図１４】
2007055169.tif 000016
【図１５】
2007055169.tif 000017
【図１６】
2007055169.tif 000018
【図１７】
2007055169.tif 000019
【図１８】
2007055169.tif 000020
【図１９】
2007055169.tif 000021
【図２０】
2007055169.tif 000022
【図２１】
2007055169.tif 000023
【図２２】
2007055169.tif 000024
【図２３】
2007055169.tif 000025
【図２４】
2007055169.tif 000026
【図２５】
2007055169.tif 000027
【図２６】
2007055169.tif 000028
【図２７】
2007055169.tif 000029
【図２８】
2007055169.tif 000030
【図２９】
2007055169.tif 000031
【図３０】
2007055169.tif 000032
【図３１】
2007055169.tif 000033
【図３２】
2007055169.tif 000034
【図３３】
2007055169.tif 000035
【図３４】
2007055169.tif 000036
【図３５】
2007055169.tif 000037
【図３６】
2007055169.tif 000038
【図３７】
2007055169.tif 000039
【図３８】
2007055169.tif 000040
【図３９】
2007055169.tif 000041
【図４０】
2007055169.tif 000042
【図４１】
2007055169.tif 000043
【図４２】
2007055169.tif 000044
【図４３】
2007055169.tif 000045
【国際調査報告】
2007055169.tif 000046
2007055169.tif 000047
2007055169.tif 000048
2007055169.tif 000049