(57)【特許請求の範囲】
【請求項１】
認証ＯＳ上で動作する認証処理の結果をもとに運用ＯＳを動作させる認証装置であって、
前記認証ＯＳおよび前記運用ＯＳが読み込まれる先のＯＳ動作領域と、前記認証処理の結果として取得される運用ＯＳ復号鍵が格納される共有メモリ領域とを有する主メモリと、
前記認証ＯＳの格納領域と、暗号化されている状態で格納されている前記運用ＯＳの格納領域とをそれぞれ有するディスク装置と、
前記認証装置の電源投入時に動作するＢＩＯＳを格納するＲＯＭと、
前記ＢＩＯＳ、前記認証ＯＳおよび前記運用ＯＳをそれぞれ前記主メモリに読み込んで動作させるＣＰＵとを有するとともに、前記認証処理に用いられるデバイスが接続されており、
電源投入時に動作する前記ＢＩＯＳは、前記デバイスを自身の動作が可能な状態に初期化する第１初期化処理を実行するとともに、前記認証ＯＳを前記ＯＳ動作領域に読み込み、
前記認証ＯＳは、前記第１初期化処理で初期化された前記デバイスの状態を待避するバックアップ処理を実行してから、前記デバイスを自身の動作が可能な状態に初期化する第２初期化処理を実行し、その初期化された前記デバイスを用いて前記認証処理を動作させることで、前記認証装置のユーザ認証を実施し、その認証が許可されたときには、前記共有メモリ領域に前記運用ＯＳ復号鍵を書き出し、前記共有メモリ領域内のデータ内容を保持したままで前記ＢＩＯＳを再起動し、
前記ＢＩＯＳは、再起動されたときに、前記バックアップ処理で待避された前記第１初期化処理での前記デバイスの状態を回復するロールバック処理を実行してから、前記運用ＯＳ復号鍵で復号化した前記運用ＯＳを前記ＯＳ動作領域に読み込み、
前記運用ＯＳは、前記デバイスを自身の動作が可能な状態に初期化する第３初期化処理を実行し、前記主メモリ上で稼働することを特徴とする
認証装置。
【請求項２】
前記ＣＰＵは、前記認証ＯＳ上で動作する前記認証処理として、初期化された前記デバイスであるキーボードおよびマウスを介して入力されるＩＤおよびパスワードの組み合わせとして構成される認証情報を用いて、入力された認証情報と、事前登録された認証情報とが一致するときに、認証成功とすることを特徴とする
請求項１に記載の認証装置。
【請求項３】
前記ＣＰＵは、前記認証ＯＳ上で動作する前記認証処理として、初期化された前記デバイスであるキーボードおよびマウスを介して入力されるワンタイムパスワードとして構成される認証情報を用いて、入力された認証情報と、事前登録された認証情報とが一致するときに、認証成功とすることを特徴とする
請求項１に記載の認証装置。
【請求項４】
前記ＣＰＵは、前記認証ＯＳ上で動作する前記認証処理として、初期化された前記デバイスであるキーボードおよびマウスを介して入力されるＰＩＮ（Personal Identification Number）として構成される認証情報を用いて、入力された認証情報と、前記認証装置に挿入される初期化された前記デバイスである認証用ＵＳＢ機器内の認証情報とが一致するときに、認証成功とすることを特徴とする
請求項１に記載の認証装置。
【請求項５】
前記ＣＰＵは、前記認証ＯＳ上で動作する前記認証処理として、前記認証装置にネットワーク接続された認証サーバの認証結果が認証成功であるときに、認証成功とすることを特徴とする
請求項１に記載の認証装置。
【請求項６】
認証ＯＳ上で動作する認証処理の結果をもとに運用ＯＳを動作させる認証装置が実行する認証方法であって、
前記認証装置は、
前記認証ＯＳおよび前記運用ＯＳが読み込まれる先のＯＳ動作領域と、前記認証処理の結果として取得される運用ＯＳ復号鍵が格納される共有メモリ領域とを有する主メモリと、
前記認証ＯＳの格納領域と、暗号化されている状態で格納されている前記運用ＯＳの格納領域とをそれぞれ有するディスク装置と、
前記認証装置の電源投入時に動作するＢＩＯＳを格納するＲＯＭと、
前記ＢＩＯＳ、前記認証ＯＳおよび前記運用ＯＳをそれぞれ前記主メモリに読み込んで動作させるＣＰＵとを有するとともに、前記認証処理に用いられるデバイスが接続されており、
電源投入時に動作する前記ＢＩＯＳは、前記デバイスを自身の動作が可能な状態に初期化する第１初期化処理を実行するとともに、前記認証ＯＳを前記ＯＳ動作領域に読み込み、
前記認証ＯＳは、前記第１初期化処理で初期化された前記デバイスの状態を待避するバックアップ処理を実行してから、前記デバイスを自身の動作が可能な状態に初期化する第２初期化処理を実行し、その初期化された前記デバイスを用いて前記認証処理を動作させることで、前記認証装置のユーザ認証を実施し、その認証が許可されたときには、前記共有メモリ領域に前記運用ＯＳ復号鍵を書き出し、前記共有メモリ領域内のデータ内容を保持したままで前記ＢＩＯＳを再起動し、
前記ＢＩＯＳは、再起動されたときに、前記バックアップ処理で待避された前記第１初期化処理での前記デバイスの状態を回復するロールバック処理を実行してから、前記運用ＯＳ復号鍵で復号化した前記運用ＯＳを前記ＯＳ動作領域に読み込み、
前記運用ＯＳは、前記デバイスを自身の動作が可能な状態に初期化する第３初期化処理を実行し、前記主メモリ上で稼働することを特徴とする
認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証装置、および、認証方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）などの情報処理装置では、不正利用を防止するために、各種の認証機能を利用し、セキュリティを確保している。しかし、セキュリティに対する脅威は年々増加しており、この認証機能は、従来よりも強固なものが要求されている。
【０００３】
特許文献１には、ＰＣの起動時にＢＩＯＳ（Basic Input/Output System）がロードするシステムイメージが真正なデータか否かを、そのシステムイメージに付随する電子署名を用いて認証する旨が記載されている。この際、デジタル署名を公開鍵で復号化したハッシュ値とROM上のハッシュ値を比較する。復号化された仮想デバイスを実デバイスにアクセスするインタフェースを変更する。システムイメージが真正ならば、仮想デバイスを形成し、仮想デバイスからシステムイメージに格納されているＯＳ（Operating System）を起動する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７２３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
なお、ＰＣを特定のユーザには使用させ、別のユーザには使用させないように、ユーザ認証するケースが多い。ユーザ認証では、不正なユーザを排除するセキュリティ強度の向上に加えて、正規のユーザがＰＣを利用可能になるまでの認証処理の手間を削減することが、求められている。
【０００６】
しかし、特許文献１に記載の手法のように、ＯＳ起動前のＢＩＯＳが認証処理を行う形態では、ＰＣに接続されているキーボード、マウス、ディスプレイおよびＵＳＢ（Universal Serial Bus）機器などの豊富な認証用デバイスを認証処理に用いることができず、ＰＣのセキュリティと使いやすさがそれぞれ不充分である。
【０００７】
なぜなら、そもそもＢＩＯＳとは、ＯＳ起動の前処理を行うための簡易的なプログラムであり、１６ビットで動作したり、ＯＳ起動のために必要最低限のデバイスだけを認識したりするように、負荷の大きい認証処理を動作させることを想定して設計されていないためである。
【０００８】
そこで、本発明は、前記した問題を解決し、コンピュータのＯＳ起動のための効率的なユーザ認証を行うことを、主な目的とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、認証ＯＳ上で動作する認証処理の結果をもとに運用ＯＳを動作させる認証装置であって、
前記認証ＯＳおよび前記運用ＯＳが読み込まれる先のＯＳ動作領域と、前記認証処理の結果として取得される運用ＯＳ復号鍵が格納される共有メモリ領域とを有する主メモリと、
前記認証ＯＳの格納領域と、暗号化されている状態で格納されている前記運用ＯＳの格納領域とをそれぞれ有するディスク装置と、
前記認証装置の電源投入時に動作するＢＩＯＳを格納するＲＯＭと、
前記ＢＩＯＳ、前記認証ＯＳおよび前記運用ＯＳをそれぞれ前記主メモリに読み込んで動作させるＣＰＵとを有するとともに、前記認証処理に用いられるデバイスが接続されており、
電源投入時に動作する前記ＢＩＯＳが、前記デバイスを自身の動作が可能な状態に初期化する第１初期化処理を実行するとともに、前記認証ＯＳを前記ＯＳ動作領域に読み込み、
前記認証ＯＳが、前記第１初期化処理で初期化された前記デバイスの状態を待避するバックアップ処理を実行してから、前記デバイスを自身の動作が可能な状態に初期化する第２初期化処理を実行し、その初期化された前記デバイスを用いて前記認証処理を動作させることで、前記認証装置のユーザ認証を実施し、その認証が許可されたときには、前記共有メモリ領域に前記運用ＯＳ復号鍵を書き出し、前記共有メモリ領域内のデータ内容を保持したままで前記ＢＩＯＳを再起動し、
前記ＢＩＯＳが、再起動されたときに、前記バックアップ処理で待避された前記第１初期化処理での前記デバイスの状態を回復するロールバック処理を実行してから、前記運用ＯＳ復号鍵で復号化した前記運用ＯＳを前記ＯＳ動作領域に読み込み、
前記運用ＯＳが、前記デバイスを自身の動作が可能な状態に初期化する第３初期化処理を実行し、前記主メモリ上で稼働することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【００１０】
本発明によれば、コンピュータのＯＳ起動のための効率的なユーザ認証を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に関する情報処理システムの構成および動作概要を示す説明図である。
【図２】本発明の一実施形態に関するディスク装置の内部データを示す構成図である。
【図３】本発明の一実施形態に関する主メモリの内部データを示す構成図である。
【図４】本発明の一実施形態に関する情報処理装置の処理概要を示すフローチャートである。
【図５】本発明の一実施形態に関する導入処理手順を示すフローチャートである。
【図６】本発明の一実施形態に関するＢＩＯＳの処理手順を示すフローチャートである。
【図７】本発明の一実施形態に関する初期化するハードウェア情報を示す説明図である。
【図８】本発明の一実施形態に関する認証ＯＳの処理手順を示すフローチャートである。
【図９】本発明の一実施形態に関する割り込みベクタアドレスのフック処理を示す説明図である。
【図１０】本発明の一実施形態に関する運用ＯＳの処理手順を示すフローチャートである。
【図１１】本発明の一実施形態に関する運用ＯＳの読み込み処理を示すフローチャートである。
【図１２】本発明の一実施形態に関する運用ＯＳデバイスの再初期化処理を示すフローチャートである。
【図１３】本発明の一実施形態に関するユーザ認証方法を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００１３】
図１は、情報処理システムの構成および動作概要を示す説明図である。
図１（ａ）に示す情報処理装置１（認証装置）は、ネットワーク２を経由して認証サーバ３に接続する。情報処理装置１は、ＣＰＵ（Central Processing Unit）６、主メモリ７、ＲＯＭ（Read Only Memory）８、ディスプレイコントローラ１１、ディスプレイ１２、ディスク装置１３、ディスクコントローラ１４、ＰＳ（Personal System）２／ＵＳＢ（Universal Serial Bus）１６、キーボード１７、マウス１８およびＵＳＢ機器１９から構成される。
ＲＯＭ８には、ＢＩＯＳを格納する。また、認証サーバ３は、認証情報を格納し、情報処理装置１が入力を受け付けた認証情報と比較して検証することにより、ユーザ認証を行う。
【００１４】
図１（ｂ）は、情報処理装置１の動作概要を示すタイムチャートである。このタイムチャートでは、動作主体として、上から順に、ＲＯＭ８に格納されているＢＩＯＳ、ディスク装置１３に格納されている認証ＯＳ、および、ディスク装置１３に格納されている運用ＯＳがそれぞれ示されており、各ＯＳがＣＰＵ６によって実行されている時間帯については、その実行内容（例えば、Ｓ１１なら「初期化」）を矢印上の矩形に記載する。
【００１５】
まず、Ｓ１１の初期化処理が起動される前の前準備として、ディスク装置１３には、運用ＯＳと認証ＯＳとでそれぞれのＯＳのイメージファイルが別々に設けられ（パーティションで分割されたデュアルブート領域など）、少なくとも運用ＯＳは暗号化された状態で格納されている。認証ＯＳは、暗号化されていてもいなくてもよい。
【００１６】
さらに、前準備として、主メモリ７は、ＢＩＯＳが指定する共有メモリ領域と、それ以外の領域（ＯＳ動作領域と呼ぶ）とを含んでおり、両領域で情報処理装置１の電源オフ時には領域内のデータ内容が消去される。一方、共有メモリ領域では、ＢＩＯＳの起動（再起動）にもかかわらず、自身のデータ内容は消去されないような機構を備えているが、ＯＳ動作領域では、ＢＩＯＳの起動（再起動）ごとに自身のデータ内容は消去されてしまう。
ここで、共有メモリ領域へのアクセス権として、認証ＯＳを「書き込み許可」とし、運用ＯＳを「読み込み許可で書き込み不可」とすることが、望ましい。
【００１７】
Ｓ１１として、ＢＩＯＳは、自身のモードで（１６ｂｉｔモードで）各デバイス（画面、キーボード１７やマウス１８、ディスク装置１３、ＵＳＢ機器１９、その他の認証に必要なＰＣに搭載または接続された各機器）を初期化する。そして、ＢＩＯＳは、認証ＯＳのブートローダ（ＯＳをディスク装置から読み込み起動するプログラム）を実行することで、認証ＯＳのブートローダに認証ＯＳを読み込ませる。
【００１８】
Ｓ１２として、認証ＯＳは、情報処理装置１の各デバイスを自身のモードで（３２ｂｉｔモードで）初期化し、認証アプリケーションを認証ＯＳ上で動作させることで、キーボード１７やマウス１８などを使い、豊富なユーザインタフェースや高度な認証手段を提供する。そして、認証ＯＳは、ユーザ認証に成功したときには、運用ＯＳ復号鍵を共有メモリ領域に格納する。
認証ＯＳは、認証処理が終了すると、自身のモードで起動している各デバイスを、Ｓ１１でＢＩＯＳが初期化した状態に戻すため、ＢＩＯＳを再起動する。
【００１９】
Ｓ１３として、ＢＩＯＳは、Ｓ１１において自身のモードで（１６ｂｉｔモードで）初期化した各デバイスの状態と同じ状態へと回復する。または、Ｓ１１の初期化処理と同じ処理を再度実行してもよい。そして、ＢＩＯＳは、運用ＯＳのブートローダをメモリ上に読み込む。
Ｓ１４として、Ｓ１３のＢＩＯＳの起動（再起動）にもかかわらず、共有メモリ領域内のデータ内容は消去されないので、運用ＯＳのブートローダは、共有メモリ領域の運用ＯＳ復号鍵を参照して、運用ＯＳを復号化して、稼働させる。以上、図１（ｂ）をもとに、情報処理装置１の動作概要（Ｓ１１〜Ｓ１４）を説明した。
一方、図１（ｂ）の動作の代わりに、図１（ｃ）の動作を実行してもよい。図１（ｃ）では、図１（ｂ）のＳ１３に該当する各デバイスの状態の回復処理を、ＢＩＯＳではなく認証ＯＳが行っている例である。このように、Ｓ１３−２では、認証ＯＳがデバイスの回復処理を行うことにより、共有メモリ領域がＢＩＯＳを再起動しても消去されない機構をもたなくても、共有メモリ領域を消去させずに済む。
【００２０】
ここで、Ｓ１１とＳ１３とでは、その各処理が終了した状態での各デバイスの初期化状態（１６ｂｉｔモードでの利用可能状態）は同じであるので、デバイス状態のロールバック処理を行うことで、Ｓ１３での再起動処理を短縮することができる。
そのため、認証ＯＳは、Ｓ１２の認証処理を行う前に、Ｓ１１でＢＩＯＳが初期化した各デバイスの状態を主メモリ７の共有メモリ領域やディスク装置１３などに一旦退避しておく（ロールバック処理のためのバックアップ処理）。
次に、認証ＯＳは、Ｓ１２の認証処理を行った後に、バックアップ処理された各デバイスの状態をＢＩＯＳに通知することで、ＢＩＯＳはＳ１１で行った各デバイスの初期化処理を、Ｓ１３でも繰り返さなくても済む（ロールバック処理）。
【００２１】
なお、Ｓ１２の処理後の認証ＯＳが、Ｓ１３を省略して、Ｓ１４の運用ＯＳを直接呼び出さない理由は、Ｓ１２の処理後の各デバイスの状態が、認証ＯＳのモードで（３２ｂｉｔモードで）動作しているため、このままでは、運用ＯＳを実行できないためである。
つまり、認証ＯＳでも運用ＯＳでも、そのＯＳのブートローダを介してＯＳ本体をディスク装置１３から主メモリ７に展開するためには、その前準備として、各デバイス（ディスク装置１３、主メモリ７）をＢＩＯＳのモードで（１６ｂｉｔモードで）初期化した状態にする必要がある。
【００２２】
図２は、ディスク装置の内部データを示す構成図である。
ディスク装置１３には、ＭＢＲ（Master  Boot  Record）２０、運用ＯＳ領域２１および認証ＯＳ領域２５が格納されている。運用ＯＳは情報処理装置１が通常業務に使用するＯＳであり、認証ＯＳは運用ＯＳの認証を行うためのＯＳである。
ＭＢＲ２０は、情報処理装置１の起動時に最初に読み込まれるディスク装置１３のセクタであり、ディスク装置１３の先頭に置かれ、ディスク装置１３内のどちらのＯＳを（認証ＯＳまたは運用ＯＳ）、どのように起動するかなどの情報が記録されている。ＭＢＲ２０は、電源投入時には認証ＯＳを起動するように指定されている。
【００２３】
運用ＯＳ領域２１は、その領域内のデータ内容の少なくとも一部が暗号化されている領域であり、ブートローダ２２、運用ＯＳ２３および運用ＯＳのＡＰ（Application）２４から構成される。
ブートローダ２２は、ＭＢＲ２０で指定される起動用領域の１つであり、運用ＯＳ２３をディスク装置１３から読み込み起動するプログラムである。
運用ＯＳ２３は、図１（ｂ）で説明したように、ユーザ認証が許可されたときに、稼働するＯＳである。
運用ＯＳのＡＰ２４は、運用ＯＳ２３で動作する各種アプリケーションである。
【００２４】
認証ＯＳ領域２５は、暗号化してもよいし、暗号化しなくてもよい領域であり、ブートローダ２６、認証ＯＳ２７および認証ＯＳの認証ＡＰ２８から構成される。
ブートローダ２６は、ＭＢＲ２０で指定される起動用領域の１つであり、認証ＯＳ２７を主メモリ７に読み込む。ここで、認証ＯＳ領域２５を暗号化した場合、ブートローダ２６は、認証ＯＳ復号鍵２６−１を参照しながら、認証ＯＳ２７の復号処理を行う。
認証ＯＳ２７は、図１（ｂ）で説明したように、運用ＯＳ２３をユーザに利用させるか否かをユーザ認証するための認証ＯＳの認証ＡＰ２８を動作させるＯＳである。
【００２５】
図３は、主メモリの内部データを示す構成図である。
主メモリ７は、ＢＩＯＳ３０と共有メモリ領域３１を設ける。ＢＩＯＳ３０は１６ビットで動作する。ＢＩＯＳ３０には、運用ＯＳ復号鍵の格納アドレス３０−１を設定するテーブルを設け、そこから運用ＯＳ復号鍵３１−１を格納するアドレスを設定する。
ＢＩＯＳ３０と共有メモリ領域３１はＯＳにより、初期設定されない領域である。また、運用ＯＳ復号鍵の格納アドレス３０−１はシステム設定時に決めておき、運用ＯＳと認証ＯＳで共有できるようにする。
【００２６】
一方、主メモリ７のうちのＢＩＯＳ３０と共有メモリ領域３１とを除外した残りの領域（図１（ｂ）の説明では「ＯＳ動作領域」）は、認証ＯＳ２７の使用時と運用ＯＳ２３の使用時で格納されているデータ内容が異なる。
認証ＯＳ使用時には、認証ＯＳ領域３２として、ブートローダ３３、認証ＯＳ３４、および、認証ＯＳの認証ＡＰ３５から構成される。
運用ＯＳ使用時には、運用ＯＳ領域４２として、ブートローダ４３、運用ＯＳ４４、運用ＯＳのＡＰ４５および、復号ドライバ４６から構成される。
【００２７】
共有メモリ領域３１は、運用ＯＳ４４と認証ＯＳ３４が情報を共有するために、両ＯＳ（認証ＯＳ３４、運用ＯＳ４４）からアクセス可能な領域である。この共有メモリ領域３１には、認証ＯＳ３４が認証情報として運用ＯＳ復号鍵３１−１を格納し、運用ＯＳ４４がこれを参照する。
運用ＯＳ４４および認証ＯＳ３４は、それぞれＢＩＯＳ３０の１６ビットよりアドレスを拡張した３２ビットあるいは６４ビットで動作する。
【００２８】
図４は、情報処理装置１の処理概要を示すフローチャートである。
情報処理装置１の導入処理（図１（ｂ）では、Ｓ１１の初期化よりも前）では、運用ＯＳのＯＳ本体を暗号化して、ディスク装置１３に保存する（Ｓ１００）。さらに、認証ＯＳとその認証用ＡＰをディスク装置１３に保存する（Ｓ１０１）。
情報処理装置１の起動時（図１（ｂ）では、Ｓ１１）、ＢＩＯＳ３０は、１６ビットモードで機種固有なＣＰＵ、メモリおよびタイマなどの基本的なハードウェアの初期設定を行う（Ｓ１１０）。
【００２９】
認証ＯＳ３４に関する処理では、以下のＳ１２０〜Ｓ１２８に示すように、認証ＯＳ２７の起動処理と認証ＯＳの認証ＡＰ２８でのユーザ認証処理を行う（図１（ｂ）では、Ｓ１２）。
【００３０】
そのため、まず、ＢＩＯＳ３０は、認証ＯＳのブートローダ２６を主メモリ７に読み込み、ブートローダ２６を起動する（Ｓ１２０）。認証ＯＳのブートローダ２６は、ＢＩＯＳ３０を使って、認証ＯＳ３４を主メモリ７に読み込む（Ｓ１２１）。なお、認証ＯＳのブートローダ２６は、認証ＯＳ２７も暗号化されているときには、認証ＯＳ復号鍵２６−１を用いて、認証ＯＳ２７を復号化する。
【００３１】
復号化された認証ＯＳ２７として起動した認証ＯＳ３４は、ＢＩＯＳ３０が初期化したデバイスの状態を退避し（Ｓ１２２、図１（ｂ）で説明したバックアップ処理）、各種デバイスを初期化することで（Ｓ１２３）、認証ＯＳ３４が３２ビットモードで起動する（Ｓ１２４）。その際、ＢＩＯＳ３０からブートローダ２６を起動し、３２ビットＯＳのカーネルやドライバなどをディスク装置１３から主メモリ７上に読み込む。さらに、３２ビットＯＳのカーネルはＣＰＵを３２ビットモードに切り替え、ドライバが各種デバイスをＯＳに合わせて、初期化し直す。
【００３２】
認証ＯＳ３４は、認証ＯＳの認証ＡＰ３５を起動し、ユーザ認証を行う（Ｓ１２５）。認証ＯＳの認証ＡＰ３５は、ユーザ認証に成功すると、運用ＯＳ復号鍵３１−１を取得または生成し（Ｓ１２６）、共有メモリ領域３１に格納する（Ｓ１２７）。この際、共有メモリ領域３１はＢＩＯＳが指定する領域であり、ＯＳが上書きできない領域である。このため、運用ＯＳは、運用ＯＳ復号鍵３１−１が格納された共有メモリ領域３１を初期化しないことが保証できる。
認証ＯＳ３４は、各種デバイスを停止した後、図１（ｂ）で説明したロールバック処理により、初期化する前の状態であるＢＩＯＳの初期化状態に回復する（Ｓ１２８）。
【００３３】
まず、Ｓ１２８において、ＢＩＯＳ３０が初期化状態に回復する回復処理により、ＢＩＯＳ３０は、共有メモリ領域３１内の運用ＯＳ復号鍵３１−１を保持しつつ、運用ＯＳ４４を起動可能な状態に各種デバイスを設定することができる（図１（ｂ）では、Ｓ１３）。
一方、Ｓ１２８において、認証ＯＳ３４が初期化状態に回復する回復処理により、認証ＯＳは、共有メモリ領域３１内の運用ＯＳ復号鍵３１−１を保持しつつ、運用ＯＳ４４を起動可能な状態に各種デバイスを設定することができる（図１（ｃ）では、Ｓ１３−２）。
運用ＯＳ４４に関する処理では、以下のＳ１３０〜Ｓ１３３に示すように、運用ＯＳ４４が自身の復号処理と稼働処理とを行う（図１（ｂ）では、Ｓ１４）。
ＢＩＯＳ３０は、共有メモリ領域３１に格納された運用ＯＳ復号鍵３１−１を参照して、運用ＯＳのブートローダ４３を主メモリ７に読み込み、ブートローダ４３を起動する（Ｓ１３０）。
運用ＯＳのブートローダ４３は、ＢＩＯＳ３０から指定された運用ＯＳ復号鍵３１−１を参照して、運用ＯＳを復号化しつつ主メモリ７に読み込む（Ｓ１３１）。
運用ＯＳ４４は、運用ＯＳ復号鍵３１−１を参照して、ＣＰＵ６を３２ビットモードで起動し、各デバイスを運用ＯＳ用に再初期化する（Ｓ１３２）。
運用ＯＳ４４は、Ｓ１３２で再初期化された各デバイスを利用可能な状態で稼働する（Ｓ１３３）。
【００３４】
図５は、情報処理装置１の導入（インストール）処理手順を示すフローチャートである。
情報処理装置１の提供者は、運用ＯＳ領域２１を暗号化して、ディスク装置１３に格納し（Ｓ１５０、図４ではＳ１００）、認証ＯＳ２７と認証ＯＳの認証ＡＰ２８とをインストールする（Ｓ１５１、図４ではＳ１０１）。
情報処理装置１の提供者は、各ＯＳ（運用ＯＳ２３、認証ＯＳ２７）およびそのブートローダ２２，２６を情報処理装置１に導入し（Ｓ１５２）、電源投入後に自動的に認証ＯＳのブートローダ２６が起動するようにＭＢＲ２０を書き換え（Ｓ１５３）、情報処理装置１の電源をオフにする、あるいは情報処理装置１を再起動する（Ｓ１５４）。
【００３５】
図６は、ＢＩＯＳの処理手順（図４ではＳ１１０）を示すフローチャートである。このフローチャートは、図５に示した導入処理後（電源オンや再起動）を契機に、実行される。
まず、ＢＩＯＳ３０は、再起動などにより起動される（Ｓ２００）。
ＢＩＯＳ３０は、ＣＰＵやタイマなどのハードウェアを自身の動作が可能な状態に設定し（Ｓ２０１）、搭載されている主メモリ７の量を調査したり、正常に読み書きできるか確認する（Ｓ２０２）。
ＢＩＯＳ３０は、キーボード１７やマウス１８などのデバイス有無を調べて必要に応じて初期化し（Ｓ２０３）、ディスプレイコントローラ１１を初期化して、ディスプレイ１２にメッセージを表示する（Ｓ２０４）。
ＢＩＯＳ３０は、ディスクコントローラ１１を初期化して、ＢＩＯＳが必要とする割り込み配送などの設定を行い（Ｓ２０５）、ディスクコントローラ１１に接続されているディスク装置１３をスキャンして、起動ディスク装置を検索する（Ｓ２０６）。その結果、ＢＩＯＳ３０は、ＭＢＲ２０で指定されているＯＳ（認証ＯＳまたは運用ＯＳ）のブートローダ２２，２６を読み込む。
【００３６】
図７は、図６で示したＢＩＯＳが初期化する各デバイスのハードウェア情報を示す説明図である。これらを以下に示す。これらのハードウェア情報は、工場出荷値があらかじめ指定され、Ｓ１１でＢＩＯＳ３０が設定し、Ｓ１２で認証ＯＳ３４がバックアップ処理し、Ｓ１３でロールバック処理する対象である。
ＣＰＵのハードウェア情報４００は、コントロールレジスタの値、セグメントレジスタの値、および割り込みベクタアドレスの値から構成される。
タイマのハードウェア情報４１０は、動作モードの設定値、割り込み設定値、およびタイマ発火頻度の設定値から構成される。
キーボードのハードウェア情報４２０は、キーボードの割り込み設定値、およびコントロールレジスタ値から構成される。
ディスプレイコントローラ１１の情報４３０は、画面モードの設定値から構成される。
割り込みコントローラの設定情報４４０は、各デバイスからの割り込みマスク設定値から構成される。
ディスクコントローラのハードウェア情報４５０は、ディスク装置１３の搭載の有無、ＤＭＡ（Direct Memory Access）転送アドレスの設定値、動作モードの設定値、および割り込み設定値から構成される。
リザーブエリア（標準仕様から拡張される予約領域）の各種設定情報は、運用ＯＳ復号鍵の格納アドレス３０−１や、共有メモリ領域３１を示すアドレス範囲など、認証ＯＳや運用ＯＳの実行に伴って使用される各種データである。
【００３７】
図８は、認証ＯＳに関する処理手順を示すフローチャートである。
認証ＯＳ３４は、ＢＩＯＳ３０が初期化したハードウェア状態を退避（バックアップ）する（Ｓ３００、図４のＳ１２２）。
認証ＯＳ３４は、ＢＩＯＳ３０からブートローダ３３を起動し、３２ビットのＯＳ２７や認証ＯＳの認証ＡＰ２８をディスク装置１３から主メモリ７に読み込む。（Ｓ３０１、図４のＳ１２０，Ｓ１２１）。
さらに、認証ＯＳ３４は、ＣＰＵを３２ビットモードに切り替え、ドライバが各種デバイスを３２ビットＯＳに合わせて初期化する（Ｓ３０２、図４のＳ１２３，Ｓ１２４）。
認証ＯＳ３４は、認証ＯＳの認証ＡＰ３５を起動し、ユーザ認証を行う（Ｓ３０３、図４のＳ１２５、具体的な認証の情報処理は、図１３に後記）。
【００３８】
ユーザ認証に失敗すると（Ｓ３１０，認証失敗）、電源をオフにする。あるいは、再度起動できないようにディスク装置１３の内容（運用ＯＳ領域２１のデータなど）を消去する（Ｓ３１１）ことで、運用ＯＳ４４を起動させないで終了する。これにより、不正なユーザに情報処理装置１上で運用ＯＳを使用させることを防止できる。
一方、ユーザ認証に成功すると（Ｓ３１０，認証成功）、認証ＯＳの認証ＡＰ２８は、運用ＯＳ復号鍵３１−１を取得・生成する（Ｓ３２０、図４のＳ１２６）。さらに、認証ＯＳ３４は、運用ＯＳ復号鍵の格納アドレス３０−１を参照し、運用ＯＳ復号鍵３１−１を指定した共有メモリ領域３１に格納する（Ｓ３２１）。
【００３９】
以下、Ｓ３００でバックアップしたハードウェア状態の回復処理（ロールバック処理、図４のＳ１２８）について、説明する。
認証ＯＳ３４は、各デバイスに関して、元の状態（ＢＩＯＳが初期化した状態）に回復可能かチェックする（Ｓ３２２）。
回復可能な場合（Ｓ３２２，Ｙｅｓ）は、認証ＯＳ３４が各種デバイスを初期化する前の（ＢＩＯＳが初期化した状態）に回復し（Ｓ３４０）、運用ＯＳのブートローダ４３が運用ＯＳ２３にアクセスする手段として、ＢＩＯＳ用コール（復号処理など）のためのフック処理を行う（Ｓ３４１）。なお、フック処理は、通常の処理にジャンプする箇所で制御を奪い取り、別のアドレスにジャンプさせることで、別の処理を行うことである。
回復できない場合（Ｓ３２２，Ｎｏ）は、エラー返却処理のためのフック処理を行う（Ｓ３３０）。これにより、ＢＩＯＳが、回復できないデバイスを呼び出せないようにする。なお、セキュリティ機能を備えるＩＣ（Integrated Circuit）チップであるＴＰＭ（Trusted Platform Module）などは、回復できないデバイスになることも多い。
全てのデバイスについて、（Ｓ３２２）から（Ｓ３４１）の処理を行う（Ｓ３５０）。そして、運用ＯＳのブートローダ２２が起動するようにＭＢＲ２０を書き換える。
【００４０】
図９は、割り込みベクタアドレスのフック処理（Ｓ３３０，Ｓ３４１）を示す説明図である。
最初から存在する元の割り込みベクタアドレス５００と更新後の割り込みベクタアドレス５１０がある。
また、元の割り込みベクタアドレス５００は、ディスク装置の読み込み処理とそれ以外に分類し、それぞれのアドレスをディスク装置の読み込み処理のアドレス５０１とディスク装置の読み込み以外の処理のアドレス５０２から構成される。
ディスク装置の読み込み処理のアドレス５０１は、本来のディスク装置の読み込み処理５５０を指し（矢印５２０）、その処理を実行する。
【００４１】
ディスク装置の読み込み以外の処理のアドレス５０２は、それぞれディスク装置の読み込み以外の元の処理５５１を指し（矢印５２１）、その処理を実行する。
更新後の割り込みベクタアドレス５１０は、ＢＩＯＳ用復号処理のアドレス５１１とエラー返却処理のアドレス５１２から構成される。
ＢＩＯＳ用復号処理のアドレス５１１は、ＢＩＯＳ用復号処理５５２を指し（矢印５４０）、その処理を実行する。エラー返却処理のアドレス５１２は、エラーの返却処理５５３を指し（矢印５４１）、その処理を実行する。
【００４２】
次に、フック処理について説明する。
フック処理５３０（図８のＳ３４１に対応）は、ディスク装置の読み込み処理のアドレスをＢＩＯＳ用復号処理のアドレスに置き換える。
フック処理５３１（図８のＳ３３０に対応）は、ディスク装置の読み込み以外の処理のアドレスをエラー返却処理のアドレスに置き換える。
フック処理５３２は、エラー返却処理のアドレスをディスク装置の読み込み以外の処理のアドレスに置き換える。
【００４３】
図１０は、運用ＯＳの処理手順を示すフローチャートである。
認証ＯＳ３４あるいは認証ＯＳの認証ＡＰ３５は、Ｓ１２８でデバイス状態が回復したＢＩＯＳに対して、運用ＯＳ復号鍵３１−１を参照して、運用ＯＳのブートローダ４３を主メモリ７に読み込み、ブートローダ４３を起動するように制御する（Ｓ６００）。
運用ＯＳのブートローダ４３は、運用ＯＳ復号鍵３１−１を参照して、ＢＩＯＳ３０を使って、運用ＯＳ４４を主メモリ７に読み込む（Ｓ６０１）。なお、共有メモリ領域３１はＢＩＯＳが運用ＯＳ復号鍵の格納アドレス３０−１として指定する領域であり、ＯＳの再起動でもデータ消去されない領域であるので、運用ＯＳ復号鍵３１−１を認証ＯＳから運用ＯＳへとデータ共有させることができる。
【００４４】
運用ＯＳ４４は、運用ＯＳ復号鍵３１−１をもとに、３２ビットモードで起動し（Ｓ６０２）、自身の（３２ビットモードの）復号ドライバ４６をロードする（Ｓ６０３）。
Ｓ６０３以降、復号ドライバ４６によって、運用ＯＳ４４がディスク装置１３から読み出す際には、運用ＯＳ復号鍵３１−１を用いて読み込んだデータを復号化し、逆にディスク装置１３に書き込む際には、暗号化を行ってからデータを書き込む。
運用ＯＳ４４の３２ビットＯＳのカーネルはＣＰＵ６を３２ビットモードに切り替え、各種デバイスをＯＳに合わせて初期化し直す（Ｓ６０４）。
【００４５】
ここで、運用ＯＳ４４は、ユーザ認証が終了したため、主メモリ７を有効活用するため、認証ＯＳ３４と認証ＯＳの認証ＡＰ３５を主メモリ７から削除（Ｓ６０５）してもよい。なお、認証ＯＳ３４と認証ＯＳの認証ＡＰ３５は主メモリ７に保持しておいても構わない。
以上の結果、運用ＯＳ４４の起動が完了し、稼働可能な状態になる（Ｓ６０６）。
【００４６】
図１１は、運用ＯＳの読み込み処理（Ｓ６０１）の詳細を示すフローチャートである。
Ｓ６０１で行われるＢＩＯＳ用復号処理では、元の割り込みベクタアドレスを呼び出し、ディスク読み込みを実行する（Ｓ６５０）。さらに、暗号化したディスク装置１３へのアクセスかチェックする（Ｓ６５１）。暗号化したディスク装置１３へのアクセスならば（Ｓ６５１，Ｙｅｓ）、読み込んだデータを復号化する（Ｓ６５２）。
【００４７】
図１２は、運用ＯＳデバイスの再初期化処理（Ｓ６０４）の詳細を示すフローチャートである。
Ｓ６０４で行われるエラー返却処理では、回復可能なデバイスへのアクセスかチェックする（Ｓ６７０）。回復可能なデバイスであれば（Ｓ６７０，Ｙｅｓ）、エラー返却処理としてエラーを返却する（Ｓ６７２）。回復可能なデバイスでなければ（Ｓ６７０，Ｎｏ）、元の割り込みベクタアドレスにジャンプする（Ｓ６７１）。
【００４８】
図１３は、認証ＯＳの認証ＡＰ２８によるユーザ認証方法（Ｓ１２５）の詳細を示す説明図である。以下に例示する（方式１）〜（方式４）のうちのいずれか１つ以上の認証方法で、情報処理装置１では、認証ＯＳ３４を利用して、高度でかつ多様なユーザ認証が可能になる。
【００４９】
（方式１）ＩＤとパスワード
情報処理装置１のユーザは、ＩＤ８０１とパスワード８０２をキーボード１７とマウス１８から入力し（符号８００）、情報処理装置１の認証ＯＳ３４は、入力された「ＩＤとパスワード」８０３と、事前に認証ＯＳの認証ＡＰ３５に格納されているＩＤとパスワード８０４とを比較し、一致すれば、「認証成功」と判定する（符号８０５）。一致しなければ、「認証失敗」と判定する。
【００５０】
（方式２）ワンタイムパスワード
情報処理装置１のユーザに事前にワンタイムパスワード８２１を付与する。情報処理装置のユーザは、ワンタイムパスワード８２１をキーボード１７とマウス１８から入力し（符号８２０）、情報処理装置の認証ＯＳ３４は、入力されたワンタイムパスワード８２３と、事前に認証ＯＳの認証ＡＰ３５に格納されているワンタイムパスワード８２４とを比較し、一致すれば、「認証成功」と判定する（符号８２５）。一致しなければ、「認証失敗」と判定する。
【００５１】
（方式３）ＵＳＢ機器認証
情報処理装置１のユーザは、認証用のＵＳＢ機器１９を情報処理装置のＵＳＢに挿入し、ディスプレイ１２を見ながら、キーボード１７とマウス１８から機器認証情報８４１であるＰＩＮ（Personal Identification Number）を入力する。そして、ＵＳＢ機器１９がＰＩＮを認証して、機器認証情報８４１を転送する（符号８４０）。認証ＯＳの認証ＡＰ３５は、入力された機器認証情報８４３と、事前に格納されている機器認証情報８４４とを比較し、一致すれば、「認証成功」と判定する（符号８４５）。一致しなければ、「認証失敗」と判定する。
なお、認証用のＵＳＢ機器１９として、ユーザの個体情報を取得する生体センサを用いた生体認証を用いてもよい。
【００５２】
（方式４）ネットワーク認証
社内のネットワーク２のように、通信範囲が限定されたネットワーク２では、効率よく情報処理装置１のユーザ認証を行う必要があるために、認証サーバ３を活用する。情報処理装置１は、認証サーバ３に接続し（符号８６１）、認証要求８６１を送信する（符号８６０）。認証サーバ３は、「認証成功」であるときは、その旨（符号８６３）を情報処理装置１に通知する（符号８６２）。
【００５３】
以上説明した本実施形態では、認証ＯＳがユーザ認証を行った後、その認証結果を引き継いだ運用ＯＳを起動させるユーザ認証システムを示した。これにより、認証ＯＳでのユーザ認証を通過しないと運用ＯＳは起動不可にし、セキュリティ確保と操作性を両立させることができる。
このように、低機能なＢＩＯＳの代わりに、高機能な認証ＯＳをユーザ認証に利用することにより、豊富なユーザインタフェースや高度な認証手段を提供し、汎用ＰＣのセキュリティと使い勝手を向上させることが可能になる。
【００５４】
なお、認証結果の格納領域は、ＢＩＯＳの再起動時や運用ＯＳの起動時でもデータ内容が消えない共有メモリ領域３１内に確保することにより、認証ＯＳから運用ＯＳへの認証結果の引き継ぎを実現する。
一方、ＲＯＭ（Read Only Memory）上やディスク装置上に認証結果（ハッシュ値など）を置く方式では、電源を切っても認証情報が永続的に残るため、認証を通過したユーザとは別のユーザによる不正利用を許してしまう恐れがある。
また、単に共有メモリ領域３１ではないメモリ上に認証結果を記録するだけでは、別のＯＳを起動するときの動作により、メモリの内容が消滅するため、別のＯＳは最初に起動したＯＳの情報を引き継げない。
【符号の説明】
【００５５】
１      情報処理装置（認証装置）
２      ネットワーク
３      認証サーバ
６      ＣＰＵ
７      主メモリ
８      ＲＯＭ
１１    ディスプレイコントローラ
１２    ディスプレイ
１３    ディスク装置
１４    ディスクコントローラ
１６    ＰＳ２／ＵＳＢ
１７    キーボード
１８    マウス
１９    ＵＳＢ機器
２０    ＭＢＲ
２１    運用ＯＳ領域
２２    ブートローダ
２３    運用ＯＳ
２４    運用ＯＳのＡＰ
２５    認証ＯＳ領域
２６    ブートローダ
２６−１  認証ＯＳ復号鍵
２７    認証ＯＳ
２８    認証ＯＳの認証ＡＰ
３０    ＢＩＯＳ
３０−１  運用ＯＳ復号鍵の格納アドレス
３１    共有メモリ領域
３１−１  運用ＯＳ復号鍵
３２    認証ＯＳ領域
３３    ブートローダ
３４    認証ＯＳ
３５    認証ＯＳの認証ＡＰ
４２    運用ＯＳ領域
４３    ブートローダ
４４    運用ＯＳ
４５    運用ＯＳのＡＰ
４６    復号ドライバ
【図１】
0005689429.tif 000002
【図２】
0005689429.tif 000003
【図３】
0005689429.tif 000004
【図４】
0005689429.tif 000005
【図５】
0005689429.tif 000006
【図６】
0005689429.tif 000007
【図７】
0005689429.tif 000008
【図８】
0005689429.tif 000009
【図９】
0005689429.tif 000010
【図１０】
0005689429.tif 000011
【図１１】
0005689429.tif 000012
【図１２】
0005689429.tif 000013
【図１３】
0005689429.tif 000014