特許第5744078号(P5744078)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特許5744078組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法
<>
  • 特許5744078-組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法 図000002
  • 特許5744078-組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法 図000003
  • 特許5744078-組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5744078
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月1日
(54)【発明の名称】組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法
(51)【国際特許分類】
   G06F 21/64 20130101AFI20150611BHJP
   G06F 11/00 20060101ALI20150611BHJP
【FI】
   G06F21/64
   G06F9/06 630A
【請求項の数】9
【全頁数】9
(21)【出願番号】特願2013-16919(P2013-16919)
(22)【出願日】2013年1月31日
(65)【公開番号】特開2014-149600(P2014-149600A)
(43)【公開日】2014年8月21日
【審査請求日】2014年8月6日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100077838
【弁理士】
【氏名又は名称】池田 憲保
(74)【代理人】
【識別番号】100082924
【弁理士】
【氏名又は名称】福田 修一
(74)【代理人】
【識別番号】100129023
【弁理士】
【氏名又は名称】佐々木 敬
(72)【発明者】
【氏名】三好 健介
【審査官】 岸野 徹
(56)【参考文献】
【文献】 特開2009−193442(JP,A)
【文献】 特開2000−357085(JP,A)
【文献】 特開2006−011857(JP,A)
【文献】 特開2011−210013(JP,A)
【文献】 米国特許出願公開第2006/0136750(US,A1)
【文献】 特表2010−541086(JP,A)
【文献】 特開2009−123204(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
G06F 11/00
(57)【特許請求の範囲】
【請求項1】
組み込み機器と、前記組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置と、を含む組み込み機器制御システムであって、
前記組み込み機器制御装置は、
前記ファームウェアを複数の機能モジュールに分割する分割部と、
前記複数の機能モジュール毎にチェックサムを計算する計算部と、
ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置する挿入部と、
前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する作成部と、
作成されたバイナリイメージを前記組み込み機器に配信する通信部と、
を有する組み込み機器制御システム。
【請求項2】
前記作成部は、データ部とヘッダ部とからなる前記バイナリイメージを作成し、前記データ部は分割された前記複数の機能モジュールのそれぞれの末尾に、前記複数の機能モジュール毎に計算されたチェックサムがランダムに配置されてなり、前記ヘッダ部は前記複数の機能モジュールのそれぞれについて各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス値を示す、請求項1に記載の組み込み機器制御システム。
【請求項3】
前記組み込み機器は、
前記ファームウェアを格納する不揮発性記憶部と、
前記組み込み機器制御装置から配信されたファームウェアを一時的に格納する一時記憶部と、
前記配信されたファームウェアの正当性を判別して該配信されたファームウェアが正当であると判別した場合に該配信されたファームウェアへの書き換えを行う制御部と、を有する請求項2に記載の組み込み機器制御システム。
【請求項4】
前記制御部は、
前記ヘッダ部からある機能モジュールのチェックサムを格納しているインデックス値を取得し、
前記データ部における、取得したインデックス値に対応する機能モジュールの末尾からチェックサムを取得すると共に、当該機能モジュールのチェックサムを算出し、
取得したチェックサムと算出したチェックサムとが等しいかどうかを判別する動作を、複数の機能モジュールのすべてについて行い、
前記制御部は、前記複数の機能モジュールのすべてについて、取得したチェックサムと算出したチェックサムとが等しい場合に前記配信されたファームウェアが正当であると判別する、請求項3に記載の組み込み機器制御システム。
【請求項5】
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置であって、
前記組み込み機器制御装置は、
前記ファームウェアを複数の機能モジュールに分割する分割部と、
前記複数の機能モジュール毎にチェックサムを計算する計算部と、
ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置する挿入部と、
前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する作成部と、
作成されたバイナリイメージを前記組み込み機器に配信する通信部と、
を有する組み込み機器制御装置。
【請求項6】
前記作成部は、データ部とヘッダ部とからなる前記バイナリイメージを作成し、前記データ部は分割された前記複数の機能モジュールのそれぞれの末尾に、前記複数の機能モジュール毎に計算されたチェックサムがランダムに配置されてなり、前記ヘッダ部は前記複数の機能モジュールのそれぞれについて各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス値を示す、請求項5に記載の組み込み機器制御装置。
【請求項7】
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置の制御方法であって、
前記ファームウェアを複数の機能モジュールに分割し、
前記複数の機能モジュール毎にチェックサムを計算し、
ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置し、
前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成し、
作成されたバイナリイメージを前記組み込み機器に配信する、
組み込み機器制御装置の制御方法。
【請求項8】
前記バイナリイメージとして、データ部とヘッダ部とからなるバイナリイメージを作成し、前記データ部は分割された前記複数の機能モジュールのそれぞれの末尾に、前記複数の機能モジュール毎に計算されたチェックサムがランダムに配置されてなり、前記ヘッダ部は前記複数の機能モジュールのそれぞれについて各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス値を示す、請求項7に記載の組み込み機器制御装置の制御方法。
【請求項9】
組み込み機器に書き換え対象のファームウェアを配信する、コンピュータで実現される組み込み機器制御装置に、
前記ファームウェアを複数の機能モジュールに分割する分割手順と、
前記複数の機能モジュール毎にチェックサムを計算する計算手順と、
ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置する配置手順と、
前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する作成手順と、
作成されたバイナリイメージを前記組み込み機器に配信する通信手順と、を実行させる、組み込み機器制御装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組み込み機器制御システム、組み込み機器制御装置、組み込み機器制御装置の制御方法、および組み込み機器制御装置の制御プログラムに関する。
【背景技術】
【0002】
家電製品などの電子機器に組み込まれて動作する組み込み機器は、通常、ファームウェアと呼ばれるプログラムにより制御される。
【0003】
最近の組み込み機器は、フラッシュメモリなどの不揮発性でかつ書き換え可能な記憶部にファームウェアを書き込む構成となっているため、ファームウェアに修正もしく機能追加などのアップデートの必要性が生じた場合には、比較的簡単に書き換えを行うことができる。
【0004】
ただし、組み込み機器は、改竄されたファームウェアを記憶部に書き込んでしまうと、制御不能になるなどの問題が生じるため、書き込み前にファームウェアの正当性を判断することが必要である。
【0005】
ファームウェアの正当性を判断する方法として、ファームウェアのチェックサム(SUM値)を用いる方法が知られている(特許文献1)。この方法では、通常、ファームウェアの先頭もしくは最後に挿入されているチェックサムと、自身がファームウェアから計算したチェックサムとが等しいか否かを判定することで、そのファームウェアの正当性を判断する。
【0006】
しかし、上記の方法では、上述したように、通常は、チェックサムがファームウェアの先頭もしくは最後に挿入されているため、簡単にチェックサムが取得されてファームウェアが改竄されてしまう可能性がある。
【0007】
このような問題点を解決するために、本発明者は、ファームウェアが改竄される可能性を低減することのできる技術を提案した(特許文献2)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2007−299222号公報
【特許文献2】特開2009−193442号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、特許文献2による技術を改良して、ファームウェアが改竄される可能性を更に低減することができるようにしようとするものである。
【課題を解決するための手段】
【0010】
本発明は、組み込み機器を制御するためのファームウェアを配信する組み込み機器制御装置において、ファームウェアを複数の機能モジュールに分割し、分割した複数の機能モジュール毎に算出したチェックサム(SUM値)を他の機能モジュールにランダムに配置することにより、他人から容易にファームウェアの改竄を行えないようにしたことを特徴としている。
【0011】
本発明の第1の態様によれば、組み込み機器と、前記組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置と、を含む組み込み機器制御システムであって、前記組み込み機器制御装置は、前記ファームウェアを複数の機能モジュールに分割する分割部と、前記複数の機能モジュール毎にチェックサムを計算する計算部と、ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置する挿入部と、前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する作成部と、作成されたバイナリイメージを前記組み込み機器に配信する通信部と、を有する組み込み機器制御システムが提供される。
【0012】
本発明の第2の態様によれば、組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置であって、前記組み込み機器制御装置は、前記ファームウェアを複数の機能モジュールに分割する分割部と、前記複数の機能モジュール毎にチェックサムを計算する計算部と、ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置する挿入部と、前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する作成部と、作成されたバイナリイメージを前記組み込み機器に配信する通信部と、を有する組み込み機器制御装置が提供される。
【0013】
本発明の第3の態様によれば、組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置の制御方法であって、前記ファームウェアを複数の機能モジュールに分割し、前記複数の機能モジュール毎にチェックサムを計算し、ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置し、前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成し、作成されたバイナリイメージを前記組み込み機器に配信する、組み込み機器制御装置の制御方法が提供される。
【0014】
本発明の第4の態様によれば、組み込み機器に書き換え対象のファームウェアを配信する、コンピュータで実現される組み込み機器制御装置に、前記ファームウェアを複数の機能モジュールに分割する分割手順と、前記複数の機能モジュール毎にチェックサムを計算する計算手順と、ある機能モジュールについて計算したチェックサムを、ランダムに選択した他の機能モジュールに配置する配置手順と、前記複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する作成手順と、作成されたバイナリイメージを前記組み込み機器に配信する通信手順と、を実行させる、組み込み機器制御装置の制御プログラムが提供される。
【発明の効果】
【0015】
本発明によれば、ファームウェアを分割した複数の機能モジュール毎にSUM値を用意し、これらのSUM値をランダムに選択して、ある機能モジュールについて用意したSUM値を他の機能モジュールに配置、格納することで、機能モジュールに対応したSUM値の特定を難しくすることにより、ファームウェア改竄の防止効果をより向上させることができる。
【図面の簡単な説明】
【0016】
図1】本発明に係る組み込み機器制御システムの一実施形態の構成を示すブロック図である。
図2図1に示したホストコンピュータによって作成されるバイナリイメージの構造を説明するための図である。
図3図1に示した組み込み機器制御システムの動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0017】
(実施形態の構成)
図1は、本発明の一実施形態による組み込み機器制御システムの構成を示している。
【0018】
図1に示すように、本実施形態の組み込み機器制御システムは、家電製品などの電子機器に組み込まれて動作する組み込み機器100と、組み込み機器制御装置としての機能を持つホストコンピュータ200とを有している。
【0019】
ホストコンピュータ200は、本実施形態に関連する要素としてバイナリイメージ作成部210と通信部220とを備える。ホストコンピュータ200は、その動作に際しては、図示しない記憶部に格納されている制御プログラムを読み出し、読み出した制御プログラムに基づいて制御動作を実行し、組み込み機器100に書き換え対象となるファームウェアを配信する。
【0020】
バイナリイメージ作成部210は、計算部211と、分割部212と、挿入部213と、作成部214と、を有し、ファームウェアのバイナリイメージを作成する。
【0021】
分割部212は、ファームウェアを複数の機能モジュールに分割する。分割数Mは任意の数とする。
【0022】
計算部211は、分割された複数の機能モジュール毎にSUM値(チェックサム)を計算する。挿入部213は、分割した複数の機能モジュール毎に算出したSUM値を、乱数を用いて他の機能モジュールにランダムに配置する。
【0023】
作成部214は、後で詳しく説明するように、複数の機能モジュールのそれぞれに、計算されたチェックサムがランダムに組み合わされたファームウェアを、各機能モジュールのチェックサムが格納されている他の機能モジュールの番号を示すインデックス情報と共にバイナリイメージとして作成する。
【0024】
通信部220は、作成部214で作成されたバイナリイメージを組み込み機器100に配信する。
【0025】
組み込み機器100は、制御部110と、通信部120と、SDRAM(Synchronous Random Access Memory)(一時記憶部)130と、FROM(Flash Read Only Memory)(不揮発性記憶部)140と、を有し、ホストコンピュータ200から配信されたバイナリイメージを取得し、そのバイナリイメージに格納されたファームウェアへの書き換えを行う。
【0026】
通信部120は、ホストコンピュータ200から配信されたバイナリイメージを取得する。SDRAM130は、ホストコンピュータ200から配信されたバイナリイメージを一時的に格納する。FROM140は、ファームウェアを格納する。
【0027】
制御部110もまた、その動作に際しては、FROM140に格納されている制御プログラムを読み出し、読み出した制御プログラムに基づいて以下に説明する制御動作を実行する。すなわち、制御部110は、後で説明するように、配信されたファームウェアの正当性を判別し、配信されたファームウェアが正当であると判別した場合にFROM140に格納されているファームウェアを、配信されたファームウェアに書き換える。
【0028】
次に、ホストコンピュータ200で作成されるバイナリイメージについて、図2を参照して説明する。
【0029】
バイナリイメージにはヘッダ部(B1)とデータ部(B2)とがある。データ部(B2)には、本実施形態では、機能毎に分割して番号をふった機能モジュール1(C1)〜5(C5)と分割された各機能モジュールのSUM値(D1)〜(D5)があり、これらのSUM値は乱数を使用して、他の機能モジュールの末尾にランダムに配置される。ここでは、機能モジュール1(C1)、2(C2)、3(C3)、4(C4)、5(C5)の末尾にそれぞれ、機能モジュール3、4、1、5、2のSUM値(D1)、(D2)、(D3)、(D4)、(D5)が配置されている。
【0030】
一方、ヘッダ部B1には、機能モジュール1〜5のSUM値が格納されている他の機能モジュールの番号(E1〜E5)、つまりインデックス値が配置される。ここでは、機能モジュール1、2、3、4、5のインデックス情報として、他の機能モジュールの番号3(E1)、4(E2)、1(E3)、5(E4)、2(E5)(インデックス値)が配置されている。
【0031】
上記のようなバイナリイメージに対し、制御部110は、ヘッダ部(B1)からある機能モジュールのSUM値を格納しているインデックス値を取得する。制御部110は次に、データ部(B2)における、取得したインデックス値に対応する機能モジュールの末尾からSUM値を取得すると共に、当該機能モジュールのSUM値を算出する。制御部110は、取得したSUM値と算出したSUM値とが等しいかどうかの判別動作を、複数の機能モジュールのすべてについて行う。制御部110は、複数の機能モジュールのすべてについて取得したSUM値と算出したSUM値とが等しい場合に配信されたファームウェアが正当であると判別する。
【0032】
(実施形態の動作)
本実施形態の動作について、図3のフローチャートを用いて説明する。以下の説明では、ファームウェアについて複数に分割した機能モジュールの番号をM、分割した機能モジュールの個数をMmaxとし、機能モジュールMのSUM値(チェックサム)が格納されている他の機能モジュール番号(インデックス値)をNとする。
【0033】
図1図3において、制御部110は、まず、通信部120を経由してホストコンピュータ200から図2で説明したファームウェアのバイナリイメージを受けてSDRAMA130に格納(ステップS1)する。
【0034】
制御部110は次に、SDRAM130に格納したバイナリイメージのヘッダ部(B1)から機能モジュールMのSUM値を格納しているインデックス値Nを取得し(ステップS2)、このインデックス値に対応している機能モジュールNの末尾からSUM値を取得する(ステップS3)。
【0035】
次に、制御部110は機能モジュールMのSUM値を算出(ステップS4)し、ステップS3で取得したSUM値との比較を行う(ステップS5)。比較の結果、算出したSUM値と取得したSUM値が等しくない場合は、制御部110はファームウェア本体をFROM140へ書き込まず、ホストコンピュータ200へアップデートエラーを通知してアップデート処理を終了する(ステップS6)。
【0036】
ステップS5での比較の結果、算出したSUM値と取得したSUM値が等しい場合、制御部110は機能モジュール番号Mをインクリメントする(ステップS7)。
【0037】
制御部110は、インクリメントした機能モジュール番号Mが機能モジュールの個数Mmaxを超えたか確認し(ステップS8)、インクリメントした機能モジュール番号Mが機能モジュールの個数Mmaxを超えるまで、SUM値の算出、取得、比較、インクリメントおよび個数Mmaxの確認(ステップS2〜S8)を繰り返す。
【0038】
制御部110は、ステップS8において、インクリメントした機能モジュール番号Mが機能モジュールの個数Mmaxを超えた場合は、全ての機能モジュールのSUM値が正しいので、SDRAM130に格納したファームウェアが正当であると判断し、ファームウェアをFROM140に書き込む(ステップS9)。続いて、制御部110は組み込み機器100を再起動(ステップS10)後、ホストコンピュータ200へアップデート成功を通知する(S11)。
【0039】
(他の実施形態)
本発明の他の実施形態として、その基本的構成は上記の通りであるが、機能モジュールの単位を多くして比較するSUM値を増すことや、機能モジュール全体のSUM値を設定して、全体のSUM値の算出および比較もあわせて行うことで、よりファームウェアの改竄防止効果を向上させることができる。
【0040】
(実施形態の効果)
以上説明したように、本発明の実施形態によれば、ファームウェアを複数に分割した機能モジュール毎にSUM値を用意し、これらのSUM値をランダムに選択して、ある機能モジュールについて用意したSUM値を他の機能モジュールに配置、格納することで、機能モジュールに対応したSUM値の特定が難しくなり、ファームウェアの改竄防止効果をより向上させることができる。
【符号の説明】
【0041】
100 組み込み機器
200 ホストコンピュータ
図1
図2
図3