JP2017033149A - 情報処理装置、コントローラ、及び、情報処理装置の制御方法 - Google Patents

情報処理装置、コントローラ、及び、情報処理装置の制御方法 Download PDF

Info

Publication number
JP2017033149A
JP2017033149A JP2015150589A JP2015150589A JP2017033149A JP 2017033149 A JP2017033149 A JP 2017033149A JP 2015150589 A JP2015150589 A JP 2015150589A JP 2015150589 A JP2015150589 A JP 2015150589A JP 2017033149 A JP2017033149 A JP 2017033149A
Authority
JP
Japan
Prior art keywords
software
area
firmware
processor
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015150589A
Other languages
English (en)
Inventor
竜一 小池
Ryuichi Koike
竜一 小池
橋本 幹生
Mikio Hashimoto
幹生 橋本
菜穂子 山田
Naoko Yamada
菜穂子 山田
林 良太郎
Ryotaro Hayashi
良太郎 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2015150589A priority Critical patent/JP2017033149A/ja
Priority to US15/222,060 priority patent/US10354073B2/en
Publication of JP2017033149A publication Critical patent/JP2017033149A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

【課題】情報処理装置で実行されるソフトウェアを安全に更新する。
【解決手段】情報処理装置100において、不揮発性メモリ36は、第1のソフトウェアと、第1のソフトウェアに代えて用いられる第2のソフトウェアと、第2のソフトウェアを検証するための第3のソフトウェアとを含む。指定部5は、起動時にプロセッサ1で実行されるソフトウェアを指定する。制御部6は、第1のソフトウェアがプロセッサ1によって実行されている場合に、不揮発性メモリ36において第1のソフトウェアを格納する第1の領域362aに対する書き込みを禁止する。第3のソフトウェアは、プロセッサに実行された場合に、第2のソフトウェアを検証し、第2のソフトウェアが正当の場合に、指定部5に対して第2のソフトウェアを設定する。
【選択図】図1

Description

