説明

デバイス制御装置、コンピュータ、及び、デバイス制御方法

【課題】 システムの可用性を損なうことなく、かつ、セキュアに、デバイスに対する制御を行えるようにする。
【解決手段】 デバイス13を使用可又は使用不可とする制御がホットキー11又はAP70から要求されると、AP70はパスワード認証が必要かどうかを判定する。パスワード認証が必要な場合、ACPI BIOS40は、デバイスドライバ50を介してその旨を受け取り、OS60をサスペンドさせ、その状態でSMIハンドラ30がディスプレイ12に対しパスワードプロンプトを表示し、入力されたパスワードが妥当であれば、エンベデッドコントローラ20に対しデバイス13の制御を指示する。また、その際、エンベデッドコントローラ20は、SMIハンドラ30からの制御指示であることを、SMMに切り替える信号をモニタすることで判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータの動作制御に関し、特にコンピュータで用いられるデバイスに対する動作制御に関する。
【背景技術】
【0002】
近年、様々な企業でコンピュータが使用され、その企業における重要データもコンピュータにて管理されるようになっている。従って、コンピュータには、例えば、データが外部記憶メディアに複写されて持ち出されることのないような高いセキュリティが求められる。
このような高いセキュリティを確保する方法の1つに、OS(Operating System)が有するセキュリティ機能を利用する方法がある。即ち、OSが管理するユーザの属性ごとに、外部記憶メディアへデータの書き込みを行うデバイス(以下、「書き込みデバイス」という)を使用できるかどうかに関し、異なる権限を与えるという方法である。
【0003】
ところが、OSが有するセキュリティ機能を利用した場合、OSがインストールされたハードディスクが交換されてしまうと、セキュリティの確保ができなくなる。
例えば、企業のIT部門が、OSが有するセキュリティ機能を利用して、ユーザの属性ごとに、書き込みデバイスの使用の可/不可を設定していたとする。この場合、OSがインストールされたハードディスクがそのまま使用されるのであれば、各ユーザは、自身に使用が許可された書き込みデバイスしか使用することはできない。ところが、悪意あるユーザが、そのシステムのハードディスクを、自身がOSをインストールしたハードディスクに交換したとすると、そのOSでは、書き込みデバイスの使用の可/不可を自由に設定できるので、そのユーザは、システムの全ての書き込みデバイスを使用できるようになってしまう。
【0004】
今日、企業においては、サーバコンピュータとクライアントコンピュータとがネットワークで接続され、サーバコンピュータが管理するデータをクライアントコンピュータが取得して使用するようなコンピュータシステムの形態が一般的である。この場合、企業のIT部門は、データの外部への持ち出しを防止する必要があれば、クライアントコンピュータのOSに対し、ユーザの属性ごとに、書き込みデバイスの使用の可/不可を設定することになる。しかし、クライアントコンピュータのハードディスクが交換されてしまえば、サーバコンピュータからネットワークを介して得た企業のデータが、外部記憶メディアに複写され、持ち出される可能性が出てくるのである。
尚、デスクトップのPC(Personal Computer)であれば、物理的な鍵によりハードディスクの交換を防止することも可能である。しかし、携帯情報端末にあっては、そのような防止方法を採用することは困難であり、ハードディスクの交換が簡単に行えてしまうのが実情である。
【0005】
従って、書き込みデバイスの使用の可/不可の設定は、BIOS(Basic Input Output System)/システムハードウェアによって行うことが必要である。
そのようなBIOS/システムハードウェアによる設定としては、例えば、PCシステムが、書き込みデバイスを使用できるかを、オーナとユーザとで区別するという方法がある。具体的には、PCシステムのオーナであるアドミニストレータ(スーパバイザ)は、「アドミニストレータ・パスワード(スーパーバイザ・パスワード)」を入力することにより特定の書き込みデバイスを使用でき、ユーザはこのパスワードを入力しなければその書き込みデバイスを使用できないといったものである。かかる実装は、今日、多くのPCシステムで採用されている。
書き込みデバイスとしては、例えば、フロッピー(登録商標)ディスクドライブ、PCカード、USB(Universal Serial Bus)ポート等がある。企業のIT部門のPC管理者は、これらのデバイスからの重要データの流出を防ぐため、PCシステムのこれらのデバイスを使用不可に設定すると考えられる。このような設定がなされると、ユーザは、アドミニストレータ・パスワードの入力なしにはそのデバイスを使用することはできない。
【0006】
ところが、特定の書き込みデバイスの使用を、不可から可に、又は、可から不可に一時的に変更したい場合もある。かかる場合、稼動中のOSを一旦終了させ、BIOSで設定の変更を行い、その後、OSを再起動させる必要があり、利便性に劣ることとなる。即ち、システムが中断してしまうため、システムの可用性(Availability)が損なわれてしまうことになる。
一方、OSが提供するAPI(Application Program Interface)を利用することにより、システムの可用性を損なうことなく、BIOSでの設定を行うことも提案されている(例えば、特許文献1参照。)。これは、拡張ユニットに収納された記憶デバイスのアクセスロックを、APIを利用したシームレスなユーザインターフェースを用いたパスワード入力により解除するというものである。
【0007】
【特許文献1】特開平9−237229号公報(第6、7頁、第4、5図)
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1の技術は、あくまでOSを介するものであるので、スパイウェアを排除できない等、重大なセキュリティ上の問題が存在している。
【0009】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、システムの可用性を損なうことなく、かつ、セキュアに、デバイスに対する制御を行えるようにすることにある。
【課題を解決するための手段】
【0010】
かかる目的のもと、本発明では、使用不可となっているデバイスを、次のようなシーケンスで一時的に使用可能とする。まず、稼動中のシステムで、あるデバイスを一時的に使用可能としたい場合、ユーザ又はアドミニストレータは、ハードウェア機構やアプリケーションプログラムを通じて、BIOSにその意図を通知する。そして、BIOSは、OSを中断させるためにいったんシステムをサスペンド状態(スタンバイ状態)に遷移させる。その後、デバイスの使用の可/不可の設定をパスワードにて検証し、OSをリジュームさせる。更に、BIOSは、使用可能となったデバイスの状態をOSに通知し、OSが、デバイスへのアクセスを可能とする。また、使用可能となっているデバイスを一時的に使用不可とする場合も、ほぼ同様のシーケンスで処理が行われる。但し、OSをサスペンドさせるに先立ち、資源の解放を行い、OSをレジュームした後には資源の割当てを行わない。
【0011】
即ち、本発明のコンピュータは、デバイスを使用可又は使用不可とする制御を行う制御手段と、制御の要求に応じ、OSをサスペンドさせた後、パスワードの入力を要求し、入力されたパスワードが妥当である場合に、制御手段に制御の指示を行うBIOSとを備えている。また、本発明のコンピュータは、制御の要求を行うためのアプリケーションプログラム、又は、制御の要求を行うためのハードウェア機構を更に備えた構成であってもよい。更に、BIOSは、パスワードの入力後、OSをレジュームし、OSは、必要に応じてデバイスに対する資源の割当てを行う。
これにより、システムの可用性(Availability)を高めることができる。また、OSを中断させるため、そこには、スパイウェア等が存在することはなく、セキュリティ上の問題もなくなる。
【0012】
また、本発明は、デバイスの使用の可/不可の制御をセキュアに行うことの可能なデバイス制御装置として捉えることもできる。その場合、本発明のデバイス制御装置は、デバイスを使用可又は使用不可とする制御を行う制御手段と、コンピュータが特定の動作モードになっている場合に動作する特定のプログラムであって、制御手段に制御を指示する正当な権限を有するプログラムを実行するプログラム実行手段と、コンピュータが特定の動作モードになっていることを示す信号を出力する信号出力手段とを備え、制御手段は、信号出力手段により出力される信号を監視することにより、特定のプログラムが制御を指示していることが判明した場合に、制御を行うというものである。
【0013】
更に、本発明は、デバイスの使用の可/不可の制御をセキュアに行うためのデバイス制御方法として捉えることもできる。その場合、本発明のデバイス制御方法は、デバイスを使用可又は使用不可とする制御を行う制御手段が、制御の指示を受けるステップと、制御手段が、コンピュータが特定の動作モードになっていることを示す信号を監視することにより、特定の動作モードになっている場合に動作する特定のプログラムが制御の指示を出力しているかどうかを判定するステップと、特定のプログラムが制御の指示を出力していると判定された場合に、制御手段が、制御を行うステップとを含んでいる。
【発明の効果】
【0014】
本発明によれば、システムの可用性を損なうことなく、かつ、セキュアに、デバイスに対する制御を行えるようになる。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、本実施の形態によるハードウェアに関する設定の制御を実現するコンピュータシステム100のハードウェア構成を示した図である。
図1に示すコンピュータシステム100において、CPU101は、プログラム制御により種々の演算処理を実行し、コンピュータシステム100全体を制御している。
メモリコントローラ102は、CPU101とメモリ104等を接続する機能を担うチップである。Intelのハブ・アーキテクチャでは、MCH(Memory Controller Hub)に相当する。
ビデオサブシステム103は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、CPU101からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むと共に、ビデオメモリからこの描画情報を読み出して、液晶ディスプレイ(LCD)等のモニタに描画データとして出力している。
メモリ104は、CPU101が実行するプログラム又はそのプログラムが処理するデータの格納領域として利用される書き込み可能メモリである。例えば、複数個のDRAMチップで構成され、128MBや256MBを標準装備し、4GBまで増設することが可能である。尚、CPU101が実行するプログラムには、OSや周辺機器類をハードウェア操作するための各種ドライバ、特定業務に向けられたアプリケーションプログラム、後述するフラッシュROM108に格納されたBIOS等のファームウェアが含まれる。
【0016】
I/Oコントローラ105は、PCIバスやUSB等を他の構成要素と接続するためのチップである。Intelのハブ・アーキテクチャでは、ICH(I/O Controller Hub)に相当する。
ATA(AT Attachment)106は、ATA規格に準拠したハードディスク等の機器を示している。ATAは、1989年にアメリカ規格協会(ANSI)によって標準化されたIDEの正式な規格である。最初のATA規格では、最大データ転送速度が3.3MB/秒で、1台のハードディスクの最大容量は528MBまでとなっている。
ATAPI(AT Attachment Packet Interface)107は、ATAPI規格に準拠したCD−ROMドライブ等の機器を示している。ATAPIは、IDEコントローラにハードディスク以外の機器を接続するためにアメリカ規格協会(ANSI)によって規格化されたものである。
フラッシュROM108は、一括またはブロック単位でのデータの消去、新たな書き込みを電気的に行えるROMであり、上述したようにBIOSを格納している。
PCIe(PCI Express)バス109は、ISA/EISAバス、PCI/PCI−Xバスに続く第三世代の高性能I/Oバスとして注目を集めているバスであり、PCIeデバイス110が接続される。
USB111は、キーボード、マウス、モデム、ジョイスティック等の周辺機器とパソコンとの間でのデータ伝送の規格の一つであり、USBデバイス112が接続される。
【0017】
LPC(Low Pin Count)バス113は、ISAバスを持たないシステムにレガシーデバイスを接続するためのインターフェース規格であり、33MHzの動作クロックで、コマンド、アドレス、データを同じ4本の信号線(LAD信号)を使ってやりとりしている(例えばデータなら8bitを4bit×2クロックで転送)。
SuperI/Oコントローラ114は、パラレルポートを介したパラレルデータの入出力(PIO)、シリアルポートを介したシリアルデータの入出力(SIO)、FDDの駆動を制御するものである。
TPM(Trusted Platform Module)115は、セキュリティのための基本機能を提供するためのチップであり、プラットフォームの正当性検証、インテグリティの観測、暗号鍵の保護、暗号処理機能等を有している。
KMC(Keyboard Mouse Controller)/EC(Embedded Controller)116のうち、KMCは、キーボード及びマウスを制御するコントローラである。また、ECは、各種のデバイス(周辺装置、センサ、電源回路等)を監視し制御するワンチップ・マイコン(one-chip microcomputer)である。
【0018】
PCIバス117は、比較的高速なデータ転送が可能なバスであり、データバス幅を32ビットまたは64ビット、最大動作周波数を33MHz、66MHz、最大データ転送速度を132MB/秒、528MB/秒とする仕様によって規格化されている。このPCIバス117には、カードバスブリッジ118が接続され、カードバス119を介してPCカード120との間でデータの送受信がなされる。
【0019】
以下、本実施の形態の特徴的な構成について詳細に説明する。
尚、本実施の形態では、次の要件を満たすシステムを前提とする。
(1) システムの設定のために必要なアドミニストレータ・パスワードを保持していること。
(2) アドミニストレータ・パスワードは、OSのブートとは無関係であること。即ち、ユーザは、このパスワードなしにOSを始動できること。
(3) アドミニストレータ・パスワードによって保護されているシステム設定として、書き込みデバイスの使用の可/不可を設定する機能を有すること。
(4) プロセッサが、Intelプロセッサ・アーキテクチャにおけるSMI(System Management Interrupt)と同等の機能を有していること。
(5) SMIハンドラと同等の機能を実現するためのコードを保持しているメモリエリアは、プロセッサの通常の動作モードではアクセスできないこと。
(6) 稼動中のOSが、デバイスの初期化、停止、システム資源の割当て等を動的に実行可能なプラグ・アンド・プレイ機能を有していること。
(7) ハードウェアが、OSが使用するVRAM(Video RAM)を使わずにパスワードプロンプトを表示できるか、又は、パスワードプロンプトを表示するためにVRAMを壊しても、OSがレジューム後に画面をイニシャライズできること。
【0020】
次に、図2を参照して、本実施の形態におけるソフトウェア構成について説明する。尚、図2では、ソフトウェアによる制御の対象となるハードウェア10も図示している。ハードウェア10としては、具体的には、次のようなデバイスを想定している。
第一に、FDD(Floppy Diskette Drive)である。FDDは、モータへの電源シグナルをコントロールできるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
第二に、PCカードである。PCカードに関しては、システムが、カードスロットのDetection Pin、及び、カードスロットへの電源供給(3.3/5/12V)を制御できるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
第三に、ExpressCard(商標)である。ExpressCard(商標)に関しては、システムが、カードへの電源の供給を制御できるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
第四に、USBコネクタである。USBコネクタに関しては、システムが、外部からアクセスできるUSBポートへの電源を制御できるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
尚、各デバイスに関して述べた、ハードウェアを制御するためのセキュアな方法については、後述する。
【0021】
また、エンベデッドコントローラ20は、デバイスの使用の可/不可の制御を行うコントローラである。
SMIハンドラ30は、本実施の形態における主モジュールであり、デバイスの使用の可/不可の制御を行うようエンベデッドコントローラ20に指示したり、パスワードを管理したりするモジュールである。このモジュールは、IntelプロセッサのSMIや同等の機能を処理するモジュールである。また、一般のソフトウェアからはアクセスできないSMM(System Management Mode)メモリエリアに常駐しており、動作中に通常のインタラプトにより実行が中断させられることはあり得ない。
尚、本実施の形態では、SMIハンドラ30を、エンベデッドコントローラ20にデバイスの使用の可/不可の制御を行うよう指示する正当な権限を有するプログラムとして位置付けている。従って、エンベデッドコントローラ20とSMIハンドラ30との間の通信には、セキュアな方法が要求される。このセキュアな方法についても、後述する。
【0022】
ACPI(Advanced Configuration and Power Interface)BIOS40は、デバイスドライバ50やOS60との間で通信を行うためのモジュールである。
尚、上述したSMIハンドラ30もBIOSに含まれる。従って、単に「BIOS」というときは、このSMIハンドラ30とACPI BIOS40とを含むものを意味する。
【0023】
デバイスドライバ50は、AP70とACPI BIOS40との間を結ぶためのカーネルモードモジュールである。
AP70は、対象デバイスの使用の可/不可を設定するためのトリガー、及び、ユーザインターフェースを提供するモジュールである。SMIハンドラ30と協業し、アドミニストレータ・パスワードが要求されるデバイスかどうかを判断し、その判断結果に基づいて次の動作を決定する。
【0024】
一方、図3には、本実施の形態の機能構成を示している。
本実施の形態におけるコンピュータシステム100では、図2に示したエンベデッドコントローラ20、SMIハンドラ30、ACPI BIOS40、デバイスドライバ50、OS60、AP70が、図示するように関係付けられ、情報を交換し合う。
また、コンピュータシステム100を構成するハードウェア要素として、デバイス制御の要求を行うためのホットキー11、パスワードプロンプトが表示されるディスプレイ12、制御の対象となるデバイス13が示されている。
【0025】
更に、図4に、本実施の形態におけるコンピュータシステム100の動作を示す。
そこで、図3、4を参照して、本実施の形態の動作を説明する。尚、ここでは、アドミニストレータが、使用不可/可となっているデバイスを一時的に使用可/不可とする場合について、説明する。また、各動作ステップの末尾の括弧書きでは、第一に、図3における矢印に付された識別記号を、第二に、図4のフローチャートにおけるステップ番号を示している。
まず、アドミニストレータの指示により、AP70が起動し、デバイスの使用の可/不可を設定するためのユーザインターフェース(例えば、メニュー)を表示する(矢印無し、ステップ101)。アドミニストレータが、使用可としたいデバイスをユーザインターフェース上で指定すると、AP70は、その指定されたデバイスを特定する(矢印無し、ステップ102)。
或いは、デバイスの使用の可/不可の設定は、ハードウェア機構を用いて行うこともできる。例えば、アドミニストレータが、デバイスの使用の可/不可の設定操作に割り付けられたホットキー11を押下する。これにより、エンベデッドコントローラ20が、押下を検知し、ACPI BIOS40に伝える(矢印a、ステップ103)。そして、ACPI BIOS40が、その要求を認識し、デバイスドライバ50に伝える(矢印b、ステップ104)。また、デバイスドライバ50は、その要求をOS60が提供するAPI(Application Program Interface)を介してAP70に伝え(矢印c、ステップ105)、AP70が、前述と同様、指定されたデバイスを特定する(矢印無し、ステップ102)。
【0026】
次に、AP70は、そのデバイスの使用の可/不可の設定にパスワードが必要かどうかを判定する(矢印無し、ステップ106)。尚、この判定は、デバイスの使用の可/不可の設定にパスワードが必要かどうかを管理する情報を参照することにより行われる。そのような情報は、AP70が保持しておいてもよいし、BIOSに問い合わせて入手するようにしてもよい。
その結果、パスワードが必要と判定された場合、デバイスドライバ50は、AP70から情報を受け、OS60をサスペンド(スタンバイ)させるための要求をACPI BIOS40に伝える(矢印d、ステップ107)。これにより、ACPI BIOS40は、通常のサスペンド要求をOS60に伝える(矢印e、ステップ108)。
【0027】
OS60は、かかる要求を受けると、通常のサスペンドのプロセスを行い、最後にサスペンド状態に入るためのI/Oポートをアクセスする。しかしながら、ハードウェアは、実際には、サスペンド状態に入らずに、SMIハンドラ30に制御を渡す(矢印f、ステップ109)。
このような制御は、例えば、Intelプロセッサであれば、「SMI Control and Enable Register」のビット4に「1」をセットすることにより行う。即ち、こうすることにより、OS60が「Power Management 1 Control Register」のビット13に「1」をセットしてサスペンド状態に移行しようとしても、そのままサスペンド状態には移行せず、「SMI#」を発生させてSMMに移行する。
【0028】
その後、OS60がサスペンド状態に移行すると、ACPI BIOS40は、その通知を受ける(矢印g、ステップ110)。また、一方で、SMIハンドラ30は、ディスプレイ12にパスワードプロンプトを表示し、アドミニストレータ・パスワードの入力を促す(矢印h、ステップ111)。そして、アドミニストレータ・パスワードが入力されると、その妥当性を検証する。尚、ここでの妥当性の検証は、入力されたアドミニストレータ・パスワードとBIOSが予め保持していたアドミニストレータ・パスワードとが一致するかどうかを調べることにより行う。
そして、ACPI BIOS40は、OS60のレジュームを開始し(矢印i、ステップ112)、OS60は、レジュームのプロセスを行う(矢印無し、ステップ113)。ステップ111でアドミニストレータ・パスワードが妥当であると判定された場合は、その後、デバイスの使用の可/不可の設定を行うことになる。
【0029】
一方、ステップ106でパスワードが不要と判定された場合、デバイスドライバ50は、OS60のサスペンド、パスワードプロンプトの表示、OS60のレジュームといった過程を経ることなく、デバイスの使用の可/不可の設定の要求をSMIハンドラ30に伝える(矢印j、ステップ114)。この場合は、無条件に、デバイスの使用の可/不可の設定を行うことになる。
【0030】
こうした処理の後、デバイスの使用の可/不可の設定は、次のように行う。
即ち、まず、SMIハンドラ30が、エンベデッドコントローラ20に対し、ハードウェア設定を指示する(矢印k、ステップ115)。
これにより、エンベデッドコントローラ20は、ハードウェアの設定を行う(矢印l、ステップ116)。
次に、ACPI BIOS40は、このハードウェア設定により新たにデバイスのシステム資源の割当てが必要になる場合は、デバイスの状態変更をOS60に伝える(矢印m、ステップ117)。これにより、OS60は、必要に応じてシステム資源をそのデバイスに割り当てる(矢印無し、ステップ118)。
【0031】
尚、本実施の形態では、上述したように、エンベデッドコントローラ20によるハードウェアの制御には、セキュアな方法を用いている。以下、このセキュアな方法の実施例について説明する。セキュアな方法として、まず、暗号化手法等の一般的な手法が考えられるが、本実施の形態では、図5に示したような手法を用いることも想定している。
即ち、ホットキー11又はAP70を用いた指示により、SMMに移行させるための信号「SMI#」がCPU101に送られる。これに応じて、CPU101は、メモリコントローラ102に対し、動作モードをSMMに切り替えるための信号「SMMEM#」(「SMIACT#」ともいう)を送るが、その際、エンベデッドコントローラ20に対しても「SMMEM#」を送るようにしておく。
一方、エンベデッドコントローラ20は、専用のI/Oポートを介してSMIハンドラ30との通信を行う。そこで、このポートを使用している際に、CPU101からの信号「SMMEM#」をモニタすることにより、実際に通信を行っているソフトウェアモジュールがSMIハンドラ30だと特定することができる。
但し、エンベデッドコントローラ20がバスマスタからの信号を受け取らないように、バスアービトレーションを行わない設定にしておく必要がある。
【0032】
次に、図5に示した手法におけるエンベデッドコントローラ20の処理を、図6のフローチャートを参照して説明する。
まず、エンベデッドコントローラ20は、デバイスの使用の可/不可の設定を指示する信号を受信する(ステップ201)。尚、ここでは、その信号の送信元が、SMIハンドラ30なのかその他のプログラムなのかは分かっていない。
一方で、エンベデッドコントローラ20は、動作モードをSMMに切り替えるための信号「SMMEM#」をモニタしており、「SMMEM#」を受信したかどうかを判定する(ステップ202)。
その結果、「SMMEM#」を受信していないと判定した場合は、SMIハンドラ30以外のプログラムがデバイスの使用の可/不可の設定を指示する信号を送信してきたことになるので、そのまま処理を終了する。一方、「SMMEM#」を受信したと判定した場合は、SMIハンドラ30がデバイスの使用の可/不可の設定を指示する信号を送信してきたことになるので、その指示に従ってデバイスの使用の可/不可を設定する(ステップ203)。
【0033】
また、FDDについては、次のような手法を採用することもできる。即ち、FDDへのI/Oポートである3F2hを監視し、このポートを通じてモータがオンになったのが検出された場合、SMIハンドラ30が、モータを強制的にオフする手法である。かかる手法を採用すれば、データは一切、外部に出ない。
【0034】
最後に、本実施の形態におけるデバイスに対する制御をセキュアに行うための信号を図1のハードウェア構成図に書き入れたものを、図7に示す。
図7に示すように、CPU101からKMC/EC116に対し「SMIハンドラ同定信号」が送られており、これにより、KMC/EC116は、LPCバス113を介して制御の指示を行っているプログラムがSMIハンドラ30であることを認識し、各デバイスに対し制御信号を送っている。具体的には、FDDの電源に対しては「FDD電源制御信号」を、PCカードに関しては「カード検出制御信号」を、USBデバイスに関しては「USB電源制御信号」を、PCIeデバイスに関しては「PCIe検出電源制御信号」を、それぞれ、送っている。
【0035】
尚、本実施の形態では、デバイスの使用の可/不可を制御するハードウェアとして、エンベデッドコントローラ20を想定したが、エンベデッドコントローラ20以外の制御手段を用いるようにしてもよい。また、デバイスの使用の可/不可の制御を要求するためのハードウェアとして、ホットキー11を想定したが、ボタン等、その他のいかなるハードウェア機構を用いるようにしてもよい。更に、制御対象のデバイスとしては、書き込みデバイスを想定して説明してきたが、コンピュータで用いられるいかなるデバイスに対しても、本発明は適用可能である。
【0036】
以上説明したように、本実施の形態は、BIOSによるデバイスの使用の可/不可の制御を、OSのサスペンド、パスワードの入力要求、入力されたパスワードの妥当性検証という過程を経て行うという構成を採用した。かかる構成により、OSを停止させた状態でBIOSによる制御を行う場合における可用性を損なうという課題や、OSを立ち上げたままBIOSによる制御を行う場合におけるセキュリティ上問題があるという課題を解決している。
また、本実施の形態では、SMMに切り替えるための信号をモニタすることにより、デバイスに対する制御の指示を行っているプログラムがSMIハンドラであることが判明した場合にのみ、デバイスに対する制御の指示を受け入れるようにしている。これにより、デバイスに対する制御を更にセキュアに実現することができるようになっている。
【図面の簡単な説明】
【0037】
【図1】本発明が適用されるコンピュータシステムのハードウェア構成を示した図である。
【図2】本実施の形態におけるソフトウェアの構成を示した図である。
【図3】本実施の形態におけるコンピュータシステムの機能構成を示したブロック図である。
【図4】本実施の形態におけるコンピュータシステムの処理動作を示したフローチャートである。
【図5】本実施の形態においてデバイスを制御する場合のセキュアな方法について説明するためのブロック図である。
【図6】本実施の形態におけるセキュアな方法を実現するためのエンベデッドコントローラの処理動作を示したフローチャートである。
【図7】本実施の形態におけるデバイスを制御するための信号を、本発明が適用されるコンピュータシステムのハードウェア構成上に示した図である。
【符号の説明】
【0038】
11…ホットキー、12…ディスプレイ、13…デバイス、20…エンベデッドコントローラ、30…SMIハンドラ、40…ACPI BIOS、50…デバイスドライバ、60…OS、70…AP、101…CPU、102…メモリコントローラ

