JP2020177539A - 情報処理装置、及びその制御方法 - Google Patents

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

Info

Publication number
JP2020177539A
JP2020177539A JP2019080470A JP2019080470A JP2020177539A JP 2020177539 A JP2020177539 A JP 2020177539A JP 2019080470 A JP2019080470 A JP 2019080470A JP 2019080470 A JP2019080470 A JP 2019080470A JP 2020177539 A JP2020177539 A JP 2020177539A
Authority
JP
Japan
Prior art keywords
program code
control means
information processing
verification
storage means
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
JP2019080470A
Other languages
English (en)
Inventor
恵司 稲葉
Keiji Inaba
恵司 稲葉
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 JP2019080470A priority Critical patent/JP2020177539A/ja
Priority to US16/845,376 priority patent/US11392701B2/en
Publication of JP2020177539A publication Critical patent/JP2020177539A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25205Encrypt communication
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

【課題】装置のメインCPUとは異なる制御部で実行されるプログラムコードの安全性を検証し、装置のセキュアな起動を実現する仕組みを提供する。【解決手段】情報処理装置(MFP)1は、プログラムコードにしたがって処理を実行するメインCPU101と、別の所定のプログラムコードにしたがって、メインCPU101との通信及び所定の負荷との通信を制御するHDD制御部124と、、メインCPU101及びHDD制御部124が実行するそれぞれのプログラムコードを記憶するFLASH ROM112と、メインCPU101及びHDD制御部124においてそれぞれのプログラムコードが実行される前に、FLASH ROM112に記憶されたそれぞれのプログラムコードの検証を行うサブCPU115と、を備える。【選択図】図1

Description