本実施形態は、情報処理装置、コントローラ、及び、情報処理装置の制御方法に関する。
ネットワークを介して他の装置と通信可能な情報処理装置は、脆弱性又は不具合の修正を目的とするファームウェアの更新を実行する。
特開2006−323776号公報
本実施形態は、ソフトウェアを安全に更新する情報処理装置、コントローラ、及び、情報処理装置の制御方法を提供する。
本実施形態によれば、情報処理装置は、プロセッサと、不揮発性メモリと、指定部と、制御部とを含む。不揮発性メモリは、第1のソフトウェアと、第1のソフトウェアに代えて用いられる第2のソフトウェアと、第2のソフトウェアを検証するための第3のソフトウェアとを含む。指定部は、起動時にプロセッサで実行されるソフトウェアを指定する。制御部は、第1のソフトウェアがプロセッサによって実行されている場合に、不揮発性メモリにおいて第1のソフトウェアを格納する第1の領域に対する書き込みを禁止する。第3のソフトウェアは、プロセッサに実行された場合に、第2のソフトウェアを検証し、第2のソフトウェアが正当の場合に、指定部に対して第2のソフトウェアを設定する。
本実施形態に係る情報処理装置の構成を例示するブロック図。 本実施形態に係る不揮発性メモリの各領域と、モニタ、ファームウェア、予備ファームウェアのアクセス制御との関係を例示する図。 本実施形態に係るコントローラの構成を例示するブロック図。 本実施形態に係る操作検出部の処理を例示するフローチャート。 本実施形態に係る領域判断部の処理を例示するフローチャート。 本実施形態に係るモニタの処理を例示するフローチャート。 本実施形態に係る指定部による起動領域の指定を例示するブロック図。 本実施形態に係る不揮発性メモリの領域とプロテクト情報との関係を例示する図。 本実施形態に係る特権モードと非特権モードとの遷移を例示する状態遷移図。 一般的な情報処理装置のソフトウェア更新を例示するブロック図。 一般的な情報処理装置の不正なファームウェア更新を例示するブロック図。 本実施形態に係る情報処理装置のファームウェア更新を例示するブロック図。
以下、図面を参照しながら本発明の実施の形態について説明する。なお、以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。
[第1の実施形態]
本実施形態に係る情報処理装置は、例えば、組み込み機器、サーバマシン、クライアントマシン、パーソナルコンピュータ、スマートメータ、自動車、複写機、又は、ストレージデバイス、ストレージシステムなどでもよいが、これに限定されない。情報処理装置で実行されるソフトウェアには、脆弱性が含まれる場合がある。脆弱性を修正するために、不揮発性メモリに格納されているソフトウェアは事後的に更新される場合がある。ソフトウェアを更新するための更新機能が用意されると、脆弱性のあるソフトウェアが更新機能を用いて改竄されたソフトウェアを不揮発性メモリに格納し、この改竄されたソフトウェアにより異常状態が生じる場合がある。つまり、ソフトウェアの脆弱性を修正するためには更新機能が必要であるが、このような更新機能が悪用されて不揮発性メモリが改竄されることが想定される。
ソフトウェアの脆弱性を排除し、脅威の侵入を防ぐことはセキュリティ上重要であり、さらに、ソフトウェアの脆弱性を排除することが困難な場合には、被害を最小限に抑えることが重要である。
本実施形態に係る情報処理装置は、安全なソフトウェアの更新を可能とし、不揮発性メモリに対するソフトウェアの不正な書き込みを防止する。
以下、本実施形態では、保護される対象、及び、不揮発性メモリに対して書き込み、読み出し、又は、消去される対象は、ファームウェアの場合を例として説明する。しかしながら、保護される対象、及び、不揮発性メモリに対して書き込み、読み出し、又は、消去される対象は、例えば、オペレーティングシステム(OS)又はアプリケーションプログラムなどの各種のプログラム、プログラムコード、プログラムイメージ、データ、データイメージ、情報、ドキュメントなど、ファームウェアではない他のソフトウェアでもよい。
本実施形態に係る情報処理装置は、不揮発性メモリに、モニタ領域、ファームウェア領域、予備ファームウェア領域を含み、モニタ領域にモニタと呼ばれる監視用のファームウェアを格納する。モニタは、ファームウェアではない他のソフトウェアでもよい。
情報処理装置では、モニタが実行(動作)されている場合に不揮発性メモリに対する特権モード(モニタモード)が設定される。また、情報処理装置では、例えば、特権モードの場合にのみ、不揮発性メモリの各領域に対応する書き込み禁止又は書き込み許可の設定を変更することができる。特権モードの設定されている情報処理装置では、現在動作しているファームウェアが格納されているファームウェア領域が、書き込み禁止とされ、これにより改竄が防止される。一方で、更新されたファームウェア(以下、予備ファームウェアという)が格納される予備ファームウェア領域には、権限のない第三者であっても書き込み可能とする。また、リセットされた後の次の起動(ブート)に用いられる領域は起動領域と称される。起動領域は、モニタによって変更可能とする。本実施形態では、モニタが、予備ファームウェア領域の署名検証を行い、検証結果が正当な場合に、起動領域がファームウェア領域から予備ファームウェア領域へ変更される。これにより、想定されないファームウェアの起動が防止される。
図1は、本実施形態に係る情報処理装置の構成を例示するブロック図である。
情報処理装置100は、プロセッサ1、メモリ2、ストレージ部3、信号生成部4、指定部5、コントローラ6を備える。
プロセッサ1は、信号線(バス)を介して他のブロックと接続されている。より具体的には、バス71,72は、プロセッサ1とコントローラ6とを接続する。バス73,74は、コントローラ6とストレージ部3とを接続する。バス71及びバス73は、コマンド受信バスである。バス74及びバス72は、ソフトウェア送信バスである。プロセッサ1としては、例えば、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、又は、DSP(Digital Signal Processor)などが利用される。バス71〜74は、例えば、後述の図3に示すようにアドレスバス7A及びデータバス7Dを含む。
プロセッサ1は、メモリ2とストレージ部3とのうちの少なくとも一方に格納されたファームウェアに基づいて制御処理及び演算処理を実行する。
メモリ2は、主記憶装置であり、プロセッサ1からの制御に従う。メモリ2は、例えば、SRAM(Static Random Access Memory)、又は、DRAM(Dynamic Random Access Memory)を含む。例えば、情報処理装置100の起動時に、起動パーティション領域362に格納されているいずれかのファームウェアがプロセッサ1の制御にしたがって実行され、メモリ2には、プロセッサ1の制御に基づいて、生成されたデータ等を一時的に格納する。
本実施形態において、ストレージ部3は、不揮発性メモリ36、書き込み通信部31、アクセス制御部33、アクセス部35、情報管理部34、読み出し通信部32を含む。ストレージ部3の書き込み通信部31と読み出し通信部32とは、バス73,74を経由してコントローラ6に接続されている。一般の構成では、ストレージ部3は、主にプロセッサ1によって直接制御されるが、本実施形態では、ストレージ部3の外部に、特徴的な周辺回路である信号生成部4、指定部5、コントローラ6が配置される。この周辺回路によってストレージ部3に対してアクセス制御を行うことで、安全なファームウェア更新が実現される。
ストレージ部3は、ソリッドステートドライブ(SSD)を含むとしてもよく、又は、ハードディスクドライブ(HDD)を含むとしてもよい。ストレージ部3は、SSDとハードディスクとを組み合わせたハイブリッド型のメモリ装置を含むとしてもよい。
不揮発性メモリ36は、例えば、NAND型フラッシュメモリなどを含む。しかしながら、不揮発性メモリ36は、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random access memory:磁気抵抗メモリ)、PRAM(Phase change Random access memory:相変化メモリ)、ReRAM(Resistive Random access memory:抵抗変化型メモリ)、FeRAM(Ferroelectric Random Access Memory)などのメモリを含むとしてもよい。
書き込み通信部31は、書き込み、削除、又は、プロテクト情報の変更を行うためのコマンドを受信する書き込みポートに対応する。
書き込み通信部31は、書き込みの場合、プロセッサ1から、バス71、コントローラ6、バス73経由で書き込みコマンドを受信し、受信された書き込みコマンドをアクセス制御部33へ送る。
書き込み通信部31は、プロテクト情報の変更の場合、プロセッサ1から、バス71、コントローラ6、バス73経由で変更コマンドを受信し、受信された変更コマンドをアクセス制御部33へ送る。
アクセス部35は、アクセス制御部33による制御にしたがって、不揮発性メモリ36へファームウェアを書き込み、又は、消去を行う。また、アクセス部35は、アクセス制御部33による制御にしたがって、不揮発性メモリ36における指定されたアドレスで示される領域からファームウェアを読み出し、読み出されたファームウェアをアクセス制御部33へ送る。
アクセス部35によって、不揮発性メモリ36に対する実際の読み出し、書き込み、消去が実行される。
アクセス部35は、不揮発性メモリ36がフラッシュメモリであり、ファームウェアがが書き込まれている領域に対して再度書き込みを行う場合に、ブロック単位で当該領域のファームウェアを削除し、その後新たなファームウェアの書き込みをページ単位で行う。例えば、フラッシュメモリのように、データを更新するために対応する領域が消去される必要がある場合、不正な更新の代わりに不正な消去が制限されてもよい。しかしながら、領域の消去を行うことなくデータの更新が可能なフラッシュメモリも存在する。したがって、不揮発性メモリに対する不正な書き込みを防止するために、本実施形態では、書き込みコマンドと消去コマンドの双方に対して正当か否か判断する。
読み出し通信部32は、例えばワード単位で読み出すアドレスの指定を受け、読み出された任意のファームウェアを送信するための読み出しポートに対応する。
読み出し通信部32は、読み出しの場合に、プロセッサ1から、バス72、コントローラ6、バス74経由でアドレスを受信し、受信されたアドレスをアクセス制御部33へ送る。読み出し通信部32は、不揮発性メモリ36から読み出されたアドレスに対応するファームウェアを、アクセス部35、アクセス制御部33経由で受け、ファームウェアをバス74、コントローラ6、バス72経由でプロセッサ1へ送信する。
情報管理部34は、プロテクト情報(フラグ)を含み、管理する。プロテクト情報は、不揮発性メモリ36に対する書き込み及び消去を防ぐための情報である。プロテクト情報が保護状態を示す場合には、不揮発性メモリ36の対応する領域に対して書き込み及び消去が禁止される。プロテクト情報は、例えばブロック単位などのような任意の領域単位で、書き込み及び消去を防ぐか否かを特定する。
情報管理部34は、アクセス制御部33による制御にしたがって、プロテクト情報を変更する。
アクセス制御部33は、書き込み通信部31又は読み出し通信部32から受けたコマンドを解釈し、アクセス部35又は情報管理部34を制御する。
例えば、アクセス制御部33は、書き込み通信部31から受けた書き込みコマンド又は消去コマンドに基づいて、アクセス部35を制御し、不揮発性メモリ36に対するファームウェアの書き込み、又は、領域に対する消去を制御する。
例えば、アクセス制御部33は、読み出し通信部31から受けた読み出しコマンドとアドレスとに基づいて、アクセス部35を制御し、不揮発性メモリ36におけるアドレスに対応する領域に格納されているファームウェアをアクセス部35から受け、ファームウェアを読み出し通信部32へ送る。
本実施形態では、アクセス制御部33は、対応するプロテクト情報が保護状態を示す領域に対して書き込み又は消去が要求された場合に、当該書き込み又は消去を禁止し、対応するプロテクト情報が非保護状態を示す領域に対して書き込み又は消去が要求された場合に、書き込み要求又は消去要求をアクセス部35に送る。
さらに、本実施形態では、アクセス制御部33は、読み出し通信部32から受けた変更コマンドを解釈し、解釈結果に基づいて、情報管理部34に含まれているプロテクト情報を変更する。
なお、本実施形態においては、変更コマンドは、書き込み通信部31が受信するとしているが、読み出し通信部32が受信するとしてもよい。
また、本実施形態においては、変更コマンドは、書き込み通信部31からアクセス制御部33へ送られているが、書き込み通信部31又は読み出し通信部32から情報管理部34へ送られてもよい。
不揮発性メモリ36は、ファームウェアを格納する。本実施形態では、不揮発性メモリ36は、データ領域361、起動パーティション領域362を含む。
データ領域361及び起動パーティション領域362は、さらに小領域に分割されている。不揮発性メモリ36の領域ごとに、プロテクト情報が設定され、アクセス制御が実行される。
起動パーティション領域362は、情報処理装置100によって実行されるファームウェアが格納される領域である。起動パーティション領域362は、例えば、モニタ領域362a、ファームウェア領域362b、予備ファームウェア領域362cを含む。モニタ領域362aは、モニタ8を格納し、ファームウェア領域362bは、ファームウェア9を格納し、予備ファームウェア領域362cは、予備ファームウェア10を格納する。情報処理装置100は、モニタ領域362a、ファームウェア領域362b、予備ファームウェア領域362cのそれぞれの領域に格納されているモニタ8、ファームウェア9、又は、予備ファームウェア10に基づいて、起動可能である。
モニタ8は、予備ファームウェア10の検証を含む起動の準備を行う小規模な信頼性の高い監視ファームウェアである。モニタ領域362aは、モニタ8を秘匿するために、例えば特権モードで動作される場合にのみモニタが読み出し可能な領域として設定される。
モニタ8は、更新可能で複雑なファームウェア9とは異なり、脆弱性は存在しないとする。モニタ8は、脆弱性を取り除くために、限られた所定の処理を実行し、外部からの入力をほとんど受けない、小さく単純なコードである。モニタ領域362aは、モニタ8を格納する信頼できる保護領域であり、安全性を保証するため、更新不可である。モニタ領域362aは、モニタ8自身が動作する場合に、プロセッサ1によってモニタ8が読み出される必要があるため、読み出し可能であるが、他の場合には、読み出し不可とする。このモニタ領域362aに対するアクセス制御は、コントローラ6によって実現される。
モニタ8は、情報処理装置100のリセットに基づいて実行される。モニタ8は、次の第1乃至第4の処理を実行可能である。
第1の処理は、予備ファームウェア領域362cの検証である。第1の処理はモニタ8に含まれる公開鍵を用いて予備ファームウェア領域362cに格納されている予備ファームウェア10の完全性と真正性とを検証する。
第2の処理は、不揮発性メモリ36のアクセス制御設定の変更である。
第3の処理は、起動パーティション領域362aの切り替えである。第3の処理は、次の起動時にファームウェア領域362bと予備ファームウェア領域362cとのうちのどちらの領域のファームウェアを起動させるかを指定する指定部5を操作する。
第4の処理は、指定されているファームウェアを起動するためのリセットである。
モニタ8は、リセット時に、実行されているファームウェア9から起動領域の切り替えが依頼されたか否か(実行されているファーウェア9から予備ファームウェア10への切り替えが依頼されたか否か)を判断する。
モニタ8は、起動領域の切り替えが依頼された場合、第1乃至第4の処理を実行する。
モニタ8は、特別な依頼がなければ、第3及び第4の処理を実行し、起動領域のファームウェア9を起動する。
プロセッサ1で実行されるファームウェア9からの書き込みは、不揮発性メモリ36における共有領域361aに対して行われる。ファームウェア領域9と予備ファームウェア10とのうちのどちらに格納されているファームウェアを起動するかを指定する情報は、例えば、モニタ専用領域361bに格納される。
ファームウェア領域362bは、現在実行対象として設定されているファームウェア9を格納する。ファームウェア領域362bに格納されているファームウェア9が実行中である場合は、ファームウェア領域362bは書き込み不可とする。これにより、ファームウェア9の更新機能が脆弱性により悪用され、実行されているファームウェア9を更新しようとした場合でも更新できない。したがって、実行されているファームウェア9の安全性が担保される。その後の起動では、必ず実行されているファームウェア9と同一のコードが起動される。
予備ファームウェア領域362cは、実行されているファームウェア9の更新機能によって更新され、ファームウェア9に代えて用いられる予備ファームウェア10を格納する。予備ファームウェア領域362cに予備ファームウェア10が格納された後、予備ファームウェア10は、モニタ8による検証を経て有効化される。
なお、モニタ8が予備ファームウェア領域362cに格納された予備ファームウェア10を有効にした場合、ファームウェア領域362bと予備ファームウェア領域362cは入れ替わるとしてもよく、次回の更新で生成される予備ファームウェアは入れ替わった後の予備ファームウェア領域に格納されるとしてもよい。
データ領域361は、共通領域361aとモニタ専用領域361bを含むデータ専用領域である。
共通領域361aは、モニタ8、ファームウェア9、予備ファームウェア10によって読み書き可能であり、モニタ専用領域361bは、モニタ8のみが読み書き可能であり、ファームウェア9及び予備ファームウェア10が読み書き不可である。例えば、モニタ専用領域361bには、起動パーティション情報が格納される。起動パーティション情報は、起動領域を指定する情報であり、後述するモニタ8のファームウェア検証機能において更新される。
信号生成部4は、モニタ8が起動される場合に、特権モード信号を生成し、特権モード信号をコントローラ6へ送信する。以下では、プロセッサ1によって実行される対象がモニタ8である状態を、特権モードと呼ぶ。
信号生成部4は、例えばレジスタにより実現されてもよい。信号生成部4は、特権モードに一度設定されると、次に設定変更されるまで同じ信号を出力し続ける。信号生成部4は、リセットのタイミングでのみ特権モードと非特権モードとを切り替え可能としてもよい。
特権モード信号は、コントローラ6においてモニタ8が実行されているか否かを判別するための制御信号として用いられる。
指定部5は、例えば所定の信号(リセット)入力後に起動パーティション領域362内のどの領域のファームウェアを用いて起動するかを指定する。一般の情報処理装置では、リセット信号が生じると、単一のリセットベクタの内容にしたがって不揮発性メモリの特定アドレスで示される領域を参照し、特定アドレスで示される領域に格納されているファームウェアの実行が開始される。一方、本実施形態では、指定部5の値によってプロセッサ1で参照されるリセットベクタが切り替わり、起動時に用いられる起動領域がモニタ領域362a、ファームウェア領域362b、予備ファームウェア領域362cで切り替わる。
リセットされた直後に、指定部5がモニタ8を格納するモニタ領域362aを指定している場合、信号生成部4から特権モード信号が出力される。特権モード信号は、リセットが発生するまで、すなわちモニタ8が動作している間、出力され続ける。
ただし、実行されているファームウェア9が指定部5に対する設定を更新可能とすると、予備ファームウェア領域362cに格納されている予備ファームウェア10が、モニタ8による検証を経ずに起動される場合がある。したがって、指定部5は、特権モード信号が出力されている状態でリセットが発生した場合にのみ、リセットをまたいで指定部5の値(起動領域の指定)をファームウェア9のまま維持する。すなわち、モニタ8のみが、次回の起動領域を切り替え可能である。リセットが発生したが特権モード信号が出力されていない場合、指定部5は、モニタ領域362aを指定し、この場合には、モニタ8が起動される。ファームウェア9がリセットする際には必ずモニタ8が起動することになる。そのため、予備ファームウェア10は必ず特権モードを経由した後に有効化されることになる。
コントローラ6は、ストレージ部3に対する読み出し及び書き込みを制御するためのアクセスコントロール回路である。コントローラ6は、ストレージ部3の前段に配置される。コントローラ6は、ラップされており、内部に、操作検出部61、領域判断部62、リセット部61a、無効化部62aを含む。
コントローラ6は、信号生成部4から受信された特権モード信号に基づいて、アクセス制御の有無の判断及び設定を行う。モニタ8が動作中の場合、コントローラ6は、信号生成部4から特権モード信号を受信する。そして、コントローラ6は、特権モード信号を受信している場合にのみ、モニタ8によるアクセス制御の設定の変更を許可する。モニタ8によって設定された内容は、ファームウェア9が起動された後でも有効であり、再度モニタ8によって設定されるまで設定された内容は維持される。そのため、コントローラ6は、特権モード信号を受信していない場合においても、先に設定された正しいアクセス制御設定に従い、不揮発性メモリ36の特定領域への格納を禁止する。
コントローラ6は、プロセッサ1が不揮発性メモリ36に対して読み書きを行う場合に用いるアドレスバス、データバスを参照可能である。コントローラ6は、アドレスバス、データバスの入出力を監視することで必要なアクセス制限を行う。
操作検出部(例えば制御部)61は、書き込みを行う場合の一連の操作を検出する。本実施形態において、操作検出部61は、例えば非特権モードでプロテクト情報が操作されることを禁止するための制御を行う。
領域判断部(例えば読み出し制御部)62は、読み出しを行う場合の一連の操作を検出する。本実施形態において、領域判断部62は、所定の条件にしたがって例えばモニタ8の読み出しを禁止し、モニタ8の秘匿性を確保するための制御を行う。
リセット部61aは、ストレージ部3をリセットする場合に、リセット信号を操作検出部61、バス73経由で、ストレージ部3に送信する。例えば、リセット部61aは、非特権モードにおいてプロテクト情報の変更が依頼された場合に、ストレージ部3をリセットし、この変更を無効化する。
無効化部62aは、領域判断部62によって読み出しが検出された場合に、ストレージ部3に対する操作に制限を加える。例えば、無効化部62aは、非特権モードの場合に、モニタ領域362aから読み出されたモニタ8の値を強制的にゼロに置き換えることで無効化する、
図2は、本実施形態に係る不揮発性メモリ36の各領域と、モニタ8、ファームウェア9、予備ファームウェア10のアクセス制御との関係を例示する図である。
モニタ8が実行中の場合、モニタ8は、モニタ領域362aに対して読み出し可及び書き込み不可であり、ファームウェア領域362bに対して読み出し可及び書き込み可であり、予備ファームウェア領域362cに対して読み出し可及び書き込み可であり、共通領域361aに対して読み出し可及び書き込み可であり、モニタ専用領域361bに対して読み出し可及び書き込み可である。
ファームウェア9が実行中の場合、ファームウェア9は、モニタ領域362aに対して読み出し不可及び書き込み不可であり、ファームウェア領域362bに対して読み出し可及び書き込み不可であり、予備ファームウェア領域362cに対して読み出し可及び書き込み可であり、共通領域361aに対して読み出し可及び書き込み可であり、モニタ専用領域361bに対して読み出し不可及び書き込み不可である。
予備ファームウェア10が実行中の場合、予備ファームウェア10は、モニタ領域362aに対して読み出し不可及び書き込み不可であり、ファームウェア領域362bに対して読み出し可及び書き込み可であり、予備ファームウェア領域362cに対して読み出し可及び書き込み不可であり、共通領域361aに対して読み出し可及び書き込み可であり、モニタ専用領域361bに対して読み出し不可及び書き込み不可である。
ファームウェア領域362bのアクセス制御の設定は、動的に変化可能である。
図3は、本実施形態に係るコントローラ6の構成を例示するブロック図である。この図3に例示されるコントローラ6によって実行されるストレージ部3に対するアクセス制御を、図4及び図5を用いて説明する。
図4は、本実施形態に係る操作検出部61の処理を例示するフローチャートである。
操作検出部61は、アドレスバス7Aとデータバス7Dを監視して、プロテクト情報を変更するための変更コマンドを検出する(S4−1)。本実施形態において、変更コマンドは、特定の順番でアドレスバス7Aとデータバス7Dへ入力されるコマンドシーケンスでもよい。
変更コマンドが検出されると、操作検出部61は、特権モード信号に基づいて特権モードか否か、すなわちモニタ8が実行されているか否か判断する(S4−2)。
特権モードの場合、操作検出部61は、プロテクト情報の変更を許可し、変更コマンドを後段のストレージ部3に送る(S4−3)。非特権モードの場合、操作検出部61は、変更を拒否する(S4−4)。
変更拒否の具体的方法は、ストレージ部3の仕様などに依存するため、様々な方法が考えられる。例えば、操作検出部61は、リセット部61aを用いて、ストレージ部3をリセットしてもよいし、実行されているファームウェア9に例外を通知してもよいし、又は、セキュリティに関わる異常状態として情報処理装置100をリセットしてもよい。
図5は、本実施形態に係る領域判断部62の処理の一例を示すフローチャートである。
領域判断部62は、アドレスバス7Aを監視して、読み出しコマンドを検出する(S5−1)。読み出しコマンドが検出されると、領域判断部62は、特権モード信号に基づいて特権モードか否か判断する(S5−2)。
特権モードの場合、領域判断部62は、無効化部62aを無効化し(S5−3)、後段のストレージ部3に読み出しコマンドをそのまま送り、読み出しアドレスに対応したファームウェアをストレージ部3から受け、プロセッサ1に送信する(S5−4)。
一方、非特権モードの場合、領域判断部62は、読み出し領域(範囲)の判断を行う(S5−5)。
読み出し領域がモニタ領域362a外の場合、領域判断部62は、特権モードの場合と同様に、無効化部62aを無効にし(S5−3)、ストレージ部3から読み出されたファームウェアをプロセッサ1に送信する。読み出し領域がモニタ領域362a内の場合、領域判断部62は、無効化部62aを有効にし(S5−6)、ストレージ部3から読み出されたモニタ8を無効化部62aによって無効にし、プロセッサ1に送信する(S5−4)。
無効化部62aは、例えばデータバス7Dから得られるモニタ8の値と0値とのAND演算を行い、モニタ8の値を0に変換する回路である。無効化部62aにより、モニタ領域362aのモニタ8は、非特権モードで実質的に読み出し不可となり、モニタ8の秘匿性が確保される。
なお、無効化部62aで用いられる無効化の手法は、モニタ8が実質的に読み出し不可となるならば他の手法が用いられてもよい。
図6は、本実施形態に係るモニタ8の処理を例示するフローチャートである。
モニタ8は、プロセッサ1によって実行されると、操作検出部61に対し、プロテクト情報を変更可能に設定するための変更コマンドを送る(S6−1)。モニタ8が実行されている場合には、操作検出部61は、特権モード信号を検出するため、プロテクト情報の変更は無効化されない。
次に、モニタ8は、起動時に用いられるファームウェアを格納している起動領域の切り替え依頼が、ファームウェアによって例えば共通領域361aに格納されているか否か判断する(S6−2)。
起動領域の切り替え依頼がある場合、又は、モニタ8が起動領域を切り替える必要があると判断した場合、モニタ8に含まれている検証機能は、予備ファームウェア領域362cの予備ファームウェア9の完全性を検証するとともに、共通領域361aに格納された起動領域の切り替え依頼を削除する(S6−3)。予備ファームウェア9は、予備ファームウェア領域362cから、プロセッサ1経由で、メモリ2へ格納され、例えば完全性及び真正性などが検証される。例えば、ファームウェアを切り替えたがこのファームウェアが正常に動作しないことをモニタ8が検出した場合、モニタ8は起動領域を切り替える必要があると判断する。
モニタ8は、予備ファームウェア10が検証OKの場合、モニタ専用領域361bに対して、起動領域の設定情報を、ファームウェア領域362bから予備ファームウェア領域362cへ変更する(S6−4)。
モニタ8は、起動領域の切り替え依頼がない場合、予備ファームウェア領域362cの検証が検証NGの場合、又は、起動領域の設定が変更された場合、モニタ専用領域361bから、起動領域の設定情報を取得し、起動領域の設定情報を、指定部5に設定する(S6−5)。
さらに、モニタ8は、情報管理部34に対して、起動領域のプロテクト情報を保護状態(書き込み禁止)とするなど、必要に応じてプロテクト情報の変更を指示する(S6−6)。
以上の処理が完了された後、モニタ8は、リセットを行う(S6−7)。
上記の動作により、次回の起動時には、予備ファームウェア領域362cに格納されている検証済の予備ファームウェア10が書き込み禁止の状態で起動するか、又は、モニタ8が起動する。
なお、リセットを行った結果、予備ファームウェア10が正常動作しないという可能性もあるため、モニタ8は、予備ファームウェア10の正常動作を確認した後にプロテクト情報を変更してもよい。正常動作は様々に定義可能である。例えば、IPアドレスが取得できた場合、サーバと通信が行えた場合、最新ファームウェアであることが確認できた場合に、正常動作が行われていると判断してもよい。この場合、モニタ8は、プロテクト情報の変更の前に、正常動作を検証する機能を含むとしてもよい。
図7は、本実施形態に係る指定部5による起動領域の指定を例示するブロック図である。
不揮発性メモリ36は、モニタ領域362a、ファームウェア領域362b、予備ファームウェア領域362c、共通領域361a、モニタ専用領域361bなどの複数の領域に区切られている。
指定部5は、次の起動時に用いられる不揮発性メモリ36の領域を指定する。不揮発性メモリ36は、参照可能なリセットベクタ11a〜11cを格納している。リセットベクタ11aは、モニタ領域362aに対応する。リセットベクタ11bは、ファームウェア領域362bに対応する。リセットベクタ11cは、予備ファームウェア領域362cに対応する。起動時に指定部5によって指定されるリセットベクタを切り替えることで、起動領域を切り替える。起動領域の切り替えは、モニタ8によってのみ実行可能とする。
図8は、本実施形態に係る不揮発性メモリ36の領域とプロテクト情報との関係を例示する図である。
不揮発性メモリ36は、領域E1〜ENを含む。プロテクト情報P1〜PNは、それぞれ領域E1〜ENに対応する。この図8において、プロテクト情報P1〜PNは、1ビットで構成され、保護状態を1、非保護状態を0のフラグで表す。
コントローラ6の操作検出部61は、ストレージ部3に対する書き込みコマンドを直接制限しない。ストレージ部3は、書き込み禁止を判断するためのプロテクト情報P1〜PNを含み、プロテクト情報P1〜PNに基づいて書き込み及び消去を禁止する。操作検出部61は、このプロテクト情報P1〜PNをモニタ8だけが設定可能なように制限し、これにより実質的なストレージ部3に対する書き込み制限を実現している。具体的には、モニタ8は、ファームウェア9が起動する前に、起動領域としてのファームウェア領域362bを保護状態(書き込み禁止)とし、予備ファームウェア領域362cを非保護状態(書き込み可)とする。これにより、ファームウェア9の不正な更新が試みられた場合であっても、起動されたファームウェア9を格納する保護状態のファームウェア領域362bを更新することはできない。
保護状態の領域は、実行されているファームウェアに基づいて変更される。したがって、モニタ8は、適切なタイミングで、プロテクト情報P1〜PNを変更し、保護状態の領域を決定する。例えば、モニタ8は、ファームウェア起動のためのリセットに先立って、アクセス制御の設定を行う。
モニタ領域362aなどのような読み出しが制限される領域では、読み出しが制限される領域自体が識別可能であれば、領域内でアドレスが設定されなくてもよい。
図9は、本実施形態に係る特権モードと非特権モードとの遷移を例示する状態遷移図である。
この図9において、表記「ROM」は、指定部5がモニタ領域362aを指定する場合を示す。表記「FW」は、指定部5がファームウェア領域362bを指定する場合を示す。
電源がONされると、モニタ8が実行される。
モニタ8実行中(特権モード信号の出力中)にリセットが発生し、指定部5がモニタ領域362aを指定している場合、モニタ8が実行される。
モニタ8実行中にリセットが発生し、指定部5がファームウェア領域362bを指定している場合、ファームウェア9が実行される。
ファームウェア9実行中(非特権モード信号の出力中)にリセットが発生し、指定部5がモニタ領域362aを指定している場合、モニタ8が実行される。
ファームウェア9実行中にリセットが発生し、指定部5がファームウェア領域362bを指定している場合であっても、モニタ8が実行される。
電源は、モニタ8実行中又はファームウェア9実行中に、OFF可能である。
リセットされた直後に、指定部5は、モニタ領域362aに対応するリセットベクタ11aを指定する。すると、信号生成部4は、特権モード信号をコントローラ6へ送信する。特権モード信号は、リセットが生じるまで、つまりモニタ8が動作している間、出力され続ける。
以下で、本実施形態で実現されるファームウェア9の保護を説明する。まず、図10及び図11を用いてそれぞれ一般的な情報処理装置100のファームウェア更新の例と不正なファームウェア更新の例とを説明し、次に、図12を用いて本実施形態に係るソフトウェアの保護を説明する。
図10は、一般的な情報処理装置のソフトウェア更新を例示するブロック図である。
プロセッサ12は、不揮発性メモリ13におけるファームウェア領域13bに格納されているファームウェア14をXIP(eXecute In Place)により不揮発性メモリ13から直接実行し、又は、メモリに一時格納されたファームウェア14を実行する(OP1−1)。ファームウェア14の脆弱性発見などにより、ファームウェア14の更新が発生した場合には、ファームウェア14の更新機能14aは、起動されているファームウェア14を更新して得られる予備ファームウェア15を、予備ファームウェア領域13cに格納する(OP1−2)。情報処理装置は、例えば、ネットワーク経由で、USB(Universal Serial Bus)メモリから、又は、UART(Universal Asynchronous Receiver Transmitter)経由で、予備ファームウェア13cを受け、予備ファームウェア15を予備ファームウェア領域13cに格納してもよい。その後、現在実行されているファームウェア14は、起動領域をファームウェア領域13bから予備ファームウェア領域13cへ切り替え、再起動を行う(OP1−3)。これにより、再起動後は、脆弱性が修正された予備ファームウェア15がプロセッサ12によって実行される(OP1−4)。
図11は、一般的な情報処理装置の不正なファームウェア更新を例示するブロック図である。
ファームウェア14がプロセッサ12によって起動され(OP2−1)、起動されたファームウェア14に脆弱性があると、ファームウェア14は攻撃者によって不正に改竄され、不正な処理を実行する場合がある(OP2−2)。不正なファームウェア16は、例えばバックドアなどのような不正なファームウェア16をファームウェア領域13bに格納し(OP2−3)、再起動を行う(OP2−4)。これにより、再起動後、ファームウェア領域13bに格納されている不正なファームウェア16が実行される(OP2−5)。また、例えば、不正なファームウェア16は、予備ファームウェア領域13cに不正なファームウェア16を格納し、予備ファームウェア領域13cに格納されている不正なファームウェア16を起動するように改竄されることも想定される。
攻撃者は、脆弱な状況を維持することを考え、ファームウェア14の更新機能14aをプロセッサ12でなにも実行しないNOP命令で上書きし、又は、ファームウェア14の更新機能をジャンプ命令でスキップさせる可能性がある。この場合には、不正なファームウェア16の動作が繰り返され、元の健全なファームウェアへ戻すことが困難である。また、ファームウェアの破壊を目的として、攻撃者が不揮発性メモリ12の全領域を書き換える場合がある。また、攻撃者がブートプログラムの格納される領域を破壊することにより、情報処理装置が起動不可となる場合がある。
図12は、本実施形態に係る情報処理装置100のファームウェア更新を例示するブロック図である。
本実施形態に係るファームウェア更新では、モニタ8と呼ばれる信頼できるファームウェアが各種処理を実行し、次に起動されるファームウェアが正当か判断する点で、上記図10及び図11のファームウェア更新と相違する。
プロセッサ1により、ファームウェア領域362bに格納されているファームウェア9が起動される(OP3−1)。その後、更新機能9aが、予備ファームウェア領域362cに予備ファームウェア10を格納する(OP3−2)。そして、ユーザが情報処理装置100に対してリセット信号を入力すると、指定部5が起動領域としてモニタ領域362aを指定する。
リセット後、プロセッサ1は、モニタ領域362aに格納されているモニタ8を起動する(OP3−3)。
モニタ8の完全性検証機能は、予備ファームウェア領域362cに格納されている予備ファームウェア10を検証し、完全性と真正性が確保されているか否かを判断する。
モニタ8は、完全性と真正性が確保されている場合、ファームウェア領域362bを書き込み可能に設定し、予備ファームウェア領域362cを書き込み禁止に設定する。次に、モニタ8は、起動領域をファームウェア領域362bから予備ファームウェア領域362cに変更し、再度リセットを行う。すると、予備ファームウェア領域362cに格納されている正常な予備ファームウェア10が起動される(OP3−4)。これにより、不正なファームウェアによる不揮発性メモリ36に対する改竄を防止することができ、安全なファームウェア更新を実現することができる。
以上説明した本実施形態においては、ファームウェアを安全に更新することができ、情報処理装置100がリセットされると、正常なファームウェアが立ち上がることを保証することができる。
本実施形態に係るファームウェア更新は、モニタ8が動作している間は、非特権モードから特権モードに遷移し、特別な処理を実行可能となる特徴を持つ。具体的には、特権モードの時だけ、保護領域及び非保護領域の設定(プロテクト情報)と起動領域の設定との変更とが許可される。これにより、たとえ異常状態のファームウェアが更新機能を悪用し、プロテクト情報を改竄し、予備ファームウェア領域362cの改竄を試みた場合であっても、ファームウェア領域362bの書き込み禁止属性が解除されず、この改竄は操作検出部61によりブロックされ、ファームウェア領域362bに格納されているファームウェア9が更新されることはない。モニタ8は、ファームウェア9が起動する前に、ファームウェア領域362bに対応するプロテクト情報を保護状態とすることで、起動中のファームウェア9を更新不可とすることが可能となる。予備ファームウェア領域362cに対しては、ファームウェア9の動作に基づいて自由に書き込み可能である。しかしながら、ファームウェア9の動作に基づいて起動領域は変更されない。このため、再起動により直前に起動された正常なファームウェア9が起動されることを保証することができる。
モニタ8は、予備ファームウェア領域362cに格納されている予備ファームウェア10を、予備ファームウェア10の検証を経た後にのみ有効化することができる。例えば、予備ファームウェア領域362cに不正な予備ファームウェアが格納された場合であっても、モニタ8の検証により不正な予備ファームウェアの起動を防止することができる。
本実施形態においては、脆弱性により異常状態となったファームウェア9が、例えばモニタ8の読み出しを試みた場合でも、領域判断部62により読み出されたモニタ8の無効化が行われるため、モニタ8を秘匿することができる。
本実施形態で説明された各種の処理の順序又は構成は、適宜変更されてもよい。例えば、ストレージ部3とコントローラ6は、別モジュールとして分離されているが、同様の機能を備えていれば、一体のモジュールとして構成されていてもよい。また、例えば書き込み通信部31、読み出し通信部32は、アクセス制御部33に内蔵されていてもよい。信号生成部4と指定部5とのうちの少なくとも一方は、コントローラ6に含まれてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…情報処理装置、1…プロセッサ、2…メモリ、3…ストレージ部、4…信号生成部、5…指定部、6…コントローラ、71〜74…バス、31…書き込み通信部、32…読み出し通信部、33…アクセス制御部、34…情報管理部、35…アクセス部、36…不揮発性メモリ、361…データ領域、361a…共通領域、361b…モニタ専用領域、362…起動パーティション領域、362a…モニタ領域、362b…ファームウェア領域、362c…予備ファームウェア領域、8…モニタ、9…ファームウェア、10…予備ファームウェア、61…操作検出部、62…領域判断部、61a…リセット部、62b…無効化部、11a〜11c…リセットベクタ、E1〜EN…領域、P1〜PN…プロテクト情報、9a…更新機能。

