JP4647392B2 - デバイス制御装置、デバイス制御方法およびプログラム - Google Patents

デバイス制御装置、デバイス制御方法およびプログラム Download PDF

Info

Publication number
JP4647392B2
JP4647392B2 JP2005149746A JP2005149746A JP4647392B2 JP 4647392 B2 JP4647392 B2 JP 4647392B2 JP 2005149746 A JP2005149746 A JP 2005149746A JP 2005149746 A JP2005149746 A JP 2005149746A JP 4647392 B2 JP4647392 B2 JP 4647392B2
Authority
JP
Japan
Prior art keywords
message
execution object
index
controlling
reliability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005149746A
Other languages
English (en)
Other versions
JP2006330835A (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.)
Kyocera Corp
Original Assignee
Kyocera 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 Kyocera Corp filed Critical Kyocera Corp
Priority to JP2005149746A priority Critical patent/JP4647392B2/ja
Priority to KR1020060044776A priority patent/KR100790602B1/ko
Priority to US11/439,499 priority patent/US8117451B2/en
Priority to CN2006100848694A priority patent/CN1869927B/zh
Publication of JP2006330835A publication Critical patent/JP2006330835A/ja
Application granted granted Critical
Publication of JP4647392B2 publication Critical patent/JP4647392B2/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality

Description

