説明

バイオスの更新を行う電子機器及び方法

【課題】 本発明はバイオスを更新する方法を提供することを目的とする。
【解決手段】 バイオスは本発明の電子機器のメモリに格納される。内蔵コントローラEC30はメモリ34と処理部32とに接続される。処理部32はメモリ34に接続されてバイオスを実行する。そして、次の各ステップを備える。最初に、書き込み指令をECに送信する。次に、書き込み指令を受信したECが、システム管理割り込み指令(SMI)を処理手段に送信する。次に、SMIを受信した処理手段が、検証コードをECに送信する。次に、ECが検証コードを受信し、その検証コードがセキュリティコードと適合しているか否かを判定する。最後に、もし検証コードがセキュリティコードと適合する場合には、ECはバイオスを更新できるように第1メモリ手段を書き込み可能にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バイオスの更新を行う方法とその電子装置に関し、より詳しくはバイオスをランダムに書き込むことがないようにした更新方法及び電子装置に係る。
【背景技術】
【0002】
バイオス(BIOS:basic input/outpuct system)には入出力を行う周辺機器を制御するのに必要な実行コードが含まれている。中央演算処理装置(CPU)はバイオスを用いて初期化、診断、オペレーティングシステムや入出力周辺機器のカーネルの読み込みなどの制御を実行している。
【0003】
しかしながら、バイオスには2つの矛盾した要求がなされている。すなわち、バイオスは完全に保護されている必要がある一方、修正することも可能でなければならない。バイオスは破壊されたり、不適切に修正されることから完全に保護されていなければならない。もしバイオスが異常になると、コンピュータは、ハードウェアの初期化などの制御の実行に失敗し、その結果起動することができなくなる。同時に、バイオスは新しいハードウェアをサポートする新機能を追加したり、プログラム中のバグを除去するために修正可能であることも要する。これによって、異常な動作や新しいハードウェアの認識に失敗することを防ぐことができる。
【0004】
初期においては、バイオスは消去及び記録が可能な読み込み専用メモリ(EPROM)に記憶させていた。EPROMに記録した内容を修正するために、EPROMの場合には、メモリスロットから取り外し、長時間紫外線を照射する必要があった。そのため、EPROMは内容を簡単には修正されない利点があり、EPROMに記録されたバイオスは悪質なプログラムによる破壊を避けることができた。しかし同時に、バイオスは適時に更新することができなかった。近年では、コンピュータのシステム構成の更新スピードが速くなったため、バイオスは新しいハードウェア構成に適合できるようにいつでも更新できる必要がある。そのため現在のバイオスは、円滑な更新ができるフラッシュメモリに格納されている。反面、フラッシュメモリへの書き込み動作が正常にコントロールされず、一度ライトモードになってしまうと、バイオスの内容は悪意的に破壊されたり、簡単に改ざんされる可能性があり、コンピュータのシステムの不安定化や起動の失敗の原因となりかねない。
【0005】
現在では、バイオスを保護する方法は主としてハードウェア的な保護とソフトウェア的な保護である。ハードウェア的な保護においては、フラッシュメモリへの入力信号をコントロールするのにジャンパーピンを用いている。ソフトウェア的な保護においては、書き込み指令の一群は、特別な工程によって実行されるようになっている。しかし、時間が経つと、リバースエンジニアリングの手法によって特別な書き込み指令のセットが計算され、保護することができなくなってしまう。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006-196018号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、バイオスの更新方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は上記課題を解決するため、悪質なプログラムや承認されていないプログラムによってバイオスが修正されるのを防ぐために、セキュリティコードを比較する方法を提供する。
本発明の1つの実施形態によれば、バイオスは電子機器の第1メモリ手段に格納される。電子機器の内蔵コントローラ(EC:embedded controller)は第1メモリ手段と処理手段とに電気的に接続される。処理手段は電気的に第1メモリ手段に接続され、バイオスを実行処理する。本発明におけるバイオスの更新方法は、次の各ステップを有する。
【0009】
最初に、書き込み指令をECに送信する。
【0010】
次に、書き込み指令を受信したECが、システム管理割り込み指令(SMI:system
management interrupt)を処理手段に送信する。
【0011】
次に、SMIを受信した処理手段が、検証コードをECに送信する。
【0012】
次に、ECが検証コードを受信し、その検証コードがセキュリティコードと適合しているか否かを判定する。
【0013】
最後に、もし検証コードがセキュリティコードと適合する場合には、ECはバイオスを更新できるように第1メモリ手段を書き込み可能にする。
【0014】
また1つの実施形態によれば、書き込み指令をECに送信するステップの前において、電源起動・自己テスト(POST:power-on self-test)中のバイオスの実行の際に処理手段がセキュリティコードを生成することができる。
【0015】
また1つの実施形態によればSMIを処理手段が受信するステップにおいて、処理手段が割り込みハンドラを実行する時には、処理手段がセキュリティコードに適合する検証コードを送信し、SMIの処理を停止することができる。処理手段が割り込みハンドラを実行しない時には、処理手段がセキュリティコードと異なる検証コードを送信することができる。
【0016】
本発明のもう1つの目的は、電子機器を提供することである。本機器において、悪質なプログラムや承認されていないプログラムによってバイオスが修正されるのを防ぐために、セキュリティコードが比較される。
【0017】
本発明の1つの実施形態によれば、本電子機器には、ECと、第1メモリ手段と、処理手段とを備える。ECが書き込み指令を受信した後、ECはシステム管理割り込み指令を送信する。第1メモリ手段はバイオスを記録し、ECに電気的に接続される。処理手段は、ECと第1メモリ手段に電気的に接続され、バイオスを実行する。処理手段は、ECからシステム管理割り込み指令を受信した後、検証コードをECに送信する。
【0018】
ECは検証コードを受信し、その検証コードがセキュリティコードと適合するか否かを決定する。もし検証コードがセキュリティコードと適合した場合は、ECはバイオスの更新のために第1メモリ手段を書き込み可能にする。
【0019】
さらに、セキュリティコードは電子機器のメモリに記録され、そのメモリは、システム管理ランダムアクセスメモリ(SMRAM:system management random access memory)を用いることができる。ECはライトアクセス手段を有し、ライトアクセス手段を介して第1メモリ手段にデータが書き込まれる構成でもよい。第1メモリ手段は不揮発性メモリでもよい。
【0020】
以上をまとめると、本発明のバイオス更新方法において、システム管理割り込み指令の送信時間に従って、悪質なプログラムや承認されていないプログラムから送られた書き込み指令であるか否かを判定し、その結果、セキュリティコードと同一の、又は異なる、検証コードを生成する。こうして、内蔵コントローラは検証コードとセキュリティコードとの比較結果に従って、バイオスを更新するために外部プログラムがデータの書き込むのを認めるか否かを決定することができる。
【発明の効果】
【0021】
本発明は、以上の構成を備えることにより、次の効果を奏する。
すなわち、本発明において、内蔵コントローラからのシステム管理割り込み指令の送信時間と、検証コード及びセキュリティコードとの比較結果に基づいて、その書き込み指令が通常のプログラム(正規のバイオス更新プログラム)によって送信されたものか、それとも悪質なプログラムによるものかを決定し、その結果、バイオスが不正に修正されたり破壊されたりするのを防ぐことができる。
【図面の簡単な説明】
【0022】
【図1】本発明の1実施形態に係る電子機器のブロック図である。
【図2】本発明の1実施形態に係るバイオス更新方法のフローチャートである。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態を、図面に示す実施例を基に説明する。なお、本発明は次に記載される詳細な説明や、請求の範囲、図面から理解される範囲において適宜変更することができる。
図1に基づいて説明する。図1は本発明の1実施例に係る電子機器3のブロック図である。図1において電子機器3は内蔵コントローラ(EC)30、処理手段である処理部32、第1メモリ手段である第1メモリ34、第2メモリ36を備える。第1メモリ34はフラッシュメモリなどの不揮発性メモリを用いることができる。第2メモリ36はシステム管理ランダムアクセスメモリ(SMRAM)を用いることができる。
【0024】
処理部32はEC30、第1メモリ34、第2メモリ36に電気的に接続される。第1メモリ34と第2メモリ36は共にEC30に電気的に接続される。
【0025】
処理部32は、第1メモリ34に記録されたバイオス340を実行する。また処理部32は、セキュリティコード360を生成し、第2メモリ36に記録する。書き込み指令を受信した後、EC30はシステム管理割り込み指令(SMI)を処理部32に送信する。SMIを受信した後、処理部32は検証コードをEC30に送信する。
【0026】
信号の送受信や電子機器の異なる構成との間での応答方法により、本発明のバイオス更新方法をどのように実現するかについて図示しながら、具体的な実施例を以下で詳細に説明する。
【0027】
図2を示す。図2は本発明の1実施例に係るバイオスの更新方法のフローチャートである。図2の実施例において、バイオスの更新には以下のステップを有する。
【0028】
まず、ステップ(S30)が実行される。処理部32は第1メモリ34に記録されたバイオス340を実行し、電源起動・自己テスト(POST)段階でセキュリティコード360を生成する。セキュリティコード360は第2メモリ36に記録される。
【0029】
POST段階において、バイオス340は様々な種類の周辺機器、例えばハードディスクや光学ドライバ、メモリなどの接続初期か処理を実行する。悪意のあるプログラムがあっても、POST段階ではまだシステム資源をコントロールすることはできない。そのため、POST段階でバイオス340が生成したセキュリティコード360は信頼することができる。さらに、セキュリティコード360は電子機器3の第2メモリ36、例えばSMRAMに記録される。SMRAMは動的ランダムアクセスメモリ(DRAM)のメモリブロックであり、特定のプログラムによってのみ読み出すことができる。その結果、セキュリティコード360は悪質なプログラムが読み出すことができない。事実、セキュリティコード360はランダムな数字の一群であり、それらの数字は0以外である。より詳しくはランダムな数字の一群は、4バイトであり、いずれのバイトも0ではない。
【0030】
次にステップ(S31)が実行される。書き込み指令が内蔵コントローラ30に送信される。
【0031】
一般的に言えば、書き込み指令は、実行コードや命令群の連続で構成することができる。書き込み指令はEC30にライトアクセスを開かせるために用いられる。こうして、第1メモリ34に引き続いて書き込まれるデータが、ライトアクセスを通じてバイオス340を更新することができる。しかしながら、通常のECはその書き込み指令が通常のプログラム(正規のバイオス更新プログラムなど)によって生成されたものか、悪質なプログラム(コンピュータウイルスなど)によって生成されたものかを判定することはできない。そのため、もし悪質なプログラムが正しい書き込み指令を送ることができると、エラーやランダムなデータを不適正に含んでバイオスを更新することができてしまう。その結果、バイオス340は処理部32に適切に実行されることができず、あるいはハードウェアがダメージ(例えば、バイオスが不適正なデータを持って大きな電圧を周辺機器に設定し、周辺機器が破損する可能性がある)を受ける。
【0032】
次に、ステップ(S32)が実行される。EC30は書き込み指令を受信した後、SMIを処理部32に送信する。
【0033】
もし処理部32が割り込みハンドラを実行する場合には、ステップ(S33)が実行される。処理部32はセキュリティコード360に適合する検証コードを送信し、SMIの処理を停止する。一方、処理部32が割り込みハンドラを実行しない場合には、ステップ(S34)が実行される。処理部はセキュリティコード360と異なる検証コードを送信することになる。
【0034】
従来の技術において、ECが書き込み指令を受信した後、ECはSMIを処理部32に送ることはない。ECは直接ライトアクセスを開いている。しかしながら、本発明の実施例によれば、EC30がSMIを送る目的は、EC30がその時に受信した書き込み指令が通常のプログラムによるのか、悪質なプログラムによるのかを、SMIを受信した時間に基づいて、処理部32に間接的に判定させることである。
【0035】
より詳しくは、処理部32がSMIを受信すると処理部32は受信したSMIに対応した処理として割り込みハンドラを実行する。割り込みハンドラは、再実行されることはない。すなわち、処理部32が割り込みハンドラを実行した場合には、実行中の割り込みハンドラが中断されるまでは新しいSMIを実行することはできない。従って、本発明の実施例におけるバイオス更新方法においては、処理部32はEC30によって送られたSMIを処理することはない。しかし、悪質なプログラムがバイオスを更新しようとすると、処理部32は割り込みハンドラを実行することができないため、SMIはその時点で処理される。そのため、処理部32はその時点でSMIが実行されるか否かを判定して、その結果に従って、異なる検証コードを送信することができるのである。
【0036】
以上により、バイオスの更新の指令に対応するSMIを処理部32が受信する前に、正規のバイオス更新プログラムは処理部32に割り込みハンドラを実行させることができる。処理部32がバイオスの更新指令に合わせてSMIを受信すると、処理部32は第2メモリ36からセキュリティコード360を読み出す事ができ、セキュリティコード360と同一の検証コードをEC30に送信することができる。一方、処理部32が割り込みハンドラを実行していない場合には、バイオスの更新指令に対応したSMIを処理部32が受信すると、処理部32はSMIが悪質なプログラムによって送信されたか、非公式のバイオス更新プログラムによって送信されたことを判定できる。そして、処理部32は、セキュリティコード360と異なる検証コードをEC30に送信する。
【0037】
次に、ステップ(S36)が実行される。EC30は検証コードを受信し、その検証コードがセキュリティコードと適合するかを判定する。
【0038】
最後に、ステップ(S36)による判定が正(Yes)ならば、ステップ(S38)が実行される。EC30は第1メモリ34に、バイオスを更新するために書き込みを許可する。一方ステップ(S36)による判定が否(No)ならば、更新処理は終了される。
【0039】
ステップ(S32)において、書き込み指令に対応したSMIを送信した後、EC30は第2メモリ36に記録されたセキュリティコード360を読み出し、処理部32から送られる検証コードを待機する。検証コードの受信後、EC30は検証コードとセキュリティコードとの比較結果に従って、第1メモリ34(フラッシュメモリ等)に接続するライトアクセスを開くか否かを選択できる。検証コードがセキュリティコードと同一であればバイオスを更新するための第1メモリ34への書き込みを可能とするために、ライトアクセスが確実に開かれる。
【0040】
第1メモリとしてフラッシュメモリを一例に用いる。フラッシュメモリにおいて、あるピン電圧が閾値よりも高い時には、フラッシュメモリは書き込み可能となる。一方、それが閾値よりも低いときには、フラッシュメモリは書き込み不能である。EC30は第1メモリ34のピン電圧を制御することができる。EC30が第1メモリを書き込み可能にするためには、EC30が第1メモリのピン電圧を閾値以上にすればよい。それで第1メモリは書き込み可能となる。
【0041】
もし検証コードがセキュリティコードと異なる場合には、EC30はライトアクセスを開かない。あるいは、EC30が検証コードがセキュリティコードと異なることを見つけた場合、EC30は外部プログラムからのデータを引き続き受信することができる。しかしその場合、EC30はライトアクセスでそれを読み込む代わりに、破棄する。このようにして、データが書き込まれるという間違った決定をすることなく悪質なプログラムは遮断される。そして、第1メモリ34に記録されたバイオス340は実際に更新されることはない。悪質なプログラムは遮断され、バイオス340が保護される。
【0042】
上述したステップ(S30)によれば、セキュリティコード360は0ではない。もし電子機器3が従来の方法でバイオスのアップデータをしようとすると、セキュリティコード360が0になりうる。続く処理の中で、EC30は書き込み指令の後に引き続きSMIを送る。しかし、EC30が第2メモリ36からセキュリティコード360を読み出したときに、そのセキュリティコード360が0であった場合、SMIを受信した時間に関わらず、処理部32は0の検証コードを送信する。EC30が検証コードを受信し、検証コード及びセキュリティコードが共に0であることを発見すると、EC30は検証コードとセキュリティコードを比較することなく、直接ライトアクセスを開いてしまう。言い換えれば、従来のバイオスの更新方法は、セキュリティコードの値を決めることで、本発明の方法に統合することができる。さらに本発明の電子機器3はさらに多くの条件を備えることもできる。電子機器3は本発明によるバイオスを更新する方法のためだけに用いるのではなく、従来のバイオスの更新方法を用いることもできる。
【0043】
従来の技術に比較して、本発明のバイオスの更新方法は、システム管理割り込み指令の送信時間に基づいて、悪質なプログラムや承認されていないプログラムによる書き込み指令かどうかを判定し、セキュリティコードと同一の、あるいは異なる検証コードを生成する。そして、内蔵コントローラはその比較結果に基づいて、バイオスを更新するために外部プログラムにデータの書き込みを許可するかどうかを決定することができる。言い換えれば、本発明において、内蔵コントローラからのシステム管理割り込み指令の送信時間と、検証コードとセキュリティコードの比較結果に基づいて、通常のプログラム(公式のバイオス更新プログラム)か悪質なプログラムのいずれかからの書き込み指令かを判定することができ、その結果、バイオスが不正に修正されたり破壊されたりするのを防止できる。加えて、セキュリティコードの値を設定することで、本発明の電子機器は、従来からのバイオスの更新方法を用いたり、本発明による方法を用いたりすることを選択的に異なる条件で対応することができるようになる。
【0044】
以上、好ましいと考えられる実施形態に従って、本発明について説述したが、本開示によって発明の範囲が限定されるものではない。本発明技術の当業者において様々に改良したり、本発明の範囲から逸脱しない範囲で変更することが可能である。請求の範囲に記載の発明の範囲は上記実施例により限定されるものではない。
【符号の説明】
【0045】
3 電子機器
30 内蔵コントローラ
32 処理部
34 第1メモリ
340 バイオス
36 第2メモリ
360 セキュリティコード

