JP2023169781A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2023169781A
JP2023169781A JP2022081105A JP2022081105A JP2023169781A JP 2023169781 A JP2023169781 A JP 2023169781A JP 2022081105 A JP2022081105 A JP 2022081105A JP 2022081105 A JP2022081105 A JP 2022081105A JP 2023169781 A JP2023169781 A JP 2023169781A
Authority
JP
Japan
Prior art keywords
file
verification
storage area
information processing
file system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022081105A
Other languages
English (en)
Inventor
大樹 櫻田
Daiki Sakurada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2022081105A priority Critical patent/JP2023169781A/ja
Publication of JP2023169781A publication Critical patent/JP2023169781A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】システム起動時及びシステム起動後にファイルの完全性及び真正性を検証できる情報処理装置を提供すること。【解決手段】システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を検証対象領域として設定する手段と、第1のファイルシステムの記憶領域に格納された圧縮ファイル及び認証データを用いて、圧縮ファイルをシステム起動時に確認する手段と、確認に成功した圧縮ファイルを伸長しファイル及び認証データを第2のファイルシステムの記憶領域に展開する手段とを有し、確認する手段は、第2のファイルシステムの記憶領域が検証対象領域として設定された後、第2のファイルシステムの記憶領域に格納されたファイル及び認証データを用いて、ファイルの完全性及び真正性を確認することにより上記課題を解決する。【選択図】図2

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
近年、情報処理装置において、システムを構成するファイル(ファームウェア、ソフトウェア)に対して不正な改竄を検知し、正当なファイルのみ実行できるようにして完全性及び真正性を保証する技術(Linux(登録商標)‐IMAなど)が知られている。
Linux‐IMAは、予め対象となるファイルに対してハッシュ値(計測値)の期待値や電子署名といった認証データを保管しておき、期待値や電子署名と比較検証することで、完全性及び真正性の確認をファイル単位で行っていた。
完全性及び真正性を検証する検証対象領域と完全性及び真正性を検証しない検証対象外領域とを設定し、検証対象領域で完全性及び真正性を検証した圧縮ファイルを伸長して検証対象外領域に配置し、ファイルの完全性及び真正性を検証するための処理時間を短縮する技術が記載されている(例えば特許文献1参照)。
システム起動時に正当なファイルのみ実行できるようにして完全性及び真正性を保証する技術では、システム起動後にファイルが書き換わったことを検知できれば、システム起動後であってもファイルの完全性・真正性を保証できる。
本発明の実施の形態は、システム起動時及びシステム起動後にファイルの完全性及び真正性を検証できる情報処理装置を提供することを目的とする。
上記した課題を達成するために本願請求項1の情報処理装置は、システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更手段と、前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証手段と、確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開手段と、を有し、前記署名検証手段は、前記検証設定変更手段により前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認することを特徴とする。
本発明の実施の形態によれば、システム起動時及びシステム起動後にファイルの完全性及び真正性を検証できる。
実施形態に係る情報処理装置の一例のハードウェア構成図である。 本実施形態に係る情報処理装置の一例のソフトウェア構成図である。 本実施形態に掛かるシステム更新時の一例の処理イメージを説明する図である。 本実施形態に掛かるシステム起動時及びシステム起動後の一例の処理イメージを説明する図である。 ファイルシステムにより検証対象領域を設定するIMAポリシーファイルの一例の構成図である。 本実施形態に掛かる情報処理装置のシステム起動時及びシステム稼働時の署名検証のモード切替について説明する一例の図である。 本実施形態に掛かるシステム更新時にシステム更新ファイルを作成する処理の一例のシーケンス図である。 本実施形態に掛かるシステム起動時及びシステム稼働時の処理の一例のシーケンス図である。 本実施形態に掛かるシステム起動時及びシステム稼働時の処理の一例のシーケンス図である。 起動アプリの一例のアクティビティ図である。 検証設定変更アプリの一例のアクティビティ図である。 署名検証アプリの一例のアクティビティ図である。 伸長展開アプリの一例のアクティビティ図である。 エラー通知アプリの一例のアクティビティ図である。 本実施形態に掛かる情報処理装置のシステム起動時及びシステム稼働時の署名検証のモード切替について説明する一例の図である。 本実施形態に掛かるシステム起動時及びシステム起動後の一例の処理イメージを説明する図である。 UUIDにより検証対象領域を設定するIMAポリシーファイルの一例の構成図である。 PCの一例のハードウェア構成図である。 MFPの一例のハードウェア構成図である。
以下、添付図面を参照しながら実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
[第1の実施形態]
<ハードウェア構成>
図1は実施形態に係る情報処理装置の一例のハードウェア構成図である。図1の情報処理装置1は、コントローラ2と、外部メモリ3と、システム起動用ストレージ4と、操作部5と、を備える。情報処理装置1は、インターネットなどのネットワーク回線を介してネットワークサーバ6と通信可能に接続されている。
コントローラ2は、情報処理装置1の動作全体を制御する。コントローラ2は、システムを構成するファイル(ファームウェア、ソフトウェアなど)に対して署名検証を行うことで、ファイルの完全性・真正性を保証する。
コントローラ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のワークエリアとして使用される。
外部メモリ3は例えばSDカード等であり、新しくシステム起動用ストレージ4に書き込むためのシステム更新ファイル(圧縮ファイル)が保存されている。なお、システム更新ファイルはROM更新ファイルと呼んでもよい。システム起動用ストレージ4は例えばeMMC(embedded Multi Media Card)等である。システム起動用ストレージ4はシステムを構成するファイル(ファームウェア、ソフトウェア)を保存する。操作部5は、入力部と出力部とを有し、入力部からユーザの操作を受け付け、出力部から表示などの出力を行う。
ネットワークサーバ6には、新しくシステム起動用ストレージ4に書き込むためのシステム更新ファイルが保存されている。
<ソフトウェア構成>
図2は、本実施形態に係る情報処理装置の一例のソフトウェア構成図である。図2に示すネットワークサーバ6は、システム更新ファイル60と、更新ファイル作成アプリ62と、圧縮アプリ64と、署名作成アプリ66と、署名検証用秘密鍵68と、OS70とを有する。
OS70はネットワークサーバ6の全体の制御を行う。システム更新ファイル60は新しく情報処理装置1のシステム起動用ストレージ4に書き込むためのシステム更新ファイルである。
署名作成アプリ66はネットワークサーバ6で実行されることにより署名作成部として機能する。署名作成部は、システム更新ファイルに保存するアプリごとに電子署名(認証データ)を作成する。署名検証用秘密鍵68はアプリの署名作成に利用する秘密鍵データである。
更新ファイル作成アプリ62は、ネットワークサーバ6で実行されることにより更新ファイル作成部として機能する。圧縮アプリ64はネットワークサーバ6で実行されることにより圧縮部として機能する。更新ファイル作成部及び圧縮部は、システム更新ファイルに保存するアプリと、アプリごとの認証データと、を用いて、システム更新ファイル60を作成する。
図2に示す情報処理装置1は、システム更新ファイル30と、署名検証設定ファイル32と、システム更新ファイル用署名34と、署名検証用秘密鍵36と、署名検証用公開鍵38と、署名作成アプリ40と、起動アプリ42と、伸長展開アプリ44と、署名検証アプリ46と、エラー通知アプリ48と、「アプリ1」50と、「アプリ2」52と、検証設定変更アプリ54と、OS56とを有する。
情報処理装置1のOS56は、情報処理装置1の全体を制御する。システム更新ファイル30は、新しくシステム起動用ストレージ4に書き込むためのシステム更新ファイルである。署名検証設定ファイル32は、完全性及び真正性を検証する検証対象領域が後述のように設定される。システム更新ファイル用署名34はシステム更新ファイル30の署名検証に利用する認証データである。署名検証用秘密鍵36はシステム更新ファイル用署名34の署名作成時に利用する秘密鍵データである。署名検証用公開鍵38は署名検証時に利用する秘密鍵データである。署名作成アプリ40は、情報処理装置1で実行されることにより署名作成部として機能する。署名作成部はシステム更新ファイル30の認証データを作成する。
起動アプリ42は情報処理装置1で実行されることにより起動部として機能する。起動部はシステムを構成するファイル(ファームウェア、ソフトウェア)を起動する。例えば起動部は認証データを用いた署名検証に成功した場合、検証対象領域に格納された「アプリ1」50又は「アプリ2」52を起動させる。
署名検証アプリ46は、情報処理装置1で実行されることにより署名検証部として機能する。署名検証部は、システム起動時、システム更新ファイル30の認証データを用いて署名検証する。また、署名検証部は、システム起動後、システム更新ファイル30に保存されていた「アプリ1」50又は「アプリ2」52を起動する場合に、認証データを用いて署名検証する。
伸長展開アプリ44は、情報処理装置1で実行されることにより伸長展開部として機能する。署名検証に成功した場合、伸長展開部はシステム更新ファイル30を伸長し、RAM23上に展開する。
エラー通知アプリ48は、情報処理装置1で実行されることによりエラー通知部として機能する。エラー通知部は、署名検証部による署名検証が失敗の場合、ユーザにエラーを通知する。検証設定変更アプリ54は、情報処理装置1で実行されることにより検証設定変更部として機能する。検証設定変更部は、システム起動時に第1のファイルシステムの記憶領域を検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を検証対象領域として設定する。
なお、署名作成アプリ40及び署名検証アプリ46は、例えばLinux-IMAにより実現される。情報処理装置1は、例えばTrusted Bootにより、システム起動時に利用するファームウェア(例えば、BIOSやブートローダ)に対する改竄検知を行うようにしてもよい。
例えば図2の情報処理装置1は、図1に示したCPU21がRAM23をワークエリアとして使用して、プログラムに従った処理を実行することで、署名作成部、起動部、伸長展開部、署名検証部、エラー通知部、検証設定変更部、及びOS56を実現する。
<実施形態の処理または動作>
以降、各実施形態の処理または動作について説明する。図3は、本実施形態に掛かるシステム更新時の一例の処理イメージを説明する図である。
ステップS1においてネットワークサーバ6はシステム更新する1つ以上のアプリ100のファイルごとに認証データを作成し、それぞれのファイルのメタデータ領域に認証データを保存する。認証データは、1つ以上のアプリ100のファイルにハッシュ演算を行い、作成された値を署名検証用秘密鍵68で暗号化することで作成できる。
ステップS2においてネットワークサーバ6はメタデータ領域に認証データを保存したアプリ全体102を圧縮することで、一つのシステム更新ファイル60を作成する。システム更新ファイル60を作成する処理は、情報処理装置1で行うようにしてもよい。システム更新ファイル60は、情報処理装置1の外部メモリ3に保存される。
システム(ROM)更新時、情報処理装置1は外部メモリ3に保存されたシステム更新ファイル60を、システム更新ファイル30としてシステム起動用ストレージ4に保存する処理を行う。ステップS3において情報処理装置1はシステム起動用ストレージ4の記憶領域に、例えば「ファイルシステム1」でフォーマットされたパーティション(記憶領域)を作成する。
ステップS4において情報処理装置1は「ファイルシステム1」のパーティションにシステム更新ファイル30を保存する。ステップS5において、情報処理装置1はシステム更新ファイル30の認証データを作成し、システム更新ファイル30のメタデータ領域に認証データを保存する。なお、認証データは、システム更新ファイル30にハッシュ演算を行い、作成された値を署名検証用秘密鍵36で暗号化することで作成できる。
図4は、本実施形態に掛かるシステム起動時及びシステム起動後の一例の処理イメージを説明する図である。
ステップS6において、情報処理装置1は「ファイルシステム1」のパーティションを完全性及び真正性を確認する「検証対象領域1」に設定する。Linux-IMAでは例えば図5のようなIMAポリシーファイルに検証対象領域のファイルシステムを設定する。図5のIMAポリシーファイルに検証対象領域として設定されたファイルシステムでフォーマットされたパーティションは、検証対象領域のパーティションとなる。図5はファイルシステムにより検証対象領域を設定するIMAポリシーファイルの一例の構成図である。ステップS6の処理により、システム更新ファイル30が保存されているシステム起動用ストレージ4のパーティションは検証対象領域となる。
ステップS7において情報処理装置1は検証対象領域のパーティションに保存したシステム更新ファイル30と、そのシステム更新ファイル30のメタデータ領域に保存した認証データとで署名検証を行う。具体的に、情報処理装置1はメタデータ領域に保存した認証データを署名検証用公開鍵38Bにより復号した値と、システム更新ファイル30にハッシュ演算を行い、生成された値と、の比較により署名検証を行う。
署名検証に成功した場合、情報処理装置1はステップS8においてシステム更新ファイル16を伸張し、アプリ全体102を取得する。情報処理装置1は、システム起動用ストレージ4の「ファイルシステム2」でフォーマットされたパーティション(ループバックデバイス)にアプリ全体102をマウントし、RAM23上に展開する。ループバックデバイスとは、一般的なファイルを、あたかもハードディスクなどのブロック型デバイスであるかのように扱うための機能である。ループバックデバイスでは、イメージファイルをマウントすることで、イメージファイル内にある個別のファイルに通常のファイルと同様な操作を行うことができる。
なお、署名検証に失敗した場合、情報処理装置1はステップS9においてシステム更新ファイル30を不正ファイルとして検知し、ユーザにエラーを通知する。
システム起動後、情報処理装置1はCPU21の使用率を監視し、CPU21の使用率が設定した閾値よりも低くなった場合(例えばCPU21の使用率が10%以下になった場合など)にステップS10の処理を行う。
ステップS10において情報処理装置1は「ファイルシステム2」のパーティションを完全性及び真正性を確認する「検証対象領域2」に設定する。Linux-IMAでは例えば図5のIMAポリシーファイルに検証対象領域として「ファイルシステム2」を設定する。例えば「ファイルシステム2」でフォーマットされたパーティションは「検証対象領域2」のパーティションとなる。
ステップS10の処理により、アプリ全体102が保存されているシステム起動用ストレージ4のパーティションは「検証対象領域2」となる。
ステップS11において情報処理装置1は「検証対象領域2」のパーティションに保存したアプリ全体102に含まれる1つ以上のアプリ100のファイルと、それぞれのファイルのメタデータ領域に保存した認証データとで署名検証を行う。具体的に、情報処理装置1はメタデータ領域に保存した認証データを署名検証用公開鍵38Aにより復号した値と、それぞれのファイルにハッシュ演算を行い、生成された値と、の比較により署名検証を行う。
署名検証に成功した場合、情報処理装置1はステップS12の処理を行う。ステップS12において、情報処理装置1は署名検証に成功したファイルに対してファイルアクセスを行う。
署名検証に失敗した場合、情報処理装置1はステップS13の処理を行う。ステップS13において、情報処理装置1は署名検証に失敗したファイルを不正ファイルとして検知し、エラーをユーザに通知する。なお、署名検証に失敗した場合、情報処理装置1はシステムを停止するようにしてもよい。
このように本実施形態ではシステム起動用ストレージ4に保存したファイルの完全性及び真正性をシステム起動時及びシステム起動後に検証できる。また、本実施形態ではシステム起動用ストレージ4の「検証対象領域1」に、アプリ全体102を1つにまとめて圧縮したシステム更新ファイル30を保存している。これにより、本実施形態ではシステム起動時に完全性・真正性を検証するファイルの数(ファイル検証数)を少なくすることができ、システム起動時における処理負荷を軽減できる。
図6は本実施形態に掛かる情報処理装置のシステム起動時及びシステム稼働時の署名検証のモード切替について説明する一例の図である。システム稼働時はシステム起動後を表している。
図6において、情報処理装置1はシステム起動時に「ファイルシステム1」の領域で署名検証を行う。システム稼働時、情報処理装置1はCPU21の使用率を監視し、CPU21の使用率が設定した閾値以下になった場合に「ファイルシステム2」の領域で署名検証を行う。
このように、本実施形態に掛かる情報処理装置1は、署名検証するファイルシステムの切り替えを、起動時間に影響しないシステム稼働中(システム起動後)のタイミングで行うようにしている。
図7は、本実施形態に掛かるシステム更新時にシステム更新ファイルを作成する処理の一例のシーケンス図である。
ネットワークサーバ6は更新する1つ以上のアプリ100のファイルに電子署名(認証
データ)が作成されるまでステップS21の処理を繰り返す。ネットワークサーバ6の更新ファイル作成アプリ62はステップS21において、更新する1つ以上のアプリ100用の電子署名を署名作成アプリ66に作成させる。更新ファイル作成アプリ62は、それぞれのファイルのメタデータ領域に電子署名を保存する。
ステップS22において、更新ファイル作成アプリ62は、メタデータ領域に電子署名を保存したアプリ全体102を圧縮アプリ64に圧縮させることで、一つのシステム更新ファイル60を作成する。ステップS22の処理は「ファイルシステム2」でマウントする為のイメージファイルを作成する処理である。
図8及び図9は、本実施形態に掛かるシステム起動時及びシステム稼働時の処理の一例のシーケンス図である。なお、図8及び図9では検証設定変更アプリ54、署名検証アプリ46、及びエラー通知アプリ48の完全性及び真正性は、確認できているものとする。
ステップS31において、情報処理装置1の検証設定変更アプリ54は「ファイルシステム1」の署名検証を有効化する。ステップS32において、起動アプリ42はシステム更新ファイル(圧縮ファイル)の署名検証を署名検証アプリ46に行わせる。
署名検証に成功した場合、起動アプリ42はステップS33において、伸長展開アプリ44にシステム更新ファイル(圧縮ファイル)の伸長展開を要求する。ステップS34において、伸長展開アプリ44はシステム更新ファイル(圧縮ファイル)を伸長する。
ステップS35において、伸長展開アプリ44はメタデータ領域に電子署名を保存したアプリ全体102を「ファイルシステム2」でフォーマットされたループバックデバイスにマウントする。
署名検証に失敗した場合、起動アプリ42はシステム更新ファイル(圧縮ファイル)を不正ファイルとして検知し、エラー通知アプリ48にエラー通知を要求する。エラー通知アプリ48はユーザにエラーを通知する。
署名検証に成功した場合、起動アプリ42はループバックデバイスにマウントしたアプリ全体102に含まれる「アプリ1」50及び「アプリ2」52をステップS37~S38において起動する。
システム起動後、検証設定変更アプリ54はCPU21の使用率を監視し、CPU21の使用率が設定した閾値よりも低くなった場合にステップS39の処理を行う。ステップS39において、検証設定変更アプリ54は「ファイルシステム2」の署名検証を有効化する。
ここでは、ステップS40で「アプリ1」50にファイルアクセスする要求があったものとして説明する。ステップS41において「アプリ1」50は、署名検証アプリ46に対して「アプリ1」50の署名検証を要求する。署名検証に成功した場合、ステップS42において「アプリ1」50へのファイルアクセスが可能となる。一方、署名検証に失敗した場合、「アプリ1」50はエラー通知アプリ48にエラー通知を要求する。エラー通知アプリ48はユーザにエラーを通知する。
「アプリ2」52にファイルアクセスする要求があった場合も、「アプリ1」50と同様に処理する。図8及び図9に示したシーケンス図によれば、システム稼働中に「ファイルシステム2」でマウントされたファイルの完全性及び真正性を確認できる。
図10は起動アプリの一例のアクティビティ図である。ステップS50において起動アプリ42は、システム更新ファイル(圧縮ファイル)の署名検証を署名検証アプリに行わせる。
署名検証に成功した場合、起動アプリ42はステップS52において、伸長展開アプリ44にシステム更新ファイル(圧縮ファイル)の伸長展開を行わせる。署名検証に失敗した場合、起動アプリ42はステップS54において、エラー通知アプリ48にエラー通知を行わせる。
図11は検証設定変更アプリの一例のアクティビティ図である。ステップS60において検証設定変更アプリ54は署名検証設定ファイル32を書き換え、システム起動時における「ファイルシステム1」の署名検証を有効化する。システム起動後、検証設定変更アプリ54はCPU21の使用率を監視し、CPU21の使用率が設定した閾値以下になるまでステップS60の処理を繰り返す。CPU21の使用率が設定した閾値以下になった場合、検証設定変更アプリ54はステップS62において署名検証設定ファイル32を書き換え、システム稼働中における「ファイルシステム2」の署名検証を有効化する。
図12は署名検証アプリの一例のアクティビティ図である。ステップS70において署名検証アプリ46はシステム更新ファイルにハッシュ演算を行う。ステップS72において署名検証アプリ46はシステム更新ファイルのメタデータ領域に保存した電子署名(システム更新用署名)を署名検証用公開鍵38Bで復号する。
ステップS74において署名検証アプリ46は、システム更新ファイルのハッシュ演算結果と、システム更新用署名を復号した結果とが、一致するか否かを比較検証することにより署名検証を行う。
署名検証に成功した場合、署名検証アプリ46はステップS76において、成功した結果を起動アプリ42に送信する。また、署名検証に失敗した場合、署名検証アプリ46はステップS78において、失敗した結果を起動アプリ42に送信する。
図13は伸長展開アプリの一例のアクティビティ図である。ステップS80において伸長展開アプリ44はシステム更新ファイルを伸長する。ステップS82において伸長展開アプリ44は、伸長したファイル(アプリ全体102)を、ループバックデバイスを利用して「ファイルシステム2」でマウントし、RAM23上に展開する。
図14はエラー通知アプリの一例のアクティビティ図である。ステップS90においてエラー通知アプリ48は、操作部5にエラーを通知し、ユーザにエラーを認識させる為のエラー表示を操作部5に行わせる。
図15は本実施形態に掛かる情報処理装置のシステム起動時及びシステム稼働時の署名検証のモード切替について説明する一例の図である。図15において情報処理装置1はシステム起動時に「ファイルシステム1」の領域で署名検証を行う。システム稼働時、情報処理装置1はファイルディスクリプタ数を監視する。なお、ファイルディスクリプタ数とはプログラムからファイルを操作する際に、操作対象のファイルを識別する為に割り当てられる番号である。情報処理装置1はファイルディスクリプタ数が設定した閾値以下になった場合に「ファイルシステム2」の領域で署名検証を行う。
このように、本実施形態に掛かる情報処理装置1は、署名検証するファイルシステムの切り替えを、起動時間に影響しないシステム稼働中(システム起動後)のタイミングで行うようにしている。
図16は本実施形態に掛かるシステム起動時及びシステム起動後の一例の処理イメージを説明する図である。ステップS100~S103の処理は図4のステップS6~S9と同様である。
システム起動後、情報処理装置1はファイルディスクリプタ数を監視する。情報処理装置1はファイルディスクリプタ数が設定した閾値よりも低くなった場合(例えばファイルディスクリプタ数が100以下になった場合など)にステップS104の処理を行う。
ステップS104において情報処理装置1は「ファイルシステム2」のパーティションを完全性及び真正性を確認する「検証対象領域2」に設定する。アプリ全体102が保存されているシステム起動用ストレージ4のパーティションは「検証対象領域2」となる。
ステップS105において情報処理装置1は「検証対象領域2」のパーティションに保存したアプリ全体102に含まれる1つ以上のアプリ100のファイルと、それぞれのファイルのメタデータ領域に保存した認証データとで署名検証を行う。具体的に、情報処理装置1はメタデータ領域に保存した認証データを署名検証用公開鍵38Aにより復号した値と、それぞれのファイルにハッシュ演算を行い、生成された値と、の比較により署名検証を行う。
署名検証に成功した場合、情報処理装置1はステップS106の処理を行う。ステップS106において、情報処理装置1は署名検証に成功したファイルに対してファイルアクセスを行う。
署名検証に失敗した場合、情報処理装置1はステップS107の処理を行う。ステップS107において、情報処理装置1は署名検証に失敗したファイルを不正ファイルとして検知し、エラーをユーザに通知する。なお、署名検証に失敗した場合、情報処理装置1はシステムを停止するようにしてもよい。
このように本実施形態ではシステム起動用ストレージ4に保存したファイルの完全性及び真正性をシステム起動時及びシステム起動後に検証できる。また、本実施形態ではシステム起動用ストレージ4の「検証対象領域1」に、アプリ全体102を1つにまとめて圧縮したシステム更新ファイル30を保存している。これにより、本実施形態ではシステム起動時に完全性・真正性を検証するファイルの数(ファイル検証数)を少なくすることができ、システム起動時における処理負荷を軽減できる。
なお、ここではパーティションをフォーマットするファイルシステムの例を説明しているが、RAM23に直接圧縮・展開するsquashfsなどのファイルシステムを完全性及び真正性を確認する検証対象領域のファイルシステムに設定する場合も同様の設定が可能である。
[他の実施形態]
図5のIMAポリシーファイルは一例であって、例えば図17のIMAポリシーファイルのように、パーティション毎に割り振られる一意のID(例えばUUID)により検証対象領域のパーティションを設定してもよい。
なお、本実施形態に係る情報処理装置1は、システム起動時等にファイルの完全性及び真正性を検証する機能を備えた装置であれば図1に例示した構成に限られない。情報処理装置1は組み込み機器であってもよい。
情報処理装置1はPJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
例えば、実施形態に係る情報処理装置1は、図18又は図19に示すハードウェア構成を有する、PC600又はMFP900のいずれかであってもよい。
図18は、PCの一例のハードウェア構成図である。図18に示されているように、PC600は、コンピュータによって構築されており、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を備えている。
CPU601は、PC600全体の動作を制御する。ROM602はIPL等のCPU601の駆動に用いられるプログラムを記憶する。RAM603はCPU601のワークエリアとして使用される。HD604はプログラム等の各種データを記憶する。HDDコントローラ605は、CPU601の制御にしたがってHD604に対する各種データの読み出し又は書き込みを制御する。
ディスプレイ606は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F608は、各種の外部機器を接続するためのインタフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F609は、通信ネットワークを利用してデータ通信をするためのインタフェースである。データバス610は、図18のCPU601等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
キーボード611は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス612は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ614は、着脱可能な記録媒体の一例としてのDVD-RW613に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F616は、フラッシュメモリ等の記録メディア615に対するデータの読み出し又は書き込み(記憶)を制御する。
図19は、MFPの一例のハードウェア構成図である。図19に示されているようにMFP(Multifunction Peripheral/Product/Printer)900は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。コントローラ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で接続した構成となっている。
CPU901はMFP9の全体制御を行う制御部である。NB903は、CPU901と、MEM-P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM-P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
MEM-P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムはインストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。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)のインタフェースを接続するようにしてもよい。
MEM-C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
また、近距離通信回路920には、近距離通信回路920aが備わっている。近距離通信回路920は、NFC、Bluetooth(登録商標)等の通信回路である。
更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル940bを備えている。コントローラ910はMFP9全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
なお、MFP900は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。MFP900はドキュメントボックス機能の選択時にドキュメントボックスモードとなり、コピー機能の選択時にコピーモードとなり、プリンタ機能の選択時にプリンタモードとなり、ファクシミリモードの選択時にファクシミリモードとなる。
また、ネットワークI/F950は、通信ネットワークを利用してデータ通信をするためのインタフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、本実施形態で説明した情報処理装置1は一例であって、用途や目的に応じて様々な構成例があることは言うまでもない。
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。
本発明の態様は、例えば、以下の通りである。
<1>
システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更手段と、
前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証手段と、
確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開手段と、
を有し、
前記署名検証手段は、前記検証設定変更手段により前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認する
ことを特徴とする情報処理装置。
<2>
前記署名検証手段による確認が失敗の場合にエラーを通知するエラー通知手段、
を更に有する前記<1>記載の情報処理装置。
<3>
検証設定変更手段は、システムの起動後、CPUの使用率が設定した閾値よりも小さくなった場合に、第2のファイルシステムの記憶領域を前記検証対象領域として設定する
前記<1>又は<2>記載の情報処理装置。
<4>
検証設定変更手段は、システムの起動後、ファイルディスクリプタ数が設定した閾値よりも小さくなった場合に、第2のファイルシステムの記憶領域を前記検証対象領域として設定する
前記<1>又は<2>記載の情報処理装置。
<5>
前記署名検証手段は、前記検証設定変更手段により前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイルへのファイルアクセスがあった場合に、ファイルアクセスのあった前記ファイルを確認する
前記<1>乃至<4>の何れか一項に記載の情報処理装置。
<6>
情報処理装置が、
システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更ステップと、
前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証ステップと、
確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開ステップと、
を実行し、
前記署名検証ステップは、前記検証設定変更ステップで前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認する
ことを特徴とする情報処理方法。
<7>
情報処理装置に、
システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更手順、
前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証手順、
確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開手順、
を実行させ、
前記署名検証手順は、前記検証設定変更手順で前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認する
ことを特徴とするプログラム。
1 情報処理装置
2 コントローラ
3 外部メモリ
4 システム起動用ストレージ
5 操作部
6 ネットワークサーバ
21 CPU(Central Processing Unit)
22 ROM(Read Only Memory)
23 RAM(Random Access Memory)
40 署名作成アプリ
42 起動アプリ
44 伸長展開アプリ
46 署名検証アプリ
48 エラー通知アプリ
54 検証設定変更アプリ
特開2021-177593号公報

