(57)【要約】【課題】  機密性の高い情報を、悪意のあるソフトウェアに取得されることなく、安全に入力し、ネットワークを介して交換し、コンピュータにそれらの情報を安全に反映することのできる転送方法を提供する。【解決手段】  サーバからコンピュータに暗号化された情報を転送されると、転送された情報がコンピュータのメモリに記憶され、コンピュータはサスペンド状態に移行した後すぐに復帰し、ＢＩＯＳによる制御に移行する。そこでメモリに記憶された情報が復号化されて処理され、処理した情報に基づいて生成した処理情報が暗号化されて、コンピュータがＯＳによる制御に移行してからサーバに転送される。【選択図】図３
2008026934.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティング・システムまたはＢＩＯＳのいずれかによる制御で動作するコンピュータと該コンピュータにネットワークを介して接続されたサーバとの間で情報を転送する方法であって、
前記コンピュータが、
前記オペレーティング・システムによる制御で前記サーバから暗号化された情報を受け取るステップと、
前記オペレーティング・システムによる制御で前記転送された情報を前記コンピュータのメモリに記憶する第１の記憶ステップと、
前記コンピュータの動作を前記オペレーティング・システムによる制御から前記ＢＩＯＳによる制御に切り替える第１の切り替えステップと、
前記ＢＩＯＳによる制御で前記第１の記憶ステップで前記メモリに記憶された情報を復号化して処理するステップと、
前記ＢＩＯＳによる制御で前記復号化して処理した情報に基づく処理情報を生成するステップと、
前記オペレーティング・システムによる制御で前記処理情報を前記サーバに転送するステップと
を有する転送方法。
【請求項２】
前記サーバに転送するステップが、
前記ＢＩＯＳによる制御で前記処理情報を前記メモリに記憶する第２の記憶ステップと、
前記コンピュータの動作を前記ＢＩＯＳによる制御から前記前記オペレーティング・システムによる制御に切り替える第２の切り替えステップと、
前記オペレーティング・システムによる制御で前記第２の記憶ステップで前記メモリに記憶された前記処理情報を前記サーバに転送するステップと
を含む請求項１記載の転送方法。
【請求項３】
前記第２の記憶ステップが、前記処理情報を暗号化して前記メモリに記憶するステップを含む、請求項２記載の転送方法。
【請求項４】
前記第１の切り替えステップが、前記コンピュータをサスペンド状態に移行させ、該サスペンド状態からただちに復帰させるステップを含む請求項１記載の転送方法。
【請求項５】
前記第１の切り替えステップが、前記コンピュータにハイバーネーションを実行させ、該ハイバーネーションが実行された状態からただちに復帰させるステップを含む請求項１記載の転送方法。
【請求項６】
前記メモリが揮発性のメモリである請求項１記載の転送方法。
【請求項７】
前記情報を復号化して処理するステップが、復号化して得られた情報を前記コンピュータの不揮発性メモリに記憶するステップを含む請求項１記載の転送方法。
【請求項８】
前記第１の切り替えステップが、前記コンピュータのプロセッサに対してＳＭＩ（System Management Interrupt）を発行するステップを含む請求項１記載の転送方法。
【請求項９】
前記処理情報を生成するステップが、
前記コンピュータにキーボードから情報の入力を受け付けるステップと、
前記キーボードから入力された情報に基づいて前記処理情報を生成するステップと
を含む請求項１記載の転送方法。
【請求項１０】
前記第１の切り替えステップの前に、前記コンピュータが前記暗号化された情報を前記サーバから受け取ったことを前記コンピュータがユーザに知らせるステップを含む請求項１記載の転送方法。
【請求項１１】
前記第１の切り替えステップを実行するイベントを前記コンピュータが外部から受け取るステップを含む請求項１記載の転送方法。
【請求項１２】
オペレーティング・システムまたはＢＩＯＳのいずれかによる制御で動作し、ネットワークを介して接続されたサーバとの間で情報を転送することのできるコンピュータであって、
前記オペレーティング・システムによる制御で前記サーバから暗号化された情報を受け取る手段と、
前記オペレーティング・システムによる制御で前記サーバから受け取った情報を記憶する記憶手段と、
前記コンピュータの動作を前記オペレーティング・システムによる制御から前記ＢＩＯＳによる制御に切り替える切り替え手段と、
前記ＢＩＯＳによる制御で前記記憶手段に記憶された情報を復号化して処理する手段と、
前記ＢＩＯＳによる制御で前記復号化して処理した情報に基づく処理情報を生成する手段と、
前記オペレーティング・システムによる制御で前記処理情報を前記サーバに転送する手段と
を有するコンピュータ。
【請求項１３】
前記ＢＩＯＳによる制御で前記処理情報を記憶する記憶手段と、
前記コンピュータの動作を前記ＢＩＯＳによる制御から前記オペレーティング・システムによる制御に切り替える切り替え手段と、
前記オペレーティング・システムによる制御で前記記憶された処理情報を前記サーバに転送する手段と
をさらに有する請求項１２記載のコンピュータ。
【請求項１４】
前記ＢＩＯＳによる制御で前記処理情報を暗号化してから記憶する手段をさらに有する請求項１３記載のコンピュータ。
【請求項１５】
前記コンピュータの動作を前記オペレーティング・システムによる制御から前記ＢＩＯＳによる制御に切り替える切り替え手段が、前記コンピュータをサスペンド状態に移行させ、該サスペンド状態からただちに復帰させる、請求項１２記載のコンピュータ。
【請求項１６】
オペレーティング・システムまたはＢＩＯＳのいずれかによる制御で動作し、ネットワークを介して接続されたサーバとの間で情報を転送することのできるコンピュータであって、
プロセッサと、
揮発性メモリと、
ネットワーク・インターフェイスと、
プログラムを記録した記録媒体とを有し、
前記プログラムは前記プロセッサに
前記オペレーティング・システムによる制御で前記サーバから暗号化された情報を受け取るステップと、
前記オペレーティング・システムによる制御で前記転送された情報を前記揮発性メモリに記憶する第１の記憶ステップと、
前記コンピュータの動作を前記オペレーティング・システムによる制御から前記ＢＩＯＳによる制御に切り替える第１の切り替えステップと、
前記ＢＩＯＳによる制御で前記第１の記憶ステップで前記揮発性メモリに記憶された情報を復号化して処理するステップと、
前記ＢＩＯＳによる制御で前記復号化して処理した情報に基づく処理情報を生成するステップと、
前記オペレーティング・システムによる制御で前記処理情報を前記サーバに転送するステップと
を実行させるコンピュータ。
【請求項１７】
前記プログラムは前記プロセッサに、
前記ＢＩＯＳによる制御で前記処理情報を前記ＢＩＯＳが前記揮発性メモリに記憶する第２の記憶ステップと、
前記ＢＩＯＳが前記コンピュータの動作を前記ＢＩＯＳによる制御から前記オペレーティング・システムによる制御に切り替える第２の切り替えステップと、
前記オペレーティング・システムによる制御で前記第２の記憶ステップで前記揮発性メモリに記憶された前記処理情報を前記サーバに転送するステップと
をさらに実行させる、請求項１６記載のコンピュータ。
【請求項１８】
前記第２の記憶ステップが、前記処理情報を暗号化して前記揮発性メモリに記憶するステップを含む、請求項１７記載のコンピュータ。
【請求項１９】
前記第１の切り替えステップが、前記コンピュータをサスペンド状態に移行させ、該サスペンド状態からただちに復帰させるステップを含む、請求項１６記載のコンピュータ。
【請求項２０】
前記オペレーティング・システムが、ウィンドウズ（登録商標）・シリーズであり、前記受け取るステップ、前記第１の記憶ステップ、および前記第１の切り替えステップを実行するモジュールを含む、請求項１６記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ネットワークを介して情報を交換する際のセキュリティを確保する技術に関し、さらに詳細にはスパイウェア、キー・ロガーなどのような悪意のあるソフトウェアによる情報の漏洩のリスクを軽減する技術に関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（以下ＰＣという）は、家庭においてもオフィスにおいても、何らかの形でネットワークに接続されて使用されることが多い。ネットワークに接続されたＰＣは他のコンピュータと、ネットワークを介して多くのデータを交換している。交換されるデータの中には、ユーザの認証に係る認証情報や、個人のプライバシーや業務上の機密に関わる情報など、高い機密性を要する情報も多く存在する。これらの情報が、ネットワークの伝送経路上で第三者に悪用もしくは改竄されると、その被害は重大なものとなる。
【０００３】
特にオフィス環境で使用されるＰＣは、ＰＣやハードディスクにアクセスするためのパスワード、オペレーティング・システム（以後ＯＳという）にログオンするためのユーザＩＤおよびパスワード、バイオメトリクス認証に係る指紋などの生体情報データ、電子メール・システムやグループウェアなどにログオンするためのユーザＩＤおよびパスワードなど、ユーザおよびクライアントの認証に係る多くの情報を保持し、またそれらの情報をネットワークを介して交換しなければならない。さらに最近は、セキュリティ・ポリシーの僅かな不徹底が重大な情報漏洩につながりかねないため、それらの認証に係る情報をオフィス内で一括して設定して管理することに対する需要が増大している。当然、そのような認証に係る情報をオフィス内で一括して設定して管理するには、それらの情報をネットワークを介して安全に交換し、かつ個々のＰＣにおいてそれらの情報を安全に入力して設定に反映できる通信システムが不可欠である。
【０００４】
そのために一般的に行われているのは、データの暗号化である。特に米国ネットスケープ・コミュニケーションズ社が開発したＳＳＬ（Secure Socket Layer）は、インターネット上で情報を暗号化して送受信する技術として幅広く使われている。ＳＳＬは、公開鍵暗号や秘密鍵暗号、デジタル証明書、ハッシュ関数などのセキュリティ技術を組み合わせ、データの盗聴や改ざん、なりすましを防ぐものである。ＳＳＬはＯＳＩ参照モデルではセッション層（第５層）とトランスポート層（第４層）の境界で動作し、ＨＴＴＰやＦＴＰなどのような上位のプロトコルを利用するアプリケーション・ソフトからは、特に意識することなく透過的に利用することができる。
【０００５】
ところで、ウィンドウズ（登録商標）をＯＳとして使用するＰＣによって構築されたネットワークでは、論理的に一つのグループとして扱われる複数のＰＣおよびプリンタなどのコンピュータ資源を総称してドメインという。一つのドメインの中で、ユーザＩＤおよびセキュリティ・ポリシーを管理するコンピュータをドメイン・コントローラという。ドメインに参加しているＰＣでは、ユーザが当該ドメインのドメイン・コントローラであるサーバに登録されたユーザＩＤおよびパスワードを入力してログオンすることができる（これをドメイン・ログオンという）。その際、ＰＣとドメイン・コントローラとの間では、ＬＭ認証、ＮＴＬＭ認証、ＮＴＬＭｖ２認証などのような方式で相互に認証が行われることにより、ＳＳＬによるセキュアな接続が確立される。これにより、ＰＣとドメイン・コントローラとの間で認証に係る情報を、安全に交換することができる。
【０００６】
なお、ユーザの認証に係る認証情報に関する技術として、以下のような文献がある。特許文献１は、トークンに記憶された暗号化キーを、安全メモリを使って安全プロセッサモードで処理する技術を開示する。これにより、スマートカードなどのような特殊なハードウェアを利用せず、安価な記憶装置によって暗号化キーを安全に利用することが可能となる。
【特許文献１】特表２０００−５１６３７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述のＳＳＬなどによって通信経路の安全性は確保されても、各々のＰＣの内部での情報漏洩の危険性は残る。特に最近は、スパイウェア、キー・ロガーなどのような悪意のあるソフトウェアが蔓延している。スパイウェア（Spyware）は、ＰＣ内部に存在する情報、またはＰＣに対する操作の情報を、許可無しに第三者に送信する作用を持ったソフトウェアである。スパイウェアは、他のアプリケーション・ソフトと同時にＰＣにインストールされる場合もあれば、コンピュータ・ウィルスなどと同様に電子メールの添付ファイルやウェブサイトの閲覧などによってＰＣにインストールされる場合もある。多くのスパイウェアは、ウィンドウなどを表示せずにバックグラウンドで動作するため、当該ＰＣを利用するユーザがそれらのスパイウェアの存在に気づくことは難しい。また、ユーザがスパイウェアの存在に気づいたとしても、当該スパイウェアをＯＳから除去することは専門的な知識の乏しいユーザには難しいことである。
【０００８】
スパイウェアの中でも、特にユーザがキーボードを介して入力した内容を取得するものをキー・ロガー（Key Logger）という。キー・ロガーがインストールされたＰＣでは、ユーザがキーボードを介して入力した全ての内容がキー・ロガーによって取得されるので、特にパスワードやクレジット・カード番号などの機密性の高い情報を盗むためにキー・ロガーが悪用されることが多い。もちろん、キー・ロガーはバックグラウンドで動作し、当該ＰＣを利用するユーザがその存在に気づくことは難しい。実際、日本国内においても、キー・ロガーによって盗まれたインターネット・バンキングのパスワードが悪用されて現金を奪われる被害が発生している。
【０００９】
米国インテル社は、セキュアなコンピューティング環境を実現するLa Grandeテクノロジと呼ばれる新技術を開発している。この技術では、ＰＣ本体とキーボードの間にスパイウェアやキー・ロガーなどが介在しえないセキュアな接続を確立し、ユーザがキーボードを介して入力した内容を盗まれる問題を解決しようとしている。しかし、この新技術を適用するためには、ＰＣ本体およびキーボード、そしてＯＳとデバイス・ドライバの全てが新技術に対応する必要がある。
【００１０】
一方、米国インテル社製のＣＰＵは、ＳＭＩ（System Management Interrupt）入力ピン（ＳＭＩ＃）がアサートされることによって、システム管理用の動作モードであるＳＭＭ（System Management Mode）で動作することが可能である。ＳＭＭでは、メイン・メモリ内に専用に割り当てられたＳＭＲＡＭ（System Management RAM）と呼ばれるメモリ空間において、同社製のＣＰＵで実行される割り込み制御ハンドラであるＳＭＩハンドラが実行される。ＯＳが直接ＳＭＭを利用することは不可能であるので、ＯＳの制御下にあるＣＰＵは、ＳＭＩハンドラが呼び出されることによってＳＭＭに入る。ＳＭＭでは、ＣＰＵはＢＩＯＳにより制御されるためにシングル・タスクでの動作となり、すべての割り込みは無効とされる。さらに、ＳＭＲＡＭはＳＭＭで動作するＣＰＵが独占的に使用可能となる。従って、ＣＰＵがＳＭＭで動作している間、ＢＩＯＳの制御下で動作している単一のタスク以外のプログラムが動作することもなく、また当該プログラム以外のプロセスからＳＭＲＡＭ領域にアクセスされることもない。
【００１１】
つまり、ＳＭＭで動作するＣＰＵでは、スパイウェアやキー・ロガーなどのような悪意のあるソフトウェアが動作する余地がないので、特に機密性の高い情報を扱うには適している。このことを利用して、特許文献１のように、パスワードなどのような認証に係る機密性の高い情報を、ＣＰＵをＳＭＭに移行させてから処理する技術がある。特許文献１の発明では、トークンに記憶された暗号化キーを個人同定番号（ＰＩＮ）を入力することによって有効にし、この暗号化キーを利用した暗号化をＳＭＭによって行っている。たとえば遠隔サーバにログオンする場合、ＯＳの制御下で遠隔サーバから受け取った文字列（チャレンジ）を、ＳＭＩハンドラによってＳＭＭに移行したＣＰＵに渡す。ＳＭＭで動作するＣＰＵは、受け取ったチャレンジを前述の暗号化キーによって暗号化し、暗号化された文字列（レスポンス）を生成する。ＳＭＭから復帰したＯＳの制御下で、レスポンスが遠隔サーバに返送されることにより、ログオンに係る処理が完了する。
【００１２】
しかし、この方法には三つの問題点がある。一つは、ＯＳの制御からＢＩＯＳを通じてＳＭＩハンドラが呼び出されることによってＣＰＵがＳＭＭに移行したら、一般にＰＣやＯＳのアーキテクチャの観点から、数十〜数百ミリ秒以内にＳＭＭを終了してＯＳの制御に戻る必要がある点である。たとえば、前述の特許文献１で述べたような、予めメモリに記憶された鍵を利用してメモリに記憶された文字列を暗号化する処理などであれば、その時間内に完了できる。しかし、ユーザがキーボードによってパスワードなどを入力するには、表示も含めて最低数秒はかかる。従って、そのようなユーザによる入力を必要とする処理でＳＭＭを利用することはできない。ちなみに、特許文献１では、ＯＳが起動する前のＢＩＯＳ制御でＰＩＮの入力を受け付けてから、トークンに記憶された暗号化キーをメモリに記憶し、その後でＯＳを起動している。また、同文献の別の実施形態では、ＯＳの制御下でユーザにＰＩＮを入力させてから、ＣＰＵをＳＭＭに移行している。しかし、ＯＳの制御下でＰＩＮのような機密性の高い情報を入力させることには、入力した内容をスパイウェアやキー・ロガーに盗まれる危険性が伴う。
【００１３】
二つめの問題点は、ＣＰＵをＳＭＭに移行させて何らかのデータ処理をさせてからＯＳの制御に戻る際、データ処理を要求するアプリケーションとＢＩＯＳの間でのデータ交換はＣＰＵのレジスタを使用するのが通常である。したがって、アプリケーションとＢＩＯＳとの間で、それより多くの容量のデータを処理して交換する場合、あるいは複数個のデータを連続して処理して交換する場合には、ＣＰＵをＳＭＭに移行させて何らかのデータ処理をさせてＯＳの制御に戻るというサイクルを短時間で何度も繰り返す必要がある。これでは、当該ＰＣの性能を大きく低下させることとなる。
【００１４】
三つめの問題点は、管理者パスワードや、ＰＣのセキュリティに関する情報を格納するＮＶＲＡＭ（Non-Volatile RAM、不揮発性ＲＡＭ）は、ＢＩＯＳによる初期化が終了してＯＳの動作が開始されると書き込み禁止となり、当該ＰＣをパワーオン・リセットしないと書き込み禁止が解除されない点である。このため、ＣＰＵをＳＭＭに移行させるだけでは、ＮＶＲＡＭの書き込み禁止は解除されず、当該設定情報を書き換えることはできない。特に、ＢＩＯＳパスワードのようなＰＣの設定情報に関わるデータをＳＳＬによるセキュアな通信環境を介して複数個受け取った場合、受け取った情報をＮＶＲＡＭに書き込んで当該ＰＣに反映させるためには、１個データを受け取るたびごとに当該ＰＣをパワーオン・リセットしてＮＶＲＡＭの内容を変更せねばならない。受け取ったデータが複数個である場合、パワーオン・リセットも複数回繰り返されることになる。これでは、当該ＰＣの使い勝手を大きく損なうこととなる。
【００１５】
そこで本発明の目的は、ネットワークを介して接続されたサーバとＰＣとの間で安全に情報を転送する方法を提供することにある。さらに本発明の目的は、前述のLa Grandeテクノロジのような特殊なハードウェアを必要とすることなく、悪意のあるソフトウェアが動作している環境にあっても機密性の高い情報を転送する方法を提供することにある。さらに本発明の目的は、コンピュータの性能および使い勝手を損なうことなく、機密性の高い情報を安全に転送する方法を提供することにある。さらに本発明の目的は、それらの方法を実行できるコンピュータを提供することにある。
【課題を解決するための手段】
【００１６】
本発明は、ＯＳおよびＢＩＯＳのいずれかによる制御で動作するコンピュータとコンピュータにネットワークを介して接続されたサーバとの間で情報を転送する方法を提供する。ＯＳによる制御で動作するコンピュータにサーバから暗号化された情報が転送されると、転送された情報はコンピュータのメモリに記憶される。そこで、コンピュータはＯＳによる制御からＢＩＯＳによる制御に切り替えられる。ＢＩＯＳによる制御で、メモリに記憶された情報は復号化されて処理される。そこで処理された情報に基づいて処理情報が生成され、この処理情報はコンピュータがＯＳによる制御に戻ってからサーバに転送される。転送に利用されるメモリの記憶領域は、前述のような６４バイトといった容量の制限を受けない。従って、大量の暗号化されたデータや、複数の暗号化されたデータをＢＩＯＳによる制御に渡して処理させることができ、それに伴う性能もしくは使い勝手の低下は小さくなる。
【００１７】
サーバに転送される処理情報は、ＢＩＯＳによってメモリに記憶され、コンピュータがＢＩＯＳによる制御からＯＳによる制御に戻ってサーバに転送される。また、処理情報は暗号化されてからメモリに記憶される。これによって、暗号化されていない情報がＯＳによる制御を受けるコンピュータ内部で処理されることがなくなる。シングル・タスクであるＢＩＯＳによる制御を受ける環境では、悪意のあるソフトウェアが動作することがない。従って、ＯＳによる制御を受ける環境でそれらの情報が暗号化されていれば、悪意のあるソフトウェアにそれらの情報を取得される可能性は小さくなる。
【００１８】
また、コンピュータをＯＳによる制御からＢＩＯＳによる制御に切り替える際、コンピュータをサスペンド状態に移行させ、該サスペンド状態からユーザやネットワークなどからの外部イベントを待たないで、すぐにリジューム（復帰）する。このことにより、メモリの内容は保持されるが、ＮＶＲＡＭはパワーオン・リセットされる際と全く同じようにリセットされ、書き込み禁止が解除される。これにより、ＢＩＯＳによる制御の下で、サーバから転送された情報でＮＶＲＡＭの内容を書き換えることができる。サスペンドの替わりにハイバーネーションを利用しても、同じ効果が得られる。そして、サスペンドもしくはハイバーネーションが行われてもメモリの内容は保持されるので、暗号化された情報および処理情報を記憶するメモリは、不揮発性メモリとする必要はない。また、プロセッサに対してＳＭＩ（System Management Interrupt）を発行すれば、メモリに記憶された情報が存在するメモリ上の物理アドレスをＯＳからＢＩＯＳに伝達することができるので、ＢＩＯＳによって当該情報を利用しやすくなる。
【００１９】
前述のように、ＳＭＭだと数十〜数百ミリ秒以内にＯＳによる制御に戻らねばならない制限があるが、サスペンド状態からリジュームしてＢＩＯＳによる制御に入れば、そのような時間的な制限は受けない。従って、ＢＩＯＳによる制御でキーボードから情報の入力を行えば悪意のあるソフトウェアが動作しない環境で、安全に入力を受け付け、入力された情報を利用して処理を行うことができる。また、ＯＳによる制御からＢＩＯＳによる制御に切り替える際に、暗号化された情報をサーバから受け取ったことを画面表示や音声などによってユーザに知らせることもできる。もちろん、そのような情報をコンピュータの外部から受け取ったこと自体を、ＢＩＯＳによる制御に切り替えるイベントを発生させるトリガーとすることもできる。
【００２０】
本発明は、ＯＳが動作し、ネットワークを介して接続されたサーバとの間で情報を転送することのできるコンピュータを提供することもできる。このコンピュータは、情報を転送する方法として説明した各々のステップを実行する手段を持つコンピュータとして捉えられる。また、プロセッサ、ＢＩＯＳ、揮発性メモリと、ネットワーク・インターフェイス、記録媒体を有し、この記録媒体に記録されたプログラムによって各々のステップを実行するコンピュータとしても捉えられる。そして、ＯＳがウィンドウズ（登録商標）・シリーズであれば、暗号化された情報を受け取ってからＢＩＯＳによる制御に切り替えるまでのステップをウィンドウズ（登録商標）を構成するモジュールに実行させることができる。つまり本発明は、特殊なハードウェアやＯＳ全体の大規模な改造などを必要とせず、ウィンドウズ（登録商標）の標準的なモジュールおよびＢＩＯＳを使用して、わずかのソフトウェアをインストールするだけで実施できる。もちろんウィンドウズ（登録商標）以外のＯＳであっても、ネットワークを介してサーバと接続でき、かつＯＳとＢＩＯＳとの間で制御を切り替えることのできるものであれば、本発明を適用することができる。
【発明の効果】
【００２１】
本発明により、ネットワークを介して接続されたサーバとＰＣとの間で安全に情報を転送する方法を提供することができた。さらに本発明により、前述のLa Grandeテクノロジのような特殊なハードウェアを必要とすることなく、悪意のあるソフトウェアが動作している環境にあっても機密性の高い情報を転送する方法を提供することができた。さらに本発明により、コンピュータの性能および使い勝手を損なうことなく、機密性の高い情報を安全に転送する方法を提供することができた。さらに本発明により、それらの方法を実行できるコンピュータを提供することができた。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明の実施の形態にかかるパーソナル・コンピュータであるＰＣ１０のシステム構成を示す概略ブロック図である。ＰＣ１０の筐体内部には、図１に示す各種のデバイスが搭載されている。ＣＰＵ１１は、ＰＣ１０の中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、あるいはアプリケーション・プログラムなどを実行する。本実施の形態にかかるＣＰＵ１１は、ＳＭＭで動作することが可能である。
【００２３】
ＣＰＵ１１は、システム・バスとしてのＦＳＢ(Front Side Bus)１３、ＣＰＵ１１と周辺機器との間の通信を行うためのＰＣＩ(Peripheral Component Interconnect)バス１５、ＩＳＡバスに代わるインターフェイスであるＬＰＣ(Low Pin Count)バス１７という３段階のバスを介して各デバイスに接続されて信号の送受を行っている。ＦＳＢ１３とＰＣＩバス１５は、メモリ／ＰＣＩチップと呼ばれるＣＰＵブリッジ１９によって連絡されている。ＣＰＵブリッジ１９は、メイン・メモリ２１へのアクセス動作を制御するためのメモリ・コントローラ機能や、ＦＳＢ１３とＰＣＩバス１５との間のデータ転送速度の差を吸収するためのデータ・バッファ機能などを含んだ構成となっている。メイン・メモリ２１は、ＣＰＵ１１が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用される揮発性の書き込み可能メモリである。同時にメイン・メモリ２１はＳＭＭで動作するＣＰＵ１１が独占的に使用できるＳＭＲＡＭ（System Management RAM）としての領域を含む。ビデオ・カード２３は、ビデオ・チップ（図示せず）およびＶＲＡＭ（図示せず）を有し、ＣＰＵ２１からの描画命令を受けて描画すべきイメージを生成しＶＲＡＭに書き込み、ＶＲＡＭから読み出されたイメージを描画データとしてディスプレイ２５に送る。
【００２４】
ＰＣＩバス１５には、Ｉ／Ｏブリッジ２７、ＣａｒｄＢｕｓコントローラ３０、ｍｉｎｉＰＣＩスロット３３、イーサネット（登録商標）・コントローラ３５がそれぞれ接続されている。ＣａｒｄＢｕｓコントローラ３０は、ＰＣＩバス１５とＰＣカード（図示せず）とのデータ転送を制御するコントローラである。ＣａｒｄＢｕｓコントローラ３０にはＣａｒｄＢｕｓスロット３１が接続され、ＣａｒｄＢｕｓスロット３１にはＰＣカード（図示せず）が装着される。ｍｉｎｉＰＣＩスロット３３には、例えば無線ＬＡＮモジュールが内蔵されたｍｉｎｉＰＣＩカード（図示せず）が装着される。イーサネット（登録商標）・コントローラ３５は、ＰＣ１０を有線ＬＡＮに接続するためのコントローラである。
【００２５】
Ｉ／Ｏブリッジ２７は、ＰＣＩバス１５とＬＰＣバス１７との間のブリッジとしての機能を備えている。また、Ｉ／Ｏブリッジ２７は、ＩＤＥ(Integrated Device Electronics)インターフェイス機能を備えており、ハード・ディスク・ドライブ(ＨＤＤ)３９および光学ドライブ４１（ＣＤドライブ，ＤＶＤドライブ等）が接続される。また、Ｉ／Ｏブリッジ２７にはＵＳＢコネクタ３７、およびＥＥＰＲＯＭ２９も接続される。ＵＳＢコネクタ３７にはＵＳＢに対応した各種周辺機器（図示せず）が接続される。ＥＥＰＲＯＭ２９は不揮発性で記憶内容を電気的に書き替え可能とされているメモリであるが、詳細は後述する。ＬＰＣバス１７には、エンベデッド・コントローラ４３、ＢＩＯＳフラッシュＲＯＭ４７、ＮＶＲＡＭ５７、Ｉ／Ｏコントローラ５１が接続されている。Ｉ／Ｏコントローラ５１にはＩ／Ｏコネクタ５３を介してキーボード５５を初めとする入出力機器（図示せず）が接続されている。ＢＩＯＳフラッシュＲＯＭ４７およびＮＶＲＡＭ５７については後述する。さらにＩ／Ｏブリッジ２７は、ＰＣ１０の内蔵時計として機能するＲＴＣ（Real Time Clock）２８を含む。
【００２６】
エンベデッド・コントローラ４３は、８〜１６ビットのＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されたマイクロ・コンピュータであり、さらに複数チャネルのＡ／Ｄ入力端子、Ｄ／Ａ出力端子、およびデジタル入出力端子を備えている。エンベデッド・コントローラ４３には、それらの入出力端子を介して冷却ファン（図示せず）、温度センサ（図示せず）および電源装置４５などが接続されており、ＰＣ内部の動作環境の管理にかかるプログラムをＣＰＵ１１とは独立して動作させることができる。
【００２７】
なお、図１は本実施の形態を説明するために、本実施の形態に関連する主要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、ノートＰＣ１０を構成するには多くのデバイスが使われる。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。もちろん、図で記載した複数のブロックを１個の集積回路もしくは装置としたり、逆に１個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００２８】
図２は、本発明の実施の形態に係るノートＰＣ１０の中で、ＢＩＯＳフラッシュＲＯＭ４７、ＮＶＲＡＭ５７、メイン・メモリ２１、およびＥＥＰＲＯＭ２９の内部構成を示す図である。図２（Ａ）に示すＢＩＯＳフラッシュＲＯＭ４７は、不揮発性で記憶内容を電気的に書き替え可能なメモリであり、システムの起動および管理に使われる基本プログラムであるシステムＢＩＯＳ（SSO Shell Bios）６１、電源および温度などの動作環境を管理するソフトウェアである各種ユーティリティ６３、ＰＣ１０の起動時にハードウェアのテストを行うソフトウェアであるＰＯＳＴ（Power-On Self Test）６５、本発明に係る通信ユーティリティ６７、ＣＰＵ１１をＳＭＭで動作させるＳＭＩハンドラ６９、ＨＤＤ３９にアクセスするＩＮＴ１３Ｈハンドラ７１、後述するＢＩＯＳパスワード入力ユーティリティ７３などが記憶されている。システムＢＩＯＳ６１はまた、ＡＣＰＩに係る電源状態の制御を行うことも可能である。
【００２９】
図２（Ｂ）に示すＮＶＲＡＭ５７は、ノートＰＣ１０の電源を切っても消失しないように電池でバックアップされ、システムＢＩＯＳ６１からのみアクセス可能なＲＡＭである。ＮＶＲＡＭ５７は、ＰＣ１０でＯＳが起動している間は読み書き禁止となり、電源供給がリセットされるまで解除されない。ＮＶＲＡＭ５７は、ＰＣ１０のデバイス・コントローラの設定情報７５、および後述する暗号化ＢＩＯＳパスワード７７などを記憶している。設定情報７５の内容としては、主にディスク装置の起動順序やドライブ番号、各周辺機器の接続方法やデータ転送に関するパラメータなどがある。また、ＰＣ１０のシリアル・ナンバー８１、サーバの公開鍵８２、後述するパワーオン・パスワード８３およびスーパーバイザー・パスワード８４なども、設定情報７５に含まれる。なお、ＨＤＤパスワード８５は、ＨＤＤ３９の管理領域の中に磁気的に保存される。
【００３０】
図２（Ｃ）に示すメイン・メモリ２１には、ＰＣシステムの通常の動作で使用されるユーザ領域８９の他に、ＳＭＲＡＭ（System Management RAM）８７としての領域が確保されている。システムＢＩＯＳ６１からＳＭＩハンドラ６９が呼び出されることによってＣＰＵ１１がＳＭＭに入ると、ＣＰＵ１１はシングル・タスクでの動作となり、すべての割り込みは無効とされる。さらに、ＳＭＲＡＭ８７はＳＭＭで動作するＣＰＵ１１が独占的に使用可能となる。メイン・メモリ２１の中には、本発明に係る仮想メールボックス９１としての領域が確保されるが、詳しくは後述する。なお、仮想メールボックス９１は、図２（Ｃ）ではユーザ領域８９に含まれるように表記されているが、ＳＭＲＡＭ領域８７に含まれても、またＳＭＲＡＭ領域８７とユーザ領域８９の両方にまたがってもよい。
【００３１】
図２（Ｄ）に示すＥＥＰＲＯＭ２９は、不揮発性で記憶内容を電気的に書き替え可能とされているメモリであるが、ＮＶＲＡＭ５７と違ってＯＳとシステムＢＩＯＳ６１の両方から読み書き可能な領域９３が存在し、この領域をＯＳとシステムＢＩＯＳ６１との間でデータの交換のために利用できる。
【００３２】
ＰＣ１０を起動する際に使用されるパスワードとして、パワーオン・パスワード８３、スーパーバイザー・パスワード８４、およびＨＤＤパスワード８５の３通りのパスワードが使用される。これらの３種類のパスワードを総称してＢＩＯＳパスワードという。ＰＣ１０の電源を投入し、パワーオン・パスワード８３とＨＤＤパスワードを入力し、それらが正しく認証されると、ＯＳの起動だけが可能となる。スーパーバイザー・パスワード８４とＨＤＤパスワード８５を入力し、それらが正しく認証されると、ＯＳの起動と設定情報７５全体の変更が可能になる。なお、ＯＳはＨＤＤ３９にインストールされており、ＢＩＯＳパスワードの認証とシステムＢＩＯＳ６１によるハードウェアの初期設定が終了した後で起動される。ＯＳの種類は本実施の形態で特定されるものではなく、たとえばウィンドウズ（登録商標）、Ｌｉｎｕｘ（登録商標）などが使用可能である。以後、本実施の形態では、ウィンドウズ（登録商標）２０００およびウィンドウズ（登録商標）ＸＰのうちいずれかをＯＳとして利用するものとして説明を続ける。
【００３３】
以上で示したＰＣ１０を構成するハードウェア、および該ＰＣ１０の上で動作するＯＳとＢＩＯＳは、全てＡＣＰＩ（Advanced Configuration and Power Interface）に対応し、ＡＣＰＩによって電源の管理が行われる。ＡＣＰＩではいくつかの電源状態が規定されているが、本実施例ではサスペンド状態（またはSuspend To RAMを略してＳＴＲ、ＡＣＰＩでＳ３として規定される電源状態）を使用する。サスペンド状態では、メイン・メモリ２１に記憶された内容をそのままにして、ＣＰＵ１１やＨＤＤ３９など、ＰＣ１０を構成するメイン・メモリ２１以外のデバイスのほとんどへの電源の供給が停止される。通常の動作状態（ＡＣＰＩでいうＳ０の電源状態）にリジュームする際に、ＯＳを再起動する必要がなく、短時間でリジュームできるという特徴がある。しかも、通常の動作状態でＯＳが起動している間はアクセス不可能であるＮＶＲＡＭ５７は、ＰＣ１０がサスペンド状態に移行するとＢＩＯＳからアクセス可能になる。
【００３４】
図３は、本実施の形態に示すデータの転送における、各々の構成要素の概念図である。ＰＣ１０で動作するＯＳの中には、プライベートＧＩＮＡ（Graphical Identification and Authentication）１０１、物理メモリ・ドライバ１０３、ＰＳＩ（Private Security Interface）１０５、電源状態ドライバ１０７の各モジュールが存在する。プライベートＧＩＮＡ１０１は、本実施の形態のためにカスタマイズされ、ウィンドウズ（登録商標）のコンポーネントとして登録されたＧＩＮＡである。ＧＩＮＡは、ウィンドウズ（登録商標）にユーザがログオンする際に、ユーザＩＤ、パスワード、およびログオン先を入力するためのダイアログを表示し、それらの入力を受け付けるモジュールである。本実施の形態では、後述のサーバ１１０との間のデータの受け渡し、およびＢＩＯＳとの間のデータの受け渡しを管理するモジュールとして使用される。
【００３５】
物理メモリ・ドライバ１０３は、カーネル・モード・ドライバとしてウィンドウズ（登録商標）にインストールされ、後述する仮想メールボックス９１を介したデータの受け渡しを実行する。ＰＳＩ１０５は、ウィンドウズ（登録商標）のＤＬＬ（Dynamic Load Library）の一つであり、ＳＳＬによるセキュアなデータ通信を実行する。本実施の形態では、サーバ１１０との間でＳＳＬによる接続を確立してセキュアな通信を行う。電源状態ドライバ１０７は、やはりカーネル・モード・ドライバとしてウィンドウズ（登録商標）にインストールされ、ＡＣＰＩによる電源状態の管理および遷移を、ＡＣＰＩに対応したシステムＢＩＯＳ６１と協調して行う。
【００３６】
仮想メールボックス９１は、物理メモリ・ドライバ１０３によってメイン・メモリ２１の中に確保された領域である。ウィンドウズ（登録商標）が管理しているメイン・メモリ２１の論理アドレスをシステムＢＩＯＳ６１で解釈することは不可能であるが、物理メモリ・ドライバ１０３はメイン・メモリ２１上の特定の物理アドレスを仮想メールボックス９１としてキープし、Ｉ／Ｏ命令を使用してＣＰＵ１１のレジスタ経由でＳＭＩを発行し、ＣＰＵ１１のレジスタで指定される該物理アドレスをシステムＢＩＯＳ６１に伝達することができる。このことを利用して、特定のデータをウィンドウズ（登録商標）からシステムＢＩＯＳ６１の制御に渡し、システムＢＩＯＳ６１の制御下で処理されて仮想メールボックス９１内に記憶されたデータをウィンドウズ（登録商標）側で受け取ることができる。
【００３７】
システムＢＩＯＳ６１の制御下で、本発明に係る通信ユーティリティ６７が動作し、仮想メールボックス９１を介して受け取ったデータを処理する。また通信ユーティリティ６７は、ＮＶＲＡＭ５７に記憶された設定情報７５にアクセスし、該設定情報の内容を書き換えることができる。システムＢＩＯＳ６１は、電源状態ドライバ１０７と協調して電源状態の管理および遷移を行い、またＲＴＣ２８、およびエンベデッド・コントローラ４３などのような、電源状態に関わるデバイスを制御することができる。しかしＢＩＯＳはシングル・タスクであるので、通信ユーティリティ６７の動作とシステムＢＩＯＳ６１の動作とが同時に行われることはない。もちろん、ＢＩＯＳの制御下で動作している単一のタスク以外のプログラムが動作することもない。
【００３８】
一方、サーバ１１０では、ＰＳＩ．ａｓｐｘ（Private Security Interface in Server）１１１というモジュール（ここではActive Server Page）が動作する。ＰＳＩ．ａｓｐｘ１１１は、ＰＣ１０上のＰＳＩ１０５との間でＳＳＬによる接続を確立することにより、セキュアな通信を行うことができる。ＰＳＩ．ａｓｐｘ１１１を介して、ドメイン・ユーザ・テータベース１１３、およびＢＩＯＳパスワード・テータベース１１５が、ＰＣ１０と通信を行う。ドメイン・ユーザ・テータベース１１３には、サーバ１１０が管理するドメインに属する全てのユーザのユーザＩＤおよびパスワードが記憶される。これによってサーバ１１０は、ドメイン・コントローラとして機能し、当該ドメインに参加する全てのＰＣにおいて、ドメイン・ログオンしようとする当該ドメインのユーザを認証することができる。ＢＩＯＳパスワード・テータベース１１５には、サーバ１１０が管理するドメインに属する全てのＰＣのＢＩＯＳパスワードが記憶される。以後、本実施の形態では、サーバ１１０は、「信頼に値する」ものであり、当該サーバ自体からの情報の漏洩の可能性は考えなくてもよいものとする。
【００３９】
図４は、仮想メールボックス９１を介したＢＩＯＳとウィンドウズ（登録商標）との間のデータの交換について示す図である。物理メモリ・ドライバ１０３は、メイン・メモリ２１上に十分な大きさの領域を確保し、これを仮想メールボックス９１とする。その上で物理メモリ・ドライバ１０３は、仮想メールボックス９１に該当するアドレスを、システムＢＩＯＳ６１に通知する。その上で、ウィンドウズ（登録商標）で通信を行うモジュールは、ＢＩＯＳに渡したいデータを仮想の電子メールに見立てた仮想電子メール２００として、仮想メールボックス９１上に記憶する。仮想メールボックス９１としては、本実施の形態ではおよそ４ＫＢ程度のメモリ容量を確保するが、この容量は必要に応じてさらに増加することもできる。
【００４０】
仮想電子メール２００は、ＰＣ１０とサーバ１１０との間で交換される暗号化された情報の一単位を電子メールに見立てたものであり、ヘッダ２０１、ボディ２０３、デジタル署名２０５で構成される。ヘッダ２０１は、データ作成元の署名２１１（Signature）、データの全バイト数２１２（Length）、データ種類と処理内容２１３（Request）、送信日時２１４（Timestamp）、メールのＩＤ２１５（Reference ID）、および初期ベクトル２１６（Initial Vector）などからなる。データ種類と処理内容２１３は、たとえばデータ種類は「パワーオン・パスワード」「ＨＤＤパスワード」など、処理内容は「更新命令」「更新を行った結果」などのように指定される。初期ベクトル２１６は、共通鍵暗号化をＣＢＣ（Cipher Block Chaining）方式で行うときに使用されるデータである。ＣＢＣは、平文を暗号化する前に直前のブロックの暗号文をＸＯＲ処理してから暗号化を行う方式であり、平文に繰り返しパターンがあっても暗号文には繰り返しパターンは現れないという特徴がある。ボディ２０３は、伝達される対象となるデータが暗号化された本文２２１（Mail Content）、および本文に対するデジタル証明に使用される鍵２２２（Key concatenated for Digest）からなる。デジタル署名２０５は、ヘッダ２０１および本文２２１から、サーバ１１０とシステムＢＩＯＳ６１の双方が持つ鍵２３１を使って生成されたダイジェストである。この鍵２３１は、送信側と受信側の両方が同一の鍵を持つ共通鍵であってもよいし、また一方が秘密鍵でもう一方がそれに対応した公開鍵であってもよい。
【００４１】
サーバ１１０で作成された仮想電子メール２００は、ＰＳＩ．ａｓｐｘ１１１とＰＳＩ１０５との間で確立されたＳＳＬによるセキュアな通信チャネルを介してＰＣ１０に届く。ＰＣ１０内部では、届いた仮想電子メール２００は仮想メールボックス９１を介してシステムＢＩＯＳ６１に渡される。逆に、システムＢＩＯＳ６１で作成された仮想電子メール２００は、仮想メールボックス９１を介してＯＳに制御されるＰＳＩ１０５に渡され、ＰＳＩ１０５とＰＳＩ．ａｓｐｘ１１１との間で確立されたＳＳＬによるセキュアな通信チャネルを介してサーバ１１０に届く。サーバ１１０とシステムＢＩＯＳ６１の双方が、鍵２３１を利用して仮想電子メール２００のボディ２０３の暗号化と復号化、さらにはデジタル署名２０５の付加と検証を行う。つまり、ＰＣ１０内部でＯＳの制御下で動作する環境では、仮想電子メール２００は伝達される対象のデータを含むボディ２０３が必ず暗号化された状態でやりとりされるので、この状態でスパイウェアなどにボディ２０３を読み取られても、対象データの内容を知られることはない。
【００４２】
なお、図４で示した仮想電子メール２００のデータ形式は、従来技術で送受信される暗号化されたデータと全く同じである。サーバ１１０の側では、従来技術と全く同じように情報が暗号化され、ＰＣ１０に送信される。該暗号化されたデータを受け取ったＰＣ１０の側で、該暗号化されたデータを仮想電子メール２００と呼んで、処理しているに過ぎない。ＰＣ１０の側で作成された仮想電子メール２００をサーバ１１０が受け取った場合も、サーバ１１０の側では、仮想電子メール２００に含まれる暗号化済みの情報が従来技術と全く同じように復号化されて処理される。以後の説明で、便宜上「サーバ側で仮想電子メールを作成する」などのような表現をしている部分があるが、実際には本実施の形態を実施するに際して、サーバ１１０の側でハードウェアの追加もしくは変更は全くない。
【００４３】
図５〜６は、本発明の実施の形態で行われるデータ転送の手順を示すフローチャートである。図面の錯綜を回避するために、フローチャートは図５と図６の２枚に分けて表記されている。また図７は、図５のデータ転送で、相互に送信されるデータの構造を示す図である。ここでは、ＰＣ１０とサーバ１１０との間で、次に示す（１）〜（４）の処理を順番に行おうとしている。
（１）ドメインの管理者によってＢＩＯＳパスワード・テータベース１１５に設定されたＢＩＯＳパスワードをサーバ１１０からＰＣ１０に送信する。
（２）ＰＣ１０が、サーバ１１０から受信したＢＩＯＳパスワードを自らに設定し、設定したＢＩＯＳパスワードを、ユーザが入力する外部鍵によって暗号化してＮＶＲＡＭ５７に保存する。
（３）ＰＣ１０が、設定結果をサーバ１１０に返信する。
（４）サーバ１１０が、ＰＣ１０から受信した設定結果に基づいて、ＢＩＯＳパスワード・テータベース１１５のデータを更新する。
【００４４】
ＰＣ１０には、ユーザがサーバ１１０内のドメイン・ユーザ・テータベース１１３によって認証されてドメイン・ログオンしているものとする。ＰＣ１０の側からプライベートＧＩＮＡ１０１を介して、ＢＩＯＳパスワード設定のリクエストがサーバ１１０に送信されると（ブロック３０１〜３０３）、以下に示す処理が開始される。ここで、ＢＩＯＳパスワードの設定のリクエストは、ログオン時にＢＩＯＳパスワードを入力しているので設定更新のリクエストになるが、ＰＣ１０にＢＩＯＳパスワードが設定されていない場合は新規設定のリクエストになる。送信されるリクエストには、ＰＣ１０のホスト名およびシリアル・ナンバー８１、およびログオンしているユーザのＩＤ等が含まれる。サーバ１１０は、ＢＩＯＳパスワード・テータベース１１５で、図７（Ａ）に示す仮想電子メール４００ａを作成する（ブロック３０５）。仮想電子メール４００ａのボディ４０３ａの内容には、ＢＩＯＳパスワード４１１、および今回の処理のみに使われるワンタイム・パスワード４１３が含まれる。ボディ４０３ａの暗号化、およびデジタル署名４０５ａの作成には、ＢＩＯＳパスワード・テータベース１１５が保持する当該ＰＣのスーパーバイザー・パスワード８４が共通鍵４２１として使用される。これにヘッダ４０１ａが付加されて、仮想電子メール４００ａが作成される。ＢＩＯＳパスワードが複数の場合は、仮想電子メール４００ａも複数になる。また、それら複数の仮想電子メール４００ａには、一括して処理を行えるよう、全て同一の共通鍵４２１が使用される。たとえばパワーオン・パスワード８３およびＨＤＤパスワード８５を更新する場合は、パワーオン・パスワード８３とＨＤＤパスワード８５とでそれぞれに仮想電子メール４００ａが作成される。
【００４５】
ＰＳＩ．ａｓｐｘ１１１がＰＣ１０とサーバ１１０の間でＳＳＬによるセキュアな通信チャネルを確立し（ブロック３０７）、作成された仮想電子メール４００ａがＰＳＩ．ａｓｐｘ１１１からＰＳＩ１０５へ届く（ブロック３０９）。ＰＳＩ１０５へ届いた仮想電子メール４００ａは、プライベートＧＩＮＡ１０１から物理メモリ・ドライバ１０３に渡る（ブロック３１１〜３１３）。物理メモリ・ドライバ１０３は、仮想電子メール４００ａを仮想メールボックス９１に記憶させる（ブロック３１５）。物理メモリ・ドライバ１０３は、仮想電子メール４００ａが複数ある場合は、複数の仮想電子メール４００ａを同時に仮想メールボックス９１に記憶させる。そして物理メモリ・ドライバ１０３は、ＳＭＩハンドラ６９を呼び出すことにより、仮想メールボックス９１の物理アドレスと仮想電子メール４００ａが存在することをシステムＢＩＯＳ６１に伝達する（ブロック３１７）。
【００４６】
ここでプライベートＧＩＮＡ１０１は、電源状態ドライバ１０７に対してＰＣ１０の動作状態を「サスペンド／リジューム」に移行することを要求する（ブロック３１９）。サスペンド／リジュームを実行するために、電源状態ドライバ１０７から指示を受けたシステムＢＩＯＳ６１が、通常のサスペンド状態に移行する準備（ブロック３１９）に加えて、サスペンド状態に移行した直後にリジュームさせるための準備を行う（ブロック３２１）。サスペンド状態に移行した直後にリジュームさせるための準備とは、システムＢＩＯＳ６１によって制御されるＲＴＣ２８もしくはエンベデッド・コントローラ４３などのデバイスに、サスペンド状態に移行した直後にリジュームに関わるイベントを発生させるようにする処理である。これらの処理が完了したらＰＣ１０はサスペンド状態に移行し（ブロック３２３）、すぐにリジュームしてシステムＢＩＯＳ６１による制御に映る（ブロック３２５）。ここで、それまでＯＳによる制御の下では読み書きが禁止されていたＮＶＲＡＭ５７が読み書き可能になる。
【００４７】
リジュームしたＰＣ１０では、システムＢＩＯＳ６１に格納された通信ユーティリティ６７が起動し（ブロック３２７）、仮想メールボックス９１に記憶された仮想電子メール４００ａのボディ４０３ａを復号する処理に入る。ＰＣ１０がサスペンドしてもメイン・メモリ２１には電力が供給され続けているので、仮想メールボックス９１の内容は保持されている。ボディ４０３ａは、共通鍵４２１である、ＮＶＲＡＭ５７内部の設定情報７５に記録されたスーパーバイザー・パスワード８４によって復号化され、サーバ１１０から送られた新しいＢＩＯＳパスワード４１１が取り出される（ブロック３３１）。取り出されたＢＩＯＳパスワード４１１がパワーオン・パスワード８３またはスーパーバイザー・パスワード８４であれば、ＮＶＲＡＭ５７内部の設定情報７５に書き込み、反映させる。ＨＤＤパスワード８５であれば、ＨＤＤ３９に書き込み、反映させる（ブロック３３３）。なお、通信ユーティリティ６７は、処理が終わった仮想電子メール４００ａを仮想メールボックス９１から削除する。また、仮想電子メール４００ａが複数ある場合は、ブロック３２７〜３３３の処理が仮想電子メール４００ａの数だけ繰り返される。なお、ここで共通鍵４２１をユーザに入力させるようにして、ＰＣ１０内に共通鍵を保存しないようにすることもできる。共通鍵４２１は、サーバ１１０が保持し、かつユーザが入力できるものであれば、スーパーバイザー・パスワード８４以外でもよい。
【００４８】
ＢＩＯＳパスワードを設定した設定結果についてサーバ１１０に知らせるために、通信ユーティリティ６７は、図７（Ｂ）に示す仮想電子メール４００ｂを作成し、仮想メールボックス９１に記憶させる（ブロック３３５）。仮想電子メール４００ｂのボディ４０３ｂの内容には、設定結果についてのメッセージ４３１を、仮想電子メール４００ａを通じて受け取ったワンタイム・パスワード４１３で暗号化したメッセージ４３５と、ＰＣ１０のシリアル・ナンバー８１が含まれる。ワンタイム・パスワード４１３による暗号化は、共通鍵方式または公開鍵方式のどちらでもよい。ボディ４０３ｂの暗号化およびデジタル署名４０５ｂの作成には、サーバ１１０が当該ドメインに参加するコンピュータに対して公開している公開鍵８２が使用される。この公開鍵は、予め受け取って設定情報７５に書き込んでもよいし、またＰＣ１０がサーバ１１０にアクセスする際にダウンロードするようにしてもよい。ボディ４０３ｂおよびデジタル署名４０５ｂにヘッダ４０１ｂが付加されて、仮想電子メール４００ｂが作成される。仮想電子メール４００ｂの作成で使われるワンタイム・パスワード４１３は、当該処理が終了すると破棄され、ＰＣ１０内部に保存されることはない。
【００４９】
以上で示したブロック３２７〜３３５の処理はシステムＢＩＯＳ６１による制御下で行われるので、ＣＰＵ１１はシングル・タスクで動作する。しかも該処理にはＣＰＵ１１が独占的に参照できるＳＭＲＡＭ８７が使用される。従って、ＯＳの動作環境で動作するスパイウェアもしくはキー・ロガーなどが、これらの復号化されたデータおよび入力されるデータを取得する事はできない。なお、この次にＢＩＯＳパスワード入力ユーティリティ７３による処理が、引き続きシステムＢＩＯＳ６１による制御下で行われるが（ブロック３５１〜３５５）、これについては後述する。
【００５０】
ここで仮想電子メール４００ｂをサーバ１１０に転送するために、システムＢＩＯＳ６１がＰＣ１０をＯＳの動作環境に戻す（ブロック３３７）。なお、ＰＣ１０がＯＳの動作環境に戻ると、ＮＶＲＡＭ５７は読み書き禁止となる。物理メモリ・ドライバ１０３を介して仮想電子メール４００ｂを得た（ブロック３３９）プライベートＧＩＮＡ１０１は、ＰＳＩ１０５を介して該仮想電子メール４００ｂをサーバ１１０のＰＳＩ．ａｓｐｘ１１１に送信する（ブロック３４１〜３４３）。ＰＳＩ．ａｓｐｘ１１１を介して仮想電子メール４００ｂを受け取ったＢＩＯＳパスワード・テータベース１１５は、ボディ４０３ｂを公開鍵８２に対応したサーバ１１０が保有する秘密鍵、および自らが発行したワンタイム・パスワード４１３によって復号化する。そして、復号化して得られた内容に基づいて、自らのデータを更新する（ブロック３４５〜３４７）。これでサーバ１１０によるＰＣ１０に対するＢＩＯＳパスワードの設定の処理を完了する（ブロック３４９）。
【００５１】
ＢＩＯＳパスワードが設定されたら、ＰＣ１０において、ＢＩＯＳの制御下でＢＩＯＳパスワード入力ユーティリティ７３が、当該ＰＣに係る複数のＢＩＯＳパスワードを１本にまとめて暗号化して保存する処理を行う。ＢＩＯＳパスワード入力ユーティリティ７３がユーザに外部鍵４３３の入力を要求し（ブロック３５１）、受け取った外部鍵４３３によってＢＩＯＳパスワードを暗号化し（ブロック３５１）、暗号化ＢＩＯＳパスワード７７としてＮＶＲＡＭ５７に保存する（ブロック３５３）。この暗号化は、ユーザが入力するパスワードを外部鍵４３３として利用することにより、共通鍵方式で行われる。ＢＩＯＳパスワードが設定されたＰＣ１０を起動する際に、ＢＩＯＳパスワード入力ユーティリティ７３がユーザに外部鍵の入力を要求する。入力された外部鍵によって、ＢＩＯＳパスワード入力ユーティリティ７３が暗号化ＢＩＯＳパスワード７７を復号化し、得られたパワーオン・パスワード８３（またはスーパーバイザー・パスワード８４）、およびＨＤＤパスワード８５を、それぞれシステムＢＩＯＳ６１およびＨＤＤ３９に入力する。各々のＢＩＯＳパスワードが認証されれば、ＰＣ１０でシステムＢＩＯＳ６１によるシステムの初期化、およびＯＳの起動が可能となる。この方式によれば、ユーザは自らが覚えやすいパスワードを外部鍵４３３として使用することができ、さらに外部鍵４３３をＰＣ１０内部に保存する必要はない。
【００５２】
なお、ブロック３３５で作成される仮想電子メール４００ｂのボディ４０３ｂの中に、暗号化ＢＩＯＳパスワード７７の作成に使われた外部鍵４３３をワンタイム・パスワード４０５で暗号化してメッセージ４３５に含めて、ブロック３３９でサーバ１１０に送信して、ブロック３４１でＢＩＯＳパスワード・テータベース１１５に保存させることもできる。その結果、ユーザが該外部鍵を忘れてＰＣ１０を起動できなくなったときの救済措置として、ＢＩＯＳパスワード・テータベース１１５に保存された外部鍵を利用できる。
【００５３】
なお、ＰＣ１０の側からではなく、サーバ１１０の側からＰＣ１０に対してＢＩＯＳパスワードの新規設定または更新のリクエストを送信することによって、以上に示す処理を開始させることもできる。たとえば、該ドメイン内に定期的にＢＩＯＳパスワードもしくは外部鍵４３３を更新していないＰＣがあった場合、当該ＰＣが起動しているときに当該ＰＣに対して更新のリクエストを送信し、実際にＢＩＯＳパスワードおよび外部鍵４３３を更新させることができる。ただし、リクエストを送信されたときにユーザが当該ＰＣを利用して作業中である場合など、すぐにＢＩＯＳパスワード設定の作業に入れないことがある。その場合は、サーバ１１０からのリクエストを受信したＰＣ１０は、ＢＩＯＳパスワード設定のリクエストがあった旨をディスプレイ２５に表示し、当該リクエストについてユーザに知らせるようにすることが望ましい。ユーザは、すぐにＢＩＯＳパスワード設定を開始することも、自らの作業が終了した後でＢＩＯＳパスワード設定を開始することも選択できる。以上で述べた実施の形態を、セキュリティ・ポリシーを一括して設定して管理するシステムの中で利用することにより、ドメイン内に存在する全てのＰＣでもれなくＢＩＯＳパスワードを設定し、それらをサーバ側で一括して管理することが可能になる。
【００５４】
本実施の形態は、ほとんどのＰＣが標準的に備えるハードウェアのみを利用している。そのため、本実施の形態はソフトウェアのインストールおよび変更だけで実施することが可能である。新たにインストールされるソフトウェアは、プライベートＧＩＮＡ１０１、物理メモリ・ドライバ１０３、電源状態ドライバ１０７、および通信ユーティリティ６７である。システムＢＩＯＳ６１は、本実施の形態特有の動作に対応するように変更される。サーバ側も、前述の通りハードウェアを一切変更する必要はない。また、前述の実施の形態では、ウィンドウズ（登録商標）をＯＳとするＰＣによって構築されたネットワーク（ＬＡＮもしくはＷＡＮ）のドメインについて述べたが、本発明の実施は必ずしもそれに限定されない。もちろん、ＯＳはウィンドウズ（登録商標）・シリーズに限定されない。さらに、サーバとＰＣとの間でセキュアな接続を確立できる通信方式であれば、通信方式はＳＳＬに限定されず、また通信に使用されるモジュールはＰＳＩ１０５およびＰＳＩ．ａｓｐｘ１１１に限定されない。
【００５５】
以上で述べた実施の形態は、機密性の高い情報をネットワークを介して転送および入力することを必要とする多くの場面で応用されうる。たとえばインターネット・バンキングなどのように、インターネットを介して機密性の高い情報を交換するための通信ソフトとして本発明の方法を提供することもできる。また、インターネット・エクスプローラ（登録商標）などのようなウェブ・ブラウザにプラグインとして組み込み、ウェブサイトとのデータの交換の中で本発明の方法を利用することもできる。
【００５６】
また、前述の実施の形態では、ＰＣ１０をシステムＢＩＯＳ６１による制御に移行させるために「サスペンド／リジューム」を利用したが、ハイバーネーションが実行された状態（ＡＣＰＩでＳ４として規定される電源状態、別名Suspend To Diskを略してＳＴＤ）からすぐリジュームする動作を同じ目的で利用することもできる。ハイバーネーションが実行されると、メイン・メモリ２１に記憶されていた内容はＨＤＤ３９に保存され、メイン・メモリ２１に対する電力の供給は中断される。しかし、そこからリジュームすれば、メイン・メモリ２１に対する電力供給が再開し、メイン・メモリ２１に記憶されていた内容はＨＤＤ３９から当該メモリに復元される。つまり、それによって仮想メールボックス９１の内容も復元されることになるので、以後の仮想電子メール４００ａに係る処理は、サスペンドを利用した場合と全く同じに行うことができる。
【００５７】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００５８】
ネットワークに接続されるコンピュータにおいて利用可能である。
【図面の簡単な説明】
【００５９】
【図１】ノートＰＣの概略ブロック図である。
【図２】ＢＩＯＳフラッシュＲＯＭ、セキュアＮＶＲＡＭ、メイン・メモリ、およびＥＥＰＲＯＭの内部構成を示す図である。
【図３】データの転送における、各々の構成要素の概念図である。
【図４】仮想メールボックスを介したＢＩＯＳとウィンドウズ（登録商標）との間のデータの交換について示す図である。
【図５】データの転送の動作を示すフローチャートである。
【図６】図５の続きである。
【図７】データの転送で、相互に送信されるデータの構造を示す図である。
【符号の説明】
【００６０】
１０  ノートＰＣ
１１  ＣＰＵ
２１  メイン・メモリ
２８  ＲＴＣ（Real Time Clock）
２９  ＥＥＰＲＯＭ
３９  ハード・ディスク・ドライブ(ＨＤＤ)
４３  エンベデッド・コントローラ
４７  ＢＩＯＳフラッシュＲＯＭ
５７  ＮＶＲＡＭ
６１  システムＢＩＯＳ（SSO Shell Bios））
６７  通信ユーティリティ
６９  ＳＭＩハンドラ
７３  ＢＩＯＳパスワード入力ユーティリティ
７５  設定情報
７７  暗号化ＢＩＯＳパスワード
８１  シリアル・ナンバー
８２  サーバの公開鍵
８３  パワーオン・パスワード
８４  スーパーバイザー・パスワード
８５  ＨＤＤパスワード
８７  ＳＭＲＡＭ（System Management RAM）
９１  仮想メールボックス
１０１  プライベートＧＩＮＡ
１０３  物理メモリ・ドライバ
１０５  ＰＳＩ
１０７  電源状態ドライバ
１１０  サーバ
１１１  ＰＳＩ．ａｓｐｘ
１１３  ドメイン・ユーザ・テータベース
１１５  ＢＩＯＳパスワード・テータベース
２００，４００ａ，４００ｂ  仮想電子メール
２０１，４０１ａ，４０１ｂ  ヘッダ
２０３，４０３ａ，４０３ｂ  ボディ
２０５，４０５ａ，４０５ｂ  デジタル署名
２３１  鍵
４１１  ＢＩＯＳパスワード
４１３  ワンタイム・パスワード
４２１  共通鍵
４３１  設定の結果についてのメッセージ
４３３  外部鍵
４３５  メッセージ
【図１】
2008026934.tif 000003
【図２】
2008026934.tif 000004
【図３】
2008026934.tif 000005
【図４】
2008026934.tif 000006
【図５】
2008026934.tif 000007
【図６】
2008026934.tif 000008
【図７】
2008026934.tif 000009