本発明は、コンピュータに結合されたデバイスを制御するデバイス制御装置、デバイス制御方法およびプログラムに関する。
従来コンピュータに接続されたデバイスを制御するために、デバイスドライバが使用されている。コンピュータにおいて実行されるOS(Operating System)は、デバイスドライバに対する汎用的なインタフェースを提供しており、新規なデバイスが提供されてもそれに対するデバイスドライバを組み込むことによってアプリケーションやOSなどの実行オブジェクトから利用可能になる。デバイスドライバはデバイスメーカーが提供し、OSはシステムコールを通じてデバイス制御機能をアプリケーションに提供している。
OSのシステムコールはメッセージを引数に取り、これをデバイスドライバに渡す。デバイスドライバは与えられたメッセージに従ってデバイスを操作する。例えば、C言語でデバイスを制御するプログラムを作る場合、open()、close()、read()、write()、ioctl()といったシステムコールが使われる。これらはデバイスを開き、閉じ、読み出し、書き込み、メッセージによって制御を行うものである。OSの違いや実行環境によって関数の名前は変わるが、同等の機能が提供されていることが多い。システムコールが実行されるとOSのカーネルのサービスが呼び出される。
図2は従来のデバイス制御装置を示すブロック図である。デバイス5をデバイスドライバ62が操作し、デバイスドライバ62はOS61にリンクされる。アプリケーション71は高レベルAPI(Application Programming Interface)72を利用し、高レベルAPI72はシステムコール74を実行する。OS61はシステムコール74と高レベルAPI72を提供している。
従来のデバイスドライバはデバイスのサポートする機能を提供するために、デバイスドライバに対するメッセージや、そのやり取りの手順といった、インタフェースを公開していた。またメッセージのインタフェースを標準化することによって、異なるメーカーのデバイスであっても同一のプログラムを変更なしに動作させることができ、デバイスの普及を促すのに役立った。
メッセージのインタフェースが標準化されている場合、システムコールの上位に高レベルAPIを設定し、この高レベルAPIをOSがライブラリやDLL(Dynamic Link Library)として提供している場合が多い。実行オブジェクトが高レベルAPIを呼ぶと、高レベルAPIはシステムコールを呼んでデバイスドライバ宛てのメッセージを送る。
通常、単一のデバイスに対してデバイスドライバのインスタンスは単一であり、高レベルAPIのインスタンスはアプリケーションごとに複数存在する。デバイスドライバインスタンスが単一であれば、複数のアプリケーションが同時にデバイスを制御しようとした場合に、競合を検出して排他制御を行うことができるからである。
一方でこのような汎用のOSを携帯電話機に搭載し、OSの持つ優れた機能を利用したり、OS上で動作する優れたアプリケーションを携帯電話の無線ネットワークに接続して利用したりする装置が現れている。
この種の装置では、携帯電話や無線データ通信を実現するデバイスをOSが動作する携帯型コンピュータに結合し、デバイスとOSとのインタフェースをデバイスドライバとして実現していた。この方式は、OS及びアプリケーションからデバイスを制御するためのオープンな手段を提供すること、ユーザ空間とカーネル空間とを分離するメモリの保護機能を備えるOSにおいてはこうしたメモリ保護の恩恵を受けられること、携帯電話メーカーにはOSの開発コストを削減しつつ高度な機能が利用できること、OSメーカーにはデバイスが変わってもOSやアプリケーションを移植する手間が省け、常に最新の高性能なデバイスを利用することができること、などといったメリットがあった。
特開平9−218844号公報
デバイスメーカーや携帯電話メーカーでは、デバイスの持つある種の機能はOSなどの信頼できるソフトウエアにのみ利用を許可し、ユーザアプリケーションなどの信頼できないソフトウエアに対しては利用を制限したい場合があったが、従来のデバイスドライバによるデバイス制御装置やデバイス制御方法では不可能であった。つまり実行プログラムにopen()、close()、read()、write()、ioctl()といったシステムコールの利用を許容すると、信頼できないソフトウエアでもデバイスを操作できてしまうという問題があった。例えばデバイスの動作に支障をきたすような操作、ユーザに対して使用料金を発生させる操作、ユーザのプライバシー情報を読み出す操作などは信頼できないソフトウエアに対しては制限を設けるべきであるが、そのような選択的な制限は困難であった。
デバイスドライバと実行オブジェクトとの間のメッセージインタフェースが標準化されている場合、特定のメッセージに関してOSがその利用を制限することは可能であったが、デバイス独自の機能を利用しつつその利用制限を設ける場合には、OSが個々の条件に対応していなければならず、OSの改変を必要とするケースも多くなる。デバイスの利用制限の設定に伴って、OSメーカーがOSを改変するのは合理的な対処方法ではなかった。
本発明は、このような事情に鑑み、メッセージインタフェースの汎用性を確保しつつ、デバイスドライバ側においてアプリケーションに対するデバイスの利用制限を設定するにあたっての自由度を向上させるのに好適な技術を提供することを課題とする。
上記の課題を解決するために、本発明に係るデバイス制御装置は、実行オブジェクトから受信したメッセージを操作手段に送信する中継手段と、該メッセージを受信すると該メッセージに対応して予め設定されたデバイスを制御する処理手順に従ってデバイスを制御する制御手段とを備えた装置であって、前記中継手段は、前記実行オブジェクトから前記メッセージを受信すると、当該実行オブジェクトの信頼性を示す指標を作成する評価手段と、受信した前記メッセージに前記指標を付加する指標付加手段とを有し、前記制御手段は、前記指標と対応して前記デバイスを制御する処理手順を複数記憶する記憶手段を有し、前記メッセージを受信すると、前記記憶手段に記憶された複数のデバイスを制御する処理手順の中から、当該メッセージに付加された指標に対応するデバイスを制御する処理手順を実行するように制御すること、を特徴とする。
また、前記中継手段は、操作手段に送信するメッセージに認証を付加する認証付加手段を有し、前記制御手段は、中継手段からメッセージを受け取ると前記認証の正当性を判定する判定手段と、認証の正当性が成立しないときは当該メッセージを送信した実行オブジェクトに対する防御を行うことを有することを特徴とする。
本発明に係るデバイス制御方法は、実行オブジェクトから受信したメッセージを中継手段により操作手段に送信し、該操作手段はメッセージを受信すると該メッセージに対応して予め設定されたデバイスを制御する操作手順に従ってデバイスを操作するデバイス制御装置を制御する方法であって、前記中継手段は、実行オブジェクトからメッセージを受信すると、当該実行オブジェクトの信頼性を示す指標を取得するステップと、受信したメッセージに前記指標を付加して、宛先の操作手段に送信するメッセージとするステップとを実行し、前記制御手段は、メッセージを受信すると、実行オブジェクトの信頼性に対応して予め設定された複数のデバイスを制御する操作手順の中から、当該メッセージに付加された指標に対応するデバイスを制御する操作手順を選択するステップとを実行すること
を特徴とする。
本発明に係るプログラムは、デバイス操作に関するメッセージを実行オブジェクトから受信するステップと、該メッセージを送信した実行オブジェクトの信頼性を示す指標を取得するステップと、前記指標に対応するデバイスを制御させるために、前記受信したメッセージに前記指標を付加し、対応するデバイス側に送信するステップとをコンピュータに実行させることを特徴とする。
本発明に係るプログラムは、デバイス操作に関するメッセージを送信した実行オブジェクトの信頼性を示す指標を該メッセージに付加したものを受信するステップと、実行オブジェクトの信頼性に対応して複数設定されたデバイスを制御する操作手順の中から、前記メッセージに付加された指標に対応するデバイスを制御する操作手順を選択するステップと、選択された操作手順に従ってデバイスを操作するステップとをコンピュータに実行させることを特徴とする。
本発明によれば、実行オブジェクトから受信したメッセージを、デバイスを操作する操作手段に中継するにあたって、当該実行オブジェクトの信頼性を示す指標を取得してメッセージに付加する一方、前記の指標を参照して信頼性に応じた操作手順を操作手段が選択し得るようにしているので、コンピュータに汎用のOSを組み込み、このOSに各種のデバイスに対応したデバイスドライバを実装したシステムに適用して好適となる利点がある。
すなわち、中継手段側では前記の指標を取得する機能を構成するだけで済むから、デバイスの特性に依存しない画一的な処理を実行するだけで足り、実行オブジェクト側およびデバイスドライバ側のインタフェースを標準化したOSを用いて中継手段を構築する形態に好適となる利点がある。また、操作手段側では実行オブジェクトや中継手段側に支配されずに操作手段側で処理手順を選択することが可能であり、しかも処理手順を選択するにあたって実行オブジェクトの信頼性を示す指標を参照できるので、デバイスドライバを用いて操作手段を構築し、デバイスへの外部からの不正なアクセス等に対しデバイスドライバのみの処理で柔軟に対処する形態をとるのに好適となる利点がある。
かかる形態によれば、メッセージを送信した実行オブジェクトの信頼性をメッセージごとに取得してデバイスの機能を提供するか否かをデバイスドライバが判断でき、さらに提供する場合の動作内容もデバイスドライバが選択できる。これによって信頼できる実行オブジェクトに対してのみ機能を提供し、信頼できない実行オブジェクトに対しては機能を制限したり、異なった機能に変えることができる。この機能制限や変更はデバイスドライバが判断するため、OSの変更を要請することなくデバイスとデバイスドライバのメーカーの方針に基づいて制御することができる。
また、中継手段が操作手段に送信するメッセージに電子認証を付加し、不正なアクセス等に対する防御を強化する形態をとることもできる。操作手段は、中継手段からメッセージの正当性が成立しないときは、所定の防御処理、たとえば当該メッセージを無視してメッセージを返送しない処理や、自己(デバイスドライバ等)にセキュリティレベルの設定等がある場合そのレベルを高くする処理、中継手段側(OS等)に対し防御強化を促す通知を行う処理等を行うことができる。
かかる形態によれば、OSからのメッセージを偽装してデバイスを不正に操作する意図が存在することをデバイスドライバが判別し、そのような攻撃にさらされている状況に対応してデバイスドライバ自体が高セキュリティモードをとると共に、OSにも攻撃の存在を通知してセキュリティ強化を促すといったシステムの構築に好適となる利点がある。
以下、図面を用いてこの発明の実施形態を説明する。
図3は本発明の一実施形態が適用される携帯電話機の回路構成例を示すブロック図である。この携帯電話機は、装置全体の制御を司るCPU(Central Processing Unit)101に内部バス2を介して各機能ブロックが接続された構成を有する。メモリ102は、RAM(Random Access Memory)およびROM(Read Only Memory)からなり、CPU101のメインメモリを構成するものである。タイマ103はCPU101の指示に基づいて指定時刻での起動等の処理を行うものである。
アンテナ301は、通信に使用する電波の送受信を行うものである。無線部302は、アンテナ301を用いて通信を行うものである。DSP(Digital Signal Processor)303は、送受信信号の変復調処理その他の処理を行うものである。D/A(Digital/Analog)コンバータ304は、DSP303の出力するディジタル音声信号や着信音等をアナログ音声信号に変換して、スピーカ305に供給するものである。A/D(Analog/Digital)コンバータ306はマイクロホン307から入力されるアナログ音声信号をディジタル音声信号に変換してDSP303に供給するものである。マイクロホン307は、通話音声等を入力するものである。
キー操作部401は、例えばテンキーやオンフックキー、オフフックキー、電源ボタン、シャッタボタン、機能選択キー(ファンクションキー)等を有し、ダイアル入力の他、各種のキー入力の取込処理を行うものである。画面表示部402は、たとえば液晶ディスプレイや液晶タッチパネルなどからなり、通信に関する各種表示の他、メッセージ等の表示やメニュー画面、さらに各種のアプリケーションソフトの実行画面などの表示を行うものである。
以上の構成においてこの携帯電話機は、通常の音声通話モードの他にアプリケーション実行モードをとって動作することが可能となっている。アプリケーション実行モードでは、ユーザが任意にインストールしたアプリケーションソフトを立ち上げて実行することができる。
図1は本発明の実施の一形態を示すデバイス制御装置のブロック図である。同図において5は説明の便宜上1つしか図示しないが各種のデバイスであり、6はデバイス5を制御するデバイス制御装置、7はデバイス5宛にメッセージを送信する実行オブジェクトである。デバイス制御装置6や実行オブジェクト7は、たとえば図3に示したCPU101やメモリ102などのハードウエア資源と、OSやOSに実装されたデバイスドライバソフト、OSにインストールされたアプリケーションソフトなどのソフトウエア資源との協調動作により実現されるものである。
図1に示すようにOS61は、アプリケーション71を実行するためにプロセスを作成する。アプリケーション71は高レベルAPI72をリンクしており、実行時にダウンロードされる外部の実行オブジェクト73もリンクしている。高レベルAPI72はさらにシステムコール74をリンクしている。システムコール74はカーネルのサービスを呼び出すための標準関数であるためアプリケーション71のプロセスにリンクされて存在する。アプリケーション71と高レベルAPI72と実行オブジェクト73とシステムコール74はアプリケーション71のプロセスインスタンスとして実行オブジェクト7を形成する。
ここで実行オブジェクトとは、実行可能なソフトウエアのひとかたまりのことである。実行オブジェクトは、ユーザやソフトウエアメーカーが作成したアプリケーションや、OSが提供するライブラリやDLLや、ネットワークやメディアを通じて外部から入手するオブジェクトなどがある。例えばアプリケーション、実行時に動的にリンクされるオブジェクトやDLL、インタープリタ上で実行されるプログラムやスクリプト、あるいは仮想マシン上で実行されるバイトコードのオブジェクト、などが実行オブジェクトである。さらにこれらをリンクしたユーザプロセスや、カーネルプロセスなども実行オブジェクトとみなすことができる。
アプリケーション71が高レベルAPI72を呼び出すと、高レベルAPI72はデバイスドライバ62に宛てた適切なメッセージを引数にしてシステムコール74を呼び出す。システムコール74はopen()、close()、read()、write()、ioctl()といった関数群であり、メッセージはioctl()によって、OS61へ送られる。OS(カーネル)61には評価部611が存在しており、メッセージをデバイスドライバ62に送る前に実行オブジェクト7を評価する。
評価はまず実行オブジェクト7がユーザプロセスに属するかOS61のカーネルプロセスに属するかを判別する。その上で既知のプロセスであるか未知のプロセスであるかを調査する。プロセスの動作モードを判別することによってこの調査の範囲を絞ることができるのである。
既知のカーネルプロセスであった場合はその評価値を事前に定めておくことができるので、直ちに評価を決定できる。評価値は符号なしの16ビットで表され、上位の8ビットがクラスを表し、下位8ビットがクラス内での詳細な評価値を表している。クラスとして4種類を定義してあり、「既知のオブジェクト」「未知のデジタル署名付きのオブジェクト」「未知の安全なオブジェクト」「その他のオブジェクト」に分類する。評価値の上位8ビットにおいて、この4種類以外の値はリザーブされ無効である。
未知のプロセスであった場合、評価部611は、そのプロセスインスタンスがその時点でリンクしている実行オブジェクトを全て調査し、各実行オブジェクトの評価値の最低値を実行オブジェクト7の評価値とする。ここではアプリケーション71と高レベルAPI72と動的にリンクされた実行オブジェクト73とシステムコール74がリンクされているため、これらの評価値を求めてその最低値を求める。高レベルAPI72とシステムコール74はOS61が提供したDLLであるから既知で信頼でき、評価値は高くクラス1に属する値とする。クラス1は既知のオブジェクトを意味する。既知のオブジェクトとはOS61にバンドルされた実行オブジェクトでOS61がその信頼性を保証する。
アプリケーション71は未知であるから通常は評価値が低いが、信頼性を増すために作成者や提供者の署名が付加されている場合があり、その場合は評価値をやや高くし、クラス2に属する値とすることができる。クラス2は未知のデジタル署名付きのオブジェクトを意味する。未知のデジタル署名付きのオブジェクトとはOS61にとっては未知であるが、デジタル署名が施されておりOS61がこの署名を検証して信頼性が確認できた実行オブジェクトである。
ダウンロードして動的にリンクした実行オブジェクト73は危険とみなされ、評価値は低くクラス4に属する値とする。クラス4は改竄された実行オブジェクトか一定の判定基準によって危険と判定された実行オブジェクトを意味する。クラス4のオブジェクトは、デジタル署名を検証した際に改竄があったものや、判定基準に基づいた判定の結果危険とされる実行オブジェクトである。ちなみにクラス3は未知の安全なオブジェクトであり、デジタル署名が無く、一定の判定基準に基づいて安全と判定される実行オブジェクトである。
評価部611は、実行オブジェクト7の評価値として実行オブジェクト73の評価値を適用する。ネットワークから必要なオブジェクトをダウンロードして実行を進めるネットワーク志向の実行オブジェクトの場合、実際に呼び出されるまでリンクを行わないことがある。このような実行環境においては、時々刻々とリンクしているオブジェクトが変化する。このような実行オブジェクトはリンクしている実行オブジェクトの評価値を全て調査することは不可能であるから、クラス4に属する低い評価値を付けることにする。
付加部612は、メッセージに指標を付加したうえでデバイスドライバ62へ送る。デバイスドライバ62は、メッセージに付加した指標に応じて処理を選択する選択部621と、メッセージごとにデバイス5に対する操作を実行する操作部612とを有している。この操作部622は、予め設定された処理の手順を記憶する領域6221を参照するようになっている。この領域は、たとえばメッセージが4種類であるとすると、各メッセージに対応して4種類I〜IVの処理区分が設定されている。各処理区分には、評価値に対応して複数の処理の手順6221−1,6221−2…を格納している。
選択部621は、指標を調べ、それに応じて処理の内容を変化させる。指標において、実行オブジェクト7がカーネルプロセスであることを通知しており、かつ既知のプロセスであればデバイスドライバ62は広範囲な機能を提供する。カーネルプロセスであっても未知の場合は機能を制限する。例えばあるデバイスドライバが別のデバイスドライバを呼び出す場合は未知のカーネルプロセスとなる。指標がユーザプロセスであることを通知していている場合、さらにその評価値の高低に応じてデバイス5に対する操作の内容を変化させ、提供する機能を制限する。例えばあるメッセージに対するデバイス5の操作を一切省略してエラーコードをリターンすることによって、実行オブジェクト7がデバイス5を制御することを防ぐことができる。
図4は本発明の一実施の形態におけるOSのメインフローを示すフローチャートである。図1,4を用いて説明すると、まず実行オブジェクト7がデバイスドライバ62に宛てたメッセージをOS61に送る処理が実行される(S101)。これはOS61がアプリケーションに対して提供しているioctl()システムコールを呼ぶことによって実現される。ioctl()システムコールはオープンしたデバイスのディスクリプタ(descriptor)と、メッセージと、入力データへのポインタと、出力データへのポインタを引数にとり、成功すると「0」をリターンし、エラーがあると「−1」をリターンする関数である。なおデバイス5は図4のメインフローを実行する前にオープン済みで、有効なディスクリプタが得られているものとする。ioctl()の中ではOS61のカーネルのサービスを呼び出し、ステップS102に進む。
ステップS102では、OS61内の評価部611により、メッセージを発生させた実行オブジェクト7を評価して指標を作成する。OS61は、その時点で実行中のプロセスを調べ、それがカーネルモードで実行されているか、ユーザモードで実行されているかを判別する。さらに実行プロセスが既知のカーネルプロセスであるかを調べ、既知のプロセスであれば既に定義済みの指標を参照する。未知のプロセスであった場合は、それに対する指標を作成する。その際デジタル署名が付加されているか、さらにその署名が正しくて改竄がないかを判別する。未知でデジタル署名が無いプロセスについては、公開されている一定の判定基準に従って判定を行う。この判定によって安全な実行オブジェクトとその他の実行オブジェクトに分類する。指標には、プロセスの実行モードを示すフラグ、評価値、プロセスの中でその評価値を決定している実行オブジェクトの識別情報と信頼性情報などを格納する。
次にステップS103に進む。ステップS103では、OS61がメッセージと指標をデバイスドライバ62に送る処理を行う。OS61はデバイスドライバ62を登録しておく管理テーブルを持ち、ディスクリプタで指定されたデバイス5に応じたデバイスドライバ62を呼び出すことができる。
次にステップS104に進む。ステップS104では、デバイスドライバ62がメッセージと指標に基づいてデバイス5に対する操作の内容を変えて実行する。図5は、デバイスドライバにおける処理フローを示すフローチャートである。図1,5を用いて説明するとデバイスドライバ62はまず、引数に与えられたメッセージに応じて処理を選択する(S201)。引数のメッセージがメッセージ1ならば第1の処理(S202−1)を実行し、メッセージ2ならば第2の処理(S202−2)を実行し、メッセージ3ならば第3の処理(S202−3)を実行し、メッセージ4ならば第4の処理(S202−4)を実行する。メッセージと処理の数は、デバイスを制御するのに必要なだけ存在してよい。
第1ないし第4の処理(S202−1〜202−4)では、詳細は後述するが、指標に基づいて処理の内容を変えて実行することによりドライバ5を操作する。第1ないし第4の処理(S202−1〜S202−4)がリターンするとステップS203を実行する。ステップS203では、第1ないし第4の処理(S202−1〜S202−4)の戻り値を図5の処理の結果として戻り値にセットする。戻り値は、エラーがなければ「0」で、エラーがあれば「−1」となる。
図6は、第1ないし第4の処理におけるフローの具体例を示すフローチャートである。図6を用いて説明するとまず、指標に含まれている評価値のクラスを参照し、分岐処理を行う(S301)。評価値の上位8ビットはクラスを表しているから容易にクラスを判別することができる。ここでは評価値によって更に4種類の処理に分岐する例を示す。すなわち、評価値のクラスがクラス1ならば第1の処理(S302−1)を、クラス2ならば第2の処理(S302−2)を、クラス3ならば第3の処理(S302−3)を、クラス4ならば第4の処理(S302−4)を実行する。
クラス1は既知のオブジェクトであるから、第1の処理(S302−1)ではいずれのオブジェクトであるかをさらに指標の中から取り出して、処理内容を分岐させることができる。クラス2は未知のデジタル署名付きのオブジェクトであるから、第2の処理(S302−2)では、その署名をした者がデバイスメーカー自身の場合にだけデバイスに対する書き込みを許し、その他の信頼する関連会社であった場合はデバイスの状態の読み出しだけを許し、その他の団体であった場合は公開してもよい限定された状態の読み出しだけを許可する。クラス3は未知の安全なオブジェクトであるので、第3の処理(S302−3)ではそのオブジェクトの出所が不明であるが、一定の判定基準によって安全と判定されているので、公開してもよい限定された状態の読み出しだけを許可する。
クラス4は改竄されたか、あるいは危険と判定された実行オブジェクトであるから、第4の処理(S302−4)ではほとんどの機能を拒否する。場合によっては、危険な実行オブジェクトにさらされていることをデバイス5に通知して、防衛体制に遷移させてもよい。デバイス5が防衛体制に遷移した場合、高額な料金を発生させる特定のサービスに対するアクセスを禁止したり、ユーザの個人情報の読み出しを禁止するなどの措置が可能である。
かかる構成により、あるメッセージに対する操作の実際の実行内容を、指標に基づいてデバイスドライバ62の判断で変えることができることになる。このためデバイスを提供するデバイスメーカーがOSメーカーに依存することなく、独自の基準で提供する機能を制限したり、機能の提供を拒否したりできるようになるのである。
図1を用いて説明すると、上述の実施の形態では、デバイスドライバ62に送るメッセージと指標が本当に評価部611とOS61が作成したものであるかを確認していない。このため悪意のアプリケーションがデバイスドライバ62をDLLとして直接リンクして操作するおそれがある。しかし最初にOS61のカーネルがデバイスドライバ62をリンクするので、2回目以降にリンクした場合のデバイスドライバインスタンスは、自分が2個目のインスタンスであることを認識して動作を拒否することができる。
さらに安全性を重視するならば、OS61がメッセージと指標をデバイスドライバ62に送るステップS103(図4参照)において、それらが評価部611とOS61によって作成され改竄されていないことを証明するデジタル署名を付加し、デバイスドライバ62がその検証を行うこともできる。この場合、OS61は連番あるいは擬似乱数をメッセージと指標に付加し、これら三つのデータのハッシュを作成し、これをOS61の持つ秘密鍵で暗号化してデバイスドライバ62に送る(認証付加手段)。デバイスドライバは受けた三つのデータのハッシュを作成し、OS61の公開鍵を用いて暗号を復号し、ハッシュと一致することを確かめれば改竄がなかったことを確認できる(判定手段)。もし改竄されたメッセージを受け取ったらデバイスドライバ62は、デバイスを不正に操作する攻撃にさらされている可能性が極めて高いとして防御モードに移行する(防御手段)。この防御モードでは、当該実行オブジェクトからのメッセージは一切無視する他、自己に設定されているセキュリティレベルを高める形態をとることができ、さらにOS61に通知して防衛を促す形態等も考えられる。なおOS61において、秘密鍵をさらに別の鍵で暗号化して保管する形態をとれば、悪意のアプリケーションに秘密鍵を盗まれる危険性を抑えることができる。
以上、この発明の実施形態を詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。たとえば組み込み機器においてはユーザモードとカーネルモードといったメモリ保護を備えないOSがあるが、そうした場合でも本発明は適用可能である。さらにマルチプロセス機能を備えないOSもあるが、こうした場合でも、アプリケーションを実行する単位としての実行オブジェクトはOSが管理しているので、その管理手法に応じて実行オブジェクト内のコンポーネントオブジェクト群を調べることにより、本発明を有効に適用できる。
また、本発明に係るプログラムは、コンピュータ読み取り可能な記録媒体に記録されて頒布されることができ、機能の一部を実現する形態で頒布されるものであっても良い。たとえばコンピュータシステムにすでに記録されている既存システムのプログラムとの組み合わせで所定の機能を実現できるもの、いわゆる差分プログラムで頒布される形態をとることも可能である。
また上記のコンピュータ読み取り可能な記録媒体には、可搬型の磁気ディスクや光磁気ディスク等の記憶媒体等以外にも、ハードディスク等の記憶装置その他不揮発性の記憶装置を含む。さらにインターネットその他のネットワーク等、任意の伝送媒体を介して他のコンピュータシステムから提供される形態でも良い。この場合、「コンピュータ読み取り可能な記録媒体」には、ネットワーク上のホストやクライアントとなるコンピュータシステム内部の揮発性メモリのように、伝送媒体において一定時間プログラムを保持しているものも含む。
本発明によるデバイス制御装置のブロック図である。 従来のデバイス制御装置のブロック図である。 本発明の一実施形態である携帯電話機の回路構成例を示すブロック図である。 本発明の一実施の形態におけるOSのメインフローを示すフローチャートである。 デバイスドライバにおける処理フローを示すフローチャートである。 図5の第1ないし第4の処理におけるフローの具体例を示すフローチャートである。
符号の説明
101:CPU 102:メモリ 103:タイマ 201:内部バス 301:アンテナ 302:無線部 303:DSP 304:D/Aコンバータ 305:スピーカ 306:A/Dコンバータ 307:マイクロホン 401:キー操作部 402:画面表示部 5:デバイス 6:デバイス制御装置 61:OS(中継手段) 611:評価部 612:付加部(指標付加手段) 62:デバイスドライバ(操作手段) 621:選択部(選択手段) 622:操作部 6221:処理の手順を記憶する領域(記憶手段) 6221−1,6221−2…:処理の手順(操作手順) 7:実行オブジェクト 71:アプリケーション 72:高レベルAPI 73:外部の実行オブジェクト 74:システムコール

