(57)【特許請求の範囲】
【請求項１】
組み込み機器と、前記組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置と、を有してなる組み込み機器制御システムであって、
前記組み込み機器制御装置は、
前記ファームウェアのチェックサムを計算する計算部と、
前記計算部にて計算されたチェックサムを分割する分割部と、
前記分割部にて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入部と、
前記挿入部にて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信部と、を有する組み込み機器制御システム。
【請求項２】
前記計算部は、前記ファームウェアのサイズをさらに計算し、
前記挿入部は、前記分割部にて分割されたチェックサムを、該チェックサムの分割数と前記計算部にて計算されたファームウェアのサイズとに基づいて、該ファームウェアに分散して挿入し、
前記通信部は、前記挿入部にて前記分割されたチェックサムが挿入されたファームウェアとともに、該チェックサムの分割数の情報を、前記組み込み機器に配信する、請求項１に記載の組み込み機器制御システム。
【請求項３】
前記組み込み機器は、
前記ファームウェアを格納する不揮発性記憶部と、
前記組み込み機器制御装置から配信されたファームウェアを一時的に格納する一時記憶部と、
前記一時記憶部に格納されたファームウェアのサイズを計算する解析部と、
前記解析部にて計算されたファームウェアのサイズと前記組み込み機器制御装置から配信されたチェックサムの分割数の情報とに基づいて、前記ファームウェアにおける前記分割されたチェックサムの挿入位置を特定し、前記分割されたチェックサムを統合することで前記チェックサムを取得する取得部と、
前記一時記憶部に格納されたファームウェアの正当性を、前記取得部にて取得されたチェックサムに基づいて判断し、該ファームウェアが正当である場合に前記不揮発性記憶部に格納されたファームウェアの書き換えを行う書き換え部と、を有する、請求項２に記載の組み込み機器制御システム。
【請求項４】
前記分割されたチェックサムのｎ番目の挿入位置は、該チェックサムの分割数Ｎと前記ファームウェアのサイズＬとを用いた関係式
ｎ番目の挿入位置＝（Ｎ＋Ｌ）÷Ｎ×ｎ−１
により決定される、請求項２または３に記載の組み込み機器制御システム。
【請求項５】
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置であって、
前記組み込み機器制御装置は、
前記ファームウェアのチェックサムを計算する計算部と、
前記計算部にて計算されたチェックサムを分割する分割部と、
前記分割部にて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入部と、
前記挿入部にて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信部と、を有する組み込み機器制御装置。
【請求項６】
前記計算部は、前記ファームウェアのサイズをさらに計算し、
前記挿入部は、前記分割部にて分割されたチェックサムを、該チェックサムの分割数と前記計算部にて計算されたファームウェアのサイズとに基づいて、該ファームウェアに分散して挿入し、
前記通信部は、前記挿入部にて前記分割されたチェックサムが挿入されたファームウェアとともに、該チェックサムの分割数の情報を、前記組み込み機器に配信する、請求項５に記載の組み込み機器制御装置。
【請求項７】
前記分割されたチェックサムのｎ番目の挿入位置は、該チェックサムの分割数Ｎと前記ファームウェアのサイズＬとを用いた関係式
ｎ番目の挿入位置＝（Ｎ＋Ｌ）÷Ｎ×ｎ−１
により決定される、請求項６に記載の組み込み機器制御装置。
【請求項８】
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置が行う組み込み機器制御方法であって、
前記ファームウェアのチェックサムを計算する計算ステップと、
前記計算ステップにて計算されたチェックサムを分割する分割ステップと、
前記分割ステップにて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入ステップと、
前記挿入ステップにて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信ステップと、を有する組み込み機器制御方法。
【請求項９】
前記計算ステップにおいて、前記ファームウェアのサイズをさらに計算し、
前記挿入ステップにおいて、前記分割ステップにて分割されたチェックサムを、該チェックサムの分割数と前記計算ステップにて計算されたファームウェアのサイズとに基づいて、該ファームウェアに分散して挿入し、
前記通信ステップにおいて、前記挿入ステップにて前記分割されたチェックサムが挿入されたファームウェアとともに、該チェックサムの分割数の情報を、前記組み込み機器に配信する、請求項８に記載の組み込み機器制御方法。
【請求項１０】
前記分割されたチェックサムのｎ番目の挿入位置は、該チェックサムの分割数Ｎと前記ファームウェアのサイズＬとを用いた関係式
ｎ番目の挿入位置＝（Ｎ＋Ｌ）÷Ｎ×ｎ−１
により決定される、請求項９に記載の組み込み機器制御方法。
【請求項１１】
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置に、
前記ファームウェアのチェックサムを計算する計算手順と、
前記計算手順にて計算されたチェックサムを分割する分割手順と、
前記分割手順にて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入手順と、
前記挿入手順にて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信手順と、を実行させる組み込み機器制御プログラム。
【請求項１２】
前記計算手順において、前記ファームウェアのサイズをさらに計算し、
前記挿入手順において、前記分割手順にて分割されたチェックサムを、該チェックサムの分割数と前記計算手順にて計算されたファームウェアのサイズとに基づいて、該ファームウェアに分散して挿入し、
前記通信手順において、前記挿入手順にて前記分割されたチェックサムが挿入されたファームウェアとともに、該チェックサムの分割数の情報を、前記組み込み機器に配信する、請求項１１に記載の組み込み機器制御プログラム。
【請求項１３】
前記分割されたチェックサムのｎ番目の挿入位置は、該チェックサムの分割数Ｎと前記ファームウェアのサイズＬとを用いた関係式
ｎ番目の挿入位置＝（Ｎ＋Ｌ）÷Ｎ×ｎ−１
により決定される、請求項１２に記載の組み込み機器制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込み機器制御システム、組み込み機器制御装置、組み込み機器制御方法、および組み込み機器制御プログラムに関する。
【背景技術】
【０００２】
家電製品などの電子機器に組み込まれ動作する組み込み機器は、ファームウェアと呼ばれるプログラムにより制御される。
【０００３】
最近の組み込み機器は、フラッシュメモリなどの不揮発性でかつ書き換え可能な記憶媒体にファームウェアを書き込む構成になっているため、ファームウェアに修正もしく機能追加などのアップデートがあった際には、比較的簡単に書き換えが行える。
【０００４】
ただし、組み込み機器は、改ざんされたファームウェアを書き込んでしまうと、制御不能になるなどの問題が生じるため、書き込み前にファームウェアの正当性を判断することが必要である。
【０００５】
ファームウェアの正当性を判断する方法として、ファームウェアのチェックサムを用いる方法が知られている（特許文献１参照）。この方法では、通常、ファームウェアの先頭もしくは最後に挿入されているチェックサムと、自身がファームウェアから計算したチェックサムと、が等しいか否かを判定することで、そのファームウェアの正当性を判断する。
【特許文献１】特開２００７−２９９２２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、チェックサムに基づいてファームウェアの正当性を判断する方法では、上述したように、通常は、チェックサムがファームウェアの先頭もしくは最後に挿入されているため、簡単にチェックサムが取得されてファームウェアが改ざんされてしまう。
【０００７】
そのため、チェックサムを簡単には取得されないようにして、ファームウェアが改ざんされる危険性を低減することが重要な課題となっている。
【０００８】
本発明の目的は、上述した課題を解決することが出来る、組み込み機器制御システム、組み込み機器制御装置、組み込み機器制御方法、および組み込み機器制御プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の組み込み機器制御システムは、
組み込み機器と、前記組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置と、を有してなる組み込み機器制御システムであって、
前記組み込み機器制御装置は、
前記ファームウェアのチェックサムを計算する計算部と、
前記計算部にて計算されたチェックサムを分割する分割部と、
前記分割部にて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入部と、
前記挿入部にて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信部と、を有することを特徴とする。
【００１０】
上記目的を達成するために本発明の組み込み機器制御装置は、
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置であって、
前記組み込み機器制御装置は、
前記ファームウェアのチェックサムを計算する計算部と、
前記計算部にて計算されたチェックサムを分割する分割部と、
前記分割部にて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入部と、
前記挿入部にて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信部と、を有することを特徴とする。
【００１１】
上記目的を達成するために本発明の組み込み機器制御方法は、
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置が行う組み込み機器制御方法であって、
前記ファームウェアのチェックサムを計算する計算ステップと、
前記計算ステップにて計算されたチェックサムを分割する分割ステップと、
前記分割ステップにて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入ステップと、
前記挿入ステップにて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信ステップと、を有することを特徴とする。
【００１２】
上記目的を達成するために本発明の組み込み機器制御プログラムは、
組み込み機器に書き換え対象のファームウェアを配信する組み込み機器制御装置に、
前記ファームウェアのチェックサムを計算する計算手順と、
前記計算手順にて計算されたチェックサムを分割する分割手順と、
前記分割手順にて分割されたチェックサムを、前記ファームウェアに分散して挿入する挿入手順と、
前記挿入手順にて前記分割されたチェックサムが挿入されたファームウェアを、前記組み込み機器に配信する通信手順と、を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、組み込み機器制御装置は、ファームウェアのチェックサムを分割し、分割されたチェックサムをファームウェアに分散して挿入した上で、そのファームウェアを組み込み機器に配信する。
【００１４】
したがって、分割されたチェックサムの挿入位置を知らない限り、チェックサムを簡単には取得することができないため、ファームウェアが改ざんされる危険性を低減することが出来るという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００１６】
図１は、本発明の一実施形態の組み込み機器制御システムの構成を示している。
【００１７】
図１に示すように、本実施形態の組み込み機器制御システムは、組み込み機器１００と、組み込み機器制御装置であるホストコンピュータ２００と、を有している。
【００１８】
ホストコンピュータ２００は、バイナリーイメージ作成部２１０と、通信部２２０と、を有し、組み込み機器１００に書き換え対象となるファームウェアを配信する。
【００１９】
バイナリーイメージ作成部２１０は、計算部２１１と、分割部２１２と、挿入部２１３と、作成部２１４と、を有し、ファームウェアのバイナリーイメージを作成する。
【００２０】
計算部２１１は、ファームウェアのチェックサムとサイズＬを計算する。
【００２１】
分割部２１１は、計算部２１１で計算されたチェックサムを、等サイズでＮ個に分割する。なお、分割数Ｎは任意の数とする。
【００２２】
挿入部２１３は、分割部２１１で分割されたチェックサムを、チェックサムの分割数ＮとファームウェアのサイズＬとに基づいて、ファームウェアに分散して挿入する。
【００２３】
作成部２１４は、分割部２１１で分割されたチェックサムが挿入部２１３で分散されて挿入されたファームウェアと、チェックサムの分割数Ｎの情報と、を規定の位置に格納したバイナリーイメージを作成する。
【００２４】
通信部２２０は、作成部２１４で作成されたバイナリーイメージを組み込み機器１００に配信する。
【００２５】
なお、本実施形態においては、ファームウェアとチェックサムの分割数Ｎの情報とを、バイナリーイメージに格納して組み込み機器１００に配信する方法を採用しているが、配信方法は、これに限定されるものではなく、ファームウェアとチェックサムの分割数Ｎの情報とを組み込み機器１００に配信できる任意の方法で良いものとする。
【００２６】
組み込み機器１００は、制御部１１０と、通信部１２０と、一時記憶部１３０と、不揮発性記憶部１４０と、を有し、ホストコンピュータ２００から配信されたバイナリーイメージを取得し、そのバイナリーイメージに格納されたファームウェアへの書き換えを行う。
【００２７】
通信部１２０は、ホストコンピュータ２００から配信されたバイナリーイメージを取得する。
【００２８】
一時記憶部１３０は、ホストコンピュータ２００から配信されたバイナリーイメージを一時的に格納する。
【００２９】
不揮発性記憶部１４０は、ファームウェアを格納する。
【００３０】
制御部１１０は、解析部１１１と、取得部１１２と、書き換え部１１３と、を有し、ファームウェアの書き換えを含む、組み込み機器１００の制御を行う。
【００３１】
解析部１１１は、一時記憶部１３０に格納されたバイナリーイメージから、ホストコンピュータ２００で計算されたチェックサムの分割数Ｎの情報を取得する。また、解析部１１１は、取得した分割数Ｎの情報に基づいてファームウェアのサイズＬを計算する。
【００３２】
取得部１１２は、解析部１１１で計算されたファームウェアのサイズとバイナリーイメージから取得した分割数Ｎの情報とに基づいて、分割されたチェックサムの挿入位置を特定し、分割されたチェックサムを統合することで、ホストコンピュータ２００で計算されたチェックサムを取得する。
【００３３】
書き換え部１１３は、バイナリーイメージに格納されているファームウェアの正当性を、取得部１１２で取得されたチェックサムに基づいて判断し、ファームウェアが正当である場合に不揮発性記憶部１４０に格納されているファームウェアを、バイナリーイメージに格納されている新しいファームウェアに書き換える。
【００３４】
次に、ホストコンピュータ２００で作成されるバイナリーイメージについて、図２を参照して説明する。
【００３５】
図２に示すように、ホストコンピュータ２００で作成されるバイナリーイメージは、先頭にチェックサムの分割数Ｎの情報が格納され、その後方に、分割されたチェックサムが分散されて挿入されたファームウェアが格納されている。なお、ここでは、バイナリーイメージの先頭に分割数Ｎの情報を、その後方にファームウェアを格納しているが、分割数Ｎの情報およびファームウェアの格納位置はこれらに特定されるものではなく、バイナリーイメージ中の規定の位置にそれぞれ格納されれば良いものとする。
【００３６】
解析部１１１は、ホストコンピュータ２００から、分割数Ｎの情報が格納されている規定の位置をあらかじめ知らされている。そのため、解析部１１１は、バイナリーイメージから分割数Ｎの情報を取得することが出来る。また、上述した様に、チェックサムは等サイズで分割されるため、解析部１１１は、取得した分割数Ｎの情報を用いてバイナリーイメージに格納されているファームウェアのサイズＬを計算することが出来る。
【００３７】
次に、分割されたチェックサムの挿入位置（Ｙ1〜ＹN）の決定方法について、図３を参照して説明する。
【００３８】
図３に示すように、分割されたチェックサムのｎ番目の挿入位置は、分割数ＮとファームウェアのサイズＬとを用いた次の関係式により決定され。
【００３９】
ｎ番目の挿入位置＝（分割数Ｎ＋ファームウェアのサイズＬ）÷分割数Ｎ×ｎ番目−１
なお、図３に示した各式の最後で１を減じているのは、挿入位置をアドレスとして求めるため、アドレスの値が０から始まることを考慮したためである。
【００４０】
この様に、分割されたチェックサムの挿入位置は正数のみを扱った簡単な関係式により求めることが出来る。そのため、取得部１１２は、解析部１１１で計算されたファームウェアのサイズＬとバイナリーイメージから取得された分割数Ｎの情報に基づいて、挿入位置（Ｙ1〜ＹN）を容易に特定することが出来る。
【００４１】
次に、本実施形態の組み込み機器制御システムの動作について、図４および図５のフローチャートを参照して説明する。
【００４２】
最初に、ホストコンピュータ２００の動作について、図４を参照して説明する。
【００４３】
図４を参照すると、まず、計算部２１１は、ファームウェアのチェックサムおよびサイズＬを計算する（Ｓ４０１）。
【００４４】
次に、分割部２１２は、計算部２１１で計算されたチェックサムをＮ個に分割する（Ｓ４０２）。
【００４５】
次に、挿入部２１３は、分割部２１２で分割されたチェックサムの挿入位置を、分割数ＮとファームウェアのサイズＬとを図３に示した関係式に代入することで決定した上で、分割されたチェックサムをファームウェアに分散して挿入する（Ｓ４０３）。
【００４６】
次に、作成部２１４は、分割されたチェックサムが挿入されたファームウェアと、分割数Ｎの情報と、を規定の位置に格納したバイナリーイメージを作成する（Ｓ４０４）。
【００４７】
次に、通信部２２０は、作成部２１４で作成したバイナリーイメージを組み込み機器１００に配信する（Ｓ４０５）。
【００４８】
その後、通信部２２０は、組み込み機器１００からのファームウェアの書き換え成功の通知があったか否かに基づいて、組み込み機器１００においてファームウェアの書き換えが成功したか否かを判定し（Ｓ４０６）、書き換えが成功している場合は処理を終了する。
【００４９】
次に、組み込み機器１００の動作について、図５を参照して説明する。
【００５０】
図５を参照すると、制御部１１０は、ホストコンピュータ２００から新しいバイナリーイメージが配信されたか否かを判定し（Ｓ５０１）、配信されていれば、新しいバイナリーイメージを一時記憶部１３０に格納する（Ｓ５０２）。
【００５１】
次に、解析部１１１は、一時記憶部１３０に格納されたバイナリーイメージから、ホストコンピュータ２００で計算されたチェックサムの分割数Ｎの情報を取得し（Ｓ５０３）、取得した分割数Ｎの情報に基づいてファームウェアのサイズＬを計算する（Ｓ５０４）。
【００５２】
次に、取得部１１２は、分割されたチェックサムの挿入位置を、分割数ＮとファームウェアのサイズＬとを図３に示した関係式に代入することで特定する（Ｓ５０５）。
【００５３】
次に、取得部１１２は、挿入位置が特定された、分割されたチェックサムを統合することで、ホストコンピュータ２００で計算されたチェックサムを取得する(Ｓ５０６)。
【００５４】
次に、書き換え部１１３は、バイナリーイメージから分割数Ｎの情報とチェックサムを取り除くことでファームウェアを取得し、そのファームウェアのチェックサムを計算する(Ｓ５０７)。
【００５５】
次に、書き換え部１１３は、自身で計算されたチェックサムと、ホストコンピュータ２００で計算されたチェックサムと、が一致するか否かを判定する（Ｓ５０８）。
【００５６】
書き換え部１１３は、チェックサムが一致しない場合、通信部１２０を通じてホストコンピュータ２００に書き換え失敗のエラーを通知する（Ｓ５１２）
一方、書き換え部１１３は、チェックサムが一致する場合、不揮発性記憶部１４０に格納されているファームウェアを新しいファームウェアに書き換える（Ｓ５０９）。また、書き換え部１１３は、ファームウェアの書き換え後、不揮発性記憶部１４０に書き換え成功のフラグを立てる。
【００５７】
次に、書き換え部１１３は、組み込み機器１００を再起動し、書き換えた新しいファームウェアを制御部１１０に反映させる（Ｓ５１０）。
【００５８】
その後、新しいファームウェアが反映された制御部１１０は、不揮発性記憶部１４０のフラグを確認し、通信部１２０を通じてホストコンピュータ２００にファームウェアの書き換え成功を通知する（Ｓ５１１）。
【００５９】
上述したように本実施形態においては、ホストコンピュータ２００は、ファームウェアのチェックサムを分割し、分割されたチェックサムをファームウェアに分散して挿入した上で、そのファームウェアを組み込み機器に配信する。
【００６０】
したがって、分割されたチェックサムの挿入位置を知らない限り、チェックサムを簡単には取得することができないため、ファームウェアが改ざんされる危険性を低減することが出来るという効果が得られる。
【００６１】
なお、本発明のホストコンピュータ２００は、上述のように専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、ホストコンピュータ２００で読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムを組み込み機器１００に読み込ませ、実行するものであってもよい。ホストコンピュータ２００で読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、ホストコンピュータ２００に内蔵されるハードディスク装置等の記憶装置を指す。さらに、ホストコンピュータ２００で読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にホストコンピュータ２００内部の揮発性メモリのように一定時間プログラムを保持しているものを含む。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態の組み込み機器制御システムの構成を示すブロック図である。
【図２】図１に示したホストコンピュータにて作成されるバイナリーイメージの構造を説明する図である。
【図３】図２に示したバイナリーイメージ中の分割されたチェックサムの挿入位置を決定するための計算方法を説明する図である。
【図４】図１に示したホストコンピュータの動作を説明するフローチャートである。
【図５】図１に示した組み込み機器の動作を説明するフローチャートである。
【符号の説明】
【００６３】
１００    組み込み機器
１１０    制御部
１１１    解析部
１１２    取得部
１１３    書き換え部
１２０    通信部
１３０    一時記憶部
１４０    不揮発性記憶部
２００    ホストコンピュータ
２１０    バイナリーイメージ作成部
２１１    計算部
２１２    分割部
２１３    挿入部
２１４    作成部
２２０    通信部
【図１】
0005136889.tif 000002
【図２】
0005136889.tif 000003
【図３】
0005136889.tif 000004
【図４】
0005136889.tif 000005
【図５】
0005136889.tif 000006