(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-18
(45)【発行日】2024-03-27
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240319BHJP
G06F 21/57 20130101ALI20240319BHJP
G06F 21/64 20130101ALI20240319BHJP
【FI】
H04L9/32 200B
H04L9/32 200E
G06F21/57 350
G06F21/64
(21)【出願番号】P 2020082213
(22)【出願日】2020-05-07
【審査請求日】2023-02-27
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】櫻田 大樹
【審査官】金沢 史明
(56)【参考文献】
【文献】米国特許出願公開第2008/0045342(US,A1)
【文献】米国特許出願公開第2009/0220078(US,A1)
【文献】特開2013-149135(JP,A)
【文献】特開2004-094571(JP,A)
【文献】特開2015-005009(JP,A)
【文献】特開2009-230637(JP,A)
【文献】特開2010-044571(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/40
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
情報処理装置であって、
完全性・真正性を検証する検証対象領域のパーティションと、完全性・真正性を検証しない検証対象外領域のパーティションと、を記憶領域に作成する作成手段と、
圧縮したファイル、及び前記圧縮したファイルから作成した認証データを前記検証対象領域のパーティションに格納する格納処理手段と、
前記検証対象領域のパーティションに格納されている前記圧縮したファイル及び前記認証データにより、
前記情報処理装置の起動時に、前記圧縮したファイルの署名検証を行う署名検証手段と、
署名検証に成功した前記圧縮したファイルを伸張し、伸張した前記ファイルを前記検証対象外領域のパーティションに展開する伸張展開手段と、
を有する情報処理装置。
【請求項2】
前記作成手段は
、前記検証対象領域の
ファイルシステムとして設定された前記ファイルシステムでフォーマットすることにより前記検証対象領域のパーティションを作成すること
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記作成手段は、前記パーティションごとに割り振られた識別情報によって前記検証対象領域
としたいパーティション
の前記識別情報を設定
することで、前記識別情報によって
識別される前記パーティションを前記検証対象領域
として作成すること
を特徴とする請求項1記載の情報処理装置。
【請求項4】
複数のファイル全体を圧縮して一つの前記圧縮したファイルを生成する圧縮手段、
を更に有する請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項5】
前記伸張展開手段は、署名検証に失敗した場合、前記圧縮したファイルの前記伸張及び前記展開を中止すること
を特徴とする請求項1乃至
4の何れか一項に記載の情報処理装置。
【請求項6】
情報処理装置に、
完全性・真正性を検証する検証対象領域のパーティションと、完全性・真正性を検証しない検証対象外領域のパーティションと、を記憶領域に作成する作成ステップと、
圧縮したファイル、及び前記圧縮したファイルから作成した認証データを前記検証対象領域のパーティションに格納する格納処理ステップと、
前記検証対象領域のパーティションに格納されている前記圧縮したファイル及び前記認証データにより、
前記情報処理装置の起動時に、前記圧縮したファイルの署名検証を行う署名検証ステップと、
署名検証に成功した前記圧縮したファイルを伸張し、伸張した前記ファイルを前記検証対象外領域のパーティションに展開する伸張展開ステップと、
を実行させる情報処理方法。
【請求項7】
情報処理装置を、
完全性・真正性を検証する検証対象領域のパーティションと、完全性・真正性を検証しない検証対象外領域のパーティションと、を記憶領域に作成する作成手段、
圧縮したファイル、及び前記圧縮したファイルから作成した認証データを前記検証対象領域のパーティションに格納する格納処理手段、
前記検証対象領域のパーティションに格納されている前記圧縮したファイル及び前記認証データにより、
前記情報処理装置の起動時に、前記圧縮したファイルの署名検証を行う署名検証手段、
署名検証に成功した前記圧縮したファイルを伸張し、伸張した前記ファイルを前記検証対象外領域のパーティションに展開する伸張展開手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、情報処理装置において、システムを構成するファイル(ファームウェア、ソフトウェア)に対して不正な改竄を検知し、システム起動中に正当なファイルのみ実行できるようにして完全性・真正性を保証する技術(例えばTrusted BootやLinux(登録商標)‐IMAなど)が知られている。
【0003】
システム起動中に正当なファイルのみ実行できるようにして完全性・真正性を保証する技術(例えばTrusted BootやLinux‐IMAなど)は、予め対象となるファイルに対してハッシュ値(計測値)の期待値や電子署名といった認証データを保管しておき、システム起動中に期待値や電子署名と比較検証することで、完全性・真正性の確認をファイル単位で行っていた。
【0004】
特許文献1には、システム起動時に使用されるファイルの完全性を確認する目的で、ファイルの識別子をもとにしたデータと正解データとをファイルごとに照合し、データが一致しない場合にはシステムの起動を中断させる構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、システム起動時に正当なファイルのみ実行できるようにして完全性・真正性を保証する技術(例えばTrusted BootやLinux‐IMAなど)では、システム起動時に、利用するファイル全てに対してファイル単位で完全性・真正性を検証する必要がある。
【0006】
ファイルの完全性・真正性を保証する従来の技術では、ファイル単位で完全性・真正性を検証するため、処理時間が余計に掛かるという問題があった。なお、特許文献1に開示されている構成であっても、ファイル単位で完全性・真正性を検証するため、処理時間が余計に掛かるという問題を解消できない。
【0007】
本発明の実施の形態は、ファイルの完全性・真正性を検証するための処理時間を短縮できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記した課題を達成するために本願請求項1は、情報処理装置であって、完全性・真正性を検証する検証対象領域のパーティションと、完全性・真正性を検証しない検証対象外領域のパーティションと、を記憶領域に作成する作成手段と、圧縮したファイル、及び前記圧縮したファイルから作成した認証データを前記検証対象領域のパーティションに格納する格納処理手段と、前記検証対象領域のパーティションに格納されている前記圧縮したファイル及び前記認証データにより、前記情報処理装置の起動時に、前記圧縮したファイルの署名検証を行う署名検証手段と、署名検証に成功した前記圧縮したファイルを伸張し、伸張した前記ファイルを前記検証対象外領域のパーティションに展開する伸張展開手段と、を有することを特徴とする。
【発明の効果】
【0009】
本発明の実施の形態によれば、ファイルの完全性・真正性を検証するための処理時間を短縮できる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る情報処理装置のハードウェア構成図である。
【
図2】実施形態に係る情報処理装置のソフトウェア構成図である。
【
図3】システム起動時にファイルの完全性・真正性を検証する一般的な処理イメージを説明する図である。
【
図4】システム起動時にファイルの完全性・真正性を検証する本実施形態の処理イメージを説明する図である。
【
図5】ファイルシステムにより検証対象領域を設定するIMAポリシーファイルの一例の構成図である。
【
図6】本実施形態のシステム更新アプリのアクティビティ図である。
【
図7】本実施形態のシステム更新用ファイル圧縮アプリのアクティビティ図である。
【
図8】本実施形態のパーティション作成アプリのアクティビティ図である。
【
図9】本実施形態のシステム起動時にファイルの完全性・真正性を確認する処理のアクティビティ図である。
【
図10】UUIDにより検証対象領域を設定するIMAポリシーファイルの一例の構成図である。
【
図11】システム起動時にファイルの完全性・真正性を検証する本実施形態の処理イメージを説明する図である。
【
図12】PC(サーバ)のハードウェア構成図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0012】
[第1の実施形態]
<ハードウェア構成>
図1は、実施形態に係る情報処理装置1のハードウェア構成図である。
図1に示すように、情報処理装置1は、コントローラ2と、外部メモリ3と、システム起動用ストレージ4とを備える。情報処理装置1は、ネットワークサーバ5と例えばインターネットなどのネットワーク回線を介して通信可能に接続されている。
【0013】
コントローラ2は、情報処理装置1の動作全体を制御する。コントローラ2は、システムを構成するファイル(ファームウェア、ソフトウェアなど)に対して不正な改竄を検知することで、ファイルの完全性・真正性を保証する。
【0014】
コントローラ2は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23を有する。CPU21は情報処理装置1全体の動作を制御する。ROM22にはCPU21やIPL(Initial Program Loader)等のCPU21の駆動に用いられるプログラムを記憶する。RAM23は、CPU21のワークエリアとして使用される。
【0015】
システム起動用ストレージ4には、システムを構成するファイル(ファームウェア、ソフトウェア)が保存されている。ストレージの例としてはeMMC(embedded Multi Media Card)等が挙げられる。
【0016】
外部メモリ3には、ネットワークサーバ5に保存された新しいシステム更新(ROM更新)ファイル(システム更新用ファイル)が保存されている。外部メモリ3の例としてはSDカード等が挙げられる。外部メモリ3に保存されたシステム更新用ファイルはシステム起動用ストレージ4に書き込まれる。また、ネットワークサーバ5には、新しくシステム更新(ROM更新)を行うためのシステム更新用ファイルが保存されている。
【0017】
<ソフトウェア構成>
図2は、実施形態に係る情報処理装置1のソフトウェア構成図である。
図2に示すように、情報処理装置1は、OS11、システム更新アプリ12、システム更新用ファイル圧縮アプリ13、及びパーティション作成アプリ14を備える。また、情報処理装置1には認証データ15、システム更新用ファイル16、署名検証用公開鍵17、及び署名検証用秘密鍵18の各データが格納されている。
【0018】
OS11は、情報処理装置1の全体を制御する。また、OS11はファームウェア改竄検知機能11A、署名作成・署名検証機能11B、及びファイル伸張展開機能11Cを有している。ファームウェア改竄検知機能11Aは、例えばTrusted Bootにより実現される。ファームウェア改竄検知機能11Aはシステム起動時に利用するファームウェア(例えば、BIOSやブートローダ)に対する改竄検知を行う。
【0019】
署名作成・署名検証機能11Bは、例えばLinux-IMAにより実現される。署名作成・署名検証機能11Bは、ファームウェアの起動後に実行される、後述の圧縮されたファイルの署名作成と署名検証(ファイルの完全性・真正性の検証)を行う。ファイル伸張展開機能11Cは完全性・真正性の検証に成功した、圧縮されたファイルを伸張及び展開する処理を行う。
【0020】
システム更新用ファイル圧縮アプリ13は、外部メモリ3に保存されているシステム更新用ファイルを圧縮して1つのファイルにする。システム更新アプリ12は、システム更新用ファイル圧縮アプリ13により圧縮されたシステム更新用ファイルをシステム起動用ストレージ4の後述の検証対象領域のパーティションに保存する。
【0021】
パーティション作成アプリ14はシステム起動用ストレージ4の記憶領域に、ファイルの完全性・真正性を検証する検証対象領域のパーティションと、完全性・真正性を検証しない検証対象外領域のパーティションと、を作成する。
【0022】
認証データ15は、署名作成・署名検証機能11Bが圧縮されたシステム更新用ファイル16を署名検証するためのデータである。システム更新用ファイル16は、システムを構成するためのファイル(ファームウェア、ソフトウェア)を格納する。署名検証用公開鍵17は、圧縮されたシステム更新用ファイル16の署名検証に利用する公開鍵データである。署名検証用秘密鍵18は、圧縮されたシステム更新用ファイル16の署名検証に利用する秘密鍵データである。
【0023】
ネットワークサーバ5は、OS51を備える。また、ネットワークサーバ5には、システム更新用ファイル16のデータが格納されている。OS51は、ネットワークサーバ5の全体の制御を行う。システム更新用ファイル16は、システムを構成するためのファイル(ファームウェア、ソフトウェア)を格納する。
【0024】
なお、
図2のOS11、システム更新アプリ12、システム更新用ファイル圧縮アプリ13、及びパーティション作成アプリ14の処理は、
図1に示されているCPU21がRAM23をワークエリアとして使用して、プログラムに従った処理を実行することで実現する。
【0025】
<実施形態の処理または動作>
以降、各実施形態の処理または動作について説明する。
【0026】
図3は、システム起動時にファイルの完全性・真正性を検証する一般的な処理イメージを説明する図である。システム更新時には、情報処理装置1のシステム起動用ストレージ4にシステムを構成するファームウェア・ソフトウェア(例えば
図3の「アプリ1」「アプリ2」「アプリ3」など)のファイルを保存する(ステップS1)。
【0027】
システム起動用ストレージ4に保存したファイルごとに認証データを作成し、それぞれのファイルのメタデータ領域に認証データ(電子署名)を保存する。認証データは、例えばファイルにハッシュ演算を行い、生成された値を署名検証用秘密鍵18で暗号化することで作成できる(ステップS2)。
【0028】
システム起動時、情報処理装置1の署名作成・署名検証機能11BはステップS1でシステム起動用ストレージ4に保存されたファイルを実行する際に、ファイル単位で署名検証を行う。ここでは、ステップS2で保存した認証データを署名検証用公開鍵17により復号した値と、実行するファイルにハッシュ演算を行い、生成された値と、の比較により署名検証を行う(ステップS3)。
【0029】
署名検証に成功した場合、実行するファイルはRAM23に展開され、実行される(ステップS4)。署名検証に失敗した場合、実行しようとしていたファイルは不正ファイルとして検知され、ファイルの実行(システム)が停止される(ステップS5)。
【0030】
なお、
図3に示したファイルの完全性・真正性を検証する処理イメージはカーネルが起動した後のファイルの完全性・真正性を検証する仕組みである。Linux-IMAが有効になる前に起動するファームウェア(BIOSやブートローダなど)の完全性・真正性の検証は、例えばTrusted Bootによるファームウェア改竄検知機能11Aの仕組みを利用する。
【0031】
図3の処理イメージでは、システム起動時、利用するファイル全てに対してファイル単位で完全性・真正性を検証していたため、完全性・真正性を検証するファイルが多くなるほど、完全性・真正性を検証するための処理時間が長くなっていた。
【0032】
そこで、本実施形態では
図4に示すような処理イメージでシステム起動時にファイルの完全性・真正性を検証することで、完全性・真正性を検証するための処理時間(署名作成及び署名検証の処理時間)を短縮している。
図4は、システム起動時にファイルの完全性・真正性を検証する本実施形態の処理イメージを説明する図である。
【0033】
システム(ROM)更新時には、ネットワークサーバ5から取得し、外部メモリ3に保存されたシステム更新用ファイル16を、システム起動用ストレージ4に保存する処理が行われる。例えば情報処理装置1のシステム更新用ファイル圧縮アプリ13は、システムを構成するファームウェア・ソフトウェア(例えば
図4の「アプリ1」「アプリ2」「アプリ3」など)のファイル全体100を圧縮することで、一つのシステム更新用ファイル16を生成する(ステップS11)。なお、ファイル全体100を圧縮することで、一つのシステム更新用ファイル16を生成する処理は、ネットワークサーバ5で行うようにしてもよい。以下ではファイル全体100を圧縮することで生成したシステム更新用ファイル16を圧縮したシステム更新用ファイル16と呼ぶ。
【0034】
情報処理装置1のパーティション作成アプリ14は、システム起動用ストレージ4の記憶領域に、例えば「ファイルシステム1」でフォーマットされたパーティションを作成する(ステップS12)。また、情報処理装置1のパーティション作成アプリ14は、システム起動用ストレージ4の記憶領域に、例えば「ファイルシステム2」でフォーマットされたパーティションを作成する(ステップS13)。
【0035】
Linux-IMAでは、例えば
図5のようなIMAポリシーファイルに検証対象領域のファイルシステムを設定する。
図5のようなIMAポリシーファイルに検証対象領域として設定されたファイルシステムでフォーマットされたパーティションは、検証対象領域のパーティションとなる。また、
図5のようなIMAポリシーファイルに検証対象領域として設定されていないファイルシステムでフォーマットされたパーティションは、検証対象外領域のパーティションとなる。
図5はファイルシステムにより検証対象領域を設定するIMAポリシーファイルの一例の構成図である。
【0036】
そこで、パーティション作成アプリ14は
図5のようなIMAポリシーファイルに検証対象領域のファイルシステムとして「ファイルシステム1」を設定する。これにより、情報処理装置1のシステム起動用ストレージ4には検証対象領域のパーティションと検証対象外領域のパーティションとが作成される(ステップS14)。
【0037】
次に、情報処理装置1のシステム更新アプリ12は、システム起動用ストレージ4に作成された検証対象領域のパーティションに、圧縮したシステム更新用ファイル16を保存する(ステップS15)。情報処理装置1の署名作成・署名検証機能11Bは、圧縮したシステム更新用ファイル16から認証データを作成し、圧縮したシステム更新用ファイル16のメタデータ領域に認証データ(電子署名)を保存する。認証データは、圧縮したシステム更新用ファイル16にハッシュ演算を行い、生成された値を署名検証用秘密鍵18で暗号化することで作成される(ステップS16)。
【0038】
システム起動時、情報処理装置1の署名作成・署名検証機能11BはステップS15で検証対象領域のパーティションに保存した、圧縮したシステム更新用ファイル16と、その圧縮したシステム更新用ファイル16のメタデータ領域に保存した認証データとで署名検証を行う(ステップS17)。具体的に、署名作成・署名検証機能11BはステップS16で保存した認証データを署名検証用公開鍵17により復号した値と、圧縮したシステム更新用ファイル16にハッシュ演算を行い、生成された値と、の比較により署名検証を行う。
【0039】
署名検証に成功した場合、情報処理装置1のファイル伸張展開機能11Cは圧縮したシステム更新用ファイル16を伸張することで、システムを構成するファイル全体100を取得する。そして、ファイル伸張展開機能11Cはシステムを構成するファイル全体100を検証対象外領域のパーディションに展開する(ステップS18)。そして、検証対象外領域のパーディションに展開されたシステムを構成するファイル全体100は、実行が可能となる(ステップS19)。
【0040】
なお、署名検証に失敗した場合、情報処理装置1のファイル伸張展開機能11Cは圧縮したシステム更新用ファイル16を不正ファイルとして検知し、システムを停止する(ステップS20)。
【0041】
このように本実施形態ではシステム起動用ストレージ4に複数のパーティションを作成して、それぞれのパーティションのファイルシステムの種類によって、完全性・真正性を検証する検証対象領域のパーティションと完全性・真正性を検証しない検証対象外領域のパーティションとして利用する。
【0042】
また、完全性・真正性を検証する検証対象領域のパーティションには、システムを構成するファームウェア・ソフトウェア(検証するファイル全体)を1つにまとめて圧縮したシステム更新用ファイル16を保存する。これにより、本実施形態では完全性・真正性を検証するファイルの数(ファイル検証数)を少なくすることができる。また、本実施形態では完全性・真正性を検証するファイルのデータサイズを圧縮により小さくできる。本実施形態ではファイル検証数及びデータサイズの減少により、ファイルの完全性・真正性を検証するための処理時間を短縮できる。
【0043】
図6は本実施形態のシステム更新アプリ12のアクティビティ図である。システム更新時、システム更新アプリ12は外部メモリ3に格納された(外部メモリ3の所定のディレクトリに保存された)システム更新用ファイルを読み出す。なお、外部メモリ3に格納されたシステム更新用ファイルは、システムを構成する複数のファイルであってもよいし、ネットワークサーバ5でファイル全体100が圧縮された一つのシステム更新用ファイル16であってもよい(ステップS30)。
【0044】
外部メモリ3に格納されたシステム更新用ファイルがシステムを構成する複数のファイルであれば、システム更新アプリ12はシステム更新用ファイル圧縮アプリ13を利用して、システムを構成するファイル全体100を圧縮することで、一つのシステム更新用ファイル16を生成する(ステップS32)。なお、外部メモリ3に圧縮したシステム更新用ファイル16が格納されていれば、システム更新アプリ12はステップS32の処理をスキップする。
【0045】
システム更新アプリ12はパーティション作成アプリ14を利用して、システム起動用ストレージ4の記憶領域に、ファイルの完全性・真正性を確認する例えば「ファイルシステム1」でフォーマットされた検証対象領域のパーティションと、ファイルの完全性・真正性を確認しない例えば「ファイルシステム2」でフォーマットされた検証対象外領域のパーティションと、を作成する(ステップS34)。
【0046】
システム更新アプリ12はLinux-IMAの制御により、例えば
図5のようなIMAポリシーファイルに検証対象領域のファイルシステムとして「ファイルシステム1」を設定することで、「ファイルシステム1」が管理するパーティションが完全性・真正性を確認する領域として設定される。また、システム更新アプリ12はLinux-IMAの制御により、例えば
図5のようなIMAポリシーファイルに検証対象領域のファイルシステムとして「ファイルシステム2」を設定しないことで、「ファイルシステム2」が管理するパーティションが完全性・真正性を確認しない領域として設定される(ステップS36)。
【0047】
なお、ここではパーティションをフォーマットするファイルシステムの例を説明しているが、RAM23に直接圧縮・展開するsquashfsなどのファイルシステムを完全性・真正性を確認する検証対象領域のファイルシステムに設定する場合も同様の設定が可能である。
【0048】
次に、システム更新アプリ12は、システム起動用ストレージ4に作成された検証対象領域のパーティションに、圧縮したシステム更新用ファイル16を保存する(ステップS38)。システム更新アプリ12はLinux-IMAの制御により、圧縮したシステム更新用ファイル16から認証データを作成し、圧縮したシステム更新用ファイル16のメタデータ領域に認証データ(電子署名)を格納する。認証データは、圧縮したシステム更新用ファイル16にハッシュ演算を行い、生成された値を署名検証用秘密鍵18で暗号化することで作成される(ステップS40)。
【0049】
また、システム更新アプリ12は認証データ(電子署名)の作成に利用した署名検証用秘密鍵18に対応する署名検証用公開鍵17をシステム起動用ストレージ4などに格納する(ステップS42)。
【0050】
図7は本実施形態のシステム更新用ファイル圧縮アプリ13のアクティビティ図である。システム更新用ファイル圧縮アプリ13はシステムを構成するファイル全体100を圧縮することにより、一つの圧縮されたシステム更新用ファイル16を生成する(ステップS50)。
【0051】
なお、圧縮したシステム更新用ファイル16の生成をネットワークサーバ5で行う場合は情報処理装置1のシステム更新用ファイル圧縮アプリ13がネットワークサーバ5に設けられる。
【0052】
図8は本実施形態のパーティション作成アプリ14のアクティビティ図である。情報処理装置1のパーティション作成アプリ14はシステム更新時、システム起動用ストレージ4の記憶領域に、例えば「パーティション1」と「パーティション2」とを作成する(ステップS60)。
【0053】
「パーティション1」を完全性・真正性を確認する検証対象領域とする場合、パーティション作成アプリ14は、例えば
図5のIMAポリシーファイルに検証対象領域のファイルシステムとして設定される例えばext4等の「ファイルシステム1」でフォーマットする(ステップS62)。「パーティション2」を完全性・真正性を確認しない検証対象外領域とする場合、パーティション作成アプリ14は例えば
図5のIMAポリシーファイルに検証対象領域のファイルシステムとして設定されていない例えばxfs等の「ファイルシステム2」でフォーマットする(ステップS64)。
【0054】
図9は本実施形態のシステム起動時にファイルの完全性・真正性を確認する処理のアクティビティ図である。システム起動時、情報処理装置1の署名作成・署名検証機能11Bは認証データを復号するための署名検証用公開鍵17をシステム起動用ストレージ4などから読み出し、登録する(ステップS70)。また、署名作成・署名検証機能11Bは
図5のようなIMAポリシーファイルを参照することで、検証対象領域のパーティションと検証対象外領域のパーティションとを確認する(ステップS72)。
【0055】
署名作成・署名検証機能11Bは検証対象領域のパーティションに格納されている圧縮したシステム更新用ファイル16に対して、ステップS70で登録した署名検証用公開鍵17をもとに署名検証を行う(ステップS74)。
【0056】
具体的に、署名作成・署名検証機能11Bは圧縮したシステム更新用ファイル16のメタデータ領域に保存されている認証データを署名検証用公開鍵17により復号した値と、圧縮したシステム更新用ファイル16にハッシュ演算を行い、生成された値と、の比較により署名検証を行う。
【0057】
署名検証に成功した場合、署名作成・署名検証機能11Bはファイル伸張展開機能11Cを利用して、検証対象外領域のパーティションに、圧縮したシステム更新用ファイル16を伸張・展開する(ステップS76)。そして、検証対象外領域のパーティションに展開されたシステムを構成するファイル全体100は、実行される(ステップS78)。なお、署名検証に失敗した場合、署名作成・署名検証機能11Bは圧縮したシステム更新用ファイル16を不正ファイルとして検知し、システムを停止する(ステップS80)。
【0058】
本実施形態によれば、ファイルの完全性・真正性を検証するための処理時間を短縮することができる。
【0059】
[他の実施形態]
図5のIMAポリシーファイルは一例であって、例えば
図10のIMAポリシーファイルのように、パーティション毎に割り振られる一意のID(例えばUUID)により検証対象領域のパーティションを設定してもよい。なお、
図10のIMAポリシーファイルに検証対象領域のパーティションとして設定されていないパーティションは、検証対象外領域のパーティションとなる。
【0060】
図11はシステム起動時にファイルの完全性・真正性を検証する本実施形態の処理イメージを説明する図である。
図4はファイルシステムの種類によって、完全性・真正性を検証する検証対象領域のパーティションと完全性・真正性を検証しない検証対象外領域のパーティションとを作成していた。
【0061】
一方、
図11はパーティションのUUIDによって、完全性・真正性を検証する検証対象領域のパーティションと完全性・真正性を検証しない検証対象外領域のパーティションとを作成している。
【0062】
例えばシステム更新アプリ12は、Linux-IMAの制御により例えば
図10のようなIMAポリシーファイルに検証対象領域としたい「パーティション1」の「UUID1」を設定することで、「UUID1」で識別されるパーティションが完全性・真正性を確認する領域として設定される。
【0063】
また、システム更新アプリ12は、Linux-IMAの制御により例えば
図10のようなIMAポリシーファイルに検証対象領域としたくない「パーティション2」の「UUID2」を設定しないことで、「UUID2」で識別されるパーティションが完全性・真正性を確認しない領域として設定される。
【0064】
図10及び
図11に示した本実施形態によれば、同じ種類のファイルシステムを使ってパーティションを作成したい場合であっても、完全性・真正性を確認する検証対象領域のパーティションと完全性・真正性を確認しない検証対象外領域のパーティションとを作成できる。
【0065】
なお、本実施形態に係る情報処理装置1は、システム起動時等にファイルの完全性・真正性を検証する機能を備えた装置であれば
図1に例示した構成に限られない。例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
【0066】
例えば、実施形態に係る情報処理装置1は、
図12、
図13に示すハードウェア構成を有する、PC(サーバ)6、またはMFP7のいずれかであってもよい。
【0067】
図12は、PC(サーバ)のハードウェア構成図である。ここではネットワークサーバ5のハードウェア構成について説明する。
【0068】
図12に示されているように、サーバ6は、コンピュータによって構築されており、
図12に示されているように、CPU601、ROM602、RAM603、HD604、HDD(Hard Disk Drive)コントローラ605、ディスプレイ606、外部機器接続I/F(Interface)608、ネットワークI/F609、データバス610、キーボード611、ポインティングデバイス612、DVD-RW(Digital Versatile Disk Rewritable)ドライブ614、メディアI/F616を備えている。
【0069】
これらのうち、CPU601は、サーバ6全体の動作を制御する。ROM602は、IPL等のCPU601の駆動に用いられるプログラムを記憶する。RAM603は、CPU601のワークエリアとして使用される。HD604は、プログラム等の各種データを記憶する。HDDコントローラ605は、CPU601の制御にしたがってHD604に対する各種データの読み出し又は書き込みを制御する。ディスプレイ606は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F608は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F609は、通信ネットワークを利用してデータ通信をするためのインターフェースである。データバス610は、
図12に示されているCPU601等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0070】
また、キーボード611は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス612は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ614は、着脱可能な記録媒体の一例としてのDVD-RW613に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F616は、フラッシュメモリ等の記録メディア615に対するデータの読み出し又は書き込み(記憶)を制御する。
【0071】
図13は、MFP9のハードウェア構成図である。
図13に示されているように、MFP(Multifunction Peripheral/Product/Printer)9は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。
【0072】
これらのうち、コントローラ910は、コンピュータの主要部であるCPU901、システムメモリ(MEM-P)902、ノースブリッジ(NB)903、サウスブリッジ(SB)904、ASIC(Application Specific Integrated Circuit)906、記憶部であるローカルメモリ(MEM-C)907、HDDコントローラ908、及び、記憶部であるHD909を有し、NB903とASIC906との間をAGP(Accelerated Graphics Port)バス921で接続した構成となっている。
【0073】
これらのうち、CPU901は、MFP9の全体制御を行う制御部である。NB903は、CPU901と、MEM-P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM-P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
【0074】
MEM-P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0075】
SB904は、NB903とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC906は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス921、PCIバス922、HDD908およびMEM-C907をそれぞれ接続するブリッジの役割を有する。このASIC906は、PCIターゲットおよびAGPマスタ、ASIC906の中核をなすアービタ(ARB)、MEM-C907を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部931及びプリンタ部932との間でPCIバス922を介したデータ転送を行うPCIユニットとからなる。なお、ASIC906には、USB(Universal Serial Bus)のインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしてもよい。
【0076】
MEM-C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【0077】
また、近距離通信回路920には、近距離通信回路920aが備わっている。近距離通信回路920は、NFC、Bluetooth(登録商標)等の通信回路である。
【0078】
更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル940bを備えている。コントローラ910は、MFP9全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
【0079】
なお、MFP9は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
【0080】
また、ネットワークI/F950は、通信ネットワークを利用してデータ通信をするためのインターフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。
【0081】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、本実施形態で説明した情報処理装置1は一例であって、用途や目的に応じて様々な構成例があることは言うまでもない。
【0082】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0083】
実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。
【0084】
パーティション作成アプリ14は特許請求の範囲に記載した作成手段の一例である。システム更新アプリ12は格納処理手段の一例である。署名作成・署名検証機能11Bは署名検証手段の一例である。ファイル伸張展開機能11Cは伸張展開手段の一例である。システム更新用ファイル圧縮アプリ13は圧縮手段の一例である。UUIDは識別情報の一例である。
【符号の説明】
【0085】
1 情報処理装置
2 コントローラ
3 外部メモリ
4 システム起動用ストレージ
5 ネットワークサーバ
11 OS
12 システム更新アプリ
13 システム更新用ファイル圧縮アプリ
14 パーティション作成アプリ
15 認証データ
16 システム更新用ファイル
17 署名検証用公開鍵
18 署名検証用秘密鍵
21 CPU(Central Processing Unit)
22 ROM(Read Only Memory)
23 RAM(Random Access Memory)
51 OS
【先行技術文献】
【特許文献】
【0086】