本発明は、情報処理装置、及びその制御方法に関する。
従来の画像処理装置(以下では、MFPと称する。)等の情報処理装置におけるブートコードの改ざんの検知方法には、メインCPUが実行するブートコードをメインCPUが起動する前にサブCPUが読み出して、改ざんされていないかを検証する方法がある。また、サブCPUが読み出したブートコードの改ざんを検知した場合、マスタのブートコードを改ざんが検知されたブートコードにコピーして復旧するか、或いは、サブCPUの動作を停止するエラー制御が行われている。例えば、特許文献1には、CPUが指定したソフトウェアを検証し、起動時にプロセッサで用いられるソフトウェアとして設定し、改ざんが検知されたソフトウェアについては安全に更新する技術が提案されている。
特開2017−33149号公報
しかしながら、上記従来技術には以下に記載する課題がある。例えば、メインCPUとは別に、他の制御部(例えば、装置の機能を制御する機能制御部)を備えている場合、当該機能制御部は、メインCPUとは異なる他のCPUで動作することが一般的である。この場合において、上記他のCPUの起動コードや実行コードなどのプログラムコードが改ざんされると、当該機能制御の動作を行うことができず、装置としての信頼性が低下してしまう。
本発明は、上述の課題の少なくとも一つに鑑みて成されたものであり、装置のメインCPUとは異なる制御部で実行されるプログラムコードの安全性も好適に検証し、装置のセキュアな起動を実現する仕組みを提供する。
本発明は、例えば、情報処理装置であって、プログラムコードにしたがって処理を実行する第1の制御手段と、前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、前記情報処理装置の所定の負荷との通信を制御する第2の制御手段と、前記第1の制御手段及び前記第2の制御手段が実行するそれぞれのプログラムコードを記憶する記憶手段と、前記第1の制御手段及び前記第2の制御手段において前記記憶手段に記憶されたそれぞれのプログラムコードが実行される前に、それぞれのプログラムコードの検証を行う検証手段とを備えることを特徴とする。
また、本発明は、例えば、情報処理装置であって、プログラムコードにしたがって処理を実行する第1の制御手段と、前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、前記情報処理装置の所定の負荷との通信を制御する第2の制御手段と、前記第1の制御手段が実行するプログラムコードを記憶する第1の記憶手段と、前記第2の制御手段が実行するプログラムコードを記憶する第2の記憶手段と、前記第1の制御手段及び前記第2の制御手段において前記第1の記憶手段及び前記第2の記憶手段に記憶されたそれぞれのプログラムコードが実行される前に、前記第1の記憶手段及び前記第2の記憶手段に記憶されたそれぞれのプログラムコードの検証を行う検証手段とを備えることを特徴とする。
また、本発明は、例えば、情報処理装置であって、プログラムコードにしたがって処理を実行する第1の制御手段と、前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、前記情報処理装置の所定の負荷との通信を制御する第2の制御手段と、前記第1の制御手段が実行するプログラムコードを記憶する第1の記憶手段と、前記第2の制御手段が実行するプログラムコードを記憶する第2の記憶手段と、前記第1の制御手段において前記第1の記憶手段に記憶されたプログラムコードが実行される前に、前記第1の記憶手段に記憶されたプログラムコードの検証を行う第1の検証手段と、前記第2の制御手段において前記第2の記憶手段に記憶されたプログラムコードが実行される前に、前記第2の記憶手段に記憶されたプログラムコードの検証を行う第2の検証手段とを備えることを特徴とする。
本発明によれば、装置のメインCPUとは異なる制御部で実行されるプログラムコードの安全性も好適に検証し、装置のセキュアな起動を実現することができる。
一実施形態に係るMFPの構成を示す図。 一実施形態に係るメインCPUの構成を示す図。 一実施形態に係るサブCPUの構成を示す図。 一実施形態に係るHDD制御部の構成を示す図。 一実施形態に係るFLASH ROMのメモリマップを示す図。 一実施形態に係るサブCPUの処理を示すフローチャート。 一実施形態に係るHDD制御部のCPUの処理を示すフローチャート。 一実施形態に係るMFPの他の実施例の構成を示す図。 一実施形態に係るサブCPU2のFLASH ROMのメモリマップを示す図。 一実施形態に係るサブCPU2の処理を示すフローチャート。 一実施形態に係るメインCPUの処理を示すフローチャート。 一実施形態に係るリセット信号のタイミングを示す図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
なお、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら適用範囲は複合機に限定されず、情報処理装置であればよい。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
<第1の実施形態>
<情報処理装置の構成>
以下では、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係るMFP1の構成を説明する。MFP1は、主に、メインCPU101、DRAM102、操作部103、ネットワークI/F104、プリンタ部105、スキャナ部106、FAX107、画像処理部111、FLASH ROM112、操作部I/F113、及びサブCPU115を備える。また、MFP1は、電源制御部118、リセット回路122、HDD制御部124、及びHDD125を備える。
メインCPU(Central Processing Unit)101は、第1の制御手段であり、MFP1全体の制御を司る。DRAM(Dynamic Random Access Memory)102は、メインCPU101で実行されるプログラムコードを格納すると共に一時的なデータのワークエリアとして機能する。
操作部103は、操作部I/F113を介してメインCPU101にユーザによる操作を通知する。ネットワークI/F104は、LAN130と接続して外部機器との通信を制御する。プリンタ部105は、画像データを紙面上に印字する画像形成部である。スキャナ部106は、紙面上の画像を光学的に読み取り電気信号に変換してスキャン画像を生成する読取部である。FAX107は、公衆回線110と接続して外部機器とファクシミリ通信を行う。
HDD(Hard Disk Drive)125は、不揮発性の記憶装置であり、HDD制御部124を介してメインCPU101で実行されるプログラムコードを格納すると共にプリントジョブやスキャンジョブ等のスプール領域としても利用される。HDD制御部124は、負荷(HDD)を制御する第2の制御手段である。このHDD制御部124は、メインCPU101と通信し、メインCPU101からの制御コマンドにしたがってHDD125へのデータの入出力を制御し、メインCPU101とHDD125との間のブリッジとして機能する。HDD制御部124のCPU(CPUコア401)で実行されるプログラムコード(HDDCPU BIOSFW507)は、FLASH ROM112に記憶され、メインCPU101とHDD125との間のブリッジとして機能するためのプログラムとなる。すなわち、HDD制御部124は、メインCPU101によって送信されたデータをHDD125に転送し、かつ、HDD125から読み出されたデータをHDD制御部124に転送する機能を有する。この機能によって、CPU101との通信及びHDD125との通信が制御される。この機能は、後述のCPUコア401がHDDCPU BIOSFW507を実行することで実装される。またこのHDDCPU BIOSFW507は、データを暗号化及び復号化するプログラムコードを含み、CPU401は、このプログラムコードにしたがって、CPU101とHDD125との間で送受信されるデータの暗号化及び復号化を行う。129はリセット信号であり、サブCPU115のGPIOポートから出力されてHDD制御部124のリセット処理用に接続される。従って、サブCPU115と、HDD制御部124との間はリセット信号を伝達するための信号線で接続されうる。なお、本実施形態では、負荷を制御する第2の制御手段として、メインCPUとHDDとのブリッジの役割を担うHDD制御部を例に説明するが、本発明を限定する意図はなく、他の負荷を制御する制御部であってもよい。例えば、プリンタやスキャナ等のエンジン制御部や、電源制御部、ネットワーク制御部等であってもよい。
109は信号バスであり、各モジュールを相互に接続して通信を行う。110は公衆回線であり、FAX107と外部機器を相互接続する。画像処理部111は、ネットワークI/F104で受信したプリントジョブをプリンタ部105で印刷するのに適した画像データへの変換処理や、スキャナ部106で読み取ったスキャン画像のノイズ除去、色空間変換、回転、圧縮等の処理を実行する。また、HDD125に保管されたスキャン画像に対する画像処理を実行する。
FLASH ROM(FLASH Read Only Memory)112は、第1の記憶手段であり、メインCPU101で実行されるブートコードを含むプログラムや、MFP1のデフォルト設定値を格納する。操作部I/F113は、操作部103と信号バス109を相互接続する。SPI(Serial Peripheral Interface)バス114は、メインCPU101、FLASH ROM112、及びサブCPU115を相互接続する。
サブCPU115は、検証手段であり、MFP1の起動時に、メインCPU101が起動する前にFLASH ROM112からブートコードを読み出して、当該プログラムの検証を行う。本実施形態に係るプログラムの検証は、所定のプログラムコードが意図した改ざん又は経年劣化によって変化しているかどうかを検証するものである。なお、以下では、説明を容易にするため、「改ざん」という用語を用いて説明するが、本実施形態に係る「改ざん」には上述した意図した改ざん加えて、経年劣化による変化をも含むものとする。検証方法としては、例えばブートコードのデジタル署名の公開鍵情報(ハッシュ値を公開鍵暗号化した値)を製造時にサブCPU115内の後述するOTP(One Time Program)304領域に記憶させておく。そして、サブCPU115は、読み出したブートコードをこの公開鍵情報で復号化して検証を行う。公開鍵暗号の方法としてはRSA2048、ECDSAなどである。なお、サブCPU115は、図1や図3に示すように、メインCPU101とは独立したマイコンであり、ブートROM310に自身のブートコードが記憶されたセキュアブート対応のマイコンとなる。また、内蔵される上記OTP304は書き換えられない領域であり、OTP304に記憶されたデータは改ざんすることができない。
117はリセット信号であり、サブCPU115のGPIOポートから出力されてメインCPU101のリセット端子に専用の信号線が接続される。電源制御部118は、MFP1内の各モジュールの電力供給を制御する。119は電源線であり、各モジュールに電力を供給する。120は電源供給線であり、商業用AC電源が供給される。リセット回路122は、システムの電源がONされると所定の遅延時間後にサブCPUリセット信号123を“Lo”から“Hi”レベルに遷移する。123はサブCPUリセット信号であり、リセット回路122から出力されてサブCPU115のリセット端子に接続される。サブCPUリセット信号123が“Hi”レベルになると、サブCPU115はリセットが解除されて起動を開始する。
<メインCPUの構成>
次に、図2を参照して、本実施形態に係るメインCPU101の構成を説明する。メインCPU101は、CPUコア201、及びSPIマスタ202を備える。
CPUコア201は、CPUの基本機能を担っている。SPIマスタ202は、外部のSPIデバイスと相互に接続してデータの読み書きを行う。206はSPIバスであり、SPIマスタ202と外部のSPIデバイスとを電気的に接続する。209は信号バスであり、メインCPU101内の各モジュールを接続する。サブCPU115から出力されるリセット信号117が“Lo”レベルの場合、メインCPU101はリセット状態となる。一方、リセット信号117が“Hi”レベルの場合、メインCPU101はリセット解除状態となる。リセット信号117がリセット状態からリセット解除状態に遷移すると、CPUコア201は先ず、FLASH ROM112内に記憶されているメインCPU BIOS501(図5)をDRAM102にロードして実行する。FLASH ROM112の詳細なメモリマップについては図5を用いて後述する。
<サブCPUの構成>
次に、図3を参照して、本実施形態に係るサブCPU115の構成を説明する。サブCPU115は、CPUコア301、SPIマスタ302、GPIO303、OTP304、SRAM305、暗号処理部308、ブートROM310、及びCrypto RAM311を備える。本実施形態によれば、セキュアブート対応のサブCPU115がメインCPU101やHDD制御部124などの負荷を制御する各制御部のブートコード(ブートプログラム)や実行コード(実行プログラム)の検証を行い、改ざんを検知する検知部として機能する。これらの検証は各制御部の起動前に行われ、これによりセキュアブートを実現する。
CPUコア301は、CPUの基本機能を担っている。SPIマスタ302は、外部のSPIデバイスと相互に接続してデータの読み書きを行う。GPIO(General−purpose input/output)303は、外部のデバイスと相互に接続してデータの送受信を行う。OTP(One Time Programmable)304はメモリ領域である。OTP304には、検証に使用される検証情報として、製造時にサブCPU FW(ファームウェア)のハッシュ値を公開鍵で暗号化した値と、サブCPU FWの先頭アドレスを示すTagのアドレスとが書き込まれる。この領域に書き込まれたデータは一度書き込まれると二度と書換えることはできない。
SRAM305は、サブCPU115内のワークメモリとして使用される。暗号処理部308は、公開鍵暗号化した値からサブCPU FWのハッシュ値を復号するほか、公開鍵暗号化したメインCPU BIOSのハッシュ値を復号する。309は信号バスであって、サブCPU内の各モジュールを接続する。ブートROM(Read Only Memory)310は、サブCPU115のブートコードを記憶する。リセット信号117が“Lo”レベルの場合、メインCPU101はリセット状態となる。リセット信号117が“Hi”レベルの場合、メインCPU101はリセット解除状態となる。リセット信号117がリセット状態からリセット解除状態に遷移すると、CPUコア301は先ず、ブートROM310から自身のブートコードを読み出し実行する。Crypto RAM311は、暗号処理部308で利用する機密性の高いデータ等を記憶する。
<HDD制御部の構成>
次に、図4を参照して、本実施形態に係るHDD制御部124の構成を説明する。HDD制御部124は、CPUコア401、SPIマスタ402、及び転送制御部403、404を備える。
CPUコア401は、HDD制御部124を制御するためのCPUの基本機能を担っている。SPIマスタ402は、外部のSPIデバイスと相互に接続してデータの読み書きを行う。転送制御部403、404は、CPUコア401の命令により、HDD125の処理設定を行い、HDD125とのデータの転送を制御する。
HDD125の読み出し動作の場合、CPUコア401は転送制御部404にHDD125の読み出しを設定し、設定のデータをHDD125から読み出す。読み出されたデータは、SATAインタフェースバス408、転送制御部404、HDD制御部124の内部データバス407、及び転送制御部403を経由し、さらにデータバス405を介してDRAM102に書き込む動作が行われる。
HDD125の書き込み動作の場合、CPUコア401は転送制御部404にHDD125の書き込みを設定する。そして、データバス405から転送されたデータは、転送制御部403、HDD制御部124の内部データバス407、転送制御部404、及びSATAインタフェースバス408を経由して、HDD125へ書き込み動作が実行される。
406はSPIバスであり、外部のSPIデバイスと電気的に接続する。407は信号バスであり、HDD制御部124内の各モジュールを接続する。リセット信号129が“Lo”レベルの場合、HDD制御部124はリセット状態となる。一方、リセット信号129が“Hi”レベルの場合、HDD制御部124はリセット解除状態となる。リセット信号129がリセット状態からリセット解除状態に遷移すると、CPUコア401は先ず、FLASH ROM112内に記憶されているHDDCPU BIOSFW507をSPIマスタ402にロードして実行する。つまり、HDDCPU BIOSFW507は、メインCPU101とHDD125との間のブリッジ(HDD制御部124)として機能するためのプログラムである。
<メモリマップ>
次に、図5を参照して、本実施形態に係るFLASH ROM112のメモリマップについて説明する。なお、以下で説明するメモリマップは一例であり、本願発明を限定する意図はない。即ち、以下で説明する記憶情報は、FLASH ROM112とは異なるメモリに記憶されてもよい。
501はメインCPU BIOSであり、メインCPU101で実行されるコード(プログラム)が記憶されている。502はBIOS署名であり、メインCPU BIOS501のハッシュ値に対するRSA署名値が記憶されている。503はTagであり、サブCPU FW504の先頭アドレスが記憶されている。Tag503自体のアドレスはOTP304に記憶されている。
504はサブCPU FWであり、サブCPU115で実行されるコードが記憶されている。505はFW署名であって、サブCPU FW504、又はサブCPU FW504の先頭の特定部分のECDSA署名値が記憶されている。506はROM−IDであって、メインCPU BIOS501の先頭アドレス、サイズ及びBIOS署名のアドレスが記憶されている。507はHDDCPU BIOSFWであって、HDD制御部124におけるCPUコア401で実行されるBIOS及びFWのプログラムコードが記憶されている。508はHDDCPU BIOSFW署名であって、HDDCPU BIOSFWのハッシュ値に対するRSA署名値が記憶されている。
つまり、FLASH ROM112には、メインCPU101やHDD制御部124で実行されるブートコードや実行コードが記憶されており、その全てについて改ざんの可能性がある。そこで、本実施形態によれば、セキュアブート対応のサブCPU115において、各制御部で実行されるコードの正当性を、その実行前に検証し、より安全な起動を実現する。サブCPU115の詳細な処理については以下で説明する。
<サブCPU115の処理手順>
次に、図6A、図6B及び図12を参照して、本実施形態におけるサブCPU115の処理手順を説明する。図12のタイミングチャートにおけるMFP電源1201が投入されたタイミングT0で図6A及び図6Bのフローチャートが開始される。
MFP1の電源が投入されると、S701で、CPUコア301は、直ちにブートROM310内のコードをSRAM305に読み出して実行する。そして、CPUコア301は、SPIバス114を介してFLASH ROM112から、サブCPU FW504とFW署名505とをSRAM305に読み込む。
次に、S702で、CPUコア301は、暗号処理部308によってFW署名505をOTP304内の公開鍵で復号化して、正解となるハッシュ値を取得する。続いて、S703で、CPUコア301は、暗号処理部308によってサブCPU FW504のハッシュ値を計算する。その後、S704で、CPUコア301は、S502で取得したハッシュ値と、S703で計算したハッシュ値とを比較する。不一致の場合(NO)は処理を終了し、一致した場合(YES)は、S705に進み、CPUコア301は、サブCPU FW504をSRAM305に読み込んで、実行する。
次に、S706で、CPUコア301は、FLASH ROM112からROM−ID506をCrypto RAM311に読み込む。続いて、S707で、CPUコア301は、ROM−ID506からメインCPU BIOS501のアドレスとメインCPUBIOS署名502のアドレスを取得する。
次に、S708で、CPUコア301は、メインCPUBIOS署名502をSRAM305に読み込む。続いて、S709で、CPUコア301は、暗号処理部308によってメインCPUBIOS署名502をサブCPU FW504に付属している公開鍵で復号化してハッシュ値を取得する。その後、S710で、CPUコア301は、メインCPU BIOS501をSRAM305に読み込む。さらに、S711で、CPUコア301は、暗号処理部308によってメインCPU BIOS501のハッシュ値を計算する。
そして、S712で、CPUコア301は、S709のハッシュ値と、S711のハッシュ値とを比較する。不一致の場合(NO)は処理を終了し、一致した場合(YES)はS713に進み、CPUコア301は、GPIO303を制御してリセット信号117において“Hi”を出力し、リセットを解除する。図12のT1のタイミング1202において、リセット信号117が解除され、メインCPU101が起動可能になる。
次に、S714で、CPUコア301は、S706で取得したROM−ID506が複数あるか否かを確認する。複数ある場合はS715に進み、そうでない場合は処理を終了する。S715で、CPUコア301は、S707で読み込まなかったHDDCPU BIOSFW507のアドレスと、HDDCPU BIOSFW署名508のアドレスとをFLASH ROM112から取得する。続いて、S716で、CPUコア301は、HDDCPU BIOSFW署名508をSRAM305に読み込む。さらに、S717で、CPUコア301は、暗号処理部308によってHDDCPU BIOSFW署名508をサブCPU FW504に付属している公開鍵で復号化してハッシュ値を取得する。
次に、S718で、CPUコア301は、HDDCPU BIOSFW507をSRAM305に読み込む。続いて、S719で、CPUコア301は、暗号処理部308によってHDDCPU BIOSFW507のハッシュ値を計算する。そして、S720で、CPUコア301は、S717のハッシュ値とS719のハッシュ値とを比較し、不一致の場合(NO)は処理を終了し、一致した場合(YES)はS721に進む。S721で、CPUコア301は、GPIO303を制御してリセット信号129において“Hi”を出力する。図12のT2のタイミング1203において、リセット信号129が解除され、HDD制御部124におけるCPUコア401の起動となる。
<HDD制御部の処理手順>
次に、図7を参照して、本実施形態におけるHDD制御部124の処理手順を説明する。上記図6のS721でリセット信号129が解除されると、CPUコア401が処理を開始する。
CPUコア401のBIOS検証が行われ、CPUコア401のリセットが解除されると、S801で、CPUコア401は、直ちにFLASH ROM112に記憶されたHDDCPU BIOSFW507をロードする。ここで、ロードする領域としては、HDD制御部124に設けられた不図示のROMに読み出してもよく、或いは、DRAM102に読み出してもよい。続いて、S802で、CPUコア401は、ロードしたHDDCPU BIOSFW507を実行し、CPUコア401内の入出力の初期化処理を実行し、処理を終了する。これにより、HDD制御部124の初期化が行われ、HDD125とのデータのやり取りが可能な状態になる。
以上説明したように、本実施形態に係る情報処理装置は、プログラムコードにしたがって処理を実行するメインCPUと、別の所定のプログラムコードにしたがって、メインCPUとの通信、及び、所定の負荷との通信を制御するHDD制御部と、を備える。また、本情報処理装置は、メインCPU及びHDD制御部が実行するそれぞれのプログラムコードを記憶するFLASH ROMを備える。さらに、本情報処理装置は、メインCPU及びHDD制御部においてそれぞれのプログラムコードが実行される前に、FLASH ROMに記憶されたそれぞれのプログラムコードの検証を行うサブCPUを備える。より具体的には、サブCPUは、まずメインCPUのプログラムコードの検証を行い、改ざんが検知されなければメインCPUへのリセット信号を解除し、メインCPUを起動させる。その後、サブCPUは、HDD制御部のプログラムコードの検証を行い、改ざんが検知されなければHDD制御部へのリセット信号を解除する。これにより、本実施形態によれば、装置のメインCPUとは異なる制御部で実行されるプログラムコードの安全性も好適に検証し、装置のセキュアな起動を実現することができる。
なお、本発明は上記実施形態に限らず様々な変形が可能である。上記第1の実施形態では、メインCPU101のコードと、HDD制御部124のコードとが同じメモリであるFLASH ROM112に記憶されている場合について説明したが、以下で説明する第2の実施形態のように、異なるメモリに記憶されてもよい。その場合は、サブCPU115が2つのメモリに記憶されているコードの検証を行う。なお、以下で説明する第2の実施形態は、複数のCPUが実行するコードを格納するメモリがそれぞれ設けられるとともに、それぞれのメモリを検証するサブCPUもそれぞれ設けられる例について説明する。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、サブCPU115が一括して全ての制御部のブートコード等の検証を行う例について説明したが、本実施形態では、複数のCPUにおいて、各々のCPUにおいて各々のブートコードの検証を行う。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
<情報処理装置の構成>
次に、図8を参照して、本実施形態に係るMFP1001の構成を説明する。なお、以下では、上記第1の実施形態と同様の構成や制御については同一の参照符号を付し説明を省略する。
本実施形態に係るMFP1001は、図1に示すMFP1の構成に加えて、さらに、サブCPU1026(第2の検証手段)、及びFLASH ROM1027(第2の記憶手段)を備える。リセット回路122は、システムの電源がONされると所定の遅延時間後にサブCPUリセット信号123、1023を“Lo”から“Hi”レベルに遷移する。123はサブCPUリセット信号であって、リセット回路122から出力されてサブCPU115のリセット端子に接続される。サブCPUリセット信号123が“Hi”レベルになると、サブCPU115はリセットが解除されて起動を開始する。一方、サブCPUリセット信号1023は、サブCPU1026のリセット端子に接続される。サブCPUリセット信号1023が“Hi”レベルになると、サブCPU1026はリセットが解除されて起動を開始する。なお、サブCPU1026はサブCPU115と同等の構成である。つまり、本実施形態では、各CPU(メインCPU101とHDD制御部124)に対応して、そのブートコードや実行コードを検証するセキュアブート対応のサブCPUを設ける。
サブCPU1026は、MFP1001の起動時に、FLASH ROM1027からブートコードを読み出して改ざんがされていないかの検証を行う。改ざんの検知方法としては、例えばブートコードのデジタル署名の公開鍵情報(ハッシュ値を公開鍵暗号化した値)を製造時にサブCPU1026内のOTP(One Time Program)領域に記憶させておく。さらに、読み出したブートコードをこの公開鍵情報で復号化して検証を行う。公開鍵暗号の方法としてはRSA2048、ECDSAなどである。1029はリセット信号であり、サブCPU1026のGPIOポートから出力されてHDD制御部124のリセット処理として専用の信号線を介して接続される。1028はSPIバスであり、サブCPU1026、FLASH ROM1027、及びHDD制御部124を相互接続する。
<メモリマップ>
次に、図9を参照して、FLASH ROM1027のメモリマップについて説明する。なお、以下で説明するメモリマップは一例であり、本願発明を限定する意図はない。即ち、以下で説明する記憶情報は、FLASH ROM1027とは異なるメモリに記憶されてもよい。また、以下で説明する記憶情報は、本実施形態ではFLASH ROM112に代わって記憶されるものであり、即ち、FLASH ROM112には記憶されない。
1101はHDDCPU BIOSFWであり、HDD制御部124におけるCPUコア401で実行されるコードが記憶されている。1102はHDDCPU BIOSFW署名であり、HDDCPU BIOSFW1101のハッシュ値に対するRSA署名値が記憶されている。1103はTagであり、サブCPU FW1104の先頭アドレスが記憶されている。Tag1103自体のアドレスは図3で説明した、サブCPU1026のOTP304に記憶されている。
1104はサブCPU FWであり、サブCPU1026で実行されるコードが記憶されている。1105はFW署名であり、サブCPU FW1104、又はサブCPU FW1104の先頭の特定部分のECDSA署名値が記憶されている。1106はROM−IDであり、メインHDDCPU BIOSFW1101の先頭アドレス、サイズ及びHDDCPU BIOSFW署名のアドレスが記憶されている。
<サブCPU1026の処理手順>
次に、図10を参照して、本実施形態に係るサブCPU1026の処理手順を説明する。
MFP1001の電源が投入されると、S1201で、サブCPU1026のCPUコア301は、直ちにブートROM310内のコードをSRAM305に読み出して実行する。そして、CPUコア301は、SPIバス1028を介してFLASH ROM1027からサブCPU FW1104をSRAM305に読み込む。続いて、S1202で、CPUコア301は、暗号処理部308によってFW署名1105をOTP304内の公開鍵で復号化して、正解となるハッシュ値を取得する。さらに、S1203で、CPUコア301は、暗号処理部308によってサブCPU FW1104のハッシュ値を計算する。
次に、S1204で、CPUコア301は、S1202で取得したハッシュ値とS1203で計算したハッシュ値を比較し、不一致の場合(NO)は処理を終了する。一方、一致した場合(YES)はS1205に進み、CPUコア301は、サブCPU FW1104をSRAM305に読み込んで実行する。続いて、S1206で、CPUコア301は、ROM−ID1106をFLASH ROM1027からCrypto RAM311に読み込む。さらに、S1207で、CPUコア301は、ROM−ID506からHDDCPU BIOSFW1101のアドレスと、HDDCPU BIOSFW署名1102のアドレスとを取得する。
次に、S1208で、CPUコア301は、HDDCPU BIOSFW署名1102をSRAM305に読み込む。続いて、S1209で、CPUコア301は、暗号処理部308によってHDDCPU BIOSFW署名1102をサブCPU FW1104に付属している公開鍵で復号化してハッシュ値を取得する。
次に、S1210で、CPUコア301は、HDDCPU BIOSFW1101をSRAM305に読み込む。続いて、S1211で、CPUコア301は、暗号処理部308によってHDDCPU BIOSFW1101のハッシュ値を計算する。そして、S1213で、CPUコア301は、S1209のハッシュ値と、S1211のハッシュ値とを比較する。ここで、一致した場合(YES)はS1214に進み、CPUコア301は、GPIO303を制御してリセット信号1029において“Hi”を出力し、処理を終了する。一方、一致しない場合(NO)はそのまま処理を終了する。
以上説明したように、本実施形態に係る情報処理装置は、プログラムコードにしたがって処理を実行するメインCPUと、別の所定のプログラムコードにしたがって、メインCPUとの通信及び所定の負荷との通信を制御するHDD制御部と、を備える。また、本情報処理装置は、メインCPUが実行するプログラムコードを記憶する第1のROMと、HDD制御部が実行するプログラムコードを記憶する第2のROMとを備える。また、本情報処理装置は、メインCPUにおいてプログラムコードを実行する前に、第1のROMに記憶されたプログラムコードの検証を行うサブCPUを備える。さらに、本情報処理装置は、HDD制御部においてプログラムコードを実行する前に、第2のROMに記憶されたプログラムコードの検証を行うサブCPUを備える。このように、本実施形態によれば、メインCPU及びHDD制御部の構成となるCPUコア201、401において実行される、各々のROMのブートコードの改ざん検知を、別々のサブCPU115及びサブCPU1026で実施する。そして、個別のCPUにおけるブートコードの改ざん検知を実行し、その結果改ざんされたか否かの通知が可能となる。
<第3の実施形態>
以下では、本発明の第3の実施形態を説明する。本実施形態では、HDD制御部124で実行されるコードの検証結果に基づく制御について説明する。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
<メインCPU101の処理手順>
図11を参照して、本実施形態におけるHDD制御部124の検証が不一致の場合の、メインCPU101の処理手順を説明する。
S901で、メインCPU101のCPUコア201は、リセットが解除されると直ちにFLASH ROM112に記憶されたメインCPU BIOS501をDRAM102に読み込む。続いて、S902で、CPUコア201は、メインCPU BIOS501を実行し、メインCPU101内の入出力の初期化処理を実行する。
次に、S903で、CPUコア201は、HDD制御部124の検証結果を確認する。検証が不一致の場合はS907に進み、CPUコア201は、操作部I/F113にHDD125のエラー表示を指示し、操作部103にHDD125のエラーの表示を行い、処理を終了する。これにより、HDD制御部124の検証が不一致の場合、MFPにエラーの表示を行うことが可能となる。
一方、HDD125の起動が可能な場合は、S904に進み、CPUコア201は、HDD125からOS(Operating System)をDRAM102に読み込んで、S905で起動する。続いて、S906で、CPUコア201は、プリンタ部105、スキャナ部106、FAX107、画像処理部111、ネットワークI/F104、及び操作部103の初期化処理を実行して、MFPとして動作可能な状態に移行し、処理を終了する。
以上説明したように、本実施形態に係るメインCPUは、サブCPUによって、HDD制御部で実行されるプログラムコードの検証に失敗すると、情報処理装置の操作部にエラー表示を行わせる。本実施形態によれば、メインCPU101及びHDD制御部124の構成となるCPUコア401において、各々のROMのブートコードの改ざん検知を、実施する。その結果、HDD制御部124の構成となるCPUコア401が改ざんされたと判定した場合、改ざん判定で問題のなかった、メインCPU101のみで起動を行い、装置がエラーであることの通知が可能となる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
1:MFP、101:メインCPU、102:DRAM、103:操作部、104:ネットワークI/F、105:プリンタ部、106:スキャナ部、107:FAX、109:信号バス、110:FW(ファームウェア)、111:画像処理部、112:FLASH ROM、113:操作部I/F、114:SPIバス、115:サブCPU、117:リセット信号、118:電源制御部、119:電源線、120:電源供給線、122:リセット回路、123:サブCPUリセット信号、129:リセット信号