Claims (5)

  1. 実行オブジェクトから受信したメッセージを操作手段に送信する中継手段と、該メッセージを受信すると該メッセージに対応して予め設定されたデバイスを制御する処理手順に従ってデバイスを制御する制御手段とを備えた装置であって、
    前記中継手段は、
    前記実行オブジェクトから前記メッセージを受信すると、当該実行オブジェクトの信頼性を示す指標を作成する評価手段と、
    受信した前記メッセージに前記指標を付加する指標付加手段とを有し、
    前記制御手段は、
    前記指標と対応して前記デバイスを制御する処理手順を複数記憶する記憶手段を有し、
    前記メッセージを受信すると、前記記憶手段に記憶された複数のデバイスを制御する処理手順の中から、当該メッセージに付加された指標に対応するデバイスを制御する処理手順を実行するように制御すること、
    を特徴とするデバイス制御装置。
  2. 前記中継手段は、操作手段に送信するメッセージに認証を付加する認証付加手段を有し、
    前記制御手段は、
    中継手段からメッセージを受け取ると前記認証の正当性を判定する判定手段と、
    認証の正当性が成立しないときは当該メッセージを送信した実行オブジェクトに対する防御を行うことを有すること
    を特徴とする請求項1記載のデバイス制御装置。
  3. 実行オブジェクトから受信したメッセージを中継手段により操作手段に送信し、該操作手段はメッセージを受信すると該メッセージに対応して予め設定されたデバイスを制御する操作手順に従ってデバイスを操作するデバイス制御装置を制御する方法であって、
    前記中継手段は、
    実行オブジェクトからメッセージを受信すると、当該実行オブジェクトの信頼性を示す指標を取得するステップと、
    受信したメッセージに前記指標を付加して、宛先の操作手段に送信するメッセージとするステップとを実行し、
    前記制御手段は、
    メッセージを受信すると、実行オブジェクトの信頼性に対応して予め設定された複数のデバイスを制御する操作手順の中から、当該メッセージに付加された指標に対応するデバイスを制御する操作手順を選択するステップとを実行すること
    を特徴とするデバイス制御方法。
  4. デバイス操作に関するメッセージを実行オブジェクトから受信するステップと、
    該メッセージを送信した実行オブジェクトの信頼性を示す指標を取得するステップと、
    前記指標に対応するデバイスを制御させるために、前記受信したメッセージに前記指標を付加し、対応するデバイス側に送信するステップと
    をコンピュータに実行させることを特徴とするプログラム。
  5. デバイス操作に関するメッセージを送信した実行オブジェクトの信頼性を示す指標を該メッセージに付加したものを受信するステップと、
    実行オブジェクトの信頼性に対応して複数設定されたデバイスを制御する操作手順の中から、前記メッセージに付加された指標に対応するデバイスを制御する操作手順を選択するステップと、
    選択された操作手順に従ってデバイスを操作するステップと
    をコンピュータに実行させることを特徴とするプログラム。
