(57)【要約】【課題】      ハードウエアＩＤコードを形成し、ファームウエアＩＤコードを形成し、ファームウエアＩＤコードとハードウエアＩＤコードをチェックし、ファームウエアをアップグレードする電子機器のファームウエアアップグレード制御方法を提供すること。【解決手段】  コーディング方法は、装置のソフトウエアバージョンおよびハードウエアバージョンの管理に利用されている。コードに従うと、ファームウエアの全体性と正確性が、ファームウエアを記憶する前にチェック可能であり、したがってファームウエアファイルに対する、非意図的なミスまたは意図的な変更を回避することが可能である。ハードウエアやハードウエアのシステムリソース容量に対するファームウエアの適合性は、アップグレード中の失敗を回避するために確認する必要がある。【選択図】    図１
2005157785.tif 000002
【特許請求の範囲】
【請求項１】
ハードウエアＩＤコードを形成し、
ファームウエアＩＤコードを形成し、
ファームウエアＩＤコードとハードウエアＩＤコードをチェックし、ファームウエアをアップグレードする、
電子機器のファームウエアアップグレード制御方法。
【請求項２】
請求項１に記載の電子機器のファームウエアアップグレード制御方法おいて、ハードウエアＩＤコードの形成方法は、
ハードウエアバージョンを確認し、
パスワードを確認し、
ＳＡＬＴを確認し、
アルゴリズムを確認し、
ハードウエアバージョン、パスワード、ＳＡＬＴでアルゴリズムを操作してハードウエアＩＤコードを取得し、
ＳＡＬＴとハードウエアＩＤコードをハードウエアに書き込むことを特徴とする、
ファームウエアアップグレード制御方法。
【請求項３】
請求項１に記載の電子機器のファームウエアアップグレード制御方法おいて、ファームウエアＩＤコードの形成方法は、
ソフトウエアバージョンとハードウエアバージョンを取り、
ハードウエアＩＤコードとＳＡＬＴを演算して取得し、
ファームウエアのチェックサムを演算して取得し、
ランダム化した数字で空スペースをファイリングすることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項４】
請求項１に記載の電子機器のファームウエアアップグレード制御方法おいて、ファームウエアＩＤコードとハードウエアＩＤコードをチェックし、ファームウエアをアップグレードする方法は、
システムリソースが新たなファームウエアを収納可能であることを確実にし、
新たなファームウエアをロードし、
新たなファームウエアのチェックサムを確認し、
ハードウエアＩＤコードを演算するために、ハードウエアに保存された、新たなファームウエアのＩＤコードとオリジナルＳＡＬＴを取り、
演算されたハードウエアＩＤコードが、製品ハードウエアに保存されたものと同じであるかをチェックし、
前記のチェック結果にしたがって、新たなファームウエアをフラッシュメモリに記録して、自動再起動することを特徴とする、
ファームウエアのアップグレード制御方法。
【請求項５】
請求項２に記載の電子機器のファームウエアアップグレード制御方法において、前記ハードウエアバージョンが、
【表１】
2005157785.tif 000013
のフォーマットであり、
ベンダー／製品ＩＤがベンダー名と製品名に関するものであり、
Ｖがベンダーコードのバイトであり、
ＣがＣＰＵコードのバイトであり、
Ｐが製品コードのバイトであり、
Ｈがハードウエアコードのバイトであり、
Ｒが拡張用の予備バイトであることを特徴とする、ファームウエアアップグレード制御方法。
【請求項６】
請求項３に記載の電子機器のファームウエアアップグレード制御方法において、前記ハードウエアバージョンが、
【表２】
2005157785.tif 000014
のファーマットであり、
ベンダー／プロダクトＩＤがベンダー名と製品名に関連し、
Ｖがベンダーコードのバイトであり、
ＣがＣＰＵコードのバイトであり、
Ｐが製品コードのバイトであり、
Ｈがハードウエアコードのバイトであり、
Ｒが拡張用の予備バイトであることを特徴とする、ファームウエアアップグレード制御方法。
【請求項７】
請求項３に記載の電子機器のファームウエアアップグレード制御方法において、前記ソフトウエアバージョンが、
【表３】
2005157785.tif 000015
のフォーマットであり、
Ａがメインバージョンコードのバイトであり、
第一Ｂがメジャーバグの修正用コードであり、
第二Ｂおよび第三Ｂが、二次バグ修正コードであり、
ＣＣが特定バージョンのコードであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項８】
請求項１に記載の電子機器のファームウエアアップグレード制御方法において、ファームウエアＩＤコードが
【表４】
2005157785.tif 000016
のフォーマットであり、
ベンダー／プロダクトＩＤがベンダー名と製品名に関連し、
Ｖがベンダーコードのバイトであり、
ＣがＣＰＵのバイトであり、
Ｐが製品コードのバイトであり、
Ｈがハードウエアコードのバイトであり、
Ｒが拡張用の予備バイトであり、
ＣＳがチェックサムのバイトであり、
ＳＡＬＴがランダム化した番号のバイトであり、
Ｈ（）がハードウエアＩＤコードのバイトであり、
ソフトウエアダイナミックバージョンが６バイトソフトウエアバージョンコードであり、
ＲＡＮＤ１とＲＡＮＤ２が空スペースファイル用のランダム化された番号であることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項９】
請求項２に記載の電子機器のファームウエアアップグレード制御方法において、
ＳＡＬＴがランダムに生成され、そのつど異なることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１０】
請求項３に記載の電子機器のファームウエアアップグレード制御方法において、
ＳＡＬＴがランダムに生成され、そのつど異なることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１１】
請求項４に記載の電子機器のファームウエアアップグレード制御方法において、
ＳＡＬＴがランダムに生成され、そのつど異なることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１２】
請求項２に記載の電子機器のファームウエアアップグレード制御方法において、
アルゴリズムが、論理エクスクルーシブＯＲオペレーションであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１３】
請求項３に記載の電子機器のファームウエアアップグレード制御方法において、
演算が論理エクスクルーシブＯＲオペレーションのアルゴリズムであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１４】
請求項４に記載の電子機器のファームウエアアップグレード制御方法において、
演算が論理エクスクルーシブＯＲオペレーションのアルゴリズムであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１５】
請求項２に記載の電子機器のファームウエアアップグレード制御方法において、
アルゴリズムがＭＤ５メッセージダイジェストアルゴリズムであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１６】
請求項３に記載の電子機器のファームウエアアップグレード制御方法において、
アルゴリズムがＭＤ５メッセージダイジェストアルゴリズムであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１７】
請求項４に記載の電子機器のファームウエアアップグレード制御方法において、
アルゴリズムがＭＤ５メッセージダイジェストアルゴリズムであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１８】
請求項２に記載の電子機器のファームウエアアップグレード制御方法において、
ＳＡＬＴとハードウエアＩＤコードが両方前記電子機器に書き込まれ、前記ハードウエアの無揮発性メモリユニットに保存されることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項１９】
請求項１８に記載の電子機器のファームウエアアップグレード制御方法において、
前記無揮発性メモリユニットが複素プログラム可能論理装置であることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項２０】
請求項１８に記載の電子機器のファームウエアアップグレード制御方法において、
無揮発性メモリユニットが電気的消去可能ＰＲＯＭであることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項２１】
請求項４に記載の電子機器のファームウエアアップグレード制御方法において、
新たなファームウエアを保存可能なシステムリソースを確実にするステップの間、警告メッセージが生成されて、システムリソースが不足している場合、ユーザに再起動をするように知らせることを特徴とする、
ファームウエアアップグレード制御方法。
【請求項２２】
請求項４に記載の電子機器のファームウエアアップグレード制御方法において、
確認とチェックのステップ中、警告メッセージが生成されて、チェック結果が対応していないと、ユーザに再起動をするように知らせることを特徴とする、
ファームウエアアップグレード制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には電子機器のソフトウエアのアップグレードを制御する方法に関するものであり、具体的には、コンピュータのような電子機器のファームウエアのアップグレードが、自己防衛をしつつ、インテリジェントに制御可能となる方法に関するものである。
【背景技術】
【０００２】
ファームウエアは、コンピュータのような電子機器にとっては重要な構成要素であり、ユーザの使用下では変更が不可能なリードオンリーメモリ中にプログラムやデータを保存するものである。
【０００３】
特に情報処理機器といった電子機器が製造され販売された後、通常機能不足やバグが見つかると、アップグレードまたは修正が必要となる。そして、オペレーションソフトウエアとデータを保存するファームウエアが、アップグレードされる必要がある。そこで、対象の装置の機能を改善し、寿命を伸ばし、ユーザの投資を節約する目的で、製造業者が、ファームウエアのアップグレード手段を供給するといったことが一般的になっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ファームウエアのアップグレードには、２つの競合する要求が伴う。まず、第一にファームウエアは、強固に保護される必要があり、容易に変更したり、システム動作の失敗等が簡単に起こらないようにすべきであるという要求がある。その反面、第二にファームウエアは、対象装置のパフォーマンスまたは機能を改良したり、修正したりするために、簡単にアップグレードが可能であるべきであるという要求もある。
【０００５】
したがって、ファームウエアをアップグレードする場合、オペレータは、充分に注意する必要がある。さもなければ、操作（オペレーション）のミスや異なったファームウエアのバージョンをインストールして、システムの全機能が誤作動するといったような深刻な状況を装置事態にもたらすこととなる。しかしながら、従来のファームウエアアップグレードプロセスは、対象装置が誤ったファームウエアアップグレードによって簡単にダメージを受けてしまう危険性を制御したり、またこれを回避したりするといったメカニズムを設けたものがなかった。
【課題を解決するための手段】
【０００６】
本発明の目的は、電子機器のファームウエアのアップグレード制御手段を提供することにある。対象装置のソフトウエアとハードウエアのバージョンの管理には、コーディング方法が適用される。ファームウエアを記憶する前に、コードにしたがって、ファームウエアの全体との正当性がチェックされることによって、ファームウエアファイルに対する不意のミスや意図的な変更を回避することが可能となる。アップデート中の失敗を回避するために、ハードウエアとハードウエアのシステムリソース容量に適合するファームウエアファイルが確認される。
【０００７】
本発明に係わる電子機器のファームウエアのアップグレード制御方法は、ハードウエアＩＤコードを形成し、ファームウエアＩＤとハードウエアＩＤコードをチェックし、ファームウエアをアップデートする工程を含むものである。
【発明を実施するための最良の形態】
【０００８】
本発明は、対象装置のソフトウエアとハードウエアの管理のためにコーディング方法を適用する。ハードウエアのバージョンは、対象装置の構成に関連するものである。ソフトウエアのバージョンは、対象装置のオペレーションソフトウエア（ＯＳ）に関連するものである。ハードウエアとソフトウエアの好適な実施例を以下に示す。
【０００９】
（１）ハードウエアのバージョン
ハードウエアのバージョンは、ファームウエアのハードウエアに対する適合性を識別するものである。ハードウエアのバージョンのデータは、以下の表１の内容を含むものである。
【００１０】
【表１】
2005157785.tif 000003
【００１１】
この表１において、ベンダー／プロダクトＩＤは、ベンダーの名称と製品名に関するものであり、Ｖはベンダーコードのバイト、ＣＰＵはファームウエアのバージョンに関連する重要な要素であるため、ＣはＣＰＵのバイト、Ｐは製品コードのバイト、Ｈはハードウエア（回路基板）コード、そしてＲは拡張用の予備バイトを示す。例えば、ハードウエアのバージョンは、以下の表２のようになる。
【００１２】
【表２】
2005157785.tif 000004
【００１３】
ここでは、製品シリアルが、異なった（ＣＰＵや回路基板といった）ハードウエア部品によって出来る場合、その識別はＣ（ＣＰＵ）またはＨ(回路基板)コードを通じて行うことが可能である。また、このような装置が異なったベンダーによって供給される場合、Ｖコードはこの違いを記録することによって、ベンダーＡが作ったファームウエアをベンダーＢのハードウエアに利用されるのを回避するようコントロールすることが可能であり、関連する権利が守られることとなる。
【００１４】
（２）ソフトウエアのバージョン
ソフトウエアのバージョンは、同じハードウエアに適用するソフトウエア（ファームウエアファイル）の異なったバージョンを識別するのに利用される。ソフトウエアのバージョンは、以下の表３のような情報を含むものである。
【００１５】
【表３】
2005157785.tif 000005
【００１６】
この表において、Ａは、メインバージョン（主要機能改善）コードのバイト、第一のＢはメインバグ修正コードのバイト、第二と第三のＢは、二次バグ修正のコードのバイト、ＣＣは特定バージョンのコードのバイトであり、例えば異なったＯＥＭカスタマーまたは特注品等に関するものである。
【００１７】
ソフトウエアバージョンの例は、以下の表４のようになる。
【００１８】
【表４】
2005157785.tif 000006
【００１９】
図１に示されるように、本発明に係わる電子装置のファームウエアアップグレード制御方法は、ハードウエアＩＤコード形成ステップ（ステップ１０１）と、ファームウエアＩＤコード形成ステップ（ステップ１０２）と、ファームウエアＩＤコードおよびハードウエアＩＤコードチェックおよびファームウエアアップグレードステップ（ステップ１０３）とを含むものである。
【００２０】
図２は、ハードウエアＩＤコードを形成するに場合の詳細な工程が示されている。これらのステップは、ハードウエアバージョン確認ステップ（ステップ２０１）と、パスワード確認ステップ（ステップ２０２）と、ＳＡＬＴを確認するステップ（ステップ２０３）と、アルゴリズムを確認するステップ（ステップ２０４）と、コードでアルゴリズムを操作してハードウエアＩＤコードを得るステップ（ステップ２０５）と、最後にＳＡＬＴとハードウエアＩＤコードをハードウエアに書き込むステップ（ステップ２０５）とを含むものである。パスワードは、秘密厳守で開発者によって保護され、公開されることはない。ＳＡＬＴは、ランダムに各演算で以って生成されたコードで、アップデート時（ＴＨＥ  ＯＴＨＥＲ  ＤＡＹＳ）にファームウエアの適用性をチェックするために、ハードウエアＩＤコードと共に対象装置のハードウエアに記憶されるものである。
【００２１】
アルゴリズムは、ハードウエアバージョンと、パスワードと、ＳＡＬＴとのバイトのＸＯＲ（ＬＯＧＩＣＡＬ  ＥＸＣＬＵＳＩＶＥ  ＯＲ）を演算し、ハードウエアＩＤコードを得るものである。アルゴリズムと演算の例は以下の表５に示されている。
【００２２】
【表５】
2005157785.tif 000007
【００２３】
ＳＡＬＴとハードウエアＩＤコードは共に、対象装置のＣＰＬＤ（ＣＯＭＰＬＥＸ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＬＯＧＩＣ  ＤＥＶＩＣＥ）またはＥＥＰＲＯＭ（電気的消去可能ＰＲＯＭ）といった無揮発性（ＮＯＮ−ＥＶＡＰＯＲＡＴＩＶＥ）メモリユニットに書き込まれる。
【００２４】
図３は、ファームウエアＩＤコードの形成プロセスを詳細に説明したものである。ここでのステップは、ソフトウエアバージョンとハードウエアバージョンを得るステップ（ステップ３０１）と、ハードウエアＩＤコードとＳＡＬＴとを演算して取得するステップ（ステップ３０２）と、ハードウエアファイルのチェックサムを演算して取得するステップ（ステップ３０３）と、ランダム化した番号で空スペースをファイリングする（ＦＩＬＬＩＮＧ）ステップ（ステップ３０４）である。
【００２５】
ハードウエアＩＤコードが、ハードウエアのバージョンと、パスワードと、ランダム化されたＳＡＬＴとから演算されるので、ランダム化されたＳＡＬＴが、異なったハードウエアＩＤを生成することとなる。ＳＡＬＴとハードウエアＩＤコードとは、またファームウエアＩＤに含まれ、ハードウエアＩＤコードのクラッキングがし難くなる。
【００２６】
チェックサムの演算には、違ったオペレーションの利用が可能である。ここでの実施例は、全体のファームウエアのコンテンツとＩＤコードをＸＯＲ演算し、ワンバイトチェックサムを生成する。
【００２７】
ランダム化した数字を空スペースにファイリングすることで、ハードウエアＩＤコードのクラッキングがし難くなる。各ＳＡＬＴがランダムに生成されるので、ハードウエアＩＤコードとランダム化された番号とが識別され難くなる。ランダム化した番号にファイリングすることで、クラッカーがファームウエアファイルを解き、ハードウエアバージョンアルゴリズムを探し出すことを難しくする。
【００２８】
ファームウエアＩＤコードの全コンテンツは、以下の表６のようになる。
【００２９】
【表６】
2005157785.tif 000008
【００３０】
この表において、ベンダー／プロダクトＩＤは、ベンダーの名称と製品名に関連し、Ｖがベンダーコードのバイト、ＣＰＵはファームウエアのバージョンに関連する重要な要素であるため、ＣはＣＰＵのバイト、Ｐは製品コードのバイト、Ｈはハードウエア（回路基板）コード、Ｒは拡張用の予備バイト、ＣＳはチェックサムのバイト、ＳＡＬＴはランダム化した数字のバイト、Ｈ（）はハードウエアＩＤコードのバイトを示し、ソフトウエアダイナミックバージョンは、６バイトソフトウエアバージョンコードで、ＲＡＮＤ１とＲＡＮＤ２は空スペースをファイリングするためのランダム化した数字である。
【００３１】
以下の表７−１から７−４はファームウエアＩＤコードを形成するプロセスの一例である。
【００３２】
【表７−１】
2005157785.tif 000009
【００３３】
【表７−２】
2005157785.tif 000010
【００３４】
【表７−３】
2005157785.tif 000011
【００３５】
【表７−４】
2005157785.tif 000012
【００３６】
図４は、本発明における、ファームウエアＩＤコードとハードウエアＩＤコードのチェックとファームウエアのアップグレードの詳細なプロセスをフローチャートにしたものである。ここでのステップにおいては、システムリソースが、新たなファームウエアを保存し（ステップ４０１）、新たなファームウエアをロードし（ステップ４０２）と、新たなファームウエアのチェックサムを確認し（ステップ４０３）と、新たなファームウエアのＩＤコードとハードウエアＩＤコードを演算するためにハードウエアに保存されたオリジナルのＳＡＬＴとを取得して（ステップ４０４）と、演算されたハードウエアＩＤコードがプロダクトハードウエアに保存されたものと同じかどうかをチェックし（ステップ４０５）、新たなファームウエアをチェック結果に基づいてフラッシュメモリに保存して自動再起動をする（ステップ４０６）。このプロセスにおいて、システムリソースが不十分であった場合またはチェック結果が適合していない場合、警告メッセージを発し、ユーザに再起動するよう報告する。
【００３７】
その結果として、本発明に係わる電子機器のファームウエアアップグレード制御方法には、以下のような利点がある。
（１）ロードされたファームウエアファイルは、意図的なまたは不意のファイル変更を回避するチェックサムを通じて確認することが可能である。
（２）プロダクトハードウエアに保存されたもので演算したハードウエアＩＤコードをチェックすることによって、意図的または不意に誤ったファイルのアップグレードを回避することが可能である。
（３）ファームウエアをアップグレードする前に、まずシステムリソースの容量がチェックされ、アップグレード中の失敗を回避することが可能である。
（４）ファームウエアバージョン、適合製品、ハードウエアの仕様が、ファームウエアから直接認識可能で、ファームウエアのアップグレードの正当性を確かめることが可能である。
（５）ベンダーのファームウエアをベンダーＢの製品に記録するといった、ファームウエアの違法アップグレードをしようとするクラッカーに対して、複数のファームウエアファイル保護メカニズムを提供する。第一に、チェックサムが利用され、ファイルの変更は何れもチェックサムエラを起こすようになっている。第二に、ハードウエアＩＤコードを演算するにはパスワードが必要で、そのパスワードは公開されない。第三に、ハードウエアＩＤコードを演算するためにランダム化したＳＡＬＴが生成されるので、ハードウエアＩＤコードと幾つかの他のランダム化された番号が識別し難くなる。ランダム化された番号でのファイリングは、クラッカーにとってファームウエアファイルを解くのを困難にし、ハードウエアバージョンアルゴリズムを探し出すのを困難なものとする。
（６）ハードウエアＩＤコードとチェックサムを演算するアルゴリズムは、必要であれば動的に変更可能である。効率性のために、ＸＯＲ演算が利用される。また、より高い安全性のある演算、例えばＭＤ５（メッセージダイジェストアルゴリズム）または他のアルゴリズムが、利用可能である。
【００３８】
本発明は上記のように説明したものであるので、同様の技術を様々な方法で実施可能である。そのような変形は、本発明の精神と発明の範囲から離れると考えられるべきではないし、そのような全ての変形が、以下の請求の範囲内にあるということは当業者にとって自明なことである。
【００３９】
本発明は、以下の詳細な説明からより充分に理解が可能となるが、ここでの記述はあくまで説明のみを目的とし、したがって本発明を限定するものではない。
【図面の簡単な説明】
【００４０】
【図１】本発明に係わる電子装置のファームウエアのアップグレード制御方法のフローチャート。
【図２】本発明に係わるハードウエアＩＤコードを形成する工程を説明するフローチャート。
【図３】本発明に係わるファームウエアＩＤコードを形成する工程を説明するフローチャート。
【図４】本発明に係わるファームウエアＩＤコードとハードウエアＩＤコードとをチェックし、ファームウエアをアップグレードする工程を示すフローチャート。
【図１】
2005157785.tif 000017
【図２】
2005157785.tif 000018
【図３】
2005157785.tif 000019
【図４】
2005157785.tif 000020
【外国語明細書】
2005157785000001.pdf