JP2021047620A - 情報処理装置、ソフトウェア管理方法及びプログラム - Google Patents
情報処理装置、ソフトウェア管理方法及びプログラム Download PDFInfo
- Publication number
- JP2021047620A JP2021047620A JP2019169583A JP2019169583A JP2021047620A JP 2021047620 A JP2021047620 A JP 2021047620A JP 2019169583 A JP2019169583 A JP 2019169583A JP 2019169583 A JP2019169583 A JP 2019169583A JP 2021047620 A JP2021047620 A JP 2021047620A
- Authority
- JP
- Japan
- Prior art keywords
- software
- information processing
- processing device
- unit
- communication unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】検証に失敗したソフトウェアの復旧を可能にするコスト効率のよい仕組みを実現すること。【解決手段】通信部、ソフトウェアを記憶する記憶部、前記ソフトウェアの正当性を検証する検証部、及び前記検証部により正当であると判定された前記ソフトウェアを実行する実行部、を備える情報処理装置において、前記通信部は、前記ソフトウェアに対応するソフトウェアを記憶する記憶部及び当該ソフトウェアを実行する実行部を備える他の装置と通信可能であり、前記情報処理装置の前記記憶部に記憶されている前記ソフトウェアが正当ではないと前記検証部により判定された場合に、前記通信部は、前記他の装置から、前記対応するソフトウェアを受信し、前記情報処理装置の前記記憶部は、前記通信部により受信された前記対応するソフトウェアを記憶し、前記情報処理装置の前記実行部は、前記記憶部に記憶された前記対応するソフトウェアを実行する。【選択図】図2
Description
本開示は、情報処理装置、ソフトウェア管理方法及びプログラムに関する。
情報機器に組み込まれるソフトウェアに不正にアクセスした第三者又は不正なプログラムがソフトウェアを改竄するリスクへの対策として、機器の起動時にソフトウェアの正当性を検証する手法が知られている。ソフトウェアの正当性の検証は、ソフトウェアの改竄のみならずソフトウェアの経年劣化に起因する不具合を防止する観点からも有益である。
特許文献1は、情報機器の起動時のソフトウェアの検証に失敗した場合に、正当なソフトウェアを外部の管理サーバから情報機器へダウンロードすることで、ソフトウェアを復旧する手法を開示している。
しかしながら、特許文献1により開示された手法は、正当なソフトウェアを提供する管理サーバを予め用意しておくことを要し、システムの構築及び運用のコストを増大させる。一方、個々の装置の内部でソフトウェアのバックアップを追加的に保持する手法も考えられるが、改竄に対してロバストなメモリデバイスは一般に高価であり、バックアップを追加的に保持する手法もまたコスト面で改善の余地を有する。
そこで、本開示は、検証に失敗したソフトウェアの復旧を可能にするコスト効率のよい仕組みを実現することを目的とする。
ある観点によれば、通信部、ソフトウェアを記憶する記憶部、前記ソフトウェアの正当性を検証する検証部、及び前記検証部により正当であると判定された前記ソフトウェアを実行する実行部、を備える情報処理装置であって、前記通信部は、前記ソフトウェアに対応するソフトウェアを記憶する記憶部及び当該ソフトウェアを実行する実行部を備える他の装置と通信可能であり、前記情報処理装置の前記記憶部に記憶されている前記ソフトウェアが正当ではないと前記検証部により判定された場合に、前記通信部は、前記他の装置から、前記対応するソフトウェアを受信し、前記情報処理装置の前記記憶部は、前記通信部により受信された前記対応するソフトウェアを記憶し、前記情報処理装置の前記実行部は、前記記憶部に記憶された前記対応するソフトウェアを実行する、情報処理装置が提供される。対応する方法及びプログラムもまた提供される。
また別の観点によれば、通信部、ソフトウェアを記憶する記憶部、及び前記記憶部に記憶された前記ソフトウェアを実行する実行部、を備える情報処理装置であって、前記通信部は、他の装置に記憶されている対応するソフトウェアが正当ではないと前記他の装置において判定されたことを示す通知信号が前記他の装置から受信された場合に、前記記憶部に記憶されている前記ソフトウェアを前記他の装置へ送信する、情報処理装置が提供される。対応する方法及びプログラムもまた提供される。
本開示によれば、検証に失敗したソフトウェアの復旧を可能にするコスト効率のよい仕組みを実現することができる。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一の又は同様の構成に同一の参照番号を付し、重複した説明は省略される。
<<1.システム構成例>>
<1−1.全体的な構成>
本節では、本開示に係る技術が複合機(Multi-Function Peripheral(MFP))に適用される例を説明する。しかしながら、本開示に係る技術は、複合機に限定されず、いかなる種類の情報処理装置に適用されてもよい。本開示に係る技術は、プリンタ、スキャナ又はファクシミリといった画像処理装置に適用されてもよい。また、特に説明の無い限り、以下に説明する装置、デバイス、モジュール及びチップといった構成要素の各々は、単一のエンティティで構成されてもよく、又は物理的に異なる複数のエンティティから構成されてもよい。
<1−1.全体的な構成>
本節では、本開示に係る技術が複合機(Multi-Function Peripheral(MFP))に適用される例を説明する。しかしながら、本開示に係る技術は、複合機に限定されず、いかなる種類の情報処理装置に適用されてもよい。本開示に係る技術は、プリンタ、スキャナ又はファクシミリといった画像処理装置に適用されてもよい。また、特に説明の無い限り、以下に説明する装置、デバイス、モジュール及びチップといった構成要素の各々は、単一のエンティティで構成されてもよく、又は物理的に異なる複数のエンティティから構成されてもよい。
図1は、一実施形態に係る情報処理システム1の構成の一例を示すブロック図である。図1を参照すると、情報処理システム1は、第1のMFP10a、第2のMFP10b、第3のMFP10c、及びユーザ端末40を含む。第1のMFP10a、第2のMFP10b、第3のMFP10c、及びユーザ端末40は、ネットワーク50を介して相互に接続される。
3つのMFP10a、10b及び10cは、同種の又は互いに派生関係にある種類のMFPである。図1では、第1のMFP10a及び第2のMFP10bについて、個々の装置の機能ブロックが示されており、第3のMFP10cについて装置の外観が示されている。なお、これ以降の説明において、MFP10a、10b及び10cをMFP10と総称することがある。
ユーザ端末40は、情報処理システム1を利用し又は管理するユーザ又はエンジニアにより使用される端末装置である。ユーザ端末40は、例えばPC(Personal Computer)又はスマートフォンといった、任意の種類の端末装置であってよい。ネットワーク50は、例えばオフィス又は家庭といった任意の場所に設置され得るネットワークである。ネットワーク50は、有線ネットワークであってもよく、又は無線ネットワークであってよい。
<1−2.装置の構成>
上述したように、第1のMFP10a、第2のMFP10b及び第3のMFP10cは、同種の又は互いに派生関係にある種類のMFPである。そのため、ここでは1つのMFP10に焦点を当てて、その構成の一例を説明する。他のMFPもまた同様に構成されてよいが、本実施形態の要旨に関連しない部分において、MFPの構成は互いに相違してもよい。
上述したように、第1のMFP10a、第2のMFP10b及び第3のMFP10cは、同種の又は互いに派生関係にある種類のMFPである。そのため、ここでは1つのMFP10に焦点を当てて、その構成の一例を説明する。他のMFPもまた同様に構成されてよいが、本実施形態の要旨に関連しない部分において、MFPの構成は互いに相違してもよい。
図1を参照すると、MFP10は、コントローラ11、スキャナデバイス12、プリンタデバイス13、操作デバイス14、認証デバイス15、節電ボタン16、及び電力制御部17を備える。コントローラ11は、記憶デバイス31、通信I/F32及び制御ユニット33を含む。
スキャナデバイス12は、コントローラ11からの指示に応じて、原稿を光学的に読取って読取画像の画像データを生成する。プリンタデバイス13は、コントローラ11から入力される印刷用の画像データに基づいて、画像を用紙へ印刷する。
操作デバイス14は、対話的なユーザインタフェースをユーザに提供するデバイスである。例えば、操作デバイス14は、タッチパネル20及び操作キー21を有し、MFP10に対する操作又は情報の入力を受け付ける。また、操作デバイス14は、例えばタッチパネル20の画面又はLCD(Liquid Crystal Display)のような別個のディスプレイの画面上に視覚的な情報を表示する。操作キー21は、印刷部数などの数値の入力用の数字キー、コピーボタン、及び停止ボタンといった、物理的な入力手段を含み得る。認証デバイス15は、MFP10を利用するユーザを認証するためのデバイスである。例えば、ID/パスワード認証又は生体認証といった手段で認証デバイス15により成功裏に認証されたユーザのみが、MFP10を操作し又はMFP10の機能を利用することを許可されてもよい。
節電ボタン16は、物理的に操作デバイス14の近傍又は同一ユニット上に配置され得る、複数の電力モードの間の切替えのためのボタン(又はスイッチ)である。節電ボタン16は、後述する電力制御部17によって操作デバイス14の電源がオフとされている場合にも操作を検出できるように、他のデバイスから電気的に分離され、独立してコントローラ11へ接続される。ユーザは、節電ボタン16を押下することにより、通常モード、節電モード及びスタンバイモードといったモードの間でMFP10の電力モードをトグルする(遷移させる)ことができる。電力制御部17は、MFP10を構成する各デバイスへの電力の供給を制御するコントローラである。電力制御部17は、電力モードに依存して、図示しないスイッチをオン/オフすることで、例えばコントローラ11、スキャナデバイス12、プリンタデバイス13、操作デバイス14及び認証デバイス15に電源から適時に電力を供給させる。
記憶デバイス31は、MFP10により生成され、通信され又は利用される多様なデータ及びプログラムを記憶するデバイスである。記憶デバイス31は、例えば、HDD(Hard Disk Drive)であってもよい。例えば、記憶デバイス31は、スキャナデバイス12により生成された読取画像の画像データを記憶する。また、記憶デバイス31は、プリンタデバイス13により印刷されるべき画像の印刷用データを記憶する。通信インタフェース(I/F)32は、MFP10によるネットワーク50を介する他の装置との間の通信のためのインタフェースである。即ち、MFP10は、通信I/F32を介して他の装置と通信可能である。通信I/F32は、例えば、LAN(Local Area Network)I/Fであってもよい。例えば、通信I/F32は、スキャナデバイス12により生成された読取画像の画像データを指定された宛先へ送信する。また、通信I/F32は、プリンタデバイス13により印刷されるべき画像の印刷用データを受信する。さらに、通信I/F32は、後述するソフトウェアの復旧時の装置間の通信のためにも使用される。
制御ユニット33は、1つ以上の制御プログラムを実行することにより、MFP10の上述した機能の全般を制御するユニットである。図1に示したように、制御ユニット33は、プロセッサ34、SPI(Serial Peripheral Interface)フラッシュ35及びRAM(Random Access Memory)36を含む。
プロセッサ34は、例えばCPU(Central Processing Unit)又はMPU(Micro Processing Unit)であってよく、MFP10の機能を制御するための制御プログラムを実行する。例えば、プロセッサ34は、MFP10の電源が投入されると、内部のROM(Read Only Memory)に予め書き込まれているブートプログラムをRAM36へロードして実行する。プロセッサ34は、ブートプログラムに従って、SPIフラッシュ35に記憶されているソフトウェアであるBIOS(Basic Input/Output System)プログラムをRAM36へロードする。SPIフラッシュ35内のBIOSプログラムは、カーネルからはファイルとしてアクセス不能である。本実施形態において、プロセッサ34は、BIOSの一部であり又はBIOSから独立したプログラムコードを実行することにより、SPIフラッシュ35からロードされる1つ以上のソフトウェアの正当性を検証する。プロセッサ34は、検証の結果として正当であると判定されたソフトウェアを実行し、それによりMFP10の各デバイスが安全に制御され、MFP10の正常な動作が保証される。
本実施形態において、正当性検証の対象のソフトウェアは、後続して実行されるべきプログラムをロードするためのローダ、及びオペレーティングシステムの中心的機能を担うカーネルなど、いかなる種類のソフトウェアであってもよい。SPIフラッシュ35とは異なる記憶部(例えば、記憶デバイス31又は他のメモリ)に記憶されるソフトウェアが正当性検証の対象に含められてもよい。
このように、本実施形態において、MFP10のプロセッサ34及びRAM36は、SPIフラッシュ35に記憶されているソフトウェアの正当性を検証する検証部として機能する。プロセッサ34及びRAM36は、さらに、検証の結果として正当であると判定されたソフトウェアを実行する実行部としても機能する。
<1−3.課題及び解決策の検討>
MFP10への不正なアクセス又は不正なプログラムの実行に起因して、SPIフラッシュ35に記憶されているソフトウェアが改竄されることがあり得る。また、装置の経年劣化によってソフトウェアのビットが書き換わることもあり得る。このように開発者の意図に反して変化した(改竄され又は劣化した)ソフトウェアが実行されると、MFP10の動作に不具合が生じる。上述したソフトウェアの正当性の検証は、こうしたMFP10の動作の不具合を防止するための対策である。ソフトウェアの検証に失敗した場合に、正当でないソフトウェアを正当なソフトウェアに置き換えることで、MFP10の状態を復旧することができる。ここで、例えば外部の管理サーバに正当なソフトウェアを予め用意しておくことが考えられるが、そうした追加的なサーバの導入は、システムの構築及び運用のコストを増大させる。個々の装置の内部でソフトウェアのバックアップを保持しておくことも、装置の実装コストを増大させる点で、最適な解決策ではない。
MFP10への不正なアクセス又は不正なプログラムの実行に起因して、SPIフラッシュ35に記憶されているソフトウェアが改竄されることがあり得る。また、装置の経年劣化によってソフトウェアのビットが書き換わることもあり得る。このように開発者の意図に反して変化した(改竄され又は劣化した)ソフトウェアが実行されると、MFP10の動作に不具合が生じる。上述したソフトウェアの正当性の検証は、こうしたMFP10の動作の不具合を防止するための対策である。ソフトウェアの検証に失敗した場合に、正当でないソフトウェアを正当なソフトウェアに置き換えることで、MFP10の状態を復旧することができる。ここで、例えば外部の管理サーバに正当なソフトウェアを予め用意しておくことが考えられるが、そうした追加的なサーバの導入は、システムの構築及び運用のコストを増大させる。個々の装置の内部でソフトウェアのバックアップを保持しておくことも、装置の実装コストを増大させる点で、最適な解決策ではない。
そこで、本開示に係る技術では、ある装置においてソフトウェアの検証が失敗した場合に、当該装置が、同一のシステム内に存在する他の装置から、復旧のためのソフトウェアを受信するものとする。復旧のためのソフトウェアは、バックアップではなく、当該他の装置の通常の動作の際に実行されるソフトウェアである。それにより、別個の管理サーバを導入する必要性も、バックアップ用のソフトウェアのためにハードウェアリソースを増強する必要性も回避される。
具体的には、本実施形態において、情報処理システム1の各MFP10は、検証失敗時に他のMFP10へソフトウェアの提供を要求する要求側装置になり得ると共に、他のMFP10からの要求に応じてソフトウェアを提供する提供側装置にもなり得る。以下の説明では、前者のMFP10を異常機、後者のMFP10を救援機という。
概略的な説明のために、ここでは、第1のMFP10aが異常機、第2のMFP10bが救援機であるものとする。第1のMFP10aは、第1のMFP10aにおける実行用の第1のソフトウェアが正当ではないと判定した場合、第2のMFP10bから第2のMFP10bにおける実行用の第2のソフトウェアを通信I/F32を介して受信する。そして、第1のMFP10aは、受信した第2のソフトウェアをSPIフラッシュ35に記憶させて(例えば、第1のソフトウェアと置き換えて)、当該第2のソフトウェアをプロセッサ34において実行する。一方、第2のMFP10bは、第1のMFP10aにおける実行用の第1のソフトウェアが正当ではないと判定されたことを示す通知信号を第1のMFP10aから受信する。そして、第2のMFP10bは、第2のMFP10bにおける実行用の第2のソフトウェアを、第2のMFP10bの通信I/F32を介して第1のMFP10aへ送信する。
なお、各MFP10において、ソフトウェアの正当性の検証、ソフトウェアの実行、及び検証失敗時の正当なソフトウェアの送信及び受信は、単一のプロセッサ(例えば、プロセッサ34)によって行われてもよい。また、これら処理は、互いに連携する複数のプロセッサによって行われてもよい。例えば、各MFP10は、プロセッサ34とは別個の、ソフトウェアの正当性の検証のための専用のプロセッサを有していてもよい。なお、本明細書におけるソフトウェアとの用語は、コンピュータプログラム、コンピュータ命令、ファームウェア、プロシージャ、及びコードシーケンスなどを広く包含するものとする。ここで説明した解決策のいくつかのより詳細な実施例について、以下でさらに説明する。
<<2.第1実施例>>
<2−1.起動時の処理の流れ>
情報処理システム1の第1のMFP10a、第2のMFP10b及び第3のMFP10cの各々は、起動時に1つ以上のソフトウェアの正当性を検証する。その検証の結果、どのMFP10も異常機となる可能性がある。ここでは、そうした異常機としての処理を含む、第1実施例に係るMFP10の起動時の処理の流れについて、図2のフローチャートを用いて説明する。
<2−1.起動時の処理の流れ>
情報処理システム1の第1のMFP10a、第2のMFP10b及び第3のMFP10cの各々は、起動時に1つ以上のソフトウェアの正当性を検証する。その検証の結果、どのMFP10も異常機となる可能性がある。ここでは、そうした異常機としての処理を含む、第1実施例に係るMFP10の起動時の処理の流れについて、図2のフローチャートを用いて説明する。
図2に示した処理は、例えばMFP10のプロセッサ34により実行される。この処理に先立って、MFP10の記憶デバイス31には、復旧用のソフトウェアを提供可能な1つ以上の装置のリスト(以下、救援機リストという)が登録されているものとする。この救援機リストについて、後にさらに説明する。なお、以下の説明では、処理ステップをS(ステップ)と略記する。
まず、S200で、MFP10のプロセッサ34は、ユーザによるMFP10の電源の投入に応じて、ブートプログラムを実行し、それによりBIOSプログラムをSPIフラッシュ35からRAM36へロードする。
次いで、S202で、プロセッサ34は、ロードしたBIOSプログラムを実行することにより、BIOSを起動する。ここでは、BIOSは、正当性検証用のプログラムコードを含むものとする。S204で、プロセッサ34は、BIOSの動作の一部として、MFP10の1つ以上のソフトウェア(例えば、ローダ及びカーネル)の正当性を検証する。
ソフトウェアの正当性の検証は、例えば、デジタル署名技術に基づいて実現され得る。具体的には、まず、正当性検証の対象のソフトウェアがMFP10へ組み込まれる前に、ソフトウェアのプログラムデータからソフトウェアのダイジェスト値(ハッシュ値)が導出される。さらに、そのダイジェスト値を公開鍵暗号の鍵ペアのうちの秘密鍵で暗号化することにより、ソフトウェアのデジタル署名が生成される。生成されたデジタル署名は、鍵ペアのうちの公開鍵と共に、例えばプロセッサ34によりアクセス可能な不揮発性のメモリに記憶される。正当性の検証の際に、プロセッサ34は、検証の対象のソフトウェアのダイジェスト値を導出し、及びメモリに記憶しておいたデジタル署名を公開鍵で復号する。そして、導出したソフトウェアのダイジェスト値がデジタル署名の復号により得られた正しいダイジェスト値に一致する場合には、ソフトウェアは正当であると判定される。一方、ダイジェスト値が一致しない場合には、ソフトウェアは(改竄又は劣化といった)何らかの原因で変化しているために正当でないと判定される。
図2の処理は、こうした正当性検証の結果に依存して、S206で分岐する。ソフトウェアは正当であるとプロセッサ34が判定した場合、処理はS208へ進む。一方、ソフトウェアは正当でないとプロセッサ34が判定した場合、処理はS212へ進む。
S206で、プロセッサ34は、正当であると判定したソフトウェアを実行する。例えば、プロセッサ34は、プログラムローダを実行することにより、後続して実行されるべきプログラムをRAM36へロードする。次いで、プロセッサ34は、カーネルを実行することにより、MFP10のオペレーティングシステムを起動する。その結果、S210で、MFP10の起動が全体として成功し、MFP10はユーザによる操作を待受ける状態に入る。
一方、S212では、プロセッサ34は、ソフトウェアが正当ではないと判定したため、復旧用のソフトウェアを提供可能な装置のリスト、即ち上述した救援機リストから、救援機を選択する。
図3は、一例としての救援機リスト300の構成を示している。図3を参照すると、救援機リスト300は、ホスト301、IPアドレス302及びステータス303という3つのデータ項目を有する。ホスト301は、救援機の候補として登録された装置の各々を識別する名称を表す。IPアドレス302は、各装置に割り当てられたIPアドレスを表す。各装置のIPアドレス302の値は、例えば、エンジニアにより予め静的に割り当てられてもよく、又はシステムにより動的に割り当てられてもよい。ステータス303は、各装置の現在の動作ステータス(例えば、稼働中であるか否か)を表す。
図3の例では、救援機リスト300に、それぞれ「MFP−B」、「MFP−C」及び「MFP−D」というホスト名を有する3つの装置が登録されている。これら装置には固有のIPアドレスが割り当てられている。ホスト「MFP−B」及び「MFP−C」のステータスは「ON」(即ち、稼働中)であり、ホスト「MFP−D」のステータスは「OFF」である。なお、救援機リスト300において、図示した項目のいくつかが省略されてもよく、又は他の項目が追加されてもよい。例えば、救援機リスト300は、救援機の候補のIPアドレスのみを列挙した単なる配列であってもよい。
救援機リスト300は、例えば、情報処理システム1のエンジニアにより、MFP10の操作デバイス14又はユーザ端末40を用いて予め作成され、各MFP10の記憶デバイス31に記憶され得る。プロセッサ34は、救援機リスト300に登録されている装置の動作の開始及び終了といったステータスの変更を、SNMP(Simple Network Management Protocol)のような管理プロトコルを用いて監視してもよい。そして、プロセッサ34は、その監視を通じて検知されるステータスの変更に基づいて、救援機リスト300を更新してもよい。また、情報処理システム1のエンジニアが、各MFP10の救援機リスト300を(作成時と同様の手段で)更新してもよい。
例えば、第1のMFP10aの救援機リスト300に登録される装置は、第1のMFP10aからネットワークを介して到達可能な装置であって、第1のMFP10aと同一のソフトウェア(例えば、ローダ及びカーネル)を有している装置である。例えば、第1のMFP10aと同じ種類の又は派生関係にある種類のMFPは、第1のMFP10aにとっての救援機の候補であり得る。
次いで、S214で、プロセッサ34は、救援機リスト300から選択した他のMFP10へ、自装置での実行用のソフトウェアの検証に失敗したことを示す通知信号を送信する。この通知信号は、例えばSNMPトラップ信号であってもよい。例えば、ソフトウェア検証失敗に関連付けられる固有のトラップ番号を用いた拡張トラップ信号として、通知信号を実装することができる。通知信号は、正当ではないと判定されたソフトウェアを識別するソフトウェア識別情報を含んでもよい。ソフトウェア識別情報は、例えば、ビットのオン/オフによってソフトウェアごとの検証の成功/失敗を示すビット列、又は検証に失敗したソフトウェアの識別子若しくはファイル名などであってよい。また、通知信号は、異常機の機種を示す機種情報を含んでもよい。
次いで、S220で、プロセッサ34は、通知信号の送信先の救援機からの応答信号の受信を待受ける。例えば、一定の時間内に救援機から応答信号が受信された場合には、処理はS230へ進む。一方、救援機から応答信号が受信されない場合には、処理はS222へ進む。
救援機から応答信号が受信されない場合、S222で、プロセッサ34は、救援機リスト300内に救援機の候補である他の装置が残っているか否かを判定する。救援機の候補が残っている場合には、処理はS212へ戻り、プロセッサ34は、救援機リスト300内の次の候補を選択して、選択した候補へ上述した通知信号を送信する。救援機の候補が残っていない場合には、ソフトウェアは復旧されず、S224でMFP10の起動は失敗に終わる。
通知信号に対する応答として救援機から受信される応答信号には、救援機における実行用のソフトウェアのコピーにアクセス可能なアドレスが記述される。このアドレスは、例えばURL(Uniform Resource Locator)形式であり得る。S230で、プロセッサ34は、受信した応答信号において指定されるアドレスへアクセスすることにより、救援機からソフトウェアを通信I/F32を介して受信する。ここでの救援機へのアクセスは、例えば、応答信号において指定されたアドレスを含むHTTP(Hypertext Transfer Protocol)要求を用いて行われてよい。プロセッサ34は、復旧を要するソフトウェアの数だけHTTP要求を繰り返してもよい。
次いで、S232で、プロセッサ34は、S204での検証において正当ではないと判定したソフトウェアを、S230で救援機から受信したソフトウェアに置換する。そして、S234で、プロセッサ34はMFP10を再起動し、再起動後にソフトウェアは正当であると判定され、S210でMFP10が全体として成功裏に起動する。
なお、図2では、異常機が救援機リスト内の候補への通知信号の送信と応答信号の待受けとを順次繰り返す例を説明したが、本実施例はかかる例には限定されない。例えば、異常機は、救援機リスト内の候補の全てに並列的に通知信号を送信してもよい。そのケースにおいて、複数の救援機から応答信号が受信された場合、異常機は、例えば応答信号の受信タイミングが最も早かった救援機など、任意の基準で実際にアクセスする救援機を選択してもよい。
このように、本実施形態では、正当なソフトウェアを提供可能な特別な管理サーバが用意されなくても、ソフトウェアの検証に失敗した情報処理装置が、システム内の他の装置からソフトウェアを受信して復旧を行うことができる。バックアップ用のソフトウェアもまた不要である。
<2−2.救援時の処理の流れ>
情報処理システム1のMFP10の各々は、成功裏に起動した後、スキャン及び印刷といった目的に供されつつ、他の装置のための救援機としての役割も担う。ここでは、そうした救援機としての処理の流れについて、図4のフローチャートを用いて説明する。図4に示した処理は、例えばMFP10のプロセッサ34により実行される。
情報処理システム1のMFP10の各々は、成功裏に起動した後、スキャン及び印刷といった目的に供されつつ、他の装置のための救援機としての役割も担う。ここでは、そうした救援機としての処理の流れについて、図4のフローチャートを用いて説明する。図4に示した処理は、例えばMFP10のプロセッサ34により実行される。
まず、MFP10のプロセッサ34は、S400で、MFP10の電源の投入に応じてBIOSプログラムをRAM36へロードし、S402でBIOSを起動する。その後、図2を用いて説明した起動時の処理を経て、S404でMFP10の起動が全体として成功したものとする。これ以降の処理は、例えばカーネルのプログラムコードをプロセッサ34が実行することにより実現され得る。
MFP10のプロセッサ34は、MFP10が稼働している間、S410で、他のMFP10からの通知信号の受信を待受ける。ソフトウェアの検証に失敗したことを示す通知信号が通信I/F32を介して受信されると、処理はS420へ進む。通知信号は、上述したように、例えばSNMPトラップ信号であってよい。
S420で、プロセッサ34は、MFP10(救援機)における実行用のソフトウェア(自装置の起動時に正当性を検証したソフトウェア)が通知信号の送信元の装置(即ち、異常機)における実行に適しているかを判定する。プロセッサ34は、例えば、通知信号に含まれるソフトウェア識別情報により識別されるソフトウェアと同じソフトウェアを自ら実行している場合に、その実行中のソフトウェアが異常機にも適合すると判定してもよい。また、プロセッサ34は、通知信号に含まれる機種情報により示される機種が、自装置の機種と同一であり又は派生関係にある場合に、自ら実行中のソフトウェアが異常機にも適合すると判定してもよい。ソフトウェアの適合性が肯定される場合、処理はS430へ進む。そうではない場合、処理はS410へ戻る。
S430で、プロセッサ34は、救援機における実行用のソフトウェアを、異常機によりアクセス可能な記憶領域(例えば、記憶デバイス31の所定の記憶領域)へコピーする。一例として、救援機は、HTTPサーバとして動作することにより、異常機からのアクセスを受け付けてもよい。この場合、プロセッサ34は、S430で、HTTPサーバを起動し、HTTPサーバの公開ディレクトリにソフトウェアをコピーし得る。ソフトウェアのコピー先のパスは、第三者による推測又は悪用を防ぐために、一時的に(例えば、ランダムに)生成されるパスであってもよい。
次いで、S432で、プロセッサ34は、受信した通知信号に対する応答として、ソフトウェアへのアクセス用の上記記憶領域のアドレスを指定する応答信号を、通信I/F32を介して異常機へ送信する。この応答信号もまた、SNMPトラップ信号(例えば、固有のトラップ番号を用いた拡張トラップ信号)であってよい。
その後、プロセッサ34は、S440で、応答信号において指定したアドレスへの異常機からのアクセスを待受ける。ここでの異常機からのアクセスをソフトウェア要求という。ソフトウェア要求は、例えば、URL形式のアドレスを含むHTTP要求であってよい。ソフトウェア要求が受信されると、処理はS442へ進む。
プロセッサ34は、ソフトウェア要求の受信に応じて、S442で、異常機での実行に適した正当なソフトウェアを、通信I/F32を介して異常機へ送信する。次いで、S444で、プロセッサ34は、ソフトウェア要求の待受けを終了(例えば、HTTPサーバを停止)する。また、ソフトウェア要求の待受けは、応答信号の送信から一定の期間の経過後に終了してもよい。
なお、救援機と異常機との間の接続は、SSL(Secure Sockets Layer)によって暗号化されてもよい(即ち、HTTPSが利用されてもよい)。また、HTTPの代わりに、FTP(File Transfer Protocol)又はSCP(Secure Copy Protocol)といった転送プロトコルが、救援機から異常機へのソフトウェアの送信のために利用されてもよい。
このように、本実施形態では、正当なソフトウェアを提供可能な特別な管理サーバが用意されなくても、システム内の複数の情報処理装置のうちの1つが救援機となって、異常機のソフトウェアの復旧を支援することができる。
<<3.第2実施例>>
第1実施例では、ソフトウェアの検証に失敗した異常機が救援機リストに含まれる救援機の候補に通知信号を個別に(例えば、ユニキャストで)送信する手法を説明した。しかしながら、通知信号を送信する手法は、かかる例には限定されない。本節で説明する第2実施例では、通知信号は、システム内にブロードキャストされるものとする。
第1実施例では、ソフトウェアの検証に失敗した異常機が救援機リストに含まれる救援機の候補に通知信号を個別に(例えば、ユニキャストで)送信する手法を説明した。しかしながら、通知信号を送信する手法は、かかる例には限定されない。本節で説明する第2実施例では、通知信号は、システム内にブロードキャストされるものとする。
図5は、第2実施例に係るMFPの起動時の処理の流れの一例を示している。図5に示した処理は、例えばMFP10のプロセッサ34により実行される。本実施例では、救援機リストは利用されない。
図5のS200〜S210は、図2に関連して説明した同じ符号の処理ステップと同様であるため、ここではそれらの説明を省略する。
MFP10のプロセッサ34は、正当性検証の結果としてソフトウェアが正当ではないと判定した場合、S512で、情報処理システム1内に通知信号をブロードキャストする。例えば、プロセッサ34は、自装置が属するネットワークのブロードキャストアドレスを宛先として有するSNMPトラップ信号を、通信I/F32を介してネットワーク50へ送信する。通知信号は、上述したように、送信元の装置がソフトウェアの検証に失敗したことを示す信号である。第1実施例と同様に、通知信号は、ソフトウェア識別情報及び機種情報の一方又は双方を含んでもよい。
次いで、S520で、プロセッサ34は、ブロードキャストした通知信号を受信した装置からの応答信号の受信を待受ける。例えば、一定の時間内に応答信号が受信された場合には、処理はS230へ進む。一方、応答信号が受信されない場合には、処理はS224へ進む。
図5のS224〜S234は、図2に関連して説明した同じ符号の処理ステップと同様であるため、ここではそれらの説明を省略する。
本実施例において、各MFP10の救援機としての処理は、図4を用いて説明した処理と同様であってよい。但し、S410においてMFP10が待受ける通知信号は、救援機のIPアドレスの代わりに、ブロードキャストアドレスを宛先として有する信号であり得る。
本実施例においても、S520で複数の救援機から応答信号が受信された場合、異常機は、例えば応答信号の受信タイミングが最も早かった救援機など、任意の基準で実際にアクセスする救援機を選択してよい。
第1実施例と比較すると、第2実施例では、救援機リストを予め作成して救援機の情報をリストに登録しておく必要性が解消される。したがって、情報処理システム1の運用コストをより低減することができる。
<<4.まとめ>>
ここまで、図1〜図5を用いて、本開示に係る技術の実施形態を詳細に説明した。上述した実施形態は、主として、通信部、ソフトウェアを記憶する記憶部、上記ソフトウェアの正当性を検証する検証部、及び上記ソフトウェアを実行する実行部、を各々が備える複数の情報処理装置を含む情報処理システムを対象とする。但し、いくつかの情報処理装置は、検証部を備えなくてもよい。第1の情報処理装置は、自装置における実行用の第1のソフトウェアが正当ではないと判定した場合に、第2の情報処理装置から第2のソフトウェアを通信部を介して受信する。第2のソフトウェアは、第1のソフトウェアに対応する、第2の情報処理装置における実行用のソフトウェアである。第2のソフトウェアは、第1の情報処理装置における実行にも適する。第1の情報処理装置は、第2の情報処理装置から受信した第2のソフトウェアを、実行部による実行のために記憶部に記憶させる。かかる構成によれば、システムに追加的なサーバを導入することも、バックアップのためにハードウェアリソースを消費することも必要とすることなく、ソフトウェアの検証に失敗した装置がソフトウェアを復旧することが可能である。
ここまで、図1〜図5を用いて、本開示に係る技術の実施形態を詳細に説明した。上述した実施形態は、主として、通信部、ソフトウェアを記憶する記憶部、上記ソフトウェアの正当性を検証する検証部、及び上記ソフトウェアを実行する実行部、を各々が備える複数の情報処理装置を含む情報処理システムを対象とする。但し、いくつかの情報処理装置は、検証部を備えなくてもよい。第1の情報処理装置は、自装置における実行用の第1のソフトウェアが正当ではないと判定した場合に、第2の情報処理装置から第2のソフトウェアを通信部を介して受信する。第2のソフトウェアは、第1のソフトウェアに対応する、第2の情報処理装置における実行用のソフトウェアである。第2のソフトウェアは、第1の情報処理装置における実行にも適する。第1の情報処理装置は、第2の情報処理装置から受信した第2のソフトウェアを、実行部による実行のために記憶部に記憶させる。かかる構成によれば、システムに追加的なサーバを導入することも、バックアップのためにハードウェアリソースを消費することも必要とすることなく、ソフトウェアの検証に失敗した装置がソフトウェアを復旧することが可能である。
また、上述した実施形態では、上記情報処理システムの第2の情報処理装置は、第1の情報処理装置における実行用の第1のソフトウェアが正当ではないと判定されたことを示す通知信号を上記第1の情報処理装置から受信する。この場合に、上記第2の情報処理装置は、上記第2の情報処理装置における実行用の第2のソフトウェアを上記通信部を介して上記第1の情報処理装置へ送信する。かかる構成によれば、システムに追加的なサーバを導入することも、バックアップのためにハードウェアリソースを消費することも必要とすることなく、ソフトウェアの検証に失敗した装置によるソフトウェアの復旧を支援することが可能である。
また、ある実施例では、上記第1のソフトウェアが正当ではないと判定された場合に、ソフトウェアを提供可能な1つ以上の装置のリストから選択される上記第2の情報処理装置へ通知信号が送信され得る。そして、上記第2のソフトウェアは、上記通知信号を受信した上記第2の情報処理装置から受信され得る。かかる構成によれば、特定の装置のみへ上記通知信号が送信されるため、ネットワークの帯域が浪費されず、未知の装置に異常の発生が知られる可能性も抑制される。
また、ある実施例では、上記第1のソフトウェアが正当ではないと判定された場合に、上記情報処理システム内に通知信号がブロードキャストされ得る。そして、上記第2のソフトウェアは、ブロードキャストされた上記通知信号を受信した上記第2の情報処理装置から受信され得る。かかる構成によれば、ソフトウェアを提供可能な装置のリストを作成し及び維持することなく、ソフトウェアの復旧の仕組みを低コストで運用することが可能である。
また、上述した実施形態では、上記通知信号に対する応答信号において指定されるアドレスへ上記第1の情報処理装置がアクセスすることにより、上記第2の情報処理装置から上記第2のソフトウェアが受信され得る。かかる構成によれば、第三者にとってはどこにアクセスすればソフトウェアを入手できるかが不明となるため、ソフトウェアに関連する攻撃を受けるリスクを一層低減することができる。上記アドレスは、例えば、上記第1の情報処理装置によりアクセス可能な記憶領域であって、上記第2のソフトウェアがコピーされた当該記憶領域のアドレスであり得る。かかる構成によれば、上記記憶領域でのソフトウェアの提供を一時的な期間に制限して、ソフトウェアの秘匿性を高めることができる。
また、上述した実施形態では、上記応答信号において指定される上記アドレスへのアクセスは、HTTP要求を用いて行われ得る。また、上記通知信号は、SNMPトラップ信号であり得る。かかる構成によれば、データ交換のために広く活用されているHTTP、及びネットワーク監視のためのSNMPといった汎用的なプロトコルを活用して、上述したソフトウェア復旧の仕組みを容易に構築することができる。
また、上述した実施形態では、上記通知信号は、正当ではないと判定されたソフトウェアを識別する情報を含み得る。かかる構成によれば、復旧のために必要十分な、上記第1の情報処理装置における実行に適したソフトウェアのみを、上記第2の情報処理装置から上記第1の情報処理装置へ提供することができる。それにより、システム内の最小限の通信でソフトウェアの復旧の確実性を確保することができる。
<<5.その他の実施形態>>
上記実施形態は、1つ以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理の形式でも実現可能である。また、1つ以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上記実施形態は、1つ以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理の形式でも実現可能である。また、1つ以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上述した実施形態に制限されるものではなく、発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。したがって、発明の範囲を公にするために請求項を添付する。
1:情報処理システム、10a〜10c:情報処理装置、31:SPIフラッシュ(記憶部)、32:通信I/F(通信部)、34:プロセッサ(検証部、実行部)
Claims (15)
- 通信部、ソフトウェアを記憶する記憶部、前記ソフトウェアの正当性を検証する検証部、及び前記検証部により正当であると判定された前記ソフトウェアを実行する実行部、を備える情報処理装置であって、
前記通信部は、前記ソフトウェアに対応するソフトウェアを記憶する記憶部及び当該ソフトウェアを実行する実行部を備える他の装置と通信可能であり、
前記情報処理装置の前記記憶部に記憶されている前記ソフトウェアが正当ではないと前記検証部により判定された場合に、
前記通信部は、前記他の装置から、前記対応するソフトウェアを受信し、
前記情報処理装置の前記記憶部は、前記通信部により受信された前記対応するソフトウェアを記憶し、
前記情報処理装置の前記実行部は、前記記憶部に記憶された前記対応するソフトウェアを実行する、
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記通信部は、前記情報処理装置の前記記憶部に記憶されている前記ソフトウェアが正当ではないと前記検証部により判定された場合に、ソフトウェアを提供可能な1つ以上の装置のリスト内の前記他の装置へ通知信号を送信し、前記通知信号を受信した前記他の装置から前記対応するソフトウェアを受信する、
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記通信部は、前記情報処理装置の前記記憶部に記憶されている前記ソフトウェアが正当ではないと前記検証部により判定された場合に、前記情報処理装置が属するシステム内に通知信号をブロードキャストし、ブロードキャストされた前記通知信号を受信した前記他の装置から前記対応するソフトウェアを受信する、
情報処理装置。 - 請求項2又は3に記載の情報処理装置であって、前記通信部は、前記通知信号に対する応答信号において指定されるアドレスへアクセスすることにより、前記他の装置から前記対応するソフトウェアを受信する、情報処理装置。
- 請求項4に記載の情報処理装置であって、前記通信部は、前記応答信号において指定される前記アドレスへ、HTTP(Hypertext Transfer Protocol)要求を用いてアクセスする、情報処理装置。
- 請求項2乃至5のいずれか1項に記載の情報処理装置であって、前記通知信号は、SNMP(Simple Network Management Protocol)トラップ信号である、情報処理装置。
- 請求項2乃至6のいずれか1項に記載の情報処理装置であって、前記通知信号は、正当ではないと判定されたソフトウェアを識別する情報を含む、情報処理装置。
- 通信部、ソフトウェアを記憶する記憶部、前記ソフトウェアの正当性を検証する検証部、及び前記検証部により正当であると判定された前記ソフトウェアを実行する実行部、を備える情報処理装置において行われる方法であって、
前記通信部は、前記ソフトウェアに対応するソフトウェアを記憶する記憶部及び当該ソフトウェアを実行する実行部を備える他の装置と通信可能であり、
前記方法は、
前記情報処理装置の前記記憶部に記憶されている前記ソフトウェアの正当性を前記検証部で検証することと、
前記検証部により前記ソフトウェアが正当ではないと判定された場合に、
前記他の装置から、前記対応するソフトウェアを前記通信部を介して受信することと、
受信された前記対応するソフトウェアを前記情報処理装置の前記記憶部に記憶させることと、
前記情報処理装置の前記実行部に、前記記憶部に記憶された前記対応するソフトウェアを実行させることと、
を含む方法。 - 情報処理装置のプロセッサに、請求項8に記載の方法を行わせるためのコンピュータプログラム。
- 通信部、ソフトウェアを記憶する記憶部、及び前記記憶部に記憶された前記ソフトウェアを実行する実行部、を備える情報処理装置であって、
前記通信部は、他の装置に記憶されている対応するソフトウェアが正当ではないと前記他の装置において判定されたことを示す通知信号が前記他の装置から受信された場合に、前記記憶部に記憶されている前記ソフトウェアを前記他の装置へ送信する、
情報処理装置。 - 請求項10に記載の情報処理装置であって、前記通信部は、前記通知信号が受信された場合において、前記記憶部に記憶されている前記ソフトウェアが前記他の装置における実行に適していると判定されるときに、当該ソフトウェアを前記通信部を介して前記他の装置へ送信する、情報処理装置。
- 請求項10又は11に記載の情報処理装置であって、前記通信部は、前記ソフトウェアがコピーされた記憶領域であって前記他の装置によりアクセス可能な前記記憶領域のアドレスを指定する、前記通知信号に対する応答信号を、前記通信部を介して前記他の装置へ送信する、情報処理装置。
- 請求項12に記載の情報処理装置であって、前記通信部は、前記応答信号において指定した前記アドレスへの前記他の装置からのHTTP(Hypertext Transfer Protocol)要求に応じて、前記ソフトウェアを前記他の装置へ送信する、情報処理装置。
- 通信部、ソフトウェアを記憶する記憶部、及び前記記憶部に記憶された前記ソフトウェアを実行する実行部、を備える情報処理装置において行われる方法であって、
他の装置に記憶されている対応するソフトウェアが正当ではないと前記他の装置において判定されたことを示す通知信号が前記他の装置から受信された場合に、前記記憶部に記憶されている前記ソフトウェアを前記通信部から前記他の装置へ送信すること、
を含む方法。 - 情報処理装置のプロセッサに、請求項14に記載の方法を行わせるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019169583A JP2021047620A (ja) | 2019-09-18 | 2019-09-18 | 情報処理装置、ソフトウェア管理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019169583A JP2021047620A (ja) | 2019-09-18 | 2019-09-18 | 情報処理装置、ソフトウェア管理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021047620A true JP2021047620A (ja) | 2021-03-25 |
Family
ID=74878458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019169583A Pending JP2021047620A (ja) | 2019-09-18 | 2019-09-18 | 情報処理装置、ソフトウェア管理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021047620A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022166687A (ja) * | 2021-04-21 | 2022-11-02 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
-
2019
- 2019-09-18 JP JP2019169583A patent/JP2021047620A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022166687A (ja) * | 2021-04-21 | 2022-11-02 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
JP7313395B2 (ja) | 2021-04-21 | 2023-07-24 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11838430B2 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
US8037308B2 (en) | Electronic certificate issuance system, electronic certificate issuing device, communication device, and program therefor | |
US8327133B2 (en) | Communication device and medium for the same | |
JP4936549B2 (ja) | サーバ装置、管理システム、管理方法、記憶媒体、プログラム | |
US9088566B2 (en) | Information processing system, information processing device, and relay server | |
JP6296324B2 (ja) | 登録サーバのプログラム、情報機器、情報機器のプログラム、及びネットワークシステム | |
US20070124440A1 (en) | Network device, network system, and its power saving control method | |
US20060104656A1 (en) | Image formation system with authentication function | |
JP2004318839A (ja) | 通信装置、ソフトウェア更新システム、ソフトウェア更新方法及びプログラム | |
US20170099178A1 (en) | Device management system, information processing apparatus, and information processing method | |
US20200007347A1 (en) | Information processing apparatus, control method for information processing apparatus, and storage medium | |
US20220345319A1 (en) | Information processing apparatus, control method for information processing apparatus, and storage medium | |
JP5272602B2 (ja) | 認証機能連携機器、認証機能連携システム及び認証機能連携プログラム | |
JP2023129643A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP6520746B2 (ja) | 情報処理システム、通信中継装置、ライセンスサーバー、プログラム及びデータ復旧方法 | |
US20090307752A1 (en) | Network device management apparatus and control method thereof | |
JP5472086B2 (ja) | デバイス、端末装置、サーバ、プログラム、及びファームウェアの更新方法 | |
JP2021047620A (ja) | 情報処理装置、ソフトウェア管理方法及びプログラム | |
JP2004318838A (ja) | ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェア更新方法及びプログラム | |
JP2017068835A (ja) | 機器管理システム、機器管理方法、情報処理装置、画像形成装置及び情報処理プログラム | |
JP2008062440A (ja) | 画像形成装置 | |
JP2008171041A (ja) | 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法 | |
JP7107066B2 (ja) | 機器管理装置、機器管理プログラム及び機器管理システム | |
JP7237487B2 (ja) | 制御システム、電子機器、および制御方法 | |
JP2009303118A (ja) | アクティベーションシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |