(57)【要約】  【課題】  システムの可用性を損なうことなく、かつ、セキュアに、デバイスに対する制御を行えるようにする。  【解決手段】  デバイス１３を使用可又は使用不可とする制御がホットキー１１又はＡＰ７０から要求されると、ＡＰ７０はパスワード認証が必要かどうかを判定する。パスワード認証が必要な場合、ＡＣＰＩ ＢＩＯＳ４０は、デバイスドライバ５０を介してその旨を受け取り、ＯＳ６０をサスペンドさせ、その状態でＳＭＩハンドラ３０がディスプレイ１２に対しパスワードプロンプトを表示し、入力されたパスワードが妥当であれば、エンベデッドコントローラ２０に対しデバイス１３の制御を指示する。また、その際、エンベデッドコントローラ２０は、ＳＭＩハンドラ３０からの制御指示であることを、ＳＭＭに切り替える信号をモニタすることで判定する。  【選択図】  図３
2006012034.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで用いられるデバイスを制御する装置であって、
前記デバイスを使用可又は使用不可とする制御を行う制御手段と、
前記コンピュータが特定の動作モードになっている場合に動作する特定のプログラムであって、前記制御手段に前記制御を指示する正当な権限を有するプログラムを実行するプログラム実行手段と、
前記コンピュータが前記特定の動作モードになっていることを示す信号を出力する信号出力手段とを備え、
前記制御手段は、前記信号出力手段により出力される前記信号を監視することにより、前記特定のプログラムが前記制御を指示していることが判明した場合に、当該制御を行うことを特徴とするデバイス制御装置。
【請求項２】
前記プログラム実行手段は、前記コンピュータが前記特定の動作モードになっている場合に特定のメモリ領域を用いて処理を行い、
前記信号出力手段は、前記特定のメモリ領域を用いて処理が行われるようにするための前記信号を、メモリコントローラに対し出力することを特徴とする請求項１記載のデバイス制御装置。
【請求項３】
前記制御手段は、前記メモリコントローラに対し出力された前記信号を受信することにより、当該信号を監視することを特徴とする請求項２記載のデバイス制御装置。
【請求項４】
前記特定のプログラムは、外部から入力されたパスワードが妥当である場合に、前記正当な権限を有するプログラムとして機能することを特徴とする請求項１記載のデバイス制御装置。
【請求項５】
前記特定のプログラムは、ＢＩＯＳ(Basic Input Output System)に含まれ、ＯＳ(Operating System)がサスペンドした状態で前記パスワードを入力させることを特徴とする請求項４記載のデバイス制御装置。
【請求項６】
デバイスを使用可又は使用不可とする制御を行う制御手段と、
前記制御の要求に応じ、ＯＳをサスペンドさせた後、パスワードの入力を要求し、入力されたパスワードが妥当である場合に、前記制御手段に当該制御の指示を行うＢＩＯＳと
を備えたことを特徴とするコンピュータ。
【請求項７】
前記制御の要求を行うためのアプリケーションプログラムを動作させる手段を更に備えたことを特徴とする請求項６記載のコンピュータ。
【請求項８】
前記制御の要求を行うためのハードウェア機構を更に備えたことを特徴とする請求項６記載のコンピュータ。
【請求項９】
前記ＢＩＯＳは、前記パスワードの入力後、前記ＯＳをレジュームし、
前記ＯＳは、必要に応じて前記デバイスに対する資源の割当てを行うことを特徴とする請求項６記載のコンピュータ。
【請求項１０】
前記制御手段は、前記ＢＩＯＳ内の特定のプログラムが前記制御の指示を行った場合に当該制御を行うことを特徴とする請求項６記載のコンピュータ。
【請求項１１】
前記制御手段は、前記特定のプログラムが動作中であることを示す信号を検出することにより、当該特定のプログラムが前記制御の指示を行ったことを認識することを特徴とする請求項１０記載のコンピュータ。
【請求項１２】
前記特定のプログラムは、システム管理割り込みのためのプログラムであることを特徴とする請求項１０記載のコンピュータ。
【請求項１３】
コンピュータで用いられるデバイスを制御する方法であって、
前記デバイスを使用可又は使用不可とする制御を行う制御手段が、当該制御の指示を受けるステップと、
前記制御手段が、前記コンピュータが特定の動作モードになっていることを示す信号を監視することにより、当該特定の動作モードになっている場合に動作する特定のプログラムが前記制御の指示を出力しているかどうかを判定するステップと、
前記特定のプログラムが前記制御の指示を出力していると判定された場合に、前記制御手段が、当該制御を行うステップと
を含むことを特徴とするデバイス制御方法。
【請求項１４】
前記コンピュータが前記特定の動作モードになっている場合は、特定のメモリ領域を用いて処理が行われ、
前記信号は、前記特定のメモリ領域を用いて処理が行われるようにするための信号であることを特徴とする請求項１３記載のデバイス制御方法。
【請求項１５】
前記判定するステップでは、メモリコントローラに対し出力された前記信号を受信することにより、当該信号を監視することを特徴とする請求項１３記載のデバイス制御方法。
【請求項１６】
前記特定のプログラムは、外部から入力されたパスワードが妥当である場合に、前記制御の指示を出力することを特徴とする請求項１３記載のデバイス制御方法。
【請求項１７】
前記特定のプログラムは、ＢＩＯＳに含まれ、ＯＳがサスペンドした状態で前記パスワードを入力させることを特徴とする請求項１６記載のデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの動作制御に関し、特にコンピュータで用いられるデバイスに対する動作制御に関する。
【背景技術】
【０００２】
近年、様々な企業でコンピュータが使用され、その企業における重要データもコンピュータにて管理されるようになっている。従って、コンピュータには、例えば、データが外部記憶メディアに複写されて持ち出されることのないような高いセキュリティが求められる。
このような高いセキュリティを確保する方法の１つに、ＯＳ(Operating System)が有するセキュリティ機能を利用する方法がある。即ち、ＯＳが管理するユーザの属性ごとに、外部記憶メディアへデータの書き込みを行うデバイス(以下、「書き込みデバイス」という)を使用できるかどうかに関し、異なる権限を与えるという方法である。
【０００３】
ところが、ＯＳが有するセキュリティ機能を利用した場合、ＯＳがインストールされたハードディスクが交換されてしまうと、セキュリティの確保ができなくなる。
例えば、企業のＩＴ部門が、ＯＳが有するセキュリティ機能を利用して、ユーザの属性ごとに、書き込みデバイスの使用の可/不可を設定していたとする。この場合、ＯＳがインストールされたハードディスクがそのまま使用されるのであれば、各ユーザは、自身に使用が許可された書き込みデバイスしか使用することはできない。ところが、悪意あるユーザが、そのシステムのハードディスクを、自身がＯＳをインストールしたハードディスクに交換したとすると、そのＯＳでは、書き込みデバイスの使用の可/不可を自由に設定できるので、そのユーザは、システムの全ての書き込みデバイスを使用できるようになってしまう。
【０００４】
今日、企業においては、サーバコンピュータとクライアントコンピュータとがネットワークで接続され、サーバコンピュータが管理するデータをクライアントコンピュータが取得して使用するようなコンピュータシステムの形態が一般的である。この場合、企業のＩＴ部門は、データの外部への持ち出しを防止する必要があれば、クライアントコンピュータのＯＳに対し、ユーザの属性ごとに、書き込みデバイスの使用の可/不可を設定することになる。しかし、クライアントコンピュータのハードディスクが交換されてしまえば、サーバコンピュータからネットワークを介して得た企業のデータが、外部記憶メディアに複写され、持ち出される可能性が出てくるのである。
尚、デスクトップのＰＣ(Personal Computer)であれば、物理的な鍵によりハードディスクの交換を防止することも可能である。しかし、携帯情報端末にあっては、そのような防止方法を採用することは困難であり、ハードディスクの交換が簡単に行えてしまうのが実情である。
【０００５】
従って、書き込みデバイスの使用の可/不可の設定は、ＢＩＯＳ(Basic Input Output System)/システムハードウェアによって行うことが必要である。
そのようなＢＩＯＳ/システムハードウェアによる設定としては、例えば、ＰＣシステムが、書き込みデバイスを使用できるかを、オーナとユーザとで区別するという方法がある。具体的には、ＰＣシステムのオーナであるアドミニストレータ(スーパバイザ)は、「アドミニストレータ・パスワード(スーパーバイザ・パスワード)」を入力することにより特定の書き込みデバイスを使用でき、ユーザはこのパスワードを入力しなければその書き込みデバイスを使用できないといったものである。かかる実装は、今日、多くのＰＣシステムで採用されている。
書き込みデバイスとしては、例えば、フロッピー(登録商標)ディスクドライブ、ＰＣカード、ＵＳＢ(Universal Serial Bus)ポート等がある。企業のＩＴ部門のＰＣ管理者は、これらのデバイスからの重要データの流出を防ぐため、ＰＣシステムのこれらのデバイスを使用不可に設定すると考えられる。このような設定がなされると、ユーザは、アドミニストレータ・パスワードの入力なしにはそのデバイスを使用することはできない。
【０００６】
ところが、特定の書き込みデバイスの使用を、不可から可に、又は、可から不可に一時的に変更したい場合もある。かかる場合、稼動中のＯＳを一旦終了させ、ＢＩＯＳで設定の変更を行い、その後、ＯＳを再起動させる必要があり、利便性に劣ることとなる。即ち、システムが中断してしまうため、システムの可用性(Availability)が損なわれてしまうことになる。
一方、ＯＳが提供するＡＰＩ(Application Program Interface)を利用することにより、システムの可用性を損なうことなく、ＢＩＯＳでの設定を行うことも提案されている(例えば、特許文献１参照。)。これは、拡張ユニットに収納された記憶デバイスのアクセスロックを、ＡＰＩを利用したシームレスなユーザインターフェースを用いたパスワード入力により解除するというものである。
【０００７】
【特許文献１】特開平９−２３７２２９号公報(第６、７頁、第４、５図)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術は、あくまでＯＳを介するものであるので、スパイウェアを排除できない等、重大なセキュリティ上の問題が存在している。
【０００９】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、システムの可用性を損なうことなく、かつ、セキュアに、デバイスに対する制御を行えるようにすることにある。
【課題を解決するための手段】
【００１０】
かかる目的のもと、本発明では、使用不可となっているデバイスを、次のようなシーケンスで一時的に使用可能とする。まず、稼動中のシステムで、あるデバイスを一時的に使用可能としたい場合、ユーザ又はアドミニストレータは、ハードウェア機構やアプリケーションプログラムを通じて、ＢＩＯＳにその意図を通知する。そして、ＢＩＯＳは、ＯＳを中断させるためにいったんシステムをサスペンド状態(スタンバイ状態)に遷移させる。その後、デバイスの使用の可/不可の設定をパスワードにて検証し、ＯＳをリジュームさせる。更に、ＢＩＯＳは、使用可能となったデバイスの状態をＯＳに通知し、ＯＳが、デバイスへのアクセスを可能とする。また、使用可能となっているデバイスを一時的に使用不可とする場合も、ほぼ同様のシーケンスで処理が行われる。但し、ＯＳをサスペンドさせるに先立ち、資源の解放を行い、ＯＳをレジュームした後には資源の割当てを行わない。
【００１１】
即ち、本発明のコンピュータは、デバイスを使用可又は使用不可とする制御を行う制御手段と、制御の要求に応じ、ＯＳをサスペンドさせた後、パスワードの入力を要求し、入力されたパスワードが妥当である場合に、制御手段に制御の指示を行うＢＩＯＳとを備えている。また、本発明のコンピュータは、制御の要求を行うためのアプリケーションプログラム、又は、制御の要求を行うためのハードウェア機構を更に備えた構成であってもよい。更に、ＢＩＯＳは、パスワードの入力後、ＯＳをレジュームし、ＯＳは、必要に応じてデバイスに対する資源の割当てを行う。
これにより、システムの可用性(Availability)を高めることができる。また、ＯＳを中断させるため、そこには、スパイウェア等が存在することはなく、セキュリティ上の問題もなくなる。
【００１２】
また、本発明は、デバイスの使用の可/不可の制御をセキュアに行うことの可能なデバイス制御装置として捉えることもできる。その場合、本発明のデバイス制御装置は、デバイスを使用可又は使用不可とする制御を行う制御手段と、コンピュータが特定の動作モードになっている場合に動作する特定のプログラムであって、制御手段に制御を指示する正当な権限を有するプログラムを実行するプログラム実行手段と、コンピュータが特定の動作モードになっていることを示す信号を出力する信号出力手段とを備え、制御手段は、信号出力手段により出力される信号を監視することにより、特定のプログラムが制御を指示していることが判明した場合に、制御を行うというものである。
【００１３】
更に、本発明は、デバイスの使用の可/不可の制御をセキュアに行うためのデバイス制御方法として捉えることもできる。その場合、本発明のデバイス制御方法は、デバイスを使用可又は使用不可とする制御を行う制御手段が、制御の指示を受けるステップと、制御手段が、コンピュータが特定の動作モードになっていることを示す信号を監視することにより、特定の動作モードになっている場合に動作する特定のプログラムが制御の指示を出力しているかどうかを判定するステップと、特定のプログラムが制御の指示を出力していると判定された場合に、制御手段が、制御を行うステップとを含んでいる。
【発明の効果】
【００１４】
本発明によれば、システムの可用性を損なうことなく、かつ、セキュアに、デバイスに対する制御を行えるようになる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図１は、本実施の形態によるハードウェアに関する設定の制御を実現するコンピュータシステム１００のハードウェア構成を示した図である。
図１に示すコンピュータシステム１００において、ＣＰＵ１０１は、プログラム制御により種々の演算処理を実行し、コンピュータシステム１００全体を制御している。
メモリコントローラ１０２は、ＣＰＵ１０１とメモリ１０４等を接続する機能を担うチップである。Intelのハブ・アーキテクチャでは、ＭＣＨ(Memory Controller Hub)に相当する。
ビデオサブシステム１０３は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、ＣＰＵ１０１からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むと共に、ビデオメモリからこの描画情報を読み出して、液晶ディスプレイ(ＬＣＤ)等のモニタに描画データとして出力している。
メモリ１０４は、ＣＰＵ１０１が実行するプログラム又はそのプログラムが処理するデータの格納領域として利用される書き込み可能メモリである。例えば、複数個のＤＲＡＭチップで構成され、１２８ＭＢや２５６ＭＢを標準装備し、４ＧＢまで増設することが可能である。尚、ＣＰＵ１０１が実行するプログラムには、ＯＳや周辺機器類をハードウェア操作するための各種ドライバ、特定業務に向けられたアプリケーションプログラム、後述するフラッシュＲＯＭ１０８に格納されたＢＩＯＳ等のファームウェアが含まれる。
【００１６】
Ｉ/Ｏコントローラ１０５は、ＰＣＩバスやＵＳＢ等を他の構成要素と接続するためのチップである。Intelのハブ・アーキテクチャでは、ＩＣＨ(I/O Controller Hub)に相当する。
ＡＴＡ(AT Attachment)１０６は、ＡＴＡ規格に準拠したハードディスク等の機器を示している。ＡＴＡは、１９８９年にアメリカ規格協会(ＡＮＳＩ)によって標準化されたＩＤＥの正式な規格である。最初のＡＴＡ規格では、最大データ転送速度が3.3MB/秒で、１台のハードディスクの最大容量は528MBまでとなっている。
ＡＴＡＰＩ(AT Attachment Packet Interface)１０７は、ＡＴＡＰＩ規格に準拠したＣＤ−ＲＯＭドライブ等の機器を示している。ＡＴＡＰＩは、ＩＤＥコントローラにハードディスク以外の機器を接続するためにアメリカ規格協会(ＡＮＳＩ)によって規格化されたものである。
フラッシュＲＯＭ１０８は、一括またはブロック単位でのデータの消去、新たな書き込みを電気的に行えるＲＯＭであり、上述したようにＢＩＯＳを格納している。
ＰＣＩｅ(PCI Express)バス１０９は、ＩＳＡ/ＥＩＳＡバス、ＰＣＩ/ＰＣＩ−Ｘバスに続く第三世代の高性能Ｉ/Ｏバスとして注目を集めているバスであり、ＰＣＩｅデバイス１１０が接続される。
ＵＳＢ１１１は、キーボード、マウス、モデム、ジョイスティック等の周辺機器とパソコンとの間でのデータ伝送の規格の一つであり、ＵＳＢデバイス１１２が接続される。
【００１７】
ＬＰＣ(Low Pin Count)バス１１３は、ＩＳＡバスを持たないシステムにレガシーデバイスを接続するためのインターフェース規格であり、３３ＭＨｚの動作クロックで、コマンド、アドレス、データを同じ４本の信号線(ＬＡＤ信号)を使ってやりとりしている(例えばデータなら８bitを４bit×２クロックで転送)。
ＳｕｐｅｒＩ/Ｏコントローラ１１４は、パラレルポートを介したパラレルデータの入出力(ＰＩＯ)、シリアルポートを介したシリアルデータの入出力(ＳＩＯ)、ＦＤＤの駆動を制御するものである。
ＴＰＭ(Trusted Platform Module)１１５は、セキュリティのための基本機能を提供するためのチップであり、プラットフォームの正当性検証、インテグリティの観測、暗号鍵の保護、暗号処理機能等を有している。
ＫＭＣ(Keyboard Mouse Controller)/ＥＣ(Embedded Controller)１１６のうち、ＫＭＣは、キーボード及びマウスを制御するコントローラである。また、ＥＣは、各種のデバイス(周辺装置、センサ、電源回路等)を監視し制御するワンチップ・マイコン(one-chip microcomputer)である。
【００１８】
ＰＣＩバス１１７は、比較的高速なデータ転送が可能なバスであり、データバス幅を３２ビットまたは６４ビット、最大動作周波数を３３ＭＨｚ、６６ＭＨｚ、最大データ転送速度を１３２ＭＢ/秒、５２８ＭＢ/秒とする仕様によって規格化されている。このＰＣＩバス１１７には、カードバスブリッジ１１８が接続され、カードバス１１９を介してＰＣカード１２０との間でデータの送受信がなされる。
【００１９】
以下、本実施の形態の特徴的な構成について詳細に説明する。
尚、本実施の形態では、次の要件を満たすシステムを前提とする。
(１) システムの設定のために必要なアドミニストレータ・パスワードを保持していること。
(２) アドミニストレータ・パスワードは、ＯＳのブートとは無関係であること。即ち、ユーザは、このパスワードなしにＯＳを始動できること。
(３) アドミニストレータ・パスワードによって保護されているシステム設定として、書き込みデバイスの使用の可/不可を設定する機能を有すること。
(４) プロセッサが、Intelプロセッサ・アーキテクチャにおけるＳＭＩ(System Management Interrupt)と同等の機能を有していること。
(５) ＳＭＩハンドラと同等の機能を実現するためのコードを保持しているメモリエリアは、プロセッサの通常の動作モードではアクセスできないこと。
(６) 稼動中のＯＳが、デバイスの初期化、停止、システム資源の割当て等を動的に実行可能なプラグ・アンド・プレイ機能を有していること。
(７) ハードウェアが、ＯＳが使用するＶＲＡＭ(Video RAM)を使わずにパスワードプロンプトを表示できるか、又は、パスワードプロンプトを表示するためにＶＲＡＭを壊しても、ＯＳがレジューム後に画面をイニシャライズできること。
【００２０】
次に、図２を参照して、本実施の形態におけるソフトウェア構成について説明する。尚、図２では、ソフトウェアによる制御の対象となるハードウェア１０も図示している。ハードウェア１０としては、具体的には、次のようなデバイスを想定している。
第一に、ＦＤＤ(Floppy Diskette Drive)である。ＦＤＤは、モータへの電源シグナルをコントロールできるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
第二に、ＰＣカードである。ＰＣカードに関しては、システムが、カードスロットのDetection Pin、及び、カードスロットへの電源供給(3.3/5/12V)を制御できるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
第三に、ExpressCard(商標)である。ExpressCard(商標)に関しては、システムが、カードへの電源の供給を制御できるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
第四に、ＵＳＢコネクタである。ＵＳＢコネクタに関しては、システムが、外部からアクセスできるＵＳＢポートへの電源を制御できるハードウェアを有し、そのハードウェアを制御する方法はセキュアであるものとする。
尚、各デバイスに関して述べた、ハードウェアを制御するためのセキュアな方法については、後述する。
【００２１】
また、エンベデッドコントローラ２０は、デバイスの使用の可/不可の制御を行うコントローラである。
ＳＭＩハンドラ３０は、本実施の形態における主モジュールであり、デバイスの使用の可/不可の制御を行うようエンベデッドコントローラ２０に指示したり、パスワードを管理したりするモジュールである。このモジュールは、IntelプロセッサのＳＭＩや同等の機能を処理するモジュールである。また、一般のソフトウェアからはアクセスできないＳＭＭ(System Management Mode)メモリエリアに常駐しており、動作中に通常のインタラプトにより実行が中断させられることはあり得ない。
尚、本実施の形態では、ＳＭＩハンドラ３０を、エンベデッドコントローラ２０にデバイスの使用の可/不可の制御を行うよう指示する正当な権限を有するプログラムとして位置付けている。従って、エンベデッドコントローラ２０とＳＭＩハンドラ３０との間の通信には、セキュアな方法が要求される。このセキュアな方法についても、後述する。
【００２２】
ＡＣＰＩ(Advanced Configuration and Power Interface)ＢＩＯＳ４０は、デバイスドライバ５０やＯＳ６０との間で通信を行うためのモジュールである。
尚、上述したＳＭＩハンドラ３０もＢＩＯＳに含まれる。従って、単に「ＢＩＯＳ」というときは、このＳＭＩハンドラ３０とＡＣＰＩ ＢＩＯＳ４０とを含むものを意味する。
【００２３】
デバイスドライバ５０は、ＡＰ７０とＡＣＰＩ ＢＩＯＳ４０との間を結ぶためのカーネルモードモジュールである。
ＡＰ７０は、対象デバイスの使用の可/不可を設定するためのトリガー、及び、ユーザインターフェースを提供するモジュールである。ＳＭＩハンドラ３０と協業し、アドミニストレータ・パスワードが要求されるデバイスかどうかを判断し、その判断結果に基づいて次の動作を決定する。
【００２４】
一方、図３には、本実施の形態の機能構成を示している。
本実施の形態におけるコンピュータシステム１００では、図２に示したエンベデッドコントローラ２０、ＳＭＩハンドラ３０、ＡＣＰＩ ＢＩＯＳ４０、デバイスドライバ５０、ＯＳ６０、ＡＰ７０が、図示するように関係付けられ、情報を交換し合う。
また、コンピュータシステム１００を構成するハードウェア要素として、デバイス制御の要求を行うためのホットキー１１、パスワードプロンプトが表示されるディスプレイ１２、制御の対象となるデバイス１３が示されている。
【００２５】
更に、図４に、本実施の形態におけるコンピュータシステム１００の動作を示す。
そこで、図３、４を参照して、本実施の形態の動作を説明する。尚、ここでは、アドミニストレータが、使用不可/可となっているデバイスを一時的に使用可/不可とする場合について、説明する。また、各動作ステップの末尾の括弧書きでは、第一に、図３における矢印に付された識別記号を、第二に、図４のフローチャートにおけるステップ番号を示している。
まず、アドミニストレータの指示により、ＡＰ７０が起動し、デバイスの使用の可/不可を設定するためのユーザインターフェース(例えば、メニュー)を表示する(矢印無し、ステップ１０１)。アドミニストレータが、使用可としたいデバイスをユーザインターフェース上で指定すると、ＡＰ７０は、その指定されたデバイスを特定する(矢印無し、ステップ１０２)。
或いは、デバイスの使用の可/不可の設定は、ハードウェア機構を用いて行うこともできる。例えば、アドミニストレータが、デバイスの使用の可/不可の設定操作に割り付けられたホットキー１１を押下する。これにより、エンベデッドコントローラ２０が、押下を検知し、ＡＣＰＩ ＢＩＯＳ４０に伝える(矢印ａ、ステップ１０３)。そして、ＡＣＰＩ ＢＩＯＳ４０が、その要求を認識し、デバイスドライバ５０に伝える(矢印ｂ、ステップ１０４)。また、デバイスドライバ５０は、その要求をＯＳ６０が提供するＡＰＩ(Application Program Interface)を介してＡＰ７０に伝え(矢印ｃ、ステップ１０５)、ＡＰ７０が、前述と同様、指定されたデバイスを特定する(矢印無し、ステップ１０２)。
【００２６】
次に、ＡＰ７０は、そのデバイスの使用の可/不可の設定にパスワードが必要かどうかを判定する(矢印無し、ステップ１０６)。尚、この判定は、デバイスの使用の可/不可の設定にパスワードが必要かどうかを管理する情報を参照することにより行われる。そのような情報は、ＡＰ７０が保持しておいてもよいし、ＢＩＯＳに問い合わせて入手するようにしてもよい。
その結果、パスワードが必要と判定された場合、デバイスドライバ５０は、ＡＰ７０から情報を受け、ＯＳ６０をサスペンド(スタンバイ)させるための要求をＡＣＰＩ ＢＩＯＳ４０に伝える(矢印ｄ、ステップ１０７)。これにより、ＡＣＰＩ ＢＩＯＳ４０は、通常のサスペンド要求をＯＳ６０に伝える(矢印ｅ、ステップ１０８)。
【００２７】
ＯＳ６０は、かかる要求を受けると、通常のサスペンドのプロセスを行い、最後にサスペンド状態に入るためのＩ/Ｏポートをアクセスする。しかしながら、ハードウェアは、実際には、サスペンド状態に入らずに、ＳＭＩハンドラ３０に制御を渡す(矢印ｆ、ステップ１０９)。
このような制御は、例えば、Intelプロセッサであれば、「SMI Control and Enable Register」のビット４に「１」をセットすることにより行う。即ち、こうすることにより、ＯＳ６０が「Power Management 1 Control Register」のビット１３に「１」をセットしてサスペンド状態に移行しようとしても、そのままサスペンド状態には移行せず、「ＳＭＩ＃」を発生させてＳＭＭに移行する。
【００２８】
その後、ＯＳ６０がサスペンド状態に移行すると、ＡＣＰＩ ＢＩＯＳ４０は、その通知を受ける(矢印ｇ、ステップ１１０)。また、一方で、ＳＭＩハンドラ３０は、ディスプレイ１２にパスワードプロンプトを表示し、アドミニストレータ・パスワードの入力を促す(矢印ｈ、ステップ１１１)。そして、アドミニストレータ・パスワードが入力されると、その妥当性を検証する。尚、ここでの妥当性の検証は、入力されたアドミニストレータ・パスワードとＢＩＯＳが予め保持していたアドミニストレータ・パスワードとが一致するかどうかを調べることにより行う。
そして、ＡＣＰＩ ＢＩＯＳ４０は、ＯＳ６０のレジュームを開始し(矢印ｉ、ステップ１１２)、ＯＳ６０は、レジュームのプロセスを行う(矢印無し、ステップ１１３)。ステップ１１１でアドミニストレータ・パスワードが妥当であると判定された場合は、その後、デバイスの使用の可/不可の設定を行うことになる。
【００２９】
一方、ステップ１０６でパスワードが不要と判定された場合、デバイスドライバ５０は、ＯＳ６０のサスペンド、パスワードプロンプトの表示、ＯＳ６０のレジュームといった過程を経ることなく、デバイスの使用の可/不可の設定の要求をＳＭＩハンドラ３０に伝える(矢印ｊ、ステップ１１４)。この場合は、無条件に、デバイスの使用の可/不可の設定を行うことになる。
【００３０】
こうした処理の後、デバイスの使用の可/不可の設定は、次のように行う。
即ち、まず、ＳＭＩハンドラ３０が、エンベデッドコントローラ２０に対し、ハードウェア設定を指示する(矢印ｋ、ステップ１１５)。
これにより、エンベデッドコントローラ２０は、ハードウェアの設定を行う(矢印ｌ、ステップ１１６)。
次に、ＡＣＰＩ ＢＩＯＳ４０は、このハードウェア設定により新たにデバイスのシステム資源の割当てが必要になる場合は、デバイスの状態変更をＯＳ６０に伝える(矢印ｍ、ステップ１１７)。これにより、ＯＳ６０は、必要に応じてシステム資源をそのデバイスに割り当てる(矢印無し、ステップ１１８)。
【００３１】
尚、本実施の形態では、上述したように、エンベデッドコントローラ２０によるハードウェアの制御には、セキュアな方法を用いている。以下、このセキュアな方法の実施例について説明する。セキュアな方法として、まず、暗号化手法等の一般的な手法が考えられるが、本実施の形態では、図５に示したような手法を用いることも想定している。
即ち、ホットキー１１又はＡＰ７０を用いた指示により、ＳＭＭに移行させるための信号「ＳＭＩ＃」がＣＰＵ１０１に送られる。これに応じて、ＣＰＵ１０１は、メモリコントローラ１０２に対し、動作モードをＳＭＭに切り替えるための信号「ＳＭＭＥＭ＃」(「ＳＭＩＡＣＴ＃」ともいう)を送るが、その際、エンベデッドコントローラ２０に対しても「ＳＭＭＥＭ＃」を送るようにしておく。
一方、エンベデッドコントローラ２０は、専用のＩ/Ｏポートを介してＳＭＩハンドラ３０との通信を行う。そこで、このポートを使用している際に、ＣＰＵ１０１からの信号「ＳＭＭＥＭ＃」をモニタすることにより、実際に通信を行っているソフトウェアモジュールがＳＭＩハンドラ３０だと特定することができる。
但し、エンベデッドコントローラ２０がバスマスタからの信号を受け取らないように、バスアービトレーションを行わない設定にしておく必要がある。
【００３２】
次に、図５に示した手法におけるエンベデッドコントローラ２０の処理を、図６のフローチャートを参照して説明する。
まず、エンベデッドコントローラ２０は、デバイスの使用の可/不可の設定を指示する信号を受信する(ステップ２０１)。尚、ここでは、その信号の送信元が、ＳＭＩハンドラ３０なのかその他のプログラムなのかは分かっていない。
一方で、エンベデッドコントローラ２０は、動作モードをＳＭＭに切り替えるための信号「ＳＭＭＥＭ＃」をモニタしており、「ＳＭＭＥＭ＃」を受信したかどうかを判定する(ステップ２０２)。
その結果、「ＳＭＭＥＭ＃」を受信していないと判定した場合は、ＳＭＩハンドラ３０以外のプログラムがデバイスの使用の可/不可の設定を指示する信号を送信してきたことになるので、そのまま処理を終了する。一方、「ＳＭＭＥＭ＃」を受信したと判定した場合は、ＳＭＩハンドラ３０がデバイスの使用の可/不可の設定を指示する信号を送信してきたことになるので、その指示に従ってデバイスの使用の可/不可を設定する(ステップ２０３)。
【００３３】
また、ＦＤＤについては、次のような手法を採用することもできる。即ち、ＦＤＤへのＩ/Ｏポートである3F2hを監視し、このポートを通じてモータがオンになったのが検出された場合、ＳＭＩハンドラ３０が、モータを強制的にオフする手法である。かかる手法を採用すれば、データは一切、外部に出ない。
【００３４】
最後に、本実施の形態におけるデバイスに対する制御をセキュアに行うための信号を図１のハードウェア構成図に書き入れたものを、図７に示す。
図７に示すように、ＣＰＵ１０１からＫＭＣ/ＥＣ１１６に対し「ＳＭＩハンドラ同定信号」が送られており、これにより、ＫＭＣ/ＥＣ１１６は、ＬＰＣバス１１３を介して制御の指示を行っているプログラムがＳＭＩハンドラ３０であることを認識し、各デバイスに対し制御信号を送っている。具体的には、ＦＤＤの電源に対しては「ＦＤＤ電源制御信号」を、ＰＣカードに関しては「カード検出制御信号」を、ＵＳＢデバイスに関しては「ＵＳＢ電源制御信号」を、ＰＣＩｅデバイスに関しては「ＰＣＩｅ検出電源制御信号」を、それぞれ、送っている。
【００３５】
尚、本実施の形態では、デバイスの使用の可/不可を制御するハードウェアとして、エンベデッドコントローラ２０を想定したが、エンベデッドコントローラ２０以外の制御手段を用いるようにしてもよい。また、デバイスの使用の可/不可の制御を要求するためのハードウェアとして、ホットキー１１を想定したが、ボタン等、その他のいかなるハードウェア機構を用いるようにしてもよい。更に、制御対象のデバイスとしては、書き込みデバイスを想定して説明してきたが、コンピュータで用いられるいかなるデバイスに対しても、本発明は適用可能である。
【００３６】
以上説明したように、本実施の形態は、ＢＩＯＳによるデバイスの使用の可/不可の制御を、ＯＳのサスペンド、パスワードの入力要求、入力されたパスワードの妥当性検証という過程を経て行うという構成を採用した。かかる構成により、ＯＳを停止させた状態でＢＩＯＳによる制御を行う場合における可用性を損なうという課題や、ＯＳを立ち上げたままＢＩＯＳによる制御を行う場合におけるセキュリティ上問題があるという課題を解決している。
また、本実施の形態では、ＳＭＭに切り替えるための信号をモニタすることにより、デバイスに対する制御の指示を行っているプログラムがＳＭＩハンドラであることが判明した場合にのみ、デバイスに対する制御の指示を受け入れるようにしている。これにより、デバイスに対する制御を更にセキュアに実現することができるようになっている。
【図面の簡単な説明】
【００３７】
【図１】本発明が適用されるコンピュータシステムのハードウェア構成を示した図である。
【図２】本実施の形態におけるソフトウェアの構成を示した図である。
【図３】本実施の形態におけるコンピュータシステムの機能構成を示したブロック図である。
【図４】本実施の形態におけるコンピュータシステムの処理動作を示したフローチャートである。
【図５】本実施の形態においてデバイスを制御する場合のセキュアな方法について説明するためのブロック図である。
【図６】本実施の形態におけるセキュアな方法を実現するためのエンベデッドコントローラの処理動作を示したフローチャートである。
【図７】本実施の形態におけるデバイスを制御するための信号を、本発明が適用されるコンピュータシステムのハードウェア構成上に示した図である。
【符号の説明】
【００３８】
１１…ホットキー、１２…ディスプレイ、１３…デバイス、２０…エンベデッドコントローラ、３０…ＳＭＩハンドラ、４０…ＡＣＰＩ ＢＩＯＳ、５０…デバイスドライバ、６０…ＯＳ、７０…ＡＰ、１０１…ＣＰＵ、１０２…メモリコントローラ
【図１】
2006012034.tif 000003
【図２】
2006012034.tif 000004
【図３】
2006012034.tif 000005
【図４】
2006012034.tif 000006
【図５】
2006012034.tif 000007
【図６】
2006012034.tif 000008
【図７】
2006012034.tif 000009