プログラム、制限方法及びコンピュータ
【課題】不必要な接続デバイスの利用を防止する。
【解決手段】許可リスト設定手段1cにより、接続を許可する接続デバイスを規定する接続許可リスト1aが設定され、リスト記憶手段1bに格納される。接続制限手段1dでは、接続ポート2a、2b、2cを介して接続デバイスが接続されると、その接続デバイスからデバイス情報を取り出し、デバイス情報と接続許可リスト1aとを照合し、この接続デバイスが接続許可デバイスに相当するがどうかを判定する。そして、接続デバイスが接続許可デバイスに相当する場合は接続を許可し、相当しない場合は接続を禁止する。
【解決手段】許可リスト設定手段1cにより、接続を許可する接続デバイスを規定する接続許可リスト1aが設定され、リスト記憶手段1bに格納される。接続制限手段1dでは、接続ポート2a、2b、2cを介して接続デバイスが接続されると、その接続デバイスからデバイス情報を取り出し、デバイス情報と接続許可リスト1aとを照合し、この接続デバイスが接続許可デバイスに相当するがどうかを判定する。そして、接続デバイスが接続許可デバイスに相当する場合は接続を許可し、相当しない場合は接続を禁止する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はプログラム、制限方法及びコンピュータに関し、特にコンピュータに接続して利用されるデバイスの利用制限を行うプログラム、制限方法及びコンピュータに関する。
【背景技術】
【0002】
オフィスや家庭で使用されるコンピュータ、たとえば、パーソナルコンピュータ(以下、PCとする)には、周辺機器や拡張カード(以下、総称してデバイスとする)などが接続された場合に、デバイスドライバの組み込みと設定を自動的に行う機能が組み込まれている。たとえば、キーボードやマウス、外部記憶装置など、さまざまな周辺デバイスと簡単に接続するために、USB(Universal Serial Bus)に代表される接続デバイスが装備されている。
【0003】
USBデバイスには、PCに接続時、基本ソフトであるOS(Operating System)からの要求に応じてデバイス種別などの情報を送信する機能が組み込まれている。
図11は、従来のUSBデバイスのデバイス情報読み出し手順を示したフローチャートである。USBデバイスが接続ポートに接続されたことがOSに通知されると、OSは、接続されたUSBデバイスのデバイス情報を要求し、ターゲットのUSBデバイス情報を抽出する(ステップS91)。そして、抽出したUSBデバイス情報をOSに返す(ステップS92)。こうして、USBデバイス情報を取得したOSは、接続デバイスのデバイス種類などを認識し、この接続デバイスが利用できるように処理を行う。このような仕組みにより、USBに新たに接続されたデバイスがすぐに利用できるようになっている。
【0004】
しかしながら、このように周辺デバイスを容易に接続できるようになると、PCからの情報の漏洩、もしくはPCへの不必要な情報の持ち込みが発生するなど、セキュリティ上の問題が生じる。
【0005】
そこで、周辺デバイスのカテゴリに応じて利用を制限する手法が提案されている。たとえば、「ストレージ」というカテゴリを設定すれば、ストレージ・デバイスを接続して利用することができなくなる。
【0006】
また、コンピュータに接続端末の製造番号を登録しておき、接続許可を要求している接続端末の製造番号と登録している製造番号を照合し、一致する場合のみ接続を許可する接続照合システムが提案されている(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−6166号公報(段落番号〔0007〕〜〔0019〕、図1)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、従来のデバイス制限では、詳細な利用制限を設定することができない、もしくは、煩雑な設定作業が必要になるなど使い勝手が悪く、不必要なデバイスの利用を防止できないという問題点があった。
【0009】
カテゴリで利用制限をかける場合、利用制限の判定処理は、アプリケーションプログラムに近いレベル、すなわち、デバイスに関する情報が抽象化されて細かい個別情報を知ることのできない段階で行われるため、個別のデバイスに対する利用制限ができないという問題点がある。たとえば、「ストレージ」というカテゴリで利用制限をかけると、すべてのストレージの接続ができなくなってしまう。また、既存のカテゴリにしか利用制限をかけることができないという問題点もある。
【0010】
一方、製造番号を照合して接続可否を判断する接続照合システムでは、許可する端末ごとに製造番号をすべて登録しなければならず、システムが大規模になると登録台数も増加し、登録作業が煩雑になるという問題点があり、登録ミスも発生しやすい。さらに、接続可否の判定しか行われず、読み出しは許可するが書き込みは許可しないなど、細かい対応ができない。
【0011】
このように、従来の接続デバイス制限では、既存のカテゴリごとの利用制限、もしくは、個々のデバイスの接続制限といった対応しかできず、使用者、メーカー、製品、利用する接続デバイス、利用形態、というようなさまざまな設定で利用制限を行うことができなかった。たとえば、「A氏に、X社製のYという製品名のZという個体識別番号を持つUSBメモリのみを利用可能とし、他のUSBメモリ及びUSBデバイスは利用禁止とする」というような運用には適応できなかった。このため、所望の運用ができない場合や、設定漏れやミスなどが発生する可能性が高く、結果として不必要な利用を防止できないというセキュリティ上の問題が生じた。
【0012】
本発明はこのような点に鑑みてなされたものであり、コンピュータに接続して利用可能なデバイスを、デバイス種類や個体指定、ユーザ指定など任意の設定条件で制限することにより、不必要なデバイスの利用を防止し、セキュリティを高めることが可能なプログラム、制限方法及びコンピュータを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明では上記課題を解決するために、コンピュータに接続して利用されるデバイスの利用制限を行うプログラムが提供される。本発明に係るプログラムは、コンピュータに、コンピュータに接続して利用することを許容するデバイスの特定を、複数の特定方法のうち、いずれの特定方法によるものでも許容する。複数の特定方法は、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含み、接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得させる。デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、デバイス情報に含まれるデバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定する。プロダクトID又はベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、デバイス情報に含まれるプロダクトID又はベンダーIDを用いて該デバイスの利用を制限するか否かを判定させる。
【0014】
また、上記課題を解決するために、上記の処理手順を実行する制限方法及びコンピュータが提供される。
【発明の効果】
【0015】
本発明では、デバイスが接続ポートに接続されると、デバイスからデバイス情報を取り出し、このデバイスが、このコンピュータに接続して利用することが許容されるデバイスに相当するかどうかを判定し、判定結果に応じて、接続されたデバイスの利用制限を実行する。このため、管理者は利用者が利用できるデバイスを運用状況に合わせて所望の条件で制限することが可能となる。また、接続許可リストに接続を許可するデバイスを規定するために必要な特定事項を設定しておけば、不必要なデバイスの利用を防止し、セキュリティを高めることが可能となる。
【図面の簡単な説明】
【0016】
【図1】実施の形態に適用される発明の概念図である。
【図2】接続許可リストの一例を示す構成図である。
【図3】本実施の形態の接続デバイス制限装置が組み込まれるPCのハードウェア構成例を示すブロック図である。
【図4】本実施の形態のUSBインタフェースの構成例を示すブロック図である。
【図5】USB_DEVICE_DESCRIPTORの構成を示している。
【図6】本実施の形態のUSBデバイスの接続制限処理手順を示したフローチャートである。
【図7】本実施の形態のユーザアカウントごとに接続許可リストを有する接続デバイス制限装置の構成図である。
【図8】本実施の形態の設定ツール画面の一例を示した図である。
【図9】本実施の形態の接続を許可するデバイスの登録画面の一例を示した図である。
【図10】本実施の形態の追加USB画面の一例を示した図である。
【図11】従来のUSBデバイスのデバイス情報読み出し手順を示したフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
【0018】
本発明に係る接続デバイス制限装置1は、コンピュータ内部のOS/ドライバ3などのソフトウェア群と、周辺機器である接続デバイス(以下、デバイスとする)を接続するための接続ポート2a、2b、2cとの間の情報が流れるルート上に位置し、接続ポート2a、2b、2cを介して接続されるデバイスとOS/ドライバ3との間のデータ交換を制御する。接続デバイス制限装置1は、接続許可デバイス(以下、許可デバイスとする)を規定する接続許可リスト1aを格納するリスト記憶手段1b、接続許可リスト1aを設定する許可リスト設定手段1c、接続制限を行う接続制限手段1d及び接続ポート2a、2b、2cを介したデータ転送を制御するインタフェース1eを有する。
【0019】
リスト記憶手段1bは、接続許可リスト1aを記憶する記憶手段で、許可リスト設定手段1c及び接続制限手段1dからアクセス可能である。接続許可リスト1aには、接続を許可する許可デバイスを規定する情報、すなわち、許可デバイスを特定するための情報が含まれている。詳細は後述するが、この特定するための情報の情報量は、利用制限の運用に応じて可変とし、許可デバイスを特定するための項目(以下、特定事項とする)の項目数は接続許可対象に応じて決まる。たとえば、特定項目として、ベンダー名、プロダクト名がある場合、特定事項がベンダー名であれば、該当するベンダー名のデバイスの接続が許可され、特定事項がベンダー名とプロダクト名であれば、さらにプロダクト名が一致したものが接続許可される。また、HID(Human Input Device)というようなデバイス種別ごとに接続を許可するような設定も可能とする。
【0020】
許可リスト設定手段1cは、接続許可リスト1aに登録される情報を取得し、接続許可リスト1aを設定してリスト記憶手段1bに格納する。なお、接続許可リスト1aを作成するため利用者に登録を促す設定アプリケーションは、許可リスト設定手段1c外部に格納しておき、許可リスト設定手段1cでは作成された接続許可リスト1aを入力してリスト記憶手段1bに格納する処理を行うとする構成をとることもできる。
【0021】
接続制限手段1dは、接続ポート2a、2b、2cにデバイスが接続されたことをインタフェース1eより取得すると、そのデバイスを特定するためのデバイス情報をインタフェース1e経由で取り出す(ステップS1)。そして、取り出したデバイス情報を用いて、接続されたデバイスと接続許可リスト1aの許可デバイスとを照合する(ステップS2)。デバイスが接続許可リスト1aの許可デバイスに相当する場合、このデバイスの接続を許可し、相当しない場合には接続を禁止する(ステップS3)。
【0022】
インタフェース1eは、接続制限手段1dと接続ポート2a、2b、2cに接続するデバイスとの間のデータ交換を制御する。すなわち、デバイスから取得した情報は接続制限手段1dへ伝え、接続制限手段1dから取得した情報はデバイスに伝達する。
【0023】
なお、上記の説明の接続デバイス制限装置1の各処理手段は、コンピュータが接続デバイス制限プログラムを実行することにより実現することができる。また、ハードウェアで実現することも、双方を組み合わせて実現することもできる。
【0024】
以上の構成の接続デバイス制限装置1の動作について説明する。
管理者もしくは利用者は、予め、接続を許可するデバイスを規定する情報を登録しておく。許可リスト設定手段1cは、登録情報に基づき接続許可リスト1aを設定し、リスト記憶手段1bに格納する。接続許可リスト1aには、接続を許可するデバイスを特定する情報、たとえば、メーカー名、プロダクト名、個別のシリアル番号などの他、デバイス種別全体を一括して任意に登録できる。たとえば、「メーカーXの全製品を許可する。」、「メーカーXのうち製品Yを許可する。」、「メーカーXの製品Yのうちシリアル番号Zを許可する。」という指定ができるとする。これにより、特定個体のみを限定して利用を許可することや、個体までは限定しないで利用許可にすることが任意にできる。また、個々のデバイスを指定するのではなく、その種類全体、たとえば、「HIDデバイスは、どのメーカーのものでも許可する。」という指定が可能になる。これにより、個々のHIDデバイスの許可設定を行うことなく、HIDデバイスを一括して利用可能とすることができる。
【0025】
このように接続許可リスト1aが登録され、リスト記憶手段1bに格納された後、接続ポート2a、2b、2cにデバイスが接続されたことをインタフェース1eが検出し、接続制限手段1dに通知する。接続制限手段1dは、接続されたデバイスのデバイス情報をインタフェース1e経由で取り出し、そのデバイス情報と接続許可リスト1aを照合して、このデバイスの接続を許可できるかどうかを判断する。このデバイスが許可デバイスに相当する場合には接続は許可し、相当しない場合には接続を禁止する。たとえば、接続許可リスト1aに、「メーカーXの全製品を許可する。」という登録があり、接続するデバイスのメーカーがXであった場合、接続を許可する。そして、デバイスが接続されたことをOS/ドライバ3に通知し、以降の利用を可能とする。一方、接続するデバイスのメーカーがX以外であった場合、接続を禁止する。そして、デバイスが接続されたことをOS/ドライバ3に通知しないなどにより、このデバイスが利用できないようにする。
【0026】
ここで、接続許可リストについて説明する。図2は、接続許可リストの一例を示す構成図である。
図の例の接続許可リストは、接続許可リストに設定されるデバイス数を格納するデバイス数101、各許可デバイスを規定する許可デバイス1(102)から許可デバイスn(103)及び例外を規定する例外情報104の各領域を有する。
【0027】
デバイス数101には、接続許可リストに登録される許可デバイスの総数が格納される。登録総数がわかることにより、不必要な領域との照合を省くことができ、照合処理が速くなる。
【0028】
許可デバイス1(102)から許可デバイスn(103)には、許可デバイスを規定する情報がデバイスごとに登録されている。各デバイスに登録される項目には、許可レベルに応じた強度が決められている。強度とは、どの程度、許可デバイスを特定するかを表し、強度が増すほど特定事項の項目数が増え、許可デバイスがより詳細に特定される。また、特定事項には、ベンダーID、プロダクトID、シリアル番号がある。ベンダーIDは、メーカーを識別するため、メーカー固有に割り当てられた番号である。プロダクトIDは、製品を識別するため、製品ごとに割り当てられた番号である。そして、シリアル番号は、個々の製品を特定するため、製品ごとに付与される通し番号である。図の例では、強度が低(=1)の場合、特定事項数が少なく、ベンダーIDのみが指定される。すなわち、「メーカーXの全製品を許可する。」という登録ができる。強度が中(=2)の場合、特定事項数が増え、ベンダーIDとプロダクトIDが指定される。すなわち、「メーカーXのうち製品Yを許可する。」という登録ができる。強度が高(=3)の場合、個々のデバイスを特定し、特定事項としてベンダーIDとプロダクトID及びシリアル番号が指定される。すなわち、「メーカーXの製品Yのうちシリアル番号Zを許可する。」という登録ができる。
【0029】
例外情報104は、許可デバイスとして個々のデバイスを指定するのではなく、デバイスの種別など、全体の許可もしくは禁止の指示が登録される。図の例では、例外情報として、USBハブデバイスの許可という項目と、HIDデバイスの許可という項目がある。USBハブデバイスの許可という項目では、常に許可が設定される。これは、USBハブにつながるデバイスを制御するために、USBハブは常に許可する必要があることによる。また、HIDデバイスの許可という項目では、すべてのHIDデバイスを許可しない(=0)、もしくは、すべてのHIDデバイスを許可する(=1)のいずれかが選択され、設定される。このように、種別で許可設定を行うことにより、個々の許可デバイスを登録する手間を省くことができる。たとえば、図の例で、利用されるHIDデバイスのメーカーを特定できないが、HIDデバイスなら接続しても支障がないような構成の場合、例外情報104に設定することにより、簡単にすべてのHIDデバイスを利用可能とすることができる。一方、外部に情報を流出したくないような場合、例外情報104において記憶デバイスの接続を禁止しておけば、すべての記憶デバイスの利用が不可能となる。
【0030】
以上のように、接続許可リストには、個々のデバイスの許可設定も可能であるし、種別全体を一括して許可設定もしくは禁止設定することができる。このように、接続を許可するデバイスを任意のレベルで設定することができるため、利用者もしくは管理者は、コンピュータの用途やシステム構成などに応じて、所望の許可リストを容易に作成することができる。また、接続デバイス制限装置側は、どのような強度レベルであっても同様に処理(登録された許可デバイスの特定事項とデバイスのデバイス情報との照合処理)を行うことが可能である。さらに、デバイスから取り出し可能な情報に基づいて接続許可リストの特定事項を設定すればよいので、従来のデバイスにも対応することができる。
【0031】
以下、実施の形態を、PCに適用し、USBポートに接続される接続デバイスの接続制限を行う場合を例に図面を参照して詳細に説明する。
図3は、本実施の形態の接続デバイス制限装置が組み込まれるPCのハードウェア構成例を示すブロック図である。
【0032】
PC10は、CPU(Central Processing Unit)11によって装置全体が制御されている。CPU11には、バス19を介してRAM(Random Access Memory)12、ハードディスクドライブ(HDD:Hard Disk Drive)13、グラフィック処理装置14、入力インタフェース15、通信インタフェース16、USBインタフェース17、IEEE1394インタフェース18が接続されている。
【0033】
RAM12には、CPU11に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM12には、CPU11による処理に必要な各種データが格納される。HDD13には、OSやアプリケーションのプログラムが格納される。グラフィック処理装置14には、モニタ21が接続されており、CPU11からの命令に従って画像をモニタ21の画面に表示させる。入力インタフェース15には、キーボード22aやマウス22bが接続されており、キーボード22aやマウス22bから送られてくる信号を、バス19を介してCPU11に送信する。通信インタフェース16は、ネットワーク23に接続されており、ネットワーク23を介して他装置との間でデータの送受信を行う。USBインタフェース17には、USBポートを介してUSB機器24a、24bが接続されており、USB機器24a、24bから送られてくる信号を、バス19を介してCPU11に送るとともに、CPU11からの命令に従ってUSB機器24a、24bに信号を送信する。USB機器には、たとえば、スキャナなどの入力機器や、プリンタなどの出力機器、外部メモリなど、さまざまな種類がある。なお、キーボード22aやマウス22bもUSBインタフェース17を介して接続することもできる。IEEE1394インタフェース18には、IEEE1394対応機器が接続され、他のインタフェースと同様に、IEEE1394対応機器とCPU11との間のデータ交換を制御する。
【0034】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、USBインタフェースについて詳細に説明する。図4は、本実施の形態のUSBインタフェースの構成例を示すブロック図である。図4では、図3に示したPCの他の部分は省略している。
【0035】
n台のUSBインタフェース17a、・・・、17bは、それぞれPCIバス17cを経由してPC本体に接続する。各USBインタフェース、たとえば、USBインタフェース1(17a)は、USBホストコントローラ1(171a)、ルートハブ172a、USBポート176a、176bを備えており、USBポート176a、176bに接続されたデバイスの情報がルートハブ172a、USBホストコントローラ1(171a)を通過する。さらに、PC本体に設けられたUSBポート176aからハブ177aを経由してUSBポート178a、178bが接続される場合もある。接続デバイス制限装置173aは、接続制限手段1731と接続許可リストを記憶するリスト記憶手段1732及び設定インタフェース1733を有し、このUSBホストコントローラ1(171a)またはルートハブ172a、もしくはその間に設置され、上記ルートを流れる情報を操作してデバイスの利用制限を行う。設定インタフェース1733は、PC内に用意された設定アプリケーションにより作成された接続許可リストを取得し、リスト記憶手段1732に格納する処理を行う。また、接続制限手段1731は、上記ルートを流れる情報を取り出し、リスト記憶手段1732に格納される接続許可リストに基づき、デバイスの接続が許可されれば情報がPCIバス17c経由でPC内部に伝達されるのを許可し、接続が許可されない場合は、情報がPC内部に伝達されるのを禁止する。詳細な処理手順は後述する。
【0036】
USBインタフェースn(17b)も同様に、USBホストコントローラn(171b)、ルートハブ172b、USBポート176c、176dを備えており、USBホストコントローラn(171b)またはルートハブ172b、もしくはその間に接続デバイス制限装置173bが設けられる。
【0037】
このように、接続デバイス制限装置をデバイスから情報が流れ込む接続ポートに近い地点に配置し、デバイスの利用制限を行う。
なお、接続デバイス制限装置を各USBポートに設けるとすることもできるが、図4から明らかなように、USBポート数のデバイス接続制限装置を設けるとするとコストが膨大となり、現実的でない。
【0038】
ここで、USBポートに接続するUSBデバイスから得られる情報について説明する。USBのドライバインタフェースの仕様(OpenUSBDI;Open Universal Serial Bus Driver Interface)では、USBデバイスは、管理エージェントからのUSBデバイスのデバイス情報の要求に対し、デバイスに関する記述で構成されるUSB_DEVICE_DESCRIPTORを送る。
【0039】
図5は、USB_DEVICE_DESCRIPTORの構成を示している。図は、本実施の形態に係る部分を抜き出して示している。
USB_DEVICE_DESCRIPTORには、ベンダーID201、プロダクトID202、デバイスクラス203、デバイスサブクラス204、シリアル番号インデックス205などのフィールドを有する。ベンダーIDフィールド201には、USBデバイスワーキンググループにより決められたベンダーのIDが設定される。プロダクトIDフィールド202には、同様に製品ごとに決められた製品のIDが設定される。デバイスクラスフィールド203には、同様にして決められたデバイスのクラスコードが設定され、デバイスサブクラスフィールド204には、サブクラスコードが設定される。たとえば、デバイスクラスフィールドの値が9であれば、デバイスはUSBハブである。また、シリアル番号インデックスフィールド205には、ASCIIコードで記述されたシリアル番号の場所を示す情報が設定される。
【0040】
このように、USBデバイスから得られるデバイスの記述情報(USB_DEVICE_DESCRIPTOR)を用いてUSBデバイスの接続許可リストを設定し、USBデバイスの利用制限を行う。
【0041】
次に、USBデバイスの利用制限処理について説明する。なお、従来では、USBデバイスが接続ポートに接続されたことがOSに通知されると、OSは、接続されたUSBデバイスの記述情報(USB_DEVICE_DESCRIPTOR)を要求していた。上記の説明では、USBデバイスが接続ポートに接続されると、接続デバイス制限装置に通知され、接続デバイス制限装置が接続許可と判定した場合にOSにデバイスの接続が通知されるとしたが、一旦、OSに対しUSBデバイスの接続を通知し、OSから発行されるUSB_DEVICE_DESCRIPTORの応答を制御することによっても同等の機能が実現する。
【0042】
以下、OSが発行したUSB_DEVICE_DESCRIPTORの応答を制御して利用制限を行う場合について説明する。なお、接続許可リストは、図2に示した構成とし、強度が増すごとにベンダーID、プロダクトID、シリアル番号と特定事項が増え、例外情報として、USBハブデバイスを常に許可するという設定とすべてのHIDデバイスに対して許可または禁止の設定がされているとする。
【0043】
図6は、本実施の形態のUSBデバイスの接続制限処理手順を示したフローチャートである。
OSからターゲットのUSB_DEVICE_DESCRIPTORの取り出し要求を受け、処理が開始される。
【0044】
[ステップS11] 接続ポートに接続されたターゲットのUSBデバイスからUSB_DEVICE_DESCRIPTORを取り出す。USB_DEVICE_DESCRIPTORには、図5に示したような、ターゲットのデバイスのベンダーID、プロダクトID、デバイスクラス、シリアル番号インデックス、他の情報を取り出すポインタ情報などが含まれている。
【0045】
[ステップS12] まず、例外情報を処理する。ターゲットデバイスがUSBハブであるかどうかを判定する。デバイスクラスフィールドの値が9であれば、デバイスはUSBハブである。図2からUSBハブの場合は、常に許可であるので、処理をステップS18へ進める。
【0046】
[ステップS13] ターゲットデバイスがUSBハブでない場合、ターゲットデバイスからさらにUSB_CONFIGURATION_DESCRIPTORを取り出す。
[ステップS14] 例外情報としてHIDデバイスを常に有効とする設定で、かつ、ターゲットデバイスはHIDデバイスかどうかを判定する。例外情報が、HIDデバイスを常に許可するという設定であった場合、ターゲットがHIDデバイスであるかどうかを確認する。USB_CONFIGURATION_DESCRIPTOR内のUSB_INTERFACE_DESCRIPTOR内のインタフェースクラスフィールドの値が3であれば、HIDデバイスである。ターゲットがHIDデバイスで、かつ例外情報にHIDデバイスを許可する設定がされていた場合、処理をステップS18へ進める。
【0047】
[ステップS15] ステップS12からステップS14の例外情報チェックで接続許可とならなかった場合、ターゲットが接続許可リストの許可デバイスと一致するかどうかを照合する。USB_DEVICE_DESCRIPTORのシリアル番号インデックスに基づき、ターゲットのUSB_STRING_DESCRIPTORからシリアル番号を取り出す。ベンダーIDとプロダクトIDは、USB_DEVICE_DESCRIPTORよりすでに得られている。
【0048】
[ステップS16] ターゲットのベンダーID、プロダクトID及びシリアル番号を接続許可リストに登録された1からnまでの許可デバイスのベンダーID、プロダクトID、シリアル番号と照合する。このとき、登録された強度が1であればベンダーID、2であればベンダーIDとプロダクトID、3であればベンダーID、プロダクトID及びシリアル番号のすべてと照合する。ターゲットが許可デバイスに相当する場合、処理をステップS18へ進める。
【0049】
[ステップS17] ターゲットは許可デバイスに相当しない場合、OSに対しエラーを返し処理を終了する。これにより、OSはターゲットが正常動作していないとみなし、接続を行わない。すなわち、ターゲットの利用ができない。また、必要に応じて、利用制限がかかっていることをモニタなどに表示するようにしてもよい。
【0050】
[ステップS18] ターゲットは許可デバイスに相当するので、取り出したUSB_DEVICE_DESCRIPTORをOSに返し処理を終了する。OSは、ターゲット正常とみなし、ターゲットの利用を可能にする。
【0051】
以上の処理手順が実行されることにより、接続許可リストに基づき、不必要なデバイスの利用が制限される。接続デバイス制限装置は、OSのUSB_DEVICE_DESCRIPTOR要求を監視し、検出したときには、上記手順を実行する。接続時にエラーが検出されると、OSはターゲットの接続を行わないので、以降、ターゲットは利用できなくなる。
【0052】
このような接続デバイス制限処理によれば、デバイスの利用制限を運用に合わせて任意に設定できるとともに、OS及びターゲットのUSBデバイスの双方の処理を変更する必要がないため、現システムに容易に適用できるという利点がある。
【0053】
以上、USBポートを介して接続する接続デバイスの接続制限の場合について説明したが、本発明は、IEEE1394ポートなど、その他の接続ポートに接続する接続デバイスの接続制限にも適用することができる。
【0054】
また、上記の説明では、接続許可リストをPCで共通としたが、PCは利用者ごとにユーザアカウントを設定し、それぞれに利用することができる。そこで、接続許可リストをユーザアカウントごとに設け、デバイスの利用制限を利用者ごとに設定する。
【0055】
図7は、本実施の形態のユーザアカウントごとに接続許可リストを有する接続デバイス制限装置の構成図である。
接続デバイス制限装置310は、すべての利用者で共通の接続許可リスト311、ユーザごとの接続許可リスト(ユーザ1用)312、接続許可リスト(ユーザ2用)313及び接続制限手段314を有する。図の例では、接続許可リストを設定する許可リスト設定手段350は、接続デバイス制限装置310外に設けられている。さらに、設定ファイル更新判定手段340と、接続許可リスト選択手段320が設けられる。なお、接続許可リスト選択手段320、設定ファイル更新判定手段340及び許可リスト設定手段350は、接続デバイス制限装置310が搭載されるコンピュータが、接続デバイス制限プログラムもしくは関連するインタフェース処理プログラムを実行することにより、その処理機能を実現する。
【0056】
接続デバイス制限装置310の接続許可リスト311は、全利用者に共通で、ユーザアカウントに関わらず接続制限手段314によって参照される。接続許可リスト(ユーザ1用)312及び接続許可リスト(ユーザ2用)313は、ユーザアカウントごとに選択されて接続制限手段314に参照される。
【0057】
接続許可リスト選択手段320は、OSのログオン処理330によりログオンされたユーザアカウントを検出し、該当する接続許可リストを選択し、接続制限手段314に通知する。また、OSのログオフでは、選択している接続許可リストを非選択とするように接続制限手段314に指示する。
【0058】
設定ファイル更新判定手段340は、後述する設定ツールによって接続許可リストが更新されたことを検出すると、これを許可リスト設定手段350に通知する。また、更新の指示は、接続許可リストを更新した管理者からの通知で行うこともできる。
【0059】
許可リスト設定手段350は、設定ファイルが更新されたことを検出すると、該当する接続許可リストを更新する。
このような接続デバイス制限装置310の動作について説明する。
【0060】
PC起動時のデフォルトの状態では、接続許可リスト選択手段320は、いずれのユーザ用の接続許可リストも選択しておらず、接続制限手段314は、接続許可リスト(共通用)311を用いてデバイスの接続制限処理を行う。
【0061】
OSのログオン処理330により、ユーザアカウントが設定されると、接続許可リスト選択手段320を通じて、ログオンされたユーザアカウントに応じてユーザn用の接続許可リスト(ユーザ1用312もしくはユーザ2用313)が選択される。接続制限手段314は、選択された接続許可リスト(ユーザ1用312もしくはユーザ2用313)及び接続許可リスト(共通用)311を用いてデバイスの接続制限処理を行う。
【0062】
そして、OSのログオフ処理が行われると、接続許可リスト選択手段320を通じて、ログオフされたユーザアカウントに応じてユーザn用の接続許可リスト(ユーザ1用312もしくはユーザ2用313)を非選択にする。接続制限手段314は、接続許可リスト(共通用)311のみを用いてデバイスの接続制限処理を行う。
【0063】
このように、ログオン及びログオフに応じて、選択する接続許可リストを可変にすることにより、利用者に応じてデバイスの利用制限を行うことが可能となる。
次に、接続許可リストの更新について説明する。
【0064】
管理者が設定ツールを用いて接続許可リストを設定すると、設定ファイル更新判定手段340は、これを自動検出または管理者側の通知により検出し、許可リストの更新指示を許可リスト設定手段350へ出力する。許可リスト設定手段350は、更新された許可リストを接続デバイス制限装置310の該当するリスト記憶手段に格納する。接続制限手段314は、更新された接続許可リストに従って、デバイスの接続制限処理を行う。
【0065】
なお、更新された許可リストにおいて、すでに接続が許可されているデバイスについて接続許可が取り消されている場合には、OSを再起動することにより、そのデバイスの接続を禁止する。OSの再起動は、たとえば、許可リスト設定手段350が、OSの再起動が必要であることを検出し、その通知をモニタなどに表示することによって、利用者にOSの再起動を促すことによって行う。
【0066】
ここで、設定ツールについて、設定ツール画面の一例を用いて説明する。図8は、本実施の形態の設定ツール画面の一例を示した図である。
設定ツール画面401は、更新の対象とする設定ファイル(接続許可リスト)を選択するフィールド402と、対象ユーザを共通とするか特定ユーザとするかを選択するユーザ選択フィールド403を有している。変更を行う管理者は、対象の設定ファイルをと対象ユーザを設定し、設定処理を次へ進める「接続を許可するデバイスの登録」ボタン404を操作する。
【0067】
対象の設定ファイルと対象ユーザが設定され、「接続を許可するデバイスの登録」ボタン404が操作されると、表示は、接続を許可するデバイスの登録画面に遷移する。
図9は、本実施の形態の接続を許可するデバイスの登録画面の一例を示した図である。
【0068】
接続を許可するデバイスの登録画面405では、まず、対象のデバイスが属する種別(図の例では、USB、FDD(Floppy(登録商標) Disk Drive)、IEEE1394、シリアル/パラレル)を選択する。以下、USB406を選択した場合で説明する。
【0069】
USB406を選択すると、例外情報の項目として、「すべて許可する」407と「すべて許可しない」408と、許可デバイスを設定する項目として「指定したデバイスを許可する」409の選択が表示される。「すべて許可する」407が選択されると、すべてのUSBデバイスの接続を許可するように例外情報が設定される。一方、「すべて許可しない」408が選択されると、すべてのUSBデバイスの接続を禁止するように例外情報が設定される。また、「指定したデバイスを許可する」409が選択されると、さらに、指定されているデバイスフィールド410が表示され、選択された設定ファイルに現在設定されているデバイスの一覧が表示される。指定されているデバイスフィールド410を書き換えることによって、許可デバイスの設定が変更される。なお、図の例の「HIDデバイスすべて」という設定がされた場合は、例外情報の設定が行われる。
【0070】
さらに、USBデバイスを接続許可リストに追加する場合、指定を容易にするため、たとえば、追加USB画面を表示する。図10は、本実施の形態の追加USB画面の一例を示した図である。
【0071】
追加USB画面411では、デバイスの固有IDを入力して許可デバイスを設定する固有ID設定画面フィールド412の他、種類を指定する種類指定フィールド413、接続中のデバイスから指定する接続中デバイス指定フィールド414を有する。管理者は、最も使いやすいフィールドを用いてデバイスの指定を行う。
【0072】
以上のように、各デバイスの設定画面では、どの装置を接続許可するかを指定する画面を持つ。指定画面では、デバイスの能力に応じて、最も一意性を確認できる方法を用意する。たとえば、USBの場合には、ベンダーID/プロダクトID/シリアル番号で特定する。また、設定を容易にするため、種類を指定する方法も持つ。たとえば、セキュリティ上心配が低いHIDデバイスなどについては、そのデバイスのカテゴリであればどのようなデバイスであっても接続を許可するような指定を可能とする。加えて、現在接続中のデバイスから指定する方法も持つ。
【0073】
以上、実施の形態をUSBに適用した場合で説明したが、たとえば、OSにプラグアンドプレイ(以下、PnPとする)の機構が備わっている場合には、コンピュータ起動時及びデバイス装着時のメッセージに介入することでデバイスの利用制限を行うことができる。
【0074】
以下、Windows2000/XP(登録商標)の場合で説明する。
スタート時もしくはデバイス装着時には、OSのPnPマネージャーによりIRP_MJPNP/IRP_MN_START_DEVICEのリクエストが発行される。各デバイスドライバは、そのリクエストをもとにデバイスの使用を開始させる。そこで、すべてのIRP_MJPNP/IRP_MN_START_DEVICEを受け取れるルート上に接続デバイス制限装置を設ける。
【0075】
接続デバイス制限装置では、IRP_MJPNP/IRP_MN_START_DEVICEを受け取り、そのデバイスに対してデバイスの一意性を調べることが可能な情報を得る。たとえば、USBの場合には、USB_DEVICE_DESCRIPTORやUSB_CONFIGURATION_DESCRIPTOR、シリアル番号のためのUSB_STRING_DESCRIPTORがこれに相当する。
【0076】
そして、ターゲットのデバイスから取り出した情報が接続許可リストに含まれているかどうかを照合し、含まれている場合には、これまで通りの処理を行う。すなわち、IRP_MJPNP/IRP_MN_START_DEVICEをそのままOSに返し、介入はしなかったように振舞うことで、そのデバイスの使用を開始する。一方、ターゲットから取り出した情報が接続許可リストに含まれていない場合は、IRP_MJPNP/IRP_MN_START_DEVICEのリクエストを失敗させるように、そのリクエストの戻り値を失敗に設定する。これにより、そのデバイスの使用を開始できず、そのデバイスは利用不可能となる。
【0077】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、接続デバイス制限装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0078】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0079】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0080】
(付記1) コンピュータに接続して利用される接続デバイスの利用制限を行う接続デバイス制限プログラムにおいて、
コンピュータに、
接続を許可する接続許可デバイスを規定する接続許可リストを設定し、リスト記憶手段に保存するステップと、
前記接続デバイスが接続されると、前記接続デバイスから前記接続デバイスに関するデバイス情報を取得するステップと、
取得した前記デバイス情報を用いて前記接続デバイスが前記接続許可リストに登録された前記接続許可デバイスに相当するかどうかを照合するステップと、
前記接続デバイスが前記接続許可デバイスに相当する場合は接続を許可し、それ以外の場合は接続を禁止するステップと、
を実行させることを特徴とする接続デバイス制限プログラム。
【0081】
(付記2) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可デバイスを特定するための情報量を必要に応じて可変とし、利用者もしくは管理者が所望する接続許可対象に応じて前記接続許可デバイスを特定するための特定事項を任意の項目数設定する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0082】
(付記3) コンピュータに、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続許可デバイスに設定された項目数すべての前記特定事項に前記接続デバイスが一致するかどうかを照合する、
手順を実行させることを特徴とする付記2記載の接続デバイス制限プログラム。
【0083】
(付記4) コンピュータに、
前記接続デバイスの接続を許可もしくは禁止するステップでは、前記接続デバイスに関する処理を実行する処理部に対し、接続が許可された場合には、前記接続デバイスが接続されたことを通知し、接続が禁止された場合には前記接続デバイスが接続されたことを通知しない、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0084】
(付記5) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可デバイスを特定するための特定事項として、前記接続許可デバイスの種別を設定し、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続デバイスが前記接続許可リストに設定された前記接続許可デバイスの種別と一致するかどうかを照合する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0085】
(付記6) コンピュータに、
前記接続許可リストを設定するステップでは、さらに、必要に応じて、前記接続許可デバイスの種別に相当する前記接続デバイスの接続をすべて禁止する設定を行い、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続デバイスが前記接続許可リストに設定された前記接続許可デバイスの種別と一致し、接続禁止が設定されていた場合には、該当する前記接続デバイスの接続を禁止する、
手順を実行させることを特徴とする付記5記載の接続デバイス制限プログラム。
【0086】
(付記7) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可デバイスとして設定されるデバイス数を前記接続許可リストに設定し、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続デバイスが前記接続許可デバイスに相当するかどうかを前記接続許可デバイスとして設定されたデバイス数分照合する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0087】
(付記8) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可リストを利用者共通もしくは利用者ごとに設定し、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記利用者に応じて選択される前記接続許可リストを照合に使用する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0088】
(付記9) コンピュータに、
前記接続許可リストを設定するステップでは、前記利用者ごとの前記接続許可リストを前記利用者のユーザアカウントに関連付けて記憶しておき、ログオン時に選択された前記ユーザアカウントに対応する前記接続許可リストを選択し、ログオフ時に選択されていた前記ユーザアカウントに対応する前記接続許可リストを非選択とする、
手順を実行させることを特徴とする付記8記載の接続デバイス制限プログラム。
【0089】
(付記10) コンピュータに接続して利用される接続デバイスの利用制限を行う接続デバイス制限装置において、
接続を許可する接続許可デバイスを規定する情報に基づいて接続許可リストを設定する許可リスト設定手段と、
前記接続許可リストを保存するリスト記憶手段と、
前記接続デバイスが接続されると、前記接続デバイスから前記接続デバイスに関するデバイス情報を取得し、前記デバイス情報を用いて前記接続デバイスが前記接続許可リストに登録された前記接続許可デバイスに相当するかどうかを照合し、相当する場合には前記接続デバイスの接続を許可し、それ以外の場合は接続を禁止する接続制限手段と、
を有することを特徴とする接続デバイス制限装置。
【符号の説明】
【0090】
1 接続デバイス制限装置
1a 接続許可リスト
1b リスト記憶手段
1c 許可リスト設定手段
1d 接続制限手段
1e インタフェース
2a、2b、2c 接続ポート
3 OS/ドライバ
【技術分野】
【0001】
本発明はプログラム、制限方法及びコンピュータに関し、特にコンピュータに接続して利用されるデバイスの利用制限を行うプログラム、制限方法及びコンピュータに関する。
【背景技術】
【0002】
オフィスや家庭で使用されるコンピュータ、たとえば、パーソナルコンピュータ(以下、PCとする)には、周辺機器や拡張カード(以下、総称してデバイスとする)などが接続された場合に、デバイスドライバの組み込みと設定を自動的に行う機能が組み込まれている。たとえば、キーボードやマウス、外部記憶装置など、さまざまな周辺デバイスと簡単に接続するために、USB(Universal Serial Bus)に代表される接続デバイスが装備されている。
【0003】
USBデバイスには、PCに接続時、基本ソフトであるOS(Operating System)からの要求に応じてデバイス種別などの情報を送信する機能が組み込まれている。
図11は、従来のUSBデバイスのデバイス情報読み出し手順を示したフローチャートである。USBデバイスが接続ポートに接続されたことがOSに通知されると、OSは、接続されたUSBデバイスのデバイス情報を要求し、ターゲットのUSBデバイス情報を抽出する(ステップS91)。そして、抽出したUSBデバイス情報をOSに返す(ステップS92)。こうして、USBデバイス情報を取得したOSは、接続デバイスのデバイス種類などを認識し、この接続デバイスが利用できるように処理を行う。このような仕組みにより、USBに新たに接続されたデバイスがすぐに利用できるようになっている。
【0004】
しかしながら、このように周辺デバイスを容易に接続できるようになると、PCからの情報の漏洩、もしくはPCへの不必要な情報の持ち込みが発生するなど、セキュリティ上の問題が生じる。
【0005】
そこで、周辺デバイスのカテゴリに応じて利用を制限する手法が提案されている。たとえば、「ストレージ」というカテゴリを設定すれば、ストレージ・デバイスを接続して利用することができなくなる。
【0006】
また、コンピュータに接続端末の製造番号を登録しておき、接続許可を要求している接続端末の製造番号と登録している製造番号を照合し、一致する場合のみ接続を許可する接続照合システムが提案されている(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−6166号公報(段落番号〔0007〕〜〔0019〕、図1)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、従来のデバイス制限では、詳細な利用制限を設定することができない、もしくは、煩雑な設定作業が必要になるなど使い勝手が悪く、不必要なデバイスの利用を防止できないという問題点があった。
【0009】
カテゴリで利用制限をかける場合、利用制限の判定処理は、アプリケーションプログラムに近いレベル、すなわち、デバイスに関する情報が抽象化されて細かい個別情報を知ることのできない段階で行われるため、個別のデバイスに対する利用制限ができないという問題点がある。たとえば、「ストレージ」というカテゴリで利用制限をかけると、すべてのストレージの接続ができなくなってしまう。また、既存のカテゴリにしか利用制限をかけることができないという問題点もある。
【0010】
一方、製造番号を照合して接続可否を判断する接続照合システムでは、許可する端末ごとに製造番号をすべて登録しなければならず、システムが大規模になると登録台数も増加し、登録作業が煩雑になるという問題点があり、登録ミスも発生しやすい。さらに、接続可否の判定しか行われず、読み出しは許可するが書き込みは許可しないなど、細かい対応ができない。
【0011】
このように、従来の接続デバイス制限では、既存のカテゴリごとの利用制限、もしくは、個々のデバイスの接続制限といった対応しかできず、使用者、メーカー、製品、利用する接続デバイス、利用形態、というようなさまざまな設定で利用制限を行うことができなかった。たとえば、「A氏に、X社製のYという製品名のZという個体識別番号を持つUSBメモリのみを利用可能とし、他のUSBメモリ及びUSBデバイスは利用禁止とする」というような運用には適応できなかった。このため、所望の運用ができない場合や、設定漏れやミスなどが発生する可能性が高く、結果として不必要な利用を防止できないというセキュリティ上の問題が生じた。
【0012】
本発明はこのような点に鑑みてなされたものであり、コンピュータに接続して利用可能なデバイスを、デバイス種類や個体指定、ユーザ指定など任意の設定条件で制限することにより、不必要なデバイスの利用を防止し、セキュリティを高めることが可能なプログラム、制限方法及びコンピュータを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明では上記課題を解決するために、コンピュータに接続して利用されるデバイスの利用制限を行うプログラムが提供される。本発明に係るプログラムは、コンピュータに、コンピュータに接続して利用することを許容するデバイスの特定を、複数の特定方法のうち、いずれの特定方法によるものでも許容する。複数の特定方法は、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含み、接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得させる。デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、デバイス情報に含まれるデバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定する。プロダクトID又はベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、デバイス情報に含まれるプロダクトID又はベンダーIDを用いて該デバイスの利用を制限するか否かを判定させる。
【0014】
また、上記課題を解決するために、上記の処理手順を実行する制限方法及びコンピュータが提供される。
【発明の効果】
【0015】
本発明では、デバイスが接続ポートに接続されると、デバイスからデバイス情報を取り出し、このデバイスが、このコンピュータに接続して利用することが許容されるデバイスに相当するかどうかを判定し、判定結果に応じて、接続されたデバイスの利用制限を実行する。このため、管理者は利用者が利用できるデバイスを運用状況に合わせて所望の条件で制限することが可能となる。また、接続許可リストに接続を許可するデバイスを規定するために必要な特定事項を設定しておけば、不必要なデバイスの利用を防止し、セキュリティを高めることが可能となる。
【図面の簡単な説明】
【0016】
【図1】実施の形態に適用される発明の概念図である。
【図2】接続許可リストの一例を示す構成図である。
【図3】本実施の形態の接続デバイス制限装置が組み込まれるPCのハードウェア構成例を示すブロック図である。
【図4】本実施の形態のUSBインタフェースの構成例を示すブロック図である。
【図5】USB_DEVICE_DESCRIPTORの構成を示している。
【図6】本実施の形態のUSBデバイスの接続制限処理手順を示したフローチャートである。
【図7】本実施の形態のユーザアカウントごとに接続許可リストを有する接続デバイス制限装置の構成図である。
【図8】本実施の形態の設定ツール画面の一例を示した図である。
【図9】本実施の形態の接続を許可するデバイスの登録画面の一例を示した図である。
【図10】本実施の形態の追加USB画面の一例を示した図である。
【図11】従来のUSBデバイスのデバイス情報読み出し手順を示したフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
【0018】
本発明に係る接続デバイス制限装置1は、コンピュータ内部のOS/ドライバ3などのソフトウェア群と、周辺機器である接続デバイス(以下、デバイスとする)を接続するための接続ポート2a、2b、2cとの間の情報が流れるルート上に位置し、接続ポート2a、2b、2cを介して接続されるデバイスとOS/ドライバ3との間のデータ交換を制御する。接続デバイス制限装置1は、接続許可デバイス(以下、許可デバイスとする)を規定する接続許可リスト1aを格納するリスト記憶手段1b、接続許可リスト1aを設定する許可リスト設定手段1c、接続制限を行う接続制限手段1d及び接続ポート2a、2b、2cを介したデータ転送を制御するインタフェース1eを有する。
【0019】
リスト記憶手段1bは、接続許可リスト1aを記憶する記憶手段で、許可リスト設定手段1c及び接続制限手段1dからアクセス可能である。接続許可リスト1aには、接続を許可する許可デバイスを規定する情報、すなわち、許可デバイスを特定するための情報が含まれている。詳細は後述するが、この特定するための情報の情報量は、利用制限の運用に応じて可変とし、許可デバイスを特定するための項目(以下、特定事項とする)の項目数は接続許可対象に応じて決まる。たとえば、特定項目として、ベンダー名、プロダクト名がある場合、特定事項がベンダー名であれば、該当するベンダー名のデバイスの接続が許可され、特定事項がベンダー名とプロダクト名であれば、さらにプロダクト名が一致したものが接続許可される。また、HID(Human Input Device)というようなデバイス種別ごとに接続を許可するような設定も可能とする。
【0020】
許可リスト設定手段1cは、接続許可リスト1aに登録される情報を取得し、接続許可リスト1aを設定してリスト記憶手段1bに格納する。なお、接続許可リスト1aを作成するため利用者に登録を促す設定アプリケーションは、許可リスト設定手段1c外部に格納しておき、許可リスト設定手段1cでは作成された接続許可リスト1aを入力してリスト記憶手段1bに格納する処理を行うとする構成をとることもできる。
【0021】
接続制限手段1dは、接続ポート2a、2b、2cにデバイスが接続されたことをインタフェース1eより取得すると、そのデバイスを特定するためのデバイス情報をインタフェース1e経由で取り出す(ステップS1)。そして、取り出したデバイス情報を用いて、接続されたデバイスと接続許可リスト1aの許可デバイスとを照合する(ステップS2)。デバイスが接続許可リスト1aの許可デバイスに相当する場合、このデバイスの接続を許可し、相当しない場合には接続を禁止する(ステップS3)。
【0022】
インタフェース1eは、接続制限手段1dと接続ポート2a、2b、2cに接続するデバイスとの間のデータ交換を制御する。すなわち、デバイスから取得した情報は接続制限手段1dへ伝え、接続制限手段1dから取得した情報はデバイスに伝達する。
【0023】
なお、上記の説明の接続デバイス制限装置1の各処理手段は、コンピュータが接続デバイス制限プログラムを実行することにより実現することができる。また、ハードウェアで実現することも、双方を組み合わせて実現することもできる。
【0024】
以上の構成の接続デバイス制限装置1の動作について説明する。
管理者もしくは利用者は、予め、接続を許可するデバイスを規定する情報を登録しておく。許可リスト設定手段1cは、登録情報に基づき接続許可リスト1aを設定し、リスト記憶手段1bに格納する。接続許可リスト1aには、接続を許可するデバイスを特定する情報、たとえば、メーカー名、プロダクト名、個別のシリアル番号などの他、デバイス種別全体を一括して任意に登録できる。たとえば、「メーカーXの全製品を許可する。」、「メーカーXのうち製品Yを許可する。」、「メーカーXの製品Yのうちシリアル番号Zを許可する。」という指定ができるとする。これにより、特定個体のみを限定して利用を許可することや、個体までは限定しないで利用許可にすることが任意にできる。また、個々のデバイスを指定するのではなく、その種類全体、たとえば、「HIDデバイスは、どのメーカーのものでも許可する。」という指定が可能になる。これにより、個々のHIDデバイスの許可設定を行うことなく、HIDデバイスを一括して利用可能とすることができる。
【0025】
このように接続許可リスト1aが登録され、リスト記憶手段1bに格納された後、接続ポート2a、2b、2cにデバイスが接続されたことをインタフェース1eが検出し、接続制限手段1dに通知する。接続制限手段1dは、接続されたデバイスのデバイス情報をインタフェース1e経由で取り出し、そのデバイス情報と接続許可リスト1aを照合して、このデバイスの接続を許可できるかどうかを判断する。このデバイスが許可デバイスに相当する場合には接続は許可し、相当しない場合には接続を禁止する。たとえば、接続許可リスト1aに、「メーカーXの全製品を許可する。」という登録があり、接続するデバイスのメーカーがXであった場合、接続を許可する。そして、デバイスが接続されたことをOS/ドライバ3に通知し、以降の利用を可能とする。一方、接続するデバイスのメーカーがX以外であった場合、接続を禁止する。そして、デバイスが接続されたことをOS/ドライバ3に通知しないなどにより、このデバイスが利用できないようにする。
【0026】
ここで、接続許可リストについて説明する。図2は、接続許可リストの一例を示す構成図である。
図の例の接続許可リストは、接続許可リストに設定されるデバイス数を格納するデバイス数101、各許可デバイスを規定する許可デバイス1(102)から許可デバイスn(103)及び例外を規定する例外情報104の各領域を有する。
【0027】
デバイス数101には、接続許可リストに登録される許可デバイスの総数が格納される。登録総数がわかることにより、不必要な領域との照合を省くことができ、照合処理が速くなる。
【0028】
許可デバイス1(102)から許可デバイスn(103)には、許可デバイスを規定する情報がデバイスごとに登録されている。各デバイスに登録される項目には、許可レベルに応じた強度が決められている。強度とは、どの程度、許可デバイスを特定するかを表し、強度が増すほど特定事項の項目数が増え、許可デバイスがより詳細に特定される。また、特定事項には、ベンダーID、プロダクトID、シリアル番号がある。ベンダーIDは、メーカーを識別するため、メーカー固有に割り当てられた番号である。プロダクトIDは、製品を識別するため、製品ごとに割り当てられた番号である。そして、シリアル番号は、個々の製品を特定するため、製品ごとに付与される通し番号である。図の例では、強度が低(=1)の場合、特定事項数が少なく、ベンダーIDのみが指定される。すなわち、「メーカーXの全製品を許可する。」という登録ができる。強度が中(=2)の場合、特定事項数が増え、ベンダーIDとプロダクトIDが指定される。すなわち、「メーカーXのうち製品Yを許可する。」という登録ができる。強度が高(=3)の場合、個々のデバイスを特定し、特定事項としてベンダーIDとプロダクトID及びシリアル番号が指定される。すなわち、「メーカーXの製品Yのうちシリアル番号Zを許可する。」という登録ができる。
【0029】
例外情報104は、許可デバイスとして個々のデバイスを指定するのではなく、デバイスの種別など、全体の許可もしくは禁止の指示が登録される。図の例では、例外情報として、USBハブデバイスの許可という項目と、HIDデバイスの許可という項目がある。USBハブデバイスの許可という項目では、常に許可が設定される。これは、USBハブにつながるデバイスを制御するために、USBハブは常に許可する必要があることによる。また、HIDデバイスの許可という項目では、すべてのHIDデバイスを許可しない(=0)、もしくは、すべてのHIDデバイスを許可する(=1)のいずれかが選択され、設定される。このように、種別で許可設定を行うことにより、個々の許可デバイスを登録する手間を省くことができる。たとえば、図の例で、利用されるHIDデバイスのメーカーを特定できないが、HIDデバイスなら接続しても支障がないような構成の場合、例外情報104に設定することにより、簡単にすべてのHIDデバイスを利用可能とすることができる。一方、外部に情報を流出したくないような場合、例外情報104において記憶デバイスの接続を禁止しておけば、すべての記憶デバイスの利用が不可能となる。
【0030】
以上のように、接続許可リストには、個々のデバイスの許可設定も可能であるし、種別全体を一括して許可設定もしくは禁止設定することができる。このように、接続を許可するデバイスを任意のレベルで設定することができるため、利用者もしくは管理者は、コンピュータの用途やシステム構成などに応じて、所望の許可リストを容易に作成することができる。また、接続デバイス制限装置側は、どのような強度レベルであっても同様に処理(登録された許可デバイスの特定事項とデバイスのデバイス情報との照合処理)を行うことが可能である。さらに、デバイスから取り出し可能な情報に基づいて接続許可リストの特定事項を設定すればよいので、従来のデバイスにも対応することができる。
【0031】
以下、実施の形態を、PCに適用し、USBポートに接続される接続デバイスの接続制限を行う場合を例に図面を参照して詳細に説明する。
図3は、本実施の形態の接続デバイス制限装置が組み込まれるPCのハードウェア構成例を示すブロック図である。
【0032】
PC10は、CPU(Central Processing Unit)11によって装置全体が制御されている。CPU11には、バス19を介してRAM(Random Access Memory)12、ハードディスクドライブ(HDD:Hard Disk Drive)13、グラフィック処理装置14、入力インタフェース15、通信インタフェース16、USBインタフェース17、IEEE1394インタフェース18が接続されている。
【0033】
RAM12には、CPU11に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM12には、CPU11による処理に必要な各種データが格納される。HDD13には、OSやアプリケーションのプログラムが格納される。グラフィック処理装置14には、モニタ21が接続されており、CPU11からの命令に従って画像をモニタ21の画面に表示させる。入力インタフェース15には、キーボード22aやマウス22bが接続されており、キーボード22aやマウス22bから送られてくる信号を、バス19を介してCPU11に送信する。通信インタフェース16は、ネットワーク23に接続されており、ネットワーク23を介して他装置との間でデータの送受信を行う。USBインタフェース17には、USBポートを介してUSB機器24a、24bが接続されており、USB機器24a、24bから送られてくる信号を、バス19を介してCPU11に送るとともに、CPU11からの命令に従ってUSB機器24a、24bに信号を送信する。USB機器には、たとえば、スキャナなどの入力機器や、プリンタなどの出力機器、外部メモリなど、さまざまな種類がある。なお、キーボード22aやマウス22bもUSBインタフェース17を介して接続することもできる。IEEE1394インタフェース18には、IEEE1394対応機器が接続され、他のインタフェースと同様に、IEEE1394対応機器とCPU11との間のデータ交換を制御する。
【0034】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、USBインタフェースについて詳細に説明する。図4は、本実施の形態のUSBインタフェースの構成例を示すブロック図である。図4では、図3に示したPCの他の部分は省略している。
【0035】
n台のUSBインタフェース17a、・・・、17bは、それぞれPCIバス17cを経由してPC本体に接続する。各USBインタフェース、たとえば、USBインタフェース1(17a)は、USBホストコントローラ1(171a)、ルートハブ172a、USBポート176a、176bを備えており、USBポート176a、176bに接続されたデバイスの情報がルートハブ172a、USBホストコントローラ1(171a)を通過する。さらに、PC本体に設けられたUSBポート176aからハブ177aを経由してUSBポート178a、178bが接続される場合もある。接続デバイス制限装置173aは、接続制限手段1731と接続許可リストを記憶するリスト記憶手段1732及び設定インタフェース1733を有し、このUSBホストコントローラ1(171a)またはルートハブ172a、もしくはその間に設置され、上記ルートを流れる情報を操作してデバイスの利用制限を行う。設定インタフェース1733は、PC内に用意された設定アプリケーションにより作成された接続許可リストを取得し、リスト記憶手段1732に格納する処理を行う。また、接続制限手段1731は、上記ルートを流れる情報を取り出し、リスト記憶手段1732に格納される接続許可リストに基づき、デバイスの接続が許可されれば情報がPCIバス17c経由でPC内部に伝達されるのを許可し、接続が許可されない場合は、情報がPC内部に伝達されるのを禁止する。詳細な処理手順は後述する。
【0036】
USBインタフェースn(17b)も同様に、USBホストコントローラn(171b)、ルートハブ172b、USBポート176c、176dを備えており、USBホストコントローラn(171b)またはルートハブ172b、もしくはその間に接続デバイス制限装置173bが設けられる。
【0037】
このように、接続デバイス制限装置をデバイスから情報が流れ込む接続ポートに近い地点に配置し、デバイスの利用制限を行う。
なお、接続デバイス制限装置を各USBポートに設けるとすることもできるが、図4から明らかなように、USBポート数のデバイス接続制限装置を設けるとするとコストが膨大となり、現実的でない。
【0038】
ここで、USBポートに接続するUSBデバイスから得られる情報について説明する。USBのドライバインタフェースの仕様(OpenUSBDI;Open Universal Serial Bus Driver Interface)では、USBデバイスは、管理エージェントからのUSBデバイスのデバイス情報の要求に対し、デバイスに関する記述で構成されるUSB_DEVICE_DESCRIPTORを送る。
【0039】
図5は、USB_DEVICE_DESCRIPTORの構成を示している。図は、本実施の形態に係る部分を抜き出して示している。
USB_DEVICE_DESCRIPTORには、ベンダーID201、プロダクトID202、デバイスクラス203、デバイスサブクラス204、シリアル番号インデックス205などのフィールドを有する。ベンダーIDフィールド201には、USBデバイスワーキンググループにより決められたベンダーのIDが設定される。プロダクトIDフィールド202には、同様に製品ごとに決められた製品のIDが設定される。デバイスクラスフィールド203には、同様にして決められたデバイスのクラスコードが設定され、デバイスサブクラスフィールド204には、サブクラスコードが設定される。たとえば、デバイスクラスフィールドの値が9であれば、デバイスはUSBハブである。また、シリアル番号インデックスフィールド205には、ASCIIコードで記述されたシリアル番号の場所を示す情報が設定される。
【0040】
このように、USBデバイスから得られるデバイスの記述情報(USB_DEVICE_DESCRIPTOR)を用いてUSBデバイスの接続許可リストを設定し、USBデバイスの利用制限を行う。
【0041】
次に、USBデバイスの利用制限処理について説明する。なお、従来では、USBデバイスが接続ポートに接続されたことがOSに通知されると、OSは、接続されたUSBデバイスの記述情報(USB_DEVICE_DESCRIPTOR)を要求していた。上記の説明では、USBデバイスが接続ポートに接続されると、接続デバイス制限装置に通知され、接続デバイス制限装置が接続許可と判定した場合にOSにデバイスの接続が通知されるとしたが、一旦、OSに対しUSBデバイスの接続を通知し、OSから発行されるUSB_DEVICE_DESCRIPTORの応答を制御することによっても同等の機能が実現する。
【0042】
以下、OSが発行したUSB_DEVICE_DESCRIPTORの応答を制御して利用制限を行う場合について説明する。なお、接続許可リストは、図2に示した構成とし、強度が増すごとにベンダーID、プロダクトID、シリアル番号と特定事項が増え、例外情報として、USBハブデバイスを常に許可するという設定とすべてのHIDデバイスに対して許可または禁止の設定がされているとする。
【0043】
図6は、本実施の形態のUSBデバイスの接続制限処理手順を示したフローチャートである。
OSからターゲットのUSB_DEVICE_DESCRIPTORの取り出し要求を受け、処理が開始される。
【0044】
[ステップS11] 接続ポートに接続されたターゲットのUSBデバイスからUSB_DEVICE_DESCRIPTORを取り出す。USB_DEVICE_DESCRIPTORには、図5に示したような、ターゲットのデバイスのベンダーID、プロダクトID、デバイスクラス、シリアル番号インデックス、他の情報を取り出すポインタ情報などが含まれている。
【0045】
[ステップS12] まず、例外情報を処理する。ターゲットデバイスがUSBハブであるかどうかを判定する。デバイスクラスフィールドの値が9であれば、デバイスはUSBハブである。図2からUSBハブの場合は、常に許可であるので、処理をステップS18へ進める。
【0046】
[ステップS13] ターゲットデバイスがUSBハブでない場合、ターゲットデバイスからさらにUSB_CONFIGURATION_DESCRIPTORを取り出す。
[ステップS14] 例外情報としてHIDデバイスを常に有効とする設定で、かつ、ターゲットデバイスはHIDデバイスかどうかを判定する。例外情報が、HIDデバイスを常に許可するという設定であった場合、ターゲットがHIDデバイスであるかどうかを確認する。USB_CONFIGURATION_DESCRIPTOR内のUSB_INTERFACE_DESCRIPTOR内のインタフェースクラスフィールドの値が3であれば、HIDデバイスである。ターゲットがHIDデバイスで、かつ例外情報にHIDデバイスを許可する設定がされていた場合、処理をステップS18へ進める。
【0047】
[ステップS15] ステップS12からステップS14の例外情報チェックで接続許可とならなかった場合、ターゲットが接続許可リストの許可デバイスと一致するかどうかを照合する。USB_DEVICE_DESCRIPTORのシリアル番号インデックスに基づき、ターゲットのUSB_STRING_DESCRIPTORからシリアル番号を取り出す。ベンダーIDとプロダクトIDは、USB_DEVICE_DESCRIPTORよりすでに得られている。
【0048】
[ステップS16] ターゲットのベンダーID、プロダクトID及びシリアル番号を接続許可リストに登録された1からnまでの許可デバイスのベンダーID、プロダクトID、シリアル番号と照合する。このとき、登録された強度が1であればベンダーID、2であればベンダーIDとプロダクトID、3であればベンダーID、プロダクトID及びシリアル番号のすべてと照合する。ターゲットが許可デバイスに相当する場合、処理をステップS18へ進める。
【0049】
[ステップS17] ターゲットは許可デバイスに相当しない場合、OSに対しエラーを返し処理を終了する。これにより、OSはターゲットが正常動作していないとみなし、接続を行わない。すなわち、ターゲットの利用ができない。また、必要に応じて、利用制限がかかっていることをモニタなどに表示するようにしてもよい。
【0050】
[ステップS18] ターゲットは許可デバイスに相当するので、取り出したUSB_DEVICE_DESCRIPTORをOSに返し処理を終了する。OSは、ターゲット正常とみなし、ターゲットの利用を可能にする。
【0051】
以上の処理手順が実行されることにより、接続許可リストに基づき、不必要なデバイスの利用が制限される。接続デバイス制限装置は、OSのUSB_DEVICE_DESCRIPTOR要求を監視し、検出したときには、上記手順を実行する。接続時にエラーが検出されると、OSはターゲットの接続を行わないので、以降、ターゲットは利用できなくなる。
【0052】
このような接続デバイス制限処理によれば、デバイスの利用制限を運用に合わせて任意に設定できるとともに、OS及びターゲットのUSBデバイスの双方の処理を変更する必要がないため、現システムに容易に適用できるという利点がある。
【0053】
以上、USBポートを介して接続する接続デバイスの接続制限の場合について説明したが、本発明は、IEEE1394ポートなど、その他の接続ポートに接続する接続デバイスの接続制限にも適用することができる。
【0054】
また、上記の説明では、接続許可リストをPCで共通としたが、PCは利用者ごとにユーザアカウントを設定し、それぞれに利用することができる。そこで、接続許可リストをユーザアカウントごとに設け、デバイスの利用制限を利用者ごとに設定する。
【0055】
図7は、本実施の形態のユーザアカウントごとに接続許可リストを有する接続デバイス制限装置の構成図である。
接続デバイス制限装置310は、すべての利用者で共通の接続許可リスト311、ユーザごとの接続許可リスト(ユーザ1用)312、接続許可リスト(ユーザ2用)313及び接続制限手段314を有する。図の例では、接続許可リストを設定する許可リスト設定手段350は、接続デバイス制限装置310外に設けられている。さらに、設定ファイル更新判定手段340と、接続許可リスト選択手段320が設けられる。なお、接続許可リスト選択手段320、設定ファイル更新判定手段340及び許可リスト設定手段350は、接続デバイス制限装置310が搭載されるコンピュータが、接続デバイス制限プログラムもしくは関連するインタフェース処理プログラムを実行することにより、その処理機能を実現する。
【0056】
接続デバイス制限装置310の接続許可リスト311は、全利用者に共通で、ユーザアカウントに関わらず接続制限手段314によって参照される。接続許可リスト(ユーザ1用)312及び接続許可リスト(ユーザ2用)313は、ユーザアカウントごとに選択されて接続制限手段314に参照される。
【0057】
接続許可リスト選択手段320は、OSのログオン処理330によりログオンされたユーザアカウントを検出し、該当する接続許可リストを選択し、接続制限手段314に通知する。また、OSのログオフでは、選択している接続許可リストを非選択とするように接続制限手段314に指示する。
【0058】
設定ファイル更新判定手段340は、後述する設定ツールによって接続許可リストが更新されたことを検出すると、これを許可リスト設定手段350に通知する。また、更新の指示は、接続許可リストを更新した管理者からの通知で行うこともできる。
【0059】
許可リスト設定手段350は、設定ファイルが更新されたことを検出すると、該当する接続許可リストを更新する。
このような接続デバイス制限装置310の動作について説明する。
【0060】
PC起動時のデフォルトの状態では、接続許可リスト選択手段320は、いずれのユーザ用の接続許可リストも選択しておらず、接続制限手段314は、接続許可リスト(共通用)311を用いてデバイスの接続制限処理を行う。
【0061】
OSのログオン処理330により、ユーザアカウントが設定されると、接続許可リスト選択手段320を通じて、ログオンされたユーザアカウントに応じてユーザn用の接続許可リスト(ユーザ1用312もしくはユーザ2用313)が選択される。接続制限手段314は、選択された接続許可リスト(ユーザ1用312もしくはユーザ2用313)及び接続許可リスト(共通用)311を用いてデバイスの接続制限処理を行う。
【0062】
そして、OSのログオフ処理が行われると、接続許可リスト選択手段320を通じて、ログオフされたユーザアカウントに応じてユーザn用の接続許可リスト(ユーザ1用312もしくはユーザ2用313)を非選択にする。接続制限手段314は、接続許可リスト(共通用)311のみを用いてデバイスの接続制限処理を行う。
【0063】
このように、ログオン及びログオフに応じて、選択する接続許可リストを可変にすることにより、利用者に応じてデバイスの利用制限を行うことが可能となる。
次に、接続許可リストの更新について説明する。
【0064】
管理者が設定ツールを用いて接続許可リストを設定すると、設定ファイル更新判定手段340は、これを自動検出または管理者側の通知により検出し、許可リストの更新指示を許可リスト設定手段350へ出力する。許可リスト設定手段350は、更新された許可リストを接続デバイス制限装置310の該当するリスト記憶手段に格納する。接続制限手段314は、更新された接続許可リストに従って、デバイスの接続制限処理を行う。
【0065】
なお、更新された許可リストにおいて、すでに接続が許可されているデバイスについて接続許可が取り消されている場合には、OSを再起動することにより、そのデバイスの接続を禁止する。OSの再起動は、たとえば、許可リスト設定手段350が、OSの再起動が必要であることを検出し、その通知をモニタなどに表示することによって、利用者にOSの再起動を促すことによって行う。
【0066】
ここで、設定ツールについて、設定ツール画面の一例を用いて説明する。図8は、本実施の形態の設定ツール画面の一例を示した図である。
設定ツール画面401は、更新の対象とする設定ファイル(接続許可リスト)を選択するフィールド402と、対象ユーザを共通とするか特定ユーザとするかを選択するユーザ選択フィールド403を有している。変更を行う管理者は、対象の設定ファイルをと対象ユーザを設定し、設定処理を次へ進める「接続を許可するデバイスの登録」ボタン404を操作する。
【0067】
対象の設定ファイルと対象ユーザが設定され、「接続を許可するデバイスの登録」ボタン404が操作されると、表示は、接続を許可するデバイスの登録画面に遷移する。
図9は、本実施の形態の接続を許可するデバイスの登録画面の一例を示した図である。
【0068】
接続を許可するデバイスの登録画面405では、まず、対象のデバイスが属する種別(図の例では、USB、FDD(Floppy(登録商標) Disk Drive)、IEEE1394、シリアル/パラレル)を選択する。以下、USB406を選択した場合で説明する。
【0069】
USB406を選択すると、例外情報の項目として、「すべて許可する」407と「すべて許可しない」408と、許可デバイスを設定する項目として「指定したデバイスを許可する」409の選択が表示される。「すべて許可する」407が選択されると、すべてのUSBデバイスの接続を許可するように例外情報が設定される。一方、「すべて許可しない」408が選択されると、すべてのUSBデバイスの接続を禁止するように例外情報が設定される。また、「指定したデバイスを許可する」409が選択されると、さらに、指定されているデバイスフィールド410が表示され、選択された設定ファイルに現在設定されているデバイスの一覧が表示される。指定されているデバイスフィールド410を書き換えることによって、許可デバイスの設定が変更される。なお、図の例の「HIDデバイスすべて」という設定がされた場合は、例外情報の設定が行われる。
【0070】
さらに、USBデバイスを接続許可リストに追加する場合、指定を容易にするため、たとえば、追加USB画面を表示する。図10は、本実施の形態の追加USB画面の一例を示した図である。
【0071】
追加USB画面411では、デバイスの固有IDを入力して許可デバイスを設定する固有ID設定画面フィールド412の他、種類を指定する種類指定フィールド413、接続中のデバイスから指定する接続中デバイス指定フィールド414を有する。管理者は、最も使いやすいフィールドを用いてデバイスの指定を行う。
【0072】
以上のように、各デバイスの設定画面では、どの装置を接続許可するかを指定する画面を持つ。指定画面では、デバイスの能力に応じて、最も一意性を確認できる方法を用意する。たとえば、USBの場合には、ベンダーID/プロダクトID/シリアル番号で特定する。また、設定を容易にするため、種類を指定する方法も持つ。たとえば、セキュリティ上心配が低いHIDデバイスなどについては、そのデバイスのカテゴリであればどのようなデバイスであっても接続を許可するような指定を可能とする。加えて、現在接続中のデバイスから指定する方法も持つ。
【0073】
以上、実施の形態をUSBに適用した場合で説明したが、たとえば、OSにプラグアンドプレイ(以下、PnPとする)の機構が備わっている場合には、コンピュータ起動時及びデバイス装着時のメッセージに介入することでデバイスの利用制限を行うことができる。
【0074】
以下、Windows2000/XP(登録商標)の場合で説明する。
スタート時もしくはデバイス装着時には、OSのPnPマネージャーによりIRP_MJPNP/IRP_MN_START_DEVICEのリクエストが発行される。各デバイスドライバは、そのリクエストをもとにデバイスの使用を開始させる。そこで、すべてのIRP_MJPNP/IRP_MN_START_DEVICEを受け取れるルート上に接続デバイス制限装置を設ける。
【0075】
接続デバイス制限装置では、IRP_MJPNP/IRP_MN_START_DEVICEを受け取り、そのデバイスに対してデバイスの一意性を調べることが可能な情報を得る。たとえば、USBの場合には、USB_DEVICE_DESCRIPTORやUSB_CONFIGURATION_DESCRIPTOR、シリアル番号のためのUSB_STRING_DESCRIPTORがこれに相当する。
【0076】
そして、ターゲットのデバイスから取り出した情報が接続許可リストに含まれているかどうかを照合し、含まれている場合には、これまで通りの処理を行う。すなわち、IRP_MJPNP/IRP_MN_START_DEVICEをそのままOSに返し、介入はしなかったように振舞うことで、そのデバイスの使用を開始する。一方、ターゲットから取り出した情報が接続許可リストに含まれていない場合は、IRP_MJPNP/IRP_MN_START_DEVICEのリクエストを失敗させるように、そのリクエストの戻り値を失敗に設定する。これにより、そのデバイスの使用を開始できず、そのデバイスは利用不可能となる。
【0077】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、接続デバイス制限装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0078】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0079】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0080】
(付記1) コンピュータに接続して利用される接続デバイスの利用制限を行う接続デバイス制限プログラムにおいて、
コンピュータに、
接続を許可する接続許可デバイスを規定する接続許可リストを設定し、リスト記憶手段に保存するステップと、
前記接続デバイスが接続されると、前記接続デバイスから前記接続デバイスに関するデバイス情報を取得するステップと、
取得した前記デバイス情報を用いて前記接続デバイスが前記接続許可リストに登録された前記接続許可デバイスに相当するかどうかを照合するステップと、
前記接続デバイスが前記接続許可デバイスに相当する場合は接続を許可し、それ以外の場合は接続を禁止するステップと、
を実行させることを特徴とする接続デバイス制限プログラム。
【0081】
(付記2) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可デバイスを特定するための情報量を必要に応じて可変とし、利用者もしくは管理者が所望する接続許可対象に応じて前記接続許可デバイスを特定するための特定事項を任意の項目数設定する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0082】
(付記3) コンピュータに、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続許可デバイスに設定された項目数すべての前記特定事項に前記接続デバイスが一致するかどうかを照合する、
手順を実行させることを特徴とする付記2記載の接続デバイス制限プログラム。
【0083】
(付記4) コンピュータに、
前記接続デバイスの接続を許可もしくは禁止するステップでは、前記接続デバイスに関する処理を実行する処理部に対し、接続が許可された場合には、前記接続デバイスが接続されたことを通知し、接続が禁止された場合には前記接続デバイスが接続されたことを通知しない、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0084】
(付記5) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可デバイスを特定するための特定事項として、前記接続許可デバイスの種別を設定し、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続デバイスが前記接続許可リストに設定された前記接続許可デバイスの種別と一致するかどうかを照合する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0085】
(付記6) コンピュータに、
前記接続許可リストを設定するステップでは、さらに、必要に応じて、前記接続許可デバイスの種別に相当する前記接続デバイスの接続をすべて禁止する設定を行い、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続デバイスが前記接続許可リストに設定された前記接続許可デバイスの種別と一致し、接続禁止が設定されていた場合には、該当する前記接続デバイスの接続を禁止する、
手順を実行させることを特徴とする付記5記載の接続デバイス制限プログラム。
【0086】
(付記7) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可デバイスとして設定されるデバイス数を前記接続許可リストに設定し、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記接続デバイスが前記接続許可デバイスに相当するかどうかを前記接続許可デバイスとして設定されたデバイス数分照合する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0087】
(付記8) コンピュータに、
前記接続許可リストを設定するステップでは、前記接続許可リストを利用者共通もしくは利用者ごとに設定し、
前記接続デバイスが前記接続許可デバイスに相当するかどうかを照合するステップでは、前記利用者に応じて選択される前記接続許可リストを照合に使用する、
手順を実行させることを特徴とする付記1記載の接続デバイス制限プログラム。
【0088】
(付記9) コンピュータに、
前記接続許可リストを設定するステップでは、前記利用者ごとの前記接続許可リストを前記利用者のユーザアカウントに関連付けて記憶しておき、ログオン時に選択された前記ユーザアカウントに対応する前記接続許可リストを選択し、ログオフ時に選択されていた前記ユーザアカウントに対応する前記接続許可リストを非選択とする、
手順を実行させることを特徴とする付記8記載の接続デバイス制限プログラム。
【0089】
(付記10) コンピュータに接続して利用される接続デバイスの利用制限を行う接続デバイス制限装置において、
接続を許可する接続許可デバイスを規定する情報に基づいて接続許可リストを設定する許可リスト設定手段と、
前記接続許可リストを保存するリスト記憶手段と、
前記接続デバイスが接続されると、前記接続デバイスから前記接続デバイスに関するデバイス情報を取得し、前記デバイス情報を用いて前記接続デバイスが前記接続許可リストに登録された前記接続許可デバイスに相当するかどうかを照合し、相当する場合には前記接続デバイスの接続を許可し、それ以外の場合は接続を禁止する接続制限手段と、
を有することを特徴とする接続デバイス制限装置。
【符号の説明】
【0090】
1 接続デバイス制限装置
1a 接続許可リスト
1b リスト記憶手段
1c 許可リスト設定手段
1d 接続制限手段
1e インタフェース
2a、2b、2c 接続ポート
3 OS/ドライバ
【特許請求の範囲】
【請求項1】
コンピュータに接続して利用されるデバイスの利用制限を行うプログラムにおいて、
該コンピュータに、
該コンピュータに接続して利用することを許容するデバイスの特定を、複数の特定方法のうち、いずれの特定方法によるものでも許容し、
前記複数の特定方法は、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含み、
接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得させ、
前記デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記デバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定し、前記プロダクトID又は前記ベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記プロダクトID又は前記ベンダーIDを用いて該デバイスの利用を制限するか否かを判定させる、
ことを特徴とするプログラム。
【請求項2】
コンピュータに接続して利用されるデバイスの利用制限を行う制限方法において、
該コンピュータに接続して利用することを許容するデバイスの特定を、複数の特定方法のうち、いずれの特定方法によるものでも許容し、
前記複数の特定方法は、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含み、
接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得し、
前記デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記デバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定し、前記プロダクトID又は前記ベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記プロダクトID又は前記ベンダーIDを用いて該デバイスの利用を制限するか否かを判定する、
ことを特徴とする制限方法。
【請求項3】
デバイスを接続可能なコンピュータにおいて、
該コンピュータに接続して利用することを許容するデバイスの特定を、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含む複数の特定方法のうち、いずれの特定方法によるものでも許容する手段と、
前記デバイス固有のIDと、プロダクトID又はベンダーIDと、を記憶する記憶手段と、
接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得する手段と、
前記記憶手段を参照し、前記デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記デバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定し、前記プロダクトID又は前記ベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記プロダクトID又は前記ベンダーIDを用いて該デバイスの利用を制限するか否かを判定する手段と、
を備えたことを特徴とするコンピュータ。
【請求項1】
コンピュータに接続して利用されるデバイスの利用制限を行うプログラムにおいて、
該コンピュータに、
該コンピュータに接続して利用することを許容するデバイスの特定を、複数の特定方法のうち、いずれの特定方法によるものでも許容し、
前記複数の特定方法は、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含み、
接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得させ、
前記デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記デバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定し、前記プロダクトID又は前記ベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記プロダクトID又は前記ベンダーIDを用いて該デバイスの利用を制限するか否かを判定させる、
ことを特徴とするプログラム。
【請求項2】
コンピュータに接続して利用されるデバイスの利用制限を行う制限方法において、
該コンピュータに接続して利用することを許容するデバイスの特定を、複数の特定方法のうち、いずれの特定方法によるものでも許容し、
前記複数の特定方法は、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含み、
接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得し、
前記デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記デバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定し、前記プロダクトID又は前記ベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記プロダクトID又は前記ベンダーIDを用いて該デバイスの利用を制限するか否かを判定する、
ことを特徴とする制限方法。
【請求項3】
デバイスを接続可能なコンピュータにおいて、
該コンピュータに接続して利用することを許容するデバイスの特定を、少なくとも、デバイス固有のIDを用いて特定する方法と、プロダクトID又はベンダーIDを用いて特定する方法とを含む複数の特定方法のうち、いずれの特定方法によるものでも許容する手段と、
前記デバイス固有のIDと、プロダクトID又はベンダーIDと、を記憶する記憶手段と、
接続されたデバイスから、該デバイス固有のIDと、プロダクトID又はベンダーIDとを含むデバイス情報を取得する手段と、
前記記憶手段を参照し、前記デバイス固有のIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記デバイス固有のIDを用いて該デバイスの利用を制限するか否かを判定し、前記プロダクトID又は前記ベンダーIDを用いて特定する方法により利用することを許容するデバイスが特定される場合、少なくとも、前記デバイス情報に含まれる前記プロダクトID又は前記ベンダーIDを用いて該デバイスの利用を制限するか否かを判定する手段と、
を備えたことを特徴とするコンピュータ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−182335(P2010−182335A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2010−101526(P2010−101526)
【出願日】平成22年4月26日(2010.4.26)
【分割の表示】特願2004−378611(P2004−378611)の分割
【原出願日】平成16年12月28日(2004.12.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願日】平成22年4月26日(2010.4.26)
【分割の表示】特願2004−378611(P2004−378611)の分割
【原出願日】平成16年12月28日(2004.12.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]