Claims (7)

  1. システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更手段と、
    前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証手段と、
    確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開手段と、
    を有し、
    前記署名検証手段は、前記検証設定変更手段により前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認する
    ことを特徴とする情報処理装置。
  2. 前記署名検証手段による確認が失敗の場合にエラーを通知するエラー通知手段、
    を更に有する請求項1記載の情報処理装置。
  3. 検証設定変更手段は、システムの起動後、CPUの使用率が設定した閾値よりも小さくなった場合に、第2のファイルシステムの記憶領域を前記検証対象領域として設定する
    請求項1又は2記載の情報処理装置。
  4. 検証設定変更手段は、システムの起動後、ファイルディスクリプタ数が設定した閾値よりも小さくなった場合に、第2のファイルシステムの記憶領域を前記検証対象領域として設定する
    請求項1又は2記載の情報処理装置。
  5. 前記署名検証手段は、前記検証設定変更手段により前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイルへのファイルアクセスがあった場合に、ファイルアクセスのあった前記ファイルを確認する
    請求項1又は2記載の情報処理装置。
  6. 情報処理装置が、
    システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更ステップと、
    前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証ステップと、
    確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開ステップと、
    を実行し、
    前記署名検証ステップは、前記検証設定変更ステップで前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認する
    ことを特徴とする情報処理方法。
  7. 情報処理装置に、
    システム起動時に第1のファイルシステムの記憶領域を完全性及び真正性を検証する検証対象領域として設定すると共に、システム起動後に第2のファイルシステムの記憶領域を前記検証対象領域として設定する検証設定変更手順、
    前記第1のファイルシステムの記憶領域に格納されている圧縮ファイル、及び前記圧縮ファイルの認証データを用いて、前記圧縮ファイルの完全性及び真正性をシステム起動時に確認する署名検証手順、
    確認に成功した前記圧縮ファイルを伸長し、伸長したファイル、及び前記ファイルの認証データを前記第2のファイルシステムの記憶領域に展開する伸長展開手順、
    を実行させ、
    前記署名検証手順は、前記検証設定変更手順で前記第2のファイルシステムの記憶領域が前記検証対象領域として設定された後、前記第2のファイルシステムの記憶領域に格納されている前記ファイル、及び前記ファイルの認証データを用いて、前記ファイルの完全性及び真正性を確認する
    ことを特徴とするプログラム。
