JPWO2007055169A1 - 通信端末装置、サーバ端末装置、それらを用いる通信システム - Google Patents

通信端末装置、サーバ端末装置、それらを用いる通信システム Download PDF

Info

Publication number
JPWO2007055169A1
JPWO2007055169A1 JP2007544123A JP2007544123A JPWO2007055169A1 JP WO2007055169 A1 JPWO2007055169 A1 JP WO2007055169A1 JP 2007544123 A JP2007544123 A JP 2007544123A JP 2007544123 A JP2007544123 A JP 2007544123A JP WO2007055169 A1 JPWO2007055169 A1 JP WO2007055169A1
Authority
JP
Japan
Prior art keywords
communication
client application
terminal device
processing
communication terminal
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.)
Granted
Application number
JP2007544123A
Other languages
English (en)
Other versions
JP4978896B2 (ja
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007544123A priority Critical patent/JP4978896B2/ja
Publication of JPWO2007055169A1 publication Critical patent/JPWO2007055169A1/ja
Application granted granted Critical
Publication of JP4978896B2 publication Critical patent/JP4978896B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

通信端末装置は、通信相手との通信に先立って実行されるべき処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持する記憶部を備えている。通信命令実行制御部は、前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する。セキュリティゲート進入処理部は、前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更する。セキュリティゲート退出処理部は、前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻す。

Description

本発明は、通信端末装置および通信システムに関し、特に通信相手との通信に先立って必ず特定の処理が行われる通信端末装置および通信システムに関する。
クライアントアプリケーションプログラム(以下、クライアントアプリケーションと略す)が動作する通信端末装置と、サーバアプリケーションプログラム(以下、サーバアプリケーションと略す)が動作するサーバ端末装置とをインターネットなどのネットワークを通じて相互に通信可能に接続し、通信端末装置からの要求をネットワーク経由でサーバ端末装置へ送信し、サーバ端末装置がその要求に応答してサービスなどを提供する通信システムが、数多く提案ないし実用化されている(例えば特開2005−128960号公報参照)。
このような通信システムにおいて、サーバ端末装置との通信に先立って特定の処理が通信端末装置で行われるようにする仕組みは、図43の概念図に示されるように、通信端末装置4300におけるクライアントアプリケーション4301と通信処理部4303との間に前処理部4302を介在させ、クライアントアプリケーション4301がサーバ端末装置4310上のサーバアプリケーション4311と通信する場合、サーバアプリケーション4311に対するデータを前処理部4302に渡し、前処理部4302が、この渡されたデータに基づいて特定の処理を行った後、通信処理部4303にデータを渡してサーバ端末4310上の通信処理部4312との間で通信を行わせる方法である。
このシステムでは、クライアントアプリケーション4301が前処理部4302をバイパスしてデータを通信処理部4303に直接渡して通信することが可能である。従って、通信端末装置においてサーバ端末装置との通信に先立って特定の処理を実行することは可能であるが、その実行を保証することが困難である。
また、改ざんや偽造された通信処理をクライアントアプリケーション4301が実行する可能性がある。従って、クライアントアプリケーション4301が、通信前に必要な前処理が未遂にもかかわらず通信前に必要な前処理が完了したかのように振舞う不正な通信処理を介してサーバアプリケーション4311と通信することが可能である。
通信端末装置4300で通信前に必要な前処理を行ったクライアントアプリケーション4301からの通信か否かをサーバ端末装置4310が判別できない。通信前に必要な前処理を行ったクライアントアプリケーション4301からの通信とそうでない通信とをサーバ端末装置4310側で区別する方法がない。
以上のことから、通信端末装置においてサーバ端末装置との通信に先立って実行する特定の処理としては、実行されていてもいなくても大きな問題にならない処理に限定せざるを得ず、例えば課金処理などのサーバ端末装置にとって重要な処理は通信端末装置側でなくサーバ端末装置側で実施する必要があった。
上記説明と関連して、情報管理システムが特開2004−213640号公報に開示されている。この従来例の情報管理システムは、データを記憶する複数の端末装置と、データに関する管理情報を管理する情報管理サーバとがネットワークを介して接続されている。前記情報管理サーバは、前記管理情報を記憶するための管理情報記憶部と、前記各端末装置との間でセキュアな通信路を形成し、当該通信路を介して各端末装置と通信する第1セキュア通信部とを備えている。前記各端末装置は、耐タンパモジュールを備え、前記耐タンパモジュールは、前記データをセキュアに記憶するためのデータ記憶部と、前記データ記憶手段に記憶されたデータに対して前記管理情報に影響を及ぼす処理をセキュアに実行する実行部と、前記第1セキュア通信手段との間でセキュアな通信路を形成し、当該通信路を介して前記管理情報に影響を及ぼす処理を実行した旨を示す完了通知を送信する第2セキュア通信部とを備えている。
また、データ処理装置のデータ処理方式が特開平5−134917号公報に開示されている。この従来のデータ処理装置のデータ処理方式では、データ処理装置はファイル形式でデータを記し処理するオペレーティングシステムを備えている。データ処理方式は、ファイル内の分割された有意なフィールドに対応して登録されたアクセス前処理およびアクセス後処理と、前記ファイル内のフィールドに対するアクセス時に該フィールドに対応付けられたアクセス前処理を実行するアクセス前処理実行部と、このアクセス前処理実行手段によるアクセス前処理の結果に応じて該フィールドに対するアクセスの可否の決定を行うアクセス許可決定部と、このアクセス許可決定手段によりアクセスが許可された場合に該フィールドに対するアクセスを行うフィールドアクセス部と、このフィールドアクセス手段によるフィールドのアクセスの後に該フィールドに対応付けられたアクセス後処理を実行するアクセス後処理実行部とを備えている。
また、ネットワークシステムのセキュリティ管理方法が特開平10−269184号公報に開示されている。この従来例は、ネットワークを介してクライアント、業務サーバ及び統合認証サーバが相互に通信可能なネットワークシステムのセキュリティ管理方法である。クライアントから業務サーバへ証明証の情報を送信して業務要求を行い、業務サーバから統合認証サーバへ証明証の情報を送信して証明証の確認要求を行い、統合認証サーバによって証明証の確認とユーザの該業務サーバへのアクセス権限のチェックとを行い、正当であれば業務サーバへユーザIDとパスワードを送信し、該業務サーバによってユーザIDとパスワードによる認証を行う。
本発明の目的は、サーバ端末装置と通信端末装置とが通信する際に、通信前に必要な前処理の実行を通信端末装置内で保証する技術を提供することにある。
本発明の他の目的は、通信前に必要な前処理が未遂にもかかわらず通信前に必要な前処理が完了したかのように振舞う不正な通信処理を介して通信端末装置がサーバ端末装置と通信することを防止する技術を提供することにある。
本発明の更に他の目的は、通信端末装置で通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別する技術を提供することにある。
本発明の観点では、通信端末装置は、通信相手との通信に先立って実行する処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持する記憶部と、前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部とを備えている。
通信端末装置は、通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含むでいる。通信相手との通信に先立って実行する前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含んでいてもよい。前記前処理は課金処理を含むでいてもよいし、前記前処理は著作権管理処理を含んでもよい。
本発明の他の観点では、サーバ端末装置は、サーバアプリケーションを保持する記憶部と、証明書が正当であるか否かを判別する証明書検証部と、クライアントアプリケーションから受信したデータに付加された証明書が前記証明書検証部で正当であると判別された場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して前記サーバアプリケーションに伝達する通信処理部とを備えている。
サーバ端末装置は、サーバアプリケーションを保持する記憶部と、暗号化データを自装置の公開鍵で復号化する復号化部と、クライアントアプリケーションから受信した暗号化データが前記復号化部で復号化できた場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して復号化したデータを前記サーバアプリケーションに伝達する通信処理部とを備えている。
本発明の他の観点では、通信システムは、通信端末装置とサーバ端末装置とを備え、それらはネットワークを通じて通信可能に接続されている。
本発明の他の観点では、情報処理方法は、通信端末装置にて、通信相手との通信に先立って実行する処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持ステップと、前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御するステップと、前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するステップと、前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すステップにより達成される。
前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含ンでも良いし、前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含んでもよい。
本発明において、通信端末装置のクライアントアプリケーションがライブラリ関数を呼び出すと、サーバ端末装置との通信に先立って実行する処理の実行前に第1特定命令が実行され、内部割り込みが発生する。この内部割り込みにかかる例外処理において、セキュリティゲート進入処理部により、第1特定命令のアドレスが許容アドレス範囲内であるか否かがチェックされ、許容アドレス範囲内であれば、クライアントアプリケーションの属性値が通信命令を実行できるように変更され、許容アドレス範囲内でなければそのような属性値の変更は行われない。この後、呼び出されたライブラリ関数の後続の処理が実行され、それに伴いサーバ端末装置との通信に先立って実行する処理が実行される。そして、ライブラリ関数の処理が通信命令の箇所に進むと、その通信命令の実行により内部割り込みが発生し、その内部割り込みにかかる例外処理において、通信命令実行制御部により、クライアントアプリケーションの属性値に基づいて通信命令の実行可否が制御される。従って、通信命令の実行が許されていないクライアントアプリケーションが通信命令へ直接ジャンプした場合、第1特定命令が実行されないので、属性値は通信命令を実行できない状態のままであるのに対し、第1特定命令が許容アドレス範囲内に存在する正規なライブラリ関数を呼び出した場合には、第1特定命令の実行によって通信命令が使用できるように属性値が変更されているため、通信命令の実行が可能となる。またこの場合、第1特定命令の後に配置された、通信相手との通信に先立って実行する処理が必ず実行されることになる。そして、ライブラリ関数から呼び出し元のクライアントアプリケーションに戻る前に、クライアントアプリケーションが第2特定命令を実行すると、内部割り込みが発生し、この内部割り込みにかかる例外処理において、セキュリティゲート退出処理部により、クライアントアプリケーションの属性値が通信命令を実行できない元の状態に戻される。これにより、正規のライブラリ関数に含まれる通信命令以外の通信命令の実行が防止される。
通信端末装置のクライアントアプリケーションは第1特定命令が許容アドレス範囲内に存在する正規なライブラリ関数を呼び出す以外に通信命令を使用する方法がなく、正規なライブラリ関数を呼び出せば、サーバ端末装置のサーバアプリケーションとの通信に先立って実行する処理が必ず実行される。従って、本発明によれば、サーバ端末装置と通信端末装置とが通信する際に、通信前に必要な前処理の実行を通信端末装置内で保証することができる。
また、クライアントアプリケーションから呼び出されるライブラリ関数およびOSに処理を追加することで実現されている。従って、本発明によれば、通信前に必要な前処理の実行を通信端末装置内で保証するために、クライアントアプリケーションに対して変更を加える必要がない。
さらに、正規にライブラリ関数を呼び出してサーバ端末装置と通信した通信端末装置だけが、正しい証明書の作成あるいは通信相手の秘密鍵を用いた暗号化が行えるため、サーバ端末装置でその証明書を検証するか、或いは公開鍵で復号化すれば、通信端末装置で通信前に必要な前処理を行った通信か否かを判別できる。従って、通信相手との通信に先立って実行する処理として、前処理に加えて、前処理を行ったことを通信相手に証明する証明書を作成する処理あるいは通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理を含ませる発明にあっては、通信端末装置で通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別することができる。
またさらに、正規にライブラリ関数を呼び出してサーバ端末装置と通信した通信端末装置だけが、正しい証明書の作成あるいは通信相手の秘密鍵を用いた暗号化が行えるため、サーバ端末装置でその証明書を検証するか、或いは公開鍵で復号化すれば、そのような不正な通信処理かどうかを判別できる。従って、通信相手との通信に先立って実行する処理として、前処理に加えて、前処理を行ったことを通信相手に証明する証明書を作成する処理あるいは通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理を含ませる発明にあっては、通信前に必要な前処理が未遂にもかかわらず通信前に必要な前処理が完了したかのように振舞う不正な通信処理を介して通信端末装置がサーバ端末装置と通信することを防止できる。
図1は、本発明の通信端末装置のハードウェア構成の一例を示すブロック図である。 図2は、本発明の第1実施例による通信端末装置のブロック図である。 図3は、本発明の第2実施例による通信端末装置のブロック図である。 図4は、本発明の第2実施例の変形例による通信端末装置のブロック図である。 図5は、本発明の第3実施例による通信端末装置のブロック図である。 図6は、本発明の第1実施例によるサーバ端末装置のブロック図である。 図7は、本発明の第1実施例におけるサーバ端末装置の通信処理部の処理例を示すフローチャートである。 図8は、本発明の第1実施例におけるサーバ端末装置の証明書検証部の処理例を示すフローチャートである。 図9は、本発明の第1実施例におけるサーバ端末装置のサーバアプリケーションの処理例を示すフローチャートである。 図10は、本発明の第2実施例におけるサーバ端末装置の通信処理部の処理例を示すフローチャートである。 図11は、本発明の第2実施例におけるサーバ端末装置のサーバアプリケーションの処理例を示すフローチャートである。 図12は、本発明の第3実施例によるサーバ端末装置のブロック図である。 図13は、本発明の第3実施例におけるサーバ端末装置の通信処理部の処理例を示すフローチャートである。 図14は、本発明の第3実施例におけるサーバ端末装置の復号化部の処理例を示すフローチャートである。 図15は、本発明の第1実施例による通信システムのブロック図である。 図16は、本発明の第1実施例における通信システムのセキュリティゲート進入処理部の処理例を示すフローチャートである。 図17は、本発明の第1実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。 図18は、本発明の第1実施例における通信システムのセキュリティゲート退出処理部の処理例を示すフローチャートである。 図19は、本発明の第2実施例による通信システムのブロック図である。 図20は、本発明の第3実施例による通信システムのブロック図である。 図21は、本発明の第4実施例による通信システムのブロック図である。 図22は、本発明の通第4実施例における信システムのセキュリティゲート進入処理部の処理例を示すフローチャートである。 図23は、本発明の第4実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。 図24は、本発明の第4実施例における通信システムのセキュリティゲート退出処理部の処理例を示すフローチャートである。 図25は、本発明の第5実施例による通信システムのブロック図である。 図26は、本発明の第6実施例による通信システムのブロック図である。 図27は、本発明の第7実施例による通信システムのブロック図である。 図28は、本発明の第7実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。 図29は、本発明の第8実施例による通信システムのブロック図である。 図30は、本発明の第9実施例による通信システムのブロック図である。 図31は、本発明の第10実施例による通信システムのブロック図である。 図32は、本発明の第10実施例における通信システムの権限チェック処理部の処理例を示すフローチャートである。 図33は、本発明の第11実施例による通信システムのブロック図である。 図34は、本発明の通第12実施例による信システムのブロック図である。 図35は、本発明の通第13実施例による信システムのブロック図である。 図36Aと36Bは、本発明の第13実施例における通信システムのスタック改変処理部の処理の説明図である。 図37は、本発明の第14実施例による通信システムのブロック図である。 図38は、本発明の第15実施例による通信システムのブロック図である。 図39は、本発明の第16実施例による通信システムのブロック図である。 図40は、本発明の第16実施例における通信システムのシグナル/割り込み処理部の処理例を示すフローチャートである。 図41は、本発明の第17実施例による通信システムのブロック図である。 図42は、本発明の第18実施例による通信システムのブロック図である。 図43は、従来技術のブロック図である。
以下、添付図面を参照して、本発明の通信端末装置と、それを使用する通信システムを詳細に説明する。
<通信端末装置のハードウェア構成>
図1は、本発明の通信端末装置のハードウェア構成の一例を示すブロック図である。図1を参照すると、本発明の通信端末装置は、CPU1、ROM2、RAM3、表示部4、入力操作部5、ファイルシステム6、ネットワークインタフェースカード(NIC)7およびこれらを相互に接続するバス8を備えている。ROM2は、読み取り専用のメモリであり、CPU1で実行されるオペレーティングシステム(OS)、ライブラリ関数および固定データなどを記憶する。RAM3は、読み書き可能なメモリであり、CPU1で実行されるクライアントアプリケーションおよび演算データなどを一時的に記憶する。表示部4は、LCDなどで構成され、アプリケーション画面などを表示する。入力操作部5はキーボードなどで構成され、ユーザからのデータや指示を入力する。ファイルシステム6は、ハードディスクやICカードなどで構成され、クライアントアプリケーションや各種データを記憶する。NIC7は、有線あるいは無線により外部の通信相手と通信するためのものである。このようなハードウェア構成を有する通信端末装置の例としては、パーソナルコンピュータなどの一般的なコンピュータ、ゲーム端末、携帯電話などがある。
<通信端末装置の第1実施例>
図2は、本発明の第1実施例による通信端末装置の構成を示すブロック図である。図2を参照すると、本発明の第1実施例による通信端末装置は、OS11、ライブラリ関数12、クライアントアプリケーション13、属性値14および第1特定命令の許容アドレス範囲15を、コンピュータ読み取り可能な記録媒体に保持している。
ライブラリ関数12は、自関数で行われる処理のうち通信相手との通信に先立って実行する処理21の実行前に第1特定命令22が実行され、且つ呼び出し元に戻る前に第2特定命令23が実行されるようになっている。典型的には、関数の先頭部分に第1特定命令22が配置され、呼び出し元に戻る直前の部分に第2特定命令23が配置される。処理21は、例えば、課金処理などの前処理と、前処理を行ったことの証明書を作成する処理もしくは通信相手に送るデータをその通信相手の秘密鍵で暗号化する処理を含む。またライブラリ関数12には、通信相手と通信するための通信命令24が含まれる。第1特定命令22、第2特定命令23および通信命令24はシステムコール命令であり、その実行時に内部割り込みが発生し、制御がOS11に移される。また、第1特定命令22の許容アドレス範囲15が事前に設定され、第1特定命令22の実行による内部割り込み時に、OS11により参照される。
クライアントアプリケーション13は、ライブラリ関数12を呼び出すコール命令41、ライブラリ関数12内の通信命令24に直接ジャンプするジャンプ命令42、および通信命令43を実行する。
OS11は、例えば、クライアントアプリケーション13毎にセキュリティレベルを設定可能なセキュアOSである。OS11は、クライアントアプリケーション13毎の属性値14を管理している。属性値14は、クライアントアプリケーション13が利用する機能やリソースのアクセス制御の判断に用いられる1以上の属性値である。属性値14の具体例としては、セキュリティレベルを示す属性値、セキュリティゲート進入状態を示す属性値がある。また、第1特定命令22、第2特定命令23および通信命令24、43の実行によって内部割り込みが発生した際、それらに対応する例外処理として、セキュリティゲート進入処理31、セキュリティゲート退出処理32および通信命令実行制御33を行う機能を持つ。
通信命令実行制御33では、クライアントアプリケーション13がライブラリ関数12を呼び出してその通信命令24を実行した際、および、クライアントアプリケーションコード上の通信命令43を実行した際、クライアントアプリケーション13の属性値14に基づいて通信命令24、43の実行可否を制御する。
セキュリティゲート進入処理31では、クライアントアプリケーション13が第1特定命令22を実行した際、第1特定命令22のアドレスが許容アドレス範囲15内であるか否かをチェックし、許容アドレス範囲15内であれば、クライアントアプリケーション13の属性値14を変更する。
セキュリティゲート退出処理32では、クライアントアプリケーション13が第2特定命令23を実行した際、クライアントアプリケーション13の属性値14を元に戻す。
次に本実施例の通信端末装置の動作を説明する。ここで、クライアントアプリケーション13の属性値14は、通信命令を実行することができない値になっているものとする。また、許容アドレス範囲15には、正規のライブラリ関数12が配置されているメモリ(例えば図1のROM2)のメモリアドレス範囲が設定されているものとする。
クライアントアプリケーション13がコール命令41によってライブラリ関数12を呼び出すと、その先頭部分に配置された第1特定命令22がまず実行され、OS11のセキュリティゲート進入処理31により、クライアントアプリケーション13の属性値14が変更される。例えば、通信命令の実行可否をセキュリティレベルで制御する場合にはセキュリティレベルが変更され、通信命令の実行可否をセキュリティゲート進入状態で制御する場合にはセキュリティゲート進入の有無を示す属性値が変更される。なお、この時点ではセキュリティゲート進入状態を示す属性値を変更しておき、通信命令実行制御33の時点でセキュリティゲート進入状態か否かを判定し、セキュリティゲート進入状態であればセキュリティレベルを変更してから通信命令の実行可否をセキュリティレベルに基づいて判断し、再びセキュリティレベルを元に戻すような処理を行うことも可能である。
続いて、通信相手との通信に先立って実行する処理21が実行された後、通信命令24がクライアントアプリケーション13によって実行されると、OS11の通信命令実行制御33により、クライアントアプリケーション13の属性値14に基づいて通信命令の実行可否が判定され、実行可であれば通信命令24の実行が行われ、制御が呼び出し元に戻される。この通信命令24の実行により、通信端末装置と図示しないサーバ端末装置との間で通信が行われる。
続いて、ライブラリ関数12の処理が進み、呼び出し元に戻る直前に第2特定命令23が実行されると、OS11のセキュリティゲート退出処理32により、クライアントアプリケーション13の属性値14がセキュリティゲート進入前の状態に戻される。
その後、クライアントアプリケーション13が、ライブラリ関数12の通信命令24に直接ジャンプする命令42を実行すると、ジャンプ先の通信命令24が実行されることにより、制御がOS11の通信命令実行制御33に移るが、第1特定命令が実行されていないのでクライアントアプリケーション13の属性値14は通信命令を実行できるように変更されていないため、通信命令実行制御33では、通信命令を実行せずにエラーとする。
また、クライアントアプリケーション13が通信命令43を直接に実行すると、制御がOS11の通信命令実行制御33に移るが、この場合も第1特定命令が実行されていないのでクライアントアプリケーション13の属性値14は通信命令を実行できるように変更されていないため、通信命令実行制御33では、通信命令を実行せずにエラーとする。
このようにして本実施例によれば、クライアントアプリケーション13による通信命令24、43およびライブラリ関数12の不正な使用を防止でき、ライブラリ関数12の通信命令24を正しく利用して図示しないサーバ端末装置と通信する場合に処理21を必ず実行させることが可能となる。
<通信端末装置の第2実施例>
図3は、本発明の第2実施例による通信端末装置の構成を示すブロック図である。図3を参照すると、本発明の第2実施例による通信端末装置は、ライブラリ関数12内に第2特定命令23が配置されておらず、その代わりに、呼び出し元に戻る前に第2特定命令23を含む関数16を経由するようにクライアントアプリケーション13のスタック17を改変(更新)する命令列25が配置されている点で、第1実施例の通信端末装置と相違する。ここで、命令列25の配置場所は、第1特定命令22が配置された箇所以降で必ず実行される経路上であれば、任意の場所で良い。
次に本実施例の通信端末装置の動作を第1実施例の通信端末装置との相違点を中心に説明する。
クライアントアプリケーション13がコール命令41によってライブラリ関数12を呼び出すと、その先頭部分に配置された第1特定命令22がまず実行され、OS11のセキュリティゲート進入処理31により、クライアントアプリケーション13の属性値14が変更される。続いて、命令列25がクライアントアプリケーション13によって実行されることにより、クライアントアプリケーション13に戻る前に関数16を経由するようにスタック17が改変される。続いて、通信相手との通信に先立って実行する処理21が実行された後、通信命令24がクライアントアプリケーション13によって実行されると、OS11の通信命令実行制御33により、クライアントアプリケーション13の属性値14に基づいて通信命令の実行可否が判定され、実行可であれば、通信命令24の実行が行われて、制御が呼び出し元に戻される。続いて、ライブラリ関数12の処理が進み、呼び出し元の情報を得るためにスタック17をポップすると、関数16の情報が得られるため、関数16が呼び出され、その中の第2特定命令23が実行される。これにより、OS11のセキュリティゲート退出処理32が実行され、クライアントアプリケーション13の属性値14がセキュリティゲート進入前の状態に戻される。
クライアントアプリケーション13が、ライブラリ関数12の通信命令24に直接ジャンプする命令42を実行した場合と通信命令43を実行した場合の動作は、第1実施例と同じである。
このようにして本実施例の通信端末装置によれば、クライアントアプリケーション13による通信命令24、43およびライブラリ関数12の不正な使用を防止でき、ライブラリ関数12の通信命令24を正しく利用して図示しないサーバ端末装置と通信する場合に処理21を必ず実行させることが可能となる。また、ライブラリ関数12から呼び出し元のクライアントアプリケーション13に戻る出口が複数存在する場合、ライブラリ関数12内に第2特定命令を配置する方法では、それらすべての出口の前に第2特定命令を配置する必要があるが、本実施例では、1つの命令列25を配置しておくだけで済む利点がある。
<通信端末装置の第2実施例の変形例>
図4は、本発明の第2実施例の変形例による通信端末装置のブロック図である。図4を参照すると、本発明の第2実施例の変形例による通信端末装置は、ライブラリ関数12内に第2特定命令23が配置されておらず、その代わりに、OS11のセキュリティゲート進入処理31に、ライブラリ関数12からクライアントアプリケーション13に戻る前に第2特定命令23を含む関数16を経由するようにクライアントアプリケーション13のスタック17を改変(更新)する処理が追加されている点で、第1実施例と相違する。
次に本実施例の通信端末装置の動作を第1実施例の通信端末装置との相違点を中心に説明する。
クライアントアプリケーション13がコール命令41によってライブラリ関数12を呼び出すと、その先頭部分に配置された第1特定命令22がまず実行され、OS11のセキュリティゲート進入処理31により、クライアントアプリケーション13の属性値14が変更され、且つ、ライブラリ関数12からクライアントアプリケーション13に戻る前に関数16を経由するようにスタック17が改変される。続いて、通信相手との通信に先立って実行する処理21が実行された後、通信命令24がクライアントアプリケーション13によって実行されると、OS11の通信命令実行制御33により、クライアントアプリケーション13の属性値14に基づいて通信命令の実行可否が判定され、実行可であれば、通信命令24の実行が行われて、制御が呼び出し元に戻される。続いて、ライブラリ関数12の処理が進み、呼び出し元の情報を得るためにスタック17をポップすると、関数16の情報が得られるため、関数16が呼び出され、その中の第2特定命令23が実行される。これにより、OS11のセキュリティゲート退出処理32が実行され、クライアントアプリケーション13の属性値14がセキュリティゲート進入前の状態に戻される。
クライアントアプリケーション13が、ライブラリ関数12の通信命令24に直接ジャンプする命令42を実行した場合と通信命令43を実行した場合の動作は、第1実施例の通信端末装置と同じである。
このようにして本実施例の通信端末装置によれば、クライアントアプリケーション13による通信命令24、43およびライブラリ関数12の不正な使用を防止でき、ライブラリ関数12の通信命令24を正しく利用して図示しないサーバ端末装置と通信する場合に処理21を必ず実行させることが可能となる。また、ライブラリ関数12から呼び出し元のクライアントアプリケーション13に戻る出口が複数存在する場合、ライブラリ関数12内に第2特定命令を配置する方法では、それらすべての出口の前に第2特定命令を配置する必要があり、第2実施例の通信端末装置では1つの命令列25を配置する必要があるが、本実施例の通信端末装置ではそれらが不要となる。
<通信端末装置の第3実施例>
図5は、本発明の第3実施例による通信端末装置のブロック図である。図5を参照すると、本発明の第3実施例による通信端末装置は、セキュリティゲート進入処理31によってクライアントアプリケーション13の属性値14を変更した後、セキュリティゲート退出処理32によってクライアントアプリケーション13の属性値14を元に戻すまでのクライアントアプリケーション13の走行中に、シグナルまたは割り込み26が発生した際、クライアントアプリケーション13のシグナル/割り込みハンドラ44を呼び出す前にクライアントアプリケーション13の属性値14をセキュリティゲート進入処理31による変更前の値に戻し、シグナル/割り込みハンドラ44による処理が終わったときにセキュリティゲート進入処理31による変更後の値に戻すセキュリティゲート一時退出処理34をOS11が実行するようにした点で、第1実施例と相違する。
次に本実施例の通信端末装置の動作を第1実施例の通信端末装置との相違点を中心に説明する。
クライアントアプリケーション13がコール命令41によってライブラリ関数12を呼び出すと、その先頭部分に配置された第1特定命令22がまず実行され、OS11のセキュリティゲート進入処理31により、クライアントアプリケーション13の属性値14が変更される。続いて、通信相手との通信に先立って実行する処理21が実行された後、通信命令24がクライアントアプリケーション13によって実行されると、OS11の通信命令実行制御33により、クライアントアプリケーション13の属性値14に基づいて通信命令の実行可否が判定され、実行可であれば、通信命令24の実行が行われて、制御が呼び出し元に戻される。その後、シグナルまたは割り込み26が発生すると、内部割り込みが発生して制御がOS11に移り、セキュリティゲート一時退出処理34が実行され、クライアントアプリケーション13の属性値14がセキュリティゲート進入処理31による変更前の値に戻された後、クライアントアプリケーション13のシグナル/割り込みハンドラ44が呼び出される。そして、シグナル/割り込みハンドラ44による処理が終了すると、制御がOS11のセキュリティゲート一時退出処理34に戻り、クライアントアプリケーション13の属性値14がセキュリティゲート進入処理31による変更後の値に戻された後、ライブラリ関数12の前記シグナルまたは割り込み26で中断した箇所に制御が戻される。そして、ライブラリ関数12の処理が進み、呼び出し元に戻る直前に第2特定命令23が実行されると、OS11のセキュリティゲート退出処理32により、クライアントアプリケーション13の属性値14がセキュリティゲート進入前の状態に戻される。
クライアントアプリケーション13が、ライブラリ関数12の通信命令24に直接ジャンプする命令42を実行した場合と通信命令43を実行した場合の動作は、第1実施例の通信端末装置と同じである。
このようにして本実施例の通信端末装置によれば、第1実施例の通信端末装置に比べてより確実に、クライアントアプリケーション13による通信命令24、43およびライブラリ関数12の不正な使用を防止することができる。
<本発明のサーバ端末装置のハードウェア構成>
本発明のサーバ端末装置のハードウェア構成の一例は、図1に示した通信端末装置と同じ構成、あるいは図1から表示部4および入力操作部5を取り除いた構成を有する。この場合、ROM2には、CPU1で実行されるOSおよび固定データなどが記憶され、RAM3にはCPU1で実行されるサーバアプリケーションおよび演算データなどが一時的に記憶される。また、ファイルシステム6は、ハードディスクなどで構成され、サーバアプリケーションや各種データが記憶される。NIC7は、有線あるいは無線により外部の通信相手と通信するためのものである。このようなハードウェア構成を有する通信端末装置の例としては、パーソナルコンピュータやワークステーションなどの一般的なコンピュータなどがある。
<サーバ端末装置の第1実施例>
図6は、本発明の第1実施例によるサーバ端末装置のブロック図である。図6を参照すると、本発明の第1実施例によるサーバ端末装置は、サーバアプリケーション52と、通信処理部53と、証明書検証部54とを含んで構成されている。
証明書検証部54は、通信相手から受信した証明書(電子証明書)を通信処理部53から受け取り、その証明書が正当であるかどうかを検証し、その検証結果を通信処理部53に通知する部である。
通信処理部53は、図示しないネットワークを通じて通信相手と有線または無線により通信する部である。通信処理部53は、通信相手からデータおよび証明書を受信すると、証明書を証明書検証部54に渡してその検証結果を受け取り、証明書が正当である旨の検証結果が得られた場合、通信相手が所定の前処理を実行済みであると判断し、証明書と共に受信したデータをサーバアプリケーション52に伝達する。証明書が正当である旨の検証結果が得られなかった場合、通信処理部53は、通信相手が所定の前処理を実行していないと判断し、証明書と共に受信したデータはサーバアプリケーション52に伝達せず、破棄する。
サーバアプリケーション52は、通信相手から受信したデータを通信処理部53から受け取って処理する。処理の結果、通信相手に何らかのデータを送信する必要がある場合、サーバアプリケーション52は、データを通信処理部53を通じて通信相手へ送信する。
次に本実施例のサーバ端末装置51の動作を説明する。
サーバ端末装置51の通信処理部53は、通信相手からデータと証明書を受信すると(図7のS101)、証明書を証明書検証部54へ渡し(S102)、証明書認証信号または証明書否認信号を受信するまで待つ(S103)。
証明書検証部54は、証明書を受け取ると(図8のS111)、その証明書が正当か不当かを判断する(S112)。証明書検証部54は、証明書が不当である場合、通信処理部53に証明書否認信号を送信し(S113)、証明書が正当である場合は通信処理部53に証明書認証信号を送信する(S114)。
通信処理部53は、証明書否認信号を受信すると(S103)、処理を終了する。他方、通信処理部53は、証明書認証信号を受信すると(S103)、通信相手から受信したデータをサーバアプリケーション52に伝達する(S104)。
サーバアプリケーション52は、通信処理部53からデータを渡されると(図9のS121)、渡されたデータを処理する(S122)。
このようにして本実施例のサーバ端末装置によれば、受信した証明書が認証された場合に限って、その証明書と共に受信したデータをサーバアプリケーション52で処理することにより、通信相手が通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別し、その判別結果に応じて処理を切り分けることが可能となる。
<サーバ端末装置の第2実施例>
本発明の第2実施例によるサーバ端末装置は、データと証明書とを送信してきた通信相手に対して通信の成功、失敗を応答する点が、サーバ端末装置の第1実施例と相違する。
第2実施例のサーバ端末装置は、図6に示した第1実施例のサーバ端末装置51と同様に、サーバアプリケーション52、通信処理部53および証明書検証部54で構成される。このうち、証明書検証部54の処理は第1実施例と同じであり、サーバアプリケーション52と通信処理部53の処理が第1実施例と相違する。
次に本実施例のサーバ端末装置の動作を第1実施例のサーバ端末装置との相違点を中心に説明する。
サーバ端末装置51の通信処理部53は、通信相手からデータと証明書を受信すると(図10のS101)、証明書を証明書検証部54へ渡し(S102)、証明書認証信号または証明書否認信号を受信するまで待つ(S103)。証明書検証部54は、証明書を受け取ると(S111)、その証明書が正当か不当かを判断し(S112)、証明書が不当である場合、通信処理部53に証明書否認信号を送信し(S113)、証明書が正当である場合は通信処理部53に証明書認証信号を送信する(S114)。
通信処理部53は、証明書否認信号を受信すると(S103)、データと証明書を送信してきた通信相手に対して通信失敗信号を送信する(S106)。他方、通信処理部53は、証明書認証信号を受信すると(S103)、通信相手から受信したデータをサーバアプリケーション52に伝達する(S104)。
サーバアプリケーション52は、通信処理部53からデータを渡されると(図11のS121)、渡されたデータを処理し(S122)、通信処理部53にデータ処理完了信号を渡す(S123)。通信処理部53は、データ処理完了信号を受信すると(S105)、データと証明書を送信してきた通信相手に対して通信成功信号を送信する(S107)。
このようにして本実施例のサーバ端末装置によれば、受信した証明書が認証された場合に限って、その証明書と共に受信してデータをサーバアプリケーション52で処理することにより、通信相手が通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別し、その判別結果に応じて処理を切り分けることが可能となる。
また、本実施例のサーバ端末装置によれば、証明書が正当でなかった場合には通信失敗信号を、証明書が正当であってサーバアプリケーションによる処理が完了した場合には通信成功信号をそれぞれデータと証明書を送信してきた通信相手に応答するため、通信相手は、通信成功信号または通信失敗信号によって、サーバアプリケーションにデータを送信できたか否かを知ることができ、通信相手側のクライアントアプリケーションはサーバアプリケーションにデータを送信できた場合の処理とデータを送信できなかった場合の処理を切り分けて実行することができる。
<サーバ端末装置の第3実施例>
図12を参照すると、本発明のサーバ端末装置の第3実施例は、サーバアプリケーション62と、通信処理部63と、復号化部64とを含んで構成されている。
復号化部64は、通信相手から受信した暗号化データを通信処理部63から受け取り、自サーバ端末装置61の公開鍵で復号化し、その結果を通信処理部63に通知する。
通信処理部63は、図示しないネットワークを通じて通信相手から暗号化データを受信すると、この暗号化データを復号化部64に渡してその結果を受け取り、復号化したデータが得られた場合、通信相手が所定の前処理を実行済みであると判断し、復号化したデータをサーバアプリケーション62に伝達する。復号化に失敗していれば、通信処理部63は、通信相手が所定の前処理を実行していないと判断し、処理を終了する。
サーバアプリケーション62は、通信処理部63から復号化したデータを受け取って処理する。処理の結果、通信相手に何らかのデータを送信する必要がある場合、サーバアプリケーション62は、データを通信処理部63を通じて通信相手へ送信する。
次に本実施例のサーバ端末装置61の動作を説明する。
サーバ端末装置61の通信処理部63は、通信相手から暗号化データを受信すると(図13のS131)、その暗号化データを復号化部64へ渡し(S132)、その復号結果を待つ(S133)。
復号化部64は、暗号化データを受け取ると(図14のS141)、自サーバ端末装置61の公開鍵でその暗号化データを復号化する(S142)。復号化部64は、復号化に成功した場合(S143でYES)、復号化したデータを通信処理部63に渡し(S144)、復号化に失敗した場合(S143でNO)、復号不可信号を通信処理部63に渡す(S145)。
通信処理部63は、復号不可信号を受信すると(S133)、処理を終了する。他方、通信処理部53は、復号化したデータを受信すると(S133)、この復号化したデータサーバアプリケーション62に伝達する(S134)。サーバアプリケーション62は、通信処理部63から渡されたデータを処理する。
このようにして本実施例のサーバ端末装置によれば、受信した暗号化データが自サーバ端末装置の公開鍵で復号化できた場合に限って、復号化したデータをサーバアプリケーション62で処理することにより、通信相手が通信前に必要な前処理を行った通信か否かをサーバ端末装置側で判別し、その判別結果に応じて処理を切り分けることが可能となる。
次に、本発明の通信端末装置およびサーバ端末装置を備える通信システムの実施例について図面を参照して詳細に説明する。
<通信システムの第1実施例>
図15を参照すると、本発明の第1実施例の通信システムは、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置51とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、プログラム制御により動作するコンピュータで構成され、通常メモリエリア110と高信頼メモリエリア120を具備する。また、基本プログラムであるOS130が動作している。OS130は、例えばLinuxであるが、それ以外の種類のOSであってもかまわない。
通常メモリエリア110には、クライアントアプリケーション111が配置される。通常メモリエリア110は、RAM等により実現され、クライアントアプリケーション111から自由に利用することができる。
クライアントアプリケーション111は、製品の工場出荷時には含まれず、後から追加したような、信頼できるか不明なプログラムとする。一般にクライアントアプリケーション111は、OS130によってファイルシステム等の不揮発ストレージから通常メモリエリア110にロードされ、アプリケーションプロセスとして実行される。
高信頼メモリエリア120には、信頼できるライブラリ関数121が配置される。ここで、高信頼メモリエリア120は、通常メモリエリア110とは異なり、記憶されている情報が改ざんされている可能性が低く信頼度が高いメモリエリアのことである。最も一般的な実現方法は、ROMによる実装であるが、OS130の管理の下、アプリケーションプロセスから容易に改ざんされない設定をされたRAM、つまり、アプリケーションプログラムからの書き込み権限が設定されていないメモリ空間として割り当てられたRAMでも良い。この場合、OS130が、高信頼メモリエリア120に、ROMやファイルシステムよりライブラリ関数121をロードすることによって配置される。なお、例えば、Linuxでは、プログラムコードが格納されているメモリ空間は書き込み禁止に設定されるので、そのようなメモリ空間が該当する。
ライブラリ関数121は、クライアントアプリケーション111に対して、サーバ端末装置51のサーバアプリケーション52との通信機能を提供するものである。本実施例の場合、ライブラリ関数121には、第1特定命令123と第2特定命令124とが配置される。また、ライブラリ関数121は、通信システムコール122と前処理部125と証明書管理部126とを含む。
第1特定命令123は、特定のシステムコール命令として実装され、ライブラリ関数121の処理の先頭に配置される。クライアントアプリケーション111がこの命令123を呼び出すと、内部割り込みが発生し、OS130のセキュリティゲート進入処理部131が呼び出される。
第2特定命令124も、特定のシステムコール命令として実装され、ライブラリ関数121の処理の末尾に配置される。クライアントアプリケーション111がこの命令124を呼び出すと、内部割り込みが発生し、OS130のセキュリティゲート退出処理部132が呼び出される。
通信システムコール122は、socket通信システムコールなどであり、クライアントアプリケーション111がサーバ端末装置51のサーバアプリケーション52と通信する際に使用される。この通信システムコール122は、信頼できるか不明なクライアントアプリケーション111のセキュリティレベルでは実行権が与えられていない特権命令である。通信システムコール122をクライアントアプリケーション111が呼び出すと、内部割り込みが発生し、OS130内の権限チェック処理部136が呼び出される。クライアントアプリケーション111のセキュリティレベルは、本実施例の場合、”Low”(非特権レベル)と”High”(特権レベル)の2レベルとする。勿論、3レベル以上のレベルを持つコンピュータや、或る種の携帯電話機のように、装置製造者レベル、通信事業者レベル、信頼できるアプリケーションベンダレベル、信頼できるか不明なレベルの4レベルのセキュリティレベルを持つ端末にも適用可能である。
前処理部125は、クライアントアプリケーション111がサーバアプリケーション52と通信する前に実行すべき予め定められた処理を行う命令列で構成される。
証明書管理部126は、前処理部125の処理後に実行され、前処理を行ったことを証明する証明書をクライアントアプリケーション111の送信データに付加する命令列で構成される。
OS130には、セキュリティゲート進入処理部131と、セキュリティゲート退出処理部132と、メモリ種別判断処理部133と、セキュリティレベル変更部134と、セキュリティレベル変更ポリシデータベース135と、権限チェック処理部136と、通信システムコール処理部137と、プロセス状態管理データベース138とが設けられている。
セキュリティゲート進入処理部131は、第1特定命令123が正規に実行されたかどうかを、メモリ種別判断処理部133の結果を元に判断し、正規に実行されたものである場合には、セキュリティレベル変更部134を用いて当該アプリケーションプロセスのセキュリティレベルをより高次なものに切り替える。他方、第1特定命令123が不正に実行されたものである場合には、セキュリティレベルの切り替えは行わない。
メモリ種別判断処理部133は、実行された第1特定命令123が、高信頼メモリエリア120にあるかどうかを判断する。具体的には、高信頼メモリエリア120のアドレス範囲を許容アドレス範囲として保持し、実行された第1特定命令123のアドレスと許容アドレス範囲とを比較し、第1特定命令123のアドレスが許容アドレス範囲内であれば、高信頼メモリ120にあると判断し、それ以外は通常メモリエリア110にあると判断する。また、メモリ種別判断処理部133は、さらに、高信頼メモリエリアであることが確認された第1特定命令の存在するメモリアドレスが、プログラムコードエリアであって、データエリアではないことをOS130が管理するデータを参照することで確認しても良く、そうすればデータエリアの偶然のパターン一致による判断ミスを防ぐことができる。
上記の許容アドレス範囲の設定は、以下のa)、b)のように行う。
a)高信頼メモリエリア120がROM領域であれば、そのROM領域のアドレス範囲を許容アドレス範囲とする。
b)ファイルシステムまたはROM中にある信頼できるライブラリ関数121をRAM領域にロードして実行するコンピュータの場合、そのロードされたメモリアドレス範囲を許容アドレス範囲とする。なお、ロードされるライブラリ関数121が信頼できるかどうかの判断は、ロード元のファイルシステムやROMそのものが信頼できるかどうかの情報をあらかじめ保持しておき、これを参照して判断する方法、信頼できるライブラリ関数のリストをあらかじめ保持しておき、これを参照して判断する方法、信頼できるライブラリ関数自身にあらかじめ印(署名など)をつけておき、ロード時に確認する方法等を利用することができる。
セキュリティゲート退出処理部132は、セキュリティレベル変更部134を用いて、クライアントアプリケーションのセキュリティレベルを元の状態に戻す。
プロセス状態管理データベース138は、クライアントアプリケーションのプロセスを一意に識別するプロセスIDとセキュリティレベルとの組を保持する。
セキュリティレベル変更部134は、セキュリティゲート進入処理部131の要求により、クライアントアプリケーションのセキュリティレベルを変更すべく、プロセス状態管理データベース138の当該クライアントアプリケーションのセキュリティレベルを表す部分を変更する。この際、元に戻せるように、変更前の値をプロセス状態管理データベース138に保持しておく。
ここで、変更ルールを保持するセキュリティレベル変更ポリシデータベース135を設け、セキュリティレベル変更部134がこのデータベース135に保持された変更ルールに則って、クライアントアプリケーションのセキュリティレベルを変更するようにしても良い。例えば、クライアントアプリケーションの種類、素性、元のセキュリティレベルによって、どのレベルまでセキュリティレベルを上げるかを記述した変更ルールや、装置(コンピュータ)の状態によって、どのレベルまでセキュリティレベルを上げるかを記述した変更ルールを用いれば、より柔軟なセキュリティレベル変更が可能になる。
また、セキュリティレベル変更部134は、セキュリティゲート退出処理部132の要求により、クライアントアプリケーションのセキュリティレベルを元に戻す処理を行う。
権限チェック処理部136は、OS130に対して要求された通信システムコール122が、要求元のクライアントアプリケーション111の現在のセキュリティレベルで実行する権限があるかどうかを、プロセス状態管理データベース138の情報を参照して判断し、権限がある場合は通信システムコール処理部137を用いて処理を行う。権限が無いときには要求された通信システムコール122の実行を行わず、エラーとする。
通信システムコール処理部137は、要求された通信システムコール122の処理を行う。
他方、サーバ端末装置51は、図6で説明した第1実施例のサーバ端末装置であり、サーバアプリケーション52と通信処理部53と証明書検証部54とを含んで構成される。
次に、図15及び図16から図18のフローチャートを参照して本実施例の動作について詳細に説明する。
まず、通信端末装置100の動作を説明する。OS130によって、クライアントアプリケーション111が通常メモリエリア110にロードされ、アプリケーションプロセス(プロセスID=nnn)として実行される。この時、クライアントアプリケーション111は信頼できるかどうか不明であり、セキュリティレベルは“Low”で動作する。クライアントアプリケーション111は、サーバ端末装置51のサーバアプリケーション52にデータを送信する場合、ライブラリ関数121を呼び出す。ライブラリ関数121は、呼び出されると、まず関数の先頭に配置された第1特定命令123を実行する(図16のS201)。
第1特定命令123が実行されると、OS130内にあるセキュリティゲート進入処理部131が呼び出される。セキュリティゲート進入処理部131では、呼び出される原因となった第1特定命令123が存在するメモリエリアの種別をメモリ種別判断処理部133を用いて求める(S202)。求めたメモリエリアの種別が高信頼メモリエリア120である場合に限り、セキュリティレベル変更部134を用いてクライアントアプリケーション111のセキュリティレベルをより高次なものに変更する(S203及びS204)。これにより、プロセス状態管理データベース138内にある、当該クライアントアプリケーション111のプロセスのセキュリティレベルに関するデータが例えば“Low”から“High”に変更されることになる。クライアントアプリケーション111のセキュリティレベルの変更が完了したら、第1特定命令123の処理を完了する(ステップS205)。ステップS203で、メモリエリアの種別が高信頼メモリエリア120でなければ、クライアントアプリケーション111のセキュリティレベルを変更せずに、第1特定命令123の処理を完了する(S205)。
その後、クライアントアプリケーション111は、ライブラリ関数121が提供するプログラムを実行し、この過程で、前処理部125、証明書管理部126、および通信システムコール122がこの順に実行される。
前処理部125は、サーバ端末装置51のサーバアプリケーション52と通信する前に実行すべき所定の処理を実行する。また、証明書管理部126は、前処理を行ったことを証明する証明書をクライアントアプリケーション111の送信データに付加する処理を実行する。なお、前処理部125および証明書管理部126の処理の実行に際して、OS130の機能を必要とする場合、適宜OS130の各種機能が利用される。
また通信システムコール122が実行されると(図17のS211)、OS130内の権限チェック処理部136が呼び出される。権限チェック処理部136では、プロセス状態管理データベース138内にある、当該クライアントアプリケーション111のセキュリティレベルを参照し、“High”状態にあるならば、通信システムコール処理部137を用いて通信処理を行う(S212〜S214)。これにより、クライアントアプリケーション111の送信データと証明書管理部126で付加された証明書とがネットワークNWを通じて、サーバ端末装置51の通信処理部53に送信される。他方、クライアントアプリケーション111のセキュリティレベルが“Low”の場合は、権限チェック処理部136は、通信処理を行わず、特権モードエラーを返し(ステップS215)、処理を終了する(ステップS214)。
その後、クライアントアプリケーション111によるライブラリ関数121の処理が完了し、クライアントアプリケーション111に処理が戻る直前で、第2特定命令124が実行される(図18のステップS221)。
第2特定命令124が実行されると、OS130内にあるセキュリティゲート退出処理部132が呼び出される。セキュリティゲート退出処理部132では、セキュリティレベル変更部134を用いて、当該クライアントアプリケーション111のセキュリティレベルを元に戻し(S222)、処理を終了する(S223)。ここで、プロセス状態管理データベース138内にある、クライアントアプリケーション111のセキュリティレベルに関するデータが“Low”に戻ることになる。
次にサーバ端末装置51の動作を説明する。サーバ端末装置51の通信処理部53は、通信端末装置100からデータと証明書を受信すると(図7のS101)、証明書を証明書検証部54へ渡す。証明書検証部54は、渡された証明書が正当か不当かを判断し(図8のS111、S112)、不当であれば通信処理部53に証明書否認信号を送信し(S113)、正当であれば証明書認証信号を送信する(S114)。
通信処理部53は、証明書検証部54から証明書否認信号を受信すると処理を終了し、証明書認証信号を受信すると、通信相手から受信したデータをサーバアプリケーション52に伝達する(S103、S104)。サーバアプリケーション52は、通信処理部53から渡されたデータを処理する(図9のS121、S122)。
本実施例によれば、クライアントアプリケーション110がサーバアプリケーション52と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。その理由は、通信端末装置100におけるクライアントアプリケーション111による通信システムコール122およびライブラリ関数121の不正な使用が行えず、ライブラリ関数121を正しく利用しなければサーバ端末装置51と通信できないようになっており、ライブラリ関数121を正しく利用すると、その通信に先立って前処理部125が必ず実行されるためである。
また本実施例によれば、通信前に必要な前処理を行った通信か否かをサーバ端末装置51側で判別することができる。その理由は、通信端末装置100におけるクライアントアプリケーション111はライブラリ関数121を正しく利用しなければサーバ端末装置51と通信できず、ライブラリ関数121を正しく利用すると、その通信に先立って前処理部125および証明書管理部126が必ず実行されるため、サーバ端末装置51において、受信した証明書が正当かどうかを検証することにより、通信前に必要な前処理が行われた通信かどうか判別できるからである。そして、証明書が正当と判断した場合に限って、その証明書と共に受信したデータをサーバアプリケーション52で処理することにより、判別結果に応じて処理を切り分けることが可能となる。
なお、本実施例では、サーバ端末装置51として前述した第1実施例のものを使用したが、第2実施例のサーバ端末装置を使用することも可能である。その場合、通信処理部53から送信される通信失敗信号または通信成功信号は、ネットワークNWを通じて通信端末装置100で受信され、最終的にクライアントアプリケーション111に伝達される。これにより、クライアントアプリケーション111は、通信が成功した場合と失敗した場合とで処理を切り分けることができる。
<適用例1> 次に本実施例にかかる通信システムの適用例について説明する。
本適用例は、通信端末装置100としてLinux端末を、サーバ端末装置51としてパーソナルコンピュータを備えている。
パーソナルコンピュータであるサーバ端末装置51のサーバアプリケーション52は、ゲームコンテンツを配布する機能を有し、通信端末装置100とSecurity Socket Layer(SSL)を用いて通信する。Linux端末である通信端末装置100のクライアントアプリケーション111は、サーバアプリケーション52が配布するゲームコンテンツをダウンロードする機能を有する。通信端末装置100は、電子マネー情報が記憶されたICカードの機能を有しており、ROM領域でXIP(eXecute In Place)実行されるライブラリ関数121の前処理部125は、ICカードを通じて課金処理を行う機能を有している。このような前提で、クライアントアプリケーション111がサーバアプリケーション52にダウンロードリクエストを送信し、ゲームコンテンツのダウンロードを試みた場合の動作を説明する。
通信端末装置100において、クライアントアプリケーション111がダウンロードリクエストを渡してライブラリ関数121を呼び出すと、ライブラリ関数121は、まず第1特定命令123を実行する(図16のS201)。これによりOS130内にあるセキュリティゲート進入処理部131が呼び出され、第1特定命令123が存在するメモリエリアの種別が高信頼メモリエリア120である場合に限り、セキュリティレベル変更部134を用いてクライアントアプリケーション111のセキュリティレベルが“High”に変更される。次に前処理部125は、ゲームコンテンツのダウンロードに対する課金を行うため、ICカードを参照し、記憶されている電子マネー情報を更新する。次に証明書管理部126は、前処理を実行したことを証明する証明書をダウンロードリクエストに付加する。次に通信システムコール122が実行されると、OS130内の権限チェック処理部136が呼び出され、クライアントアプリケーション111のセキュリティレベルが“High”状態にあるので、通信システムコール処理部137を用いて通信処理を行う。これにより、クライアントアプリケーション111のダウンロードリクエストと証明書管理部126で付加された証明書とがSSLを利用してサーバ端末装置51の通信処理部53に送信される。
サーバ端末装置51の通信処理部53は、通信端末装置100からダウンロードリクエストと証明書を受信すると、証明書を証明書検証部54へ渡し、証明書検証部54は、渡された証明書が正当か不当かを判断し、結果を通信処理部53に返す。通信処理部53は、証明書検証部54から証明書認証信号を受信した場合に限り、通信端末装置100から受信したダウンロードリクエストをサーバアプリケーション52に伝達する。サーバアプリケーション52は、このダウンロードリクエストを処理し、ゲームコンテンツを通信端末装置100のクライアントアプリケーション111に配布する。
この適用例1によれば、通信端末装置100においてライブラリ関数121を介して適切に課金処理がなされた場合のみ、ゲームコンテンツをダウンロードすることが可能となり、サーバ端末装置51側で課金処理していた従来技術に比べて、サーバ端末装置51の負荷を軽減することが可能となる。
以上の適用例1では、ゲームコンテンツのダウンロードサービスを取り上げたが、音楽データなどの再生サービスにも適用することができる。また、前処理として課金処理を取り上げたが、再生する音楽データなどの著作権管理処理であるDRM(Digital Rights Management)処理など、他の種類の処理であっても良い。
<通信システムの第2実施例>
図19を参照すると、本発明の通信システムの第2実施例は、通信端末装置100の高信頼メモリエリア120に、データと前処理識別子との対応関係を保持する前処理記憶部127を備え、ライブラリ関数121の前処理部125は、クライアントアプリケーション111の送信データと同じデータに対応する前処理識別子を前処理記憶部127から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図15に示した第1実施例と相違する。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置100のライブラリ関数121における前処理部125の動作だけが第1実施例の通信システムと相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121が、第1特定命令123を処理した後、前処理部125による処理に進むと、前処理部125は、前処理記憶部127を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部126による処理へ進む。
次に本実施例の効果を説明する。
本実施例によれば、第1実施例の通信システムと同等の効果が得られると同時に、前処理記憶部123を備えたことにより、クライアントアプリケーション111がサーバアプリケーション52に送信するデータに応じて、前処理の内容を変更することができる。
<適用例2>
次に本実施例にかかる通信システムの適用例について説明する。
本適用例は、通信端末装置100としてLinux端末を、サーバ端末装置51としてパーソナルコンピュータを備えている。
パーソナルコンピュータであるサーバ端末装置51のサーバアプリケーション52は、価格の異なる複数のゲームコンテンツを配布する機能を有し、通信端末装置100とSSLを用いて通信する。Linux端末である通信端末装置100のクライアントアプリケーション111は、サーバアプリケーション52が配布するゲームコンテンツをダウンロードする機能を有する。前処理記憶部127には、ダウンロード対象となるゲームコンテンツ毎の価格情報が記憶されている。通信端末装置100は、電子マネー情報が記憶されたICカードの機能を有しており、ROM領域でXIP実行されるライブラリ関数121の前処理部125は、前処理記憶部127を参照して、ICカードを通じてダウンロードするゲームコンテンツに応じた課金処理を行う機能を有している。このような前提で、クライアントアプリケーション111がサーバアプリケーション52にダウンロードリクエストを送信し、ゲームコンテンツのダウンロードを試みた場合の動作を説明する。
通信端末装置100において、クライアントアプリケーション111がダウンロードリクエストを引数としてライブラリ関数121を呼び出すと、ライブラリ関数121は、まず第1特定命令123を実行する(図16のS201)。これによりOS130内にあるセキュリティゲート進入処理部131が呼び出され、第1特定命令123が存在するメモリエリアの種別が高信頼メモリエリア120である場合に限り、セキュリティレベル変更部134を用いてクライアントアプリケーション111のセキュリティレベルが“High”に変更される。次に前処理部125は、ゲームコンテンツのダウンロードに対する課金を行うため、ダウンロードリクエストに含まれるゲームコンテンツに対応する価格情報を前処理記憶部127から参照し、ICカードに記憶されている電子マネー情報を前記価格情報に相当する価格だけ更新する。以降、前述した適用例1と同様の処理が行われる。
この適用例2によれば、通信端末装置100においてライブラリ関数121を介して適切な価格の課金処理がなされた場合のみ、ゲームコンテンツをダウンロードすることが可能となり、サーバ端末装置51側で課金処理していた従来技術に比べて、サーバ端末装置51の負荷を軽減することが可能となる。
<通信システムの第3実施例>
図20を参照すると、本発明の通信システムの第3実施例は、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置61とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、予めサーバ端末装置61より配布された秘密鍵を保持し、クライアントアプリケーション111の送信データを前記秘密鍵を用いて暗号化する暗号化部128を証明書管理部126の代わりに有する点で図15に示した第1実施例の通信システムにおける通信端末装置と相違する。
サーバ端末装置61は、図12で説明したサーバ端末装置の第3実施例のものであり、サーバアプリケーション62と通信処理部63と復号化部64とを含んで構成される。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置100は、ライブラリ関数121において証明書管理部126による処理に代えて暗号化部128による処理を行う点が第1実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121は、第1特定命令123および前処理部125による処理を終えると、暗号化部128により、クライアントアプリケーション111の送信データをサーバ端末装置61の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール122を使用した通信では、この暗号化データがネットワークNWを通じてサーバ端末装置61の通信処理部63へ送信される。
次にサーバ端末装置61の動作を説明する。サーバ端末装置61の通信処理部63は、通信端末装置100から暗号化データを受信すると(S131)、その暗号化データを復号化部64へ渡す(S132)。復号化部64は、暗号化データを自サーバ端末装置61の公開鍵で復号化し(S142)、復号化に成功すれば復号化したデータを通信処理部63に渡し(S144)、復号化に失敗すれば復号不可信号を通信処理部63に渡す(S145)。
通信処理部63は、復号不可信号を受信した場合には処理を終了し、復号化したデータを受信した場合には、この復号化したデータサーバアプリケーション62に伝達する(S134)。サーバアプリケーション62は、通信処理部63から渡されたデータを処理する。
本実施例によれば、通信システムの第1実施例と同じ理由により、クライアントアプリケーション110がサーバアプリケーション62と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。
また本実施例によれば、通信前に必要な前処理を行った通信か否かをサーバ端末装置61側で判別することができる。その理由は、通信端末装置100におけるクライアントアプリケーション111はライブラリ関数121を正しく利用しなければサーバ端末装置61と通信できず、ライブラリ関数121を正しく利用すると、その通信に先立って前処理部125およびサーバ端末装置61の秘密鍵による暗号化部128が必ず実行されるため、サーバ端末装置61において、受信した暗号化データが自身の公開鍵で復号化できるかどうかを確かめることにより、通信前に必要な前処理が行われた通信かどうか判別できるからである。
<適用例3>
次に本実施例にかかる通信システムの適用例について説明する。
本適用例は、通信端末装置100としてLinux端末を、サーバ端末装置61としてパーソナルコンピュータを備えている。
パーソナルコンピュータであるサーバ端末装置61のサーバアプリケーション62は、ゲームコンテンツを配布する機能を有し、Linux端末である通信端末装置100のクライアントアプリケーション111は、サーバアプリケーション62が配布するゲームコンテンツをダウンロードする機能を有する。通信端末装置100とサーバ端末装置61の通信は、通信端末装置100の暗号化部128が保持するサーバ端末装置61が予め配布した秘密鍵と、サーバ端末装置61の通信処理部63が保持する公開鍵を利用したSSLを用いて行う。また通信端末装置100は、電子マネー情報が記憶されたICカードの機能を有しており、ROM領域でXIP実行されるライブラリ関数121の前処理部125は、ICカードを通じて課金処理を行う機能を有している。このような前提で、クライアントアプリケーション111がサーバアプリケーション62にダウンロードリクエストを送信し、ゲームコンテンツのダウンロードを試みた場合の動作を説明する。
通信端末装置100において、クライアントアプリケーション111がダウンロードリクエストを渡してライブラリ関数121を呼び出すと、ライブラリ関数121は、まず第1特定命令123を実行する。これによりOS130内にあるセキュリティゲート進入処理部131が呼び出され、第1特定命令123が存在するメモリエリアの種別が高信頼メモリエリア120である場合に限り、セキュリティレベル変更部134を用いてクライアントアプリケーション111のセキュリティレベルが“High”に変更される。次に前処理部125は、ゲームコンテンツのダウンロードに対する課金を行うため、ICカードを参照し、記憶されている電子マネー情報を更新する。次に暗号化部128は、クライアントアプリケーション111のダウンロードリクエストをサーバ端末装置61より配布された秘密鍵を用いて暗号化する。次に通信システムコール122が実行されると、OS130内の権限チェック処理部136が呼び出され、クライアントアプリケーション111のセキュリティレベルが“High”状態にあるので、通信システムコール処理部137を用いて通信処理を行う。これにより、クライアントアプリケーション111の暗号化されたダウンロードリクエストがサーバ端末装置61の通信処理部63に送信される。
サーバ端末装置61の通信処理部63は、通信端末装置100から暗号化されたダウンロードリクエストを受信すると、それを復号化部64へ渡し、復号化部64は公開鍵を用いて復号化したダウンロードリクエストを通信処理部63に返す。通信処理部63はそれをサーバアプリケーション52に伝達する。サーバアプリケーション52は、このダウンロードリクエストを処理し、ゲームコンテンツを通信端末装置100のクライアントアプリケーション111に配布する。
この適用例3によれば、通信端末装置100においてライブラリ関数121を介して適切に課金処理がなされた場合のみ、ゲームコンテンツをダウンロードすることが可能となり、サーバ端末装置61側で課金処理していた従来技術に比べて、サーバ端末装置61の負荷を軽減することが可能となる。
<通信システムの第4実施例>
図21を参照すると、本発明の通信システムの第4実施例は、通信端末装置100において、クライアントアプリケーション111の新たな属性値としてセキュリティゲート進入状態を示す属性値を追加し、プロセス状態管理データベース138がプロセスIDとセキュリティレベルと前記属性値に対応するセキュリティゲート通過フラグとの組を保持し、このプロセス状態管理データベース138内のセキュリティゲート通過フラグを変更する機能を持つセキュリティゲート進入状態記録処理部139を備え、クライアントアプリケーション111がセキュリティゲートに進入した時点ではそのセキュリティレベルを変更せずに、セキュリティゲート進入状態にあることをセキュリティゲート通過フラグで管理しておき、権限チェック処理部136による通信命令実行の権限チェック時に一時的にセキュリティレベルを変更するようにした点で、通信システムの第1実施例と相違する。
次に、図21及び図22から図24のフローチャートを参照して本実施例の通信システムの動作について詳細に説明する。
通信端末装置100において、クライアントアプリケーション111が通常メモリエリア110にOS130によりロードされ、アプリケーションプロセス(プロセスID=nnn)として実行される。この時、クライアントアプリケーション111は信頼できるかどうか不明であり、セキュリティレベルは“Low”で動作する。また、セキュリティゲート通過フラグは“0”である。クライアントアプリケーション111は、サーバ端末装置51のサーバアプリケーション52にデータを送信する場合、ライブラリ関数121を呼び出す。ライブラリ関数121は、呼び出されると、まず関数の先頭に配置された第1特定命令123を実行する(図22のS301)。
第1特定命令123が実行されると、OS130内にあるセキュリティゲート進入処理部131が呼び出される。セキュリティゲート進入処理部131では、呼び出される原因となった第1特定命令123が存在するメモリエリアの種別をメモリ種別判断処理部133を用いて求める(S302)。求めたメモリエリアの種別が高信頼メモリエリア120である場合に限り、セキュリティゲート進入状態記録処理部139を用いて、クライアントアプリケーション111がセキュリティゲート進入状態であることを記録する(S303及びS304)。これにより、プロセス状態管理データベース138内にある、当該クライアントアプリケーション111のセキュリティゲート通過フラグが例えば“0”から“1”に変更されることになる。クライアントアプリケーション111のセキュリティゲート通過フラグの変更が完了したら、第1特定命令123の処理を完了する(S305)。他方、第1特定命令123が存在するメモリエリアが高信頼メモリエリア120でなければ(S303でNO)、クライアントアプリケーションのセキュリティゲート通過フラグを変更せずに、第1特定命令123の処理を完了する(S305)。
その後、クライアントアプリケーション111は、ライブラリ関数121が提供するプログラムを実行し、この過程で、前処理部125、証明書管理部126、および通信システムコール122がこの順に実行される。
前処理部125は、サーバ端末装置51のサーバアプリケーション52と通信する前に実行すべき所定の処理を実行する。また、証明書管理部126は、前処理を行ったことを証明する証明書をクライアントアプリケーション111の送信データに付加する処理を実行する。なお、前処理部125および証明書管理部126の処理の実行に際して、OS130の機能を必要とする場合、適宜OS130の各種機能が利用される。
また通信システムコール122が実行されると(図23のS311)、OS130内の権限チェック処理部136が呼び出される。権限チェック処理部136では、プロセス状態管理データベース138内にある、当該クライアントアプリケーションのセキュリティゲート通過フラグを参照し、“1”状態にあるならばセキュリティレベル変更部134を用いて当該クライアントアプリケーションのセキュリティレベルを”High”に変更する(ステップS312及びS313)。次に、変更されたセキュリティレベルを元に、当該クライアントアプリケーションが通信システムコール命令を処理する権限を保持しているかどうかをチェックし、権限を保持している場合、通信システムコール処理部137を用いて通信処理を行う(S314及びS315)。これにより、クライアントアプリケーション111の送信データと証明書管理部126で付加された証明書とがネットワークNWを通じて、サーバ端末装置51の通信処理部53に送信される。他方、権限を保持していない場合は、通信処理を行わず、特権モードエラーとする(S318)。その後、再びセキュリティレベル変更部134を用いて当該クライアントアプリケーション111のセキュリティレベルを“Low”に戻し、通信システムコール処理を終了する(S316及びS317)。
その後、クライアントアプリケーション111が、ライブラリ関数121の処理を完了し、クライアントアプリケーション111に処理が戻る直前で、第2特定命令124が実行される(図24のS321)。
第2特定命令124が実行されると、OS130内にあるセキュリティゲート退出処理部132が呼び出される。セキュリティゲート退出処理部132では、セキュリティゲート進入状態記録処理部139を用いて、当該クライアントアプリケーションのセキュリティゲート通過フラグを元に戻し(S322)、処理を終了する(S323)。これにより、プロセス状態管理データベース138内にある、当該クライアントアプリケーションのセキュリティゲート通過フラグが“0”に戻ることになる。
サーバ端末装置51の動作は、通信システムの第1実施例と同じである。
本実施例によれば、第1実施例と同様に、クライアントアプリケーション110の通信前に必要な前処理の実行を通信端末装置100内で保証することができると共に、通信前に必要な前処理を行った通信か否かをサーバ端末装置51側で判別することができる。
また本実施例によれば、第1実施例の通信システムにおける通信端末装置に比べて、クライアントアプリケーション111のセキュリティレベルを“High”の状態にする区間を短く限定できるため、より安全に運用することが可能になる。
なお、本実施例では、クライアントアプリケーション111がセキュリティゲート進入状態であるかどうかを、各クライアントアプリケーションのプロセスIDに対応して少なくともセキュリティレベルを保持しているプロセス状態管理データベース138に設けたフラグで管理したが、セキュリティゲート進入状態のアプリケーションプロセスのプロセスID一覧を管理する別のデータベースを設けるようにしても良い。
<通信システムの第5実施例>
図25を参照すると、本発明の通信システムの第5実施例は、通信端末装置100の高信頼メモリエリア120に、データと前処理識別子との対応関係を保持する前処理記憶部127を備え、ライブラリ関数121の前処理部125は、クライアントアプリケーション111の送信データと同じデータに対応する前処理識別子を前処理記憶部127から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図21に示した第4実施例と相違する。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置100のライブラリ関数121における前処理部125の動作だけが第4実施例の通信システムと相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121が、第1特定命令123を処理した後、前処理部125による処理に進むと、前処理部125は、前処理記憶部127を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部126による処理へ進む。
本実施例によれば、第4実施例の通信システムと同等の効果が得られると同時に、前処理記憶部127を備えたことにより、クライアントアプリケーション111がサーバアプリケーション52に送信するデータに応じて、前処理の内容を変更することができる効果がある。
<通信システムの第6実施例>
図26を参照すると、本発明の通信システムの第6実施例は、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置61とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、予めサーバ端末装置61より配布された秘密鍵を保持し、クライアントアプリケーション111の送信データを前記秘密鍵を用いて暗号化する暗号化部128を証明書管理部126の代わりに有する点で第4実施例の通信システムにおける通信端末装置と相違する。
サーバ端末装置61は、図12で説明したサーバ端末装置の第3実施例のものと同一であり、サーバアプリケーション62と通信処理部63と復号化部64とを含んで構成される。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置100は、ライブラリ関数121において証明書管理部126による処理に代えて暗号化部128による処理を行う点が第4実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121は、第1特定命令123および前処理部125による処理を終えると、暗号化部128により、クライアントアプリケーション111の送信データをサーバ端末装置61の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール122を使用した通信では、この暗号化データがネットワークNWを通じてサーバ端末装置61の通信処理部63へ送信される。
サーバ端末装置61の動作は、第3実施例の通信システムにおけるサーバ端末装置と同じである。
本実施例によれば、通信システムの第4実施例と同じ理由により、クライアントアプリケーション111がサーバアプリケーション62と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。
また本実施例によれば、通信システムの第3実施例と同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置61側で判別することができる。
<通信システムの第7実施例>
図27を参照すると、本発明の通信システムの第7実施例における通信端末装置100は、図21に示した第4実施例の通信システムにおける通信端末装置の構成から、セキュリティレベル変更部134及びセキュリティレベル変更ポリシデータベース135を省略し、権限チェック処理部136は、クライアントアプリケーション111がセキュリティゲート進入状態にある場合、クライアントアプリケーション111のセキュリティレベルによる権限チェックを省略して通信命令を実行し、クライアントアプリケーション111がセキュリティゲート進入状態にない場合、クライアントアプリケーション111のセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行し、通信命令を実行する権限がないときは特権命令違反としてエラーを発生させるようにした点で、第4実施例の通信システムにおける通信端末装置と相違する。サーバ端末装置51は、第4実施例の通信システムにおけるものと同じである。
次に、図27及び図28のフローチャートを参照して本実施例の動作について詳細に説明する。
通信端末装置100において、クライアントアプリケーション111が通常メモリエリア110にOS130によりロードされ、アプリケーションプロセス(プロセスID=nnn)として実行される。この時、クライアントアプリケーション111は信頼できるかどうか不明であり、セキュリティレベルは“Low”で動作する。クライアントアプリケーション111は、サーバ端末装置51のサーバアプリケーション52にデータを送信する場合、ライブラリ関数121を呼び出す。ライブラリ関数121は、呼び出されると、まず関数の先頭に配置された第1特定命令123を実行する。このときの動作は第4実施例の通信システムにおける通信端末装置と同じであり、その結果、第1特定命令123が存在するメモリエリアが高信頼メモリエリア120である場合に限り、プロセス状態管理データベース138内にある、当該クライアントアプリケーション111のセキュリティゲート通過フラグが例えば“0”から“1”に変更される。
その後、クライアントアプリケーション111は、ライブラリ関数121が提供するプログラムを実行し、この過程で、前処理部125、証明書管理部126、および通信システムコール122がこの順に実行される。
前処理部125は、サーバ端末装置51のサーバアプリケーション52と通信する前に実行すべき所定の処理を実行する。また、証明書管理部126は、前処理を行ったことを証明する証明書をクライアントアプリケーション111の送信データに付加する処理を実行する。なお、前処理部125および証明書管理部126の処理の実行に際して、OS130の機能を必要とする場合、適宜OS130の各種機能が利用される。
また通信システムコール122が実行されると(図28のS401)、OS130内の権限チェック処理部136が呼び出される。権限チェック処理部136では、プロセス状態管理データベース138内にある、当該クライアントアプリケーション111のセキュリティゲート通過フラグを参照し、“1”状態にあるならば、セキュリティレベルによる権限チェックをパスして、通信システムコール処理部137を用いて通信処理を行う(S402、S404、S405)。これにより、クライアントアプリケーション111の送信データと証明書管理部126で付加された証明書とがネットワークNWを通じて、サーバ端末装置51の通信処理部53に送信される。他方、セキュリティゲート通過フラグが“0”状態であれば(ステップS402でNO)、当該クライアントアプリケーション111のセキュリティレベルに基づいて、当該クライアントアプリケーション111が通信システムコール命令を処理する権限を保持しているかどうかをチェックし、権限を保持している場合、通信システムコール処理部137を用いて通信処理を行い、通信システムコール処理を終了する(S403〜S405)。しかし、権限を保持していない場合は、通信処理を行わず、特権モードエラーとする(S403、S406)。
その後、クライアントアプリケーション111が、ライブラリ関数121の処理が完了し、クライアントアプリケーション111処理が戻る直前で、第2特定命令124が実行されると、第4実施例の通信システムにおける通信端末装置と同様に、プロセス状態管理データベース138内にある、当該クライアントアプリケーションプロセスのセキュリティゲート通過フラグが“0”に戻される。
本実施例によれば、第1実施例と同様に、クライアントアプリケーション111の通信前に必要な前処理の実行を通信端末装置100内で保証することができると共に、通信前に必要な前処理を行った通信か否かをサーバ端末装置51側で判別することができる。
また本実施例によれば、セキュリティレベル変更に関する処理が行われないため、きめ細かな制御はできなくなる一方で構成が単純になり、実装が容易になり、処理速度も向上する効果がある。
なお、本実施例では、クライアントアプリケーション111がセキュリティゲート進入状態であるかどうかを、各クライアントアプリケーションのプロセスIDに対応して少なくともセキュリティレベルを保持しているプロセス状態管理データベース138に設けたフラグで管理したが、セキュリティゲート進入状態のアプリケーションプロセスのプロセスID一覧を管理する別のデータベースを設けるようにしても良い。
<通信システムの第8実施例>
図29を参照すると、本発明の通信システムの第8実施例は、通信端末装置100の高信頼メモリエリア120に、データと前処理識別子との対応関係を保持する前処理記憶部127を備え、ライブラリ関数121の前処理部125は、クライアントアプリケーション111の送信データと同じデータに対応する前処理識別子を前処理記憶部127から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図27に示した第7実施例と相違する。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置100のライブラリ関数121における前処理部125の動作だけが第7実施例の通信システムと相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121が、第1特定命令123を処理した後、前処理部125による処理に進むと、前処理部125は、前処理記憶部127を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部126による処理へ進む。
本実施例によれば、第7実施例の通信システムと同等の効果が得られると同時に、前処理記憶部123を備えたことにより、クライアントアプリケーション111がサーバアプリケーション52に送信するデータに応じて、前処理の内容を変更することができる効果がある。
<通信システムの第9実施例>
図30を参照すると、本発明の通信システムの第9実施例は、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置61とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、予めサーバ端末装置61より配布された秘密鍵を保持し、クライアントアプリケーション111の送信データを前記秘密鍵を用いて暗号化する暗号化部128を証明書管理部126の代わりに有する点で第7実施例の通信システムにおける通信端末装置と相違する。
サーバ端末装置61は、図12で説明したサーバ端末装置の第3実施例のものと同一であり、サーバアプリケーション62と通信処理部63と復号化部64とを含んで構成される。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置100は、ライブラリ関数121において証明書管理部126による処理に代えて暗号化部128による処理を行う点が第7実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121は、第1特定命令123および前処理部125による処理を終えると、暗号化部128により、クライアントアプリケーション111の送信データをサーバ端末装置61の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール122を使用した通信では、この暗号化データがネットワークNWを通じてサーバ端末装置61の通信処理部63へ送信される。
サーバ端末装置61の動作は、第3実施例の通信システムにおけるサーバ端末装置と同じである。
本実施例によれば、第7実施例の通信システムと同じ理由により、クライアントアプリケーション111がサーバアプリケーション62と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。
また本実施例によれば、第3実施例の通信システムと同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置61側で判別することができる。
<通信システムの第10実施例>
図31を参照すると、本発明の通信システムの第10実施例における通信端末装置100は、図21に示した第4実施例の通信システムにおける通信端末装置の構成から、セキュリティレベル変更部134、セキュリティレベル変更ポリシデータベース135及びプロセス状態管理データベース138を省略する一方、セキュリティゲート進入状態のクライアントアプリケーション111のプロセスID一覧を管理するセキュリティゲート進入中プロセスIDデータベース150を追加し、権限チェック処理部136は、クライアントアプリケーション111がセキュリティゲート進入状態にあるか否かによって、通信命令の実行可否を制御するようにした点で、第4実施例の通信システムにおける通信端末装置と相違する。本実施例におけるサーバ端末装置51は、第4実施例の通信システムにおけるものと同じである。
次に、図31及び図32のフローチャートを参照して本実施例の通信システムの動作について詳細に説明する。
通信端末装置100において、クライアントアプリケーション111が通常メモリエリア110にOS130によりロードされ、アプリケーションプロセス(プロセスID=nnn)として実行される。本実施例の場合、クライアントアプリケーション111へのセキュリティレベルの設定は必須でないため、任意のセキュリティレベルを設定して良い。クライアントアプリケーション111は、サーバ端末装置51のサーバアプリケーション52にデータを送信する場合、ライブラリ関数121を呼び出す。ライブラリ関数121は、呼び出されると、まず関数の先頭に配置された第1特定命令123を実行する。このときの動作は第4実施例の通信システムにおける通信端末装置と同じであり、第1特定命令123が存在するメモリエリアが高信頼メモリエリア120である場合に限り、当該クライアントアプリケーション111がセキュリティゲート進入中として管理される。具体的には、セキュリティゲート進入状態記録処理部139により、当該クライアントアプリケーション111のプロセスIDがセキュリティゲート進入中プロセスIDデータベース150に記録される。
その後、クライアントアプリケーション111は、ライブラリ関数121が提供するプログラムを実行し、この過程で、前処理部125、証明書管理部126、および通信システムコール122がこの順に実行される。
前処理部125は、サーバ端末装置51のサーバアプリケーション52と通信する前に実行すべき所定の処理を実行する。また、証明書管理部126は、前処理を行ったことを証明する証明書をクライアントアプリケーション111の送信データに付加する処理を実行する。なお、前処理部125および証明書管理部126の処理の実行に際して、OS130の機能を必要とする場合、適宜OS130の各種機能が利用される。
また通信システムコール122が実行されると(図32のステップS501)、OS130内の権限チェック処理部136が呼び出される。権限チェック処理部136では、セキュリティゲート進入中プロセスIDデータベース150に当該クライアントアプリケーション111のプロセスIDが登録されているか否かを調べ、登録されていれば、通信システムコール処理部137を用いて通信処理を行う(ステップS502〜S504)。これにより、クライアントアプリケーション111の送信データと証明書管理部126で付加された証明書とがネットワークNWを通じて、サーバ端末装置51の通信処理部53に送信される。他方、登録されていなければ(S502でNO)、通信処理を行わず、特権モードエラーとする(S505)。
その後、クライアントアプリケーション111が、ライブラリ関数121の処理を完了し、アプリケーションプログラム111に処理が戻る直前で、第2特定命令124が実行されると、セキュリティゲート退出処理部132が呼び出され、セキュリティゲート進入状態記録処理部139により、セキュリティゲート進入中プロセスIDデータベース150から当該クライアントアプリケーションのプロセスIDが削除される。
本実施例によれば、第1実施例と同様に、クライアントアプリケーション111の通信前に必要な前処理の実行を通信端末装置100内で保証することができると共に、通信前に必要な前処理を行った通信か否かをサーバ端末装置51側で判別することができる。
また本実施例によれば、セキュリティレベル変更に関する処理が行われないため、きめ細かな制御はできなくなる一方で構成が単純になり、実装が容易になり、処理速度も向上する効果がある。
<通信システムの第11実施例>
図33を参照すると、本発明の通信システムの第11実施例は、通信端末装置100の高信頼メモリエリア120に、データと前処理識別子との対応関係を保持する前処理記憶部127を備え、ライブラリ関数121の前処理部125は、クライアントアプリケーション111の送信データと同じデータに対応する前処理識別子を前処理記憶部127から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図31に示した第10実施例と相違する。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置100のライブラリ関数121における前処理部125の動作だけが第10実施例の通信システムと相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121が、第1特定命令123を処理した後、前処理部125による処理に進むと、前処理部125は、前処理記憶部127を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部126による処理へ進む。
本実施例によれば、第10実施例の通信システムと同等の効果が得られると同時に、前処理記憶部123を備えたことにより、クライアントアプリケーション111がサーバアプリケーション52に送信するデータに応じて、前処理の内容を変更することができる。
<通信システムの第12実施例>
図34を参照すると、本発明の通信システムの第12実施例は、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置61とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、予めサーバ端末装置61より配布された秘密鍵を保持し、クライアントアプリケーション111の送信データを前記秘密鍵を用いて暗号化する暗号化部128を証明書管理部126の代わりに有する点で第10実施例の通信システムにおける通信端末装置と相違する。
サーバ端末装置61は、図12で説明したサーバ端末装置の第3実施例のものと同一であり、サーバアプリケーション62と通信処理部63と復号化部64とを含んで構成される。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置100は、ライブラリ関数121において証明書管理部126による処理に代えて暗号化部128による処理を行う点が第10実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121は、第1特定命令123および前処理部125による処理を終えると、暗号化部128により、クライアントアプリケーション111の送信データをサーバ端末装置61の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール122を使用した通信では、この暗号化データがネットワークNWを通じてサーバ端末装置61の通信処理部63へ送信される。
サーバ端末装置61の動作は、第3実施例の通信システムにおけるサーバ端末装置と同じである。
本実施例によれば、第10実施例の通信システムと同じ理由により、クライアントアプリケーション111がサーバアプリケーション62と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。
また本実施例によれば、第3実施例の通信システムと同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置61側で判別することができる。
<通信システムの第13実施例>
図35を参照すると、本発明の通信システムの第13実施例は、通信端末装置100において、ライブラリ関数121の処理の末尾に配置される第2特定命令124を省略する代わりに、第1特定命令123を実行する際に、クライアントアプリケーション111に戻る直前に必ず第2特定命令124を含む関数を経由するようにクライアントアプリケーション111のプロセスのスタックを改変する命令列であるところのスタック改変処理部129をライブラリ関数121に付加するようにした点で、第1実施例の通信システムにおける通信端末装置と相違する。本実施例のサーバ端末装置51は、第1実施例の通信システムにおけるものと同じである。
次に、図35及び図36を参照して本実施例の動作について詳細に説明する。
通信端末装置100において、クライアントアプリケーション111が通常メモリエリア110にOS130によりロードされ、アプリケーションプロセス(プロセスID=nnn)として実行される。この時、クライアントアプリケーション111は信頼できるかどうか不明であり、セキュリティレベルは“Low”で動作する。クライアントアプリケーション111は、サーバ端末装置51のサーバアプリケーション52にデータを送信する場合、ライブラリ関数121を呼び出す。ライブラリ関数121は、呼び出されると、まず関数の先頭に配置された第1特定命令123を実行する。これにより、第1実施例の通信システムの通信端末装置と同様に、第1特定命令123が存在するメモリエリアの種別が高信頼メモリエリア120である場合に限り、セキュリティレベル変更部134を用いてアプリケーションプロセスのセキュリティレベルが例えば“Low”から“High”に変更される。
続いて、スタック改変処理部129が実行され、当該クライアントアプリケーション111のスタック情報を改変し、図36に示すように、ライブラリ内API関数のスタック情報と、アプリケーションプログラム内関数のスタック情報との間に、第2特定命令124を実行する関数のスタック情報を挿入する。このようにスタック情報を改変することで、当該クライアントアプリケーション111がライブラリ関数121の処理を終え、クライアントアプリケーションのプログラム内関数に処理が戻る前に、必ず第2特定命令124を実行する関数が呼び出されることになる。
第2特定命令124を実行する関数が呼び出され、その第2特定命令124が実行されると、第1実施例の通信システムにおける通信端末装置と同様に、セキュリティレベル変更部134を用いてクライアントアプリケーション111のセキュリティレベルが“Low”に戻される。そして、スタック情報に従って、クライアントアプリケーション111に制御が戻される。
本実施例によれば、第1実施例の通信システムと同じ効果が得られると共に、スタック改変処理により、クライアントアプリケーション111がライブラリ関数121の処理を終え、クライアントアプリケーション111内関数に処理が戻る前に、必ず第2特定命令124を実行する関数が呼び出されることになるため、第2特定命令124の配置ミスによる特権レベルの不正流出を防止することができる。
なお、前述したようにスタック改変処理をOS130の一機能として提供し、第1特定命令123の実行時に呼び出されるセキュリティゲート進入処理部131でスタック改変処理を実行するようにしても良い。
<通信システムの第14実施例>
図37を参照すると、本発明の通信システムの第14実施例は、通信端末装置100の高信頼メモリエリア120に、データと前処理識別子との対応関係を保持する前処理記憶部127を備え、ライブラリ関数121の前処理部125は、クライアントアプリケーション111の送信データと同じデータに対応する前処理識別子を前処理記憶部127から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図35に示した第13実施例と相違する。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置100のライブラリ関数121における前処理部125の動作だけが第13実施例の通信システムと相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121が、第1特定命令123およびスタック改変処理部129による処理を行った後、前処理部125による処理に進むと、前処理部125は、前処理記憶部127を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部126による処理へ進む。
本実施例によれば、第13実施例の通信システムと同等の効果が得られると同時に、前処理記憶部123を備えたことにより、クライアントアプリケーション111がサーバアプリケーション52に送信するデータに応じて、前処理の内容を変更することができる効果がある。
<通信システムの第15実施例>
図38を参照すると、本発明の通信システムの第15実施例は、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置61とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、予めサーバ端末装置61より配布された秘密鍵を保持し、クライアントアプリケーション111の送信データを前記秘密鍵を用いて暗号化する暗号化部128を証明書管理部126の代わりに有する点で第13実施例の通信システムにおける通信端末装置と相違する。
サーバ端末装置61は、図12で説明したサーバ端末装置の第3実施例のものと同一であり、サーバアプリケーション62と通信処理部63と復号化部64とを含んで構成される。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置100は、ライブラリ関数121において証明書管理部126による処理に代えて暗号化部128による処理を行う点が第13実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121は、第1特定命令123、スタック改変処理部129および前処理部125による処理を終えると、暗号化部128により、クライアントアプリケーション111の送信データをサーバ端末装置61の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール122を使用した通信では、この暗号化データがネットワークNWを通じてサーバ端末装置61の通信処理部63へ送信される。
サーバ端末装置61の動作は、第3実施例の通信システムにおけるサーバ端末装置と同じである。
本実施例によれば、通信システムの第13実施例と同じ理由により、クライアントアプリケーション110がサーバアプリケーション62と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。
また本実施例によれば、通信システムの第3実施例と同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置61側で判別することができる。
<通信システムの第16実施例>
図39を参照すると、本発明の通信システムの第16実施例は、第1実施例の通信システムにおける通信端末装置100に、シグナル/割り込みハンドラ112と、シグナル/割り込み処理部140と、セキュリティゲート一時退出処理部141とが追加されている。また、プロセス状態管理データベース138は、クライアントアプリケーション111のプロセスIDと、現在のセキュリティレベルと、プロセス生成時に元々割り当てられていたセキュリティレベル(初期レベル)と、セキュリティレベルの保存域との組を格納する。
シグナル/割り込みハンドラ112は、クライアントアプリケーション111内に存在し、クライアントアプリケーションが走行している間に発生したシグナルや割り込みに対応する処理を行う。
シグナル/割り込み処理部140は、OS130内に存在し、クライアントアプリケーション111が走行している間にシグナルや割り込みが発生した時に、それまでの処理を中断し、セキュリティゲート一時退出処理部141を経由して、クライアントアプリケーション111内のシグナル/割り込みハンドラ112を呼び出す処理を行う。
セキュリティゲート一時退出処理部141は、シグナル/割り込み処理部140がクライアントアプリケーション111内のシグナル/割り込みハンドラ112を呼び出す前に、当該クライアントアプリケーション111のセキュリティレベルを一時的に元に戻す処理を行う。
次に、図39及び図40のフローチャートを参照して本実施例の動作について詳細に説明する。
第1実施例の通信システムにおいて説明した処理動作にて通信端末装置100が動作している場合において、クライアントアプリケーション111が処理を行っている間にシグナルや割り込みが発生すると、OS130はクライアントアプリケーション111の処理を一時中断し、シグナル/割り込み処理部140を用いてクライアントアプリケーション111内にあるシグナル/割り込みハンドラ112を呼び出そうとする。この時、もしもクライアントアプリケーション111の状態が、セキュリティゲート進入処理部131を通過している状態であれば、このままではクライアントアプリケーション111のプログラム内の通信システムコールの実行が可能になり、前処理を保証することができなくなる。そこで本実施例では、これを防ぐため、シグナル/割り込み処理部140がシグナル/割り込みハンドラ112を呼び出す前に、セキュリティゲート一時退出処理部141を用いて、以下のように、当該クライアントアプリケーション111のセキュリティレベルを一時的に元に戻す処理を行う。
クライアントアプリケーション111の処理中にシグナルや割り込みが発生すると(図40のS601)、シグナル/割り込み処理部140は、セキュリティゲート一時退出処理部141を呼び出す。セキュリティゲート一時退出処理部141は、当該クライアントアプリケーション111の現在のセキュリティレベルをプロセス状態管理データベース138の保存域に記録する(S602)。次に当該クライアントアプリケーションのセキュリティレベルをプロセス生成時に元々割り当てられていたセキュリティレベルに変更する(S603)。その後、クライアントアプリケーション111中にあるシグナル/割り込みハンドラ112を呼び出す(S604)。
シグナル/割り込みハンドラ112の処理が終わると、制御がセキュリティゲート一時退出処理部141に戻され、セキュリティゲート一時退出処理部141は、当該クライアントアプリケーション111のセキュリティレベルを、プロセス状態管理データベース138の保存域に記録したセキュリティレベルに戻す(S605)。その後、制御がシグナル/割り込み処理部140に戻され、シグナル/割り込み処理が終了する(S606)。
本実施例によれば、第1実施例の通信システムと同じ効果が得られると共に、セキュリティゲートを通過したクライアントアプリケーション111にシグナルや割り込みが発生して、クライアントアプリケーション111内にあるハンドラを実行する場合でも、当該クライアントアプリケーションのセキュリティレベルをクライアントアプリケーションに元々割り当てられていた状態に一時的に戻すことが可能になるため、特権状態の不正な流出を防ぎ、通信前の前処理の実行をより確実に保証することができる。
<通信システムの第17実施例>
図41を参照すると、本発明の通信システムの第17実施例は、通信端末装置100の高信頼メモリエリア120に、データと前処理識別子との対応関係を保持する前処理記憶部127を備え、ライブラリ関数121の前処理部125は、クライアントアプリケーション111の送信データと同じデータに対応する前処理識別子を前処理記憶部127から検索し、その検索した前処理識別子で一意に識別される内容の前処理を実行する点で、図39に示した第16実施例と相違する。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムは、通信端末装置100のライブラリ関数121における前処理部125の動作だけが第16実施例の通信システムと相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121が、第1特定命令123を処理した後、前処理部125による処理に進むと、前処理部125は、前処理記憶部127を参照して、送信データに対応する前処理識別子を取得する。そして、取得した前処理識別子に対応する前処理を実行し、引き続き証明書管理部126による処理へ進む。
本実施例によれば、第16実施例の通信システムと同等の効果が得られると同時に、前処理記憶部123を備えたことにより、クライアントアプリケーション111がサーバアプリケーション52に送信するデータに応じて、前処理の内容を変更することができる効果がある。
<通信システムの第18実施例>
図42を参照すると、本発明の通信システムの第18実施例は、クライアント端末として動作する通信端末装置100とサーバ端末として動作するサーバ端末装置61とがインターネットなどのネットワークNWを通じて相互に通信可能に接続されている。
通信端末装置100は、予めサーバ端末装置61より配布された秘密鍵を保持し、クライアントアプリケーション111の送信データを前記秘密鍵を用いて暗号化する暗号化部128を証明書管理部126の代わりに有する点で第16実施例の通信システムにおける通信端末装置と相違する。
サーバ端末装置61は、図12で説明したサーバ端末装置の第3実施例のものと同一であり、サーバアプリケーション62と通信処理部63と復号化部64とを含んで構成される。
次に本実施例の通信システムの動作を説明する。
本実施例の通信システムにおける通信端末装置100は、ライブラリ関数121において証明書管理部126による処理に代えて暗号化部128による処理を行う点が第16実施例の通信システムにおける通信端末装置と相違する。クライアントアプリケーション111から送信データを渡されて呼び出されたライブラリ関数121は、第1特定命令123および前処理部125による処理を終えると、暗号化部128により、クライアントアプリケーション111の送信データをサーバ端末装置61の秘密鍵で暗号化し、この暗号化データを送信データとする。引き続き実行される通信システムコール122を使用した通信では、この暗号化データがネットワークNWを通じてサーバ端末装置61の通信処理部63へ送信される。
サーバ端末装置61の動作は、第3実施例の通信システムにおけるサーバ端末装置と同じである。
本実施例によれば、通信システムの第16実施例と同じ理由により、クライアントアプリケーション110がサーバアプリケーション62と通信する場合、その通信前に必要な前処理の実行を通信端末装置100内で保証することができる。
また本実施例によれば、通信システムの第3実施例と同じ理由により、通信前に必要な前処理を行った通信か否かをサーバ端末装置61側で判別することができる。
本発明によれば、通信端末装置上で動作するクライアントアプリケーションが、サーバ端末装置上にあるサーバアプリケーションと通信を行い動作するシステムで、クライアントアプリケーションが、通信端末装置で特定の処理を必ず実行してから、サーバアプリケーションと通信を行う機能を実現する用途に適用できる。