【特許請求の範囲】
【請求項1】
バイオスを更新するコンピュータの処理方法であって、
第1メモリ手段に格納されたバイオスと、第1メモリ手段及び処理手段に電気的に接続された電子機器の内蔵コントローラと、第1メモリ手段に電気的に接続され、バイオスを実行する処理手段とからなり、
書き込み指令を該内蔵コントローラに送信するステップ、
該書き込み指令を受信した該内蔵コントローラが、システム管理割り込み指令を該処理手段に送信するステップ、
該システム管理割り込み指令を受信した該処理手段が、検証コードを該内蔵コントローラに送信するステップ、
該内蔵コントローラが該検証コードを受信し、該検証コードがセキュリティコードと適合しているか否かを判定するステップ、
該検証コードが該セキュリティコードと適合する場合には、該内蔵コントローラがバイオスを更新できるように第1メモリ手段を書き込み可能にするステップ
の各ステップを有することを特徴とするバイオスの更新方法。
【請求項2】
前記バイオスの更新方法において、
前記書き込み指令を前記内蔵コントローラに送信するステップの前において、前記処理手段が前記バイオスを実行し、前記セキュリティコードを生成すると共に、該処理手段及び該内蔵コントローラに電気的に接続された第2メモリ手段に該セキュリティコードを格納する
請求項1に記載のバイオスの更新方法。
【請求項3】
前記バイオスの更新方法において、
電源起動・自己テスト(POST:power-on self-test)中のバイオスの実行の際に処理手段がセキュリティコードを生成する
請求項2に記載のバイオスの更新方法。
【請求項4】
前記第2メモリ手段に、システム管理ランダムアクセスメモリ(SMRAM:system
management random access memory)を用いる
請求項2又は3に記載のバイオスの更新方法。
【請求項5】
前記バイオスの更新方法において、
前記システム管理割り込み指令を前記処理手段が受信するステップにおいて、該処理手段が割り込みハンドラを実行する時には、該処理手段が前記セキュリティコードに適合する前記検証コードを送信する構成である
請求項1ないし4のいずれかに記載のバイオスの更新方法。
【請求項6】
前記バイオスの更新方法において、
前記システム管理割り込み指令を前記処理手段が受信するステップにおいて、該処理手段が割り込みハンドラを実行する時には、該処理手段がシステム管理割り込み指令の処理を停止する
請求項5に記載のバイオスの更新方法。
【請求項7】
前記バイオスの更新方法において、
前記システム管理割り込み指令を前記処理手段が受信するステップにおいて、該処理手段が割り込みハンドラを実行しない時には、該処理手段が前記セキュリティコードと異なる前記検証コードを送信する構成である
請求項5又は6に記載のバイオスの更新方法。
【請求項8】
前記セキュリティコードが、乱数の一群であって、かつ0ではない乱数値である
請求項1ないし7のいずれかに記載のバイオスの更新方法。
【請求項9】
前記セキュリティコードが、4バイトでかつ、いずれのバイトも0ではない乱数値の一群である
請求項8に記載のバイオスの更新方法。
【請求項10】
前記バイオスの更新方法において、
前記内蔵コントローラがバイオスを更新できるように前記第1メモリ手段を書き込み可能にするステップにおいて、該内蔵コントローラがライトアクセス手段を有し、該ライトアクセス手段を介してデータが該第1メモリ手段に書き込まれる
請求項1ないし9のいずれかに記載のバイオスの更新方法。
【請求項11】
前記第1メモリ手段が、不揮発性メモリである
請求項1ないし10のいずれかに記載のバイオスの更新方法。
【請求項12】
少なくともバイオスの更新を行うコンピュータの電子機器であって、
書き込み指令を受信した後に、システム管理割り込み指令を送信する内蔵コントローラと、
該内蔵コントローラに電気的に接続され、該バイオスを格納する第1メモリ手段と、
該内蔵コントローラ及び該第1メモリ手段に電気的に接続され、バイオスを実行し、該内蔵コントローラから該システム管理割り込み指令を受信した後に検証コードを該内蔵コントローラに送信する処理手段と
を少なくとも備え、
該内蔵コントローラが検証コードを受信して、該検証コードとセキュリティコードとが適合するか否かを判定し、適合する場合には該内蔵コントローラがバイオスを更新できるように該第1メモリ手段を書き込み可能にする
ことを特徴とする電子機器。
【請求項13】
前記電子機器において、前記処理手段と前記内蔵コントローラとに電気的に接続される第2メモリ手段を備え、該第2メモリ手段が前記セキュリティコードを格納する
請求項12に記載の電子機器。
【請求項14】
前記電子機器において、前記処理手段が、電源起動・自己テスト(POST:power-on
self-test)中のバイオスの実行の際にセキュリティコードを生成する
請求項13に記載の電子機器。
【請求項15】
前記第2メモリ手段に、システム管理ランダムアクセスメモリ(SMRAM:system
management random access memory)を用いる
請求項13又は14に記載の電子機器。
【請求項16】
前記電子機器において、前記処理手段が前記システム管理割り込み指令を受信すると、該処理手段が割り込みハンドラを実行する時には、該処理手段が前記セキュリティコードに適合する前記検証コードを送信する
請求項12ないし15のいずれかに記載の電子機器。
【請求項17】
前記電子機器において、前記処理手段が前記システム管理割り込み指令を受信すると、該処理手段が割り込みハンドラを実行する時には、該処理手段がシステム管理割り込み指令の処理を停止する
請求項16に記載の電子機器。
【請求項18】
前記電子機器において、前記処理手段が前記システム管理割り込み指令を受信すると、該処理手段が割り込みハンドラを実行しない時には、該処理手段が前記セキュリティコードと異なる前記検証コードを送信する
請求項16又は17に記載の電子機器。
【請求項19】
前記セキュリティコードが、乱数の一群であって、かつ0ではない乱数値である
請求項12ないし18のいずれかに記載の電子機器。
【請求項20】
前記セキュリティコードが、4バイトでかつ、いずれのバイトも0ではない乱数値の一群である
請求項19に記載の電子機器。
【請求項21】
前記電子機器において、該内蔵コントローラがライトアクセス手段を有し、該ライトアクセス手段を介してデータが該第1メモリ手段に書き込まれる
請求項12ないし20のいずれかに記載の電子機器。
【請求項22】
前記第1メモリ手段が、不揮発性メモリである
請求項12ないし21のいずれかに記載の電子機器。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2010−33576(P2010−33576A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2009−177043(P2009−177043)
【出願日】平成21年7月29日(2009.7.29)
【出願人】(509214285)ペガトロン コーポレーション (1)
【氏名又は名称原語表記】PEGATRON CORPORATION
【住所又は居所原語表記】5F.,NO.76,LIGONG ST.,BEITOU DISTRICT,TAIPEI CITY 112,TAIWAN(R.O.C)
【Fターム(参考)】