(57)【要約】本願発明の情報処理装置は、情報処理装置本体に収容される記憶メディアドライブが、ファームウエアを書き換え可能に格納する記憶メモリと、暗号化されていない平文のヘッダと暗号化されたファームウエア本体とを有するファームウエアモジュールを情報処理装置本体から受信し、ファームウエア本体を復号して、この復号されたファームウェア本体に含まれる情報と平文のヘッダに含まれる情報とを比較することによりファームウエアモジュールが正当であると判断した場合、記憶メモリに格納された既存のファームウエアを、ファームウエア本体を用いて更新されたファームウエアに書き換えるメモリコントローラとを有する。
2010517120.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
情報処理装置本体と、
前記情報処理装置本体に収容される記憶メディアドライブと、
を具備し、
前記情報処理装置本体は、
通信手段と、
前記記憶メディアドライブに格納されたファームウェアの更新を指示する操作がなされた場合、暗号化されていない平文のヘッダと暗号化されたファームウエア本体とを有するファームウエアモジュールのうち、前記平文のヘッダを前記通信手段により外部から取得し、この平文のヘッダに含まれるファームウエアリビジョン情報と前記記憶メディアドライブから取得した既存のファームウェアのファームウエアリビジョン情報とを比較して、前記ファームウェアモジュールの正当性を判断するダウンロード制御手段と、
を有し、
前記記憶メディアドライブは、
前記ファームウエアを書き換え可能に格納する記憶メモリと、
前記ファームウエアモジュールを前記情報処理装置本体から受信し、前記暗号化されたファームウエア本体を復号して、この復号されたファームウェア本体に含まれる情報と前記平文のヘッダに含まれる情報とを比較することにより前記ファームウエアモジュールが正当であると判断した場合、前記記憶メモリに格納された既存のファームウエアを、前記ファームウエア本体を用いて更新されたファームウエアに書き換えるメモリ制御手段と、
を有する、
情報処理装置。
【請求項２】
前記記憶メディアドライブは、不揮発性半導体メモリドライブである請求項１記載の情報処理装置。
【請求項３】
前記記憶メディアドライブの前記メモリ制御手段は、前記平文のヘッダに含まれるファームウエアリビジョン情報と前記復号されたファームウエア本体のファームウエアリビジョン情報とを比較することにより前記ファームウエアモジュールが正当であるか否かを判断する請求項１記載の情報処理装置。
【請求項４】
前記記憶メディアドライブの前記メモリ制御手段は、前記平文のヘッダに含まれるファームウエアファイルサイズ情報と前記復号されたファームウエア本体に含まれるファームウエアファイルサイズ情報とを比較することにより前記ファームウエアモジュールが正当であるか否かを判断する請求項１記載の情報処理装置。
【請求項５】
前記記憶メディアドライブの前記メモリ制御手段は、前記情報処理装置本体から前記ファームウエアモジュールを分割して受信する場合、前記平文のヘッダに含まれるファームウエアファイルサイズ情報に基づき、分割された前記ファームウエアモジュールの受信完了を判断する請求項１記載の情報処理装置。
【請求項６】
情報処理装置本体に収容される記憶メディアドライブであって、
ファームウエアを書き換え可能に格納する記憶メモリと、
暗号化されていない平文のヘッダと暗号化されたファームウエア本体とを有するファームウエアモジュールを前記情報処理装置本体から受信し、前記暗号化されたファームウエア本体を復号して、この復号されたファームウェア本体に含まれる情報と前記平文のヘッダに含まれる情報とを比較することにより前記ファームウエアモジュールが正当であると判断した場合、前記記憶メモリに格納された既存のファームウエアを、前記ファームウエア本体を用いて更新されたファームウエアに書き換えるメモリ制御手段と、
を具備する記憶メディアドライブ。
【請求項７】
前記記憶メディアドライブは、不揮発性半導体メモリドライブである請求項６記載の記憶メディアドライブ。
【請求項８】
前記メモリ制御手段は、前記平文のヘッダに含まれるファームウエアリビジョン情報と前記復号されたファームウエア本体のファームウエアリビジョン情報とを比較することにより前記ファームウエアモジュールが正当であるか否かを判断する請求項６記載の記憶メディアドライブ。
【請求項９】
前記メモリ制御手段は、前記平文のヘッダに含まれるファームウエアファイルサイズ情報と前記復号されたファームウエア本体に含まれるファームウエアファイルサイズ情報とを比較することにより前記ファームウエアモジュールが正当であるか否かを判断する請求項６記載の記憶メディアドライブ。
【請求項１０】
前記メモリ制御手段は、前記情報処理装置本体から前記ファームウエアモジュールを分割して受信する場合、前記平文のヘッダに含まれるファームウエアファイルサイズ情報に基づき、分割された前記ファームウエアモジュールの受信完了を判断する請求項６記載の記憶メディアドライブ。
【請求項１１】
情報処理装置本体と、前記情報処理装置本体に収容される記憶メディアドライブとを有する情報処理装置のファームウエア更新方法であって、
前記情報処理装置本体が、前記記憶メディアドライブに格納されたファームウェアの更新を指示する操作がなされた場合、暗号化されていない平文のヘッダと暗号化されたファームウエア本体とを有するファームウエアモジュールのうち、前記平文のヘッダを通信手段により外部から取得し、この平文のヘッダに含まれるファームウエアリビジョン情報と前記記憶メディアドライブから取得した既存のファームウェアのファームウエアリビジョン情報とを比較して、前記ファームウェアモジュールの正当性を判断し、
前記記憶メディアドライブが、前記ファームウエアモジュールを前記情報処理装置本体から受信し、前記暗号化されたファームウエア本体を復号して、この復号されたファームウェア本体に含まれる情報と前記平文のヘッダに含まれる情報とを比較することにより前記ファームウエアモジュールが正当であると判断した場合、記憶メディアに格納された既存のファームウエアを、前記ファームウエア本体を用いて更新されたファームウエアに書き換える、
ファームウエア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、記憶メディアドライブおよびファームウエア更新方法に関する。
【背景技術】
【０００２】
従来、暗号化されていない平文のヘッダと暗号化された本体とを有するプログラムを読み込んで、プログラムが正当であるか判断した後に記憶部に記録する情報処理装置が知られている（例えば、特許文献１参照）。
【０００３】
この情報処理装置は、予め実行プログラムを格納する第１の記憶部と、モジュール識別情報を格納する第２の記憶部と、実行プログラムとモジュール識別情報とから作成される暗号鍵を用いて暗号化されたダウンロードモジュールを受信して第２の記憶部に格納する第１の制御部と、第１の記憶部内の実行プログラムと第２の記憶部内のダウンロードモジュールとから作成した暗号鍵を用いてダウンロードモジュールを復号化し、ダウンロードモジュール内に含まれる格納開始アドレス、データ長およびチェックサムが正当な値である場合、復号化されたダウンロードモジュールに含まれる新たな実行プログラムで第１の記憶部内の実行プログラムを置き換える第２の制御部とを有するため、ダウンロード対象のプログラムの解読を防止するとともに、予め格納される実行プログラムを用いてダウンロードモジュールを暗号化することで、ダウンロードモジュールに含まれる新たな実行プログラムと予め格納される実行プログラムとを比較することができ、誤ったダウンロードを防止することができる。
【０００４】
しかし、従来の情報処理装置によると、実行プログラムのバージョン情報は平文のヘッダに記述されているため、容易に書き換えが可能であり、必ずしも実行プログラムが不正に利用されないとは言えない。また、ダウンロードモジュールのファイルサイズは、平文のヘッダに記述されておらず、例えば、ダウンロードモジュールが分割されて第２の記憶部に格納される場合、第２の記憶部でダウンロードモジュールの格納完了を判断することが難しい。
【０００５】
この発明は、このような事情を考慮してなされたものであり、ダウンロード対象のプログラムの解読を防止するとともに、プログラムの不正利用を防止し、不揮発性半導体メモリドライブ側でプログラムの受信完了を判断できる情報処理装置、記憶メディアドライブおよびファームウエア更新方法を提供することを目的とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開０２／０５７９０４号パンフレット
【発明の概要】
【０００７】
一例によれば、この発明の情報処理装置は、情報処理装置本体と、情報処理装置本体に収容される記憶メディアドライブとを有する。情報処理装置本体は、通信手段と、記憶メディアドライブに格納されたファームウェアの更新を指示する操作がなされた場合、暗号化されていない平文のヘッダと暗号化されたファームウエア本体とを有するファームウエアモジュールのうち、平文のヘッダを通信手段により外部から取得し、この平文のヘッダに含まれるファームウエアリビジョン情報と記憶メディアドライブから取得した既存のファームウェアのファームウエアリビジョン情報とを比較して、ファームウェアモジュールの正当性を判断するダウンロード制御手段とを有する。記憶メディアドライブは、ファームウエアを書き換え可能に格納する記憶メモリと、ファームウエアモジュールを情報処理装置本体から受信し、暗号化されたファームウエア本体を復号して、この復号されたファームウェア本体に含まれる情報と平文のヘッダに含まれる情報とを比較することによりファームウエアモジュールが正当であると判断した場合、記憶メモリに格納された既存のファームウエアを、ファームウエア本体を用いて更新されたファームウエアに書き換えるメモリ制御手段とを有する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施形態に係る情報処理装置の外観を示す概略図である。
【図２】図２は、同実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図３】図３は、同実施形態に係るＳＳＤの概略構成を示すブロック図である。
【図４Ａ】図４Ａは、同実施形態に係るファームウエアモジュールの構成を示す第１の概略図である。
【図４Ｂ】図４Ｂは、同実施形態に係るファームウエアモジュールの構成を示す第２の概略図である。
【図４Ｃ】図４Ｃは、同実施形態に係るファームウエアモジュールの構成を示す第３の概略図である。
【図５】図５は、同実施形態に係るファームウエアモジュールの構成を示す概略図である。
【図６】図６は、同実施形態に係るホスト装置の動作を示すフローチャートである。
【図７】図７は、同実施形態に係るＳＳＤの動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の実施形態を説明する。
【００１０】
（情報処理装置の構成）
図１は、本発明の実施形態に係る情報処理装置１の外観を示す概略図である。
【００１１】
この情報処理装置１は、本体２と、本体２に取り付けられた表示ユニット３とから構成されている。
【００１２】
本体２は、箱状の筐体４を有し、その筐体４は、上壁４ａ、周壁４ｂおよび下壁（図示せず）を備える。筐体４の上壁４ａは、情報処理装置１を操作するユーザに近い側から順にフロント部４０、中央部４１およびバック部４２を有する。下壁は、この情報処理装置１が置かれる設置面に対向する。周壁４ｂは、前壁４ｂａ、後壁４ｂｂおよび左右の側壁４ｂｃ，４ｂｄを有する。
【００１３】
フロント部４０は、ポインティングデバイスであるタッチパッド２０と、パームレスト２１と、情報処理装置１の各部の動作に連動して点灯するＬＥＤ２２とを備える。
【００１４】
中央部４１は、文字情報等を入力可能なキーボード２３ａが取り付けられるキーボード載置部２３を備える。
【００１５】
バック部４２は、着脱可能に取り付けられたバッテリパック２４と、バッテリパック２４の右側に情報処理装置１の電源を投入するための電源スイッチ２５と、バッテリパック２４の左右に表示ユニット３を回転可能に支持する一対のヒンジ部２６ａ，２６ｂとを備える。
【００１６】
筐体４の左の側壁４ｂｃには、筐体４内から外部に対して風Ｗを排出する排出口２９が設けられている。また、右の側壁４ｂｄには、例えば、ＤＶＤ等の光記憶媒体にデータを読み書き可能なＯＤＤ（Optical Disc Drive）２７と、各種のカードが出し入れされるカードスロット２８とが配置されている。
【００１７】
筐体４は、周壁４ｂの一部および上壁４ａを含む筐体カバーと、周壁４ｂの一部および下壁を含む筐体ベースとにより形成されている。筐体カバーは、筐体ベースに対して着脱自在に組み合わされ、筐体ベースとの間に収容空間を形成する。この収容空間には、不揮発性半導体メモリドライブとしてのＳＳＤ（Solid State Drive）１０等が収容される。なお、ＳＳＤ１０の詳細は後述する。
【００１８】
表示ユニット３は、開口部３０ａを有するディスプレイハウジング３０と、表示画面３１ａに画像を表示可能なＬＣＤ等からなる表示部３１とを備える。表示部３１はディスプレイハウジング３０に収容され、表示画面３１ａは開口部３０ａを通じてディスプレイハウジング３０の外部に露出している。
【００１９】
筐体４内には、上述のＳＳＤ１０、バッテリパック２４、ＯＤＤ２７およびカードスロット２８の他に、図示しないメイン回路基板、拡張モジュールおよびファン等が収容されている。
【００２０】
図２は、本発明の実施の形態に係る情報処理装置１の概略構成を示すブロック図である。
【００２１】
この情報処理装置１は、上述のＳＳＤ１０、拡張モジュール１２、ファン１３、タッチパッド２０、キーボード２３ａ、ＬＥＤ２２、電源スイッチ２５、ＯＤＤ２７、カードスロット２８および表示部３１の他に、各部を制御する組込システムであるＥＣ（Embedded Controller）１１１と、ＢＩＯＳ（Basic Input Output System）１１２ａを格納するフラッシュメモリ１１２と、ＬＳＩ（Large Scale Integration）チップであり各種バスコントローラおよびＩ／Ｏコントローラ（主制御部）として機能するサウスブリッジ１１３と、ＬＳＩチップであり後述するＣＰＵ（Central Processing Unit）１１５、ＧＰＵ（Graphic Processing Unit）１１６、メインメモリ１１７および各種バスとの接続を制御するノースブリッジ１１４と、各種信号を演算処理するＣＰＵ１１５と、映像信号を演算処理して表示制御するＧＰＵ１１６と、ＣＰＵ１１５により読み書きされるメインメモリ１１７とを有する。
【００２２】
拡張モジュール１２は、拡張回路基板と、拡張回路基板に設けられたカードソケットと、カードソケットに挿入された拡張モジュール基板とを備える。カードソケットは、例えば、Ｍｉｎｉ−ＰＣＩ等の規格に基づいており、拡張モジュール基板は、例えば、３Ｇ（3rd Generation）モジュール、テレビチューナー、ＧＰＳモジュール、およびＷｉｍａｘ(登録商標)モジュール、無線ＬＡＮモジュール等が挙げられる。なお、本実施の形態において、拡張モジュール１２は、通信手段として機能する無線ＬＡＮモジュール等である。
【００２３】
ファン１３は、筐体４内を送風に基づいて冷却する冷却部であり、筐体４内の空気を排出口２９を介して風Ｗとして外部に排出する。
【００２４】
なお、ＥＣ１１１、フラッシュメモリ１１２、サウスブリッジ１１３、ノースブリッジ１１４、ＣＰＵ１１５、ＧＰＵ１１６およびメインメモリ１１７は、メイン回路基板に実装された電子部品である。
【００２５】
ＳＳＤ１０は、データやプログラムを記憶し、電源を供給しなくても記録が消えない外部記憶装置である。従来のハードディスクドライブのような磁気ディスクやヘッド等の駆動機構を持たないが、ＮＡＮＤメモリの記憶領域に、ＯＳ（Operating System）等のプログラム、ユーザやソフトウエアの実行に基づいて作成されたデータ等を従来のハードディスクドライブと同様に読み書き可能に長期的に保存でき、情報処理装置１の起動ドライブとして動作することのできる不揮発性半導体メモリからなるドライブである。
【００２６】
図３は、本発明の実施の形態に係るＳＳＤ１０の概略構成を示すブロック図である。
【００２７】
メモリコントローラとしての制御部１０３は、温度センサ１０１、コネクタ１０２、８つのＮＡＮＤメモリ１０４Ａ〜１０４Ｈ、ＤＲＡＭ１０５、および電源回路１０６にそれぞれ接続されている。また、制御部１０３は、コネクタ１０２を介してホスト装置８に接続され、必要に応じて外部装置９に接続される。
【００２８】
電源７は、バッテリパック２４または図示しないＡＣアダプタであり、例えば、ＤＣ３．３Ｖがコネクタ１０２を介して電源回路１０６に供給される。また、電源７は、情報処理装置１全体に対して電力を供給する。
【００２９】
ホスト装置８は、本実施の形態では情報処理装置１であり、メイン回路基板に実装されたサウスブリッジ１１３と制御部１０３との間が接続されている。サウスブリッジ１１３と制御部１０３との間は、例えば、シリアルＡＴＡ等の規格に基づいてデータの送受信が行われる。
【００３０】
外部装置９は、情報処理装置１とは異なる他の情報処理装置である。外部装置９は、情報処理装置１から取り外されたＳＳＤ１０に対して、例えば、ＲＳ−２３２Ｃ等の規格に基づいて制御部１０３に接続され、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈに記憶されたデータを読み出す機能を有する。
【００３１】
ＳＳＤ１０が実装される基板は、例えば、１．８インチタイプまたは２．５インチタイプのＨＤＤ（Hard disk drive）と同等の外形サイズを有する。なお、本実施の形態では、１．８インチタイプと同等である。
【００３２】
温度センサ１０１は、基板上において、ともに熱源となる制御部１０３とＮＡＮＤメモリ１０４Ａ〜１０４Ｈとの間に設けられている。本実施の形態においては、温度センサ１０１は、制御部１０３とＮＡＮＤメモリ１０４Ａ〜１０４Ｈによって囲まれるように基板の中央付近に設けられ、その位置における温度を測定する。温度センサ１０１により測定された測定温度は、温度情報として制御部１０３に送られる。なお、本実施の形態では、半導体のＰＮ接合部の電圧が温度により変化する特性を利用した半導体温度センサを用いたが、例えば、サーミスタ等の他の方式による温度センサを用いてもよい。
【００３３】
上記の位置に設けられた温度センサ１０１による測定温度は、ＳＳＤ１０が動作中の場合は、例えば、５０℃〜６０℃であり、基板１００の他の領域に比較して１０℃程度高い。
【００３４】
制御部１０３は、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対する動作を制御する。具体的には、制御部１０３は、ホスト装置８からの要求に応じて、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対するデータの読み書きを制御する。データの転送速度は、例えば、データ読み出し時で１００ＭＢ／Ｓｅｃ、書き込み時で４０ＭＢ／Ｓｅｃである。
【００３５】
制御部１０３は、温度センサ１０１から温度情報を一定の周期で取得し、温度情報が示す測定温度が予め設定された規定値を超えているとき、ホスト装置８に対するレスポンスを低下させる。レスポンスを低下させる動作は、ＳＳＤ１０が有する処理能力の一部を制限する動作として、例えば、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈから読み出したデータをホスト装置８に転送する際の転送速度の低下や、制御部１０３とＮＡＮＤメモリメモリ１０４Ａ〜１０４Ｈとの間の転送速度の低下等が挙げられる。
【００３６】
また、制御部１０３は、測定温度が規定値を超えているとき、その旨を示す情報として警告信号をホスト装置８に出力する。なお、制御部１０３は、警告信号の代わりに温度情報自体をホスト装置８に出力してもよい。
【００３７】
また、制御部１０３は、その取得した温度情報をその取得した取得日時とともにＮＡＮＤメモリ１０４Ａ〜１０４Ｈの所定のアドレスに書き込む。
【００３８】
ＮＡＮＤメモリ１０４Ａ〜１０４Ｈは、１つの記憶容量が、例えば、１６ＧＢの不揮発性の半導体メモリであって、例えば、１つのメモリセルに２ビットを記録可能なＭＬＣ（Multi Level Cell）−ＮＡＮＤメモリ（多値ＮＡＮＤメモリ）である。ＭＬＣ−ＮＡＮＤメモリは、ＳＬＣ（Single Level Cell）−ＮＡＮＤメモリに比較して、一般に書き換え可能回数は劣るが、記憶容量の大容量化は容易である。また、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈは、設置された環境温度によりデータを保持可能な期間が変動する特性を有する。
【００３９】
ＮＡＮＤメモリ１０４Ａ〜１０４Ｈは、制御部１０３の制御により書き込まれたデータ、温度情報および取得日時を記憶するとともに、ＳＳＤ１０を動作させるためのファームウエア２００を記憶する。また、ファームウエア２００は、自己のバージョン情報としてのファームウエアリビジョンを有する。
【００４０】
ＤＲＡＭ１０５は、制御部１０３の制御によりＮＡＮＤメモリ１０４Ａ〜１０４Ｈに対するデータの読み書きが行われる際に一時的にデータが格納されるバッファである。
【００４１】
コネクタ１０２は、シリアルＡＴＡ等の規格に基づいた形状を有する。なお、制御部１０３および電源回路１０６は、別々のコネクタによりホスト装置８および電源７にそれぞれ接続されていてもよい。
【００４２】
電源回路１０６は、電源７から供給されたＤＣ３．３Ｖを、例えば、ＤＣ１．８Ｖ、１．２Ｖ等に変換するとともに、それら３種類の電圧をＳＳＤ１０の各部の駆動電圧に合わせて各部に供給する。
【００４３】
図４Ａ，図４Ｂ，図４Ｃは、本発明の実施の形態に係るファームウエアモジュールの構成を示す概略図である。
【００４４】
ファームウエアモジュール２００Ａは、例えば、情報処理装置１の拡張モジュール１２としての無線ＬＡＮモジュールに接続された外部ネットワークと通信して取得されるプログラムであり、ＳＳＤ１０のファームウエア２００を更新する。
【００４５】
また、ファームウエアモジュール２００Ａは、図４Ａに示すように、暗号化されていない平文で構成されるヘッダ２０１と、暗号化されたファームウエア本体２０２および署名２０３とを有する。
【００４６】
ヘッダ２０１は、固定長のデータサイズを有し、図４Ｂに示すように、固定長を補うためのダミーデータ２０１ａと、後述するファームウエア本文２０２ａのファイルサイズを記述するファームウエアファイルサイズ２０１ｂと、ファームウエア本体２０２のバージョン情報等を記述するファームウエアリビジョン２０１ｃと、リザーブ領域であるリザーブド２０１ｄと、ヘッダ２０１の誤り検出用のチェックサム２０１ｅとを有する。
【００４７】
ファームウエア本体２０２は、図４Ｃに示すように、ファームウエア２００を書き換えるためのファームウエア本文２０２ａと、ファームウエア本文２０２ａのファイルサイズを記述するファームウエアファイルサイズ２０２ｂと、ファームウエア本体２０２のバージョン情報等を記述するファームウエアリビジョン２０２ｃとを有する。
【００４８】
署名２０３は、ファームウエアモジュール２００Ａの送信者を証明し、ファームウエアモジュール２００Ａの正当性を保証するために公開鍵で暗号化された署名情報である。
【００４９】
図５は、本発明の実施の形態に係るファームウエアモジュールの構成を示す概略図である。
【００５０】
ファームウエアモジュール２００Ａは、所定のオフセットサイズ、例えば、５１２バイトで分割され、情報処理装置１およびＳＳＤ１０によって受信される。また、ファームウエアモジュール２００Ａの分割されたファイルごとにファームウエア２００Ａの先頭からのオフセットサイズでオフセット２００ａ、２００ｂ、２００ｃ…が与えられる。
【００５１】
（動作）
以下に、本発明の実施の形態における情報処理装置の動作を各図を参照しつつ説明する。
【００５２】
図６は、本発明の実施の形態に係るホスト装置の動作を示すフローチャートである。
【００５３】
ホスト装置８としての情報処理装置１は、無線ＬＡＮモジュール等である拡張モジュール１２を介して外部から、例えば、外部のサーバーからインターネットを介して、ファームウエアモジュール２００Ａをリードして、新たなバージョン情報を有するファームウエアでアップデートするよう、タッチパッド２０およびキーボード２３ａ等において利用者により操作がなされた場合（Ｓ１０のＹｅｓ）、ファームウエアモジュール２００Ａのヘッダ２０１をリードする（Ｓ１１）。
【００５４】
次に、情報処理装置１は、ＳＳＤ１０のファームウエア２００にアクセスしてファームウエア２００のファームウエアリビジョンを取得する（Ｓ１２）。ファームウエアモジュール２００Ａのヘッダ２０１に含まれるファームウエアリビジョン２０１ｃとファームウエア２００のファームウエアリビジョンとを比較して、ファームウエアモジュール２００Ａのバージョン情報の方が新しい場合（Ｓ１３のＹｅｓ）、オフセット２００ａ〜２００ｃにおいて区切られたデータごとにファームウエアモジュール２００Ａを通信手段としての拡張モジュール１２を介してダウンロードする（Ｓ１４）。
【００５５】
また、ステップＳ１３において、ファームウエアモジュール２００Ａのバージョン情報の方が新しくない場合（Ｓ１３のＮｏ）、表示部３１にダウンロードを続行するかどうかを確認する旨を表示する等して、その結果、タッチパッド２０およびキーボード２３ａ等において利用者によりダウンロードを続行するよう指示された場合（Ｓ１６のＹｅｓ）、オフセット２００ａ〜２００ｃにおいて区切られたデータごとにファームウエアモジュール２００Ａをダウンロードする（Ｓ１４）。
【００５６】
また、ステップＳ１６において、利用者によりダウンロード続行指示が無かった場合（Ｓ１６のＮｏ）、アップデート処理を終了する。
【００５７】
ステップＳ１４を繰り返してファームウエアモジュール２００Ａをダウンロードし（Ｓ１５のＮｏ）、ファームウエアモジュール２００Ａがすべてダウンロードされると（Ｓ１５のＹｅｓ）、アップデート処理を終了する。
【００５８】
図７は、本発明の実施の形態に係るＳＳＤの動作を示すフローチャートである。
【００５９】
ＳＳＤ１０の制御部１０３は、コネクタ１０２を介してホスト装置８からファームウエアモジュール２００Ａが転送されると（Ｓ２０のＹｅｓ）、受信するデータのオフセットサイズを確認して、オフセットサイズが妥当である場合（Ｓ２１のＹｅｓ）、オフセットサイズごとにデータを受信してＤＲＡＭ１０５に格納する（Ｓ２２）。また、オフセットサイズが妥当でない場合（Ｓ２１のＮｏ）は、アップデート処理を終了する。
【００６０】
制御部１０３は、ヘッダ２０１のファームウエアファイルサイズ２０１ｂと受信したファームウエアモジュール２００Ａのデータサイズを比較することでファームウエアモジュール２００Ａのすべてのデータが受信されたか否かを確認し、ファームウエアモジュール２００Ａのすべてのデータを受信していない場合（Ｓ２３のＮｏ）、ステップＳ２１〜Ｓ２２を繰り返す。
【００６１】
ヘッダ２０１のファームウエアファイルサイズ２０１ｂと受信したファームウエアモジュール２００Ａのデータサイズが一致して、ファームウエアモジュール２００Ａのすべてのデータを受信したことを確認すると（Ｓ２３）、制御部１０３は、ファームウエア本体２０２を復号化し（Ｓ２４）、ファームウエアファイルサイズ２０１ｂおよび２０２ｂの一致、また、署名２０３およびチェックサム２０１ｅの妥当性の確認を実行する（Ｓ２５）。
【００６２】
次に、ヘッダ２０１のファームウエアリビジョン２０１ｃとファームウエア本体２０２のファームウエアリビジョン２０２ｃとを比較して、一致する場合（Ｓ２６のＹｅｓ）、ＮＡＮＤメモリ１０４Ａ〜１０４Ｈのファームウエア２００をファームウエア本文２０２ａを用いて新たなファームウエアに置き換えて書き込む（Ｓ２７）。
【００６３】
（実施の形態の効果）
上記した実施の形態によると、平文のヘッダ２０１および暗号化されたファームウエア本体２０２のファームウエアリビジョン２０１ｃおよび２０２ｃが一致した場合にのみＮＡＮＤメモリのファームウエア２００を書き換えるため、プログラムの不正利用を防止するとともに、平文のヘッダ２０１を利用してファームウエア本体２０２を復号化しないホスト装置８においてファームウエアモジュール２００Ａのバージョン情報等を確認することができる。また、ファームウエア本体２０２は暗号化されているためダウンロード対象のプログラムの解読を防止できる。
【００６４】
また、制御部１０３は、ヘッダ２０１のファームウエアファイルサイズ２０１ｂと受信したファームウエアモジュール２００Ａのデータサイズとの一致を確認することで、ホスト装置８からファームウエアモジュール２００Ａの受信完了を確認するため、ファームウエアモジュール２００Ａを分割データごとに復号化してデータサイズの一致を確認する必要がなく、ＳＳＤ１０の受信動作時の負担が減少する。
【００６５】
なお、本発明は、不揮発性半導体メモリドライブに限らず、ファームウエアによって動作する装置であれば適用することができる。また、ファームウエアに限らず、一般的なプログラムに適用しても良い。
【００６６】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【００６７】
この発明によれば、ダウンロード対象のプログラムの解読を防止するとともに、プログラムの不正利用を防止することができ、また、記憶メディアドライブ側でプログラムの受信完了を判断できる。
【図１】
2010517120.tif 000003
【図２】
2010517120.tif 000004
【図３】
2010517120.tif 000005
【図４Ａ】
2010517120.tif 000006
【図４Ｂ】
2010517120.tif 000007
【図４Ｃ】
2010517120.tif 000008
【図５】
2010517120.tif 000009
【図６】
2010517120.tif 000010
【図７】
2010517120.tif 000011
【国際調査報告】
2010517120.tif 000012
2010517120.tif 000013