JP2020086516A - 情報処理装置、情報処理装置の制御方法、及び、プログラム - Google Patents

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

Info

Publication number
JP2020086516A
JP2020086516A JP2018214684A JP2018214684A JP2020086516A JP 2020086516 A JP2020086516 A JP 2020086516A JP 2018214684 A JP2018214684 A JP 2018214684A JP 2018214684 A JP2018214684 A JP 2018214684A JP 2020086516 A JP2020086516 A JP 2020086516A
Authority
JP
Japan
Prior art keywords
program
cpu
memory
information processing
stored
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.)
Granted
Application number
JP2018214684A
Other languages
English (en)
Other versions
JP2020086516A5 (ja
JP7210238B2 (ja
Inventor
美馬 毅
Takeshi Mima
毅 美馬
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2018214684A priority Critical patent/JP7210238B2/ja
Priority to US16/675,830 priority patent/US11556632B2/en
Priority to EP19207699.0A priority patent/EP3654183B1/en
Publication of JP2020086516A publication Critical patent/JP2020086516A/ja
Publication of JP2020086516A5 publication Critical patent/JP2020086516A5/ja
Application granted granted Critical
Publication of JP7210238B2 publication Critical patent/JP7210238B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】 改竄検証プログラムを実行させるCPUには、最初は改竄検証プログラムを実行させて、検証完了後に処理プログラムに切り換えて実行させるように、動作プログラムを制御する。動作プログラムが改竄されると、切替対象の処理プログラムとは別のプログラムに切り換えられる場合がある。【解決手段】 第2のCPUは、第2のメモリに格納された改竄検知プログラムを用いて、第1のメモリに格納されている、第1のCPUの起動時に実行されるプログラムの改竄検知を行い、起動時に実行されるプログラムの改竄が検知されない場合、起動時に実行されるプログラムを使って第1のCPUを起動させ、起動された第1のCPUを用いて、第2のCPUが実行するプログラムを、第2のメモリに格納された改竄検知プログラムから第1のメモリに格納されている別の処理プログラムに切り替えるように制御する。【選択図】 図3

Description

本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関するものである。
情報処理装置に搭載するCPUが実行する起動プログラムの改竄を検知する手法が知られている(たとえば特許文献1)。
例えば特許文献1では、起動プログラムを実行するCPU自身では、起動プログラムの改竄を検知できないため、起動プログラムを実行するCPUとは異なるCPUにより、前記起動プログラムの改竄の有無を検証する。
国際公開WO2009−013825号公報
情報処理装置は、世の中の高性能化への要求に対応し、同時に複数の処理をスムーズに実行できるよう、今や複数のCPUが搭載されているのが一般的であり、CPU毎にそれぞれ異なる処理プログラムを実行させている。
その為、起動プログラムの改竄検証の機能を情報処理装置に備える場合、情報処理装置の何れかのCPUについて、元々行っていた処理プログラムの他に、起動プログラムの改竄検証のプログラムを実行させることが考えられる。
この場合、改竄検証プログラムを実行させるCPUには、最初は改竄検証プログラムを実行させて、検証完了後に処理プログラムに切り換えて実行させるように、動作プログラムを制御する。
しかしながら、動作プログラムが改竄されると、切替対象の処理プログラムとは別のプログラムに切り換えられる場合がある。
上記の課題を解決するために、本発明の一態様に係る情報処理装置は以下のような構成を備える。すなわち、第1のCPUと、第2のCPUと、第1のメモリと、改竄検知プログラムを格納する第2のメモリとを備え、前記第2のCPUは、前記第2のメモリに格納された改竄検知プログラムを用いて、前記第1のメモリに格納されている、前記第1のCPUの起動時に実行されるプログラムの改竄検知を行う改竄検知手段と、前記改竄検知手段によって前記起動時に実行されるプログラムの改竄が検知されない場合、前記起動時に実行されるプログラムを使って前記第1のCPUを起動させる起動手段と、前記起動手段によって起動された第1のCPUを使って、前記第2のCPUが実行するプログラムを、前記第2のメモリに格納された改竄検知プログラムから前記第1のメモリに格納されている別の処理プログラムに切り替えるように制御する制御手段とを有する。
本発明によれば、改竄検証済みのプログラムを使って起動されたCPUにより、起動時に実行される改竄検知プログラムから適切な処理プログラムに切り換えることができる。
本実施例における複合機100のブロック図。 本実施例におけるCPU102から見たメモリアドレスマップの一例。 本実施例1におけるCPU102の動作プログラム切り換え制御を説明するフローチャート。 本実施例2におけるCPU102の動作プログラム切り換え制御を説明するフローチャート。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら適用範囲は複合機に限定はせず、情報処理装置であればよい。
<情報処理装置100>
図1に本実施形態を説明するための複合機100のブロック図を示す。SOC20は複合機100の制御を行うための後述する101〜114のモジュールで構成される。
CPU101は、複合機100の各種ソフトウェアプログラムを実行し、複合機100の各種制御を行なうプロセッサである。CPU102は、改竄検知用のソフトウェアプログラムと、CPU101が実行するプログラムとは別のアプリケーションプログラムを実行し、複合機100の改竄検知と一部のアプリケーションの制御を行うプロセッサである。
ROM103は、リードオンリーメモリで、複合機100の固定パラメータ等を格納している。又、ROM103は、前記改竄検知用のソフトウェアプログラムや後述の公開鍵などが格納されている。なお、ROM103は外部からのI/Fからは書き換えられないように論理回路で構成されたMASK ROMもしくは製造時に一度だけ書き込みが可能なOTP ROMで構成されているものとする。ここでOTPとは(One Time Programable ROM)のことである。
RAM104(揮発性の記憶媒体)は、ランダムアクセスメモリで、CPU101とCPU102が複合機100を制御する際に、プログラムや一時的なデータの格納などに使用される。HDD制御部105は、HDD115(不揮発性の記憶媒体)に対してデータを読み書きする制御を行う。例えばRAM104に格納されている画像データをシステムバス114経由で、HDD115に書き出して格納することができる。
フラッシュメモリ制御部106は、フラッシュメモリ116に対してデータを読み書きする制御を行う。起動時に、フラッシュメモリ116に格納されているプログラムを読み出してシステムバス114経由でRAM104へ展開することができる。
ネットワークI/F制御部107は、ネットワーク117上の他のデバイスやサーバーと、データの送受信を制御する。外部ポート制御部108は、SOC20の入出力ポート制御部である。例えば出力ポートを制御することによりLED118を必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えることが可能である。
スキャナI/F制御部109は、スキャナ119による原稿の読み取りを制御する。プリンタI/F制御部110は、プリンタ120による印刷処理を制御する。
画像処理部111は、スキャナ118から読み取った画像データをシェーディング補正したり、プリンタ119に出力するためにハーフトーン処理やスムージング処理したりする処理部である。
パネル制御部112は、タッチパネル式の操作パネル121を制御し、各種情報の表示、使用者からの指示入力を制御する。リセットベクタ制御部113は、CPU102のリセットベクタ(電源投入後に実行するプログラムを読みだす為に、リセット解除後に参照するアドレス値)の設定を変更する制御部であり、レジスタで構成されている。リセットベクタ制御部113のレジスタ設定は、CPU101により行われる。
システムバス114は、接続されているモジュールを相互に接続する。このシステムバス114を介して、CPU101やCPU102からの制御信号や各装置間のデータ信号が送受信される。
HDD115は、ハードディスクドライブで一部のアプリケーション、各種データを格納する。フラッシュメモリ116は、BIOS、ブートローダー、カーネル、アプリケーションを格納する。なお、HDD115とフラッシュメモリ116は同一のストレージモジュールであっても良いものとする。
<改竄されたプログラムへ切り替えられる仕組み>
ここで、本実施例の課題であるCPUが実行するプログラムが、改竄されたプログラムへ切り替えられてしまうメカニズムについて説明する。
図2に、CPU102から見た各格納手段のメモリアドレスマップ(論理アドレスマップ)の一例を示す。
図2に示すメモリアドレスマップにおいて、アドレス0x00000よりROM103のアドレス領域、アドレス0x01000よりフラッシュメモリ116のアドレス領域が、それぞれ割り当てられている。また、アドレス0x10000よりRAM104のアドレス領域、アドレス0x20000よりHDD115のアドレス領域、がそれぞれ割り当てられている。
本実施例では、CPU102に、最初は改竄検証プログラムを実行させて、検証完了後は別の処理プログラムを実行させるように、動作プログラムを切り換える場合を例にとり説明する。
図2において、プログラム201〜203は、CPU102が実行するプログラムを示し、リセットベクタ204〜206は、CPU102が起動後に最初に参照する、プログラムが格納されている参照先(アドレス値)を示している。
プログラム201は、CPU102が最初に実行する改竄検証プログラムであり、ROM103のアドレス領域のリセットベクタ204が示すアドレス値の0x00000より格納されている。
プログラム202は、CPU102が検証完了後に実行する別の処理プログラムであり、フラッシュメモリ116のアドレス領域のリセットベクタ205が示すアドレス値の0x01000より格納されている。
CPU102に実行させる別の処理プログラムは、例えば、情報処理装置100の消費電力を低減させるために、CPU101のスリープ制御(通常状態、スリープ状態への移行制御)を行う処理プログラムや、画像処理プログラムなどである。CPU101がスリープ状態へ移行する条件を満たした場合に、前記別の処理プログラムが実行される。
プログラム203は、CPU102が検証完了後に、改竄者が実行させる目的で予め格納した改竄された処理プログラムであり、HDD115のアドレス領域のリセットベクタ206が示すアドレス値の0x02000より格納されている。
つまりCPU102のリセットベクタは、最初は改竄検証プログラム(プログラム201)が格納されているリセットベクタ204に設定され、検証完了後、別の処理プログラム(プログラム202)が格納されているリセットベクタ205へ、本来は設定される。
しかしながら、CPU102のリセットベクタの設定は、CPU101の動作プログラムにより、リセットベクタ制御部113のレジスタ値を変更することにより行われる。このCPU101の動作プログラムが改竄されると、改竄者にリセットベクタ設定を変更されるおそれがある。
図2に示す例では、改竄された処理プログラムであるプログラム203が格納されているリセットベクタ206へ変更されてしまうと、CPU102は改竄された処理プログラムであるプログラム203へと動作プログラムを切り換えられてしまう。
また、リセットベクタは、改竄されたプログラム203以外の、HDD115またはRAM104の中の改竄されていない処理プログラムのアドレスに切り換えられてしまうこともある。
<CPU102の動作プログラム切り換えシーケンス>
次に、本実施例の特徴であるCPU102に動作させるプログラムの切り換え制御について説明する。
図3に、本実施例1における、複合機100の電源投入直後からの、CPU102に動作させるプログラム、及びプログラム切り換えシーケンスのフローチャートを示す。
まず始めに、複合機100の電源が投入されると、複合機100内の各モジュールをリセットし、その後、CPU102のみリセット状態を解除することにより、CPU102が起動する。複合機100内の各モジュールのリセット制御は、例えばリセット制御IC等を使用して、各モジュールへ供給するリセット信号の論理を所望のタイミングで切り替えることにより行う(S301)。
CPU102のリセットが解除されると、CPU102のリセットベクタ204〜206の示すアドレス領域に格納されているプログラムをCPU102は読み込み、読み込んだプログラムで実行するよう起動する。
CPU102のリセットベクタ204〜206は、リセット後の初期状態では、ROM103のアドレス領域を示すリセットベクタ204に設定されている。よってCPU102は、リセットベクタ204が示すアドレス領域であるROM103に格納されている、改竄検知プログラムであるプログラム201を読み込み、プログラム201に従って動作する状態で起動する(S302)。
次に、改竄検知プログラムに従って動作しているCPU102により、フラッシュメモリ116に格納されているプログラムについて、改竄の有無を検証する(S303)。S303において改竄の検証がされるプログラムは、CPU101の起動時に実行されるプログラムである。S303では、フラッシュメモリ116に格納されているプログラムをRAM104に読み込み、読み込んだプログラムの改竄の有無を検証する。なお、S303において、フラッシュメモリ116に格納されているプログラム202をRAM104に読み込んでもよい。
本実施例において、改竄の有無の検証(以下、改竄検証)は、一般的によく使用される公開鍵暗号方式を応用したデジタル署名(以下、署名)を使用して実施する場合を例にとり説明する。勿論、デジタル署名以外の改竄検証を行うプログラムであっても構わない。
署名データは、CPU101に実行させるプログラムの一部または全体について、ハッシュ関数を使用して算出されたハッシュ値であり、暗号鍵の対となる公開鍵と共に、予め製品出荷時のタイミング等でROM103へ格納されている。
一方、CPU101に実行されるプログラムは、後にソフトウェア更新などで書き換えられる事を想定し、ROMライタ等で書き換え可能なフラッシュメモリ116に、署名データと共に格納されている。フラッシュメモリ116に格納されている署名データは、外部からアクセスされるおそれがあるため、暗号鍵の対となるもう一方の秘密鍵を使用して暗号化されている。
改竄検知プログラムであるプログラム201で動作しているCPU102は、まず始めに、フラッシュメモリ116に格納されている暗号化された署名データをリードして、RAM104へ格納する。次に、ROM103に格納されている公開鍵を使用して、暗号化された署名データをデコードする。そして、デコードした署名データと、ROM103に予め格納されている署名データと比較することにより署名データが改竄されているか否かを検証する。
CPU102は、署名データを比較して、少しでも違いがあれば「改竄有り」と判断し、一致していれば「改竄無し」と判断する(S304)。
S304において、「改竄有り」と判断された場合には、改竄検知通知処理を行う(S305)。本実施例の複合機100においては、外部ボート制御部108を経由してLED118に供給される出力ポートを制御することにより、LED118を点灯させることにより、改竄が有ることを外部に通知する。
S304において、「改竄無し」と判断された場合には、CPU101のリセット状態を解除する(S306)。CPU101のリセット状態の解除は、CPU101に供給するリセット信号の論理を「解除」を伝える値へ切り替えることにより行う。
CPU101のリセットが解除されると、CPU101はフラッシュメモリ116のリセットベクタ(CPU101のリセットベクタは不変)が示すアドレス領域に格納されているプログラムを読み込み、RAM104に展開する。そして、リセット状態が解除されたCPU101は、RAM104に展開したプログラムを実行することにより、CPU101の起動処理を行う(S307)。
CPU102のリセットベクタの設定は、改竄検証対象であるCPU101に実行させるプログラムにおいて行われる。CPU102のリセットベクタ設定が改竄されると、フラッシュメモリ116に格納される署名データは、正確値であるROM103に格納される署名データとの比較で違いが発生するため、リセットベクタの改竄を検知することができる。
CPU101の起動が完了すると、CPU101は、読み込んだ改竄検証済みのプログラムに従って、CPU102をリセットする(S308)。CPU102のリセットは、CPU101に供給するリセット信号の論理を「リセット」を伝える値へ切り替えることにより行う。
そして、CPU101は改竄検証済みのプログラムに従って、CPU102のリセットベクタ204〜206をリセットベクタ205へ切り替える(S309)。改竄検証済みのプログラムには、CPU102のリセットベクタとして、リセットベクタ205を示すリセット制御部113のレジスタ設定値がプログラミングされている。そのため、前記レジスタ値をリセット制御部113のレジスタへ設定することにより、CPU102にはリセットベクタ205が設定される。
その後、CPU101は、CPU102のリセット信号の論理を切り替えて、CPU102のリセット状態を解除することにより、CPU102は再度起動される(S310)。
CPU102のリセットが解除されると、CPU102はリセットベクタ205の示すアドレス領域に格納されているプログラムを読み込み、読み込んだプログラムで実行するよう起動する。リセットベクタ205が示すアドレス領域であるRAM104には、CPU102に実行させる改竄検知プログラムとは別の処理プログラムが格納されている。
前記CPU102に実行させる別の処理プログラムは、複合機100の電源投入直後は、フラッシュメモリ116に格納されている。
このフラッシュメモリ116のアクセス速度は遅い為、改竄検証済みのプログラムで動作している状態のCPU101により、CPU102に実行させる別の処理プログラムは、アクセス速度の速いRAM104へ事前に格納されている。
よってCPU102は、リセットベクタ205が示すアドレス領域であるRAM104に格納されている、別の処理プログラムであるプログラム202を読み込み、別の処理プログラムであるプログラム202に従って動作する状態で起動する(S311)。
以上説明してきたように、実施例1の複合機100は、CPU102に動作させるプログラムを切り換える際に、改竄検証済みのプログラムで動作するCPU101によって、CPU102のリセットベクタ204〜206を切り換えるよう制御する。
つまりCPU102は、改竄検証済みのリセットベクタの示すアドレス領域に格納されたプログラムを読み込み起動する。そのため、改竄者にリセットベクタ設定を改竄されて、CPU102が改竄されたプログラムが格納されたアドレス領域から起動し、改竄されたプログラムが実行されることを低減することができる。
第1の実施形態では、改竄検証済みのプログラムで動作するCPU101によって、CPU102のリセットベクタを切り換えることにより、CPU102に動作させるプログラムを別の処理プログラムへ切り換える制御について説明した。
しかし、別の処理プログラムであるプログラム202が、フラッシュメモリ116に格納されている場合は、フラッシュメモリ116へ書き込み器具等で外部より書き込む事が可能であるため、改竄されてしまうおそれがある。
その為、改竄検証済みのプログラムで動作するCPU101によって、CPU102のリセットベクタを切り換えても、CPU102は改竄されたプログラムで起動される恐れがある。
第2の実施形態では、上記課題を解決するために、フラッシュメモリ116に格納されているCPU102に実行させる別の処理プログラム(プログラム202)についても改竄検証を行う。以下、第2の実施形態について、複合機を例に説明する。第2の実施形態の複合機を説明するに辺り、第1の実施形態の複合機と同じモジュール、処理については同一の番号を付与し、説明を割愛する。
<CPU102の動作プログラム切り換えシーケンス>
図4に、本実施例2における、複合機100の電源投入直後からの、CPU102に動作させるプログラム、及びプログラム切り換えシーケンスのフローチャートを示す。
図4に示すフローチャートにおいて、S301〜S302の処理は、本実施例1のフローチャート(図3)における処理と同様であるため、説明を割愛する。
CPU102が改竄検知プログラムに従って動作する状態で起動すると、CPU102は、フラッシュメモリ116に格納されているCPU101に動作させるプログラムと、CPU102の別の処理プログラムについて、改竄の有無を検証する(S403)。
ROM103には、CPU101に動作させるプログラムの署名データの他に、CPU102に動作させる別の処理プログラム(プログラム202)の署名データが予め格納されている。
一方、フラッシュメモリ116には、CPU101に動作させるプログラムの暗号化された署名データの他に、CPU102に動作させる別の処理プログラム(プログラム202)の暗号化された署名データが予め格納されている。
改竄検知プログラム(プログラム201)で動作しているCPU102は、まず始めにフラッシュメモリ116に格納されているCPU101に動作させるプログラムの暗号化された署名データをデコードする。そしてROM103に格納されているCPU101に動作させるプログラムの署名データと一致しているか否かを確認することにより、CPU101に動作させるプログラムの改竄の有無を検証する。
次にCPU102は、フラッシュメモリ116に格納されているCPU102に動作させる別の処理プログラム(プログラム202)の暗号化された署名データをデコードする。そしてROM103に格納されている別の処理プログラム(プログラム202)の署名データと一致しているか否かを確認することにより、CPU102に動作させる別の処理プログラム(プログラム202)の改竄の有無を検証する。
図4に示すフローチャートにおいて、S305〜S311の処理は、本実施例1のフローチャート(図3)における処理と同様であるため、説明を割愛する。
以上説明してきたように、実施例2の複合機100では、CPU102は、改竄検証済みの別の処理プログラムであるプログラム202により動作するよう制御する。
つまり、CPU102に実行させるプログラムを別の処理プログラム(プログラム202)に切り換える際に、CPU102のリセットベクタを実施例1と同じリセットベクタ205で設定した場合であっても、プログラム202の改竄検証を行うことができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (10)

  1. 第1のCPUと、
    第2のCPUと、
    第1のメモリと、
    改竄検知プログラムを格納する第2のメモリとを備え、
    前記第2のCPUは、前記第2のメモリに格納された改竄検知プログラムを用いて、前記第1のメモリに格納されている、前記第1のCPUの起動時に実行されるプログラムの改竄検知を行う改竄検知手段と、
    前記改竄検知手段によって前記起動時に実行されるプログラムの改竄が検知されない場合、前記起動時に実行されるプログラムを使って前記第1のCPUを起動させる起動手段と、
    前記起動手段によって起動された第1のCPUを用いて、前記第2のCPUが実行するプログラムを、前記第2のメモリに格納された改竄検知プログラムから前記第1のメモリに格納されている別の処理プログラムに切り替えるように制御する制御手段とを有することを特徴とする情報処理装置。
  2. 前記制御手段は、前記第2のCPUのリセットベクタを、前記第2のメモリのアドレス領域から前記第1のメモリのアドレス領域に切り替えることで前記制御を行うことを特徴とする請求項1に記載の情報処理装置。
  3. 前記別の処理プログラムは、前記第1のCPUのスリープ制御を行う処理プログラムであることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記改竄検知手段によって前記起動時に実行されるプログラムの改竄が検知された場合、前記第1のCPUの起動を行わないことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記制御手段は、前記第1のメモリに格納されている別の処理プログラムに切り替えるとともに、前記第2のCPUを再度起動させることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記改竄検知手段は、前記第1のメモリに格納されている別の処理プログラムの改竄検知を行うことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記第1のメモリは、揮発性の記憶媒体であることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記第2のメモリは、不揮発性の記憶媒体であることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 第1のCPUと、
    第2のCPUと、
    第1のメモリと、
    改竄検知プログラムを格納する第2のメモリとを有する情報処理装置における情報処理方法であって、
    前記第2のCPUは、前記第2のメモリに格納された改竄検知プログラムを用いて、前記第1のメモリに格納されている、前記第1のCPUの起動時に実行されるプログラムの改竄検知を行う改竄検知ステップと、
    前記改竄検知ステップによって前記起動時に実行されるプログラムの改竄が検知されない場合、前記起動時に実行されるプログラムを使って前記第1のCPUを起動させる起動ステップと、
    前記起動ステップによって起動された第1のCPUを使って、前記第2のCPUが実行するプログラムを、前記第2のメモリに格納された改竄検知プログラムから前記第1のメモリに格納されている別の処理プログラムに切り替えるように制御する制御ステップとを有することを特徴とする情報処理方法。
  10. コンピュータを、請求項1乃至8のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2018214684A 2018-11-15 2018-11-15 情報処理装置、情報処理装置の制御方法、及び、プログラム Active JP7210238B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018214684A JP7210238B2 (ja) 2018-11-15 2018-11-15 情報処理装置、情報処理装置の制御方法、及び、プログラム
US16/675,830 US11556632B2 (en) 2018-11-15 2019-11-06 Information processing apparatus and method of controlling information processing apparatus
EP19207699.0A EP3654183B1 (en) 2018-11-15 2019-11-07 Information processing apparatus and method of controlling information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018214684A JP7210238B2 (ja) 2018-11-15 2018-11-15 情報処理装置、情報処理装置の制御方法、及び、プログラム

Publications (3)

Publication Number Publication Date
JP2020086516A true JP2020086516A (ja) 2020-06-04
JP2020086516A5 JP2020086516A5 (ja) 2021-12-16
JP7210238B2 JP7210238B2 (ja) 2023-01-23

Family

ID=68502912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018214684A Active JP7210238B2 (ja) 2018-11-15 2018-11-15 情報処理装置、情報処理装置の制御方法、及び、プログラム

Country Status (3)

Country Link
US (1) US11556632B2 (ja)
EP (1) EP3654183B1 (ja)
JP (1) JP7210238B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200326925A1 (en) * 2020-06-26 2020-10-15 Intel Corporation Memory device firmware update and activation with memory access quiescence

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326307A (ja) * 2003-04-23 2004-11-18 Kyocera Mita Corp 画像形成装置
JP2008244992A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 端末装置及びプログラム
WO2009013825A1 (ja) * 2007-07-25 2009-01-29 Panasonic Corporation 情報処理装置、及び改竄検証方法
JP4279902B2 (ja) * 1997-01-31 2009-06-17 ソニー株式会社 ディジタルテレビジョン放送受信装置およびディジタルテレビジョン放送受信用プログラムの取得方法
JP2011008432A (ja) * 2009-06-24 2011-01-13 Toshiba Corp プロセッサ
JP2012181882A (ja) * 2012-06-29 2012-09-20 Nec Infrontia Corp 追加機能ユニットの有効化/無効化方法、そのシステム及びそのプログラム並びに追加機能ユニット
JP2014021953A (ja) * 2012-07-24 2014-02-03 Ricoh Co Ltd 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム
US20150074387A1 (en) * 2013-09-12 2015-03-12 Insyde Software Corp. System and method for auto-enrolling option roms in a uefi secure boot database
JP2015106771A (ja) * 2013-11-29 2015-06-08 キヤノン株式会社 画像形成システム、画像処理装置、画像形成装置、それらの制御方法、及びプログラム
JP2016107570A (ja) * 2014-12-09 2016-06-20 キヤノン株式会社 制御装置、制御方法、及びプログラム
JP2018045310A (ja) * 2016-09-12 2018-03-22 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
US20200134232A1 (en) * 2018-10-31 2020-04-30 Canon Kabushiki Kaisha Information processing apparatus and control method thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2002057904A1 (ja) * 2001-01-19 2004-05-27 富士通株式会社 ダウンロード機能を有する制御装置
JP3817494B2 (ja) * 2002-04-22 2006-09-06 キヤノン株式会社 画像処理装置及びその制御方法
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US8429219B2 (en) * 2005-05-23 2013-04-23 George Mason Research Foundation, Inc. Data alteration prevention system
WO2008078564A1 (ja) * 2006-12-22 2008-07-03 Panasonic Corporation 情報処理装置、集積回路、方法、およびプログラム
EP2164020B1 (en) * 2007-05-11 2014-02-26 Nagrastar L.L.C. Apparatus for controlling processor execution in a secure environment
JP5326918B2 (ja) * 2009-08-05 2013-10-30 株式会社リコー 電子機器,ソフトウェア更新方法,プログラム,および記録媒体
US20130042132A1 (en) * 2011-08-09 2013-02-14 Samsung Electronics Co., Ltd. Image forming appratus, microcontroller, and methods for controlling image forming apparatus and microcontroller
JP2015020301A (ja) * 2013-07-17 2015-02-02 株式会社リコー 画像形成装置
JP6615726B2 (ja) * 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
JP7022602B2 (ja) * 2018-01-24 2022-02-18 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4279902B2 (ja) * 1997-01-31 2009-06-17 ソニー株式会社 ディジタルテレビジョン放送受信装置およびディジタルテレビジョン放送受信用プログラムの取得方法
JP2004326307A (ja) * 2003-04-23 2004-11-18 Kyocera Mita Corp 画像形成装置
JP2008244992A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 端末装置及びプログラム
WO2009013825A1 (ja) * 2007-07-25 2009-01-29 Panasonic Corporation 情報処理装置、及び改竄検証方法
US20110044451A1 (en) * 2007-07-25 2011-02-24 Panasonic Corporation Information processing apparatus and falsification verification method
JP2011008432A (ja) * 2009-06-24 2011-01-13 Toshiba Corp プロセッサ
JP2012181882A (ja) * 2012-06-29 2012-09-20 Nec Infrontia Corp 追加機能ユニットの有効化/無効化方法、そのシステム及びそのプログラム並びに追加機能ユニット
JP2014021953A (ja) * 2012-07-24 2014-02-03 Ricoh Co Ltd 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム
US20150074387A1 (en) * 2013-09-12 2015-03-12 Insyde Software Corp. System and method for auto-enrolling option roms in a uefi secure boot database
JP2015106771A (ja) * 2013-11-29 2015-06-08 キヤノン株式会社 画像形成システム、画像処理装置、画像形成装置、それらの制御方法、及びプログラム
JP2016107570A (ja) * 2014-12-09 2016-06-20 キヤノン株式会社 制御装置、制御方法、及びプログラム
JP2018045310A (ja) * 2016-09-12 2018-03-22 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
US20200134232A1 (en) * 2018-10-31 2020-04-30 Canon Kabushiki Kaisha Information processing apparatus and control method thereof
JP2020071723A (ja) * 2018-10-31 2020-05-07 キヤノン株式会社 情報処理装置及びその制御方法

Also Published As

Publication number Publication date
US20200159910A1 (en) 2020-05-21
US11556632B2 (en) 2023-01-17
EP3654183A1 (en) 2020-05-20
EP3654183B1 (en) 2024-04-17
JP7210238B2 (ja) 2023-01-23

Similar Documents

Publication Publication Date Title
US11055413B2 (en) Information processing apparatus, method, and storage medium to sequentially activate a plurality of modules after activation of a boot program
US11914714B2 (en) Information processing apparatus and start-up method of the same
US20210011660A1 (en) Information processing apparatus and control method
JP7152920B2 (ja) 情報処理装置とその制御方法、及びプログラム
US20200134232A1 (en) Information processing apparatus and control method thereof
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7210238B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
US20200344066A1 (en) Information processing apparatus and data verification method
JP2013182577A (ja) 情報処理装置、画像形成装置およびプログラム
JP2023124089A (ja) 情報処理装置
JP2015215684A (ja) 情報処理装置及び情報処理プログラム
US11822928B2 (en) Information processing apparatus, method of controlling same, storage medium, and image forming apparatus
US11514169B2 (en) Information processing apparatus, method of controlling information processing apparatus, and storage medium
US20190303580A1 (en) Information processing apparatus, and information processing method
JP2021111916A (ja) 情報処理装置及びプログラム復旧方法
JP2019200660A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US11928217B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
JP7234629B2 (ja) 情報処理装置、検査方法、及び検査プログラム
JP2020135645A (ja) 情報処理装置、その制御方法およびプログラム
JP2020155029A (ja) 情報処理装置とその制御方法、及びプログラム
JP2016139206A (ja) 電子機器
JP2023112479A (ja) 情報処理装置及びその制御方法並びにプログラム
JP2023124500A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP2022158259A (ja) 画像形成装置
JP2010129037A (ja) 情報処理装置及び電子機器

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230111

R151 Written notification of patent or utility model registration

Ref document number: 7210238

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151