IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

特許7325072情報処理装置、情報処理装置の制御方法及びプログラム
<>
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図1
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図2
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図3
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図4
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図5
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図6
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図7
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図8
  • 特許-情報処理装置、情報処理装置の制御方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-08-03
(45)【発行日】2023-08-14
(54)【発明の名称】情報処理装置、情報処理装置の制御方法及びプログラム
(51)【国際特許分類】
   G06F 21/52 20130101AFI20230804BHJP
   G06F 21/57 20130101ALI20230804BHJP
   G06F 21/64 20130101ALI20230804BHJP
   G06F 21/74 20130101ALI20230804BHJP
   H04L 9/32 20060101ALI20230804BHJP
【FI】
G06F21/52
G06F21/57
G06F21/64
G06F21/74
H04L9/32 200A
【請求項の数】 4
(21)【出願番号】P 2023520072
(86)(22)【出願日】2023-02-07
(86)【国際出願番号】 JP2023003978
【審査請求日】2023-03-31
(31)【優先権主張番号】P 2022146517
(32)【優先日】2022-09-14
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】竹内 章人
(72)【発明者】
【氏名】永井 拓丸
【審査官】小林 秀和
(56)【参考文献】
【文献】米国特許出願公開第2013/0275980(US,A1)
【文献】特開2015-055898(JP,A)
【文献】特開2019-057167(JP,A)
【文献】特開2008-158815(JP,A)
【文献】特開2021-093002(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/52
G06F 21/57
G06F 21/64
G06F 21/74
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
第1の被監視部と、
第2の被監視部と、
前記第1の被監視部を監視する第1の監視部であって、前記第1の被監視部のハッシュ値と当該ハッシュ値の期待値である第1のハッシュ期待値とを比較することにより、前記第1の被監視部の検証を繰り返し実行する第1の監視部と、
前記第1の監視部よりもセキュアであり且つ前記第1の監視部を監視する第2の監視部であって、前記第1のハッシュ期待値を含む前記第1の監視部のハッシュ値と当該ハッシュ値の期待値である第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行する第2の監視部と、を備え
前記第1の監視部は、
前記第1のハッシュ期待値を記憶する第1の記憶部と、
前記第1の被監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第1の記憶部に記憶された前記第1のハッシュ期待値とを比較することにより、前記第1の被監視部の検証を繰り返し実行する第1の制御部と、を有し、
前記第2の監視部は、
前記第2のハッシュ期待値を記憶する第2の記憶部と、
前記第1の監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第2の記憶部に記憶された前記第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行する第2の制御部と、を有し、
前記第1の被監視部は、
前記第2の被監視部のハッシュ値の期待値である第3のハッシュ期待値を記憶する第3の記憶部と、
前記第2の被監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第3の記憶部に記憶された前記第3のハッシュ期待値とを比較することにより、前記第2の被監視部の検証を繰り返し実行する第3の制御部と、を有する
情報処理装置。
【請求項2】
前記情報処理装置は、複数の前記第1の被監視部を備えており、
前記第1の制御部は、前記複数の第1の被監視部のうち、優先度が高いと判断される前記第1の被監視部を検証対象として決定する
請求項に記載の情報処理装置。
【請求項3】
情報処理装置の制御方法であって、
前記情報処理装置は、
第1の被監視部と、
第2の被監視部と、
前記第1の被監視部を監視する第1の監視部と、
前記第1の監視部よりもセキュアであり且つ前記第1の監視部を監視する第2の監視部と、を備え、
前記第1の監視部は、前記第1の被監視部のハッシュ値の期待値である第1のハッシュ期待値を記憶する第1の記憶部を有し、
前記第2の監視部は、前記第1の監視部のハッシュ値の期待値である第2のハッシュ期待値を記憶する第2の記憶部を有し、
前記第1の被監視部は、前記第2の被監視部のハッシュ値の期待値である第3のハッシュ期待値を記憶する第3の記憶部を有し、
前記制御方法は、
前記第1の監視部が、前記第1の被監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第1の記憶部に記憶された前記第1のハッシュ期待値とを比較することにより、前記第1の被監視部の検証を繰り返し実行するステップと、
前記第2の監視部が、前記第1のハッシュ期待値を含む前記第1の監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第2の記憶部に記憶された前記第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行するステップと、
前記第1の被監視部が、前記第2の被監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第3の記憶部に記憶された前記第3のハッシュ期待値とを比較することにより、前記第2の被監視部の検証を繰り返し実行するステップと、を含む
情報処理装置の制御方法。
【請求項4】
請求項に記載の情報処理装置の制御方法をコンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
ファームウェアのセキュリティ対策として、ファームウェアの起動時における完全性検証(セキュアブート)だけでなく、ファームウェアの起動後に完全性検証を繰り返し行う常時完全性検証(RI:Runtime Integrity)をも実行することが要望されている。
【0003】
従来のセキュリティ対策で用いられる情報処理装置では、プログラム領域がノンセキュア領域と当該ノンセキュア領域よりもセキュリティレベルの高いセキュア領域とに分割されている(例えば、特許文献1参照)。ノンセキュア領域は、当該ノンセキュア領域で動作する被監視部を有している。セキュア領域は、被監視部を監視するための監視部を有している。監視部は、被監視部のハッシュ値を算出し、算出したハッシュ値に基づいて、被監視部の常時完全性検証を実行する。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第6067449号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来のセキュリティ対策では、ノンセキュア領域における被監視部の数が増大するのに従って、セキュア領域において複数の被監視部の各々の常時完全性検証を実行するのに要する処理負荷が増大するという課題が生じる。
【0006】
そこで、本開示は、第2の監視部における処理負荷を低減することができる情報処理装置、情報処理装置の制御方法及びプログラムを提供する。
【課題を解決するための手段】
【0007】
本開示の一態様に係る情報処理装置は、第1の被監視部と、前記第1の被監視部を監視する第1の監視部であって、前記第1の被監視部のハッシュ値と当該ハッシュ値の期待値である第1のハッシュ期待値とを比較することにより、前記第1の被監視部の検証を繰り返し実行する第1の監視部と、前記第1の監視部よりもセキュアであり且つ前記第1の監視部を監視する第2の監視部であって、前記第1のハッシュ期待値を含む前記第1の監視部のハッシュ値と当該ハッシュ値の期待値である第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行する第2の監視部と、を備える。
【0008】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM(Compact Disc-Read Only Memory)等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0009】
本開示の一態様に係る情報処理装置等によれば、第2の監視部における処理負荷を低減することができる。
【図面の簡単な説明】
【0010】
図1】実施の形態1に係る情報処理装置の概要を示す図である。
図2】実施の形態1に係る情報処理装置の機能構成を示すブロック図である。
図3】実施の形態1に係る第1の監視部の動作の流れを示すフローチャートである。
図4】実施の形態1に係る第2の監視部の動作の流れを示すフローチャートである。
図5】比較例に係る情報処理装置の機能構成を示すブロック図である。
図6】実施の形態2に係る情報処理装置の機能構成を示すブロック図である。
図7】実施の形態2に係るサブ監視部の動作の流れを示すフローチャートである。
図8】実施の形態2に係るサブ監視部の動作の流れを示すフローチャートである。
図9】実施の形態2に係る第1の監視部の動作の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
本開示の第1の態様に係る情報処理装置は、第1の被監視部と、前記第1の被監視部を監視する第1の監視部であって、前記第1の被監視部のハッシュ値と当該ハッシュ値の期待値である第1のハッシュ期待値とを比較することにより、前記第1の被監視部の検証を繰り返し実行する第1の監視部と、前記第1の監視部よりもセキュアであり且つ前記第1の監視部を監視する第2の監視部であって、前記第1のハッシュ期待値を含む前記第1の監視部のハッシュ値と当該ハッシュ値の期待値である第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行する第2の監視部と、を備える。
【0012】
本態様によれば、第1の監視部は、第1の被監視部を監視し、第1の監視部よりもセキュアである第2の監視部は、第1の監視部を監視する。これにより、第1の被監視部の数が増大した場合であっても、第1の監視部が多数の第1の被監視部の各々の検証を実行する回数は増大するが、第2の監視部が第1の監視部の検証を実行する回数は増大しない。その結果、第2の監視部の処理リソースが第1の監視部の処理リソースよりも少ない場合であっても、第2の監視部における処理負荷を低減することができ、第2の監視部の処理リソースが不足するのを回避することができる。
【0013】
また、本開示の第2の態様に係る情報処理装置では、第1の態様において、前記第1の監視部は、前記第1のハッシュ期待値を記憶する第1の記憶部と、前記第1の被監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第1の記憶部に記憶された前記第1のハッシュ期待値とを比較することにより、前記第1の被監視部の検証を繰り返し実行する第1の制御部と、を有し、前記第2の監視部は、前記第2のハッシュ期待値を記憶する第2の記憶部と、前記第1の監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第2の記憶部に記憶された前記第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行する第2の制御部と、を有するように構成してもよい。
【0014】
本態様によれば、第1の監視部及び第2の監視部による検証を容易に実行することができる。
【0015】
また、本開示の第3の態様に係る情報処理装置では、第2の態様において、前記情報処理装置は、さらに、第2の被監視部を有し、前記第1の被監視部は、前記第2の被監視部のハッシュ値の期待値である第3のハッシュ期待値を記憶する第3の記憶部と、前記第2の被監視部のハッシュ値を算出し、算出した当該ハッシュ値と前記第3の記憶部に記憶された前記第3のハッシュ期待値とを比較することにより、前記第2の被監視部の検証を繰り返し実行する第3の制御部と、を有するように構成してもよい。
【0016】
本態様によれば、第1の監視部と第1の被監視部とで検証の処理を分散することにより、検証を効率良く実行することができる。
【0017】
また、本開示の第4の態様に係る情報処理装置では、第2の態様又は第3の態様において、前記情報処理装置は、複数の前記第1の被監視部を備えており、前記第1の制御部は、前記複数の第1の被監視部のうち、優先度が高いと判断される前記第1の被監視部を検証対象として決定するように構成してもよい。
【0018】
本態様によれば、検証の高速化を図ることができる。
【0019】
本開示の第5の態様に係る情報処理装置の制御方法では、前記情報処理装置は、被監視部と、前記被監視部を監視する第1の監視部と、前記第1の監視部よりもセキュアであり且つ前記第1の監視部を監視する第2の監視部と、を備え、前記制御方法は、前記第1の監視部が、前記被監視部のハッシュ値と当該ハッシュ値の期待値である第1のハッシュ期待値とを比較することにより、前記被監視部の検証を繰り返し実行するステップと、前記第2の監視部が、前記第1のハッシュ期待値を含む前記第1の監視部のハッシュ値と当該ハッシュ値の期待値である第2のハッシュ期待値とを比較することにより、前記第1の監視部の検証を繰り返し実行するステップと、を含む。
【0020】
本態様によれば、上述と同様に、第2の監視部における処理負荷を低減することができ、第2の監視部の処理リソースが不足するのを回避することができる。
【0021】
本開示の第6の態様に係るプログラムは、第5の態様に係る情報処理装置の制御方法をコンピュータに実行させる。
【0022】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
【0023】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0024】
なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0025】
(実施の形態1)
[1-1.情報処理装置の概要]
まず、図1を参照しながら、実施の形態1に係る情報処理装置2の概要について説明する。図1は、実施の形態1に係る情報処理装置2の概要を示す図である。
【0026】
図1に示すように、実施の形態1に係る情報処理装置2は、ハードウェア4と、セキュリティソフトウェア6と、オペレーティングシステム(OS)8と、アプリケーション10とを備えている。情報処理装置2は、例えば自動車等の車両に搭載された車載ネットワークにおいて、各種コンピュータプログラム(以下、単に「プログラム」という)の起動後に当該各種プログラムの完全性検証を繰り返し行う常時完全性検証(RI)を実行するための装置である。ここで、「完全性」とは、情報処理装置2の各種プログラムに対して不正な改ざん等が行なわれていない状態であることを意味する。
【0027】
ハードウェア4は、例えばCPU(Central Processing Unit)又はECU(Electronic Control Unit)等を有するプロセッサを含み、複数のプログラムの実行環境を提供する。本実施の形態では、例えばハードウェア4を信頼の基点(Root of Trust)として、各種プログラムの常時完全性検証(RI)が実行される。
【0028】
セキュリティソフトウェア6は、ハードウェア4上で実行され、情報処理装置2のデータやプログラム等の安全性を確保するセキュリティ管理のためのソフトウェアである。
【0029】
オペレーティングシステム8は、ハードウェア4上で動作するオペレーティングシステムである。
【0030】
アプリケーション10は、オペレーティングシステム8上で動作するアプリケーションソフトウェアである。
【0031】
上述した情報処理装置2は、さらに、複数の被監視部16,18,20(それぞれ第1の被監視部の一例)と、第1の監視部22と、第2の監視部24とを備えている。
【0032】
複数の被監視部16,18,20の各々は、例えばIDS(Intrusion Detection System)又はライブラリ等であり、アプリケーション10で動作する。複数の被監視部16,18,20の各々は、CPU又はプロセッサ等のプログラム実行部が、メモリに記録されたプログラムを読み出して実行することにより実現される。
【0033】
第1の監視部22は、複数の被監視部16,18,20の各々を監視するためのものであり、例えばオペレーティングシステム8で動作する。具体的には、第1の監視部22は、複数の被監視部16,18,20の各々の起動後に、複数の被監視部16,18,20の各々の完全性検証を繰り返し行う常時完全性検証を実行する。第1の監視部22は、CPU又はプロセッサ等のプログラム実行部が、メモリに記録されたプログラムを読み出して実行することにより実現される。
【0034】
なお、本実施の形態では、複数の被監視部16,18,20の各々は、アプリケーション10で動作するようにしたが、これに限定されず、複数の被監視部16,18,20の少なくとも1つは、オペレーティングシステム8で動作するようにしてもよい。また、本実施の形態では、第1の監視部22は、オペレーティングシステム8で動作するようにしたが、これに限定されず、アプリケーション10で動作するようにしてもよい。
【0035】
第2の監視部24は、第1の監視部22を監視するためのものであり、例えばセキュリティソフトウェア6で動作する。具体的には、第2の監視部24は、第1の監視部22の起動後に、第1の監視部22の完全性検証を繰り返し行う常時完全性検証を実行する。また、第2の監視部24は、第1の監視部22よりもセキュアである。具体的には、第2の監視部24は、プログラムの機密性や完全性等の安全性が確保されている。第2の監視部24は、CPU又はプロセッサ等のプログラム実行部が、メモリに記録されたプログラムを読み出して実行することにより実現される。
【0036】
なお、本実施の形態では、第2の監視部24は、セキュリティソフトウェア6で動作するようにしたが、これに限定されず、オペレーティングシステム8又はアプリケーション10で動作するようにしてもよい。この場合、第1の監視部22と第2の監視部24は同じ動作環境で動作するが、第2の監視部24は、第1の監視部22よりも解析を困難にするための実装(例えば、難読化又はハードニング等)がされており、よりセキュアである。
【0037】
[1-2.情報処理装置の機能構成]
次に、図2を参照しながら、実施の形態1に係る情報処理装置2の機能構成について説明する。図2は、実施の形態1に係る情報処理装置2の機能構成を示すブロック図である。
【0038】
図2に示すように、第1の監視部22は、機能構成として、読込部26と、記憶部28(第1の記憶部の一例)と、制御部30(第1の制御部の一例)とを有している。
【0039】
読込部26は、被監視部16のメモリから、被監視部16に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。また、読込部26は、被監視部18のメモリから、被監視部18に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。また、読込部26は、被監視部20のメモリから、被監視部20に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。読込部26は、読み込んだ各データを制御部30に出力する。
【0040】
記憶部28は、第1の監視部22に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を記憶するメモリである。具体的には、記憶部28は、被監視部16のハッシュ値の期待値であるハッシュ期待値「aaa」(第1のハッシュ期待値の一例)、被監視部18のハッシュ値の期待値であるハッシュ期待値「bbb」(第1のハッシュ期待値の一例)、及び、被監視部20のハッシュ値の期待値であるハッシュ期待値「ccc」(第1のハッシュ期待値の一例)を記憶する。なお、各ハッシュ期待値「aaa」、「bbb」及び「ccc」は、例えば情報処理装置2の工場出荷時に予め記憶部28に記憶されている。
【0041】
制御部30は、読込部26により読み込まれた被監視部16に関するデータに基づいて、被監視部16のハッシュ値を算出する。そして、制御部30は、算出した被監視部16のハッシュ値と、記憶部28に記憶された被監視部16のハッシュ期待値「aaa」とを比較することにより、被監視部16の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部30は、算出した被監視部16のハッシュ値(例えば、「aaa」)と被監視部16のハッシュ期待値「aaa」とが一致している場合には、被監視部16が正常であると判定する。一方、制御部30は、算出した被監視部16のハッシュ値(例えば、「ddd」)と被監視部16のハッシュ期待値「aaa」とが一致していない場合には、被監視部16が異常である(例えば、プログラムが改ざん等されている)と判定する。
【0042】
また、制御部30は、読込部26により読み込まれた被監視部18に関するデータに基づいて、被監視部18のハッシュ値を算出する。そして、制御部30は、算出した被監視部18のハッシュ値と、記憶部28に記憶された被監視部18のハッシュ期待値「bbb」とを比較することにより、被監視部18の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部30は、算出した被監視部18のハッシュ値(例えば、「bbb」)と被監視部18のハッシュ期待値「bbb」とが一致している場合には、被監視部18が正常であると判定する。一方、制御部30は、算出した被監視部18のハッシュ値(例えば、「eee」)と被監視部18のハッシュ期待値「bbb」とが一致していない場合には、被監視部18が異常であると判定する。
【0043】
また、制御部30は、読込部26により読み込まれた被監視部20に関するデータに基づいて、被監視部20のハッシュ値を算出する。そして、制御部30は、算出した被監視部20のハッシュ値と、記憶部28に記憶された被監視部20のハッシュ期待値「ccc」とを比較することにより、被監視部20の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部30は、算出した被監視部20のハッシュ値(例えば、「ccc」)と被監視部20のハッシュ期待値「ccc」とが一致している場合には、被監視部20が正常であると判定する。一方、制御部30は、算出した被監視部20のハッシュ値(例えば、「fff」)と被監視部20のハッシュ期待値「ccc」とが一致していない場合には、被監視部20が異常であると判定する。
【0044】
なお、本実施の形態では、各ハッシュ期待値「aaa」、「bbb」及び「ccc」が情報処理装置2の工場出荷時に予め記憶部28に記憶されているように構成したが、これに限定されない。例えば、制御部30は、情報処理装置2の初回起動時に、各ハッシュ期待値「aaa」、「bbb」及び「ccc」を動的に生成して記憶部28に記憶させてもよい。情報処理装置2の初回起動時には、複数の被監視部16,18,20の各々が不正なプログラムにより改ざん等されている可能性は極めて低い。そのため、情報処理装置2の初回起動時において、読込部26は、被監視部16のメモリから被監視部16に関するデータを読み込み、制御部30は、読込部26により読み込まれた被監視部16に関するデータに基づいて、被監視部16のハッシュ値(例えば、「aaa」)を算出する。そして、制御部30は、この算出した被監視部16のハッシュ値を、被監視部16のハッシュ期待値「aaa」として生成して記憶部28に記憶させる。同様にして、制御部30は、情報処理装置2の初回起動時に、被監視部18のハッシュ値(例えば、「bbb」)及び被監視部20のハッシュ値(例えば、「ccc」)を算出し、算出した被監視部18,20の各ハッシュ値をそれぞれ、被監視部18のハッシュ期待値「bbb」及び被監視部20のハッシュ期待値「ccc」として生成して記憶部28に記憶させる。
【0045】
図2に示すように、第2の監視部24は、機能構成として、読込部32と、記憶部34(第2の記憶部の一例)と、制御部36(第2の制御部の一例)とを有している。
【0046】
読込部32は、第1の監視部22の記憶部28から、第1の監視部22に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。なお、第1の監視部22に関するデータは、被監視部16のハッシュ期待値「aaa」、被監視部18のハッシュ期待値「bbb」及び被監視部20のハッシュ期待値「ccc」を含んでいる。読込部32は、読み込んだデータを制御部36に出力する。
【0047】
記憶部34は、第2の監視部24に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を記憶するメモリである。具体的には、記憶部34は、第1の監視部22のハッシュ値の期待値であるハッシュ期待値「XYZ」(第2のハッシュ期待値の一例)を記憶する。ハッシュ期待値「XYZ」は、複数の被監視部16,18,20の各ハッシュ期待値「aaa」、「bbb」及び「ccc」を含む、第1の監視部22に関するデータをハッシュ化することにより生成される。なお、ハッシュ期待値「XYZ」は、例えば情報処理装置2の工場出荷時に予め記憶部34に記憶されている。
【0048】
制御部36は、読込部32により読み込まれた第1の監視部22に関するデータに基づいて、第1の監視部22のハッシュ値を算出する。そして、制御部36は、算出した第1の監視部22のハッシュ値と、記憶部34に記憶された第1の監視部22のハッシュ期待値「XYZ」とを比較することにより、第1の監視部22の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部36は、算出した第1の監視部22のハッシュ値(例えば、「XYZ」)と第1の監視部22のハッシュ期待値「XYZ」とが一致している場合には、第1の監視部22が正常であると判定する。一方、制御部36は、算出した第1の監視部22のハッシュ値(例えば、「ZZZ」)と第1の監視部22のハッシュ期待値「XYZ」とが一致していない場合には、第1の監視部22が異常であると判定する。
【0049】
なお、本実施の形態では、ハッシュ期待値「XYZ」が情報処理装置2の工場出荷時に予め記憶部34に記憶されているとしたが、これに限定されない。上述と同様に、制御部36は、情報処理装置2の初回起動時に、ハッシュ期待値「XYZ」を動的に生成して記憶部34に記憶させてもよい。
【0050】
[1-3.情報処理装置の動作]
次に、図3を参照しながら、実施の形態1に係る第1の監視部22の動作について説明する。図3は、実施の形態1に係る第1の監視部22の動作の流れを示すフローチャートである。
【0051】
まず、情報処理装置2の運転が開始されると、情報処理装置2の各種プログラムが起動する。なお、各種プログラムの起動時には、必要に応じて各種プログラムのセキュアブートが実行される。図3に示すように、第1の監視部22の読込部26は、被監視部16の起動後において、被監視部16のメモリから、被監視部16に関するデータを読み込む(S101)。次いで、第1の監視部22の制御部30は、読込部26により読み込まれた被監視部16に関するデータに基づいて、被監視部16のハッシュ値を算出する(S102)。
【0052】
次いで、制御部30は、記憶部28から被監視部16のハッシュ期待値「aaa」を読み出す(S103)。なお、本実施の形態では、ステップS102の後にステップS103を実行したが、これに限定されず、ステップS103の後にステップS102を実行してもよい。すなわち、制御部30は、記憶部28から被監視部20のハッシュ期待値「aaa」を読み出した後に、読込部26により読み込まれた被監視部16に関するデータに基づいて被監視部16のハッシュ値を算出してもよい。
【0053】
次いで、制御部30は、算出した被監視部16のハッシュ値と、記憶部28から読み出した被監視部16のハッシュ期待値「aaa」とを比較することにより、被監視部16のハッシュ値の検証を実行する(S104)。すなわち、制御部30は、被監視部16のハッシュ値がハッシュ期待値「aaa」と一致しているか否かについての検証を実行することにより、被監視部16の常時完全性検証を実行する。
【0054】
ステップS104の後、読込部26は、被監視部18の起動後において、被監視部18のメモリから、被監視部18に関するデータを読み込む(S105)。次いで、制御部30は、読込部26により読み込まれた被監視部18に関するデータに基づいて、被監視部18のハッシュ値を算出する(S106)。
【0055】
次いで、制御部30は、記憶部28から被監視部18のハッシュ期待値「bbb」を読み出す(S107)。次いで、制御部30は、算出した被監視部18のハッシュ値と、記憶部28から読み出した被監視部18のハッシュ期待値「bbb」とを比較することにより、被監視部18のハッシュ値の検証を実行する(S108)。すなわち、制御部30は、被監視部18のハッシュ値がハッシュ期待値「bbb」と一致しているか否かについての検証を実行することにより、被監視部18の常時完全性検証を実行する。
【0056】
ステップS108の後、読込部26は、被監視部20の起動後において、被監視部20のメモリから、被監視部20に関するデータを読み込む(S109)。次いで、制御部30は、読込部26により読み込まれた被監視部20に関するデータに基づいて、被監視部20のハッシュ値を算出する(S110)。
【0057】
次いで、制御部30は、記憶部28から被監視部20のハッシュ期待値「ccc」を読み出す(S111)。次いで、制御部30は、算出した被監視部20のハッシュ値と、記憶部28から読み出した被監視部20のハッシュ期待値「ccc」とを比較することにより、被監視部20のハッシュ値の検証を実行する(S112)。すなわち、制御部30は、被監視部20のハッシュ値がハッシュ期待値「ccc」と一致しているか否かについての検証を実行することにより、被監視部20の常時完全性検証を実行する。
【0058】
ステップS112の後、情報処理装置2の運転を継続する場合には(S113でYES)、上述したステップS101に戻る。一方、情報処理装置2の運転を停止する場合には(S113でNO)、図3のフローチャートを終了する。
【0059】
なお、図3のフローチャートの処理、すなわち、第1の監視部22による複数の被監視部16,18,20の各々の常時完全性検証は、所定の周期(例えば、1回/秒)で繰り返し実行されるようにしてもよい。この場合、制御部30は、種々の条件に応じて所定の周期を動的に変更してもよい。あるいは、第1の監視部22による被監視部16,18,20の常時完全性検証は、外部からのトリガ信号の受信毎に実行されるようにしてもよい。
【0060】
また、本実施の形態では、制御部30は、複数の被監視部16,18,20の各々の常時完全性検証をシーケンシャルに実行したが、これに限定されず、複数の被監視部16,18,20の各々の常時完全性検証を同時並行で実行してもよい。
【0061】
次に、図4を参照しながら、実施の形態1に係る第2の監視部24の動作について説明する。図4は、実施の形態1に係る第2の監視部24の動作の流れを示すフローチャートである。
【0062】
まず、情報処理装置2の運転が開始されると、情報処理装置2の各種プログラムが起動する。図4に示すように、第2の監視部24の読込部32は、第1の監視部22の起動後において、第1の監視部22の記憶部28から、第1の監視部22に関するデータを読み込む(S201)。次いで、第2の監視部24の制御部36は、読込部32により読み込まれた第1の監視部22に関するデータに基づいて、第1の監視部22のハッシュ値を算出する(S202)。
【0063】
次いで、制御部36は、記憶部34から第1の監視部22のハッシュ期待値「XYZ」を読み出す(S203)。なお、本実施の形態では、ステップS202の後にステップS203を実行したが、これに限定されず、ステップS203の後にステップS202を実行してもよい。すなわち、制御部36は、記憶部34から第1の監視部22のハッシュ期待値「XYZ」を読み出した後に、読込部32により読み込まれた第1の監視部22に関するデータに基づいて第1の監視部22のハッシュ値を算出してもよい。
【0064】
次いで、制御部36は、算出した第1の監視部22のハッシュ値と、記憶部34から読み出した第1の監視部22のハッシュ期待値「XYZ」とを比較することにより、第1の監視部22のハッシュ値の検証を実行する(S204)。すなわち、制御部36は、第1の監視部22のハッシュ値がハッシュ期待値「XYZ」と一致しているか否かについての検証を実行することにより、第1の監視部22の常時完全性検証を実行する。
【0065】
なお、例えば被監視部16が不正なプログラムにより改ざんされた場合には、第1の監視部22の記憶部28に記憶された被監視部16のハッシュ期待値「aaa」も不正なプログラムにより改ざんされるおそれがある。この場合、第2の監視部24の制御部36により算出される第1の監視部22のハッシュ値は、ハッシュ期待値「XYZ」と一致しなくなる。その結果、第2の監視部24の制御部36は、間接的に被監視部16の異常を検出することができる。すなわち、第2の監視部24が第1の監視部22を監視することにより、間接的に複数の被監視部16,18,20の各々の完全性を保証することができる。
【0066】
ステップS204の後、情報処理装置2の運転を継続する場合には(S205でYES)、上述したステップS201に戻る。一方、情報処理装置2の運転を停止する場合には(S205でNO)、図4のフローチャートを終了する。
【0067】
なお、図4のフローチャートの処理、すなわち、第2の監視部24による第1の監視部22の常時完全性検証は、所定の周期(例えば、1回/秒)で繰り返し実行されるようにしてもよい。この場合、制御部36は、種々の条件に応じて所定の周期を動的に変更してもよい。あるいは、第2の監視部24による第1の監視部22の常時完全性検証は、外部からのトリガ信号の受信毎に実行されるようにしてもよい。
【0068】
[1-4.効果]
ここで、図5を参照しながら、比較例に係る情報処理装置100の機能構成について説明する。図5は、比較例に係る情報処理装置100の機能構成を示すブロック図である。なお、本変形例では、実施の形態1に係る情報処理装置2と同一の構成要素には同一の符号を付して、その説明を省略する。
【0069】
図5に示すように、比較例に係る情報処理装置100は、通常領域12と、通常領域12よりもセキュリティレベルの高い堅牢領域14とを有している。通常領域12は複数の被監視部16,18,20を有し、堅牢領域14は第1の監視部22を有している。第1の監視部22は、複数の被監視部16,18,20の各々を監視するためのものであり、堅牢領域14で動作する。
【0070】
一般に、堅牢領域14に割り当てられる処理リソースは、通常領域12に割り当てられる処理リソースよりも少ない。比較例に係る情報処理装置100では、通常領域12における被監視部の数が増大するのに従って、堅牢領域14において第1の監視部22が各被監視部の常時完全性検証を実行する回数が増大する。その結果、堅牢領域14において多数の被監視部(複数の被監視部16,18,20を含む)の各々の常時完全性検証を実行するのに要する処理負荷(例えば、処理時間、メモリ容量、及び、堅牢領域14から通常領域12へのアクセスのオーバーヘッド等)が増大してしまい、堅牢領域14の処理リソースが不足するという課題が生じる。
【0071】
これに対して、実施の形態1に係る情報処理装置2では、上述したように、第1の監視部22は、複数の被監視部16,18,20の各々を監視し、第1の監視部22よりもセキュアである第2の監視部24は、第1の監視部22を監視する。これにより、被監視部の数が増大した場合であっても、第1の監視部22が多数の被監視部(複数の被監視部16,18,20を含む)の各々の常時完全性検証を実行する回数は増大するが、第2の監視部24が第1の監視部22の常時完全性検証を実行する回数は増大しない。その結果、第2の監視部24に割り当てられる処理リソースが第1の監視部22に割り当てられる処理リソースよりも少ない場合であっても、第2の監視部24における処理負荷を低減することができ、第2の監視部24の処理リソースが不足するのを回避することができる。
【0072】
(実施の形態2)
[2-1.情報処理装置の機能構成]
図6を参照しながら、実施の形態2に係る情報処理装置2Aの機能構成について説明する。図6は、実施の形態2に係る情報処理装置2Aの機能構成を示すブロック図である。なお、本実施の形態では、上記実施の形態1に係る情報処理装置2と同一の構成要素には同一の符号を付して、その説明を省略する。
【0073】
図6に示すように、実施の形態2に係る情報処理装置2Aは、複数の被監視部16,18,20(それぞれ第2の被監視部の一例)と、複数のサブ監視部38,40(それぞれ第1の被監視部の一例)と、第1の監視部22Aと、第2の監視部24とを備えている。
【0074】
サブ監視部38は、被監視部16を監視するためのものである。具体的には、サブ監視部38は、被監視部16の起動後に、被監視部16の完全性検証を繰り返し行う常時完全性検証を実行する。サブ監視部38は、機能構成として、読込部42と、記憶部44(第3の記憶部の一例)と、制御部46(第3の制御部の一例)とを有している。サブ監視部38は、CPU又はプロセッサ等のプログラム実行部が、メモリに記録されたプログラムを読み出して実行することにより実現される。
【0075】
読込部42は、被監視部16のメモリから、被監視部16に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。読込部42は、読み込んだデータを制御部46に出力する。
【0076】
記憶部44は、サブ監視部38に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を記憶するメモリである。具体的には、記憶部44は、被監視部16のハッシュ値の期待値であるハッシュ期待値「aaa」(第3のハッシュ期待値の一例)を記憶する。
【0077】
制御部46は、読込部42により読み込まれた被監視部16に関するデータに基づいて、被監視部16のハッシュ値を算出する。そして、制御部46は、算出した被監視部16のハッシュ値と、記憶部44に記憶された被監視部16のハッシュ期待値「aaa」とを比較することにより、被監視部16の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部46は、算出した被監視部16のハッシュ値(例えば、「aaa」)と被監視部16のハッシュ期待値「aaa」とが一致している場合には、被監視部16が正常であると判定する。一方、制御部46は、算出した被監視部16のハッシュ値(例えば、「ddd」)と被監視部16のハッシュ期待値「aaa」とが一致していない場合には、被監視部16が異常であると判定する。
【0078】
サブ監視部40は、被監視部18,20を監視するためのものである。具体的には、サブ監視部40は、被監視部18,20の起動後に、被監視部18,20の完全性検証を繰り返し行う常時完全性検証を実行する。サブ監視部40は、機能構成として、読込部48と、記憶部50(第3の記憶部の一例)と、制御部52(第3の制御部の一例)とを有している。サブ監視部40は、CPU又はプロセッサ等のプログラム実行部が、メモリに記録されたプログラムを読み出して実行することにより実現される。
【0079】
読込部48は、被監視部18のメモリから、被監視部18に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。また、読込部48は、被監視部20のメモリから、被監視部20に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。読込部48は、読み込んだ各データを制御部52に出力する。
【0080】
記憶部50は、サブ監視部40に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を記憶するメモリである。具体的には、記憶部50は、被監視部18のハッシュ値の期待値であるハッシュ期待値「bbb」(第3のハッシュ期待値の一例)を記憶する。また、記憶部50は、被監視部20のハッシュ値の期待値であるハッシュ期待値「ccc」(第3のハッシュ期待値の一例)を記憶する。
【0081】
制御部52は、読込部48により読み込まれた被監視部18に関するデータに基づいて、被監視部18のハッシュ値を算出する。そして、制御部52は、算出した被監視部18のハッシュ値と、記憶部50に記憶された被監視部18のハッシュ期待値「bbb」とを比較することにより、被監視部18の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部52は、算出した被監視部18のハッシュ値(例えば、「bbb」)と被監視部18のハッシュ期待値「bbb」とが一致している場合には、被監視部18が正常であると判定する。一方、制御部52は、算出した被監視部18のハッシュ値(例えば、「eee」)と被監視部18のハッシュ期待値「bbb」とが一致していない場合には、被監視部18が異常であると判定する。
【0082】
また、制御部52は、読込部48により読み込まれた被監視部20に関するデータに基づいて、被監視部20のハッシュ値を算出する。そして、制御部52は、算出した被監視部20のハッシュ値と、記憶部50に記憶された被監視部20のハッシュ期待値「ccc」とを比較することにより、被監視部20の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部52は、算出した被監視部20のハッシュ値(例えば、「ccc」)と被監視部20のハッシュ期待値「ccc」とが一致している場合には、被監視部20が正常であると判定する。一方、制御部52は、算出した被監視部20のハッシュ値(例えば、「fff」)と被監視部20のハッシュ期待値「ccc」とが一致していない場合には、被監視部20が異常であると判定する。
【0083】
第1の監視部22Aは、複数のサブ監視部38,40の各々を監視するためのものである。具体的には、第1の監視部22Aは、複数のサブ監視部38,40の各々の起動後に、複数のサブ監視部38,40の各々の完全性検証を繰り返し行う常時完全性検証を実行する。第1の監視部22Aは、機能構成として、読込部26Aと、記憶部28A(第1の記憶部の一例)と、制御部30A(第1の制御部の一例)とを有している。
【0084】
読込部26Aは、サブ監視部38の記憶部44から、サブ監視部38に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。また、読込部26Aは、サブ監視部40の記憶部50から、サブ監視部40に関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を読み込む。読込部26Aは、読み込んだ各データを制御部30Aに出力する。
【0085】
記憶部28Aは、第1の監視部22Aに関するデータ(例えば、ソースコードや実行ファイル、データファイル等)を記憶するメモリである。具体的には、記憶部28Aは、サブ監視部38のハッシュ値の期待値であるハッシュ期待値「AAA」(第1のハッシュ期待値の一例)、及び、サブ監視部40のハッシュ値の期待値であるハッシュ期待値「BBB」(第1のハッシュ期待値の一例)を記憶する。
【0086】
制御部30Aは、読込部26Aにより読み込まれたサブ監視部38に関するデータに基づいて、サブ監視部38のハッシュ値を算出する。そして、制御部30Aは、算出したサブ監視部38のハッシュ値と、記憶部28Aに記憶されたサブ監視部38のハッシュ期待値「AAA」とを比較することにより、サブ監視部38の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部30Aは、算出したサブ監視部38のハッシュ値(例えば、「AAA」)とサブ監視部38のハッシュ期待値「AAA」とが一致している場合には、サブ監視部38が正常であると判定する。一方、制御部30Aは、算出したサブ監視部38のハッシュ値(例えば、「CCC」)とサブ監視部38のハッシュ期待値「AAA」とが一致していない場合には、サブ監視部38が異常であると判定する。
【0087】
また、制御部30Aは、読込部26Aにより読み込まれたサブ監視部40に関するデータに基づいて、サブ監視部40のハッシュ値を算出する。そして、制御部30Aは、算出したサブ監視部40のハッシュ値と、記憶部28Aに記憶されたサブ監視部40のハッシュ期待値「BBB」とを比較することにより、サブ監視部40の完全性検証を繰り返し行う常時完全性検証を実行する。具体的には、制御部30Aは、算出したサブ監視部40のハッシュ値(例えば、「BBB」)とサブ監視部40のハッシュ期待値「BBB」とが一致している場合には、サブ監視部40が正常であると判定する。一方、制御部30Aは、算出したサブ監視部40のハッシュ値(例えば、「DDD」)とサブ監視部40のハッシュ期待値「BBB」とが一致していない場合には、サブ監視部40が異常であると判定する。
【0088】
[2-2.情報処理装置の動作]
図7を参照しながら、実施の形態2に係るサブ監視部38の動作について説明する。図7は、実施の形態2に係るサブ監視部38の動作の流れを示すフローチャートである。
【0089】
まず、情報処理装置2Aの運転が開始されると、情報処理装置2Aの各種プログラムが起動する。図7に示すように、サブ監視部38の読込部42は、被監視部16の起動後において、被監視部16のメモリから、被監視部16に関するデータを読み込む(S301)。次いで、サブ監視部38の制御部46は、読込部42により読み込まれた被監視部16に関するデータに基づいて、被監視部16のハッシュ値を算出する(S302)。
【0090】
次いで、制御部46は、記憶部44から被監視部16のハッシュ期待値「aaa」を読み出す(S303)。次いで、制御部46は、算出した被監視部16のハッシュ値と、記憶部44から読み出した被監視部16のハッシュ期待値「aaa」とを比較することにより、被監視部16のハッシュ値の検証を実行する(S304)。すなわち、制御部46は、被監視部16のハッシュ値がハッシュ期待値「aaa」と一致しているか否かについての検証を実行することにより、被監視部16の常時完全性検証を実行する。
【0091】
ステップS304の後、情報処理装置2Aの運転を継続する場合には(S305でYES)、上述したステップS301に戻る。一方、情報処理装置2Aの運転を停止する場合には(S305でNO)、図7のフローチャートを終了する。
【0092】
次に、図8を参照しながら、実施の形態2に係るサブ監視部40の動作について説明する。図8は、実施の形態2に係るサブ監視部40の動作の流れを示すフローチャートである。
【0093】
まず、情報処理装置2Aの運転が開始されると、情報処理装置2Aの各種プログラムが起動する。図8に示すように、サブ監視部40の読込部48は、被監視部18の起動後において、被監視部18のメモリから、被監視部18に関するデータを読み込む(S401)。次いで、サブ監視部40の制御部52は、読込部48により読み込まれた被監視部18に関するデータに基づいて、被監視部18のハッシュ値を算出する(S402)。
【0094】
次いで、制御部52は、記憶部50から被監視部18のハッシュ期待値「bbb」を読み出す(S403)。次いで、制御部52は、算出した被監視部18のハッシュ値と、記憶部50から読み出した被監視部18のハッシュ期待値「bbb」とを比較することにより、被監視部18のハッシュ値の検証を実行する(S404)。すなわち、制御部52は、被監視部18のハッシュ値がハッシュ期待値「bbb」と一致しているか否かについての検証を実行することにより、被監視部18の常時完全性検証を実行する。
【0095】
ステップS404の後、読込部48は、被監視部20の起動後において、被監視部20のメモリから、被監視部20に関するデータを読み込む(S405)。次いで、制御部52は、読込部48により読み込まれた被監視部20に関するデータに基づいて、被監視部20のハッシュ値を算出する(S406)。
【0096】
次いで、制御部52は、記憶部50から被監視部20のハッシュ期待値「ccc」を読み出す(S407)。次いで、制御部52は、算出した被監視部20のハッシュ値と、記憶部50から読み出した被監視部20のハッシュ期待値「ccc」とを比較することにより、被監視部20のハッシュ値の検証を実行する(S408)。すなわち、制御部52は、被監視部20のハッシュ値がハッシュ期待値「ccc」と一致しているか否かについての検証を実行することにより、被監視部20の常時完全性検証を実行する。
【0097】
ステップS408の後、情報処理装置2Aの運転を継続する場合には(S409でYES)、上述したステップS401に戻る。一方、情報処理装置2Aの運転を停止する場合には(S409でNO)、図8のフローチャートを終了する。
【0098】
次に、図9を参照しながら、実施の形態2に係る第1の監視部22Aの動作について説明する。図9は、実施の形態2に係る第1の監視部22Aの動作の流れを示すフローチャートである。
【0099】
まず、情報処理装置2Aの運転が開始されると、情報処理装置2Aの各種プログラムが起動する。図9に示すように、第1の監視部22Aの読込部26Aは、サブ監視部38の起動後において、サブ監視部38の記憶部44から、サブ監視部38に関するデータを読み込む(S501)。次いで、第1の監視部22Aの制御部30Aは、読込部26Aにより読み込まれたサブ監視部38に関するデータに基づいて、サブ監視部38のハッシュ値を算出する(S502)。
【0100】
次いで、制御部30Aは、記憶部28Aからサブ監視部38のハッシュ期待値「AAA」を読み出す(S503)。次いで、制御部30Aは、算出したサブ監視部38のハッシュ値と、記憶部28Aから読み出したサブ監視部38のハッシュ期待値「AAA」とを比較することにより、サブ監視部38のハッシュ値の検証を実行する(S504)。すなわち、制御部30Aは、サブ監視部38のハッシュ値がハッシュ期待値「AAA」と一致しているか否かについての検証を実行することにより、サブ監視部38の常時完全性検証を実行する。
【0101】
ステップS504の後、読込部26Aは、サブ監視部40の起動後において、サブ監視部40の記憶部50から、サブ監視部40に関するデータを読み込む(S505)。次いで、制御部30Aは、読込部26Aにより読み込まれたサブ監視部40に関するデータに基づいて、サブ監視部40のハッシュ値を算出する(S506)。
【0102】
次いで、制御部30Aは、記憶部28Aからサブ監視部40のハッシュ期待値「BBB」を読み出す(S507)。次いで、制御部30Aは、算出したサブ監視部40のハッシュ値と、記憶部28Aから読み出したサブ監視部40のハッシュ期待値「BBB」とを比較することにより、サブ監視部40のハッシュ値の検証を実行する(S508)。すなわち、制御部30Aは、サブ監視部40のハッシュ値がハッシュ期待値「BBB」と一致しているか否かについての検証を実行することにより、サブ監視部40の常時完全性検証を実行する。
【0103】
ステップS508の後、情報処理装置2Aの運転を継続する場合には(S509でYES)、上述したステップS501に戻る。一方、情報処理装置2Aの運転を停止する場合には(S509でNO)、図9のフローチャートを終了する。
【0104】
なお、第2の監視部24の動作については、上記実施の形態1と同様であるので、その説明を省略する。
【0105】
[2-3.効果]
本実施の形態では、複数のサブ監視部38,40と第1の監視部22Aとで常時完全性検証の処理を分散することにより、常時完全性検証を効率良く実行することができる。
【0106】
また、種々の条件に応じて、複数のサブ監視部38,40の各々が常時完全性検証を実行する頻度を適宜設定することができる。具体的には、被監視部16が、例えば外部からの攻撃を受けやすいアプリケーション10(図1参照)で動作する場合には、サブ監視部38は、被監視部16の常時完全性検証を比較的高い頻度(例えば、1秒毎に1回)で実行すればよい。一方、被監視部18,20の各々が、例えば外部からの攻撃を受け難いオペレーティングシステム8(図1参照)で動作する場合には、サブ監視部40は、被監視部18,20の各々の常時完全性検証を比較的低い頻度(例えば、10秒毎に1回)で実行すればよい。
【0107】
(他の変形例)
以上、一つ又は複数の態様に係る情報処理装置及び情報処理装置の制御方法について、上記各実施の形態に基づいて説明したが、本開示は、上記各実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思い付く各種変形を上記各実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つ又は複数の態様の範囲内に含まれてもよい。
【0108】
上記実施の形態1では、第1の監視部22の制御部30は、複数の被監視部16,18,20の全てを検証対象としたが、これに限定されない。例えば、第1の監視部22の制御部30は、複数の被監視部16,18,20のうち、優先度が高いと判断される被監視部を検証対象として決定してもよい。これにより、常時完全性検証の高速化を図ることができる。
【0109】
同様に、上記実施の形態2において、第1の監視部22Aの制御部30Aは、複数のサブ監視部38,40の両方を検証対象としたが、これに限定されない。例えば、第1の監視部22Aの制御部30Aは、複数のサブ監視部38,40のうち、優先度が高いと判断されるサブ監視部を検証対象として決定してもよい。
【0110】
また、上記実施の形態1では、第1の監視部22の制御部30は、例えば被監視部16に関するデータに基づいて被監視部16のハッシュ値を算出したが、これに限定されず、被監視部16に関するデータの一部のみに基づいて被監視部16のハッシュ値を算出してもよい。このことは、他の制御部30A,36,46,52の各々がハッシュ値を算出する場合についても同様である。
【0111】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したコンピュータプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたコンピュータプログラムを読み出して実行することによって実現されてもよい。
【0112】
また、上記各実施の形態に係る情報処理装置2(2A)の機能の一部又は全てを、CPU等のプロセッサがコンピュータプログラムを実行することにより実現してもよい。
【0113】
上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【0114】
本開示は、上記に示す方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムを含むデジタル信号であるとしても良い。また、本開示は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えばフレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしても良い。また、前記コンピュータプログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記コンピュータプログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【産業上の利用可能性】
【0115】
本開示は、例えば車載ネットワークにおいて各種プログラムの常時完全性検証を実行するための情報処理装置等に適用可能である。
【符号の説明】
【0116】
2,2A,100 情報処理装置
4 ハードウェア
6 セキュリティソフトウェア
8 オペレーティングシステム
10 アプリケーション
12 通常領域
14 堅牢領域
16,18,20 被監視部
22,22A 第1の監視部
24 第2の監視部
26,26A,32,42,48 読込部
28,28A,34,44,50 記憶部
30,30A,36,46,52 制御部
38,40 サブ監視部
【要約】
情報処理装置(2)は、被監視部(16)と、被監視部(16)を監視する第1の監視部(22)であって、被監視部(16)のハッシュ値と第1のハッシュ期待値とを比較することにより、被監視部(16)の検証を繰り返し実行する第1の監視部(22)と、第1の監視部(22)よりもセキュアであり且つ第1の監視部(22)を監視する第2の監視部(24)であって、第1のハッシュ期待値を含む第1の監視部(22)のハッシュ値と第2のハッシュ期待値とを比較することにより、第1の監視部(22)の検証を繰り返し実行する第2の監視部(24)とを備える。
図1
図2
図3
図4
図5
図6
図7
図8
図9