JP2022081105A 2022-05-17 2022-05-17 情報処理装置、情報処理方法及びプログラム Pending JP2023169781A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022081105A JP2023169781A (ja) 2022-05-17 2022-05-17 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022081105A JP2023169781A (ja) 2022-05-17 2022-05-17 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2023169781A true JP2023169781A (ja) 2023-11-30

Family

ID=88924080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022081105A Pending JP2023169781A (ja) 2022-05-17 2022-05-17 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2023169781A (ja)

Similar Documents

Publication Publication Date Title
AU2019461393B2 (en) Screen sharing processing method, apparatus and device, and storage medium
US9171166B2 (en) Data processing apparatus and computer-readable recording medium
JP6938983B2 (ja) 情報処理システム、情報処理装置及び情報処理方法
US10218862B2 (en) Information processing terminal, image forming apparatus, information processing method, and recording medium for setting a home screen
US20210144014A1 (en) Information processing apparatus, method for ensuring files and storage medium
JP7456271B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2023169781A (ja) 情報処理装置、情報処理方法及びプログラム
US20170094090A1 (en) Information processing apparatus, method for controllingthe same, and storage medium
US11269680B2 (en) Information processing apparatus, information processing system, and information processing method
EP4195080A1 (en) Information processing system, information processing method, and carrier means
JP7279415B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20230333839A1 (en) Information processing apparatus and firmware update method
US20220188399A1 (en) Service providing system, service providing method, and non-transitory recording medium
US11729340B2 (en) Information processing server, method, and recording medium
JP7439546B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7306243B2 (ja) 情報処理装置、ホーム画面表示方法、及び、ホーム画面表示プログラム
US11445090B2 (en) Information processing apparatus, information processing system, and information processing method for executing applications on which use permission is granted
US20220253521A1 (en) Image forming apparatus capable of executing application programs, control method therefor, and storage medium
JP7283108B2 (ja) 情報処理装置、制御方法、およびプログラム
EP3447640B1 (en) Operating system up boot optimizations
JP2021184214A (ja) 情報処理装置、設定制御方法、プログラム及び情報処理システム
JP2022147763A (ja) 情報処理装置及びプログラムの検証方法とプログラム
JP2021140300A (ja) 情報処理装置、制御方法、及びプログラム
JP2021174191A (ja) 情報処理装置、システム、方法、およびプログラム
JP2021179797A (ja) 情報処理システム、方法、およびプログラム