【特許請求の範囲】
【請求項1】
コンピュータで用いられるデバイスを制御する装置であって、
前記デバイスを使用可又は使用不可とする制御を行う制御手段と、
前記コンピュータが特定の動作モードになっている場合に動作する特定のプログラムであって、前記制御手段に前記制御を指示する正当な権限を有するプログラムを実行するプログラム実行手段と、
前記コンピュータが前記特定の動作モードになっていることを示す信号を出力する信号出力手段とを備え、
前記制御手段は、前記信号出力手段により出力される前記信号を監視することにより、前記特定のプログラムが前記制御を指示していることが判明した場合に、当該制御を行うことを特徴とするデバイス制御装置。
【請求項2】
前記プログラム実行手段は、前記コンピュータが前記特定の動作モードになっている場合に特定のメモリ領域を用いて処理を行い、
前記信号出力手段は、前記特定のメモリ領域を用いて処理が行われるようにするための前記信号を、メモリコントローラに対し出力することを特徴とする請求項1記載のデバイス制御装置。
【請求項3】
前記制御手段は、前記メモリコントローラに対し出力された前記信号を受信することにより、当該信号を監視することを特徴とする請求項2記載のデバイス制御装置。
【請求項4】
前記特定のプログラムは、外部から入力されたパスワードが妥当である場合に、前記正当な権限を有するプログラムとして機能することを特徴とする請求項1記載のデバイス制御装置。
【請求項5】
前記特定のプログラムは、BIOS(Basic Input Output System)に含まれ、OS(Operating System)がサスペンドした状態で前記パスワードを入力させることを特徴とする請求項4記載のデバイス制御装置。
【請求項6】
デバイスを使用可又は使用不可とする制御を行う制御手段と、
前記制御の要求に応じ、OSをサスペンドさせた後、パスワードの入力を要求し、入力されたパスワードが妥当である場合に、前記制御手段に当該制御の指示を行うBIOSと
を備えたことを特徴とするコンピュータ。
【請求項7】
前記制御の要求を行うためのアプリケーションプログラムを動作させる手段を更に備えたことを特徴とする請求項6記載のコンピュータ。
【請求項8】
前記制御の要求を行うためのハードウェア機構を更に備えたことを特徴とする請求項6記載のコンピュータ。
【請求項9】
前記BIOSは、前記パスワードの入力後、前記OSをレジュームし、
前記OSは、必要に応じて前記デバイスに対する資源の割当てを行うことを特徴とする請求項6記載のコンピュータ。
【請求項10】
前記制御手段は、前記BIOS内の特定のプログラムが前記制御の指示を行った場合に当該制御を行うことを特徴とする請求項6記載のコンピュータ。
【請求項11】
前記制御手段は、前記特定のプログラムが動作中であることを示す信号を検出することにより、当該特定のプログラムが前記制御の指示を行ったことを認識することを特徴とする請求項10記載のコンピュータ。
【請求項12】
前記特定のプログラムは、システム管理割り込みのためのプログラムであることを特徴とする請求項10記載のコンピュータ。
【請求項13】
コンピュータで用いられるデバイスを制御する方法であって、
前記デバイスを使用可又は使用不可とする制御を行う制御手段が、当該制御の指示を受けるステップと、
前記制御手段が、前記コンピュータが特定の動作モードになっていることを示す信号を監視することにより、当該特定の動作モードになっている場合に動作する特定のプログラムが前記制御の指示を出力しているかどうかを判定するステップと、
前記特定のプログラムが前記制御の指示を出力していると判定された場合に、前記制御手段が、当該制御を行うステップと
を含むことを特徴とするデバイス制御方法。
【請求項14】
前記コンピュータが前記特定の動作モードになっている場合は、特定のメモリ領域を用いて処理が行われ、
前記信号は、前記特定のメモリ領域を用いて処理が行われるようにするための信号であることを特徴とする請求項13記載のデバイス制御方法。
【請求項15】
前記判定するステップでは、メモリコントローラに対し出力された前記信号を受信することにより、当該信号を監視することを特徴とする請求項13記載のデバイス制御方法。
【請求項16】
前記特定のプログラムは、外部から入力されたパスワードが妥当である場合に、前記制御の指示を出力することを特徴とする請求項13記載のデバイス制御方法。
【請求項17】
前記特定のプログラムは、BIOSに含まれ、OSがサスペンドした状態で前記パスワードを入力させることを特徴とする請求項16記載のデバイス制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−12034(P2006−12034A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−191434(P2004−191434)
【出願日】平成16年6月29日(2004.6.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLOPPY
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】