JP2005149746A 2005-05-23 2005-05-23 デバイス制御装置、デバイス制御方法およびプログラム Expired - Fee Related JP4647392B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005149746A JP4647392B2 (ja) 2005-05-23 2005-05-23 デバイス制御装置、デバイス制御方法およびプログラム
KR1020060044776A KR100790602B1 (ko) 2005-05-23 2006-05-18 디바이스 제어기, 디바이스 제어 방법 및 디바이스 제어프로그램이 저장된 기록 매체
US11/439,499 US8117451B2 (en) 2005-05-23 2006-05-22 Device controller, method for controlling a device, and program therefor
CN2006100848694A CN1869927B (zh) 2005-05-23 2006-05-23 设备控制器、控制设备的方法及其程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005149746A JP4647392B2 (ja) 2005-05-23 2005-05-23 デバイス制御装置、デバイス制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2006330835A JP2006330835A (ja) 2006-12-07
JP4647392B2 true JP4647392B2 (ja) 2011-03-09

Family

ID=37443595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005149746A Expired - Fee Related JP4647392B2 (ja) 2005-05-23 2005-05-23 デバイス制御装置、デバイス制御方法およびプログラム

Country Status (4)

Country Link
US (1) US8117451B2 (ja)
JP (1) JP4647392B2 (ja)
KR (1) KR100790602B1 (ja)
CN (1) CN1869927B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607043B2 (en) * 2006-01-04 2009-10-20 International Business Machines Corporation Analysis of mutually exclusive conflicts among redundant devices
US8918905B2 (en) * 2006-06-06 2014-12-23 Future Dial, Inc. Method and system to provide secure exchange of data between mobile phone and computer system
US8875271B2 (en) * 2006-12-08 2014-10-28 Microsoft Corporation Executing unsigned content and securing access in a closed system
JP4889575B2 (ja) * 2007-06-11 2012-03-07 日本電信電話株式会社 アクセス許可設定方法、アクセス許可設定装置およびアクセス許可設定プログラム
US20090083766A1 (en) * 2007-09-26 2009-03-26 Towson University Systems for performing bare machine computer applications
US20110016477A1 (en) * 2009-07-14 2011-01-20 Microsoft Corporation Pre-calculation and caching of dependencies
JP2012003679A (ja) * 2010-06-21 2012-01-05 Kyocera Mita Corp 画像形成装置用追加アプリケーションのセキュリティ確保方法、画像形成システム及び画像形成装置
US8590060B2 (en) * 2010-10-08 2013-11-19 Tandberg Data Holdings S.A.R.L. Virtual removable disk device for removable storage media
CN102902910B (zh) * 2011-07-28 2013-10-23 腾讯科技(深圳)有限公司 驱动保护方法及系统
TWI651070B (zh) 2013-12-06 2019-02-21 瑞士商拜耳保健消費品股份有限公司 用於施配可流動材料之施配器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01233543A (ja) * 1988-01-28 1989-09-19 Internatl Business Mach Corp <Ibm> 端末と信頼のおける計算ベースのシェル部分との間に信頼のおける経路を形成する方法
JP2001243079A (ja) * 2000-03-02 2001-09-07 Omron Corp 情報処理システム
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2002247548A (ja) * 2001-02-15 2002-08-30 Nec Access Technica Ltd 映像表示許可方式、コンピュータに映像表示を行わせるためのプログラム
JP2003034061A (ja) * 2001-07-25 2003-02-04 Sharp Corp 画像処理システム
JP2004185531A (ja) * 2002-12-06 2004-07-02 Hitachi Ltd データ通信可能な情報処理装置
JP2004318720A (ja) * 2003-04-18 2004-11-11 Aplix Corp アクセス制限方法およびアクセス制限プログラム
JP2005115487A (ja) * 2003-10-03 2005-04-28 Sharp Corp 記録再生装置及びファイルアクセス方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2607538B2 (ja) 1987-08-28 1997-05-07 株式会社日立製作所 加算回路
US5815707A (en) * 1995-10-19 1998-09-29 Hewlett-Packard Company Dynamic function replacement for streams framework
US5893926A (en) * 1995-12-08 1999-04-13 International Business Machines Corporation Data buffering technique in computer system
US7341177B2 (en) * 1996-11-27 2008-03-11 Diebold, Incorporated Automated transaction machine system and method
US5968136A (en) * 1997-06-05 1999-10-19 Sun Microsystems, Inc. Apparatus and method for secure device addressing
FR2785119B1 (fr) 1998-10-27 2000-12-08 Gemplus Card Int Procede et systeme de gestion du risque dans un reseau de telephonie mobile
DE19918896A1 (de) * 1999-04-26 2000-11-02 Mueschenborn Hans Joachim Logisches Netzwerksystem
FR2802674B1 (fr) * 1999-12-21 2004-08-27 Bull Sa Dispositif et procede de controle d'acces a des ressources
US20010034839A1 (en) * 1999-12-24 2001-10-25 Guenter Karjoth Method and apparatus for secure transmission of data and applications
US7624439B2 (en) * 2001-10-29 2009-11-24 Seventh Knight Authenticating resource requests in a computer system
US7398389B2 (en) * 2001-12-20 2008-07-08 Coretrace Corporation Kernel-based network security infrastructure
US20060031192A1 (en) * 2002-08-06 2006-02-09 Blackwell Robin J Network establishment and management protocol
ATE470286T1 (de) * 2002-09-12 2010-06-15 Software Ag Validierung und erzeugung einer digitalen unterschrift
KR20050115317A (ko) * 2003-03-27 2005-12-07 코닌클리케 필립스 일렉트로닉스 엔.브이. 원격 제어를 위한 디바이스, 제어기, 방법 및 신호
US8136155B2 (en) * 2003-04-01 2012-03-13 Check Point Software Technologies, Inc. Security system with methodology for interprocess communication control
KR100516504B1 (ko) * 2003-09-30 2005-09-26 (주)잉카엔트웍스 네트워크를 통하여 개인 휴대 단말기와 데이터 동기화를수행하기 위한 방법 및 그 시스템
US20050085222A1 (en) * 2003-10-17 2005-04-21 Nokia Corporation Software updating process for mobile devices
US20050138211A1 (en) * 2003-12-19 2005-06-23 Mobile Action Technology Inc. Data synchronization system with data security and proxy capabilities
US7810103B2 (en) * 2004-04-30 2010-10-05 Microsoft Corporation System and method for validating communication specification conformance between a device driver and a hardware device
US7346808B2 (en) * 2004-06-09 2008-03-18 Hewlett-Packard Development Company, L.P. Diagnostic method, system, and program that isolates and resolves partnership problems between a portable device and a host computer
US7600232B2 (en) * 2004-12-07 2009-10-06 Microsoft Corporation Inter-process communications employing bi-directional message conduits
US7743255B2 (en) * 2005-06-17 2010-06-22 Tanmoy Dutta Trust model for a database management system supporting multiple authorization domains
US8918905B2 (en) * 2006-06-06 2014-12-23 Future Dial, Inc. Method and system to provide secure exchange of data between mobile phone and computer system
US20080184123A1 (en) * 2007-01-26 2008-07-31 Shuqair Michel A D System And Method For Providing A Secure Connection Between A Computer And A Mobile Device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01233543A (ja) * 1988-01-28 1989-09-19 Internatl Business Mach Corp <Ibm> 端末と信頼のおける計算ベースのシェル部分との間に信頼のおける経路を形成する方法
JP2001243079A (ja) * 2000-03-02 2001-09-07 Omron Corp 情報処理システム
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2002247548A (ja) * 2001-02-15 2002-08-30 Nec Access Technica Ltd 映像表示許可方式、コンピュータに映像表示を行わせるためのプログラム
JP2003034061A (ja) * 2001-07-25 2003-02-04 Sharp Corp 画像処理システム
JP2004185531A (ja) * 2002-12-06 2004-07-02 Hitachi Ltd データ通信可能な情報処理装置
JP2004318720A (ja) * 2003-04-18 2004-11-11 Aplix Corp アクセス制限方法およびアクセス制限プログラム
JP2005115487A (ja) * 2003-10-03 2005-04-28 Sharp Corp 記録再生装置及びファイルアクセス方法