Claims (11)

  1. プロセッサと、
    第1のソフトウェアと、前記第1のソフトウェアに代えて用いられる第2のソフトウェアと、前記第2のソフトウェアを検証するための第3のソフトウェアとを具備する不揮発性メモリと、
    起動時に前記プロセッサで実行されるソフトウェアを指定する指定部と、
    前記第1のソフトウェアが前記プロセッサによって実行されている場合に、前記不揮発性メモリにおいて前記第1のソフトウェアを格納する第1の領域に対する書き込みを禁止する制御部と、
    を具備し、
    前記第3のソフトウェアは、前記プロセッサに実行された場合に、前記第2のソフトウェアを検証し、前記第2のソフトウェアが正当の場合に、前記指定部に対して前記第2のソフトウェアを設定する、
    ことを特徴とする情報処理装置。
  2. 前記第3のソフトウェアは、前記プロセッサに実行された場合に、
    起動時に実行されるソフトウェアの切り替え依頼が前記第1のソフトウェアによって生成されたか否か判断し、
    前記切り替え依頼が生成されている場合、又は、前記第3のソフトウェアが切り替えが必要であると判断した場合に、前記第2のソフトウェアを検証し、
    前記第2のソフトウェアが正当の場合に、前記指定部に対して前記第2のソフトウェアを設定する、
    請求項1に記載の情報処理装置。
  3. 前記第3のソフトウェアは、
    前記第2のソフトウェアが正当の場合に、さらに、前記制御部に対して、前記不揮発性メモリにおいて前記第2のソフトウェアを格納する第2の領域に対する書き込みを禁止することを指示する、
    請求項2に記載の情報処理装置。
  4. 前記プロセッサによって実行される対象が前記第3のソフトウェアの場合に、所定の信号を生成する信号生成部をさらに具備する、
    請求項1乃至請求項3のいずれか1項に記載の情報処理装置。
  5. 前記制御部は、
    前記信号が生成されているか否か判断し、
    前記信号が生成されている場合に、前記不揮発性メモリに含まれる複数の領域に対して書き込み可能か否かを表すプロテクト情報の変更を許可し、
    前記信号が生成されていない場合に、前記プロテクト情報の変更を禁止する、
    請求項4に記載の情報処理装置。
  6. 前記信号が生成されていない場合に前記プロテクト情報の変更が依頼されると、前記変更の依頼を無効化するリセット部をさらに具備する、請求項5に記載の情報処理装置。
  7. 前記信号が生成されていない場合に、前記第3のソフトウェアが前記不揮発性メモリから読み出されることを禁止する読み出し制御部をさらに具備する、
    請求項4乃至請求項6のいずれか1項に記載の情報処理装置。
  8. 読み出し制御部は、前記信号が生成されていない場合に前記第3のソフトウェアが読み出されると、前記第3のソフトウェアの値をゼロに変換する無効化部を具備する、
    請求項7に記載の情報処理装置。
  9. 前記制御部と前記読み出し制御部とは、ラッピングされたロジック部に含まれており、
    前記不揮発性メモリは、コマンド受信バスを用いて、前記プロセッサから前記ロジック部経由でコマンドを受信し、
    前記不揮発性メモリは、ソフトウェア送信バスを用いて、前記プロセッサから前記ロジック部経由でアドレスを受信し、前記不揮発性メモリから前記ロジック部経由で前記第1乃至第3のソフトウェアのうち前記アドレスに対応するソフトウェアを送信し、
    前記不揮発性メモリにおいて前記第3のソフトウェアを格納する第3の領域は、書き込み不可である、
    請求項7又は請求項8に記載の情報処理装置。
  10. 不揮発性メモリに格納されている第1のソフトウェアがプロセッサによって実行されている場合に、前記不揮発性メモリにおいて前記第1のソフトウェアを格納する第1の領域に対する書き込みを禁止する第1の制御部と、
    前記プロセッサによって実行される対象が、前記第1のソフトウェアに代えて用いられる第2のソフトウェアを検証する第3のソフトウェアではない場合に、前記第3のソフトウェアが前記不揮発性メモリから読み出されることを禁止する第2の制御部と、
    を具備するコントローラ。
  11. 情報処理装置の制御方法において、
    前記情報処理装置は、
    プロセッサと、
    第1のソフトウェアと、前記第1のソフトウェアに代えて用いられる第2のソフトウェアと、前記第2のソフトウェアを検証するための第3のソフトウェアとを具備する不揮発性メモリと、
    を具備し、
    起動時に前記プロセッサで実行される起動ソフトウェアを指定することと、
    前記第1のソフトウェアが前記プロセッサによって実行されている場合に、前記不揮発性メモリにおいて前記第1のソフトウェアを格納する第1の領域に対する書き込みを禁止することと、
    前記プロセッサによって実行された前記第3のソフトウェアに基づいて、前記第2のソフトウェアを検証し、前記第2のソフトウェアが正当の場合に、前記起動ソフトウェアとして前記第2のソフトウェアを設定することと、
    を具備する、制御方法。