Claims (32)

  1. 通信相手との通信に先立って実行されるべき処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持する記憶部と、
    前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、
    前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、
    前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部と
    を具備する通信端末装置。
  2. 請求の範囲1記載の通信端末装置において、
    通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含む
    通信端末装置。
  3. 請求の範囲1記載の通信端末装置において、
    通信相手との通信に先立って実行されるべき前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含む
    通信端末装置。
  4. 請求の範囲2または3記載の通信端末装置において、
    前記前処理は課金処理を含む
    通信端末装置。
  5. 請求の範囲2または3記載の通信端末装置において、
    前記前処理は著作権管理処理を含む
    通信端末装置。
  6. 請求の範囲1乃至5の何れか1項に記載の通信端末装置において、
    前記属性値が、前記クライアントアプリケーションのセキュリティレベルを示す属性値である
    通信端末装置。
  7. 請求の範囲6記載の通信端末装置において、
    前記通信命令実行制御部は、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行する
    通信端末装置。
  8. 請求の範囲1乃至5の何れか1項に記載の通信端末装置において、
    前記属性値が、前記クライアントアプリケーションのセキュリティゲート進入状態を示す属性値である
    通信端末装置。
  9. 請求の範囲8記載の通信端末装置にお8いて、
    前記通信命令実行制御部は、前記クライアントアプリケーションがセキュリティゲート進入状態にある場合、通信命令を実行する
    通信端末装置。
  10. 請求の範囲1乃至5の何れか1項に記載の通信端末装置において、
    前記属性値が、前記クライアントアプリケーションのセキュリティレベルを示す属性値と前記クライアントアプリケーションのセキュリティゲート進入状態を示す属性値とを含む
    通信端末装置。
  11. 請求の範囲10記載の通信端末装置において、
    前記通信命令実行制御部は、前記クライアントアプリケーションがセキュリティゲート進入状態にある場合、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを省略して通信命令を実行し、前記クライアントアプリケーションがセキュリティゲート進入状態にない場合、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行する
    通信端末装置。
  12. 請求の範囲10記載の通信端末装置において、
    前記セキュリティゲート進入処理部は、セキュリティゲート進入状態となったクライアントアプリケーションのセキュリティレベルを変更するものであり、
    前記セキュリティゲート退出処理部は、セキュリティゲート退出状態となったクライアントアプリケーションのセキュリティレベルを元に戻すものであり、
    前記通信命令実行制御部は、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行する
    通信端末装置。
  13. 請求の範囲10記載の通信端末装置において、
    前記通信命令実行制御部は、前記クライアントアプリケーションがセキュリティゲート進入状態にある場合、前記クライアントアプリケーションのセキュリティレベルを更新した後、前記クライアントアプリケーションのセキュリティレベルによる権限チェックを行い、通信命令を実行する権限があるときは通信命令を実行した後にセキュリティレベルを元の値に戻す
    通信端末装置。
  14. 請求の範囲11乃至13のいずれかに記載の通信端末装置において、
    セキュリティゲート進入状態にある前記クライアントアプリケーションの走行中にシグナルまたは割り込みが発生した際、前記クライアントアプリケーションのシグナル/割り込みハンドラを呼び出す前に前記クライアントアプリケーションのセキュリティレベルをセキュリティゲート進入前の値に戻し、前記シグナル/割り込みハンドラによる処理が終わったとき若しくは終わった後にセキュリティゲート進入後の値に戻すセキュリティゲート一時退出処理部を備える
    通信端末装置。
  15. 請求の範囲1乃至5の何れか1項に記載の通信端末装置において、
    前記セキュリティゲート進入処理部によって前記クライアントアプリケーションの前記属性値を変更した後、前記セキュリティゲート退出処理部によって前記クライアントアプリケーションの前記属性値を元に戻すまでの前記クライアントアプリケーションの走行中にシグナルまたは割り込みが発生した際、前記クライアントアプリケーションのシグナル/割り込みハンドラを呼び出す前に前記クライアントアプリケーションの前記属性値を前記セキュリティゲート進入処理部による変更前の値に戻し、前記シグナル/割り込みハンドラによる処理が終わったとき若しくは終わった後に前記セキュリティゲート進入処理部による変更後の値に戻すセキュリティゲート一時退出処理部を備える
    通信端末装置。
  16. 請求の範囲6、7、10〜14の何れか1項に記載の通信端末装置において、
    前記セキュリティゲート進入処理部は、前記クライアントアプリケーションのセキュリティレベルを特権レベルに変更する
    通信端末装置。
  17. 請求の範囲1〜16の何れか1項に記載の通信端末装置において、
    前記ライブラリ関数は、前処理記述の前に第1特定命令が配置され、呼び出し元に戻る出口の前に第2特定命令が配置されている
    通信端末装置。
  18. 請求の範囲1〜16の何れか1項に記載の通信端末装置において、
    前記ライブラリ関数は、前処理記述の前に第1特定命令が配置され、第1特定命令が配置された箇所以降で必ず実行される経路上に、呼び出し元に戻る前に第2特定命令を含む関数を経由するように前記クライアントアプリケーションのスタックを改変する命令列が配置されている
    通信端末装置。
  19. 請求の範囲1〜16の何れか1項に記載の通信端末装置において、
    前記ライブラリ関数は、前処理記述の前に第1特定命令が配置されており、
    前記セキュリティゲート進入処理部は、前記クライアントアプリケーションの前記属性値を変更した場合、前記クライアントアプリケーションが呼び出し元に戻る前に第2特定命令を含む関数を経由するように前記クライアントアプリケーションのスタックを改変する
    通信端末装置。
  20. 請求の範囲1〜16の何れか1項に記載の通信端末装置において、
    前記予め定められたアドレス範囲が、ROM領域内のアドレス範囲である
    通信端末装置。
  21. 請求の範囲1〜16の何れか1項に記載の通信端末装置において、
    前記セキュリティゲート進入処理部は、前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かのチェックに加えて、前記第1特定命令のアドレスがプログラムエリアであるか否かのチェックを行う
    通信端末装置。
  22. 請求の範囲1〜16の何れか1項に記載の通信端末装置において、
    前記第1特定命令と前記第2特定命令は、それぞれセキュリティゲート進入要求、退出要求をオペレーティングシステムに対して発行するシステムコール命令である
    通信端末装置。
  23. サーバアプリケーションを保持する記憶部と、
    証明書が正当であるか否かを判別する証明書検証部と、
    クライアントアプリケーションから受信したデータに付加された証明書が前記証明書検証部で正当であると判別された場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して前記サーバアプリケーションに伝達する通信処理部と
    を具備するサーバ端末装置。
  24. サーバアプリケーションを保持する記憶部と、
    暗号化データを自装置の公開鍵で復号化する復号化部と、
    クライアントアプリケーションから受信した暗号化データが前記復号化部で復号化できた場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して復号化したデータを前記サーバアプリケーションに伝達する通信処理部と
    を具備するサーバ端末装置。
  25. ネットワークで接続された通信端末装置とサーバ端末装置とを備え、
    前記通信端末は、
    通信相手との通信に先立って実行されるべき処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持する記憶部と、
    前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、
    前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、
    前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部とを具備し、
    通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含み、
    前記サーバ端末装置は、
    サーバアプリケーションを保持する記憶部と、
    証明書が正当であるか否かを判別する証明書検証部と、
    クライアントアプリケーションから受信したデータに付加された証明書が前記証明書検証部で正当であると判別された場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して前記サーバアプリケーションに伝達する通信処理部とを具備する
    通信システム。
  26. ネットワークにより接続された通信端末装置とサーバ端末装置とを備え、
    前記通信端末装置は、
    通信相手との通信に先立って実行されるべき処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持する記憶部と、
    前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御する通信命令実行制御部と、
    前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するセキュリティゲート進入処理部と、
    前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理部とを具備し、
    通信相手との通信に先立って実行されるべき前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含み、
    サーバ端末装置は、
    サーバアプリケーションを保持する記憶部と、
    暗号化データを自装置の公開鍵で復号化する復号化部と、
    クライアントアプリケーションから受信した暗号化データが前記復号化部で復号化できた場合、通信に先立って所定の前処理を実行したクライアントアプリケーションからの受信データであると判断して復号化したデータを前記サーバアプリケーションに伝達する通信処理部とを具備する。
    通信システム。
  27. 通信端末装置にて、通信相手との通信に先立って実行する処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持するステップと、
    前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御するステップと、
    前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するステップと、
    前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すセキュリティゲート退出処理とを実行するステップと
    を具備する情報処理方法。
  28. 請求の範囲27記載の情報処理方法において、
    通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含む
    情報処理方法。
  29. 請求の範囲27記載の情報処理方法において、
    通信相手との通信に先立って実行する前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含む
    情報処理方法。
  30. 通信端末装置にて、通信相手との通信に先立って実行する処理の実行前に第1特定命令が実行され且つ呼び出し元に戻る前に第2特定命令が実行されるようにしたライブラリ関数、クライアントアプリケーション、その属性値、及び、前記第1特定命令の許容アドレス範囲を保持する記憶部を有するコンピュータにより実行される方法のためのコンピュータ読み取り可能なソフトウェアプロダクトであって、
    前記方法は、
    前記クライアントアプリケーションが通信命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値に基づいて通信命令の実行可否を制御するステップと、
    前記クライアントアプリケーションが第1特定命令を実行して内部割り込みが発生した際、前記第1特定命令のアドレスが前記許容アドレス範囲内であるか否かをチェックし、前記許容アドレス範囲内であれば、前記クライアントアプリケーションの前記属性値を変更するステップと、
    前記クライアントアプリケーションが第2特定命令を実行して内部割り込みが発生した際、前記クライアントアプリケーションの前記属性値を元に戻すステップとを具備する
    コンピュータ読み取り可能なソフトウェアプロダクト。
  31. 請求の範囲30記載のコンピュータ読み取り可能なソフトウェアプロダクトにおいて、
    通信相手との通信に先立って実行する前記処理は、前処理と、該前処理を行ったことを通信相手に証明する証明書を送信データに付加する処理とを含む
    コンピュータ読み取り可能なソフトウェアプロダクト。
  32. 請求の範囲30記載のコンピュータ読み取り可能なソフトウェアプロダクトであって、
    通信相手との通信に先立って実行する前記処理は、前処理と、通信相手に送るデータを通信相手の秘密鍵を用いて暗号化する処理とを含む
    コンピュータ読み取り可能なソフトウェアプロダクト。