Also Published As

Publication number Publication date
US20060265757A1 (en) 2006-11-23
KR20060121106A (ko) 2006-11-28
CN1869927A (zh) 2006-11-29
KR100790602B1 (ko) 2008-01-02
CN1869927B (zh) 2012-04-25
JP2006330835A (ja) 2006-12-07
US8117451B2 (en) 2012-02-14

Similar Documents

Publication Publication Date Title
JP4647392B2 (ja) デバイス制御装置、デバイス制御方法およびプログラム
EP2250604B1 (en) System and method of authorizing execution of software code based on at least one installed profile
KR100607423B1 (ko) 사용허가를 이용한 장치자원의 애플리케이션으로의 할당
RU2326509C2 (ru) Способ хранения и доступа к данным в мобильном устройстве и модуль пользователя
US9208339B1 (en) Verifying Applications in Virtual Environments Using a Trusted Security Zone
US20090254753A1 (en) System and method of authorizing execution of software code based on accessible entitlements
US20090247124A1 (en) Provisioning mobile devices based on a carrier profile
US20090249064A1 (en) System and method of authorizing execution of software code based on a trusted cache
AU2009222009B2 (en) System and method of authorizing execution of software code in a device based on entitlements granted to a carrier
WO2009111401A1 (en) Managing code entitlements for software developers in secure operating environments
US7644444B2 (en) Communication device, program and recording media
US7818815B2 (en) Communication device
JP2003337630A (ja) 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
Sohr et al. Software security aspects of Java-based mobile phones
Muthukumaran et al. Protecting the integrity of trusted applications in mobile phone systems
JP5305864B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101108

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

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

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

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4647392

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