Claims (15)

  1. 情報処理装置であって、
    プログラムコードにしたがって処理を実行する第1の制御手段と、
    前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、前記情報処理装置の所定の負荷との通信を制御する第2の制御手段と、
    前記第1の制御手段及び前記第2の制御手段が実行するそれぞれのプログラムコードを記憶する記憶手段と、
    前記第1の制御手段及び前記第2の制御手段において前記記憶手段に記憶されたそれぞれのプログラムコードが実行される前に、それぞれのプログラムコードの検証を行う検証手段と
    を備えることを特徴とする情報処理装置。
  2. 前記所定の負荷は、不揮発性の記憶装置であって、
    前記第1の制御手段との通信、及び、前記所定の負荷との通信の制御とは、前記第1の制御手段から受信したデータを前記所定の負荷に送信する処理、及び、前記所定の負荷から受信したデータを前記第1の制御手段に送信する処理を含むことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2の制御手段が実行する前記プログラムコードは、データの暗号化及び復号化のプログラムコードを含み、
    前記第2の制御手段による前記所定の負荷との通信の制御とは、前記第2の制御手段が、前記検証手段によって検証されたプログラムコードにしたがって、前記不揮発性の記憶装置に送信するデータの暗号化、及び、前記不揮発性の記憶装置から受信するデータの復号化を行う処理を含むことを特徴とする請求項2に記載の情報処理装置。
  4. 前記負荷は、HDD(Hard Disk Drive)であり、
    前記第2の制御手段は、前記検証手段によって検証されたプログラムコードを読み出して実行することにより、前記第1の制御手段と前記HDDとの間のブリッジとして機能することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記第1の制御手段及び前記第2の制御手段と、前記検証手段との間には、前記検証手段からのリセット信号を出力する信号線がそれぞれ設けられ、
    前記検証手段は、プログラムコードを検証すると対応する制御手段に対するリセット信号を解除することを特徴とする請求項4に記載の情報処理装置。
  6. 前記第1の制御手段及び前記第2の制御手段は、前記検証手段から受信しているリセット信号が解除されると、対応するプログラムコードを前記記憶手段から読み出して実行することにより、起動することを特徴とする請求項5に記載の情報処理装置。
  7. 前記検証手段は、
    前記検証手段のブートコードを記憶したブートROMと、
    各プログラムコードを検証するために使用する検証情報を記憶するOTP(One Time Programmable)メモリ領域と
    を備えることを特徴とする請求項4乃至6の何れか1項に記載の情報処理装置。
  8. 前記記憶手段には、
    各プログラムコードの検証に使用する検証情報と、
    前記プログラムコードとして、前記第1の制御手段のBIOSのプログラムコードと、前記第2の制御手段のBIOS及びFWのプログラムコードと、前記検証手段のFWのプログラムコードと
    が記憶されることを特徴とする請求項4乃至7の何れか1項に記載の情報処理装置。
  9. 前記第1の制御手段は、前記検証手段によってリセット信号が解除されると、前記第1の制御手段のBIOSのプログラムコードを前記記憶手段から読み出して実行し、前記HDDに記憶されたOSを読み出して実行し、前記情報処理装置の初期化処理を実行することを特徴とする請求項8に記載の情報処理装置。
  10. 前記第1の制御手段は、
    前記検証手段によって、前記第2の制御手段で実行されるプログラムコードの検証に失敗すると、前記情報処理装置の操作部にエラー表示を行わせることを特徴とする請求項1乃至9の何れか1項に記載の情報処理装置。
  11. 情報処理装置であって、
    プログラムコードにしたがって処理を実行する第1の制御手段と、
    前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、前記情報処理装置の所定の負荷との通信を制御する第2の制御手段と、
    前記第1の制御手段が実行するプログラムコードを記憶する第1の記憶手段と、
    前記第2の制御手段が実行するプログラムコードを記憶する第2の記憶手段と、
    前記第1の制御手段及び前記第2の制御手段において前記第1の記憶手段及び前記第2の記憶手段に記憶されたそれぞれのプログラムコードが実行される前に、前記第1の記憶手段及び前記第2の記憶手段に記憶されたそれぞれのプログラムコードの検証を行う検証手段と
    を備えることを特徴とする情報処理装置。
  12. 情報処理装置であって、
    プログラムコードにしたがって処理を実行する第1の制御手段と、
    前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、前記情報処理装置の所定の負荷との通信を制御する第2の制御手段と、
    前記第1の制御手段が実行するプログラムコードを記憶する第1の記憶手段と、
    前記第2の制御手段が実行するプログラムコードを記憶する第2の記憶手段と、
    前記第1の制御手段において前記第1の記憶手段に記憶されたプログラムコードが実行される前に、前記第1の記憶手段に記憶されたプログラムコードの検証を行う第1の検証手段と、
    前記第2の制御手段において前記第2の記憶手段に記憶されたプログラムコードが実行される前に、前記第2の記憶手段に記憶されたプログラムコードの検証を行う第2の検証手段と
    を備えることを特徴とする情報処理装置。
  13. プログラムコードにしたがって処理を実行する第1の制御手段と、前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、情報処理装置の所定の負荷との通信を制御する第2の制御手段と、前記第1の制御手段及び前記第2の制御手段が実行するそれぞれのプログラムコードを記憶する記憶手段と、を備える情報処理装置の制御方法であって、
    検証手段が、前記第1の制御手段及び前記第2の制御手段において前記記憶手段に記憶されたそれぞれのプログラムコードが実行される前に、それぞれのプログラムコードの検証を行う検証工程を含むことを特徴とする情報処理装置の制御方法。
  14. プログラムコードにしたがって処理を実行する第1の制御手段と、前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、情報処理装置の所定の負荷との通信を制御する第2の制御手段と、前記第1の制御手段が実行するプログラムコードを記憶する第1の記憶手段と、前記第2の制御手段が実行するプログラムコードを記憶する第2の記憶手段と、を備える情報処理装置の制御方法であって、
    検証手段が、前記第1の制御手段及び前記第2の制御手段において前記第1の記憶手段及び前記第2の記憶手段に記憶されたそれぞれのプログラムコードが実行される前に、前記第1の記憶手段及び前記第2の記憶手段に記憶されたそれぞれのプログラムコードの検証を行う検証工程を含むことを特徴とする情報処理装置の制御方法。
  15. プログラムコードにしたがって処理を実行する第1の制御手段と、前記プログラムコードとは別の所定のプログラムコードにしたがって、前記第1の制御手段との通信、及び、情報処理装置の所定の負荷との通信を制御する第2の制御手段と、前記第1の制御手段が実行するプログラムコードを記憶する第1の記憶手段と、前記第2の制御手段が実行するプログラムコードを記憶する第2の記憶手段と、を備える情報処理装置の制御方法であって、
    第1の検証手段が、前記第1の制御手段において前記第1の記憶手段に記憶されたプログラムコードが実行される前に、前記第1の記憶手段に記憶されたプログラムコードの検証を行う第1の検証工程と、
    第2の検証手段が、前記第2の制御手段において前記第2の記憶手段に記憶されたプログラムコードが実行される前に、前記第2の記憶手段に記憶されたプログラムコードの検証を行う第2の検証工程と
    を含むことを特徴とする情報処理装置の制御方法。