JP2007544123A 2005-11-09 2006-11-06 通信端末装置、サーバ端末装置、それらを用いる通信システム Expired - Fee Related JP4978896B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007544123A JP4978896B2 (ja) 2005-11-09 2006-11-06 通信端末装置、サーバ端末装置、それらを用いる通信システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005324507 2005-11-09
JP2005324507 2005-11-09
PCT/JP2006/322093 WO2007055169A1 (ja) 2005-11-09 2006-11-06 通信端末装置、サーバ端末装置、それらを用いる通信システム
JP2007544123A JP4978896B2 (ja) 2005-11-09 2006-11-06 通信端末装置、サーバ端末装置、それらを用いる通信システム

Publications (2)

Publication Number Publication Date
JPWO2007055169A1 true JPWO2007055169A1 (ja) 2009-04-30
JP4978896B2 JP4978896B2 (ja) 2012-07-18

Family

ID=38023172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007544123A Expired - Fee Related JP4978896B2 (ja) 2005-11-09 2006-11-06 通信端末装置、サーバ端末装置、それらを用いる通信システム

Country Status (5)

Country Link
US (1) US8112623B2 (ja)
EP (1) EP1950680A4 (ja)
JP (1) JP4978896B2 (ja)
CN (1) CN101305377A (ja)
WO (1) WO2007055169A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110041188A1 (en) * 2008-05-02 2011-02-17 Invicta Networks, Inc Method and system for protection of computer applications and software products against unauthorized copying
CA2759612C (en) * 2010-11-23 2018-10-23 Afore Solutions Inc. Method and system for securing data
US20120222037A1 (en) * 2011-02-24 2012-08-30 Intuit Inc. Dynamic reprovisioning of resources to software offerings
US9094830B2 (en) * 2012-07-05 2015-07-28 Blackberry Limited Managing data transfer across a network interface
TWI712915B (zh) 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
KR101930941B1 (ko) 2016-07-19 2018-12-20 주식회사 안랩 클라이언트 단말의 보안성을 관리하는 보안 관리 장치 및 보안 관리 방법
JP2018200642A (ja) * 2017-05-29 2018-12-20 富士通株式会社 脅威検出プログラム、脅威検出方法および情報処理装置
US10868814B2 (en) 2018-04-30 2020-12-15 Samsung Electronics Co., Ltd. System and method for flow-based architecture

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134917A (ja) 1991-11-14 1993-06-01 Nec Corp データ処理装置のデータ処理方式
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
JP3505058B2 (ja) 1997-03-28 2004-03-08 株式会社日立製作所 ネットワークシステムのセキュリティ管理方法
JP3595109B2 (ja) * 1997-05-28 2004-12-02 日本ユニシス株式会社 認証装置、端末装置、および、それら装置における認証方法、並びに、記憶媒体
JPH1173372A (ja) 1997-08-27 1999-03-16 Hideo Takeda コンピュータ・ウィルスによる不正アクセス検出方法
WO2001042874A2 (en) 1999-10-25 2001-06-14 Phoenix Technologies Inc. Secure dispatching of software system mangement interrupt by vali dating the caller address
EP1331539B1 (en) 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
JP4689954B2 (ja) 2002-12-20 2011-06-01 パナソニック株式会社 情報管理システムおよび情報管理方法
JP2005128960A (ja) 2003-10-27 2005-05-19 Sony Corp コンテンツの再生装置及び方法
US7480755B2 (en) * 2004-12-08 2009-01-20 Hewlett-Packard Development Company, L.P. Trap mode register

