【文献】
長谷川健人、戸川望,スパイチップはあるのか ハードウェアセキュリティの必要性,情報処理 Jan.2019,日本,2018年12月15日,Vol.60 No.1 通巻646号,pp.4-6
(58)【調査した分野】(Int.Cl.,DB名)
コンピュータの立上時でシステム起動前に当該コンピュータの直接的又は/及び間接的にMPU配下(以下「直接的又は/及び間接的にMPU配下」を単に「MPU配下」という。)で利用可能とするチェック対象領域のハードウエアのセキュリティ情報を取得するセキュリティ情報取得部と、
コンピュータのMPU配下のハードウエアの正当性を認証するための情報である正当性認証情報を保持する正当性認証情報保持部と、
取得したセキュリティ情報と、保持されている正当性認証情報であって、コンピュータの設計時点でのMPU配下に置かれることが定まっているハードウエアの種類をすべて特定できる設計情報に基づくハードウエアの識別情報からなる正当性認証情報とを用いて、ハードウエアの正当性をチェックする正当性チェック部と、
正当性チェック部でのチェック結果がチェック対象領域内で全てのハードウエアについて正当であるとのチェック結果である場合にシステムの起動処理を続行させ、チェック対象領域内で全てのハードウエアについて正当であるとのチェック結果でない場合にはシステムの起動処理を続行させない起動処理続行中止部と、
コンピュータのMPU配下で利用可能とするチェック対象領域内で全てのハードウエアのセキュリティ情報を記録したROMからなるセキュリティ情報蓄積部を有し、
前記セキュリティ情報取得部は、セキュリティ情報蓄積部からセキュリティ情報を取得する
正当性認証起動管理システム。
コンピュータの立上時でシステム起動前に当該コンピュータのMPUの立上によって得られる当該MPU配下で利用可能とするチェック対象領域内ですべてのハードウエアのセキュリティ情報に基づいたセキュリティ情報である立上時セキュリティ情報を取得する立上時セキュリティ情報取得部を有し、
前記正当性チェック部は、
前記セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、立上時セキュリティ情報とに基づいて立上時セキュリティ情報の正当性をチェックする立上時正当性チェック手段を有する請求項1に記載の正当性認証起動管理システム。
セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、正当性認証情報保持部に保持されている正当性認証情報とを用いて蓄積されているセキュリティ情報の真正性をチェックする蓄積セキュリティ情報真正性判断部をさらに有する請求項1又は請求項2に記載の正当性認証起動管理システム。
蓄積セキュリティ情報真正性判断部での判断結果が真正でないとの判断結果である場合には、セキュリティ情報取得部は、セキュリティ情報蓄積部からセキュリティ情報を取得しないように制御する取得制限部をさらに有する請求項3に記載の正当性認証起動管理システム。
正当性チェック部は、MPU配下のハードウエアであるROM内に構成されており、セキュリティ情報を耐タンパ性領域内の正当性認証情報保持部に送信し、その返信の内容に応じて正当性を認証する請求項5又は請求項5に従属する請求項6に記載の正当性認証起動管理システム。
【図面の簡単な説明】
【0020】
【
図1-b】アンノウンが紛れ込んだマザーボードのイメージ概念図
【
図2】実施形態1の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図3】正当性認証起動管理システムを搭載したコンピュータの起動時のハードウエア構成の一例を示す図
【
図4】実施形態1の正当性認証起動管理システムの、ハードウエア構成の一例を示す図
【
図5】正当性認証起動管理システムの上位概念的な処理の流れの一例を示す図
【
図6】実施形態1の正当性認証起動管理システムの、処理の流れの一例を示すフロー図
【
図7】実施形態2の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図8】実施形態2の正当性認証起動管理システムの、ハードウエア構成の一例を示す図
【
図9】実施形態2の正当性認証起動管理システムの、処理の流れの一例を示すフロー図
【
図10】実施形態3の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図11】実施形態3の正当性認証起動管理システムの、ハードウエア構成の一例を示す図
【
図12】実施形態3の正当性認証起動管理システムの、立上時セキュリティ情報の正当性チェックの方法の一例を概念的に示す図
【
図13】実施形態3の正当性認証起動管理システムの、処理の流れの一例を示すフロー図
【
図14】実施形態3のその他の実施形態1の正当性認証起動管理システムの、蓄積セキュリティ情報の真正性を判断する方法の一例を概念的に示す図
【
図15】実施形態3のその他の実施形態1の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図16】実施形態3のその他の実施形態1の正当性認証起動管理システムの、ハードウエア構成の一例を示す図
【
図17】実施形態3のその他の実施形態1の正当性認証起動管理システムの、処理の流れの一例を示すフロー図
【
図18】実施形態3のその他の実施形態2の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図19】実施形態3のその他の実施形態2の正当性認証起動管理システムの、ハードウエア構成の一例を示す図
【
図20】実施形態3のその他の実施形態2の正当性認証起動管理システムの、処理の流れの構成の一例を示す図
【
図21】実施形態4の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図22】実施形態5の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図23】実施形態6の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図24】実施形態7の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【
図25】実施形態8の正当性認証起動管理システムの、構成の一例を示す機能ブロック図
【0021】
以下では、本発明の実施形態について、図を用いて説明する。以下の説明は、実施形態1は請求項1に、実施形態2は請求項2に、実施形態3は請求項3、請求項4、請求項5に、実施形態4は請求項6に、実施形態5は請求項7に、実施形態6は請求項8に、実施形態7は請求項9に、実施形態8は請求項10に、実施形態9は請求項11に、実施形態10は請求項12に、それぞれ対応する。なお、本発明の内容は、以下の実施例及び具体例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得る。
【0022】
<実施形態1>
<実施形態1 概要>
図1−a及び
図1−bはマザーボード(0100)を鳥瞰的に見た場合の概念図である。
図1−aは、各種ハードウエアが正当に配置されている状態を示している。
図1−bでは、
図1−aと比較してハードウエア(0101)が1つ多くなっている。この0101で示されるハードウエアがアンノウンにあたる。アンノウンが紛れ込んだマザーボードでは、MPU配下のハードウエア構成に正当性が認められない。
本実施形態における発明は、コンピュータ又はコンピュータの部分機能の立上時に、セキュリティ情報の正当性をチェックする手法を用いて、MPU配下のチェック対象領域内で全てのハードウエアの正当性が認められた場合にのみシステムの起動を認める、正当性認証起動管理システムである。本明細書においては「MPU配下」とは、前述の通りMPUが直接的又は/及び間接的にアクセスして情報処理を行う地位にあることを言う。一般的にはボード上の管理プロセッサと、ボード上の情報処理チップとの関係やマザーボード上のチップセットを介して管理プロセッサと情報処理をおこなうものを言い、必ずしもマザーボードにボードが限定されるものでない。また「MPU」とはCPU、GPUなどいわゆるプロセッサを言う。
【0023】
<実施形態1 発明の構成>
図2は本実施形態における正当性認証管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(0201)、正当性認証情報保持部(0202)、正当性チェック部(0203)、起動処理続行中止部(0204)と、からなる。
【0024】
本願発明は、コンピュータを立ち上げて通常の利用可能状態のシステムの起動前に、コンピュータのMPU配下にあるハードウエア構成の正当性を認証して、コンピュータのシステムの起動を管理する発明である。そこで、まずコンピュータのシステムの起動過程のどの段階において本願発明における認証及び管理を実行することが可能であるかを説明する。
【0025】
コンピュータは、電源が入れられるとフラッシュメモリ内に記録されているBASICINPUT/OUTPUT SYSTEM(以下、「BIOS」と呼ぶ)等が起動することになる。BIOSは最初に起動させられると、まずMPU配下のマザーボード上に配置されている各種ハードウエアやチップセットを介してMPUと通信する各種ハードウエア、各ポートに繋がれている接続済み各種インターフェイスの接続の有無及び接続が正常であるかを確認する(power on self test)。その後、各種ハードウエアを動作可能とするための初期化処理を各マザーボード上の各種ハードウエア及びポート接続済み各種インターフェイスに命令する。その後起動ドライブをチェックする。以上が終了した場合には起動ドライブ(例えばOSのインストールされたハードディスクドライブ)からBIOSは起動プログラム(ブートストラップローダー)をメインメモリに展開し、制御をブートローダに渡す。ブートローダはOSをメインメモリに展開してOSを起動状態に導く。これによってコンピュータはシステム利用可能な状態となる。アプリケーションソフトウエア、コンピュータの各種機能、通信などが可能となる。なお、本願でコンピュータとは、パーソナルコンピュータ、ノートパソコン、タブレット端末、サーバ、大型コンピュータ、スマートフォン、携帯電話、モデム、ルーター、交換機、各種家電、ロボット、スマートメーター、工作機械、プラント制御機器、自動車、飛行機、船舶、現金自動支払機(ATM)など各種のものを含む。
本願の発明はBIOSが各種接続チェック等を行って処理をブートローダーに引き渡す前、又は、ブートローダーがOS等のシステム起動処理を続行中で完了前に行われ、終了するように構成される。
【0026】
BIOSには、上記に記載した以上に機能があり、概ねのBIOSにとって共通となる処理を簡易的に表現すると上記のようになる。以下の説明では、便宜上本願発明の出願時点で最も一般的に汎用性コンピュータにおいて採用されている技術を具体例として説明を行うものの、具体例として利用する以外の現時点で知られている技術(例えば、Unified Extensible Firmuare Interface(以下では、「UEFI」という。)を用いたコンピュータ)はもちろんのこと、本願発明の原理が再現可能な将来的に開発される技術に対しても、本願発明は同様に機能する。したがって、下記の各実施形態(実施形態1から実施形態12)の具体的な説明はBIOSを用いたコンピュータの起動以外の場合も当然に含むものである。
【0027】
なお、本願発明では特にマザーボード上に存在する、利用者が目視で異変に気付くことが出来ないアンノウンを検出することを特徴とすることから、下記では主題を明確化するためにマザーボード上の各種ハードウエアのみを具体例として挙げることとする。したがって、明細書中の具体例としてポートに接続されたインターフェイスに関しては記載しないものの、例えばキーボード中に隠されたアンノウンがキーボードのタイピングをスチールする(いわゆる「フィッシング行為」である)といった、ポートに接続されたインターフェイス内部に隠されたアンノウンの検出可能性を排除するものではなく、本システムを用いて起動管理を行うことで、ポートにインターフェイスを接続し、接続されたインターフェイスを接続元のコンピュータによって使用可能に起動処理をする際に、正当性認証及び起動管理を行うことも本願発明は含んでいる。このことは、実施形態1から実施形態12について共通である。
【0028】
本願発明では、BIOSが網羅的に各種ハードウエアから受信した信号(例えば、代表的なものとして起動シグナル等が考えられる。)に与えられている各種ハードウエアの種類を識別する種類識別番号等のセキュリティ情報(詳細は後述する)のリストを、正当性認証情報と比較等の処理をすることによって、MPU下に配置されている各種ハードウエア構成の正当性認証を行うことが可能である。そして、正当性の認証が出来た場合には、コンピュータの起動処理を完了させ、正当性の認証が出来なかった場合には、コンピュータの起動処理を中止するという起動管理を行う。
【0029】
BIOSがそもそも起動すべきハードウエアのリストを保持しておりそのリストに則って接続チェック等を行っている場合はハードウエアの構成の正当性を認証しているという考え方も可能であるが、BIOSがそもそも所持しているリストが書き換えられている場合があり得る。従ってBIOSのみに構成の正当性を担保させることは危険である。
【0030】
<実施形態1 構成の説明>
<実施形態1 セキュリティ情報取得部>
「セキュリティ情報取得部」は、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報を取得する。「セキュリティ情報」とは、ハードウエアが正当なハードウエアであるか否かを判断するために用いられる情報である。ハードウエアのセキュリティ情報は、特定のハードウエアに与えられた秘密キーのような識別情報、ハードウエアの種類識別情報、ハードウエアの固体識別情報、ハードウエア起動ステータス情報、等のハードウエアを特定することが可能なあらかじめ設定されているMPU配下のハードウエア間でユニークな情報である。一つの情報によって構成されていてもよいし、複数の情報を組み合わせて一つのセキュリティ情報として扱ってもよい。
【0031】
セキュリティ情報取得部がセキュリティ情報を取得する手段は本実施形態においては限定していない。例えば、MPU配下のチェック対象領域内で全てのハードウエアから送信される等して取得する方法が考えられる。あるいは、本正当性認証起動管理システムを搭載しているコンピュータのMPU配下に置かれているチェック対象領域内で全部のハードウエアのセキュリティ情報を事前に登録しておき、それをセキュリティ情報取得部が取得する方法が考えられる。この他にも、考えられるセキュリティ情報を獲得可能な方法であれば、その方法は限定していない。
ここで「チェック対象領域」とは、コンピュータの設計思想によって範囲を限定できるが、基本的にはBIOSやUEFIによるシステムの起動処理によって最終的にシステムで利用可能となるように調整されるハードウエアの範囲を言う。ただし、利用可能となるように調整されるハードウエアの一部に限定してチェック対象領域を設定することも考えられる。
【0032】
<実施形態1 正当性認証情報保持部>
「正当性認証情報保持部」は、コンピュータのMPU配下のハードウエアの正当性を認証するための情報である正当性認証情報を保持する。「正当性認証情報」は、本正当性認証起動管理システムを搭載しているコンピュータの設計時点でのMPU配下に置かれることが定まっているハードウエアの種類を全て特定できる設計情報に基づくハードウエアの識別情報のようなものである。コンピュータのMPU配下に設計上収められるべきハードウエアを特定できる情報によって構成されている。例えば、ハードウエアの種類識別情報、ハードウエアの固体識別情報、ハードウエア起動ステータス情報、等のハードウエアを特定することが可能なあらかじめ設定されているユニークな情報によって構成することが考えられる。あるいは、各種の識別情報をハッシュ関数等に代入することで得られる解、全ての識別情報をまとめてハッシュ関数等に代入することで得られる解、識別情報を代入すべきハッシュ関数等、等のハードウエアを特定することが可能なあらかじめ設定されているユニークな情報をハッシュ関数等の関数に代入することで得られる解がこれにあたる。
【0033】
<実施形態1 正当性チェック部>
「正当性チェック部」は、取得したセキュリティ情報と、保持されている正当性認証情報とを用いて、ハードウエアの正当性をチェックする。先述のように、正当性認証情報は、本正当性起動管理システムを搭載しているコンピュータのMPU配下に収められるべきハードウエアの正当な設計情報に基づいて得られる特定の情報である。後からマザーボード等に挿入されたり、入れ替えて挿入されるハードウエアは、正当な設計情報に基づいてマザーボードに配置される物でないのでこれらアンノウンに関するセキュリティ情報は、正当性認証情報では認証されないことになる。この情報とセキュリティ情報を用いて、セキュリティ情報が正当な情報であるかを判断する過程を経て、ハードウエアの正当性をチェックする。
【0034】
セキュリティ情報が正当であるかをチェックする方法としては、例えば、正当性認証情報が本正当性起動管理システムを搭載しているコンピュータのMPU配下に収められるべきハードウエアの設計情報に基づくハードウエアの識別情報である場合には、セキュリティ情報と設計情報に基づくハードウエアの識別情報とが完全に一致しているか否かを比較することによって判断することができる。セキュリティ情報と設計情報に基づくハードウエアの識別情報が完全に一致している場合に、正当性が肯定される。一部が一致しない、あるいは設計情報に基づくハードウエアの識別情報は全て一致するが設計情報に基づくハードウエアの識別情報に含まれていないセキュリティ情報が含まれている場合には、正当性が否定される。
【0035】
あるいは、正当性認証情報が本正当性起動管理システムを搭載しているコンピュータのMPU配下に収められるべきハードウエアの設計時情報とユニークに対応する情報である場合(例えば設計時情報として正当なハードウエアの全識別情報の総和のハッシュ値など)には、ユニークに対応する情報を生成したと同じ処理をハードウエアから得られるセキュリティ情報を用いて行い、その結果を比較することによって判断することができる。
【0036】
セキュリティ情報(ハードウエア識別情報)が大きな値である場合には正当性認証情報は、各セキュリティ情報のハッシュ値であってもよい。この場合には各ハードウエアから得られるセキュリティ情報をハッシュ関数に取り込んで生成された値と正当性認証情報を比較することで一つ一つのハードウエアの正当性が認証される。
【0037】
ハードウエアの正当性を一つ一つ認証する場合には正当性が認証できなかったハードウエアのみを利用不能としてシステムを立ち上げる構成を採用することも可能である。このケースを本明細書ではシステムの起動処理が一部続行されない状態であるのでシステムの起動処理を続行させない処理と称することとする。
【0038】
<実施形態1 起動処理続行中止部>
「起動処理続行中止部」は、正当性チェック部でのチェック結果が全てのハードウエアについて正当であるとのチェック結果である場合にシステムの起動処理を続行させ、全てのハードウエアについて正当であるとの結果でない場合にはシステムの起動処理を続行させないという処理を行う。例えば、正当性のチェックの結果が全て正当である場合には、起動処理続行中止部は起動処理の中止処理を行わないことでシステムの起動を続行させる。正当性のチェックの結果、正当性が否定された場合には、起動処理続行中止部は起動処理を中止する命令を出し、起動処理を中止するという構成が考えられる。あるいは、例えば、正当性のチェック結果が全て正当である場合には、起動処理続行中止部が起動続行命令を出し起動処理を続行させ、正当性のチェック結果が全て正当であるとの結果ではない場合には、起動処理続行中止部が起動処理命令をだすことで起動処理を中止させるという構成も考えられる。
なお前述の通り正当性が認証されないハードウエアが特定できる場合にはそのハードウエアについてのみ起動処理の続行を中止する場合も本願明細書に言う起動処理の続行中止に該当するものとする。
【0039】
<実施形態1 ハードウエア構成>
<実施形態1 ハードウエア構成 基本構造>
図3は本システムを搭載したコンピュータの起動後のハードウエア構成の状態を概念的に示す例図である。この図にあるように本発明は、基本的にコンピュータとプログラム(BIOS、OSを含む)、各種マザーボード上のデバイス、ポートを介してMPU配下に加わる各種インターフェイスデバイス、で構成することが可能である。
【0040】
各種マザーボード上のデバイスとしては、BIOS ROM(0301)、メモリカード(0302)、メインメモリ(0303)、フラッシュメモリ(0304)、クロックジェネレータ(0305)、SATAコネクタ(0306)、ネットワークコントローラチップ(0307)、サウンドコントローラチップ(0308)、ディスプレイコントローラチップ(0309)、グラフィックスプロセッシングユニット(0310)、ポート80ディスプレイ(0311)、チップセット(0312:チップセット内に、前出のネットワークコントローラチップ、サウンドコントローラチップ、ディスプレイコントローラチップ等のチップが集約されている場合がある)、その他の各種拡張カード(0313:例えば、PCI−Express等のグラフィックスカード等)、ハードディスクドライブ(0314:多くのコンピュータではOSはチップセット下のハードディスクドライブに配置されているため、図ではチップセット下にハードディスクドライブが配置しているが、MPU直下、チップセット下のいずれにも配置可能である。)等が不揮発性メモリに保持され、メインメモリにロードされ、一連のプログラム実行に際して参照され、利用される。
【0041】
インターフェイスデバイスとしては、通信デバイス、キーボード、ディスプレイ、マウス、図示していないがマイク、スピーカー、USBメモリ等の外接メモリ、光学ドライバ、磁気ドライバ、スキャナ、プリンタ、カメラ、等が挙げられる。
【0042】
コンピュータの動作は基本的に不揮発性メモリ(フラッシュメモリ・ハードディスクドライブ、外接メモリ等も含む)に記録されているプログラムやデータをメインメモリにロードして、メインメモリとMPU(例えばCPU、GPU等)と各種ハードウエアで処理を実行していく形態をとる。ハードウエアとの通信は、バス線と繋がったインターフェイスを介して行われる。
【0043】
この図にあるように本正当性認証起動管理システムでは、コンピュータのシステムの起動前の処理を対象としていることから、MPU(0315)配下でコンピュータのシステム起動後に利用される不揮発性メモリ(0316)に記憶されている各種プログラム(0317)は、この段階ではメインメモリ(0318)に展開されることがない。メインメモリに展開されているのは、フラッシュメモリ上から読み出し可能なBIOSが各種ハードドライブ(図中の例示では、メモリカード、メインメモリ、フラッシュメモリ、クロックジェネレータ、SATAコネクタ、ネットワークコントローラチップ、サウンドコントローラチップ、ディスプレイコントローラチップ、グラフィックスプロセッシングユニット、ポート80ディスプレイ、チップセット、拡張カード、ハードディスクドライブがこれに該当する)、及び、ポートに繋がれた各種インターフェイス(図中の例示では、通信デバイス、キーボード、ディスプレイ、マウス)から取得した起動シグナルに従って取得される各種ハードウエアのデバイスドライブ(0319)である。特に、OSを記憶しているハードディスクドライブからは、ブートローダ(0319)が取得されメインメモリに展開される。メインメモリは、展開されたブートローダの起動プログラムに従い、OSを起動してOSを起動状態として、各種ハードウエアをOSの管理下とする。以上のハードウエア構成の基本構造については、本正当性認証起動管理システムの全ての実施形態(実施形態1から実施形態12の全て)について共通する。
【0044】
<実施形態1 ハードウエア構成 本システムがBIOS配下にあることについて>
図4は、実施形態1における正当性認証起動管理システムのハードウエア構成の一例を示す図である。本実施形態における本正当性認証起動管理システムは、OSの起動前の処理を問題としていることから、その時点で起動状態にあるBIOSの配下にプログラム(本実施形態では:セキュリティ情報取得プログラム、正当性チェックプログラム、起動処理続行中止プログラム、を少なくとも有する。)が位置しており、これらのプログラムは、MPUが処理可能にBIOSによってメインメモリに展開される。さらに、各種情報もBIOSによってメインメモリに展開されるように構成してもよい。あるいはMPUが直接BIOS配下の本システムを構成するハードウエア中の情報にアクセスするように構成することもできる。
【0045】
あるいは、本正当性認証起動管理システムのためのファームウエアやOS(便宜上、以後「サブOS」と呼ぶことにする)構築し、サブOSを起動させた後に、サブOSの管理のもとに本正当性認証起動管理システムを実行するように構成することも可能である。
【0046】
<実施形態1 ハードウエア構成 正当性認証起動管理システムのプログラム及び情報の説明>
「セキュリティ情報取得プログラム」は、セキュリティ情報を取得する。セキュリティ情報の取得元は、限定していない。
「正当性チェックプログラム」は、セキュリティ情報と正当性認証情報とを用いてMPU配下のハードウエアの正当性を認証する。
「起動処理続行中止プログラム」は、正当性チェック部の正当性チェック結果に応じて、正当性が認められた場合には起動処理の続行を中止せず、正当性が認められなかった場合には起動処理の続行を中止する。
展開された上記各プログラムは順次又は常時実行される。なお、本正当性認証起動管理システムの実行の際に参照されるデータとしては、セキュリティ情報、正当性認証情報、正当性判断結果、中止命令、図示しない通信など各種の設定情報等が保持され、BIOSの管理の下(あるいはサブOSの管理の下)メインメモリにロードされ、正当性認証起動管理システムのプログラム実行に際して参照され、利用される。
【0047】
<実施形態1 処理の流れ>
図5は、実施形態1の上位概念的な処理フロー図である。この図に示すように、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報を取得する「セキュリティ情報取得ステップ」(0501)、取得したセキュリティ情報の正当性をチェックする「正当性チェックステップ」(0502)、セキュリティ情報正当性チェックの結果が正当であるか否かを判断する「セキュリティ情報正当性チェック結果判断部」(0503)、正当性チェック部でのチェック結果が全てのハードウエアについて正当であるとのチェック結果でない場合にはシステムの起動処理を続行させない「起動処理続行中止ステップ」(0504)、正当性チェック結果が全てのハードウエアについて正当であるとのチェック結果である場合にシステムの起動処理を続行させる「起動処理続行ステップ」(0505)と、を少なくとも実行する。
【0048】
図6は、実施形態1のより具体的な処理の流れの一例を示す図である。この図に示すように、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報を取得する「セキュリティ情報取得ステップ」(0601)、セキュリティ情報は各ハードウエアごとに取得することから、全てのハードウエアからセキュリティ情報の取得が完了したかを確認する「セキュリティ情報取得完了判断ステップ」(0602)、取得したセキュリティ情報の正当性をチェックする「正当性チェックステップ」(0603)、セキュリティ情報正当性チェックの結果が正当であるか否かを判断する「セキュリティ情報正当性チェック結果判断ステップ」(0604)、正当性チェック部でのチェック結果が全てのハードウエアについて正当であるとのチェック結果でない場合にはシステムの起動処理を続行させない「起動処理続行中止ステップ」(0605)、正当性チェック結果が全てのハードウエアについて正当であるとのチェック結果である場合にシステムの起動処理を続行させる「起動処理続行ステップ」(0606)と、を少なくとも実行する。
【0049】
<実施形態2>
<実施形態2 概要>
本実施形態における発明は、実施形態1に記載する発明であって、セキュリティ情報をセキュリティ情報蓄積部から取得されたセキュリティ情報を利用して、本正当性認証起動管理システムを搭載したパソコンのMPU配下に配置されたハードウエアの正当性認証を行う。
【0050】
<実施形態2 発明の構成>
図7は、実施形態2における正当性認証起動管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報蓄積部(0701)、セキュリティ情報取得部(0702)、正当性認証情報保持部(0703)、正当性チェック部(0704)、起動処理続行中止部(0705)と、からなる。以下では、実施形態1との共通の構成についての説明は省略し、本実施形態に特有の構成について説明をする。
【0051】
<実施形態2 セキュリティ情報蓄積部>
「セキュリティ情報蓄積部」は、セキュリティ情報を記録したROMからなる。ROMはREAD ONLY MEMORYの略であり、読み出しはできるものの、原則的には上書きしたり削除したりすることができない。また不揮発性メモリであり、電源の供給を必要とせずに情報を記録しておくことが可能である。
【0052】
セキュリティ情報蓄積部に蓄積されているセキュリティ情報は、本正当性認証起動管理システムを搭載したコンピュータのMPU配下に配置されるハードウエアの設計情報に基づくハードウエアの識別情報とも呼べる収納すべきハードウエアのリストによって構成されている。セキュリティ情報として保持されるハードウエアのリストは、本正当性認証起動管理システムを搭載するハードウエアの設計情報に基づいて登録する内容を定める。セキュリティ情報であるハードウエアのリストは、MPU配下にある全てのハードウエアに関するリストであることが好ましいが、一部のリストとすることも可能である。一部のリストとした場合には、リスト化していない部分にアンノウンが存在している、あるいは書き換えられている可能性が残ることから、本システムを利用した認証結果への信用性は低下する。
【0053】
<実施形態2 セキュリティ情報取得部>
本実施形態のセキュリティ情報取得部は、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報をセキュリティ情報取得部から取得する。コンピュータを起動すると、起動準備として各種のハードウエアが立ち上がる。各種ハードウエアの立上の前か、同時化、後か、そのタイミングがシステム管理者による設計事項であるが、遅くともコンピュータの起動が完了する前に、セキュリティ情報蓄積部からセキュリティ情報取得部に対してセキュリティ情報が送信される。セキュリティ情報取得部が取得するセキュリティ情報は、セキュリティ情報蓄積部が蓄積しているセキュリティ情報を含むものであるから、後続する正当性チェックの段階で設計時のハードウエア構成の設計事項を示すハードウエアのリストの正当性のチェックが行われることになる。
【0054】
<実施形態2 ハードウエア構成>
図8は、実施形態2の最も基本的なハードウエア構成の一例を示す図である。図に示す各種ハードウエア(メモリカード、メインメモリ、フラッシュメモリ、クロックジェネレータ、SATAコネクタ、ネットワークコントローラチップ、サウンドコントローラチップ、ディスプレイコントローラチップ、グラフィックスプロセッシングユニット、ポート80ディスプレイ、チップセット、拡張カード、ハードディスクドライブ)、MPU、不揮発性メモリ、メインメモリ、BIOS、インターフェイスの基本的な構造については、実施形態1で説明してあるので省略する。
【0055】
<実施形態2 ハードウエア構成 本システムがBIOS配下にあることについて>
図8に示す様に、本正当性認証起動管理システムは、OSの起動前の処理を問題としていることから、その時点で起動状態にあるBIOSの配下にプログラム(本実施形態では:セキュリティ情報取得プログラム、正当性チェックプログラム、起動処理続行中止プログラム、を少なくとも有する。)が位置しており、これらのプログラムは、MPUが処理可能にBIOSによってメインメモリに展開される。さらに、各種情報もBIOSによってメインメモリに展開されるように構成してもよい。あるいはMPUが直接BIOS配下の本システムを構成するハードウエア中の情報にアクセスするように構成することもできる。
【0056】
あるいは、本正当性認証起動管理システムのためのファームウェアやOS(便宜上、以後「サブOS」と呼ぶことにする)構築し、サブOSを起動させた後に、サブOSの管理のもとに本正当性認証起動管理システムを実行するように構成することも可能である。
【0057】
<実施形態2 ハードウエア構成 正当性認証起動管理システムのプログラム及び情報の説明>
実施形態1と共通の処理を実行するプログラムとして、「正当性チェックプログラム」、「起動処理続行中止プログラム」がある。プログラムの機能については、実施形態1と同様であるから、説明を省略する。
実施形態2に特徴的なプログラムとして、「セキュリティ情報取得プログラム」を有する。
「セキュリティ情報取得プログラム」は、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報をセキュリティ情報蓄積部から取得するためのプログラムである。セキュリティ情報蓄積部は、セキュリティ情報を記憶しているROM等のメモリそのものあるいはメモリ内に存在している領域のことをいう。セキュリティ情報取得プログラムは、セキュリティ情報蓄積部にアクセスしてセキュリティ情報を取得して、メインメモリにセキュリティ情報を展開する。
展開された上記各プログラムは順次又は常時実行される。なお、本正当性認証起動管理システムの実行の際に参照されるデータとしては、セキュリティ情報、正当性認証情報、正当性判断結果、中止命令、図示しない通信など各種の設定情報等が保持され、BIOSの管理の下(あるいはサブOSの管理の下)メインメモリにロードされ、正当性認証起動管理システムのプログラム実行に際して参照され、利用される。
【0058】
<実施形態2 処理の流れ>
図9は、実施形態2の最も基本的な構成の処理の流れを示す図である。この図に示すように、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報をセキュリティ情報蓄積部から取得する「セキュリティ情報蓄積部からセキュリティ情報取得ステップ」(0901)、「正当性チェックステップ」(0902)、「セキュリティ情報チェック結果判断ステップ」(0903)、「起動処理続行中止ステップ」(0904)、「起動処理続行ステップ」(0905)と、を少なくとも実行する。実施形態1と共通の処理を行うステップについては、実施形態1にて既に説明済みであることから、説明を省略した。
【0059】
<実施形態3>
<実施形態3 概要>
本実施形態における発明は、実施形態2に記載する発明の特徴に加えて、コンピュータの立上時でシステム起動前に当該コンピュータのMPUの立上によって得られる当該MPU配下のハードウエアのセキュリティ情報に基づいたセキュリティ情報である立上時セキュリティ情報を利用して、正当性認証起動管理を行うことを特徴とする。
【0060】
<実施形態3 発明の構成>
図10は、本実施形態における正当性認証起動管理システムの最も基本的な発明の構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(1001)、セキュリティ情報蓄積部(1002)、立上時セキュリティ情報取得部(1003)、正当性認証情報保持部(1004)、正当性チェック部(1005)、立上時正当性チェック手段(1006)、起動処理続行中止部(1007)と、からなる。以下では、実施形態2との共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明する。
【0061】
<実施形態3 構成の説明>
<実施形態3 立上時セキュリティ情報取得部>
「立上時セキュリティ情報取得部」は、コンピュータの立上時でシステム起動前に当該コンピュータのMPUの立ち上がりによって得られる当該MPU配下のハードウエアのセキュリティ情報に基づいたセキュリティ情報である立上時セキュリティ情報を取得する。立上時セキュリティ情報としては、ハードウエアの種類ごとに与えられている種類識別情報、各ハードウエアの個体ごとに与えられている個体識別情報、等が考えられる。あるいは、本正当性認証起動管理システムにおいてセキュリティ情報として認証可能なユニークな番号として与える識別情報であってもよい。
【0062】
立上時セキュリティ情報を取得する方法としては、BIOSが各ハードウエアから起動のための起動シグナル等を受信する際に、これに関連付けてあるいはこれに含まれる情報として取得する方法が考えられる。立上時セキュリティ情報をBIOSが取得すると、BIOSは立上時セキュリティ情報を獲得した順にメモリ領域に書き込むことで、立上時セキュリティ情報のリストを生成する。このとき立上時セキュリティ情報のリストを生成するメモリは、メインメモリであってもよいし、そのほかの立上時セキュリティ情報を記憶するための記憶領域を設ける構成となっていてもよい。あるいは、BIOSが存在しているチップ上のキャッシュメモリとして構成されていてもよい。なお、立上時セキュリティ情報のリストは、立上の都度認証に利用するリストであり、立上の都度獲得されるべき情報であることから、コンピュータの起動時にのみ記憶される一時的な記録として記憶可能なように構成されていれば足りる。
【0063】
<実施形態3 立上時正当性チェック手段>
「立上時正当性チェック手段」は、セキュリティ情報であって、セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、立上時セキュリティ情報とに基づいて立上時セキュリティ情報の正当性をチェックする。
図11は、立上時正当性チェック手段によるチェック方法を概念的に示した図である。図に示す様に、立上時セキュリティ情報と蓄積セキュリティ情報とを用いて、立上時セキュリティ情報の正当性を判断する。立上時セキュリティ情報は、上述のようにコンピュータの立上時にMPU配下に配置されている各種ハードウエアを識別するための情報としてBIOS等の各種ハードウエアの起動を管理制御するハードウエアによって獲得される。立上時正当性情報は、MPU配下にあるコンピュータ内の情報やコンピュータの動作に関連するハードウエアの網羅的なリストといえる。したがって、立上時正当性チェック手段によって立上時セキュリティ情報の正当性をチェックすることによって、MPU配下にある各種ハードウエアが設計者の設計意図に沿った構成となっているか否かを判断することが可能となる。
【0064】
<実施形態3 ハードウエア構成>
図11は、実施形態3の最も基本的なハードウエア構成の一例を示す図である。図に示す各種ハードウエア(メモリカード、メインメモリ、フラッシュメモリ、クロックジェネレータ、SATAコネクタ、ネットワークコントローラチップ、サウンドコントローラチップ、ディスプレイコントローラチップ、グラフィックスプロセッシングユニット、ポート80ディスプレイ、チップセット、拡張カード、ハードディスクドライブ)、MPU、不揮発性メモリ、メインメモリ、BIOS、インターフェイスの基本的な構造については、実施形態1で説明してあるので省略する。
【0065】
<実施形態3 ハードウエア構成 本システムがBIOS配下にあることについて>
図12に示す様に、本正当性認証起動管理システムは、OSの起動前の処理を問題としていることから、その時点で起動状態にあるBIOSの配下にプログラム(本実施形態では:セキュリティ情報取得プログラム、正当性チェックプログラム、立上時セキュリティ情報取得プログラム、立上時正当性チェックプログラム、起動処理続行中止プログラム、を少なくとも有する。)が位置しており、これらのプログラムは、MPUが処理可能にBIOSによってメインメモリに展開される。さらに、各種情報もBIOSによってメインメモリに展開されるように構成してもよい。あるいはMPUが直接BIOS配下の本システムを構成するハードウエア中の情報にアクセスするように構成することもできる。
【0066】
あるいは、本正当性認証起動管理システムのためのファームウェアやOS(便宜上、以後「サブOS」と呼ぶことにする)構築し、サブOSを起動させた後に、サブOSの管理のもとに本正当性認証起動管理システムを実行するように構成することも可能である。
【0067】
<実施形態3 ハードウエア構成 正当性認証起動管理システムのプログラム及び情報の説明>
実施形態1と共通の処理を実行するプログラムとして、「セキュリティ情報取得部」「起動処理続行中止プログラム」がある。プログラムの機能については、実施形態と2同様であるから、説明を省略する。
実施形態3に特徴的なプログラムとして、「立上時セキュリティ情報取得部」「正当性チェック部」「立上時正当性チェック手段」、を有する。
「立上時セキュリティ情報取得部」は、コンピュータの立上時でシステム起動前に当該コンピュータのMPUの立上によって得られる当該MPU配下のハードウエアのセキュリティ情報に基づいたセキュリティ情報である立上時セキュリティ情報を取得する。立上時セキュリティ情報は、当該コンピュータのMPU配下のハードウエアの全部または一部のセキュリティ情報から取得される。
「正当性チェック部」は、セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、立上時セキュリティ情報と、正当性認証情報とに基づいて、正当性チェックを行う。
「立上時正当性チェック手段」は、セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、立上時セキュリティ情報とに基づいて立上時セキュリティ情報の正当性をチェックする。
展開された上記各プログラムは順次又は常時実行される。なお、本正当性認証起動管理システムの実行の際に参照されるデータとしては、セキュリティ情報、正当性認証情報、正当性判断結果、立上時セキュリティ情報、立上時正当性チェック結果、中止命令、図示しない通信など各種の設定情報等が保持され、BIOSの管理の下(あるいはサブOSの管理の下)メインメモリにロードされ、正当性認証起動管理システムのプログラム実行に際して参照され、利用される。
【0068】
<実施形態3 処理の流れ>
図13は、実施形態3の最も基本的な構成の処理の流れを示す図である。この図に示すように、「セキュリティ蓄積部からセキュリティ情報取得ステップ」(1301)、立上時セキュリティ情報を取得するための「立上時セキュリティ情報取得ステップ」(1302)、「正当性チェックステップ」(1303)、蓄積されているセキュリティ情報と立上時セキュリティ情報とに基づいて立上時セキュリティ情報の正当性を認証するための「立上時正当性チェックサブステップ」(1304)、立上時正当性チェック結果が正当であるか否かを判断する「立上時セキュリティ情報チェック結果判断ステップ」(1305)、立上時セキュリティ情報のチェック結果として立上時セキュリティ情報が正当であった場合に、正当性認証結果が正当であるか否かを判断する「セキュリティチェック結果判断ステップ」(1306)、立上時セキュリティ情報のチェック結果において正当性が認証されなかった場合、又は、セキュリティ情報の正当性チェック結果において正当性が認証されなかった場合に「起動処理続行中止ステップ」(1307)、セキュリティ情報の正当性チェック結果において正当性が認証された場合に「起動処理続行ステップ」(1308)と、を少なくとも実行する。実施形態と共通の処理を行うステップについては、実施形態1又は実施形態2にて既に説明済みであることから、説明を省略した。
【0069】
<実施形態3 その他の実施形態1:蓄積セキュリティ情報の真正を担保する>
<実施形態3 その他の実施形態1:概要>
図14に概念的に示す様に、本実施形態は実施形態3の構成に加えて、蓄積セキュリティ情報の真正性を正当性認証情報を用いたチェックによって担保する構成である。
【0070】
<実施形態3 その他の実施形態1:構成>
図15は、その他の実施形態1における構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報蓄積部(1501)、セキュリティ情報取得部(1502)、蓄積セキュリティ情報真正性判断部(1503)、正当性認証情報保持部(1504)、正当性チェック部(1505)、起動処理続行中止部(1506)と、からなる。以下では、他の実施形態と共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明をする。
【0071】
<実施形態3 その他の実施形態1:構成の説明>
<実施形態3 その他の実施形態1 構成の説明:蓄積セキュリティ情報真正性判断部>
「蓄積セキュリティ情報真正性判断部」は、セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、正当性認証情報保持部に保持されている正当性認証情報とを用いて蓄積されているセキュリティ情報の真正性をチェックする。
【0072】
蓄積セキュリティ情報の真正性を担保する方法としては、
図14に示すように、蓄積セキュリティ情報を正当性認証情報を用いてチェックする方法が考えられる。
具体的には、例えば、まずセキュリティ情報取得部がセキュリティ情報蓄積部に蓄積されたセキュリティ情報を取得する。取得したセキュリティ情報の内容が正当であるかを正当性認証情報を用いて判断し、セキュリティ情報蓄積部に蓄積されているセキュリティ情報が確かに設計者の意図に沿った設計事項を内容とするハードウエア構成を示すリストであることを認証する。このようにして、正当性認証情報を用いてセキュリティ情報蓄積部に蓄積されているセキュリティ情報の真正をチェックする方法が考えられる。
【0073】
蓄積セキュリティ情報の真正性のチェック後、上述の実施形態3同様に、真正性を認証されたセキュリティ情報と立上時セキュリティ情報を関連付けて処理して、立上時正当性チェック結果を取得する。セキュリティ情報蓄積部に蓄積されているセキュリティ情報と立上時セキュリティ情報の間に完全一致しているという立上時正当性チェック結果が認められる場合にのみ、正当性が認証されるという正当性認証結果が得られる。
【0074】
このように立上時セキュリティ情報を間接的にチェックすることは一見して直接的にチェックすることと比べて余計な時間を費やするかのような印象を与えるが、それは違う。立上時セキュリティ情報は、MPU配下のハードウエアから毎回ランダムな順番で送られてくるのでランダムに到達した各ハードウエアのセキュリティ情報をソートして予め予定されている順に並べてから正当性認証情報保持部に保持されている正当性認証情報を用いた正当性の認証を行わなければならない。特に、正当性認証情報保持部に保持された正当性認証情報が順に並べられたセキュリティ情報を用いた特定のハッシュ関数に用ハッシュ値との比較によって行われる場合にはこの要請が必須となる。そこで本実施形態のような構成をとることにより、予め定められた順に並んだセキュリティ情報蓄積部に蓄積されたセキュリティ情報の真正性をチェックし、この真正性が認められたセキュリティ情報と、立上時セキュリティとを比較する演算を行う。この演算は特に秘匿性が高く堅牢に守られている正当性認証情報を用いた演算よりも演算負荷が軽くなる。つまりそれほど秘匿性が要求されない計算処理によって演算できるからである。従ってこの計算は高速で可能であり、全体として演算速度が速くできるという効果を有する。
【0075】
蓄積されているセキュリティ情報の正当性をチェックするためのハッシュ演算は正当性認証情報保持部に正当性認証情報とともに保持されているものを利用することができる。つまり正当セ認証情報保持部から外部にハッシュ関数を取り出し、そのハッシュ関数を用いて蓄積されているセキュリティ情報のハッシュ値を得る。このように構成するとハッシュ関数の改竄を防ぐことができるので安全性が高まる。
【0076】
なお、セキュリティ情報のハッシュ演算は必ずしも1回で処理する必要はなく、複数回に分けて処理してもよい。このようにハッシュ演算をブロック化した複数のセキュリティ情報に分けて処理すると、MPU配下のどのハードウエアのブロックで正当性が認められなかったかを判別することができ、その後の処理の最適化を図ることができる場合がある。例えば一部のブロックでは正当性が認証されなかったために起動処理の続行を中止し、他の正当性が認められたブロックでは起動処理を続行する、という対策をとることができる。
【0077】
蓄積されているセキュリティ情報の真正性の判断は、ハッシュ関数を利用する場合の他に暗号化の結果を比較する手法も考えられる。正当性認証情報は設計者の意図に沿った設計事項を内容とするハードウエア構成情報を特定のキーを用いて暗号化した場合に得られる暗号情報として構成しておき、セキュリティ情報蓄積部に蓄積されているセキュリティ情報に暗号情報を作成するのと同様の暗号キーを用いて暗号化した暗号化セキュリティ情報を獲得して、正当性認証情報と暗号化セキュリティ情報を比較することによって両者が完全に一致した場合にのみ、セキュリティ情報の真正を認証する構成が考えられる。
【0078】
本実施形態における正当性認証起動管理システムは、コンピュータの電源をいれてから、立上が完了するまでの間に行われる処理であり、ハッシュ演算や暗号化に要する時間はすなわちダイレクトにコンピュータの立上に要する時間として反映されることになる。
【0079】
<実施形態3 その他の実施形態1:ハードウエア構成>
図16は、その他の実施形態1のハードウエア構成の一例を示す図である。図に示す各種ハードウエア(メモリカード、メインメモリ、フラッシュメモリ、クロックジェネレータ、SATAコネクタ、ネットワークコントローラチップ、サウンドコントローラチップ、ディスプレイコントローラチップ、グラフィックスプロセッシングユニット、ポート80ディスプレイ、チップセット、拡張カード、ハードディスクドライブ)、MPU、不揮発性メモリ、メインメモリ、BIOS、インターフェイスの基本的な構造については、実施形態1で説明してあるので省略する。
【0080】
<実施形態3 その他の実施形態1:ハードウエア構成 本システムがBIOS配下にあることについて>
本正当性認証起動管理システムは、OSの起動前の処理を問題としていることから、その時点で起動状態にあるBIOSの配下にプログラム(本実施形態では:セキュリティ情報取得プログラム、蓄積セキュリティ情報真正判断プログラム、正当性チェックプログラム、起動処理続行中止プログラム、を少なくとも有する。)が位置しており、これらのプログラムは、MPUが処理可能にBIOSによってメインメモリに展開される。さらに、各種情報もBIOSによってメインメモリに展開されるように構成してもよい。あるいはMPUが直接BIOS配下の本システムを構成するハードウエア中の情報にアクセスするように構成することもできる。
【0081】
あるいは、本正当性認証起動管理システムのためのファームウェアやOS(便宜上、以後「サブOS」と呼ぶことにする)構築し、サブOSを起動させた後に、サブOSの管理のもとに本正当性認証起動管理システムを実行するように構成することも可能である。
【0082】
<実施形態3 その他の実施形態1:ハードウエア構成 正当性認証起動管理システムのプログラム及び情報の説明>
図16に示す様に、他の実施形態との共通の処理を実行するプログラムとして、「セキュリティ情報取得プログラム」、「正当性チェックプログラム」、「起動処理続行中止プログラム」がある。プログラムの機能については、他の実施形態と同様であるから、説明を省略する。
その他の実施形態1に特徴的なプログラムとして、「蓄積セキュリティ情報真正性判断プログラム」を有する。
「蓄積セキュリティ情報真正性判断プログラム」は、セキュリティ情報蓄積部に蓄積されているセキュリティ情報と、正当性認証情報保持部に保持されている正当性認証情報とを用いて蓄積されているセキュリティ情報の真正性をチェックする。
展開された上記各プログラムは順次又は常時実行される。なお、本正当性認証起動管理システムの実行の際に参照されるデータとしては、セキュリティ情報、正当性認証情報、真正判断結果、正当性判断結果、中止命令、図示しない通信など各種の設定情報等が保持され、BIOSの管理の下(あるいはサブOSの管理の下)メインメモリにロードされ、正当性認証起動管理システムのプログラム実行に際して参照され、利用される。
【0083】
<実施形態3 その他の実施形態1:処理の流れ>
図17は、その他の実施形態1の最も基本的な構成の処理の流れを示す例図である。この図に示すように、蓄積セキュリティ情報の真正性をチェックるすための「蓄積セキュリティ情報真正性判断ステップ」(1701)、蓄積セキュリティ情報判断ステップの判断結果が真正であるか否かをチェックする「蓄積セキュリティ情報チェック結果真正性判断ステップ」(1702)、蓄積セキュリティ情報の真正判断結果が真正である場合には「セキュリティ情報蓄積部からセキュリティ情報取得ステップ」(1703)、「正当性チェックステップ」(1704)、セキュリティ情報正当性チェック結果が正当か否かを判断する「セキュリティ情報正当性チェック結果判断ステップ」(1705)、蓄積セキュリティ情報の真正判断結果が真正ではない場合、又は、セキュリティ情報の正当性が認証されなかった場合に「起動処理続行中止ステップ」(1706)、正当性が認証された場合に「起動処理続行ステップ」(1707)と、を少なくとも実行する。他の実施形態と共通の処理を行うステップについては、説明を省略した。
【0084】
<実施形態3 その他の実施形態2:概要>
その他の実施形態1で記載したように、蓄積セキュリティ情報の真正性をチェックした時、蓄積セキュリティ情報が真正ではないというチェック結果が得られた場合に、セキュリティ情報取得部による蓄積セキュリティ情報の取得を制御して取得させないようにして、この段階でシステムの起動を中止する構成である。
【0085】
<実施形態3 その他の実施形態2:発明の構成>
図18は、その他の実施形態2における正当性認証起動管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報蓄積部(1801)、セキュリティ情報取得部(1802)、蓄積セキュリティ情報真正性判断部(1803)、取得制限部(1804)、正当性認証情報保持部(1805)、正当性チェック部(1806)、起動処理続行中止部(1807)と、からなる。以下では、他の実施形態と共通の構成についての説明は省略し、本実施形態に特有の構成について説明をする。
【0086】
<実施形態3 その他の実施形態2:構成の説明>
<実施形態3 その他の実施形態2 構成の説明:取得制御部>
「取得制御部」は、蓄積セキュリティ情報真正性判断部での判断結果が真正でないとの判断結果である場合」には、セキュリティ情報取得部がセキュリティ情報蓄積部からセキュリティ情報を取得しないように制御する。取得制限部がセキュリティ情報取得部によるセキュリティ情報の取得を制限する方法としては、取得制限部がセキュリティ情報取得部に対して取得処理の中止を指示する中止命令を出力する方法が考えられる。あるいは、取得制限部が取得指示を出したときにのみセキュリティ情報取得部がセキュリティ情報を取得するように構成し、取得制限部がセキュリティ情報取得部に対してセキュリティ情報の取得指示を出さないことによって取得を制限するように構成してもよい。
【0087】
取得制限部を構成することによって、仮に蓄積セキュリティ情報が真正でない場合には、真正性のチェック以降起動のための処理を進行させる必要がなく、取得制限部がない場合よりもより早期にコンピュータの起動処理の続行の中止を行う。
【0088】
<実施形態3 その他の実施形態2:ハードウエア構成>
図19は、その他の実施形態2の最も基本的なハードウエア構成の一例を示す図である。図に示す各種ハードウエア(メモリカード、メインメモリ、フラッシュメモリ、クロックジェネレータ、SATAコネクタ、ネットワークコントローラチップ、サウンドコントローラチップ、ディスプレイコントローラチップ、グラフィックスプロセッシングユニット、ポート80ディスプレイ、チップセット、拡張カード、ハードディスクドライブ)、MPU、不揮発性メモリ、メインメモリ、BIOS、インターフェイスの基本的な構造については、実施形態1で説明してあるので省略する。
【0089】
<実施形態3 その他の実施形態2 ハードウエア構成 本正当性認証起動管理システムがBIOS配下にあることについて>
本正当性認証起動管理システムは、OSの起動前の処理を問題としていることから、その時点で起動状態にあるBIOSの配下にプログラム(本実施形態では:セキュリティ情報取得プログラム、蓄積セキュリティ情報真正判断プログラム、取得制御プログラム、正当性チェックプログラム、起動処理続行中止プログラム、を少なくとも有する。)が位置しており、これらのプログラムは、MPUが処理可能にBIOSによってメインメモリに展開される。さらに、各種情報もBIOSによってメインメモリに展開されるように構成してもよい。あるいはMPUが直接BIOS配下の本システムを構成するハードウエア中の情報にアクセスするように構成することもできる。
【0090】
あるいは、本正当性認証起動管理システムのためのファームウェアやOS(便宜上、以後「サブOS」と呼ぶことにする)構築し、サブOSを起動させた後に、サブOSの管理のもとに本正当性認証起動管理システムを実行するように構成することも可能である。
【0091】
<実施形態3 その他の実施形態2 ハードウエア構成 正当性認証起動管理システムのプログラム及び情報の説明>
その他の実施形態1との共通の処理を実行するプログラムとして、「セキュリティ情報取得プログラム」、「蓄積セキュリテ情報真正性判断プログラム」、「正当性チェックプログラム」、「起動処理続行中止プログラム」がある。プログラムの機能については、実施形態4と同様であるから、説明を省略する。
その他の実施形態2に特徴的なプログラムとして、「取得制限プログラム」を有する。
「取得制限プログラム」は、蓄積セキュリティ情報真正性判断部での判断結果が真正でないとの判断結果である場合には、セキュリティ情報取得部は、セキュリティ情報蓄積部からのセキュリティ情報を取得しないように制御する。
展開された上記各プログラムは順次又は常時実行される。なお、本正当性認証起動管理システムの実行の際に参照されるデータとしては、セキュリティ情報、正当性認証情報、真正判断結果、取得制御指示、正当性判断結果、中止命令、図示しないバス線通信など各種の設定情報等が保持され、BIOSの管理の下(あるいはサブOSの管理の下)メインメモリにロードされ、正当性認証起動管理システムのプログラム実行に際して参照され、利用される。
【0092】
<実施形態3 その他の実施形態2 処理の流れ>
図20は、その他の実施形態2の処理の流れを示す例図である。この図に示すように、「蓄積セキュリティ情報真正性判断ステップ」(2001)、蓄積セキュリティ情報真正性判断結果判断ステップ」(2002)、蓄積セキュリティ情報の真正性が認められない場合にセキュリティ情報取得部がセキュリティ情報を取得することを制限する「取得制御ステップ」(2003)、蓄積セキュリティ情報の真正性が認められる場合には「セキュリティ情報蓄積部からセキュリティ情報取得ステップ」(2004)、「正当性チェックステップ」(2005)、正当性チェック結果が正当であるか否かを判断する「正当性チェック結果判断ステップ」(2006)、正当性が認証されなかった場合に「起動処理続行中止ステップ」(2007)、正当性が認証された場合に「起動処理続行ステップ」(2008)と、を少なくとも実行する。他の実施形態との共通の処理を行うステップについては説明を省略した。
【0093】
<実施形態4>
<実施形態4 概要>
本実施形態における発明は、実施形態1から実施形態3に記載した特徴に加えて、正当性認証情報が耐タンパ性領域に保持されていることを特徴とする。
【0094】
<実施形態4 発明の構成>
図21は本実施形態における正当性認証管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(2101)、正当性認証情報保持部(2102)、正当性チェック部(2103)、起動処理続行中止部(2104)と、からなり、正当性認証情報保持部は耐タンパ領域内に正当性認証情報を保持している(2105)。以下では、実施形態1から実施形態3のいずれかに記載の発明と共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明する。
【0095】
<実施形態4 構成の説明>
<実施形態4 耐タンパ領域>
「耐タンパ領域」とは、耐タンパ性を有する領域である。一般的に、耐タンパ性を有する代表的なハードウエアとしては、耐タンパ性チップが用いられてきた。しかし、耐タンパ性チップは、保存可能なデータ領域が非常に小さく、処理速度が遅かった。そこで、正当性認証情報をそのままのデータ量で収納することが出来ない事態も想定可能であるし、耐タンパ性チップに保存されている正当性認証情報を正当性認証情報保持部から正当性チェック部に出力する場合に、数秒の時間を要する可能性があり、これに本システムの正当性認証から起動管理までに要する時間が起動時間全体に及ぼす影響割合が大きくなってくる。そこで、耐タンパ性チップではなく、耐タンパ領域を仮想的に作り、耐タンパ領域内に正当性認証情報を保存することによって、大きな容量の情報を保存可能とし、しかも通信速度は耐タンパ性がない状態のものとそれほど変わらないようにすることが可能となる。
【0096】
ここで、耐タンパ性とは、外部からの観測や解析により暗号鍵などの機密情報や情報の処理過程、プログラムなどを抜き取ったり、動作に干渉してデータやプログラムを改竄されることのような、非正規な手段による解析や干渉に耐えられる強さをいう。耐タンパ性チップでは、特殊なパッケージに封入して開けると内部が破壊される仕組み、空気や光を検知して自動的に半導体メモリの内容が消去される仕組み、動作を解析されることを防ぐために消費電力や処理時間の変動を一定に保つ仕組み、等によって耐タンパ性を実現している。ソフトウェアの場合には、プログラムを暗号化して正規の実行時のみ復号して実行するような仕組み、プログラムを難解にしてリバースエンジニアリング等を用いても動作を解析されにくい仕組み、ハッシュ値などを利用した改竄検知の仕組み等によって耐タンパ性を実現している。
【0097】
本実施形態では、耐タンパ性領域に記録されている情報、例えば正当性認証情報やハッシュ関数は外部から読み取れるが外部から改ざんされない、破壊されない、という機能を耐タンパ性という場合があり、また、単に改ざんされない、破壊されないだけでなく、内部の情報を外部から読み取れないという機能を耐タンパ性と呼ぶ場合がある。前者の場合は改ざんされることがない正当性認証情報やハッシュ関数は耐タンパ性領域から取り出した直後には正当なものであることが保証され、耐タンパ領域外でこれらの情報や関数を利用しても正しい処理ができる。後者の場合にはさらに堅牢であって耐タンパ領域に外部からチェックすべき情報例えばセキュリティ情報を取得して、耐タンパ領域内でその正当性をチェックして外部にその結果を出力することでハードウエアの正当性をチェックする。前者よりも後者の方がより堅牢ではあるが、耐タンパ性のチップは一般に高価であり、そのためにできるだけ容量を小さくし、機能も低く抑制したいという要請があるために前者の構成によって正当性をチェックすることに十分なコストパフォーマンスが得られる。
【0098】
<実施形態4 ハードウエア構成>
実施形態4のハードウエア構成の一例は、実施形態1から実施形態3のいずれかに記載のハードウエア構成の例と一致する。したがって、実施形態1から実施形態3のいずれかにおいて既に説明済みであることから、本実施形態では説明を省略する。
【0099】
<実施形態4 処理の流れ>
実施形態4の正当性認証起動管理システムの処理の流れの一例は、実施形態1から実施形態3のいずれかに記載の処理の流れの例と一致する。したがって、実施形態1から実施形態3のいずれかにおいて既に説明済みであることから、本実施形態では説明を省略する。
【0100】
<実施形態5>
<実施形態5 概要>
本実施形態における発明は、実施形態1から実施形態4のいずれかに記載の発明の特徴に加えて、MPU配下のハードウエアであるROM内にセキュリティ情報取得部が構成されていることを特徴とする。ここで構成されているとは、その構成を読みだしてメインメモリに展開することで実行可能な状態にあることをいう。
【0101】
<実施形態5 発明の構成>
図22は本実施形態における正当性認証管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(20201)、正当性認証情報保持部(2202)、正当性チェック部(2203)、起動処理続行中止部(2204)と、からなり、政党制認証情報保持部は耐タンパ性領域(2205)内に保持されており、セキュリティ情報取得部は、MPU配下のハードウエアであるROM内(2206)に構成されている。以下では、実施形態1から実施形態4のいずれかに記載の発明と共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明する。
【0102】
<実施形態5 構成の説明>
前述のように、ROMは読み込みしかできないことから、ROMに記憶した情報は、原則的にはROM自体を交換しない限りは、内容を書き換えられることがない。なおROMの他に演算回路を配置してメインメモリに展開しないでセキュリティ情報取得処理を行うように構成してもよい。この場合に取得されたセキュリティ情報はメインメモリに展開して処理してもよいし、さらに別途演算用にメモリを準備してその場所を使って正当性の認証の演算処理をするように構成してもよい。
【0103】
<実施形態5 ハードウエア構成>
実施形態5のハードウエア構成の一例は、実施形態1から実施形態4のいずれかに記載のハードウエア構成の例と一致する。したがって、実施形態1から実施形態4のいずれかにおいて既に説明済みであることから、本実施形態では説明を省略する。
【0104】
<実施形態5 処理の流れ>
実施形態5の正当性認証起動管理システムの処理の流れの一例は、実施形態1から実施形態4のいずれかに記載の処理の流れの例と一致する。したがって、実施形態1から実施形態4のいずれかにおいて既に説明済みであることから、本実施形態では説明を省略する。
【0105】
<実施形態6>
<実施形態6 概要>
本実施形態における発明は、実施形態4又は実施形態4を基礎とする実施形態5に記載の発明の特徴に加えて、正当性チェック部がROM内に構成されており、セキュリティ情報を耐タンパ性領域内の正当性認証情報保持部に送信し、その返信内容に応じて正当性を認証することを特徴とする。ここで正当性チェック部がROM内に構成されているとは前述と同様に、その構成を読みだしてメインメモリに展開することで実行可能な状態にあることをいう。なおROMの他に演算回路を配置してメインメモリに展開しないで正当性チェック処理を行うように構成してもよい。この場合に取得された正当性認証情報と取得したセキュリティ情報はメインメモリに展開して処理してもよいし、さらに別途演算用にメモリを準備してその場所を使って正当性の認証の演算処理をするように構成してもよい。
【0106】
<実施形態6 発明の構成>
図23は本実施形態における正当性認証管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(2301)、正当性認証情報保持部(2302)、正当性チェック部(2303)、起動処理続行中止部(2304)と、からなり、正当性認証情報保持部は耐タンパ領域内に正当性認証情報を保持しており(2305)、かつ、正当性チェック部がROM内(2306)に構成されている。以下では、実施形態4又は実施形態4を基礎とする実施形態5に記載の発明と共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明する。
【0107】
<実施形態6 ハードウエア構成>
実施形態6のハードウエア構成の一例は、実施形態4又は実施形態4を基礎とする実施形態5に記載のハードウエア構成の例と一致する。したがって、実施形態4又は実施形態4を基礎とする実施形態5において既に説明済みであることから、本実施形態では説明を省略する。
【0108】
<実施形態6 処理の流れ>
実施形態6の正当性認証起動管理システムの処理の流れの一例は、実施形態4又は実施形態4を基礎とする実施形態5に記載の処理の流れの例と一致する。したがって、実施形態4又は実施形態4を基礎とする実施形態5において既に説明済みであることから、本実施形態では説明を省略する。
【0109】
<実施形態7>
<実施形態7 概要>
本実施形態における発明は、実施形態5または実施形態5を基礎とする実施形態6に記載の発明の特徴に加えて、セキュリティ情報取得部が構成されているROMが耐タンパ性を有することを特徴とする発明である。
【0110】
<実施形態7 発明の構成>
図24は本実施形態における正当性認証管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(2401)、正当性認証情報保持部(2402)、正当性チェック部(2403)、起動処理続行中止部(2404)と、からなり、正当性認証情報保持部は耐タンパ領域内に正当性認証情報を保持しており(2405)、正当性チェック部がROM内に存在しており(2406)、セキュリティ情報取得部は、MPU配下のハードウエアであるROM内(2407)に構成されており、かつ耐タンパ性領域(2408)である。以下では、実施形態5又は実施形態5を基礎とする実施形態6のいずれかに記載の発明と共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明する。
【0111】
<実施形態7 ハードウエア構成>
実施形態7のハードウエア構成の一例は、実施形態5又は実施形態5を基礎とする実施形態6に記載のハードウエア構成の例と一致する。したがって、実施形態5又は実施形態5を基礎とする実施形態6のいずれかにおいて既に説明済みであることから、本実施形態では説明を省略する。
【0112】
<実施形態7 処理の流れ>
実施形態7の正当性認証起動管理システムの処理の流れの一例は、実施形態5又は実施形態5を基礎とする実施形態6のいずれかに記載の処理の流れの例と一致する。したがって、実施形態5又は実施形態5を基礎とする実施形態6のいずれかにおいて既に説明済みであることから、本実施形態では説明を省略する。
【0113】
<実施形態8>
<実施形態8 概要>
本実施形態における発明は、実施形態6又は実施形態6を基礎とする実施形態7に記載の発明の特徴に加えて、正当性チェック部が構成されているROMが耐タンパ性を有することを特徴とする発明である。
【0114】
<実施形態8 発明の構成>
図25は本実施形態における正当性認証管理システムの最も基本的な構成の一例を示す機能ブロック図である。図に示す様に、セキュリティ情報取得部(2501)、正当性認証情報保持部(2502)、正当性チェック部(2503)、起動処理続行中止部(2504)と、からなり、正当性認証情報保持部は耐タンパ領域内に正当性認証情報を保持しておりる(2505)、正当性チェック部がROM内(2506)に存在しており、かつ正当性チェック部が構成されているROMが耐タンパ性(2507)を有する。以下では、実施形態6又は実施形態6に従属する実施形態7に記載の発明と共通の構成についての説明は省略し、本実施形態に特徴的な構成についてのみ説明する。
【0115】
<実施形態8 ハードウエア構成>
実施形態8のハードウエア構成の一例は、実施形態6又は実施形態6を基礎とする実施形態7に記載のハードウエア構成の例と一致する。したがって、実施形態6又は実施形態6を基礎とする実施形態7において既に説明済みであることから、本実施形態では説明を省略する。
【0116】
<実施形態8 処理の流れ>
実施形態8の正当性認証起動管理システムの処理の流れの一例は、実施形態6又は実施形態6の基礎とする実施形態7に記載の処理の流れの例と一致する。したがって、実施形態6又は実施形態6を基礎とする実施形態7において既に説明済みであることから、本実施形態では説明を省略する。
【0117】
<実施形態9>
<実施形態9 概要>
本実施形態は、正当性認証起動管理システムの動作方法に関するものである。
【0118】
<実施形態9 発明の構成>
図5は、本実施形態における正当性認証起動管理システムの動作方法の構成の一例を示す図である。図に示す様に、正当性認証起動管理システムの動作方法は、セキュリティ情報取得ステップ(0501)、正当性チェックステップ(0502)、セキュリティ情報正当性判断ステップ(0503)、判断ステップの結果に応じて、起動処理続行中止スッテプ(0504)又は起動処理続行ステップ(0505)のいずれかのステップを選択するように構成されている。
【0119】
<実施形態9 構成の説明>
各ステップで行われる処理は、実施形態1から実施形態3のいずれか一に記載の処理の流れにおいて説明済みであり、さらに詳細な働きについては、実施形態1から実施形態3において各処理を行う構成部の説明として説明済みであることから、本実施形態では説明を省略する。
【0120】
<実施形態10>
<実施形態10 概要>
本実施形態は、正当性認証起動管理システムの動作プログラムに関するものである。
【0121】
<実施形態10 発明の構成>
図5は、本実施形態における正当性認証起動管理システムの動作プログラムの構成の一例を示す図である。図に示す様に、正当性認証起動管理システムの動作プログラムは、セキュリティ情報取得ステップ(0501)、正当性チェックステップ(0502)、セキュリティ情報正当性判断ステップ(0503)、判断ステップの結果に応じて、起動処理続行中止スッテプ(0504)又は起動処理続行ステップ(0505)のいずれかのステップを選択するように構成されている。
【0122】
<実施形態10 構成の説明>
各ステップで行われる処理を実行するプログラムは、セキュリティ情報取得プログラム、正当性チェックプログラム、起動処理続行中止プログラムである。各プログラムの働きについては、実施形態1から実施形態3のいずれか一に記載のハードウエア構成において説明済みであり、さらに詳細な働きについては、実施形態1から実施形態3において各処理を行う構成部の説明として説明済みであることから、本実施形態では説明を省略する。
コンピュータ内にアンノウンが追加的に紛れ込んでいることを発見する方法が求められていた。そこで、コンピュータの立上時でシステム起動前に当該コンピュータのMPU配下のハードウエアのセキュリティ情報に基づいたセキュリティ情報を取得するセキュリティ情報取得部と、コンピュータのMPU配下のハードウエアの正当性を認証するための情報である正当性認証情報を保持する正当性認証情報保持部と、取得したセキュリティ情報と、保持されている正当性認証情報とを用いて、ハードウエアの正当性をチェックする正当性チェック部と、正当性チェック部でのチェック結果が全てのハードウエアについて正当であるとのチェック結果である場合にシステムの起動処理を続行させ、全てのハードウエアについて正当であるとのチェック結果でない場合にはシステムの起動処理を続行させない起動処理続行中止部と、を有する正当性認証起動管理システムを提供する。