JP2019080470A 2019-04-19 2019-04-19 情報処理装置、及びその制御方法 Pending JP2020177539A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019080470A JP2020177539A (ja) 2019-04-19 2019-04-19 情報処理装置、及びその制御方法
US16/845,376 US11392701B2 (en) 2019-04-19 2020-04-10 Information processing apparatus and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019080470A JP2020177539A (ja) 2019-04-19 2019-04-19 情報処理装置、及びその制御方法

Publications (1)

Publication Number Publication Date
JP2020177539A true JP2020177539A (ja) 2020-10-29

Family

ID=72832466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019080470A Pending JP2020177539A (ja) 2019-04-19 2019-04-19 情報処理装置、及びその制御方法

Country Status (2)

Country Link
US (1) US11392701B2 (ja)
JP (1) JP2020177539A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7286381B2 (ja) * 2019-04-01 2023-06-05 キヤノン株式会社 情報処理装置とその制御方法
US11657157B2 (en) * 2019-06-06 2023-05-23 Macronix International Co., Ltd. Secure boot system, method and apparatus
US11829773B2 (en) * 2020-06-11 2023-11-28 Verizon Patent And Licensing Inc. Systems and methods for securely booting a network device with a service provider trust anchor
JP2022066083A (ja) * 2020-10-16 2022-04-28 キヤノン株式会社 情報処理装置
US11960608B2 (en) * 2021-04-29 2024-04-16 Infineon Technologies Ag Fast secure booting method and system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
JP2017033149A (ja) 2015-07-30 2017-02-09 株式会社東芝 情報処理装置、コントローラ、及び、情報処理装置の制御方法

Also Published As

Publication number Publication date
US20200334360A1 (en) 2020-10-22
US11392701B2 (en) 2022-07-19

Similar Documents

Publication Publication Date Title
JP2020177539A (ja) 情報処理装置、及びその制御方法
JP4848190B2 (ja) アプリケーション実行装置、アプリケーション実行方法及びアプリケーション実行プログラム
JP4994814B2 (ja) 画像処理装置及びその制御方法
JP7065578B2 (ja) 情報処理装置、その制御方法、及びプログラム
US10776494B2 (en) Method for verifying forgery and falsification of executable file in image forming apparatus and image forming apparatus using same
JP2009110268A (ja) サーバ装置、管理システム、管理方法、記憶媒体、プログラム
US11010153B2 (en) Information processing apparatus that detects falsification of a program, method of controlling the same, and storage medium
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
JP7170482B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2005033277A (ja) 画像形成装置
JP4643351B2 (ja) 機器及びプログラム起動方法
JP2009160832A (ja) プリンタ、複合機、および、印刷制御方法
JP2009301429A (ja) ソフトウェア改ざん検知方法、機器及び画像処理装置
US20170242742A1 (en) Data processing device, control method for data processing device, and storage medium
JP2020187649A (ja) 情報処理装置、制御方法、およびプログラム
JP2010208075A (ja) 画像形成装置、画像形成制御方法、画像形成制御プログラム及び記録媒体
JP2008171041A (ja) 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
JP2021089607A (ja) 情報処理装置
JP2009213010A (ja) 通信端末装置、通信確立制御方法、通信確立制御プログラム及び記録媒体
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
US20230103698A1 (en) Information processing apparatus and control method therefor
JP7289641B2 (ja) 情報処理装置、およびその制御方法
EP3605311B1 (en) Information processing method, information processing system, and communication apparatus
JP2021131710A (ja) 情報処理装置、並びにその制御方法およびプログラム
EP3606122B1 (en) Information processing method and information processing system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113