JP2015150589A 2015-07-30 2015-07-30 情報処理装置、コントローラ、及び、情報処理装置の制御方法 Pending JP2017033149A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015150589A JP2017033149A (ja) 2015-07-30 2015-07-30 情報処理装置、コントローラ、及び、情報処理装置の制御方法
US15/222,060 US10354073B2 (en) 2015-07-30 2016-07-28 Information processor device verifying software and method of controlling information processor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015150589A JP2017033149A (ja) 2015-07-30 2015-07-30 情報処理装置、コントローラ、及び、情報処理装置の制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019031808A Division JP6652669B2 (ja) 2019-02-25 2019-02-25 情報処理装置及び情報処理装置の制御方法

Publications (1)

Publication Number Publication Date
JP2017033149A true JP2017033149A (ja) 2017-02-09

Family

ID=57882791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150589A Pending JP2017033149A (ja) 2015-07-30 2015-07-30 情報処理装置、コントローラ、及び、情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US10354073B2 (ja)
JP (1) JP2017033149A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022051127A (ja) * 2020-09-18 2022-03-31 株式会社東芝 情報処理装置および更新処理方法
US11392701B2 (en) 2019-04-19 2022-07-19 Canon Kabushiki Kaisha Information processing apparatus and method for controlling the same
US11418505B2 (en) 2018-08-30 2022-08-16 Kabushiki Kaisha Toshiba Information processing apparatus, system and method
US11562104B2 (en) 2021-03-23 2023-01-24 Kabushiki Kaisha Toshiba Control device, information processing device, and information processing system
WO2023008373A1 (ja) * 2021-07-26 2023-02-02 株式会社堀場製作所 試験システム、試験方法及び試験システム用プログラム記録媒体
US11789716B2 (en) 2020-09-23 2023-10-17 Kabushiki Kaisha Toshiba Electronic apparatus capable of updating firmware program securely and method of updating firmware program securely

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6373888B2 (ja) 2016-03-01 2018-08-15 株式会社東芝 情報処理装置及び制御方法
US10678954B2 (en) * 2017-09-21 2020-06-09 GM Global Technology Operations LLC Cybersecurity vulnerability prioritization and remediation
WO2020026228A1 (en) * 2018-08-01 2020-02-06 Vdoo Connected Trust Ltd. Firmware verification
US10635345B2 (en) 2018-08-31 2020-04-28 Micron Technology, Inc. Live firmware activation in a memory system
CN110262838A (zh) * 2019-06-14 2019-09-20 深圳乐信软件技术有限公司 一种程序崩溃的处理方法、装置、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073360A (ja) * 2000-09-05 2002-03-12 Casio Comput Co Ltd 起動情報書換装置
WO2006040798A1 (ja) * 2004-10-08 2006-04-20 Renesas Technology Corp. 半導体集積回路装置および電子システム
JP2007287103A (ja) * 2006-04-20 2007-11-01 Nec Electronics Corp マイクロコンピュータ及びメモリアクセスの制御方法
JP2013069053A (ja) * 2011-09-21 2013-04-18 Toshiba Corp 制御装置およびモニタプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
JP4099039B2 (ja) 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
JP2005148495A (ja) 2003-11-17 2005-06-09 Sumitomo Electric Ind Ltd 静電アクチュエータ、光スイッチ及び光デバイス
US20050273588A1 (en) * 2004-06-08 2005-12-08 Ong Soo K Bootstrap method and apparatus with plural interchangeable boot code images
JP4537908B2 (ja) 2005-03-29 2010-09-08 株式会社東芝 プロセッサ、メモリ、コンピュータシステムおよびシステムlsi
JP2006323776A (ja) 2005-05-20 2006-11-30 Denso Corp 情報処理装置
JP2007272923A (ja) 2007-06-04 2007-10-18 Matsushita Electric Ind Co Ltd サーバ
JP2009037467A (ja) 2007-08-02 2009-02-19 Konica Minolta Business Technologies Inc 起動制御方法及び起動制御プログラム並びに画像形成装置
TWI382346B (zh) * 2008-10-20 2013-01-11 Asustek Comp Inc 保護雙基本輸出入系統程式之電腦系統及其控制方法
US8464038B2 (en) * 2009-10-13 2013-06-11 Google Inc. Computing device with developer mode
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US20150199190A1 (en) * 2012-02-23 2015-07-16 Google Inc. System and method for updating firmware
FR2993682B1 (fr) 2012-07-20 2014-08-22 Oberthur Technologies Mise a jour d'un systeme d'exploitation pour element securise
JP6079151B2 (ja) 2012-11-08 2017-02-15 日本電気株式会社 システム設定情報更新装置、システム設定情報更新システム、システム設定情報更新方法、及び、システム設定情報更新プログラム
JP6072584B2 (ja) 2013-03-27 2017-02-01 株式会社富士通エフサス サーバ装置およびプログラム管理方法
JP6063321B2 (ja) 2013-03-27 2017-01-18 株式会社富士通エフサス サーバ装置およびハッシュ値処理方法
JP6263880B2 (ja) * 2013-07-09 2018-01-24 富士通株式会社 ストレージ制御装置、制御装置および制御プログラム
JP6385842B2 (ja) 2015-02-02 2018-09-05 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073360A (ja) * 2000-09-05 2002-03-12 Casio Comput Co Ltd 起動情報書換装置
WO2006040798A1 (ja) * 2004-10-08 2006-04-20 Renesas Technology Corp. 半導体集積回路装置および電子システム
JP2007287103A (ja) * 2006-04-20 2007-11-01 Nec Electronics Corp マイクロコンピュータ及びメモリアクセスの制御方法
JP2013069053A (ja) * 2011-09-21 2013-04-18 Toshiba Corp 制御装置およびモニタプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11418505B2 (en) 2018-08-30 2022-08-16 Kabushiki Kaisha Toshiba Information processing apparatus, system and method
US11392701B2 (en) 2019-04-19 2022-07-19 Canon Kabushiki Kaisha Information processing apparatus and method for controlling the same
JP2022051127A (ja) * 2020-09-18 2022-03-31 株式会社東芝 情報処理装置および更新処理方法
JP7330157B2 (ja) 2020-09-18 2023-08-21 株式会社東芝 情報処理装置および更新処理方法
US11797457B2 (en) 2020-09-18 2023-10-24 Kabushiki Kaisha Toshiba Electronic apparatus and method for controlling data update processing on memory
US11789716B2 (en) 2020-09-23 2023-10-17 Kabushiki Kaisha Toshiba Electronic apparatus capable of updating firmware program securely and method of updating firmware program securely
US11562104B2 (en) 2021-03-23 2023-01-24 Kabushiki Kaisha Toshiba Control device, information processing device, and information processing system
WO2023008373A1 (ja) * 2021-07-26 2023-02-02 株式会社堀場製作所 試験システム、試験方法及び試験システム用プログラム記録媒体

