JP2020095470A - 情報処理装置及びその制御方法 - Google Patents
情報処理装置及びその制御方法 Download PDFInfo
- Publication number
- JP2020095470A JP2020095470A JP2018232758A JP2018232758A JP2020095470A JP 2020095470 A JP2020095470 A JP 2020095470A JP 2018232758 A JP2018232758 A JP 2018232758A JP 2018232758 A JP2018232758 A JP 2018232758A JP 2020095470 A JP2020095470 A JP 2020095470A
- Authority
- JP
- Japan
- Prior art keywords
- program
- verification
- data
- information processing
- storage area
- 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
Links
Images
Abstract
【課題】プログラムの検証後に、該プログラムを記憶している記憶領域が不正な状態かを検証する。【解決手段】情報処理装置は、プログラムを記憶する記憶領域を有する記憶手段と、プログラムを読み出して読み出されたプログラムの正しさを検証する第1の検証手段と、検証によって正しいと判定されたプログラムを実行する実行手段と、検証によって正しくないと判定されたプログラムが記憶されている記憶領域が正常な状態であるかを検証する第2の検証手段と、を有する。【選択図】図3
Description
本発明は、プログラムを検証する情報処理装置及びその制御方法に関する。
プログラムを検証してからそのプログラムを実行することが行われている。このようにプログラムを検証することで、改竄されたプログラムや破損したプログラムを実行してしまうことを防ぐことができる。
特許文献1は、メインCPUとサブCPUを有する次の装置を開示する。装置の電源がONされると、サブCPUが、メインCPUで実行するデバイス初期化用のプログラムをROMからロードしてそのハッシュ値を計算し、ハッシュ値を計算したプログラムの認証を行ってからメインCPUのリセットを解除する。リセットが解除されたメインCPUは動作を開始し、認証が完了しているデバイス初期化用のプログラムを起動してデバイスの初期化処理や診断処理を実行する。
プログラムを格納するメモリ自体が破損することがある。この破損によって、メモリから正しくないデータが読み出されることがある。装置の起動時に、このような破損があるメモリに格納されているプログラムを検証すると、プログラムが正当なものでないと判断されることがある。そこで、プログラムを検証する前にメモリが破損しているかを検査する構成を採ると、メモリに破損がない場合でも装置の起動時にメモリの破損検査が行われてしまい、装置の起動完了までの時間がかかってしまう。
本発明の情報処理装置は、プログラムを記憶する記憶領域を有する記憶手段と、前記プログラムを読み出して当該読み出されたプログラムの正しさを検証する第1の検証手段と、前記検証によって正しいと判定されたプログラムを実行する実行手段と、前記検証によって正しくないと判定された前記プログラムが記憶されている前記記憶領域が正常な状態であるかを検証する第2の検証手段と、を有することを特徴とする。
プログラムの検証結果に基づいて、該プログラムを記憶している記憶手段の記憶領域が不正な状態であるかを検証することができる。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら適用範囲は複合機に限定はせず、情報処理装置であればよい。
(実施形態1)
図1は実施形態1に係る複合機10のハードウェア構成を説明するブロック図である。
図1は実施形態1に係る複合機10のハードウェア構成を説明するブロック図である。
コントローラ20は複合機10の制御を行うためのモジュールで構成される。本実施形態では半導体チップとして構成されているものとして説明する。
ROM102は、マスクROMで構成されたリードオンリーメモリで、CPU103で実行されるローダー200を格納している。
NORフラッシュメモリ145は、CPU103で実行されるブートプログラム202とそのバックアッププログラム203、およびそれぞれに対応する署名データ206、207を格納する。NANDフラッシュメモリ146は、CPU101で実行されるメインプログラム208とそのバックアッププログラム211、およびそれぞれに対応する署名データ212、213を格納する。各フラッシュメモリは、NORフラッシュメモリ制御部135、NANDフラッシュメモリ制御部136を介して、CPU101、CPU103からアクセスすることができる。
CPU103は、NORフラッシュメモリ145、およびNANDフラッシュメモリ146に格納された各プログラムの署名検証や各制御部の初期化、およびCPU101のリセット解除を行う制御部である。プログラムの署名検証とは、プログラムの正当性(正しさ)を検証する方法である。具体的には、検証対象のプログラムに対応づけられた暗号化済ハッシュ値を、後述の検証鍵で復号することで正しいハッシュ値を取得する工程、検証対象のプログラムのハッシュ値を計算する工程、これら両ハッシュ値を比較する工程を含む。両ハッシュ値の比較の結果、一致していればプログラムは正当である(改ざんされていない)と判定され、不一致であればプログラムは正当でない(改ざんされている)と判定される。なお本明細書において説明する署名検証は、プログラムの正当性を検証する方法の一例である。
CPU101は、改ざんされていないと判定されたメインプログラム208あるいはメインプログラムのバックアップ211を実行し、複合機10の装置全体の制御を行う別の制御部である。
OTP(One Time Programmable) ROM(以下、OTPと呼ぶ)109は、製造時に一度だけ書き込みが可能なROMで、ブートプログラムおよびメインプログラムの署名検証のための検証鍵が保持される。
RAM104は、SRAMで構成されたランダムアクセスメモリで、プログラムや一時的なデータの格納などに使用される。
スキャナI/F制御部105は、スキャナ111による原稿の読み取り制御する。プリンタI/F制御部107は、プリンタ112による印刷処理などを制御する。
画像処理部106はスキャナ111から読み取った原稿データに対するシェーディング処理や、プリンタ112へ出力するためのハーフトーン処理を行う。
DRAM144は、CPU101で実行されるプログラムや画像処理部106のワークメモリとして使用される。
メモリ制御部134は、DRAM144へアクセスするための各種コマンド制御を行う。
UI部110は、不図示のLCDタッチパネルのユーザインターフェースで、ユーザからの操作受け付け、および画面表示を行う。UI制御部108は、LCDへの表示タイミング生成およびタッチパネルからの入力コマンドの受け付けを行う。
ネットワークI/F137は、ネットワーク147を介して不図示のパーソナルコンピュータに対して、印刷コマンドの受け付けやスキャンデータの送信等を行う。外部ポート制御部138は、汎用の入出力ポートであり、たとえば出力ポートを制御することによりLED148を必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝える。
システムバス100は、接続されているモジュールを相互に接続する。システムバス100を介して、CPU101やCPU103と各モジュール間で各種データや制御コマンド等を送受信する。
図2は、実施形態1に係る複合機10が有するソフトウェアモジュールを説明するブロック図である。
ローダー200は、複合機10の電源を入れるとCPU103で実行されるプログラムであって、ROM102に格納される。ローダー200は、プログラムロード部201を有し、検証鍵、およびブートプログラム署名データ206を用いてブートプログラム202を署名検証したのちに、ブートプログラム202の実行を開始する。プログラムロード部201の処理の詳細については図3で説明する。
ブートプログラム202は、ローダー200による署名検証後にCPU103で実行されるプログラムで、NORフラッシュメモリ145に格納される。ブートプログラム署名データ206は、ブートプログラム202のハッシュ値を署名鍵で暗号化したものであり、ブートプログラム206のデジタル署名データである。署名データ生成、検証アルゴリズムとして、RSA、DSA、もしくはECDSAが使用される。
システム初期化部204は、メモリ制御部134等の各種初期化を行う。プログラムロード部205は、検証鍵、およびメインプログラム署名データ212を用いてメインプログラム208の署名検証を行う。署名検証の方法は上述の通りである。署名検証が成功すると、システム初期化部204は、メインプログラム208をDRAM144へ展開したのちに、CPU101のリセットを解除する。CPU101は、リセットが解除されるとDRAM144に展開されたメインプログラム208の実行を開始する。なお、ブートプログラム202におけるプログラムロード部205の署名検証処理自体は、ローダー200におけるプログラムロード部201の署名検証処理と同等の内容である。
メインプログラム208は、CPU101で実行されるプログラムで、NANDフラッシュメモリ146に格納される。カーネル209は複合機10の制御システムの核となるプログラムで、アプリケーション210に提供する各種リソース制御やスケジューリング等を行う。アプリケーション210は、複合機10が提供する各種機能(コピー、SEND、プリント等)を実現するためのプログラムである。アプリケーション210には、スキャナ制御部105、プリンタ制御部107、画像処理部106の制御や、UI部110に表示する画面の生成、および複合機10の総合的な状態制御などが含まれる。
バックアッププログラム203、211は、ブートプログラム202、メインプログラム208それぞれのバックアップであり、ブートプログラム202、メインプログラム208と同一の内容である。ブートプログラム202、メインプログラム208の改ざん等が発生した場合(署名検証によってプログラムが正当でないと判定された場合)は、これらのバックアッププログラムを用いて復旧が行われる。バックアッププログラム203、211は対応する署名データ207、213をそれぞれ持つ。
図3は、実施形態1に係るプログラムロード部が行う処理のフローチャートである。なお、ローダー200におけるプログラムロード部201と、ブートプログラム202におけるプログラムロード部205の処理は、ロードする対象がブートプログラムであるかメインプログラムであるかの違いのみである。よって本実施形態ではローダー200におけるプログラムロード部201について説明する。
本フローは複合機10の電源が投入されてコントローラ20のリセットが解除されると開始される。
S301では、プログラムロード部201は、NORフラッシュメモリ145に格納されているブートプログラム202を署名検証する。すなわちブートプログラム202の正当性が検証される。署名検証では前述のとおり、OTP109に格納された検証鍵でブートプログラム署名データ206を復号して得られた正しいハッシュ値と、ブートプログラム202のハッシュ値計算で得られたハッシュ値との比較が行われる。ハッシュ値が一致すればブートプログラム202が正当であると判定され、そうでなければブートプログラム202が正当でないと判定される。ハッシュ値が一致することを署名検証が成功するといい、ハッシュ値が不一致であることを署名検証が失敗するという。
S302では、プログラムロード部201は、S301で行われた署名検証が成功したかどうかを判断する。
署名検証が成功すると、S303でブートプログラム202を起動して本フローを終了する。すなわちCPU103は、署名検証によって正当であると判定されたブートプログラム202を実行する。ここでのCPU103は、NORフラッシュメモリ145から読み出したブートプログラム202の正当性の検証の結果に基づいて、ブートプログラム202をNORフラッシュメモリ145から読み出して実行する手段として機能している。
署名検証が失敗すると、S304の処理が行われる。S304では、プログラムロード部201は、NORフラッシュメモリ145に格納されているバックアッププログラム203を、NORフラッシュメモリ145上のブートプログラム202が格納されているメモリ領域(記憶領域)に上書きする。また、同時に署名データについても、バックアッププログラム署名データ207をブートプログラム署名データ206のメモリ領域に上書きする。ここでもしメモリ領域が破損していなければ、バックアッププログラム203およびバックアッププログラム署名データ207を用いた署名検証が成功するはずである。
S305では、プログラムロード部201は、S304で上書き更新されたブートプログラム(すなわちバックアッププログラム203)を署名検証する。すなわちメモリ領域に上書きされたバックアッププログラム203の正当性が検証される。
S306では、プログラムロード部201は、S305で行われた署名検証が成功したかどうかを判断する。この署名検証が成功したと判定された場合(S306でY)、S301で行われた署名検証の失敗の要因が一時的なデータ破損(改ざん)であり、S304において復旧されたと判断する。なぜならブートプログラム202だけでなくバックアッププログラム203も改ざんされることは確率的に非常に低いためである。ブートプログラム202の署名検証に失敗し、かつ、バックアッププログラム203の署名検証に成功することは、ブートプログラム202が改ざんされていたことを意味する。
S307では、プログラムロード部201は、第1の処理(改ざん後処理)として、ブートプログラム202の改ざんを検知したこと、および復旧されたことを示す表示をUI部110に表示する。この表示は、UI部110に限らず、たとえばLED148を特定のパターンで点灯あるいは点滅させる等でもよい。あるいは、表示は一切行わず、改ざん検知回数を内部的にカウントして保持させることで、複合機10の管理者が別途管理用アプリケーションを通じて検知回数を把握するような構成としてもよい。
S305で行われた署名検証が失敗したと判定された場合(S306でN)は、S301で行われた署名検証失敗の要因が一時的なデータ破損(改ざん)ではなく、恒常的なデータ破損(メモリエラー)であり、S304で復旧されなかったと判断する。ここでいうメモリエラーとは、NORフラッシュメモリ145における部分的な故障によって引き起こされ得るものであり、メモリ領域が不正な状態であることを指す。メモリエラーでは、この故障部分以外の部分に対するメモリアクセスは正常に行え得る。すなわちブートプログラム202が格納されているメモリ領域に対するメモリアクセスは正常に行えないが、それ以外のメモリ領域に対するメモリアクセスは正常に行え得る。またメモリエラーでは、NORフラッシュメモリ145におけるこの故障部分に対するメモリアクセス自体は行えるが、この故障部分にアクセスして読み出せるデータ(値)は、以前書き込んだデータと異なり得る。
S308では、プログラムロード部201は、第2の処理(メモリエラー後処理)として、複合機10において上記メモリエラーが発生していることを示す表示をUI部110に表示する。あるいは、LED148を、S307の点灯パターンあるいは点滅パターンとは異なる特定のパターンで点灯させることで、メモリエラーを複合機10外部に通知してもよい。
S307で改ざん後処理を行った後は、プログラムロード部201は、S304のコピー処理で復旧(復元)されたブートプログラムをS303において起動させて本フローを終了する。S308でメモリエラー後処理を行った後は、プログラムロード部201は、ブートプログラムを起動することなく本フローを終了する。
なお、S308においてメモリエラー後処理を行った後に、ブートプログラムを起動することなく終了しているが次のようにしてもよい。すなわち、バックアッププログラム203をブートプログラム202のメモリ領域に上書きすることなく署名検証し、その署名検証が成功した場合はバックアッププログラム203をそのまま起動させてもよい。すなわち、メモリエラーがNORフラッシュメモリ145におけるブートプログラム202のメモリ領域のみに発生しており、バックアッププログラム203のメモリ領域からは正常に、バックアッププログラムを読み出すことができる場合がある。この場合、ブートプログラムのメモリ領域からではなく、バックアッププログラムのメモリ領域から、バックアッププログラム203の先頭アドレスよりブートプログラムを起動する構成をとることも可能である。
このようにプログラムロード部201(CPU103)は、CPU103が実行するブートプログラム202の署名検証を行う。すなわち、ブートプログラム202の検証手段および実行手段は同一のCPU103によって実装される。
一方、プログラムロード部201(CPU101)が、CPU101が実行するメインプログラム208(CPU101のブートプログラム)の署名検証を行う(S301、S302)場合、次のようになる。すなわち、署名検証が成功すれば、CPU103は、CPU101のリセットを解除することで、CPU101を、メインプログラム208をNANDフラッシュメモリ146から読み出して実行可能な状態にする(S302でY、S303)。署名検証が失敗すれば、CPU103は、メインプログラムのバックアップ211をNANDフラッシュメモリ146から読み出し、メインプログラム208のメモリ領域に上書きして署名検証を行う。そしてこの署名検証の結果に基づいて、NANDフラッシュメモリ146のメインプログラム208のメモリ領域が不正な状態であるか検証(判定)する。(S302でN、S304〜S306)。この検証の結果に対応した処理(S307、S308)をCPU103は行う。このようにメインプログラム208の検証手段はCPU103によって実装され、メインプログラム208の実行手段はCPU101によって実装される。
このように本実施形態では、S304からS306において、ブートプログラム202の署名検証失敗の原因が一時的(改ざん)か、恒常的(メモリエラー)かを切り分けることで、ユーザに対して部品の点検、交換といった対処を促すことが可能となる。またS301における署名検証の結果に基づいて、S305において、NORフラッシュメモリ145中のブートプログラム202を記憶しているメモリ領域が不正な状態であるかを検証できるので、効率的にメモリ領域が不正な状態であるかを検証可能である。
以上、説明したように実施形態1によれば、プログラムの署名検証が失敗した場合に、バックアップブログラム203を、ブートプログラム202のメモリ領域に上書きしてその上書きされたプログラムの署名検証を実施する。これにより、署名検証失敗の要因を一時的なものか恒常的なものかを切り分けることが可能となり、恒常的な要因発生時の信頼性、利便性の低下を、未然に抑制するための対処をユーザに対して促すことが可能となる。
(実施形態2)
実施形態1では、バックアップブログラム203を、ブートプログラム202のメモリ領域に上書きして、署名検証を再実行することで、ブートプログラム202の署名検証の失敗要因を切り分けた。実施形態1はブートプログラム202が二重化されており、ブートプログラム202の破損時には、ローダー200によって自動的に復旧処理まで行うことが可能な構成を前提としている。一方で、実施形態2では、ブートプログラム202が二重化されておらず、復旧するためにはネットワーク137や、不図示の復旧用IFを介して復旧させる場合の、署名検証の失敗要因を切り分ける方法を示す。
実施形態1では、バックアップブログラム203を、ブートプログラム202のメモリ領域に上書きして、署名検証を再実行することで、ブートプログラム202の署名検証の失敗要因を切り分けた。実施形態1はブートプログラム202が二重化されており、ブートプログラム202の破損時には、ローダー200によって自動的に復旧処理まで行うことが可能な構成を前提としている。一方で、実施形態2では、ブートプログラム202が二重化されておらず、復旧するためにはネットワーク137や、不図示の復旧用IFを介して復旧させる場合の、署名検証の失敗要因を切り分ける方法を示す。
図4は、実施形態2に係るプログラムロード部201が行う処理のフローチャートである。
本フローは複合機10の電源が投入されてコントローラ20のリセットが解除されると開始される。S401からS403の署名検証処理については実施形態1のS301からS303と同様である。
S402で署名検証が失敗すると、S404では、プログラムロード部201は、メモリテスト用のデータ列を生成する。ここでプログラムロード部201は、生成したデータ列をRAM104に格納しておく。なお、データ列としては、あらかじめ決められたデータパターンであってもよく、特定の値を基準にした疑似乱数であってもよい。
S405では、プログラムロード部201は、S404で生成したデータ列を、NORフラッシュメモリ145上のブートプログラム202のメモリ領域に対して書き込みを行う。
S406では、プログラムロード部201は、S405で書き込みを行ったデータ列を読み出す。
S407では、プログラムロード部201は、S406で読みだされたデータ列が、S405で書き込まれたデータ列と一致しているかどうかを判断する。すなわち両データを比較して両データが一致しているかどうかが判定される。この判断においてプログラムロード部201は、S404でRAM104に格納しておいたデータ列と、S406で読み出したデータ列とを比較する。この比較の結果、2つのデータ列が一致していると判断された場合には、プログラムロード部201は、S401における署名検証の失敗要因が、一時的(改ざん)であると判断する。2つのデータ列が一致していないと判断された場合には、プログラムロード部201は、S401における署名検証の失敗要因が、恒常的(メモリエラー)であると判断する。
要因が一時的と判断された場合、S408では、プログラムロード部201は、複合機10においてブートプログラムの改ざんが発生していること、および所定の復旧手段を用いて普及を促す表示をUI部110に表示する。あるいは、同様の内容を、LED148を特定のパターンで点灯あるいは点滅させることで複合機10外部に通知してもよい。一方、要因を恒常的と判断した場合、S409では、プログラムロード部201は、複合機10においてメモリエラーが発生していること、および部品の交換を促す表示をUI部110に表示する。あるいは、同様の内容を、LED148を別の特定のパターンで点灯あるいは点滅させることで複合機10外部に通知してもよい。
以上説明したように、実施形態2によれば、署名検証の失敗時に、特定のデータ列をブートプログラム202のメモリ領域へ書き込み、読み出してメモリ検査を実施することで、署名検証失敗の要因を一時的なものか恒常的なものかを切り分けることが可能となる。これにより、ブートプログラム202が二重化されていない場合であっても、署名検証の失敗要因が一時的なものか恒常的なものかを切り分けることで、不要な復旧処理をユーザに課すことなく、部品の交換といった正しい対処を促すことが可能となる。
(実施形態3)
実施形態1では、ローダー200において、署名検証を再実行することで、ブートプログラム202の署名検証の失敗要因を切り分けた。すなわち、実施形態1では、ローダー200において、2回の署名検証を行っている。実施形態3では、2回目の署名検証を行う前に、再起動を挟む形態について説明する。
実施形態1では、ローダー200において、署名検証を再実行することで、ブートプログラム202の署名検証の失敗要因を切り分けた。すなわち、実施形態1では、ローダー200において、2回の署名検証を行っている。実施形態3では、2回目の署名検証を行う前に、再起動を挟む形態について説明する。
図5は、実施形態3に係るプログラムロード部201が行う処理のフローチャートである。
本フローは複合機10の電源が投入されてコントローラ20のリセットが解除されると開始される。S501、S502の署名検証処理については実施形態1のS301、S302と同様である。
S502で署名検証が成功すると、プログラムロード部201は、S503において、NORフラッシュメモリ145上に格納された復旧フラグをクリアした後、S504でブートプログラムを起動して、本制御フローを終了する。この復旧フラグは、バックアッププログラム203によるブートプログラム202の復旧が試みられたか否かを示す情報である。前回の起動時にブートプログラム202の復旧が試みられていると、この復旧フラグがセットされ、そうでない場合にはクリアされている。
S502において署名検証が失敗した場合、プログラムロード部201は、S505では、復旧フラグがセットされているかを判断する。復旧フラグがセットされている場合、前回の起動時に復旧が試みられたにも関わらず、署名検証が失敗していることから、プログラムロード部201は、今回の署名検証の失敗要因を恒常的(メモリエラー)と判断し、S509に処理を進める。S509では、プログラムロード部201は、複合機10においてメモリエラーが発生していること、および部品の交換を促す表示をUI部110に表示する。あるいは、同様の内容を、LED148を別の特定のパターンで点灯あるいは点滅させることで複合機10外部に通知してもよい。
S502で復旧フラグがセットされていない場合は、S506においてプログラムロード部201は、バックアッププログラム203をブートプログラム202のメモリ領域へ上書きして復旧を試みる。S507では復旧フラグをNORフラッシュメモリ145上にセットして、S508でCPUのリセットをアサートして再起動を行う。再起動とは複合機10を一旦シャットダウンしてから起動を行う、いわゆるリブートのことである。再起動後は再度S501へと戻る。すなわち、リブート前にデータ(ブートプログラム202のバックアップ203)をブートプログラム202のメモリ領域に書き込んでおき、このメモリ領域に書き込まれたデータをリブート後に検証する。このようにデータの検証の少なくとも一部は、リブート後に行われる。
以上説明したように、実施形態3によれば、バックアッププログラム203による、ブートプログラム202の復旧時に、復旧を示す復旧フラグをNORフラッシュメモリ145にセットする。これにより、再起動後に復旧フラグを確認して、署名検証エラーの要因が恒常的なものかどうかを切り分けることが可能となる。なお、本実施形態では、S503で復旧フラグをクリアする前に、復旧済みであるかどうかを確認しない。別の実施形態として、S503で復旧フラグをクリアする前に、復旧フラグの有無を確認することで、現在の状態が正常起動であるか、一時的なエラー(改ざん)後に復旧したのかを切り分けることも可能である。何れの形態であっても、署名検証失敗の要因が恒常的なものか否かを切り分けることで、恒常的な要因発生時の信頼性、利便性の低下を、未然に抑制するための対処をユーザに対して促すことが可能となる。
(他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (13)
- プログラムを記憶する記憶領域を有する記憶手段と、
前記プログラムを読み出して当該読み出されたプログラムの正しさを検証する第1の検証手段と、
前記検証によって正しいと判定されたプログラムを実行する実行手段と、
前記検証によって正しくないと判定された前記プログラムが記憶されている前記記憶領域が正常な状態であるかを検証する第2の検証手段と、
を有することを特徴とする情報処理装置。 - 前記第2の検証手段は、データを前記記憶領域に書き込んで、当該データが書き込まれた前記記憶領域からデータを読み出し、当該読み出されたデータに基づいて、前記記憶領域が正常な状態であるかを検証することを特徴とする請求項1に記載の情報処理装置。
- 前記第2の検証手段は、前記読み出されたデータから該データのハッシュ値を計算する手段と、前記データに対応する正しいハッシュ値を取得する手段と、前記計算されたハッシュ値と前記取得されたハッシュ値とを比較して両ハッシュ値が一致していれば前記記憶領域が正常な状態であると判定する手段と、を有することを特徴とする請求項2に記載の情報処理装置。
- 前記書き込まれるデータは前記プログラムのバックアップであることを特徴とする請求項2または3に記載の情報処理装置。
- 前記書き込まれるデータは、前記記憶領域とは異なる、前記記憶手段の記憶領域に記憶されていることを特徴とする請求項2乃至4の何れか1項に記載の情報処理装置。
- 前記第2の検証手段は、前記書き込まれたデータと前記読み出されたデータとを比較して、両データが一致していれば前記記憶領域が正常な状態であると判定する手段を有することを特徴とする請求項2に記載の情報処理装置。
- 前記第1の検証手段、前記実行手段、前記第2の検証手段は、1つの制御部で実装されることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
- 前記第1の検証手段および前記第2の検証手段は、1つの制御部で実装され、前記実行手段は、別の制御部で実装されることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
- 前記第2の検証手段による検証の結果に対応する通知を行う通知手段をさらに有することを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
- 前記第2の検証手段は、前記情報処理装置をリブートさせる手段を有し、前記検証の少なくとも一部を当該リブートの後に実行することを特徴とする請求項1乃至9の何れか1項に記載の情報処理装置。
- 前記第1の検証手段は、前記読み出されたプログラムから該プログラムのハッシュ値を計算する手段と、前記プログラムに対応する正しいハッシュ値を取得する手段と、前記計算されたハッシュ値と前記取得されたハッシュ値とを比較して両ハッシュ値が一致していれば前記読み出されたプログラムが正しいと判定する手段と、を有することを特徴とする請求項1乃至10の何れか1項に記載の情報処理装置。
- プログラムを記憶する記憶領域を有する記憶手段を有する情報処理装置の制御方法であって、
前記プログラムを読み出して当該読み出されたプログラムの正しさを検証する第1の検証工程と、
前記検証によって正しいと判定されたプログラムを実行する実行工程と、
前記検証によって正しくないと判定された前記プログラムが記憶されている前記記憶領域が正常な状態であるかを検証する第2の検証工程と、
を有することを特徴とする情報処理装置の制御方法。 - 前記第2の検証工程は、データを前記記憶領域に書き込んで、当該データが書き込まれた前記記憶領域からデータを読み出し、当該読み出されたデータに基づいて、前記記憶領域が正常な状態であるかを検証することを特徴とする請求項12に記載の情報処理装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018232758A JP2020095470A (ja) | 2018-12-12 | 2018-12-12 | 情報処理装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018232758A JP2020095470A (ja) | 2018-12-12 | 2018-12-12 | 情報処理装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020095470A true JP2020095470A (ja) | 2020-06-18 |
Family
ID=71084942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018232758A Pending JP2020095470A (ja) | 2018-12-12 | 2018-12-12 | 情報処理装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020095470A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210281423A1 (en) * | 2020-03-09 | 2021-09-09 | Kabushiki Kaisha Toshiba | Information processing device |
JP7292328B2 (ja) | 2021-05-28 | 2023-06-16 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US11836048B2 (en) | 2021-02-18 | 2023-12-05 | Canon Kabushiki Kaisha | Information processing apparatus |
-
2018
- 2018-12-12 JP JP2018232758A patent/JP2020095470A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210281423A1 (en) * | 2020-03-09 | 2021-09-09 | Kabushiki Kaisha Toshiba | Information processing device |
US11888990B2 (en) * | 2020-03-09 | 2024-01-30 | Kabushiki Kaisha Toshiba | Information processing device controlling analysis of a program being executed based on a result of verification of an analysis program |
US11836048B2 (en) | 2021-02-18 | 2023-12-05 | Canon Kabushiki Kaisha | Information processing apparatus |
JP7292328B2 (ja) | 2021-05-28 | 2023-06-16 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10225426B2 (en) | Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium | |
CN108399339B (zh) | 一种基于安全芯片的可信启动方法 | |
JP4769608B2 (ja) | 起動検証機能を有する情報処理装置 | |
US9792440B1 (en) | Secure boot for vehicular systems | |
US9880908B2 (en) | Recovering from compromised system boot code | |
TWI436229B (zh) | 用以提供安全開機架構之系統與方法 | |
US10720225B2 (en) | Information processing apparatus, control method thereof, and storage mediumMD | |
JP6494373B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム | |
JP7022809B2 (ja) | コンピュータシステム、および、その安全管理方法、および、コンピュータソフトウェア製品 | |
JP2007525774A (ja) | ランタイム・セキュリティ保証用の自律型メモリ・チェッカ | |
JP2020095470A (ja) | 情報処理装置及びその制御方法 | |
US8826080B2 (en) | Methods and systems for preboot data verification | |
JP2020160747A (ja) | 情報処理装置、その制御方法、及びプログラム | |
US9928367B2 (en) | Runtime verification | |
US11099935B2 (en) | Error handling associated with boot program alteration | |
TW202318196A (zh) | 韌體映像檢查系統、韌體映像檢查方法及電腦系統 | |
JP2021140601A (ja) | 情報処理装置、その制御方法、及びプログラム | |
JP2020053002A (ja) | 情報処理装置とその制御方法、及びプログラム | |
JP2020154601A (ja) | 情報処理装置とその制御方法、及びプログラム | |
JP2014179047A (ja) | 情報処理装置 | |
US10657268B2 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium to verify validity of backup data | |
JP2022182837A (ja) | 情報処理装置、及びその制御方法 | |
CN112817619A (zh) | 电脑系统及其安全管理方法以及电脑软件产品 | |
JP2022126549A (ja) | 情報処理装置 | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 |