(57)【特許請求の範囲】
【請求項１】
機器に対して取外しが可能であり、又は、機器に内蔵された情報処理装置であって、
前記機器の正当性を確認するための機器正当性判定プログラムと、前記機器の機器制御部からの要求を受け付けて実行する処理プログラムとを記憶した書換え不可の記憶部と、
制御部と、
を備え、
前記制御部は、
前記機器の起動時に、前記機器制御部から前記機器正当性判定プログラムの実行要求を受け付けたことに応じて、前記機器正当性判定プログラムを実行し、前記機器の正当性を確認する正当性確認部と、
前記機器制御部から前記処理プログラムの実行要求を受け付けた場合に、前記正当性確認部により前記機器の正当性が確認されている場合にのみ前記処理プログラムの実行を許可する実行許可部と、
を備え、
前記正当性確認部は、前記機器制御部からハッシュ値を受け付けたことに応じて、前記機器正当性判定プログラムに含むハッシュ値と比較し、比較結果を、前記機器制御部に送出し、
前記実行許可部は、前記比較結果が一致している場合にのみ前記正当性確認部による前記機器の正当性が確認されているものとして、前記機器制御部から前記処理プログラムの実行要求を受け付けること、
を特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記機器正当性判定プログラムと、前記処理プログラムとのいずれからもアクセス可能な共有記憶部を備え、
前記制御部は、
前記正当性確認部による前記機器の正当性確認結果を、前記共有記憶部に記憶させる結果記憶制御部を備え、
前記実行許可部は、前記共有記憶部に記憶された前記正当性確認結果が正当性の確認ができた旨のものである場合にのみ前記処理プログラムの実行を許可し、前記処理プログラムが使用するデータ領域へのアクセスを可能にすること、
を特徴とする情報処理装置。
【請求項３】
請求項１又は請求項２に記載の情報処理装置において、
前記処理プログラムは、認証処理を行うプログラムであり、
前記制御部は、前記実行許可部により前記処理プログラムの実行が許可されたことに応じて、前記処理プログラムを実行し、認証処理を行う認証処理部を備えること、
を特徴とする情報処理装置。
【請求項４】
請求項１から請求項３までのいずれかに記載の情報処理装置において、
前記正当性確認部は、前記処理プログラムの実行により使用する前記機器の各部の正当性を確認するものであり、前記機器制御部から各部に対応したハッシュ値を受け付けたことに応じて、前記機器正当性判定プログラムに含む各部のハッシュ値と比較し、比較結果を、前記機器制御部に送出すること、
を特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
前記正当性確認部は、前記機器制御部から各部に対応したハッシュ値を受け付けたことに応じて、受け付けた前記ハッシュ値を積算し、積算されたハッシュ値と、前記機器正当性判定プログラムに含む各部のハッシュ値と比較し、比較結果を、前記機器制御部に送出すること、
を特徴とする情報処理装置。
【請求項６】
請求項１から請求項５までのいずれかに記載の情報処理装置において、
この情報処理装置は、１チップ構成のＩＣチップであること、
を特徴とする情報処理装置。
【請求項７】
請求項１から請求項６までのいずれかに記載の情報処理装置と、
前記情報処理装置を内蔵し、又は前記情報処理装置に対して接続された機器と、
を備える情報処理システム。
【請求項８】
機器に対して取外しが可能であり、又は、機器に内蔵された情報処理装置であるコンピュータに格納されたプログラムであって、
前記コンピュータは、前記機器の正当性を確認するための機器正当性判定プログラムと、前記機器の機器制御部からの要求を受け付けて実行する処理プログラムとのいずれからもアクセス可能であり、前記機器の正当性確認結果を記憶する共有記憶部を備え、
前記コンピュータを、
前記機器の起動時に、前記機器制御部から前記機器正当性判定プログラムの実行要求を受け付けたことに応じて、前記機器正当性判定プログラムを実行し、前記機器の正当性を確認する正当性確認手段と、
前記機器制御部から前記処理プログラムの実行要求を受け付けた場合に、前記正当性確認手段により前記機器の正当性が確認されている場合にのみ前記処理プログラムの実行を許可する実行許可手段と、
前記実行許可手段により許可された前記処理プログラムによる処理を実行する処理実行手段と、
して機能させ、
前記正当性確認手段を、前記機器制御部からハッシュ値を受け付けたことに応じて、前記機器正当性判定プログラムに含むハッシュ値と比較し、比較結果を、前記機器制御部に送出するように機能させ、
前記実行許可手段を、前記比較結果が一致している場合にのみ前記正当性確認手段による前記機器の正当性が確認されているものとして、前記機器制御部から前記処理プログラムの実行要求を受け付けるように機能させること、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム及び処理プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータの信頼性と安全性を向上させるための標準技術を策定する業界団体であるＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）が、コンピューティング・プラットフォームに向けて、セキュリティチップに関するＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）チップの仕様を作成している（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３１７０２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＴＰＭチップが組み込まれたコンピュータは、起動（ブート）時に自身のハードウェア等が第三者によって改ざんされていないかどうかを検知することが可能であり、コンピュータ自身が信頼されたものであることを確認できる。
最近は、コンピュータ同士が通信ネットワークを介して互いに情報をやり取りするＭ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）技術が開発されており、今後はＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｍｏｄｕｌｅ）を搭載したコンピュータを利用してコンピュータの信頼性を図りながら、どのコンピュータからどのような情報を取得したのかを把握できるような環境が必要となることが予想される。
【０００５】
そこで、本発明は、コンピュータ等の装置の正当性を保証した上で処理プログラムを実行可能な情報処理装置、情報処理システム及び処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。また、符号を付して説明した構成は、適宜改良してもよく、また、少なくとも一部を他の構成物に代替してもよい。
【０００７】
第１の発明は、機器（４）に対して取外しが可能であり、又は、機器に内蔵された情報処理装置（１）であって、前記機器の正当性を確認するための機器正当性判定プログラム（２１）と、前記機器の機器制御部からの要求を受け付けて実行する処理プログラム（２２）とを記憶した書換え不可の記憶部（２０ａ）と、制御部（１０）と、を備え、前記制御部は、前記機器の起動時に、前記機器制御部から前記機器正当性判定プログラムの実行要求を受け付けたことに応じて、前記機器正当性判定プログラムを実行し、前記機器の正当性を確認する正当性確認部（１１）と、前記機器制御部から前記処理プログラムの実行要求を受け付けた場合に、前記正当性確認部により前記機器の正当性が確認されている場合にのみ前記処理プログラムの実行を許可する実行許可部（１３）と、を備えること、を特徴とする情報処理装置である。
第２の発明は、第１の発明の情報処理装置（１）において、前記機器正当性判定プログラム（２１）と、前記処理プログラム（２２）とのいずれからもアクセス可能な共有記憶部（２５）を備え、前記制御部（１０）は、前記正当性確認部（１１）による前記機器（４）の正当性確認結果を、前記共有記憶部に記憶させる結果記憶制御部（１２）を備え、前記実行許可部（１３）は、前記共有記憶部に記憶された前記正当性確認結果が正当性の確認ができた旨のものである場合にのみ前記処理プログラムの実行を許可すること、を特徴とする情報処理装置である。
第３の発明は、第１の発明又は第２の発明の情報処理装置（１）において、前記処理プログラム（２２）は、認証処理を行うプログラムであり、前記制御部（１０）は、前記実行許可部（１３）により前記処理プログラムの実行が許可されたことに応じて、前記処理プログラムを実行し、認証処理を行う認証処理部（１４）を備えること、を特徴とする情報処理装置である。
第４の発明は、第１の発明から第３の発明までのいずれかの情報処理装置（１）において、前記正当性確認部（１１）は、前記処理プログラム（１２）の実行により使用する前記機器（４）の各部の正当性を確認するものであること、を特徴とする情報処理装置である。
第５の発明は、第１の発明から第４の発明までのいずれかの情報処理装置（１）において、前記実行許可部（１３）は、前記処理プログラム（２２）の実行を許可したことに応じて、前記処理プログラムが使用するデータ領域（２２ａ）へのアクセスを可能にすること、を特徴とする情報処理装置である。
第６の発明は、第１の発明から第５の発明までのいずれかの情報処理装置（１）において、この情報処理装置は、１チップ構成のＩＣチップであること、を特徴とする情報処理装置である。
【０００８】
第７の発明は、第１の発明から第６の発明までのいずれかの情報処理装置（１）と、前記情報処理装置を内蔵し、又は前記情報処理装置に対して接続された機器（４）と、を備える情報処理システム（１００）である。
【０００９】
第８の発明は、機器（４）に対して取外しが可能であり、又は、機器に内蔵された情報処理装置（１）であるコンピュータに格納された処理プログラム（２２）であって、前記コンピュータは、前記機器の正当性を確認するための機器正当性判定プログラム（２１）と、前記処理プログラムとのいずれからもアクセス可能であり、前記機器の正当性確認結果を記憶する共有記憶部（２５）を備え、前記コンピュータを、前記機器の機器制御部（４０）からの実行要求を受け付ける実行要求受付手段と、前記実行要求受付手段が前記実行要求を受け付けたことに応じて、前記共有記憶部を確認する確認手段と、前記確認手段による確認により前記機器の正当性が確認できた場合に、前記処理プログラムによる処理を実行する処理実行手段と、して機能させること、を特徴とする処理プログラムである。
【発明の効果】
【００１０】
本発明によれば、コンピュータ等の装置の正当性を保証した上で処理プログラムを実行可能な情報処理装置、情報処理システム及び処理プログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る情報処理システムの機能ブロック図である。
【図２】本実施形態に係るＩＣチップの記憶部のソフトウェア構造を説明するための図である。
【図３】本実施形態に係る端末の記憶部のソフトウェア構造を説明するための図である。
【図４】本実施形態に係る端末の起動処理のフローチャートである。
【図５】本実施形態に係る端末及びＩＣチップのハッシュ値検証処理のフローチャートである。
【図６】本実施形態に係る端末及びＩＣチップのフラグ書換処理のフローチャートである。
【図７】本実施形態に係るＩＣチップの認証開始処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について、図を参照しながら説明する。なお、これは、あくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
（実施形態）
図１は、本実施形態に係る情報処理システム１００の機能ブロック図である。
図２は、本実施形態に係るＩＣチップ１の記憶部２０のソフトウェア構造を説明するための図である。
図３は、本実施形態に係る端末４の記憶部５０のソフトウェア構造を説明するための図である。
図１に示す情報処理システム１００は、端末４（機器）の起動時に、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップ１（情報処理装置）に記憶されているセキュアブートプログラム２１（機器正当性判定プログラム）を実行し、端末４のハードウェア等が第三者によって不正に改ざんされていないかどうかの正当性を確認する。そして、情報処理システム１００は、ＩＣチップ１の認証処理プログラム２２（処理プログラム）を、端末４の正当性が確認できた場合にのみ実行可能とするシステムである。
なお、端末４は、ＩＣチップ１との間で通信可能な状態で起動及び使用する。
情報処理システム１００は、ＩＣチップ１と、端末４とを備える。
【００１３】
ＩＣチップ１は、耐タンパ性を有するセキュアなチップである。ＩＣチップ１は、１チップ構成になっている。ＩＣチップ１は、例えば、カード媒体に設けられてもよい。
ＩＣチップ１は、制御部１０と、記憶部２０と、Ｉ／Ｆ（インタフェース）部３０とを備える。
制御部１０は、ＩＣチップ１の全体を制御するＣＰＵ（中央処理装置）である。制御部１０は、記憶部２０に記憶されているＯＳ（オペレーティングシステム）や各種アプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働して各種機能を実行する。
制御部１０は、正当性確認部１１と、結果記憶制御部１２と、実行許可部１３と、認証処理部１４とを備える。
【００１４】
正当性確認部１１は、記憶部２０に記憶されているセキュアブートプログラム２１の実行要求を、端末４から受け付けたことに応じて、セキュアブートプログラム２１を実行して、端末４の正当性を確認する。
端末４が正当ではない場合とは、端末４に対する改ざんや違法な接続等がされていたり、マルウェア等の不正なプログラムが実行されていたりする場合をいう。なお、以下、端末４が正当ではない場合を、端末４が不当であるともいう。また、端末４が正当な場合とは、端末４に対する改ざんや違法な接続等がされておらず、マルウェア等の不正なプログラムが実行されていない場合をいう。
【００１５】
結果記憶制御部１２は、端末４の正当性確認結果を、共有記憶部２５に記憶させる。
実行許可部１３は、記憶部２０に記憶されている認証処理プログラム２２の実行要求を、端末４から受け付けたことに応じて、共有記憶部２５を参照する。そして、実行許可部１３は、正当性が確認された旨の結果が共有記憶部２５に記憶されている場合にのみ認証処理プログラム２２の実行を許可する。
認証処理部１４は、実行許可部１３により許可された認証処理プログラム２２を実行することで、認証処理を行う。
なお、各処理の詳細は、後述する。
【００１６】
記憶部２０は、制御部１０が各種の処理を実行するために必要なプログラム、データ等を記憶するための半導体メモリ素子等の記憶領域である。
記憶部２０は、プログラム記憶領域２０ａと、プログラム使用領域２０ｂとを備える。
プログラム記憶領域２０ａは、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）である。プログラム記憶領域２０ａは、プログラムを記憶させるための書き込みを１回だけ可能とし、書換え不可の記憶領域である。例えば、端末４を製造する工場において、端末４とＩＣチップ１とが通信可能に接続された状態で、プログラム記憶領域２０ａに対して、プログラムの書き込みを行う。
【００１７】
プログラム記憶領域２０ａは、セキュアブートプログラム２１と、認証処理プログラム２２とを記憶している。
セキュアブートプログラム２１は、端末４の正当性を確認するためのプログラムである。セキュアブートプログラム２１は、例えば、ＴＰＭの機能を実行するためのプログラムである。
認証処理プログラム２２は、認証処理を行うためのプログラムである。認証処理プログラム２２は、例えば、ＳＩＭの機能を実行するためのプログラムである。
プログラム使用領域２０ｂは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、一時記憶可能な記憶領域である。
プログラム使用領域２０ｂは、共有記憶部２５を備える。
共有記憶部２５は、セキュアブートプログラム２１と、認証処理プログラム２２との両方からアクセス可能な記憶領域である。
【００１８】
図２（Ａ）に示すように、ＩＣチップ１は、ＩＣチップ１のハードウェアを直接制御するソフトウェアとしてのＯＳ２３を、記憶部２０に搭載している。セキュアブートプログラム２１と、認証処理プログラム２２とは、土台であるＯＳ２３の上位で実行される。ＯＳ２３は、セキュアブートプログラム２１と、認証処理プログラム２２とに共通して利用される基本的な機能を提供するマルチアプリケーションＯＳである。
【００１９】
セキュアブートプログラム２１は、端末４の正当性を確認するためのプログラムである。セキュアブートプログラム２１は、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）２１ａと、ハッシュ値積算プログラム２１ｂと、比較プログラム２１ｃと、ホワイトリスト２１ｄとを含む。
ＰＣＲ２１ａは、後述する端末４から受信したハッシュ値を記憶するレジスタである。
ハッシュ値積算プログラム２１ｂは、端末４から受信したハッシュ値を積算する処理を行うプログラムである。
比較プログラム２１ｃは、ハッシュ値積算プログラム２１ｂによって積算したハッシュ値と、ホワイトリスト２１ｄに記憶されているハッシュ値とを比較して比較結果を出力するプログラムである。
なお、ハッシュ値積算プログラム２１ｂと、比較プログラム２１ｃとは、セキュアブートプログラム２１で実行する処理が記述されたプログラムである。
【００２０】
ホワイトリスト２１ｄは、各ハッシュ値を予め記憶したものである。ホワイトリスト２１ｄは、端末４を製造する工場において、例えば、セキュアブートプログラム２１のハッシュ値積算プログラム２１ｂを実行することで、算出された各測定部分のハッシュ値を記憶させたものである。
図２（Ｂ）に示すように、ホワイトリスト２１ｄは、各測定部分のハッシュ値を予め記憶している。
【００２１】
図２（Ａ）に戻り、認証処理プログラム２２は、認証処理を行うプログラムである。認証処理プログラム２２は、認証に必要なＩＤ（ＩＤｅｎｔｉｆｉｅｒ）や証明書、暗号鍵等を記憶している。
認証処理プログラム２２は、データ領域２２ａを備える。データ領域２２ａは、認証処理プログラム２２の実行時に使用する一時記憶領域である。
共有記憶部２５は、フラグ領域２５ａを有する。フラグ領域２５ａは、セキュアブートプログラム２１が更新し、認証処理プログラム２２が参照する。
【００２２】
図１に戻り、Ｉ／Ｆ部３０は、端末４とのインタフェース部である。Ｉ／Ｆ部３０は、外部接続用の端子を備える。
ＩＣチップ１は、端末４に有するスロット部（図示せず）に差し込むことで、端末４との間で通信を行う。
上述したように、ＩＣチップ１は、耐タンパ性を有する。ＩＣチップ１は、Ｉ／Ｆ部３０以外の経路でデータや処理内容を操作することができない。そして、ＩＣチップ１で実行する機能は、端末４で動作するソフトウェアとは独立に動作する。よって、セキュアブートプログラム２１、認証処理プログラム２２、共有記憶部２５等の内容を、端末４で動作するソフトウェアが不正に変更することはできない。
【００２３】
端末４は、図示しないサーバ等の外部と通信を行う装置であり、例えば、パーソナルコンピュータ（ＰＣ）である。
端末４は、制御部４０（機器制御部）と、記憶部５０と、Ｉ／Ｆ部６０と、入力部６４と、通信部６６とを備える。
制御部４０は、端末４の全体を制御するＣＰＵである。制御部４０は、記憶部５０に記憶されているＯＳや各種アプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働して各種機能を実行する。
【００２４】
記憶部５０は、制御部４０が各種の処理を実行するために必要なプログラム、データ等を記憶するためのハードディスク、半導体メモリ素子等の記憶領域である。
記憶部５０は、ハッシュ値測定アプリ（アプリケーション）５１（５１ａ〜５１ｄ）（以下、アプリケーションを、アプリともいう。）を記憶している。
ハッシュ値測定アプリ５１は、ハッシュ値を算出して、ハッシュ値を送信するプログラムである。ハッシュ値は、例えば、ＳＨＡ−１ハッシュ値である。
図３に示すように、端末４の記憶部５０には、ブートローダ部５２と、ＯＳ部５３と、アプリケーション部５４とが記憶されている。ブートローダ部５２と、ＯＳ部５３と、アプリケーション部５４とは、ブートローダ部５２を下位にし、アプリケーション部５４を上位にした階層構造になっている。ハッシュ値測定アプリ５１ａは、ブートローダ部５２を測定対象にしている。また、ハッシュ値測定アプリ５１ｂは、ＯＳ部５３を、ハッシュ値測定アプリ５１ｃ及びハッシュ値測定アプリ５１ｄは、次に説明するアプリＡ及びアプリＢを、各々測定対象にしている。このように、ハッシュ値測定アプリ５１（５１ａ〜５１ｄ）は、各部に分散して記憶されている。
アプリケーション部５４は、アプリＡ及びアプリＢのアプリケーションプログラムを記憶している。これらのアプリケーションプログラムは、後述するように、クライアント認証を行った後に各種処理を行うプログラムである。
【００２５】
図１に戻り、Ｉ／Ｆ部６０は、ＩＣチップ１とのインタフェース部である。Ｉ／Ｆ部６０は、外部接続用の端子を備える。
入力部６４は、例えば、キーボード等の各種操作入力を行うものや、カメラ、センサ等である。
通信部６６は、外部との通信をするためのインタフェース部である。
端末４は、その他、液晶パネル等で構成される表示部や、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子等の端子部等を備えていてもよい。
【００２６】
なお、ハッシュ値測定アプリ５１による測定対象は、例えば、認証処理プログラム２２が外部（例えば、サーバ）との通信を行うものであれば、ブートローダ部５２、ＯＳ部５３、その認証処理プログラム２２を実行するアプリケーション部５４のソフトウェアの各部の他、通信部６６を含む。また、認証処理プログラム２２が、例えば、カメラや、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子に接続された記憶媒体を用いるものであれば、ハッシュ値測定アプリ５１による測定対象は、ソフトウェアの各部の他、入力部６４と、端子部とを含む。
【００２７】
次に、端末４を起動した際の処理について説明する。
図４は、本実施形態に係る端末４の起動処理のフローチャートである。
図５は、本実施形態に係る端末４及びＩＣチップ１のハッシュ値検証処理のフローチャートである。
図６は、本実施形態に係る端末４及びＩＣチップ１のフラグ書換処理のフローチャートである。
図４のステップＳ（以下、「Ｓ」という。）１０において、端末４のユーザが電源投入ボタン（図示せず）を操作したことで、端末４の制御部４０は、端末４の電源をＯＮにする。
Ｓ１１において、制御部４０は、ブートローダ部５２のハッシュ値検証処理を行う。
【００２８】
ここで、ハッシュ値検証処理について、図５に基づき説明する。
図５のＳ３０において、端末４の制御部４０は、ハッシュ値測定アプリ５１ａを起動する。
具体的には、制御部４０は、ＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ）と呼ばれる電源投入直後に実行される初期命令（ＩＮＩＴ）を基点として、ブートローダ部５２のハッシュ値測定アプリ５１ａを起動させる。
Ｓ３１において、端末４の制御部４０は、ハッシュ値を算出する。ハッシュ値の算出は、ハッシュ値測定アプリ５１ａにより行われる。
Ｓ３２において、端末４の制御部４０は、算出したハッシュ値を、ＩＣチップ１に対して送信する。
Ｓ３３において、ＩＣチップ１の制御部１０（正当性確認部１１）は、端末４が送信したハッシュ値を受信する。ここでのＩＣチップ１の制御部１０での処理は、セキュアブートプログラム２１を実行することで行われる処理である。
【００２９】
Ｓ３４において、ＩＣチップ１の制御部１０（正当性確認部１１）は、受信したハッシュ値を、ＰＣＲ２１ａに書き込む。ここで、制御部１０は、後述する繰り返しの処理によって、ハッシュ値を、ＰＣＲ２１ａに順々に格納していく。よって、ＰＣＲ２１ａには、端末４から受信したハッシュ値が積算されることになる。つまり、ＰＣＲ２１ａには、受信したハッシュ値を順々に加算した値が格納されるので、ハッシュ値によって、処理の順番を含めて、端末４が正当であるか否かを確認できる。
Ｓ３５において、ＩＣチップ１の制御部１０（正当性確認部１１）は、ＰＣＲ２１ａに書き込まれたハッシュ値と、ホワイトリスト２１ｄに記憶されているハッシュ値とを比較する。
Ｓ３６において、ＩＣチップ１の制御部１０（正当性確認部１１）は、比較結果を、端末４に対して送信する。その後、制御部１０は、本処理を終了する。
Ｓ３７において、端末４の制御部４０は、ＩＣチップ１から比較結果を受信する。その後、制御部４０は、処理を図４に戻す。
【００３０】
図４に戻り、Ｓ１２において、端末４の制御部４０は、受信した比較結果が一致であるか否かを判断する。比較結果が一致である場合（Ｓ１２：ＹＥＳ）には、制御部４０は、処理をＳ１３に移す。他方、比較結果が不一致である場合（Ｓ１２：ＮＯ）には、制御部４０は、本処理を終了する。
比較結果が不一致、つまり、端末４から受信したハッシュ値がホワイトリストとは異なる場合には、端末４のブートローダ部５２が不当であることを示す。よって、制御部４０は、不当を検出した時点で起動処理を中断する。
Ｓ１３において、端末４の制御部４０は、ＯＳ部５３のハッシュ値検証処理を行う。
ＯＳ部５３のハッシュ値検証処理は、上述した図５の処理と同じである。Ｓ３０において、端末４の制御部４０は、ＯＳ部５３のハッシュ値測定アプリ５１ｂを起動する。また、Ｓ３４のホワイトリストのハッシュ値との比較は、処理対象のＯＳ部５３のハッシュ値と比較するものである。
Ｓ１４において、端末４の制御部４０は、比較結果が一致であるか否かを判断する。比較結果が一致である場合（Ｓ１４：ＹＥＳ）には、制御部４０は、処理をＳ１５に移す。他方、比較結果が不一致である場合（Ｓ１４：ＮＯ）には、制御部４０は、本処理を終了する。
【００３１】
Ｓ１５において、端末４の制御部４０は、アプリケーション部５４のハッシュ値検証処理を行う。これも、上述した図５の処理と同じである。アプリケーション部５４のハッシュ値検証処理は、アプリＡのハッシュ値検証処理及びアプリＢのハッシュ値検証処理を順番に行う。その際に、アプリＡのハッシュ値検証処理の場合には、Ｓ３０において、端末４の制御部４０がアプリＡのハッシュ値測定アプリ５１ｃを起動し、アプリＢのハッシュ値検証処理の場合には、Ｓ３０において、制御部４０がアプリＢのハッシュ値測定アプリ５１ｄを起動する。
Ｓ１６において、端末４の制御部４０は、アプリＡ及びアプリＢの比較結果が一致であるか否かを判断する。両方の比較結果が一致である場合（Ｓ１６：ＹＥＳ）には、制御部４０は、処理をＳ１７に移す。他方、一方でも比較結果が不一致である場合（Ｓ１６：ＮＯ）には、制御部４０は、本処理を終了する。
Ｓ１７において、端末４の制御部４０は、通信部６６のハッシュ値検証処理を行う。これも、上述した図５の処理と同じである。また、この処理は、ＯＳ部５３のハッシュ値測定アプリ５１ｂにより実行される。
Ｓ１８において、端末４の制御部４０は、比較結果が一致であるか否かを判断する。比較結果が一致である場合（Ｓ１８：ＹＥＳ）には、制御部４０は、処理をＳ１９に移す。他方、比較結果が不一致である場合（Ｓ１８：ＮＯ）には、制御部４０は、本処理を終了する。
Ｓ１９において、端末４の制御部４０は、フラグ書換処理を行う。
【００３２】
ここで、フラグ書換処理について、図６に基づき説明する。
図６のＳ４０において、端末４の制御部４０は、フラグ書換命令を、ＩＣチップ１に対して送信する。
Ｓ４１において、ＩＣチップ１の制御部１０は、端末４からフラグ書換命令を受信する。
Ｓ４２において、ＩＣチップ１の制御部１０（結果記憶制御部１２）は、共有記憶部２５のフラグ領域２５ａに「１」を設定する。なお、端末４の終了時（例えば、電源切断時）には、制御部４０は、フラグ領域２５ａを初期化する。よって、端末４の起動時には、フラグ領域２５ａには、初期値である「０」が設定されている。
Ｓ４３において、ＩＣチップの制御部１０は、書換完了通知を、端末４に対して送信する。その後、制御部１０は、本処理を終了する。
Ｓ４４において、端末４の制御部４０は、書換完了通知を受信する。その後、制御部４０は、本処理を終了し、図４に戻る。
図４に戻り、端末４の制御部４０は、本処理を終了する。
【００３３】
この起動処理によって、端末４が正当である場合には、ＩＣチップ１の共有記憶部２５のフラグ領域２５ａには、「１」が設定された状態になる。他方、端末４が不当である場合には、フラグ書換処理（図４のＳ１９）を行わないので、ＩＣチップ１の共有記憶部２５のフラグ領域２５ａには、「０」が設定された状態である。
【００３４】
次に、認証開始処理について説明する。
図７は、本実施形態に係るＩＣチップ１の認証開始処理のフローチャートである。
ここでは、認証処理プログラム２２を実行することで、通信部６６を介してサーバ（図示せず）に対して端末４のクライアント認証を行うものとして説明する。
なお、認証開始処理は、起動処理（図４）の後に行う処理である。
Ｓ５０において、ＩＣチップ１の制御部１０は、認証処理プログラム２２の起動を受け付ける。これは、例えば、端末４のユーザの操作により、端末４から認証処理プログラム２２の起動を受信したことで、制御部１０は、認証処理プログラム２２の起動を受け付ける。
Ｓ５１において、制御部１０は、共有記憶部２５のフラグ領域２５ａを参照する。
【００３５】
Ｓ５２において、制御部１０は、フラグ領域２５ａに「１」が設定されているか否かを判断する。フラグ領域２５ａに「１」が設定されているとは、上述の図４の処理によって、端末４が不当ではなく、正当である場合である。フラグ領域２５ａに「１」が設定されている場合（Ｓ５２：ＹＥＳ）には、制御部１０は、処理をＳ５３に移す。他方、フラグ領域２５ａに「１」が設定されていない場合（Ｓ５２：ＮＯ）には、制御部１０は、本処理を終了する。つまり、認証処理プログラム２２は、実行されず、認証処理を行えない。
Ｓ５３において、制御部１０（実行許可部１３）は、認証処理プログラム２２のデータ領域２２ａへのアクセスを許可する。
Ｓ５４において、制御部１０（認証処理部１４）は、認証処理プログラム２２に基づいた認証処理を行う。具体的には、認証処理プログラム２２に記憶されているＩＤを、通信部６６を介してサーバに送信することで、サーバとの間で認証処理を行う。その後、制御部１０は、本処理を終了する。
【００３６】
ＩＣチップ１は、認証開始処理において、端末４が正当であることが確認された場合には、認証処理を行うことができる。他方、端末４が不当であることが確認された場合には、認証処理を行うことができない。
【００３７】
このように、本実施形態によれば、情報処理システム１００は、以下のような効果がある。
（１）端末４が正当であることが確認された場合にのみ認証処理プログラム２２の実行を許可するので、正当な端末４からの指示により、認証処理プログラム２２を実行できる。よって、端末４の正当性を保証した上で、認証処理プログラム２２を実行でき、認証処理プログラム２２を実行して認証処理を行う認証先のサーバに対して、正当な端末４から認証処理が行われたことを保証できる。
（２）セキュアブートプログラム２１及び認証処理プログラム２２の実行時にアクセス可能な共有記憶部２５のフラグ領域２５ａに、端末４の正当性確認結果を記憶させることで、認証処理プログラム２２の実行を許可するか否かを、共有記憶部２５のフラグ領域２５ａを参照することで判断できる。
【００３８】
（３）認証処理プログラム２２を、端末４の正当性が確認された上で実行するので、端末４が正当であることを前提として認証処理を行うことにより、認証を行うことができる。そして、認証処理プログラム２２に記憶されたＩＤを使用し、他のＩＤを使用できないため、なりすましがないことを保証できる。
（４）端末４の正当性を、認証処理プログラム２２で使用する各測定部分について確認するので、使用する端末４の各測定部分が正当であることを前提として、認証処理プログラム２２を実行できる。
【００３９】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、実施形態に記載した効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載したものに限定されない。なお、上述した実施形態及び後述する変形形態は、適宜組み合わせて用いることもできるが、詳細な説明は省略する。
【００４０】
（変形形態）
（１）本実施形態では、端末４をＰＣとして説明した。しかし、端末４は、コンピュータに限定されない。端末４は、例えば、携帯電話機、情報家電、自動車、組込システム等の様々な機器であってもよい。端末４は、Ｍ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）のような、機器と機器とが通信ネットワークを介して互いに情報を通信することにより、自律的に高度な制御や動作を行うシステムへの適用に有用である。
（２）本実施形態では、ＩＣチップ１を端末４に対してＩ／Ｆ部を介して接続するものとして説明した。しかし、ＩＣチップは、機器に対して取外しが可能であるか否かに限定されるものではない。よって、ＩＣチップは、機器に内蔵された組み込みのものでもよい。例えば、ＩＣチップを、マザーボードに装着させてもよい。そのようにすることで、ＩＣチップを取り替えることができないので、機器の正当性をより確実に確認できる。
（３）本実施形態では、認証処理プログラム２２をＩＣチップ１に記憶する処理プログラムとして説明した。しかし、認証処理プログラム２２に限定されるものではなく、他の処理プログラムであってもよい。なお、その場合には、その処理プログラムを実行する際に使用する機器の各測定部分の正当性を確認すればよいので、使用する機器の各測定部分に対して、ハッシュ値による検証を行えばよい。
【００４１】
（４）本実施形態では、端末４の起動時にハッシュ値を検証することで、端末４が不当ではないことを確認するものであった。しかし、端末４の起動時の他、周期的に、又は、イベントが発生するごとに端末４のハッシュ値を検証して、端末４が不当ではないことを適宜確認してもよい。
（５）本実施形態では、端末４のハッシュ値を検証し、ホワイトリストと不一致の場合には、処理を中断するものとして説明した。しかし、ホワイトリストと不一致の場合に、不一致である旨を通知して、その後の処理を継続してもよい。その場合であっても、どこか１つでも不一致がある場合には、フラグ書換処理を行わないようにすることで、処理プログラムの実行を抑止できる。
【００４２】
（６）本実施形態では、端末４のハッシュ値測定アプリ５１（５１ａ〜５１ｄ）は、各測定部分に分散されて記憶するものとして説明した。しかし、ハッシュ値測定アプリは、例えば、ブートローダ部とＯＳ部の２箇所に記憶するものであってもよい。その場合には、ＯＳ部のハッシュ値測定アプリを、その上位のアプリケーション部やハードウェアに対するハッシュ値を算出するものとすればよい。
（７）本実施形態では、端末４のハッシュ値測定アプリ５１（５１ａ〜５１ｄ）は、ハッシュ値を算出し、ＩＣチップ１にハッシュ値を送信するものとして説明した。しかし、ハッシュ値を算出するプログラムと、算出したハッシュ値を送信するプログラムとは、別のプログラムであってもよい。
【００４３】
（８）本実施形態では、ＩＣチップ１が１チップ構成であるものとして説明した。しかし、ＩＣチップは、２チップ構成であってもよい。その場合には、例えば、ＣＰＵ、ＲＡＭ、コプロセッサを有するチップと、フラッシュメモリが独自にチップを有するパターンであってもよい。
【符号の説明】
【００４４】
１    ＩＣチップ
４    端末
１０，４０  制御部
１１  正当性確認部
１２  結果記憶制御部
１３  実行許可部
１４  認証処理部
２０，５０  記憶部
２０ａ  プログラム記憶領域
２１  セキュアブートプログラム
２２  認証処理プログラム
２２ａ  データ領域
２５  共有記憶部
６６  通信部
１００  情報処理システム
【図１】
0006354438.tif 000002
【図２】
0006354438.tif 000003
【図３】
0006354438.tif 000004
【図４】
0006354438.tif 000005
【図５】
0006354438.tif 000006
【図６】
0006354438.tif 000007
【図７】
0006354438.tif 000008