Also Published As

Publication number Publication date
JP4978896B2 (ja) 2012-07-18
EP1950680A4 (en) 2011-11-09
US20090100524A1 (en) 2009-04-16
WO2007055169A1 (ja) 2007-05-18
CN101305377A (zh) 2008-11-12
US8112623B2 (en) 2012-02-07
EP1950680A1 (en) 2008-07-30

Similar Documents

Publication Publication Date Title
US7461249B1 (en) Computer platforms and their methods of operation
US7610632B2 (en) Software use permission method and system
JP4978896B2 (ja) 通信端末装置、サーバ端末装置、それらを用いる通信システム
US7305553B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US7243230B2 (en) Transferring application secrets in a trusted operating system environment
US9336369B2 (en) Methods of licensing software programs and protecting them from unauthorized use
US20100063996A1 (en) Information processing device, information recording device, information processing system, program update method, program, and integrated circuit
JP2003507784A (ja) 記憶されたデータの使用に対する強制的な制限
US9129098B2 (en) Methods of protecting software programs from unauthorized use
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
CN114651253A (zh) 用于策略强制实施的虚拟环境类型验证
US20220092155A1 (en) Protecting an item of software
JP2020150318A (ja) 情報処理装置、情報処理方法及びプログラム
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
KR101659082B1 (ko) 휴대용 단말기에 설치된 애플리케이션 실행 제어 방법 및 시스템
CN118260767A (en) Security protection method based on TrustZone technology
CN117235685A (zh) 基于授权板的软件授权鉴权的方法及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

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: 20120326

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120408

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

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4978896

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees