JP7289641B2 - 情報処理装置、およびその制御方法 - Google Patents

情報処理装置、およびその制御方法 Download PDF

Info

Publication number
JP7289641B2
JP7289641B2 JP2018225480A JP2018225480A JP7289641B2 JP 7289641 B2 JP7289641 B2 JP 7289641B2 JP 2018225480 A JP2018225480 A JP 2018225480A JP 2018225480 A JP2018225480 A JP 2018225480A JP 7289641 B2 JP7289641 B2 JP 7289641B2
Authority
JP
Japan
Prior art keywords
program
notification
information processing
sub cpu
led
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.)
Active
Application number
JP2018225480A
Other languages
English (en)
Other versions
JP2020087321A5 (ja
JP2020087321A (ja
Inventor
信一 大野
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 JP2018225480A priority Critical patent/JP7289641B2/ja
Priority to US16/693,018 priority patent/US10931846B2/en
Publication of JP2020087321A publication Critical patent/JP2020087321A/ja
Priority to US17/164,031 priority patent/US11388304B2/en
Publication of JP2020087321A5 publication Critical patent/JP2020087321A5/ja
Priority to US17/847,973 priority patent/US11706366B2/en
Application granted granted Critical
Publication of JP7289641B2 publication Critical patent/JP7289641B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00885Power supply means, e.g. arrangements for the control of power supply to the apparatus or components thereof
    • H04N1/00899Detection of supply level or supply failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00885Power supply means, e.g. arrangements for the control of power supply to the apparatus or components thereof
    • H04N1/00888Control thereof
    • H04N1/00891Switching on or off, e.g. for saving power when not in use
    • 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

Landscapes

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

Description

制御手段が実行するブートプログラムの正当性を検証する技術に関する。
画像形成装置(以後、MFPと呼ぶ)におけるブートコードの改竄検知方法には、メインCPUが実行するブートコードをメインCPUが起動する前にサブCPUが読み出し、サブCPUは読み出したブートコードが改竄されていないかを検証する方法がある。サブCPUがブートコードの改竄を検知した場合の処理として、メインCPUを起動させないためにメインCPUに入力するリセット信号をサブCPUが制御することでメインCPUをリセット状態にし続ける方法が考えられる。
特許文献1は、第1コンポートネントが改竄されているかを判定し、改竄されていなければ第1コンポーネントのブートを開始し当該ブートに成功したことを示すように状態情報を更新し、改竄されていれば第1コンポーネントのブートを抑制することを開示する。
特表2011-511331
ブートコードの改竄検知を行うサブCPUが正常に動作しているか否かはシステムの信頼性に関わるため、サブCPUが正常に動作していることを通知することは重要である。
しかしながら、サブCPUが正常に動作していることを常時通知するために電力を消費し続ける装置構成は、消費電力の増大を招く。
本発明は、情報処理装置であって、第1プログラムと第2プログラムを格納するように構成された記憶手段と、第1プログラムを実行するように構成された第1制御手段と、第2プログラムを実行し、第1プログラムが有効であるか否かを判断する検証処理を実行する第2制御手段と、通知手段と、を有し、第2制御手段は、前記第2プログラムが有効であるか否かを検証し、前記第2プログラムが有効でない場合に前記通知手段に通知をさせず、前記第2プログラムが有効である場合に前記第2プログラムを実行し、第2プログラムの実行に基づいて通知手段に通知を出力させ、通知手段が前記通知を出力した後に、第1プログラムが有効であるか否かを検証し、第1プログラムが有効である場合に、前記通知手段に前記通知を消去させ、前記第1プログラムが無効である場合に、前記通知手段の出力を前記通知と異なる通知に変更させることを特徴とする。
消費電力を抑えつつ、ブートコードの改竄検知を行う手段が正常に動作していることを通知する。
MFPの構成を示す図である。 メインCPUの構成を示す図である。 サブCPUの構成を示す図である。 FLASH ROMのメモリマップを示す図である。 サブCPUの処理を示すフローチャートである。 メインCPUの処理を示すフローチャートである。 LEDの点灯タイミングを示す図である。
以下、本発明を実施するための形態について図面を用いて説明する。
(第1実施形態)
メインCPU101のブートコード(ブートプログラム)の正当性を検証するとき(ブートコードの改竄検知処理時)における故障検知方法を実行する情報処理装置の例としてのMFP(Multi Function Peripheral)について説明する。MFPは画像形成機能(印刷機能)を有する画像形成装置(印刷装置)である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
図1はMFP1の構成を表す図であって、同図において、メインCPU(Central Processing Unit)101は第1の制御部であって、MFP101全体の制御を司る。
DRAM(Dynamic Random Access Memory)102は、揮発性メモリであって、メインCPU101で実行されるプログラムを格納すると共に一時的なデータのワークエリアとして機能する。
操作部103はタッチスクリーンを有し、操作部I/F113を介してメインCPU101にユーザによる操作を通知する。
ネットワークI/F104は、LAN130と接続して外部機器と通信を行う。
プリンタ部105は、画像データを紙面上に印字する。プリンタ部105は、例えば電子写真方式のものやインクジェット方式のものであって良く、方式を問わない。スキャナ部106は、紙面上の画像を光学的に読み取り電気信号に変換してスキャン画像を生成する。ファクシミリ(FAX)107は、公衆回線110と接続して外部機器とファクシミリ通信を行う。メインCPU101は、後述するメインCPU BIOS401を始めとした各種プログラムを実行して、これらプリンタ部105、スキャナ部106、FAX107が提供する印刷機能、読み取り機能、FAX機能を制御する。
HDD(Hard Disk Drive)108は、不揮発性のストレージデバイスであって、OS(Operating Systemなどの)メインCPU101で実行されるプログラムを格納する。またこのHDD108は、プリントジョブやスキャンジョブ等のスプール領域としても利用される。また、HDD108は、スキャン画像を保管し再利用するための領域としても利用される。
バス109は信号バスであって、各モジュールを相互に接続して通信を行う。公衆回線110は、FAX107と外部機器を相互接続する。画像処理部111はASICであって、ネットワークI/F104で受信したプリントジョブをプリンタ部105で印刷するのに適した画像への変換処理、スキャナ部106で読み取ったスキャン画像のノイズ除去や色空間変換、回転、圧縮等の処理を実行する。また、画像処理部111は、HDD108に保管されたスキャン画像の画像処理を実行する。
FLASH ROM(FLASH Read Only Memory)112は、不揮発性メモリであって、メインCPU101で実行されるブートコードであるBIOS(Basic Input Output System)を含むプログラムを格納する。またFLASH ROM112は、MFP1のデフォルト設定値を記憶する。
操作部I/F113は、操作部103と信号バス109を相互接続する。
SPIバス114は、メインCPU101、FLASH ROM112、サブCPU115を相互接続する。本実施形態においてメインCPU101およびサブCPU115はそれぞれ、FLASH ROM112のマスターデバイスとして振る舞う。
サブCPU115は第2の制御部であって、MFP1の起動時に、FLASH ROM112からメインCPU101のブートコード(BIOS)を読み出して改竄がされていないか検証を行う。すなわちBIOSの正当性が検証される。改竄がされていない(BIOSが正当なものである)ことが分かった場合にサブCPU115は、メインCPU101のリセット状態を解除する。
データの改竄の検知方法の一例として、本実施形態は次の方法を採用する。例えば検証対象のデータ、そのデータのデジタル署名(オリジナルデータのハッシュ値を秘密鍵で暗号化したもの)、そのデジタル署名の公開鍵(秘密鍵と対の公開鍵)を1つまたは複数のメモリに記憶しておくとする。次に、検証対象のデータからハッシュ値を計算し、かつ、デジタル署名を公開鍵で復号化してオリジナルデータのハッシュ値を得る。そしてサブCPU115は、2つのハッシュ値を比較して、2つのハッシュ値が一致すれば検証対象のデータは正当なものであって改竄はないと判定し、相違すればデータは正当なものではなく改竄があると判定する。このような公開鍵暗号の方法としてはRSA2048、ECDSAなどである。しかしながら、改竄の検知方法はこの方法に限られない。ここで検証対象のデータ(例えばBIOS401)とそのデジタル署名(例えばBIOS署名402)とそのデジタル署名を復号するための公開鍵(例えばBIOS署名402用の公開鍵)を同じメモリ(例えばFLASH ROM112)に記憶してもよい。また、検証対象のデータ(例えばFW404)とそのデジタル署名(例えばFW署名405)を同じメモリ(例えばFLASH ROM112)に記憶し、そのデジタル署名を復号するための公開鍵を別のメモリ(例えばOTP304)に記憶してもよい。
信号116はLED(Light Emitting Diodo)121を点灯または消灯する制御信号であって、サブCPU115のGPIOポートから出力されてLED121に接続される。サブCPU115は、ソフトウェア制御でGPIO303からHigh(Hi)レベルあるいはLow(Lo)レベルの信号116を出力することで、LED121を任意のタイミングで点灯、消灯することができる。
信号117はリセット信号であって、サブCPU115の別のGPIOポート312から出力されてメインCPU101のリセット端子に接続される。このリセット信号117によってメインCPU101のリセット状態が解除される。GPIO312によって、このリセット信号117が“Lo”レベルから“Hi”レベルにドライブされると、メインCPU101のリセットが解除される。
電源制御部118は、集積回路であって、MFP1内の各モジュールの電力供給を制御する。電源線119は、電源制御部118から各モジュールに電力を供給する。電源供給線120は、商業用AC電源が供給される。LED121は、ユーザーやサービスマン等の人物に現在の装置の状態を識別させる手段であって、サブCPU115から出力されるLED信号116によってドライブされる発光素子である。すなわち、LED121は点灯状態(オン状態に相当)と消灯状態(オフ状態に相当)という2つの電力状態(第1の電力状態と第2の電力状態)を有し、点灯状態のLED121と消灯状態のLED121とは人が目視で区別して識別可能である。
リセット回路122は、システムの電源がONされると、まずサブCPU115およびメインCPU101を含むモジュールにリセットがかけられる。その後、リセット回路122は、電源が規定電圧に達してから所定の遅延時間後にサブCPU115のリセット信号123を“Lo”レベルから“Hi”レベルに遷移する。信号123はサブCPUリセット信号であって、リセット回路122から出力されてサブCPU115のリセット端子に接続される。サブCPUリセット信号123が“Hi”レベルになると、サブCPU115はリセットが解除されて後述の図5のフローチャートで示される処理を行う。
図2はメインCPU101の構成を示す図であって、同図において、CPUコア201は、CPUの基本機能を担っている。SPI Master202は、SPIのマスターデバイスとして、外部のSPIデバイス(FLASH ROM112)と相互に接続してデータの読み書きを行う。SPIバス206(114)は、SPI Master202と外部のSPIデバイスと電気的に接続する。メインCPU101がFLASH ROM112からデータを読み出すときに、SPI Master202が用いられる。信号バス209は、メインCPU101内の各モジュールを接続する。リセット信号117が“Lo”レベルの場合、メインCPU101(CPUコア201)はリセット状態となる。リセット信号117が“Hi”レベルの場合、メインCPU101(CPUコア201)はリセット解除状態となる。リセット信号117が“Lo”レベル(リセット状態)から“Hi”レベル(リセット解除状態)に遷移すると、CPUコア201は先ず、FLASH ROM112内に記憶されているメインCPUのBIOS404をDRAM102にロードして実行する。
図3はサブCPU115の構成を示す図であって、同図において、CPUコア301は、CPUの基本機能を担っている。SPI Master302は、SPIのマスターデバイスとして、外部のSPIデバイス(FLASH ROM112)とSPIバス306(114)を介して接続してデータの読み書きを行う。CPUコア301がFLASH ROM112からデータを読み出すときに、SPI Master302が用いられる。GPIO(General-purpose input/output)303は、外部のデバイス(LED121)にLED信号116を出力する。またGPIO312は、メインCPU101のリセット解除を制御のためのリセット信号117を、メインCPU101に出力する。
OTP(One Time Programmable)メモリ304は、製造時にサブCPU115のファームウェア(FW)のデジタル署名を復号するための公開鍵が書き込まれる。またOTPメモリ304は、Tag(サブCPU115のファームウェアの格納アドレスを示す情報)が記憶されているFLASH ROM112上のアドレスが書き込まれる。この領域に書き込まれたデータは一度書き込まれると二度と書換えることはできず、セキュアである。
SRAM305は、サブCPU115内のワークメモリとして使用される。暗号処理部308は、ハードウェア回路であって、公開鍵を用いてデジタル署名(例えばサブCPU115のファームウェアやメインCPU101のBIOSのデジタル署名)を復号する。信号バス309は、サブCPU115内の各モジュールと接続する。Boot ROM310は、マスクROMであって、サブCPU115のブートコードを記憶する。このBoot ROM310の内容は書き換えることができないため、セキュアである。
サブCPU115に入力されるリセット信号が“Lo”レベルの場合、サブCPU115(CPUコア301)はリセット状態となる。このリセット信号が“Hi”レベルの場合、サブCPU115(CPUコア301)はリセット解除状態となる。このリセット信号がリセット状態からリセット解除状態に遷移すると、CPUコア301は先ず、Boot ROM310から自身のブートコードを読み出し実行する。
Crypto RAM311は、暗号処理部308で利用する機密性の高いデータ等を記憶する揮発性メモリである。
図4はFLASH ROM112のメモリマップを示す図である。FLASH ROM112は、メインCPU BIOS401、BIOS401のデジタル署名であるBIOS署名402、サブCPU FW(ファームウェア)404、サブCPU FW404のデジタル署名であるFW署名405を記憶する。メインCPU BIOS401は、メインCPU101のブートコードである。BIOS署名402は、BIOS401のハッシュ値に対するRSA署名値である。サブCPU FW404は、サブCPU115のブートコードと、BIOS署名402を復号するための公開鍵と、を含む。FW署名405は、サブCPU FW404のECDSA署名値である。なおFW署名405は、サブCPU FW404の先頭の特定部分のECDSA署名値であってもよい。
またFLASH ROM112は、サブCPU FW404が記憶されているメモリ領域の先頭アドレスを示すTag403を記憶する。このTag403自体のアドレスはOTP304に記憶されている。
またFLASH ROM112は、ROM-IDと呼ばれる情報を記憶する。このROM-ID406は、メインCPU BIOS401の先頭アドレス、サイズおよびBIOS署名402のアドレスが記憶されている。
なお、本実施形態ではメインCPU BIOS401、BIOS署名402、Tag403、サブCPU FW404、FW署名405は一組のセットのみを記憶した場合の例を示している。しかしながら、これらを複数のセットで記憶しておき、必要に応じて切り替えて使用することも可能である。
次に、本実施形態におけるサブCPU115の処理手順を図5のフローチャートを用いて説明する。このフローチャートは、リセットが解除されたサブCPU115によって開始される。
以降の処理S501~S504は、サブCPU115のファームウェア(FW)404を検証する処理(FW404の改竄検知処理)に対応する。
S501において、サブCPU115(CPUコア301)は、Boot ROM310内のサブCPU115のブートコードを実行する。そしてこのブートコードにしたがって、サブCPU115は、SPIバス114を介してFLASH ROM112からサブCPU FW404をSRAM305に読み出す。
S502において、サブCPU115(CPUコア301)は、FLASH ROM112に記憶されたFW署名405を、暗号処理部308を用いて、OTP304内の公開鍵で復号化して、正解となるハッシュ値を得る。
S503において、サブCPU115(CPUコア301)は、暗号処理部308を用いて、SRAM305に読み込んだサブCPU FW404のハッシュ値を計算する。
S504において、サブCPU115(CPUコア301)は、S502で得られたハッシュ値とS503で計算されたハッシュ値を比較し、双方のハッシュ値が等しいかどうかを判定する。双方のハッシュ値が等しくない(一致しない)場合(S504でNO)、処理を終了する。ここで処理が終了した場合には、本実施形態においてLED121は1度も点灯しない。そのため、MFP1の電源を入れてからのLED121の状態を監視している人(ユーザーあるいはサービスマン)は、サブCPU115の故障あるいはサブCPU115のFW404の異常(改ざん等)を疑うことができる。
双方のハッシュ値が等しい(一致する)場合(S504でYES)、S505において、サブCPU115(CPUコア301)は、サブCPU FW404をFLASH ROM112からSRAM305に読み出す。そしてS506において、サブCPU115(CPUコア301)は、SRAM305に読み込まれたサブCPU FW404を実行し、このFW404に従ってGPIO303を制御してLED信号116をドライブすることでLED121を点灯させる。LED121の点灯状態は、後述のメインCPU BIOS401の正当性の検証中、GPIO303からのLED信号116によって維持される。なお、S505の処理を省略し、S501においてSRAM305に読み込まれたFW404を実行するようにしてもよい。
このようにサブCPU115のFW404を実行してLED121を点灯させるので、LED121が点灯すれば、サブCPU115のFW404やサブCPU115自体に異常がないことを知ることができる。一方、LED121が点灯しない場合、サブCPU115のFW404の異常(改ざん)や、サブCPU115自体の故障の可能性があることを知ることができる。
S507において、サブCPU115(CPUコア301)は、ROM-ID406をFLASH ROM112からCrypto RAM311に読み出す。
S508において、サブCPU115(CPUコア301)は、Crypto RAM311に読み込まれたROM-ID406から、メインCPU BIOS401のアドレスとBIOS署名402のアドレスを得る。
以降の処理S509~S513の処理はメインCPUのBIOS401を検証する処理(BIOS401の改竄検知処理)に対応する。
S509において、サブCPU115(CPUコア301)は、BIOS署名402をSRAM305に読み出す。
S510において、サブCPU115(CPUコア301)は、暗号処理部308によってBIOS署名402をサブCPU FW404に含まれている公開鍵で復号化してハッシュ値を得る。
S511において、サブCPU115(CPUコア301)は、メインCPU BIOS401をFLASH ROM112からSRAM305に読み出す。
S512において、サブCPU115(CPUコア301)は、暗号処理部308を用いて、SRAM305に読み込まれたメインCPU BIOS401から、メインCPU BIOS401のハッシュ値を計算する。
S513において、サブCPU115(CPUコア301)は、S510で得られたハッシュ値とS512で計算されたハッシュ値を比較して双方のハッシュ値が等しいか否かを判定する。双方のハッシュ値が等しい(一致している)場合(S513でYES)、S514において、サブCPU115(CPUコア301)は、GPIO303を介して信号116を制御してLED121を消灯する。LED121は、消灯状態を、サブCPU115がGPIO303を介してLED121を制御可能な間、継続することが望ましいが、少なくともサブCPU115がメインCPU101のリセットを解除するまで継続する。言い換えると、サブCPU115が、メインCPU101を、FLASH ROM112に記憶されたBIOS401を読み込んで実行可能な状態にするまで、LED121は消灯状態を継続する。そして、S515において、サブCPU115(CPUコア301)は、GPIO312を介してリセット信号117を“Hi”にしてメインCPU101のリセットを解除する。この場合、サブCPU115(CPUコア301)は、メインCPU101のリセット解除後、LED121が再び点灯することがなくLED121を消灯し続けるようにしている。
その後、S516において、サブCPU115(CPUコア301)は、電力消費のもっとも少ないスリープ状態に入り、その状態を維持する。なお、サブCPU115(CPUコア301)は、スリープ状態ではGPIO303からの信号116の出力状態を維持する。すなわちLED121はメインCPU101のリセットが解除されている状態(S516以降の状態)において、消灯したままとなる。このようにLED121を点灯状態から消灯状態に切り替えることで、ずっと点灯状態を維持する場合よりも消費電力を下げることができる。すなわち、LED121における消灯状態は、点灯状態よりも単位時間当たりの消費電力量が小さい電力状態である。
また、サブCPU115(CPUコア301)は、スリープ状態ではGPIO312からの信号117の出力状態を“Hi”レベルに維持する。すなわちメインCPU101のリセットが解除された状態のままとなる。
また、本実施形態のサブCPU115は、一度スリープ状態に入った後は通常状態に戻る必要はないので割込み信号を受信する必要はない。ただし、サブCPU115を改竄検知以外の用途にも利用するのであれば、割り込み信号の受信を許可して通常状態へ復帰させるように構成すればよい。
一方、双方のハッシュ値が等しくない(一致しない)場合(S513でNO)は、S517において、サブCPU115(CPUコア301)は、GPIO303を介して信号116を制御してLED121を点滅させる。点滅パターンは例えば点灯と消灯を1秒ごとに繰り返すパターンなどでよい。LED121は、この点滅状態を、サブCPU115がGPIO303を介してLED121を制御可能な間、継続することが望ましいこのようにLED121の点滅によって、改竄等によるメインCPU101のBIOS401の異常を知ることができる。またLED121を点灯し続けるよりも点滅する方が消費電力を抑えることができる。すなわち、LED121における点滅状態は、点灯状態よりも単位時間当たりの消費電力量が小さい電力状態である。なお点滅状態は消灯状態よりも単位時間当たりの消費電力量が大きい状態である。
以上のように、サブCPU115は、FLASH ROM112から読み出したサブCPU FW404のハッシュ値を計算して正解のハッシュ値と比較することで、FLASH ROM112に記憶されているサブCPU FW404の正当性を検証する。この検証によってサブCPU FW404が正当なものであると判定した場合に、サブCPU115はFLASH ROM112から読み出したサブCPU FW404を実行し、メインCPU BIOS401の正当性を検証する。すなわちサブCPU FW404は、メインCPU BIOS401の正当性を検証する検証プログラムでもある。このサブCPU FW404は、LED121を点灯状態にしてからメインCPU BIOS401の正当性の検証を開始するプログラムコードを含む。このようにLED121を一旦点灯状態にすることで、サブCPU115がサブCPU FW404を正しく実行できていることを確認できる。
サブCPU115は、この検証プログラムにしたがって、FLASH ROM112からメインCPU BIOS401を読み出して、サブCPU FW404の検証と同様に、ハッシュ値を計算してそれを正解のハッシュ値と比較する。これによってFLASH ROM112に記憶されているメインCPU BIOS401の正当性が検証される。このメインCPU BIOS401の検証が終了した後に、サブCPU115は、点灯状態のLED121を消灯状態にする。このようにLED121を消灯状態にすることで、LED121を点灯状態に維持し続けるよりも消費電力を下げることができる。
より詳細には、メインCPU BIOS401が正当なものであると判定されれば、サブCPU115は、自身がLED121の点灯状態および消灯状態を制御可能な間、LED121を消灯状態に維持する。また、メインCPU BIOS402が正当なものでないと判定されれば、サブCPU115は、自身がLED121の点灯状態および消灯状態を制御可能な間、LED121を消灯状態と点灯状態とを交互に繰り返すように制御する。このようにLED121を点灯状態に維持し続けずに、メインCPU BIOS402が正当なものであるのか否かを区別して通知することができる。
次に、本実施形態におけるメインCPU101の処理手順を図6のフローチャートを用いて説明する。
S601において、メインCPU101(CPUコア201)は、リセットが解除されると直ちにFLASH ROM112に記憶されたメインCPU BIOS401をDRAM102に読み出す。
次にS602において、メインCPU101(CPUコア201)は、BIOS401を実行し、BIOS401にしたがってメインCPU101内の入出力の初期化を行う。
次にS603において、メインCPU101(CPUコア201)は、HDD108からOS(Operating System)をDRAM102に読み出す。
そしてS604において、メインCPU101(CPUコア201)は、DRAM102に読み込まれたOSを起動する。
続いてS605において、メインCPU101(CPUコア201)は、プリンタ部105、スキャナ部106FAX107、画像処理部111、ネットワークI/F104操作部103を初期化してMFP1として機能可能な状態にする。
次に、本実施形態におけるLED121の点灯タイミングを図7のタイミングチャートを用いて説明する。同図において、タイミングチャート701は、サブCPU115のFW404やサブCPU115自体に異常がなく、かつ、メインCPU101のBIOS401にも異常がない場合(正常時)のタイミングチャートである。このタイミングチャート701において、時間T0(リセット回路122がサブCPU115のリセット解除時)でLED121は消灯(OFF)している。そして時間T1(BIOS401の改竄検知処理の開始時:図5のS506)でFW404は、LED121を点灯(ON)し、時間T2(BIOS401の改竄検知処理の終了時:図5のS514)でLED121を消灯(OFF)する。
一方タイミングチャート702は、サブCPU115のFW404あるいはサブCPU115自体が異常である時のタイミングチャートである。このタイミングチャート702においても、時間T0でLED121は消灯(OFF)している。しかしサブCPU115のFW404が実行されないのでLED121は点灯されず、以降、消灯(OFF)したままとなる。
またタイミングチャート703は、BIOS401が異常である時のタイミングチャートである。このタイミングチャート703においても、時間T0でLED121は消灯(OFF)している。このタイミングチャート703では、FW404が実行されるので時間T1でLED121は点灯(ON)する。そして、FW404によってBIOS401の異常が検知されるので、時間T2以降はLED121は点滅(ON/OFFの繰り返し)する。
以上説明した様に、本実施形態のMFP1は、サブCPU115によるFW404の実行によるメインCPU101のBIOS401の正当性の検証中にLED121を点灯し続ける。そしてその検証の結果、BIOS401に改竄等による異常が検知されなければLED121を消灯する。このようにBIOS401が正常であればLED121を常時点灯させないので、MFP1の稼働中の消費電力を抑えることができる。一方、MFP1は、BIOS401の改竄検知処理の結果、BIOS401に改竄等による異常が検知されればLED121を点滅させる。このようにLED121を点滅させるので、BIOS401(メインCPU101のブートコード)の改竄等の異常を通知することができる。またLED121は点灯し続けるより点滅する方が消費電力を抑えることができる。
なお、本実施形態ではLED121の点灯、消灯によって改竄を検知したことをユーザに対して通知しているが、LED以外にも例えばブザー音、音声、無線信号などによる通知手段でも目的は達成可能であることは言うまでもない。このとき、例えばブザー音であれば、BIOS401の改竄検知処理中はブザー音を鳴らし、改竄等の異常が検知されなければブザー音を停止する一方で改竄等の異常が検知されればブザー音を断続的に鳴らすよう構成してよい。
(第2実施形態)
第1実施形態においては、FW404がLED121を点灯したが、本実施形態のMFP1では、リセット回路122がサブCPU115のリセットを解除したときにFW404を用いずにLED121が自動的に点灯するよう構成される。例えば、LED121と電源との間にスイッチ回路を接続し、そのスイッチ回路のスイッチングを、サブCPU115からの信号116とリセット回路122が出力するサブCPU115のリセット信号とのいずれでも制御できるような回路構成であれば良い。このような回路構成であれば、サブCPU115のリセットが解除されるときにLED121はFW404を介さずに自動的に点灯し、サブCPU115によるBIOS401の改竄検知処理の結果に応じてFW404がLED121を、消灯あるいは点滅する。すなわち、図7のタイミングチャートと比較して、本実施形態のMFP1では、時間T0~T1の間もLED121は点灯状態である。
なお本実施形態では、時間T0でFW404がLED121を点灯する必要がないので図5のS506におけるLED121を点灯する処理が省略される。
(他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (12)

  1. 情報処理装置であって、
    第1プログラムと第2プログラムを格納するように構成された記憶手段と、
    前記第1プログラムを実行するように構成された第1制御手段と、
    前記第2プログラムを実行し、前記第1プログラムが有効であるか否かを判断する検証処理を実行する第2制御手段と、
    通知手段と、を有し、
    前記第2制御手段は、
    前記第2プログラムが有効であるか否かを検証し、前記第2プログラムが有効でない場合に前記通知手段に通知をさせず、前記第2プログラムが有効である場合に前記第2プログラムを実行し、
    前記第2プログラムの実行に基づいて前記通知手段に通知を出力させ、
    前記通知手段が前記通知を出力した後に、前記第1プログラムが有効であるか否かを検証し、
    前記第1プログラムが有効である場合に前記通知手段に前記通知を消去させ、前記第1プログラムが無効である場合に前記通知手段の出力を前記通知と異なる通知に変更させることを特徴とする情報処理装置。
  2. 前記第2制御手段は、前記第2プログラムに基づく値と所定値とを比較し、前記第2制御手段は、前記第2プログラムに基づく値と前記所定値との比較結果に基づいて前記第2プログラムを実行することを特徴とする請求項に記載の情報処理装置。
  3. 前記第2プログラムに基づく値は、前記第2プログラムのハッシュ値であることを特徴とする請求項に記載の情報処理装置。
  4. 前記第2制御手段は、前記記憶手段に記憶したシグネチャとキーを用いて前記所定値を出力することを特徴とする請求項またはに記載の情報処理装置。
  5. 前記通知は、前記第2制御手段が正常であることを示す通知又は前記第2プログラムが有効であることを示す通知であることを特徴とする請求項乃至のいずれか1項に記載の情報処理装置。
  6. 前記通知手段はLEDであり、前記通知は第1点灯状態であり、前記異なる通知は前記第1点灯状態と異なる第2点灯状態であり、前記通知の消去は、非点灯状態であることを特徴とする請求項に記載の情報処理装置。
  7. 前記第2点灯状態は、点滅状態であることを特徴とする請求項に記載の情報処理装置。
  8. 前記通知手段はLEDであり、前記通知は第1点灯状態であることを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  9. 前記第1点灯状態は、点灯状態であることを特徴とする請求項乃至のいずれか1項に記載の情報処理装置。
  10. 前記第2制御手段は、前記第1プログラムが有効である場合には、前記第1制御手段のリセット状態を解除し、前記リセット状態から解除された前記第1制御手段は、前記第1プログラムを実行することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  11. 前記情報処理装置は、印刷機能を有する装置であることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
  12. 前記情報処理装置は、読み出し機能を有する装置であることを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
JP2018225480A 2018-11-30 2018-11-30 情報処理装置、およびその制御方法 Active JP7289641B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018225480A JP7289641B2 (ja) 2018-11-30 2018-11-30 情報処理装置、およびその制御方法
US16/693,018 US10931846B2 (en) 2018-11-30 2019-11-22 Information processing apparatus and method of notifying verification result of program
US17/164,031 US11388304B2 (en) 2018-11-30 2021-02-01 Information processing apparatus and method of notifying verification result of program
US17/847,973 US11706366B2 (en) 2018-11-30 2022-06-23 Information processing apparatus and method of notifying verification result of program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018225480A JP7289641B2 (ja) 2018-11-30 2018-11-30 情報処理装置、およびその制御方法

Publications (3)

Publication Number Publication Date
JP2020087321A JP2020087321A (ja) 2020-06-04
JP2020087321A5 JP2020087321A5 (ja) 2021-12-23
JP7289641B2 true JP7289641B2 (ja) 2023-06-12

Family

ID=70850821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018225480A Active JP7289641B2 (ja) 2018-11-30 2018-11-30 情報処理装置、およびその制御方法

Country Status (2)

Country Link
US (3) US10931846B2 (ja)
JP (1) JP7289641B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009032191A (ja) 2007-07-30 2009-02-12 Panasonic Corp 情報処理装置
US20100287363A1 (en) 2006-02-24 2010-11-11 Oniteo Ab Method and system for secure software provisioning
JP2013114620A (ja) 2011-11-30 2013-06-10 Ricoh Co Ltd 情報処理装置、情報処理装置の起動制御方法
JP2014021953A (ja) 2012-07-24 2014-02-03 Ricoh Co Ltd 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4279902B2 (ja) * 1997-01-31 2009-06-17 ソニー株式会社 ディジタルテレビジョン放送受信装置およびディジタルテレビジョン放送受信用プログラムの取得方法
JP2007206885A (ja) * 2006-01-31 2007-08-16 Toshiba Corp コンピュータシステム及びシステム起動方法
EA201070673A1 (ru) 2008-01-30 2011-02-28 Панасоник Корпорэйшн Безопасная начальная загрузка с помощью способа необязательных компонентов
JP5222081B2 (ja) * 2008-09-24 2013-06-26 キヤノン株式会社 通信装置、通信装置の制御方法、コンピュータプログラム、記憶媒体
JP4811485B2 (ja) * 2009-03-25 2011-11-09 ブラザー工業株式会社 ネットワーク装置
JP5578811B2 (ja) * 2009-06-30 2014-08-27 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
EP2702480A4 (en) * 2011-04-29 2015-01-07 Hewlett Packard Development Co INTEGRATED CONTROLLER FOR CRTM VERIFICATION
TWI564747B (zh) * 2012-10-19 2017-01-01 威盛電子股份有限公司 電子裝置與安全開機方法
TWI643130B (zh) * 2013-09-12 2018-12-01 系微股份有限公司 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法
JP6494373B2 (ja) * 2015-03-31 2019-04-03 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
JP6675227B2 (ja) * 2016-02-26 2020-04-01 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10395039B2 (en) * 2016-09-12 2019-08-27 Dell Products, L.P. Customer-owned trust of device firmware
JP6736456B2 (ja) * 2016-11-17 2020-08-05 キオクシア株式会社 情報処理装置およびプログラム
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US11263326B2 (en) * 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10331392B1 (en) * 2017-12-08 2019-06-25 Kyocera Document Solutions Inc. Image forming operation monitoring systems and methods
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
JP7084826B2 (ja) * 2018-08-28 2022-06-15 キヤノン株式会社 情報処理装置、その制御方法、およびそのプログラム
JP7171339B2 (ja) * 2018-09-26 2022-11-15 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP7330681B2 (ja) * 2018-10-04 2023-08-22 キヤノン株式会社 情報処理装置、その制御方法、プログラム、及び画像形成装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287363A1 (en) 2006-02-24 2010-11-11 Oniteo Ab Method and system for secure software provisioning
JP2009032191A (ja) 2007-07-30 2009-02-12 Panasonic Corp 情報処理装置
JP2013114620A (ja) 2011-11-30 2013-06-10 Ricoh Co Ltd 情報処理装置、情報処理装置の起動制御方法
JP2014021953A (ja) 2012-07-24 2014-02-03 Ricoh Co Ltd 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム

Also Published As

Publication number Publication date
US11388304B2 (en) 2022-07-12
US20210160394A1 (en) 2021-05-27
US20220321724A1 (en) 2022-10-06
US11706366B2 (en) 2023-07-18
US10931846B2 (en) 2021-02-23
US20200177757A1 (en) 2020-06-04
JP2020087321A (ja) 2020-06-04

Similar Documents

Publication Publication Date Title
JP2020177539A (ja) 情報処理装置、及びその制御方法
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
JP7170482B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2005033277A (ja) 画像形成装置
JP2021117928A (ja) 情報処理装置とその起動方法
JP7289641B2 (ja) 情報処理装置、およびその制御方法
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP2020091698A (ja) 情報処理装置及びその制御方法
JP7263101B2 (ja) 情報処理装置、データ検証方法
JP2016181836A (ja) 情報処理装置、暗号装置、情報処理装置の制御方法、およびプログラム
JP7210238B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2021089607A (ja) 情報処理装置
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
JP7465107B2 (ja) 情報処理装置及び方法
KR20200030448A (ko) 정보 처리장치, 정보 처리장치의 제어방법, 및 기억매체
JP2020187649A (ja) 情報処理装置、制御方法、およびプログラム
JP2014203441A (ja) 電子機器、画像形成装置、制御装置及びプログラム
JP2023124089A (ja) 情報処理装置
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2021018594A (ja) 情報処理装置、その制御方法、及びプログラム
JP2007166387A (ja) 印刷データファイル生成装置及び印刷装置
JP2021111916A (ja) 情報処理装置及びプログラム復旧方法
JP2020102129A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2005235093A (ja) ライセンスコード作成方法、電気機器およびプログラム
JP2020155029A (ja) 情報処理装置とその制御方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221014

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230303

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230303

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230313

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230314

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: 20230502

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230531

R151 Written notification of patent or utility model registration

Ref document number: 7289641

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151