Also Published As

Publication number Publication date
US10354073B2 (en) 2019-07-16
US20170032126A1 (en) 2017-02-02

Similar Documents

Publication Publication Date Title
JP2017033149A (ja) 情報処理装置、コントローラ、及び、情報処理装置の制御方法
JP4447977B2 (ja) セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP6306578B2 (ja) メモリ保護装置及び保護方法
KR100294829B1 (ko) 플래시 메모리를 보호하는 방법 및 장치
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
WO2009107330A1 (ja) 情報処理装置及びその制御方法
JP2008257734A (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
US20080263256A1 (en) Logic Device with Write Protected Memory Management Unit Registers
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
US11188321B2 (en) Processing device and software execution control method
US10885196B2 (en) Executing protected code
CN110020561B (zh) 半导体装置和操作半导体装置的方法
JP2021179982A (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
JP6652669B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP5316592B2 (ja) セキュアプロセッサ用プログラム
JP5365664B2 (ja) セキュアプロセッサ
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
US11468159B2 (en) Memory system
JP5460133B2 (ja) マイクロコントローラ装置
US10719615B2 (en) Information processing apparatus, reading control method, and computer readable storage medium
JP4783451B2 (ja) セキュアプロセッサ
JP4783452B2 (ja) セキュアプロセッサ
TWI626557B (zh) Execution control device and execution control method and execution control program product
CN110569205A (zh) 安全系统单芯片及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190625