(57)【要約】      （修正有）【課題】不正なプログラム更新を防止する情報処理装置、機器、機器管理システム及び情報処理方法を提供する。【解決手段】第１のプログラムを有する機器２０と接続され、該第１のプログラムを第２のプログラムに更新させる情報処理装置１０であって、第１のプログラムと、第２のプログラムとの差分を示す差分情報を作成する差分作成手段１０１と、第１のプログラムに基づいて、暗号化に用いる暗号化鍵を作成する暗号化鍵作成手段１０２と、暗号化鍵作成手段により作成された暗号化鍵を用いて、差分作成手段により作成された差分情報を暗号化して、該暗号化後の差分情報を作成する暗号化手段１０４と、暗号化手段により作成された暗号化後の差分情報を機器に送信する送信手段と、を有する。【選択図】図４
2018182398.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムを有する機器と接続され、該第１のプログラムを第２のプログラムに更新させる情報処理装置であって、
前記第１のプログラムと、前記第２のプログラムとの差分を示す差分情報を作成する差分作成手段と、
前記第１のプログラムに基づいて、暗号化に用いる暗号化鍵を作成する暗号化鍵作成手段と、
前記暗号化鍵作成手段により作成された前記暗号化鍵を用いて、前記差分作成手段により作成された前記差分情報を暗号化して、該暗号化後の差分情報を作成する暗号化手段と、
前記暗号化手段により作成された前記暗号化後の差分情報を前記機器に送信する送信手段と、
を有する情報処理装置。
【請求項２】
前記暗号化手段は、
更に、前記暗号化後の差分情報の完全性を検証するための認証タグを作成し、
前記送信手段は、
更に、前記認証タグを前記機器に送信する、請求項１に記載の情報処理装置。
【請求項３】
所定のハッシュ関数を用いて、前記第２のプログラムのハッシュ値を算出するハッシュ値算出手段を有し、
前記送信手段は、
更に、前記ハッシュ値算出手段により算出された前記ハッシュ値を前記機器に送信する、請求項１又は２に記載の情報処理装置。
【請求項４】
前記暗号化鍵作成手段は、
前記第１のプログラムのバイナリデータを所定のアルゴリズムに入力して、該アルゴリズムの出力として得られる前記暗号化鍵を作成する、請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
所定の圧縮方式を用いて、前記差分作成手段により作成された前記差分情報を圧縮した圧縮差分情報を作成する圧縮手段を有し、
前記暗号化手段は、
前記暗号化鍵を用いて、前記圧縮手段により作成された前記圧縮差分情報を暗号化して、該暗号化後の圧縮差分情報を作成し、
前記送信手段は、
前記暗号化後の圧縮差分情報を前記機器に送信する、請求項１乃至４の何れか一項に記載の情報処理装置。
【請求項６】
第１のプログラムを有する機器であって、該第１のプログラムを更新した第２のプログラムを有する情報処理装置と接続される機器において、
前記第１のプログラムと前記第２のプログラムとの差分が暗号化された暗号化済み差分情報を前記情報処理装置から受信する受信手段と、
前記第１のプログラムに基づき、復号に用いる復号鍵を作成する復号鍵作成手段と、
前記復号鍵作成手段により作成された前記復号鍵を用いて、前記暗号化済み差分情報を復号して、前記差分を示す差分情報を作成する復号手段と、
前記復号手段により前記差分情報と、前記第１のプログラムに基づき、前記第２のプログラムを作成するプログラム作成手段と、
前記プログラム作成手段により作成された前記第２のプログラムで前記第１のプログラムを更新する更新手段と、
を有する機器。
【請求項７】
前記受信手段は、
更に、前記暗号化済み差分情報の完全性を検証するための第１の認証タグを前記情報処理装置から受信し、
前記復号手段は、
前記暗号化済み差分情報から第２の認証タグを作成し、作成した該第２の認証タグと、前記復号鍵と、前記第１の認証タグとを用いて、認証付き暗号により前記暗号化済み差分情報を復号する、請求項６に記載の機器。
【請求項８】
所定のハッシュ関数を用いて、前記プログラム作成手段により作成された前記第２のプログラムの第１のハッシュ値を算出するハッシュ値算出手段を有し、
前記受信手段は、
更に、前記情報処理装置が有する前記第２のプログラムから算出された第２のハッシュ値を受信し、
前記更新手段は、
前記第１のハッシュ値と前記第２のハッシュ値とが一致する場合、前記第２のプログラムで前記第１のプログラムを更新する、請求項６又は７に記載の機器。
【請求項９】
前記復号手段は、
前記第１のプログラムのバイナリデータを所定のアルゴリズムに入力して、該アルゴリズムの出力として得られる前記復号鍵を作成する、請求項６又は８に記載の機器。
【請求項１０】
前記復号手段は、
前記受信手段が前記暗号化済み差分情報を受信した後に、前記復号鍵を作成し、
前記復号鍵作成手段は、
前記プログラム作成手段が前記第１のプログラムを更新した場合、前記復号鍵を削除する、請求項６乃至９の何れか一項に記載の機器。
【請求項１１】
所定の圧縮方式を用いてデータ圧縮された情報を解凍する解凍手段を有し、
前記受信手段は、
前記第１のプログラムと前記第２のプログラムとの差分が所定の圧縮方式を用いて圧縮及び前記暗号化された暗号化済み圧縮差分情報を前記情報処理装置から受信し、
前記復号手段は、
前記暗号化済み圧縮差分情報を復号して、前記差分が前記圧縮方式を用いて圧縮された情報を示す圧縮差分情報を作成し、
前記解凍手段は、
前記圧縮方式を用いて、前記復号手段により作成された前記圧縮差分情報を解凍して、前記差分を示す差分情報を作成し、
前記プログラム作成手段は、
前記解凍手段により作成された前記差分情報と、前記第１のプログラムに基づき、前記第２のプログラムを作成する、請求項６乃至１０の何れか一項に記載の機器。
【請求項１２】
第１のプログラムを有する機器と、該第１のプログラムを第２のプログラムに更新させる情報処理装置とを有する機器管理システムであって、
前記情報処理装置は、
前記第１のプログラムと、前記第２のプログラムとの差分を示す差分情報を作成する差分作成手段と、
前記第１のプログラムに基づいて、暗号化に用いる暗号化鍵を作成する暗号化鍵作成手段と、
前記暗号化鍵作成手段により作成された前記暗号化鍵を用いて、前記差分作成手段により作成された前記差分情報を暗号化して、該暗号化後の差分情報を作成する暗号化手段と、
前記暗号化手段により作成された前記暗号化後の差分情報を前記機器に送信する送信手段と、を有し、
前記機器は、
前記暗号化後の差分情報を前記情報処理装置から受信する受信手段と、
前記第１のプログラムに基づき、復号に用いる復号鍵を作成する復号鍵作成手段と、
前記復号鍵作成手段により作成された前記復号鍵を用いて、前記暗号化後の差分情報を復号して、前記差分を示す差分情報を作成する復号手段と、
前記復号手段により前記差分情報と、前記第１のプログラムに基づき、前記第２のプログラムを作成するプログラム作成手段と、
前記プログラム作成手段により作成された前記第２のプログラムで前記第１のプログラムを更新する更新手段と、
を有する機器管理システム。
【請求項１３】
第１のプログラムを有する機器と接続され、該第１のプログラムを第２のプログラムに更新させる情報処理装置に用いられる情報処理方法であって、
前記第１のプログラムと、前記第２のプログラムとの差分を示す差分情報を作成する差分作成手順と、
前記第１のプログラムに基づいて、認証付き暗号に用いる暗号化鍵を作成する暗号化鍵作成手順と、
前記暗号化鍵作成手順により作成された前記暗号化鍵を用いて、前記差分作成手順により作成された前記差分情報を前記認証付き暗号により暗号化して、該暗号化後の差分情報と、該暗号化後の差分情報の完全性を検証するための認証タグとを作成する暗号化手順と、
前記暗号化手順により作成された前記暗号化後の差分情報と、前記認証タグとを前記機器に送信する送信手順と、
を有する情報処理方法。
【請求項１４】
第１のプログラムを有する機器であって、該第１のプログラムを更新した第２のプログラムを有する情報処理装置と接続される機器に用いられる情報処理方法であって、
前記第１のプログラムと前記第２のプログラムとの差分が認証付き暗号により暗号化された暗号化済み差分情報と、該暗号化済み差分情報の完全性を検証するための認証タグとを前記情報処理装置から受信する受信手順と、
前記第１のプログラムに基づき、前記認証付き暗号に用いる復号鍵を作成する復号鍵作成手順と、
前記復号鍵作成手順により作成された前記復号鍵と、前記受信手順により受信された前記認証タグとを用いて、前記暗号化済み差分情報を前記認証付き暗号により復号して、前記差分を示す差分情報を作成する復号手順と、
前記復号手順により前記差分情報と、前記第１のプログラムに基づき、前記第２のプログラムを作成するプログラム作成手順と、
前記プログラム作成手順により作成された前記第２のプログラムで前記第１のプログラムを更新する更新手順と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、機器、機器管理システム及び情報処理方法に関する。
【背景技術】
【０００２】
例えばスマートメータ、自動販売機、携帯電話、カーナビゲーション端末等の様々な組み込み機器が知られている。組み込み機器では、例えばセキュリティの向上等のために製品出荷後に、ファームウェア等のプログラムの更新が行われることがある。
【０００３】
組み込み機器に搭載されているプログラムの更新について、更新前のプログラムと、更新後のプログラムとの差分情報を用いて、更新前のプログラムを更新する技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−４１１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ファームウェア等のプログラム更新の仕組みを悪用して、例えば、製品出荷後の組込み機器に不正なファームウェアが書き込まれてしまう等のセキュリティ上の脅威が懸念される。
【０００６】
ここで、組み込み機器に搭載されるＣＰＵ（Central Processing Unit）は、一般に、処理能力が高くない場合がある。したがって、例えば、公開鍵暗号方式に基づくデジタル署名等、差分情報の改ざんを防止する技術を用いることが困難な場合がある。
【０００７】
本発明の一実施形態は、上記の点に鑑みてなされたものであり、不正なプログラム更新を防止することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一実施形態は、第１のプログラムを有する機器と接続され、該第１のプログラムを第２のプログラムに更新させる情報処理装置であって、前記第１のプログラムと、前記第２のプログラムとの差分を示す差分情報を作成する差分作成手段と、前記第１のプログラムに基づいて、暗号化に用いる暗号化鍵を作成する暗号化鍵作成手段と、前記暗号化鍵作成手段により作成された前記暗号化鍵を用いて、前記差分作成手段により作成された前記差分情報を暗号化して、該暗号化後の差分情報を作成する暗号化手段と、前記暗号化手段により作成された前記暗号化後の差分情報を前記機器に送信する送信手段と、を有する。
【発明の効果】
【０００９】
本発明の一実施形態によれば、不正なプログラム更新を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】第一の実施形態に係る機器管理システムのシステム構成の一例を示す図である。
【図２】第一の実施形態に係る機器管理装置のハードウェア構成の一例を示す図である。
【図３】第一の実施形態に係る機器のハードウェア構成の一例を示す図である。
【図４】第一の実施形態に係る機器管理システムの機能構成の一例を示す図である。
【図５】第一の実施形態に係る機器管理装置における差分情報の作成から送信までの処理の一例を示すフローチャートである。
【図６】第一の実施形態に係る機器が差分情報によりファームウェアを更新する処理の一例を示すフローチャートである。
【図７】第二の実施形態に係る機器管理システムの機能構成の一例を示す図である。
【図８】第二の実施形態に係る機器管理装置における差分情報の作成から送信までの処理の一例を示すフローチャートである。
【図９】第二の実施形態に係る機器が差分情報によりファームウェアを更新する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【００１２】
［第一の実施形態］
＜システム構成＞
まず、本実施形態に係る機器管理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る機器管理システム１のシステム構成の一例を示す図である。
【００１３】
図１に示すように、本実施形態に係る機器管理システム１は、機器管理装置１０と、１以上の機器２０とを有し、例えばインターネットや電話回線網等のネットワークＮを介して通信可能に接続されている。なお、機器管理装置１０と機器２０とは、例えばＢｌｕｅｔｏｏｔｈ（登録商標）等の近距離無線通信を用いて通信可能に接続されていても良い。
【００１４】
機器管理装置１０は、機器２０が有するファームウェア等のプログラムを管理する情報処理装置である。機器管理装置１０は、差分提供処理部１００と、ファームウェア記憶部１１０とを有する。
【００１５】
ファームウェア記憶部１１０は、更新前のファームウェア（以降、「旧ファームウェア」と表す。）３１０と、更新後のファームウェア（以降、「新ファームウェア」と表す。）３２０とを記憶する。
【００１６】
また、差分提供処理部１００は、旧ファームウェア３１０と新ファームウェア３２０との差分を示す差分情報を認証付き暗号（ＡＥ：Authenticated Encryption又はＡＥＡＤ：Authenticated Encryption with Associated Data）の手法により暗号化する。そして、差分提供処理部１００は、当該暗号化後の差分情報（後述する暗号化済み差分情報及び認証タグ）を機器２０に提供する。このとき、差分提供処理部１００は、旧ファームウェア３１０に基づき暗号化鍵を作成した上で、当該暗号鍵を用いて差分情報を暗号化する。なお、認証タグは、メッセージ認証符号（ＭＡＣ：Message Authentication Code）とも称され、暗号化後の差分情報の完全性（すなわち、当該暗号化後の差分情報が改ざん等されていないこと）を検証するための情報である。
【００１７】
機器２０は、例えばスマートメータ、自動販売機、携帯電話、カーナビゲーション端末等の組み込み機器である。機器２０は、差分更新処理部２００と、旧ファームウェア３１０とを有する。
【００１８】
差分更新処理部２００は、機器管理装置１０から提供された暗号化済み差分情報及び認証タグを、認証付き暗号の手法により復号した上で、復号された差分情報と、旧ファームウェア３１０とに基づいて、当該旧ファームウェア３１０を更新する。このとき、差分更新処理部２００は、機器２０が有する旧ファームウェア３１０に基づき復号鍵を作成した上で、当該復号鍵を用いて暗号化済み差分情報を復号する。
【００１９】
このように、本実施形態に係る機器管理システム１では、機器管理装置１０が、認証付き暗号の手法を用いて、旧ファームウェア３１０と新ファームウェア３２０との差分を機器２０に提供する。これにより、本実施形態に係る機器管理システム１では、例えば、不正なファームウェアが機器２０に書き込まれてしまうような事態（すなわち、不正なファームウェアの更新が行われてしまうような事態）を防止することができる。
【００２０】
また、このとき、本実施形態に係る機器管理システム１では、機器管理装置１０が有する旧ファームウェア３１０に基づいて暗号化鍵を作成すると共に、機器２０が有する旧ファームウェア３１０に基づいて復号鍵を作成する。これにより、本実施形態に係る機器管理システム１では、機器管理装置１０及び機器２０は、それぞれ暗号化鍵及び復号鍵を管理しておく必要がない。更に、本実施形態に係る機器管理システム１では、旧ファームウェア３１０の更新が行われる度に、暗号化鍵及び復号鍵も更新することができる。
【００２１】
なお、本実施形態は、機器２０が有するファームウェアを更新する場合について説明するが、これに限られず、機器２０が有する種々のプログラムを更新する場合についても同様に適用することができる。
【００２２】
＜ハードウェア構成＞
次に、本実施形態に係る機器管理装置１０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係る機器管理装置１０のハードウェア構成の一例を示す図である。
【００２３】
図２に示すように、本実施形態に係る機器管理装置１０は、入力装置６０１と、表示装置６０２と、外部Ｉ／Ｆ６０３と、ＲＡＭ（Random Access Memory）６０４とを有する。また、本実施形態に係る機器管理装置１０は、ＲＯＭ（Read Only Memory）６０５と、ＣＰＵ６０６と、通信Ｉ／Ｆ６０７と、記憶装置６０８と有する。これら各ハードウェアは、バス６０９により相互に通信可能に接続されている。
【００２４】
入力装置６０１は、キーボードやマウス、タッチパネル等を含み、ユーザが各種の操作を行うのに用いられる。表示装置６０２は、ディスプレイ等を含み、機器管理装置１０による処理結果を表示する。なお、機器管理装置１０は、入力装置６０１及び表示装置６０２のうちの少なくとも一方を有していなくても良い。
【００２５】
外部Ｉ／Ｆ６０３は、外部装置とのインタフェースである。外部装置には、記録媒体６０３ａ等がある。機器管理装置１０は、外部Ｉ／Ｆ６０３を介して、記録媒体６０３ａの読み取りや書き込みを行うことができる。
【００２６】
記録媒体６０３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００２７】
ＲＡＭ６０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ６０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ６０５には、例えば、機器管理装置１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ（Operating System）設定及びネットワーク設定等のプログラムやデータが格納されている。
【００２８】
ＣＰＵ６０６は、ＲＯＭ６０５や記憶装置６０８等からプログラムやデータをＲＡＭ６０４上に読み出し、処理を実行することで、機器管理装置１０全体の制御や機能を実現する演算装置である。
【００２９】
通信Ｉ／Ｆ６０７は、機器管理装置１０をネットワークＮに接続するためのインタフェースである。機器管理装置１０は、通信Ｉ／Ｆ６０７を介して、旧ファームウェア３１０と新ファームウェア３２０との差分を認証付き暗号の手法により暗号化した差分情報（すなわち、暗号化済み差分情報及び認証タグ）を機器２０に送信することができる。
【００３０】
記憶装置６０８は、例えば、ＨＤＤ（Hard Disk Drive）等であり、プログラムやデータを格納している不揮発性のメモリである。記憶装置６０８に格納されるプログラムやデータには、機器管理装置１０の基本ソフトウェアであるＯＳ、差分提供処理部１００を実現するプログラム、旧ファームウェア３１０及び新ファームウェア３２０等がある。
【００３１】
なお、機器管理装置１０は、記憶装置６０８として、例えば、記憶媒体としてフラッシュメモリを用いるドライブ装置（ソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。
【００３２】
本実施形態に係る機器管理装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００３３】
次に、本実施形態に係る機器２０のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０のハードウェア構成の一例を示す図である。
【００３４】
図３に示すように、本実施形態に係る機器２０は、外部Ｉ／Ｆ７０１と、ＲＡＭ７０２と、ＣＰＵ７０３と、フラッシュＲＯＭ７０４と、通信Ｉ／Ｆ７０５とを有する。これら各ハードウェアは、バス７０６により相互に通信可能に接続されている。
【００３５】
外部Ｉ／Ｆ７０１は、外部装置とのインタフェースである。外部装置には、記録媒体７０１ａ等がある。機器２０は、外部Ｉ／Ｆ７０１を介して、記録媒体７０１ａの読み取りや書き込みを行うことができる。記録媒体７０１ａには、例えば、ＳＤメモリカードやＵＳＢメモリカード等がある。
【００３６】
ＲＡＭ７０２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＣＰＵ７０３は、フラッシュＲＯＭ７０４からプログラムやデータをＲＡＭ７０２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３７】
フラッシュＲＯＭ７０４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。フラッシュＲＯＭ７０４には、例えば、旧ファームウェア３１０、差分更新処理部２００を実現するプログラム等が格納されている。
【００３８】
通信Ｉ／Ｆ７０５は、機器２０をネットワークＮに接続するためのインタフェースである。機器２０は、通信Ｉ／Ｆ７０５を介して、暗号化済み差分情報及び認証タグを機器管理装置１０から受信することができる。
【００３９】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００４０】
＜機能構成＞
次に、本実施形態に係る機器管理システム１の機能構成について、図４を参照しながら説明する。図４は、本実施形態に係る機器管理システム１の機能構成の一例を示す図である。
【００４１】
図４に示すように、本実施形態に係る機器管理装置１０の差分提供処理部１００は、差分抽出部１０１と、鍵生成部１０２と、圧縮部１０３と、暗号化部１０４と、通信部１０５とを有する。なお、差分提供処理部１００は、機器管理装置１０にインストールされた１以上のプログラムが、ＣＰＵ６０６に実行させる処理により実現される。
【００４２】
差分抽出部１０１は、ファームウェア記憶部１１０に記憶されている旧ファームウェア３１０と新ファームウェア３２０との差分を抽出して、抽出した差分を示す差分情報４１０を作成する。
【００４３】
鍵生成部１０２は、所定のアルゴリズムを用いて、ファームウェア記憶部１１０に記憶されている旧ファームウェア３１０から暗号化鍵４２０を作成する。
【００４４】
圧縮部１０３は、所定の圧縮方式を用いて、差分抽出部１０１により作成された差分情報４１０を圧縮（データ圧縮）して、圧縮差分情報４３０を作成する。
【００４５】
暗号化部１０４は、鍵生成部１０２により作成された暗号化鍵４２０を用いた認証付き暗号の手法により、圧縮部１０３により作成された圧縮差分情報４３０を暗号化して、暗号化済み圧縮差分情報４４０と認証タグ４５０とを作成する。
【００４６】
認証付き暗号の手法には、例えば、ＥｔＭ（Encrypt-then-MAC）やＥ＆Ｍ（Encrypt-and-MAC）等が挙げられる。
【００４７】
ＥｔＭでは、暗号化部１０４は、暗号化鍵４２０を用いて圧縮差分情報４３０を暗号化して、暗号化済み圧縮差分情報４４０を作成する。そして、暗号化部１０４は、所定のハッシュ関数と暗号化鍵４２０とを用いて、暗号化済み圧縮差分情報４４０のハッシュ値を算出して、算出したハッシュ値を認証タグ４５０とする。
【００４８】
Ｅ＆Ｍでは、暗号化部１０４は、暗号化鍵４２０を用いて圧縮差分情報４３０を暗号化して、暗号化済み圧縮差分情報４４０を作成する。そして、暗号化部１０４は、所定のハッシュ関数と暗号化鍵４２０とを用いて、圧縮差分情報４３０のハッシュ値を算出して、算出したハッシュ値を認証タグ４５０とする。
【００４９】
なお、暗号化部１０４は、認証付き暗号の手法として、ＭｔＥ（MAC-then-Encrypt）を用いても良い。ただし、この場合、暗号化部１０４は、圧縮差分情報４３０と、当該圧縮差分情報４３０から作成した認証タグとを連結した上で暗号化して、暗号化済み圧縮差分情報４４０を作成する。
【００５０】
通信部１０５は、暗号化部１０４により作成された暗号化済み圧縮差分情報４４０と認証タグ４５０とを機器２０に送信する。
【００５１】
図４に示すように、本実施形態に係る機器２０の差分更新処理部２００は、通信部２０１と、鍵生成部２０２と、復号部２０３と、通知部２０４と、解凍部２０５と、生成部２０６と、更新部２０７とを有する。なお、差分更新処理部２００は、機器２０にインストールされた１以上のプログラムが、ＣＰＵ７０３に実行させる処理により実現される。
【００５２】
通信部２０１は、暗号化済み圧縮差分情報４４０と認証タグ４５０とを機器管理装置１０から受信する。
【００５３】
鍵生成部２０２は、機器管理装置１０の鍵生成部１０２と同一のアルゴリズムを用いて、機器２０が有する旧ファームウェア３１０（すなわち、機器２０のフラッシュＲＯＭ７０４に格納されている旧ファームウェア３１０）から復号鍵４６０を作成する。
【００５４】
復号部２０３は、鍵生成部２０２により作成された復号鍵４６０を用いた認証付き暗号の手法により、通信部２０１により受信された暗号化済み圧縮差分情報４４０を復号して、圧縮差分情報４７０を作成する。
【００５５】
また、復号部２０３は、通信部２０１により受信された認証タグ４５０を検証する。すなわち、復号部２０３は、例えば、当該圧縮差分情報４７０から認証タグを作成した上で、作成した認証タグと、認証タグ４５０とが一致するか否かにより、認証タグ４５０の検証結果が正当又は不当のいずれであるかを判定する。
【００５６】
なお、復号部２０３は、機器管理装置１０の暗号化部１０４と同一の認証付き暗号の手法を用いて、暗号化済み圧縮差分情報４４０の復号と認証タグ４５０の検証とを行う。
【００５７】
通知部２０４は、復号部２０３による認証タグ４５０の検証結果が不当（すなわち、復号部２０３が作成した認証タグと、通信部２０１が受信した認証タグ４５０とが一致しない）場合、旧ファームウェア３１０の更新失敗を通知する。
【００５８】
解凍部２０５は、復号部２０３による認証タグ４５０の検証結果が正当（すなわち、復号部２０３が作成した認証タグと、通信部２０１が受信した認証タグ４５０とが一致する）場合、圧縮差分情報４７０を解凍（データ解凍）して、差分情報４８０を作成する。なお、解凍部２０５は、機器管理装置１０の圧縮部１０３と同一の圧縮方式を用いて、圧縮差分情報４７０を解凍する。
【００５９】
生成部２０６は、解凍部２０５により作成された差分情報４８０と、機器２０が有する旧ファームウェア３１０とから新ファームウェア３３０を作成する。すなわち、生成部２０６は、例えば、差分情報４８０を旧ファームウェア３１０に追加することにより、新ファームウェア３３０を作成する。このように作成された新ファームウェア３３０は、機器管理装置１０のファームウェア記憶部１１０に記憶されている新ファームウェア３２０と同一のプログラムとなる。
【００６０】
更新部２０７は、フラッシュＲＯＭ７０４に記憶されている旧ファームウェア３１０を、生成部２０６により作成された新ファームウェア３３０に更新する。これにより、機器２０が有する旧ファームウェア３１０が新ファームウェア３３０に更新される。
【００６１】
＜処理の詳細＞
次に、本実施形態に係る機器管理システム１の処理の詳細について説明する。
【００６２】
≪機器管理装置１０における差分情報の作成から送信までの処理≫
以降では、機器管理装置１０における差分情報４１０の作成から機器２０への送信までの処理について、図５を参照しながら説明する。図５は、本実施形態に係る機器管理装置１０における差分情報４１０の作成から送信までの処理の一例を示すフローチャートである。なお、図５に示す処理は、ファームウェアの更新要求を機器２０から受信した場合に実行されても良いし、所定のタイミング（例えば、新ファームウェア３２０がファームウェア記憶部１１０に記憶されたタイミング等）に実行されても良い。
【００６３】
まず、差分抽出部１０１は、ファームウェア記憶部１１０に記憶されている旧ファームウェア３１０と新ファームウェア３２０との差分を抽出して、抽出した差分を示す差分情報４１０を作成する（ステップＳ５０１）。差分抽出部１０１は、例えば、Ｌｉｎｕｘ（登録商標）のＢｉｄｉｆｆコマンドを用いることで、旧ファームウェア３１０と新ファームウェア３２０との差分を示す差分情報４１０を作成することができる。なお、差分抽出部１０１は、ＬｉｎｕｘのＢｄｉｆｆコマンドに限られず、２つのバイナリファイルの差分を出力する種々の手法を用いることができる。
【００６４】
なお、旧ファームウェア３１０及び新ファームウェア３２０が複数のモジュールで構成されている場合、差分抽出部１０１は、差分があるモジュールの差分情報を作成しても良い。例えば、旧ファームウェア３１０が「モジュールＡ」及び「モジュールＢ」、新ファームウェアが「モジュールＡ」及び「モジュールＣ」で構成されている場合、差分抽出部１０１は、モジュールＢとモジュールＣとの差分情報を作成しても良い。この場合、差分抽出部１０１により作成される差分情報には、例えば、当該差分情報が旧ファームウェア３１０のいずれのモジュールに対する差分であるかを示す情報（例えば、モジュールＩＤ等）が含まれる。
【００６５】
次に、鍵生成部１０２は、所定のアルゴリズムを用いて、ファームウェア記憶部１１０に記憶されている旧ファームウェア３１０から暗号化鍵４２０を作成する（ステップＳ５０２）。すなわち、鍵生成部１０２は、例えば、旧ファームウェア３１０のバイナリデータを当該アルゴリズムに入力することで、当該アルゴリズムの出力として暗号化鍵４２０を作成する。鍵生成部１０２は、例えば、１２８ビット乃至２５６ビットの暗号化鍵４２０を作成すれば良い。なお、所定のアルゴリズムには、例えば、所定のハッシュ関数等を用いることができる。また、鍵生成部１０２は、当該旧ファームウェア３１０自体を暗号化鍵４２０としても良い。
【００６６】
次に、圧縮部１０３は、所定の圧縮方式を用いて、上記のステップＳ５０１で作成された差分情報４１０を圧縮（データ圧縮）して、圧縮差分情報４３０を作成する（ステップＳ５０３）。圧縮部１０３は、例えば、Ｌｉｎｕｘのｂｚｉｐ２コマンドを用いることで、当該差分情報４１０を圧縮して、圧縮差分情報４３０を作成することができる。なお、圧縮部１０３は、Ｌｉｎｕｘのｂｚｉｐ２コマンドに限られず、種々の圧縮方式（例えば、ｂｚｉｐ、ｇｚｉｐ、ＺＩＰ、７ｚ、ＲＡＲ、ＬＨＡ等）を用いることができる。
【００６７】
次に、暗号化部１０４は、上記のステップＳ５０２で作成された暗号化鍵４２０を用いた認証付き暗号の手法により、上記のステップＳ５０３で作成された圧縮差分情報４３０を暗号化して、暗号化済み圧縮差分情報４４０と認証タグ４５０とを作成する（ステップＳ５０４）。
【００６８】
次に、通信部１０５は、上記のステップＳ５０４で作成された暗号化済み圧縮差分情報４４０と認証タグ４５０とを機器２０に送信する（ステップＳ５０５）。
【００６９】
以上により、本実施形態に係る機器管理システム１では、機器管理装置１０で作成された暗号化済み圧縮差分情報４４０及び認証タグ４５０が機器２０に送信される。
【００７０】
なお、図５のステップＳ５０３の処理は行わなくても良い。すなわち、ステップＳ５０４において、暗号化部１０４は、暗号化鍵４２０を用いた認証付き暗号の手法により、差分情報４１０を暗号化して、暗号化済み差分情報と認証タグとを作成しても良い。ただし、図５のステップＳ５０３の処理を行うことで、機器管理装置１０と機器２０との間におけるデータ通信量を削減することができる。
【００７１】
≪機器２０が差分情報によりファームウェアを更新する処理≫
以降では、機器２０が差分情報４８０により旧ファームウェア３１０を更新する処理について、図６を参照しながら説明する。図６は、本実施形態に係る機器２０が差分情報４８０によりファームウェアを更新する処理の一例を示すフローチャートである。
【００７２】
まず、通信部２０１は、暗号化済み圧縮差分情報４４０と認証タグ４５０とを機器管理装置１０から受信する（ステップＳ６０１）。
【００７３】
次に、鍵生成部２０２は、機器管理装置１０の鍵生成部１０２と同一のアルゴリズムを用いて、機器２０が有する旧ファームウェア３１０から復号鍵４６０を作成する（ステップＳ６０２）。
【００７４】
なお、ステップＳ６０２以降の処理は、例えば、上記のステップＳ６０１で暗号化済み圧縮差分情報４４０及び認証タグ４５０が受信された後、所定のタイミング（例えば、夜間やユーザが設定した時刻等）で実行が開始されても良い。
【００７５】
次に、復号部２０３は、上記のステップＳ６０２で作成された復号鍵４６０を用いた認証付き暗号の手法により、上記のステップＳ６０１で受信された暗号化済み圧縮差分情報４４０を復号して、圧縮差分情報４７０を作成する（ステップＳ６０３）。
【００７６】
次に、復号部２０３は、上記のステップＳ６０１で受信された認証タグ４５０を検証する（ステップＳ６０４）。すなわち、復号部２０３は、例えば、上記のステップＳ６０３で作成された圧縮差分情報４７０から認証タグを作成した上で、作成した認証タグと、認証タグ４５０とが一致するか否かにより、認証タグ４５０の検証結果が正当又は不当のいずれであるかを判定する。
【００７７】
ステップＳ６０４において、検証結果が正当であると判定された場合、解凍部２０５は、上記のステップＳ６０３で作成された圧縮差分情報４７０を解凍（データ解凍）して、差分情報４８０を作成する（ステップＳ６０５）。
【００７８】
次に、生成部２０６は、上記のステップＳ６０５で作成された差分情報４８０と、機器２０が有する旧ファームウェア３１０とから新ファームウェア３３０を作成する（ステップＳ６０６）。すなわち、生成部２０６は、例えば、差分情報４８０を旧ファームウェア３１０に追加することにより、新ファームウェア３３０を作成する。生成部２０６は、例えば、ＬｉｎｕｘのＢｕｐｄａｔｅコマンドを用いることで、差分情報４８０を旧ファームウェア３１０に追加して、新ファームウェア３３０を作成することができる。このように作成された新ファームウェア３３０は、機器管理装置１０のファームウェア記憶部１１０に記憶されている新ファームウェア３２０と同一のプログラムとなる。
【００７９】
なお、生成部２０６は、ＬｉｎｕｘのＢｕｐｄａｔｅコマンドに限られず、あるバイナリデータ（差分情報４８０）を他のバイナリデータ（旧ファームウェア３１０）に追加する種々の手法を用いることができる。
【００８０】
次に、更新部２０７は、フラッシュＲＯＭ７０４に記憶されている旧ファームウェア３１０を、生成部２０６により作成された新ファームウェア３３０に更新する（ステップＳ６０７）。これにより、機器２０が有する旧ファームウェア３１０が新ファームウェア３３０に更新される。
【００８１】
一方、ステップＳ６０４において、検証結果が不当である（正当でない）と判定された場合、通知部２０４は、旧ファームウェア３１０の更新失敗を通知する（ステップＳ６０８）。通知部２０４は、例えば、ＬＥＤ（Light Emitting Diode）ランプを点灯させる、ブザー音を発する等により、旧ファームウェア３１０の更新失敗を通知すれば良い。また、通知部２０４は、所定のメールアドレス宛に更新失敗を示すメールを送信することにより、旧ファームウェア３１０の更新失敗を通知しても良い。
【００８２】
以上により、本実施形態に係る機器管理システム１では、機器２０は、機器管理装置１０から受信した暗号化済み圧縮差分情報４４０及び認証タグ４５０に基づいて、旧ファームウェア３１０を新ファームウェア３３０に更新することができる。これにより、本実施形態に係る機器管理システム１では、例えば、不正なファームウェアが機器２０に書き込まれてしまうような事態（すなわち、不正なファームウェアの更新が行われてしまうような事態）を防止することができる。
【００８３】
また、本実施形態に係る機器管理システム１では、機器管理装置１０が有する旧ファームウェア３１０に基づいて暗号化鍵４２０が作成される共に、機器２０が有する旧ファームウェア３１０に基づいて復号鍵４６０が作成される。このため、本実施形態に係る機器管理システム１では、機器管理装置１０及び機器２０は、それぞれ暗号化鍵４２０及び復号鍵４６０を管理しておく必要がない（すなわち、記憶装置６０８やフラッシュＲＯＭ７０４にそれぞれ暗号化鍵４２０や復号鍵４６０を記憶させておく必要がない。）。したがって、本実施形態に係る機器管理システム１では、暗号化鍵４２０や復号鍵４６０の漏洩も防止することができる。
【００８４】
更に、本実施形態に係る機器管理システム１では、旧ファームウェア３１０に基づいて暗号化鍵４２０及び復号鍵４６０が作成されるため、旧ファームウェア３１０の更新が行われる度に、暗号化鍵４２０及び復号鍵４６０も更新することができる。したがって、本実施形態に係る機器管理システム１では、万が一、暗号化鍵４２０や復号鍵４６０が漏洩した場合であっても、旧ファームウェア３１０の更新により、その後、不正なファームウェアが機器２０に書き込まれてしまうような事態を防止することができる。なお、旧ファームウェア３１０が更新された後は、暗号化鍵４２０及び復号鍵４６０の情報を直ちに削除し、機器管理システム１に記憶させておかないようにすることが望ましい。
【００８５】
［第二の実施形態］
次に、第二の実施形態について説明する。第二の実施形態では、機器管理装置１０のファームウェア記憶部１１０に記憶されている新ファームウェア３２０から算出したハッシュ値と、機器２０の生成部２０６により作成された新ファームウェア３３０から算出したハッシュ値とが一致するか否かを検証する。これにより、第二の実施形態では、機器管理装置１０のファームウェア記憶部１１０に記憶されている新ファームウェア３２０と、機器２０の生成部２０６により作成された新ファームウェア３３０との同一性を確認することができる。
【００８６】
したがって、例えば、新ファームウェア３２０とは異なる新ファームウェア３３０（すなわち、不正なファームウェア）が機器２０に書き込まれてしまう事態を、第一の実施形態よりも高い精度で防止することができる。
【００８７】
なお、第二の実施形態では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。
【００８８】
＜機能構成＞
まず、本実施形態に係る機器管理システム１の機能構成について、図７を参照しながら説明する。図７は、本実施形態に係る機器管理システム１の機能構成の一例を示す図である。
【００８９】
図７に示すように、本実施形態に係る機器管理装置１０の差分提供処理部１００は、更に、ハッシュ部１０６を有する。ハッシュ部１０６は、所定のハッシュ関数を用いて、ファームウェア記憶部１１０に記憶されている新ファームウェア３２０からハッシュ値５１０を作成する。
【００９０】
また、本実施形態に係る通信部１０５は、暗号化部１０４により作成された暗号化済み圧縮差分情報４４０と認証タグ４５０とに加えて、ハッシュ部１０６により作成されたハッシュ値５１０も機器２０に送信する。このとき、通信部１０５は、例えば、圧縮差分情報４４０と認証タグ４５０とを機器２０に送信した後、ハッシュ値５１０を当該機器２０に送信する。
【００９１】
図７に示すように、本実施形態に係る機器２０の差分更新処理部２００は、更に、ハッシュ部２０８と、検証部２０９とを有する。
【００９２】
本実施形態に係る通信部２０１は、暗号化済み圧縮差分情報４４０と認証タグ４５０とに加えて、ハッシュ値５１０も機器管理装置１０から受信する。
【００９３】
ハッシュ部２０８は、機器管理装置１０のハッシュ部１０６と同一のハッシュ関数を用いて、生成部２０６により作成された新ファームウェア３３０からハッシュ値５２０を作成する。
【００９４】
検証部２０９は、ハッシュ部２０８により作成されたハッシュ値５２０を検証する。すなわち、検証部２０９は、ハッシュ部２０８により作成されたハッシュ値５２０と、通信部２０１により受信されたハッシュ値５１０とが一致するか否かにより、当該ハッシュ値５２０の検証結果が正当又は不当のいずれであるかを判定する。
【００９５】
＜処理の詳細＞
次に、本実施形態に係る機器管理システム１の処理の詳細について説明する。
【００９６】
≪機器管理装置１０における差分情報の作成から送信までの処理≫
以降では、機器管理装置１０における差分情報４１０の作成から機器２０への送信までの処理について、図８を参照しながら説明する。図８は、本実施形態に係る機器管理装置１０における差分情報４１０の作成から送信までの処理の一例を示すフローチャートである。なお、図８のステップＳ８０１〜ステップＳ８０５の処理は、図５のステップＳ５０１〜ステップＳ５０５の処理と同様であるため、その説明を省略する。
【００９７】
ステップＳ８０５に続いて、ハッシュ部１０６は、所定のハッシュ関数を用いて、ファームウェア記憶部１１０に記憶されている新ファームウェア３２０からハッシュ値５１０を作成する（ステップＳ８０６）。
【００９８】
次に、通信部１０５は、上記のステップＳ８０６で作成されたハッシュ値５１０を、ステップＳ８０５で圧縮差分情報４４０と認証タグ４５０とを送信した機器２０と同一の機器２０に送信する（ステップＳ８０７）。このように、通信部１０５は、圧縮差分情報４４０及び認証タグ４５０と、ハッシュ値５１０とを別々に機器２０に送信することで、例えば、第三者により通信が盗聴された場合等において、圧縮差分情報４４０、認証タグ４５０及びハッシュ値５１０のいずれもが窃取されてしまうリスクを低減することができる。
【００９９】
以上により、本実施形態に係る機器管理システム１では、機器管理装置１０で作成された暗号化済み圧縮差分情報４４０及び認証タグ４５０に加えて、新ファームウェア３２０から作成されたハッシュ値５１０が機器２０に送信される。
【０１００】
≪機器２０が差分情報によりファームウェアを更新する処理≫
以降では、機器２０が差分情報４８０により旧ファームウェア３１０を更新する処理について、図９を参照しながら説明する。図９は、本実施形態に係る機器２０が差分情報４８０によりファームウェアを更新する処理の一例を示すフローチャートである。なお、図９のステップＳ９０２〜ステップＳ９０６の処理は、図６のステップＳ６０２〜Ｓ６０６の処理と同様であるため、その説明を省略する。
【０１０１】
まず、通信部２０１は、暗号化済み圧縮差分情報４４０と、認証タグ４５０と、ハッシュ値５１０とを機器管理装置１０から受信する（ステップＳ９０１）。このとき、通信部２０１は、例えば、暗号化済み圧縮差分情報４４０と認証タグ４５０とを機器管理装置１０から受信した後、ハッシュ値５１０を当該機器管理装置１０から受信する。
【０１０２】
ステップＳ９０６に続いて、ハッシュ部２０８は、機器管理装置１０のハッシュ部１０６と同一のハッシュ関数を用いて、生成部２０６により作成された新ファームウェア３３０からハッシュ値５２０を作成する（ステップＳ９０７）。
【０１０３】
次に、検証部２０９は、上記のステップＳ９０７で作成されたハッシュ値５２０を検証する（ステップＳ９０８）。すなわち、検証部２０９は、上記のステップＳ９０７で作成されたハッシュ値５２０と、ステップＳ９０１で受信されたハッシュ値５１０とが一致するか否かにより、当該ハッシュ値５２０の検証結果が正当又は不当のいずれであるかを判定する。
【０１０４】
ステップＳ９０８において、検証結果が正当であると判定された場合、更新部２０７は、フラッシュＲＯＭ７０４に記憶されている旧ファームウェア３１０を、生成部２０６により作成された新ファームウェア３３０に更新する（ステップＳ９０９）。これにより、機器２０が有する旧ファームウェア３１０が新ファームウェア３３０に更新される。
【０１０５】
ステップＳ９０４において、復号部２０３による検証結果が不当であると判定された場合、又は、ステップＳ９０８において、検証部２０９による検証結果が不当であると判定された場合、通知部２０４は、旧ファームウェア３１０の更新失敗を通知する（ステップＳ９１０）。なお、通知部２０４は、図６のステップＳ６０８と同様の方法を用いて、旧ファームウェア３１０の更新失敗を通知すれば良い。
【０１０６】
以上により、本実施形態に係る機器管理システム１では、機器２０は、新ファームウェア３３０から作成されたハッシュ値５２０と、機器管理装置１０から受信したハッシュ値５１０との同一性を検証する。これにより、本実施形態に係る機器管理システム１では、機器管理装置１０のファームウェア記憶部１１０に記憶されている新ファームウェア３２０と、機器２０の生成部２０６により作成された新ファームウェア３３０との同一性を確認することができる。したがって、本実施形態に係る機器管理システム１によれば、例えば、新ファームウェア３２０とは異なる新ファームウェア３３０（すなわち、不正なファームウェア）が機器２０に書き込まれてしまう事態を、第一の実施形態よりも高い精度で防止することができる。
【０１０７】
第一の実施形態では、悪意をもった第三者が暗号化済み圧縮差分情報４４０をネットワーク上で傍受しても当該第三者はデータ内容を解読することはできないが、例えば、認証付き暗号化の手法としてＥｔＭが用いられており、当該第三者が、ＥｔＭで用いられる所定のハッシュ関数と暗号化鍵４２０とを入手していた場合、ネットワーク上で傍受した暗号化済み圧縮差分情報４４０を改ざんすることができてしまう。この場合、当該第三者は、改ざんした暗号化済み圧縮差分情報のハッシュ値を算出して、算出したハッシュ値を認証タグとすることが可能となり、この認証タグの検証結果が正当となってしまう。
【０１０８】
一方で、第二の実施形態では、ハッシュ部２０８により新ファームウェアからハッシュ値が生成される。このため、上記のように、例えば、悪意をもった第三者が、改ざんした暗号化済み圧縮差分情報のハッシュ値を算出して、算出したハッシュ値を認証タグとしても、ハッシュ部２０８で生成したハッシュ値により、検証部２０９による検証結果は不当となる。このように、第二の実施形態では、悪意をもった第三者により暗号化済み圧縮差分情報４４０が傍受されたとしても、不正なファームウェアの書き込みを防止することができる。
【０１０９】
なお、本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１１０】
１        機器管理システム
１０      機器管理装置
２０      機器
１００    差分提供処理部
１０１    差分抽出部
１０２    鍵生成部
１０３    圧縮部
１０４    暗号化部
１０５    通信部
２００    差分更新処理部
２０１    通信部
２０２    鍵生成部
２０３    復号部
２０４    通知部
２０５    解凍部
２０６    生成部
２０７    更新部
【図１】
2018182398.tif 000003
【図２】
2018182398.tif 000004
【図３】
2018182398.tif 000005
【図４】
2018182398.tif 000006
【図５】
2018182398.tif 000007
【図６】
2018182398.tif 000008
【図７】
2018182398.tif 000009
【図８】
2018182398.tif 000010
【図９】
2018182398.tif 000011