[go: up one dir, main page]

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

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

Info

Publication number
JP2021002081A
JP2021002081A JP2019113923A JP2019113923A JP2021002081A JP 2021002081 A JP2021002081 A JP 2021002081A JP 2019113923 A JP2019113923 A JP 2019113923A JP 2019113923 A JP2019113923 A JP 2019113923A JP 2021002081 A JP2021002081 A JP 2021002081A
Authority
JP
Japan
Prior art keywords
program
update
verification function
information processing
verification
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
JP2019113923A
Other languages
English (en)
Other versions
JP2021002081A5 (ja
Inventor
卓実 道下
Takumi Michishita
卓実 道下
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 JP2019113923A priority Critical patent/JP2021002081A/ja
Priority to US16/901,321 priority patent/US11669609B2/en
Priority to CN202010551214.3A priority patent/CN112114842A/zh
Publication of JP2021002081A publication Critical patent/JP2021002081A/ja
Publication of JP2021002081A5 publication Critical patent/JP2021002081A5/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】本発明は、ソフトウェアをアップデートする際に、プログラムの正当性を検証しつつ、処理時間の増大を防止し、ダウンタイムの削減とセキュリティ機能を両立する仕組みを提供する。【解決手段】本情報処理装置は、プログラムのアップデートを受け付けると、プログラムの正当性を検証する検証機能に関わる設定情報に基づいて、検証機能に含まれる所定の検証機能を有効又は無効に切り替える。より詳細には、本情報処理装置は、プログラムのアップデートが行われる前に、所定の検証機能を無効に切り替え、当該プログラムのアップデートが終了すると、当該所定の検証機能を有効に切り替える。【選択図】 図4

Description

本発明は、情報処理装置、その制御方法、及びプログラムに関する。
画像形成装置等の情報処理装置にインストールされたアプリケーションやファームウェアなどのプログラムは、不具合の修正や機能追加のために、市場リリース後においてリリース先でしばしばアップデートされるケースがある。ファームウェアを配信する際には、改ざんされて不正なアップデートが行われないように、配信するファームウェアに対して署名暗号化を行うことが一般的となっている。配信されるファームウェアを圧縮し署名暗号化して配信することで、データの転送サイズを減らすとともに、実際にインストールする前に、ダウンロードした暗号化ファームウェアの署名検証を行うことで改ざんを防止することができる。
配信時にファイルを圧縮して配信するケースでは、インストール時に情報処理装置の記憶装置に対して配信されたファームウェアの圧縮ファイルを展開して配置する。従って、展開後のファイルの改ざん及び経年劣化(以下、まとめて”改ざん”と称する。)に対しては、ファームウェア配信時に署名暗号化する方法では防止できない。アップデート後のファイルの正当性の検証手法として、特許文献1には、電源投入時に、書き換え不可の領域に保存されたブートプログラムを最初に起動し、ブートプログラムを除くその他のプログラム起動時にプログラムの正当性を検証する手法が提案されている。この正当性の検証では、それぞれのプログラムの正解値を計算し、予め保存されたプログラムの正解値と一致するかが判定され、一致する場合に起動を行うことで不正なプログラムの起動を防止している。
更に、画像形成装置の稼働中においてランタイムでプログラムの正当性を検証する方法(改ざん検知方法)として、ホワイトリスト方式を用いた改ざん検知手法も知られている。ホワイトリスト方式では、使用可能なファームウェアの個々のファイルの検証データを予め保管し、ファームウェアの使用時に検証データを用いて当該ファームウェアの改ざんを検証し、正しいファームウェアだけを使用可能とする手法である。ここで、検証データとは、ファームウェアの一意性を確認するために、ファームウェアが格納された個々のファイルのバイナリデータから、ハッシュ関数を用いて作成されたハッシュ値を用いるのが一般的である。ハッシュ値には、ある値からハッシュ値を作成した際に、当該ハッシュ値を変更せずに元の値を改変することが不可能であるという特徴があり、正しいファームウェアであるかどうかの改ざん検証に使用することが可能である。また改ざん確認とは、ファームウェアを実行する際やファイルをオープンする際にファイル全体のハッシュ値を算出し、ホワイトリストに保管された当該ファイルに対する検証データと一致しているかの確認を行う。ここで、一致しなければ改ざんされたと見なし、使用者に対して警告などなどの通告が行われる。
ホワイトリストを使用したチェック方式においては、アップデート時に展開されたファイルが後に改ざんされたとしても、ホワイトリストで管理されたファイルが実行される際に改ざんを検知することが可能となる。通常、ホワイトリストは、プログラムによる書き込み処理を禁止して管理されるものであるが、ホワイトリストで管理されたファイルを含むファームウェアをアップデートする際には、ファームウェアとホワイトリストを正しく更新する必要がある。特許文献2には、ホワイトリストに含まれないソフトウェアをインストールする際に、ホワイトリストを無効化してインストールを行い、インストールされたソフトウェアをホワイトリストに登録することが提案されている。
特開2019−75000号公報 特開2016−139322号公報
上記従来技術における起動時のシステム検証のみでは、起動処理の完了後にランタイムでのプログラムでの正当性の検証を実施しないため、画像処理装置の稼働中に正当でないプログラムを実行される脅威への対策は不十分であると考えられる。一方、プログラム更新中にホワイトリストを無効化してホワイトリストの更新を行う方法では、更新されたプログラムに対するホワイトリストの更新は可能である。しかし、ホワイトリストを用いた正当性の検証を無効にするため、悪意のある正当でないプログラムが実行されてしまう可能性がある。
また、ホワイトリストを適切に管理し、正当性の検証を実行しながらファームウェアをアップデートすることも考えられる。ただし、単位時間に更新する対象ファイルが多数である場合や、ファイルを記憶する領域が複数の記憶デバイスに跨って、ディスクが多重にマウントされているような場合には、ファイルパスの探索やそれに伴う検知処理の実行に時間が掛かってしまう。そのため、プログラムを記憶するディレクトリの構成やシステムの複雑度によっては、プログラムの更新処理が大きく増加する可能性がある。
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、ソフトウェアをアップデートする際に、プログラムの正当性を検証しつつ、処理時間の増大を防止し、ダウンタイムの削減とセキュリティ機能を両立する仕組みを提供する。
本発明は、例えば、情報処理装置であって、プログラムのアップデートを受け付けると、プログラムの正当性を検証する検証機能に関わる設定情報に基づいて、前記検証機能に含まれる所定の検証機能を有効又は無効に切り替える切替手段と、前記プログラムのアップデートを行う更新手段とを備え、前記切替手段は、前記更新手段によって前記プログラムのアップデートが行われる前に、前記所定の検証機能を無効に切り替え、該プログラムのアップデートが終了すると、該所定の検証機能を有効に切り替えることを特徴とする。
本発明によれば、ソフトウェアをアップデートする際に、プログラムの正当性を検証しつつ、処理時間の増大を防止し、ダウンタイムの削減とセキュリティ機能を両立することができる。
一実施形態に係る画像形成装置の構成を表すハードウェアブロック図。 一実施形態に係る画像形成装置の構成を表すソフトウェアブロック図。 一実施形態に係る正当性の検証機能の切替の一例を示す図。 一実施形態に係るファームウェアアップデート時のフローチャート。 一実施形態に係る操作パネル120に表示させるシステム検証の設定画面の一例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
なお、実施形態に係る情報処理装置として画像形成装置である複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら適用範囲は複合機に限定はせず、情報処理装置であればよい。
<ハードウェア構成>
以下では、本発明の一実施形態について説明する。まず、図1を参照して、一実施形態に係る複合機である画像形成装置100のハードウェア構成を説明する。なお、本実施形態では、画像形成装置100に含まれるソフトウェアの更新処理として、主に、ファームウェアの更新処理を例に説明する。しかしながら、本発明はこのような更新処理に限定されず、他のソフトウェアの更新処理に対しても適用可能である。
画像形成装置100は、メインコントローラ110、組み込みコントローラ103、操作パネル120、プリンタユニット130、及びスキャナユニット140を備える。組み込みコントローラ103には、書き換え不可のROMが備えられ、ブートプログラムが意図せず変化していないかの確認を行う検証部を有する。これには、一般的に広く用いられる公開鍵暗号方式を応用した電子署名技術を使用することを想定している。画像形成装置100に電源が投入されると、組み込みコントローラ103がまずブートプログラムの検証を行い、正当性を検証した後に当該ブートプログラムの起動を行う。そのため、詳細な説明は割愛する。なお、組み込みコントローラ103を搭載せずに、メインコントローラ110で同様の処理を行うように構成してもよい。
メインコントローラ110は、CPU111、ROM112、RAM113、HDD114、操作部I/F115、プリンタI/F116、スキャナI/F117、USBホストI/F118、及びネットワークI/F119を備える。CPU111は、ROM112に記憶されたメインコントローラ110用のファームウェアをRAM113に読み出して実行する。また、ROM112には、実行プログラムの他に、正当性の検証に使用する正解値データや信頼されたプログラムを示すホワイトリストが記憶されている。ROM112には、メインコントローラ110の機能を有効にするためのライセンス情報も記憶される。
ハードディスクドライブ(HDD)114は、ネットワークI/F119を介してPC180から受信した印刷データを記憶する。なお、ROM112から読み出されCPU111により実行されるプログラムには、プリント用アプリケーションプログラムが含まれる。そして、このプリント用アプリケーションプログラムにより、HDD114に記憶された印刷データがプリンタユニット130によるプリントが可能な画像データに変換される。そして、HDD114には、プリンタユニット130によるプリントが可能な画像データも記憶される。また、ROM112から読み出されCPU111により実行されるファームウェアには、スキャン用アプリケーションプログラムが含まれる。そして、このスキャン用アプリケーションプログラムの実行により、スキャナユニット140によって原稿から画像が読み取られて画像データが出力され、出力された画像データがHDD114に転送される。そして、HDD114には、出力された画像データが記憶される。
操作部I/F115は、操作パネル120を介して画像形成装置100の使用者により入力される指示をCPU111に伝達するためのI/Fである。また、操作部I/F115は、操作パネル120に表示する内容を切り替えるための処理内容をCPU111から受信して操作パネル120の表示を制御する。なお、操作パネル120は、タッチパネル機能を有する液晶表示部やキーボードなどが備えられ、使用者の指示を受け付けることができる。
プリンタI/F116は、メインコントローラ110とプリンタユニット130を接続するためのインタフェースである。ここで、プリンタユニット130は、プリンタI/F116を介してHDD114から転送される画像データに基づいて記録媒体(シート等)上にプリントを行う。
スキャナI/F117は、メインコントローラ110とスキャナユニット140を接続するためのインタフェースである。ここで、スキャナユニット140は、原稿上の画像をCCD(ChargeCoupledDevice)等により構成されるラインセンサを用いて読み取って、画像データを出力するものである。そして、スキャナユニット140は、当該画像データをスキャナI/F117を介してHDD114へ転送する。HDD114へ転送され、記憶された画像データは、前述したプリンタユニット130によりプリントすることが可能である。従って、スキャナユニット140により読み取った画像データをプリンタユニット130によりプリントすることにより、複写(コピー)処理が可能となる。
USBホストI/F118は、メインコントローラ110と外部USBデバイス160を接続するためのインタフェースである。ここで、外部USBデバイス160の例としてはFAXユニットが挙げられる。FAXユニットの例では、USBホストI/F118を介してHDD114から転送される画像データに基づいてFAX送信を行う。また、受信するデータに基づいて画像データを生成し、USBホストI/F118を介してHDD114に画像データを転送する。なお、HDD114に記憶された画像データは、前述したようにプリンタユニット130により記憶媒体へプリントされる。外部USBデバイス160は、USBメモリやUSBキーボードなども例として挙げられる。USBメモリからは、ファームウェアアップデートに必要な更新ファイルの転送も可能である。
ネットワークI/F119は、メインコントローラ110をLAN150に接続し、LAN上のPC180との通信を行う。PC180は画像形成装置100とLAN150で接続され、画像形成装置100に対して、印刷データの送信、WEBブラウザ経由での機器の操作、ファームウェアファイルの転送等が可能である。
さらに画像形成装置100は、LAN150を介して、サーバ装置170と接続され、ファームウェアアップデート等に必要なソフトウェアの更新ファイルをダウンロードすることができる。ここでの更新ファイルのダウンロードは、HTTP、FTPなどの通信プロトコルに従って行われるが、他の通信プロトコルが利用されてもよい。
サーバ装置170には、出荷された製品に対してアップデートが必要な最新のファームウェア等が常にアップロードされており、画像形成装置100から問い合わせを行うことで、必要なファームウェアを取得することができる。ただし、画像形成装置100の設置環境によっては、サーバ装置170には接続しないケースもありうる。
<ソフトウェア構成>
次に、図2を参照して、本実施形態に係るメインコントローラ110のCPU111により実行されるソフトウェアの構成例について説明する。なお、図2に示されるプログラムは、図1のROM112に記憶されているものとする。
メインコントローラ110は、ソフトウェア構成として、メインシステム210を備え、メインシステム210には本実施形態における画像形成装置100の各種機能を実現するためのプログラムが配置される。メインシステム210は、起動制御部211、操作部制御部212、プリンタ制御部213、スキャナ制御部214、USB制御部215、通信処理部216、更新処理部217、ホワイトリスト管理部218、検知制御部219、制御切替部220、及び検証部221を備える。
起動制御部211はメインシステム210の起動時の処理を制御するプログラムであり、メインシステム210のOS(オペレーションシステム)を起動させ、各種プログラムを動作させるための基本システムの立ち上げを行う。操作部制御部212は、操作部I/F116を介して、操作パネル120の制御を行うためのプログラムである。プリンタ制御部213は、プリンタI/F116を介したプリンタユニット130の制御を行うためのプログラムである。スキャナ制御部214は、スキャナI/F117を介したスキャナユニット140の制御を行うためのプログラムである。
USB制御部215はUSBホストI/F118を介して、その先のUSBデバイスの制御を行うためのプログラムである。外部USBデバイス160にUSBメモリが接続されている場合、USB制御部215は、USBメモリから、ファームウェアアップデートに必要な更新ファイル及び更新情報の転送処理に関する制御を行う。転送されたファイルはHDD114に保存される。通信処理部216は、ネットワークI/F119を介して、PC180やサーバ装置170との通信を行い、LAN150を介して、ファームウェアアップデートに必要な更新ファイル及び更新情報の転送処理を行う。転送されたファイルはHDD114に保存される。
更新処理部217は、操作パネル120を介してユーザからファームウェアアップデート等の実行の指示があった際や予め設定された時刻に到達した際に、メインシステム210を構成するプログラムの更新処理を行うものである。更新処理部217によるプログラムの更新処理は、具体的には下記の3つの処理に分けられる。
(1)外部USBデバイス160やサーバ装置170からのファームウェア(更新対象のプログラム)の転送処理。
(2)ROM112に記憶された旧ファームウェアのバックアップ処理。
(3)ROM112に記憶されたプログラムの更新処理。
旧プログラムのバックアップ処理を実行するのは、プログラムの更新処理の間に電源の不良や記憶領域の書き込みエラー等により更新処理が正常に実行できなかった場合に、アップデート前の旧プログラムへロールバックするためのものである。旧プログラムのバックアップ処理や、メインコントローラ110の構成、アップデート処理の設定に応じて、当該バックアップ処理を実行しないケースもある。
ホワイトリスト管理部218はメインシステム210で動作するプログラムに対するホワイトリストの管理を行う。ホワイトリストはメインシステム210のプログラムに対する検証データとして生成され、稼働中の画像形成装置100に対して、ランタイムでの正当でないプログラムの実行を防止する。ホワイトリストに記載されたファームウェアのアップデートなどの書換処理が発生する場合は、アップデートを実行するプログラムに特殊な権限を与えて書換処理を実行する。
検知制御部219は、第2検証手段として機能し、ファームウェアを実行する際やファイルをオープンする際に正当性(改ざんや経年劣化による変化)の検証を行う。なお、以下では、プログラムの改ざんや経年劣化による変化を検出するための、プログラムの正当性の検証を単に改ざん検知と表現する。つまり、以下で使用する用語「改ざん検知」には、プログラムの改ざん検知に加えて、経年劣化によるプログラムの変化の検知も含むものである。これらの改ざん検知には、ファイル全体のハッシュ値を算出し、ホワイトリスト管理部218で管理されているホワイトリストに含まれる当該ファイルに対する検証データと一致しているかを確認し、一致しなければ改ざんされたと判断する。検知制御部219が防御するファイルアクセスには以下のようなものがある。
(1)ROM112及びHDD114内のファイルの書換制御。
(2)ROM112及びHDD114内のファイルの読込制御。
(3)ROM112及びHDD114内のバイナリ実行制御。
(4)ROM112及びHDD114内のスクリプト実行制御。
これらの詳細については図3を用いて後述する。
制御切替部220は、検知制御部219で実行される改ざん検知機能の切替制御を実行する。通常は、改ざん検知のセキュリティのレベルは、システムとしてデフォルトで規定された内容や、予め管理ユーザによって設定された内容に従って管理されるが、本実施形態ではファームウェアのアップデート処理時に動的に切り替えを実施する。
ホワイトリストに記載されたプログラムの更新処理は、検知制御部219によって更新処理部217に一時的に特殊な権限を与えることにより実施される。ここで、プログラムの更新処理が、ファイルの書き換えに対する改ざん防御処理と同時に実行される場合、ファイルに対する書き込みのシステムコールをフックして、ホワイトリストにハッシュ値の確認を行うことで検知処理を実施する。この際、単位時間に更新する対象ファイルが多数ある場合や、ファイルを記憶する領域が複数の記憶デバイスに跨っていて、ディスクが多重にマウントされている場合には、正しいファイルパス情報の探索やそれに伴う検知処理の実行に時間がかかる場合がある。そのため、プログラムを記憶するディレクトリの構成やシステムの複雑度によっては、プログラムの更新処理の実行時間が増大する問題が発生する。このような問題に対処するため、プログラム更新処理の実行時に、ホワイトリストを用いたセキュリティ設定が有効になっている場合は、制御切替部220による改ざん検知機能の切替制御を実行する。それによりユーザにとって画像形成装置100のダウンタイムの要因となるアップデート時間の増大を防止する。
検証部221は、第1検証手段として機能し、メインコントローラ110のシステム起動時に、ROM112に記憶されたプログラムの検証を実行する。具体的には、予めROM112内のプログラムに署名と次に起動するプログラムの署名を検証するための公開鍵を付与しておき、起動直前に署名検証を行って、検証に成功した場合のみ当該プログラムを起動する。このようなシステム起動時のファームウェア検証を段階的に実施する順次起動する。なお、上述したように、画像形成装置100のブートプログラムの検証については、組み込みコントローラ103で行ってもよいし、メインコントローラ110で行うようにしてもよい。
<改ざん検知制御>
次に、図3を参照して、本実施形態における改ざん検知機能の切替制御について説明する。画像形成装置100が稼働中に検知制御部(第2検証手段)219が実行する改ざん検知機能には、少なくとも、書換制御、読込制御、バイナリ実行制御、及びスクリプト実行制御が含まれる。各機能について説明する。なお、図3に示す情報は、テーブルとして、画像形成装置100のRAM113やHDD114等の記憶部に記憶されることが望ましい。
(書換制御)
書換制御機能は、ROM112及びHDD114内の指定された領域のファイルへの書き換えを監視して、許可していないプログラムや悪意のあるユーザからの編集を防止する。ROM112に記憶されるプログラムは、各アプリケーションから読込専用で利用されることを想定しているため、本実施形態では、当該機能をデフォルトで有効(ON)に設定する。
(読込制御)
読込制御機能は、ROM112及びHDD114内の指定された領域のファイルの読込を禁止して、許可していないプログラムや悪意のあるユーザからのアクセスを防止する。ROM112に記憶されるプログラムは、各アプリケーションから読み込まれることを想定しているため、本実施形態では、当該機能をデフォルトで無効(OFF)に設定する。
(バイナリ実行制御、スクリプト実行制御)
バイナリ実行制御及びスクリプト実行制御の機能は、ROM112及びHDD114内のファイルに対して、ホワイトリストに記載されたバイナリファイルやスクリプトファイルの実行の制限を行う。これにより、不正に追加又は編集された、悪意のあるプログラムの実行を防止する。本実施形態では、これらの機能をデフォルトでONに設定する。
図3は、各機能について、通常動作時301、ファームウェア転送時302、旧ファームウェアバックアップ時303、及びプログラム更新時304のそれぞれの動作時における各機能の設定状況を示す。図3に示すように、本実施形態によれば、改ざん検知機能について、通常動作時301と他の動作時(アップデート動作時)302〜303とにおいて動的な切替を行う。
通常動作時301は、書換制御、バイナリ実行制御、及びスクリプト実行制御を有効とし、読込制御はOFFとする。本実施形態ではシステムの特性上、読込制御をデフォルトOFFとするが、読込を許可するプログラムを指定した上で読込制御をONとしてもよい。
また、本実施形態によれば、プログラムの更新処理が開始された時点で動的に書換制御を無効に設定し、ファームウェア転送時302、旧ファームウェアバックアップ時303、及びプログラム更新時304において書換制御が無効となる。一方で、これらの動作時302〜304においては、バイナリ実行制御及びスクリプト実行制御を有効な状態とする。書換制御を無効にすることで、セキュリティのレベルが一時的に下がる状況にはなるが、バイナリ実行制御及びスクリプト実行制御が常に動作するため、アップデート処理中のマルウェアの実行を防止することが可能となる。また、ファームウェアアップデート後は必ずシステムリブート(画像形成装置100の再起動)が実行される。その後、検証部221による起動時のシステム検証を実施するため、万が一何らかの不正な書換処理があったとしても、ファイルの改ざんを正常に検知することが可能となる。
ここでは、図3を用いてアップデート処理の開始から終了までを通して、改ざん検知制御のうちの書換制御を無効に切り替える例を説明した。しかし、本発明はこれに限定されず、プログラムの配置方法やシステムの特性によって、切り替えるタイミングや切り替える機能は変更してもよい。例えば、外部記憶装置から転送されるファイルの数が少なく、書換制御に伴うアップデート処理時間の増加が無視できる範囲であれば、ファームウェア転送処理の後に改ざん検知制御を切り替えればよい。また、ユーザの設定等によって旧ファームウェアのバックアップ処理を実施しないようなアップデートシーケンスの場合は、プログラムの更新処理の直前に改ざん検知制御を切り替えてもよい。
<処理手順>
次に、図4を参照して、本実施形態における画像形成装置100のファームウェアアップデート時の処理手順を説明する。本フローチャート記載の動作を実現するプログラムは、例えば、ROM112に記憶され、CPU111によりRAM113に読み出して実行される。
まずS401で、CPU111は、ファームウェアアップデートの指示を受け付ける。この指示の受け付けは、操作パネル120を介したユーザからの入力であってもよいし、PC180やサーバ装置170からの通信を介して入力されるものでもよい。続いて、S402で、CPU111は、メインコントローラ110のシステム動作時における改ざん検知機能の設定が有効かどうかを判断する。本実施形態における改ざん検知の設定は、起動時のシステム検証の有無とシステム動作時の改ざん検知機能の有無があるが、詳細な設定については図5を用いて後述する。システム動作時の改ざん検知機能の設定が有効でない場合はS404以降の処理へ進み、通常のファームウェアアップデート処理を実行する。一方、有効である場合は、S403に進む。
S403で、制御切替部220は、有効となっている改ざん検知機能のうち、即ち、書換制御、バイナリ実行制御、及びスクリプト実行制御のうち、書換制御を有効から無効に変更する。その後、S404以降の処理へ進み、CPU111は、機能を切り替えた後の改ざん検知機能で、ファームウェアアップデート処理を実行する。
S404で、CPU111は、外部記憶装置から更新すべきファームウェアファイルを転送し、HDD114に保存する。ここで、ファームウェアファイルの転送元である外部記憶装置は、USBホストI/F118を介した外部USBデバイス160であってもよいし、ネットワークI/F119を介したPC180又はサーバ装置170でもよい。
続いて、S405で、CPU111は、旧ファームウェアのバックアップ処理を実行する。具体的には、CPU111は、ROM112に記憶されたプログラムのうち、バックアップ処理が必要と判断されたプログラムについて、HDD114に対してコピー処理を実行する。一連のアップデート処理の間に電源の不良や記憶領域の書き込みエラー等により更新処理が正常に実行できなかった場合は、ここでバックアップしたプログラムを用いて、ROM112内のプログラムをアップデート前のバージョンへロールバックを実行する。更に、S406で、更新処理部217は、S404でHDD114に転送されたファームウェアのデータを用いて、ROM112内のプログラム群の更新処理を実行する。プログラムの更新処理が正常に終了すると、S407へ進む。
S407で、CPU111は、S403で改ざん検知の書換制御が無効に変更されているかどうかを判断し、無効になっていればS408へ進み、無効から有効に変更した上で、S409に進む。一方、書換制御が有効のままであった場合は、そのままS409に進む。S409で、CPU111は、システムリブートを実行する。
次に、S410で、CPU111は、メインコントローラ110の起動時のシステム検証機能の設定が有効かどうかを判断する。ここでの設定については図5を用いて後述する。S410で起動時のシステム検証機能の設定が無効だった場合はS413に進み、画像形成装置100の起動処理を実行して、本処理フローを終了する。一方、S410で起動時のシステム検証機能の設定が有効だった場合は、S411に進み、検証部221は、メインコントローラ110のシステム起動時に、ROM112に記憶されたプログラムの検証処理を段階的に実行する。
その後、S412で、CPU111は、システム検証が正常に完了したかどうかを判断する。システム検証で不正が見つかった場合はS414に進み、操作パネル120に対して画面を表示してエラーを通知し、本処理フローを終了する。一方、S412で検証結果が正常と判断された場合は、S413に進み、CPU111は、画像形成装置100の起動処理を実行して、本処理フローを終了する。
<画面例>
次に、図5を参照して、本実施形態に係る操作パネル120に表示させるシステム検証の設定画面500の一例を説明する。設定画面500は、ユーザ入力を受け付け、メインコントローラ110に対する、起動時のシステム検証の設定、及び、システム動作時の改ざん検知に関する機能の有効、無効の設定を行う設定画面である。
起動時のシステム検証、及びシステム動作時の改ざん検知は、デフォルトではOFFに設定されている。起動時のシステム検証は、セキュリティ上の安全を確保することはできるが、検証対象のプログラムの規模によっては起動時間が長くなる。その場合、主電源投入時にユーザが画像形成装置100の通常機能を使用できるようになるまでの時間が長くなってしまうため、使用環境やユーザの要望により、起動時におけるシステム検証の実行の有無を設定可能としている。
ONボタン501及びOFFボタン502は起動時のシステム検証の実行についての選択ボタンであり、ONボタン503及びOFFボタン504はシステム動作時の改ざん検知の実行についての選択ボタンである。ここで、初期値ではONボタン501及びOFFボタン502が選択可能となっており、ONボタン501を選択して、起動時のシステム検証を有効に設定すると、ONボタン503及びOFFボタン504が選択可能となる。起動時のシステム検証とシステム動作時の改ざん検知は同時に有効にすることは可能であるが、システム動作時の改ざん検知のみを有効にすることはできない。起動時のシステム検証が有効になっていることがシステム動作時の改ざん検知を有効にする前提条件となる。
上記前提条件より、検知制御部(第2検証手段)219による制御が有効な場合は必ず、検証部(第1検証手段)221が有効となる。従って、ファームウェアアップデート時に書換制御を無効にしたとしても、S409でのシステムリブート後のS411で必ず起動時のシステム検証が実行されるので、アップデート処理中に書き換えに対する防御も適切に実行することが可能となる。
ONボタン501及びOFFボタン502のいずれか、ONボタン501を選択した際は、ONボタン503及びOFFボタン504のいずれかをさらに選択し、OKボタン505を押下することで、それぞれの機能の有効と無効の設定が可能となる。設定変更をキャンセルし、画面を閉じる場合はキャンセルボタン506を選択する。
以上説明したように、本実施形態に係る情報処理装置は、プログラムのアップデートを受け付けると、プログラムの正当性を検証する検証機能に関わる設定情報に基づいて、検証機能に含まれる所定の検証機能を有効又は無効に切り替える。より詳細には、本情報処理装置は、プログラムのアップデートが行われる前に、所定の検証機能を無効に切り替え、当該プログラムのアップデートが終了すると、当該所定の検証機能を有効に切り替える。これにより、本発明は、ソフトウェアをアップデートする際に、プログラムの正当性を検証しつつ、処理時間の増大を防止し、ダウンタイムの削減とセキュリティ機能を両立することができる。
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記実施形態では、ファームウェアの転送(取得)から、バックアップ処理、プログラムの更新処理までの間(S404〜S406)で、書換制御を無効にしたが、本発明はこれに限定されず、他のタイミングで検証機能の有効/無効を切り替えてもよい。また、有効/無効を切り替える機能についても、当該画像形成装置の仕様や設置環境等に応じて任意に変更されてもよい。例えば、ファームウェアの転送から、バックアップ処理、プログラムの更新処理までの間で、書換制御を有効にして、読込制御、バイナリ実行制御、及びスクリプト実行制御のうちの少なくとも1つの制御を無効にしてもよい。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100:画像形成装置、103:組み込みコントローラ、111:CPU、112:ROM、113:RAM、114:HDD、115:操作部I/F、116:プリンタI/F、117:スキャナI/F、118:USBホストI/F、119:ネットワークI/F、120:操作パネル、130:プリンタユニット、140:スキャナユニット、160:外部USBデバイス、170:サーバ装置、180:PC

Claims (9)

  1. 情報処理装置であって、
    プログラムのアップデートを受け付けると、プログラムの正当性を検証する検証機能に関わる設定情報に基づいて、前記検証機能に含まれる所定の検証機能を有効又は無効に切り替える切替手段と、
    前記プログラムのアップデートを行う更新手段と
    を備え、
    前記切替手段は、前記更新手段によって前記プログラムのアップデートが行われる前に、前記所定の検証機能を無効に切り替え、該プログラムのアップデートが終了すると、該所定の検証機能を有効に切り替えることを特徴とする情報処理装置。
  2. 前記情報処理装置のシステム起動時に、ハッシュ関数を用いて作成されたハッシュ値を用いてプログラムの正当性を検証する第1検証手段と、
    前記情報処理装置のシステム動作時に、ホワイトリストを用いてプログラムの正当性を検証する第2検証手段と
    をさらに備え、
    前記所定の検証機能は、前記第2検証手段によって実行される検証機能であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2検証手段によって実行される検証機能には、ホワイトリストを用いたプログラムの実行を監視する機能と、指定された領域のファイルに対する書換を監視する機能と、及び指定された領域のファイルに対する読込を監視する機能とが少なくとも含まれ、
    前記所定の検証機能は、指定された領域のファイルに対する書換を監視する機能であることを特徴とする請求項2に記載の情報処理装置。
  4. 前記検証機能の有効及び無効を設定する設定手段をさらに備え、
    前記設定手段は、前記第1検証手段による検証機能の有効及び無効と、前記第2検証手段による検証機能の有効及び無効とをそれぞれ設定可能な設定画面を表示部に表示し、該設定画面を介して受け付けたユーザ入力に従って、各検証機能の有効及び無効を設定することを特徴とする請求項2又は3に記載の情報処理装置。
  5. 前記更新手段は、
    更新対象のプログラムを取得する外部から取得する手段と、
    旧プログラムのバックアップを行う手段と、
    取得されたプログラムを用いて前記旧プログラムの更新を行う手段と
    を備え、
    前記切替手段は、前記更新対象のプログラムの取得から前記旧プログラムの更新まで、前記所定の検証機能を無効にすることを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
  6. 前記更新手段は、さらに、前記プログラムの更新が終了すると、前記情報処理装置を再起動し、
    前記切替手段は、前記情報処理装置の再起動の前に、前記所定の検証機能を有効にすることを特徴とする請求項5に記載の情報処理装置。
  7. 前記プログラムとは、前記情報処理装置のファームウェアであることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
  8. 情報処理装置の制御方法であって、
    プログラムのアップデートを受け付けると、プログラムの正当性を検証する検証機能に関わる設定情報に基づいて、前記検証機能に含まれる所定の検証機能を有効又は無効に切り替える切替工程と、
    前記プログラムのアップデートを行う更新工程と
    を含み、
    前記切替工程は、前記更新工程によって前記プログラムのアップデートが行われる前に、前記所定の検証機能を無効に切り替え、該プログラムのアップデートが終了すると、該所定の検証機能を有効に切り替えることを特徴とする情報処理装置の制御方法。
  9. 情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
    プログラムのアップデートを受け付けると、プログラムの正当性を検証する検証機能に関わる設定情報に基づいて、前記検証機能に含まれる所定の検証機能を有効又は無効に切り替える切替工程と、
    前記プログラムのアップデートを行う更新工程と
    を含み、
    前記切替工程は、前記更新工程によって前記プログラムのアップデートが行われる前に、前記所定の検証機能を無効に切り替え、該プログラムのアップデートが終了すると、該所定の検証機能を有効に切り替えることを特徴とするプログラム。
JP2019113923A 2019-06-19 2019-06-19 情報処理装置、その制御方法、及びプログラム Pending JP2021002081A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019113923A JP2021002081A (ja) 2019-06-19 2019-06-19 情報処理装置、その制御方法、及びプログラム
US16/901,321 US11669609B2 (en) 2019-06-19 2020-06-15 Information processing apparatus, control method of the same, and storage medium
CN202010551214.3A CN112114842A (zh) 2019-06-19 2020-06-17 信息处理装置及其控制方法和储存介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019113923A JP2021002081A (ja) 2019-06-19 2019-06-19 情報処理装置、その制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2021002081A true JP2021002081A (ja) 2021-01-07
JP2021002081A5 JP2021002081A5 (ja) 2022-06-24

Family

ID=73799371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019113923A Pending JP2021002081A (ja) 2019-06-19 2019-06-19 情報処理装置、その制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US11669609B2 (ja)
JP (1) JP2021002081A (ja)
CN (1) CN112114842A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022147584A (ja) * 2021-03-23 2022-10-06 株式会社東芝 制御装置、情報処理装置、および情報処理システム
US20230114009A1 (en) * 2020-02-28 2023-04-13 Hitachi Astemo, Ltd. Information Processing Apparatus and Program Starting Method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102730183B1 (ko) * 2019-01-18 2024-11-15 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
JP7292328B2 (ja) * 2021-05-28 2023-06-16 キヤノン株式会社 情報処理装置及びその制御方法
US20230132214A1 (en) * 2021-10-25 2023-04-27 Canon Kabushiki Kaisha Information processing apparatus and method of the same
JP2023114263A (ja) * 2022-02-04 2023-08-17 東芝テック株式会社 情報処理装置、画像形成装置及び情報処理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271420A (ja) * 2002-03-18 2003-09-26 Matsushita Electric Ind Co Ltd 電子制御装置
JP2005208814A (ja) * 2004-01-21 2005-08-04 Nec Corp 改ざん検知制御装置、改ざん検知制御システム、改ざん検知制御方法、プログラムおよび記録媒体
JP4758479B2 (ja) * 2005-12-30 2011-08-31 聯想(北京)有限公司 安全チップによるウイルス防止方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3726726B2 (ja) * 2001-08-20 2005-12-14 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置および管理ユニット
JP4189570B2 (ja) * 2001-12-28 2008-12-03 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、ファームウェアの送信方法、及び画像処理装置の管理システム
TWI250407B (en) * 2004-06-10 2006-03-01 Acer Inc Electronic system capable of using universal plug and play (UPNP) protocol to update software program and method thereof
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
JP5943681B2 (ja) * 2012-04-09 2016-07-05 キヤノン株式会社 情報処理装置、情報処理装置のファームウエア更新方法及びプログラム
US9349009B2 (en) * 2013-07-15 2016-05-24 Paul A. Rivera Method and apparatus for firmware based system security, integrity, and restoration
JP2016139322A (ja) * 2015-01-28 2016-08-04 株式会社リコー 画像処理装置及びそれを備えた電子黒板
CN110476167B (zh) * 2017-02-27 2023-10-13 英万齐股份有限公司 基于上下文的计算机安全风险缓解的系统和方法
JP6953947B2 (ja) * 2017-09-22 2021-10-27 コニカミノルタ株式会社 情報処理装置、ファームウェア更新プログラム
JP6942601B2 (ja) 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP2020160747A (ja) 2019-03-26 2020-10-01 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US10776102B1 (en) * 2019-05-10 2020-09-15 Microsoft Technology Licensing, Llc Securing firmware installation on USB input device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271420A (ja) * 2002-03-18 2003-09-26 Matsushita Electric Ind Co Ltd 電子制御装置
JP2005208814A (ja) * 2004-01-21 2005-08-04 Nec Corp 改ざん検知制御装置、改ざん検知制御システム、改ざん検知制御方法、プログラムおよび記録媒体
JP4758479B2 (ja) * 2005-12-30 2011-08-31 聯想(北京)有限公司 安全チップによるウイルス防止方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230114009A1 (en) * 2020-02-28 2023-04-13 Hitachi Astemo, Ltd. Information Processing Apparatus and Program Starting Method
JP2022147584A (ja) * 2021-03-23 2022-10-06 株式会社東芝 制御装置、情報処理装置、および情報処理システム
JP7408593B2 (ja) 2021-03-23 2024-01-05 株式会社東芝 制御装置、情報処理装置、および情報処理システム

Also Published As

Publication number Publication date
CN112114842A (zh) 2020-12-22
US20200401688A1 (en) 2020-12-24
US11669609B2 (en) 2023-06-06

Similar Documents

Publication Publication Date Title
JP2021002081A (ja) 情報処理装置、その制御方法、及びプログラム
JP5090790B2 (ja) 機器、ライセンス管理方法、ライセンス管理プログラム、及びライセンス管理システム
US9576132B2 (en) Information processing apparatus and information processing method
US20110321172A1 (en) Management apparatus, license management server, electronic equipment, electronic equipment management system, management method, program, and recording medium
JP5268694B2 (ja) ライセンス管理システム、画像形成装置およびライセンス管理方法
US7430669B2 (en) Image forming apparatus, launching method of program in the apparatus, image forming system, and program and storage medium therefor
JP2019212114A (ja) 情報処理装置、その制御方法およびプログラム
JP7574367B2 (ja) 情報処理装置、情報処理方法およびプログラム
US20220366051A1 (en) Information processing apparatus, information processing method, and storage medium
US11928217B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
US20190325138A1 (en) Information processing apparatus, control method, and storage medium
JP7608211B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2020160747A (ja) 情報処理装置、その制御方法、及びプログラム
US10778861B2 (en) Image forming apparatus, method for controlling image forming apparatus, and storage medium configured to change update processing control depending on whether an update target application is of a type for offering an authentication function
US20100333214A1 (en) Information processing apparatus, control method, and control program
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
KR102467636B1 (ko) 정보 처리장치, 정보 처리장치의 제어방법, 및 기억매체
JP7612755B2 (ja) 情報処理装置、情報処理方法およびプログラム
US10904405B2 (en) Image processing apparatus that displays a message when alteration of an application has been detected, control method thereof, and storage medium
JP2020082441A (ja) 画像形成装置、その制御方法、及びプログラム
US11330129B2 (en) Image forming system, image forming apparatus, and storing medium storing application control program
JP2023172570A (ja) 情報処理装置及び情報処理装置の制御方法
JP2021117589A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
JP2021117523A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
JP2010067232A (ja) 画像形成装置、ライセンス管理方法、プログラム、及びライセンス管理システム

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220616

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230413

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230721