JP7477990B2 - 情報処理装置、及びプログラム起動方法 - Google Patents

情報処理装置、及びプログラム起動方法 Download PDF

Info

Publication number
JP7477990B2
JP7477990B2 JP2020033870A JP2020033870A JP7477990B2 JP 7477990 B2 JP7477990 B2 JP 7477990B2 JP 2020033870 A JP2020033870 A JP 2020033870A JP 2020033870 A JP2020033870 A JP 2020033870A JP 7477990 B2 JP7477990 B2 JP 7477990B2
Authority
JP
Japan
Prior art keywords
program
information
area
information processing
processing device
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.)
Active
Application number
JP2020033870A
Other languages
English (en)
Other versions
JP2021135937A (ja
Inventor
伸義 森田
康広 藤井
周平 金子
晃啓 野村
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020033870A priority Critical patent/JP7477990B2/ja
Priority to PCT/JP2021/003372 priority patent/WO2021171906A1/ja
Priority to US17/796,158 priority patent/US20230114009A1/en
Priority to CN202180014033.XA priority patent/CN115244534A/zh
Publication of JP2021135937A publication Critical patent/JP2021135937A/ja
Application granted granted Critical
Publication of JP7477990B2 publication Critical patent/JP7477990B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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/445Program loading or initiating
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置や制御装置に関し、特に、プログラムの起動方法に関する。
プログラム更新の失敗時におけるリカバリー対策として、同じ種類のプログラムを保持可能な二つの記憶領域を備える装置を対象に、一方の記憶領域のプログラムのみを更新するプログラム更新技術が検討されている。具体的には、プログラムを実行する起動領域と、プログラムを実行しない待機領域を含むメモリ領域を備え、待機領域に格納されたプログラムを更新し、プログラム更新完了後に起動領域と待機領域を入れ替えるように起動情報を更新する。これによって、万一プログラムの更新に失敗した場合、更新対象ではない起動領域に影響を与えないように構成されている。
また、プログラムの更新において、更新用プログラムが正しいものであること、すなわち、不正に改ざんされていないことを検証することが好ましい。例えば、特許文献1(特開2017-21434号公報)には、第1の検証部は、アップデート用ソフトウェア及びバージョン番号の正当性を検証し、ロールバック検知部は、アップデート用ソフトウェアのバージョン番号とカウンタ部が保持する現在のソフトウェアのバージョン番号を比較し、アップデート用ソフトウェアのバージョンが新しいか否かを検知し、新しいと判断された場合にアップデート部はアップデート用ソフトウェアを用いてソフトウェアを更新し、第2の検証部は、ソフトウェアの更新に成功したか否かを検証し、バージョン管理部は、第2の検証部がソフトウェアの更新に成功した場合にのみ、カウンタ部が保持するバージョン番号を、アップデート用ソフトウェアのバージョン番号と一致するまで増加させる情報処理装置に記載されている。このような特許文献1の技術によれば、現状のプログラムを改ざんされていない最新のプログラムに更新することが可能である。
特開2017-21434号公報
特許文献1に記載された技術では、更新時にプログラムが検証されるが、プログラム更新後もサイバー攻撃の影響を受ける機会があり、脆弱性が悪用された場合、プログラムが不正に改ざんされる可能性がある。
プログラムの起動時に、当該プログラムの完全性を検証する技術として、セキュアブートが普及している。しかしながら、プログラムの更新によって起動領域情報が変化し、事前に情報処理装置の起動領域を把握できないため、起動領域情報が改ざんされていないことを検証できない。仮に、情報処理装置に対して現状の起動領域を確認すれば、事前に起動領域を把握することは可能であるが、対象となる情報処理装置が数百万台規模になる場合、プログラム更新作業は各情報処理装置の事前管理が必要となり、運用負荷が増大して現実的ではない。
本発明は、以上の問題に鑑みなされたものであり、情報処理装置が起動する際に、プログラムが最新のものであることを担保しつつ、起動するプログラム及び起動領域情報が改ざんされていないことを保証し、プログラムの更新作業者の運用負荷を低減することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プログラムを実行する情報処理装置であって、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、前記記憶部に格納されたプログラムを実行する演算部とを備え、前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報と、各領域に格納されたプログラムと、前記最新性情報を検証するための検証期待値を格納しており、前記プログラムは、パッケージに含まれて情報処理装置に送信され、前記パッケージは、当該パッケージ又は当該パッケージに含まれるプログラムの作成時に生成される最新性情報と、前記プログラム及び前記最新性情報を検証するための検証期待値を含み、前記情報処理装置は、前記プログラムの更新時に、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動し、前記プログラムの起動時に、前記検証期待値を用いて、当該プログラム及び前記パッケージに含まれる当該プログラムの最新性情報を検証し、当該検証に成功すると当該プログラムを起動可能とすることを特徴とする。
本発明によれば、最新性情報によってプログラムの最新性を担保でき、起動時に、最新のプログラムが格納された領域を選定し、そのプログラムを起動できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
本発明の実施例の情報処理装置の構成を示す図である。 本発明の実施例の情報処理装置におけるプログラム更新の概要処理フローを示す図である。 本発明の実施例の情報処理装置におけるプログラム起動の概要処理フローを示す図である。 本発明の実施例の更新用プログラム関連データのデータ構造を示す図である。 本発明の実施例のデータ構造を示す図 本発明の実施例の記憶領域の概要を示す図 本発明の実施例の検証対象範囲情報のデータ構造を示す図 本発明の実施例の更新用プログラムパッケージのデータ構造を示す図
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
本発明の実施例として、車載ネットワークに接続された情報処理装置(例えば、車両を制御するElectric Control Unit)を対象としたプログラムの起動方法の例を説明する。但し、本発明の技術的思想は、この例に限定されるものではない。例えば、車載制御装置(ECU)ではなく、起動中領域と待機中領域の2面構成を有し、プログラムを更新する情報処理装置であれば、車両制御装置以外(例えば、ヘルスケアデバイス)にも本発明を適用可能である。
図1は、本発明の実施例の情報処理装置の構成を示す図である。情報処理装置1は、通信バス2を介して他の情報処理装置3に接続されている。但し、通信バス2は物理的には複数の通信バスで構成されてもよく、これらの通信バスの規格は同一でもよいし異なってもよい。これら通信バスの規格はCAN(登録商標)、LIN(登録商標)、FlexRay(登録商標)、イーサネット(登録商標)などを用いることができる。以下、情報処理装置1について説明するが、情報処理装置3も同じ構成を有する。
情報処理装置1は、不図示のCPU、不図示のROM、及び不図示のRAMを有し、ROMに格納されたプログラムをCPUがRAMに展開して実行することによって以下の機能を実現する。すなわち、情報処理装置1は、その機能として、最新性情報検証部12、検証期待値検証部13、プログラム更新部14、起動関連情報検証部15、起動領域特定部16、起動領域情報更新部17、及びプログラム実行部18を有する。また、情報処理装置1は、不揮発性の記憶装置である記憶部19、及び通信インタフェースであり通信に必要な演算を行う通信部11を有する。
通信部11は、通信バス2を介して他の情報処理装置3から送信されたメッセージを受信し、通信バス2を介して他の情報処理装置3にメッセージを送信する。前述のとおり通信バス2は物理的に複数の通信バスから構成されてもよい。情報処理装置1は、通信部11を用いてプログラム更新に必要な情報を送受信する。最新性情報検証部12は、情報処理装置1が保持する最新性情報と、更新用プログラム関連データに含まれる最新性情報を比較し、どちらが新しい最新性情報であるかを判定する。検証期待値検証部13は、更新用プログラム関連データの改ざん有無を検証する。プログラム更新部14は、待機領域を更新用プログラム関連データに更新する。起動関連情報検証部15は、検証対象となっているプログラム及び最新性情報などを含む所定の起動関連情報の改ざんの有無を検証する。起動領域特定部16は、各領域の最新性情報を比較し、新しい最新性情報を保持する領域を起動領域として特定する。起動領域情報更新部17は、起動領域特定部16によって特定された領域を後述する起動領域情報191として更新する。プログラム実行部18は、前記起動関連情報検証部15によって起動領域情報191が改ざんされていないと判定した場合、該当する起動領域のプログラムを実行する。
記憶部19には、起動時に実行されるプログラムが保持される記憶領域を示す起動領域情報191、及び起動関連情報検証部15の検証対象範囲を示す検証対象範囲情報192が記憶される。
図2は、情報処理装置1がプログラムを更新する処理のフローチャートである。以下に説明する各ステップの実行主体は、情報処理装置1の不図示のCPUである。
ステップ201では、情報処理装置1は通信部11を用いて更新用プログラム関連データを受信する。
図4に、ステップ201において情報処理装置1が受信する更新用プログラム関連データ401の例を示す。制御装置4のプログラムは、図示する更新用プログラム関連データ401の形式のパッケージで、サーバから送信される。更新用プログラム関連データ401は、情報処理装置1で実行されるプログラム402と、当該プログラム402に関連付けられる最新性情報403と、検証期待値検証部13が当該プログラム402の改ざん有無を検証する際に参照する検証期待値404を含む。例えば、更新用プログラム関連データ401の作成者又は作成ツールが、当該更新用プログラム関連データ401を作成する際の日時情報を最新性情報403とし、プログラム402と最新性情報403を用いた署名生成結果を検証期待値404とする。なお、検証期待値404は、DSA、ECDSA、RSA等の公開鍵暗号技術を用いて生成した署名値でもよく、AES-CMACのような共通鍵暗号技術を用いて生成したMAC(Message Authentication Code)の値でもよく、ハッシュやチェックサムでもよい。
ステップ202では、最新性情報検証部12は、ステップ201で受信した更新用プログラム関連データ401から最新性情報403を取得し、取得した最新性情報403と情報処理装置1が保持する最新性情報を比較する。
ステップ203では、最新性情報検証部12は、ステップ202での比較の結果、ステップ201で受信した更新用プログラム関連データ401から取得した最新性情報403の方が新しい場合はステップ204に進み、新しくない場合はステップ208に進む。例えば、最新性情報として日時情報を用いる場合、更新用プログラム関連データ401から取得した最新性情報403の値が「2019年12月1日12時45分52秒」であり、情報処理装置1が保持する最新性情報が「2019年11月20日20時30分35秒」である場合、受信した最新性情報403の方が新しいと判定する。他にも、最新性情報としてインクリメントされるカウンタやノンスが保証される値を用いてもよく、この場合はより大きな値を示す方が新しいと判定する。
ステップ204では、検証期待値検証部13は、ステップ201で受信した更新用プログラム関連データ401に含まれるプログラム402と最新性情報403を用いて、所定の検証期待値検証アルゴリズムによって検証期待値を算出し、当該算出された検証期待値が更新用プログラム関連データ401に含まれる検証期待値404と一致するかを検証する。
ステップ205では、検証期待値検証部13は、ステップ204で算出した検証期待値と検証期待値404が一致する場合はステップ206に進み、一致しない場合はステップ208に進む。
ステップ206では、起動領域特定部16は、起動領域情報191を参照し、現在の起動領域を特定し、待機領域をプログラムを更新すべき更新該当領域として特定する。
図5に、ステップ206において記憶部19の各領域が起動領域であるかを起動領域特定部16が特定するために参照する起動領域情報191の例を示す。起動領域情報191は、プログラムを更新すべき装置に対応する記憶部19の記憶領域501と、起動領域と待機領域を示す識別子502を含む。例えば、領域1(A面)が「起動」、領域2(B面)が「待機」となっている場合、現在の起動領域が、領域1(A面)であることを示す。なお、図示した様に各領域が起動領域であるか待機領域であるかを示す情報を識別子502に登録しても、各領域のA面又はB面のいずれが起動領域であるかを示す情報を識別子502に登録しても、各領域のA面又はB面のいずれが待機領域であるかを示す情報を識別子502に登録してもよい。
ステップ207では、プログラム更新部14は、更新用プログラム関連データ401を用いて、ステップ206で特定された更新該当領域を更新する。例えば、プログラム更新部14は、ステップ206で更新該当領域として特定した領域2(B面)を更新する場合、アドレス601における領域2(B面)に関連するメモリを新たな更新用プログラム関連データに書き換える。
図6に、ステップ207においてプログラム更新対象となる記憶領域の例を示す。アドレス601は記憶領域の先頭に割り当てられたアドレス値を示し、種別602は当該アドレス601から始まる記憶領域の種別を示し、更新対象603はアドレス601から始まる記憶領域が更新対象になるかを示す。例えば、プログラム更新部14は、ステップ206で更新該当領域として特定した領域2(B面)を更新する場合、種別602のうち、B面に関連するアドレス601から始まる領域を更新対象として、このアドレスから始まる領域を更新用プログラム関連データで書き換える。
ステップ208では、情報処理装置1は、ステップ203において最新性が保証されない場合、又はステップ205において署名検証に失敗した場合、所定のエラー処理を実行する。
以上のステップによって、車載ネットワークに接続された情報処理装置1のプログラムを更新できる。
図3は、情報処理装置1がプログラムを起動する処理を示すフローチャートである。以下に説明する各ステップの実行主体は、情報処理装置1の不図示のCPUである。
ステップ301では、起動関連情報検証部15は、検証対象範囲情報192を参照し、起動時に改ざん有無を検証する対象を特定する。特に、起動するプログラムに加えて、当該プログラムが格納される領域の最新性も検証対象とする。
図7に、ステップ301において起動関連情報検証部15が検証対象範囲を特定するために参照する検証対象範囲情報192の例を示す。検証対象範囲情報192は、記憶領域の先頭に割り当てられたアドレスを示すアドレス701、当該アドレスから始まる記憶領域の種別を示す種別702、及び当該アドレス701から始まる記憶領域が検証対象になるかを示す検証対象703を含む。例えば、起動関連情報検証部15は、検証対象703が「対象」となっているアドレス701「0x0050C000」以降の所定の範囲の記憶領域を検証対象とする。なお、各記憶領域の検証対象範囲は、予め決定してもよく、所定の手続きに基づいて動的に変更してもよい。例えば、プログラムが実際に使用する範囲を検証対象範囲としてもよい。
ステップ302では、起動関連情報検証部15は、ステップ301において特定した検証対象の改ざん有無を検証する。検証対象領域に格納されているデータから算出される検証期待値と、ステップ207において記憶領域に書き込まれた検証期待値404が一致すれば、検証対象領域は改ざんされていないと判定できる。検証処理で用いる検証期待値は、AES-CMACのような共通鍵暗号技術を用いて生成したMACの値でも、ECDSA、RSA等の公開鍵暗号技術を用いて生成した署名値でもよく、ハッシュやチェックサムでもよい。
ステップ303では、起動関連情報検証部15は、ステップ302における検証結果が一致を示す場合はステップ304に進み、検証結果が一致を示さない場合はステップ307に進む。
ステップ304では、起動領域特定部16は、各記憶領域に格納される最新性情報403を取得し、最も新しい値の領域を特定する。
ステップ305では、起動領域情報更新部17は、ステップ304で特定した最も新しい最新性情報403を保持する記憶領域501を「起動領域」とし、最も新しい最新性情報403を保持しない記憶領域501を「待機領域」として起動領域情報191を更新する。
ステップ306では、プログラム実行部18は、ステップ305において起動領域と定められた記憶領域に格納されるプログラムを実行する。
ステップ307では、情報処理装置1は、ステップ303において検証結果が一致を示さない場合、所定のエラー処理を実行する。
なお、図3に示すフローチャートでは、最新性情報を比較し(304)、起動領域情報191を更新する(305)前に、起動領域を検証する(302、303)が、最新性情報を比較し(304)、起動領域情報191を更新した(305)後に、起動領域を検証して(302、303)もよい。すなわち、ステップ302及び303の処理をステップ305とステップ306の間で実行する。このようにすると、検証範囲が狭くなり、プログラムを高速に起動できる。一方、図3に示す形態では起動領域と共に待機領域も検証されるが、前述した変形例では待機領域が検証されずに未検証領域として残る。このため、未検証領域のプログラムを起動させないようにロックするとよい。
以上のステップによって、車載ネットワークに接続された情報処理装置1を対象にプログラムを安全に起動できる。
本実施例では、プログラム更新時の検証に用いる検証期待値と、プログラム起動時の検証に用いる検証期待値に同じものを用いる場合を説明した。一方、ステップ207において、更新用プログラム関連データ401に含まれる検証期待値404が対象とする検証範囲と、情報処理装置が起動時に実施する起動関連情報の検証範囲が一致しない場合は、プログラム更新用の検証期待値とプログラム起動用の検証期待値の両方を更新用プログラム関連データ401に含むとよい。具体的には、ステップ204におけるプログラム更新時の検証処理では、プログラム更新用検証期待値804を検証期待値として利用し、ステップ302におけるプログラム起動時の検証処理では、起動用検証期待値807を検証期待値として利用する。
図8に、プログラム更新用の検証期待値とプログラム起動用の検証期待値が異なる場合の更新用プログラムパッケージ801の例を示す。
更新用プログラムパッケージ801は、更新用プログラム関連データ802と、プログラム更新用最新性情報803と、プログラム更新用検証期待値804を含む、更新用プログラム関連データ802は、プログラム805と、起動用最新性情報806と、起動用検証期待値807を含む。更新用プログラム関連データ802は、ステップ207において、プログラム更新部14が待機領域を書き換えるために使用する。プログラム更新用最新性情報803は、更新用プログラムパッケージ801の作成時に生成され、ステップ202において、最新性情報検証部12が最新性情報を検証するために使用する。プログラム更新用検証期待値804は、更新用プログラムパッケージ801の作成時に生成され、ステップ204において、検証期待値検証部13が更新用プログラムを検証するために使用する。起動用最新性情報806は、プログラム805の作成時に生成され、ステップ303において、起動領域特定部16が新しい最新性情報を保持する領域を特定するために参照する。起動用検証期待値807は、プログラム805の作成時に生成され、ステップ302において、起動関連情報検証部15が検証対象となる領域の改ざんの有無を検証するための検証期待値として使用する。
以上に説明したように、本発明の実施例1によれば、プログラム起動時において、実行されるプログラムに加えて、起動する領域を示す起動領域情報191の改ざんの有無を検証できる。また、プログラム更新作業者は、情報処理装置1に保持されている最新性情報を意識することなく、更新用プログラム関連データの生成時点の最新性情報を付与するだけでよい。これにより、起動の度に、情報処理装置1の安全性を担保できるとともに、プログラム更新作業者の運用負荷を抑制できる。
以上に説明したように、本発明の実施例の情報処理装置1は、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部19と、記憶部19に格納されたプログラムを実行する演算部(CPU)とを備え、第1の領域及び第2の領域の各々は、プログラムと、当該プログラムの新しさに関する最新性情報とを格納しており、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで記憶部19を更新するかを判定し、複数の領域に格納されたプログラムのうち、最新性情報が新しいプログラムを起動するので、最新性情報によってプログラムのバージョンが担保できる。すなわち、起動時に、最新のプログラムが格納された領域を選定し、そのプログラムを起動できる。
また、第1の領域及び第2の領域の各々は、各領域に格納されたプログラム及び最新性情報を検証するための検証期待値をさらに格納しており、情報処理装置1は、プログラムの起動時に、検証期待値を用いて、当該プログラム及び当該プログラムの最新性情報を検証し、当該検証に成功すると当該プログラムを起動可能とするので、最新性情報も含めて、起動するプログラムが改ざんされていないことを保証できる。
また、第1の領域及び第2の領域は、一方がプログラムが実行される起動領域であり、他方がプログラムが更新される待機領域であるので、情報処理装置1を停止することなくプログラムを更新できる。
また、プログラムは、パッケージに含まれて情報処理装置1に送信され、パッケージは、当該パッケージの作成時に生成される最新性情報を含むので、パッケージ毎に最新性を判定できる。
また、プログラムは、パッケージに含まれて情報処理装置1に送信され、パッケージは、当該パッケージ又は当該パッケージに含まれるプログラムの作成時に生成される最新性情報と、プログラム及び最新性情報を検証するための検証期待値を含み、情報処理装置1は、プログラムの更新時及び起動時に、検証期待値を用いて前記パッケージに含まれる最新性情報を検証するので、更新時と起動時に一つの検証期待値を用いてプログラムの改ざんの有無を判定できる。
また、プログラムは、パッケージに含まれて情報処理装置に送信され、パッケージは、当該パッケージの作成時に生成される更新用最新性情報と、当該パッケージに含まれるプログラムの作成時に生成される起動用最新性情報とを含み、情報処理装置1は、プログラムの更新時に、更新用最新性情報を検証し、プログラムの起動時に、起動用最新性情報を検証するので、更新されるプログラムの範囲と起動されるプログラムの範囲とが異なっても、更新時と起動時にプログラムの改ざんの有無を判定できる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD、BD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
1 情報処理装置
2 通信バス
3 情報処理装置
4 制御装置
11 通信部
12 最新性情報検証部
13 検証期待値検証部
14 プログラム更新部
15 起動関連情報検証部
16 起動領域特定部
17 起動領域情報更新部
18 プログラム実行部
19 記憶部

Claims (5)

  1. プログラムを実行する情報処理装置であって、
    版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、
    前記記憶部に格納されたプログラムを実行する演算部とを備え、
    前記プログラムは、パッケージに含まれて情報処理装置に送信され、
    前記パッケージは、当該パッケージ又は当該パッケージに含まれるプログラムの作成時に生成される最新性情報と、前記プログラム及び前記最新性情報を検証するための検証期待値を含み、
    前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報と、各領域に格納されたプログラム及び前記最新性情報を検証するための検証期待値を格納しており、
    前記情報処理装置は、
    前記プログラムの更新時に、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、
    前記プログラムの起動時に、前記検証期待値を用いて、当該プログラム及び前記パッケージに含まれる当該プログラムの最新性情報を検証し、
    当該検証に成功すると当該プログラムを起動可能とし、
    前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動することを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記第1の領域及び前記第2の領域は、一方がプログラムが実行される起動領域であり、他方がプログラムが更新される待機領域であることを特徴とする情報処理装置。
  3. 請求項1に記載の情報処理装置であって、
    前記プログラムは、パッケージに含まれて情報処理装置に送信され、
    前記パッケージは、当該パッケージの作成時に生成される最新性情報を含むことを特徴とする情報処理装置。
  4. 請求項1に記載の情報処理装置であって、
    前記プログラムは、パッケージに含まれて情報処理装置に送信され、
    前記パッケージは、前記最新性情報として、当該パッケージの作成時に生成される更新用最新性情報と、当該パッケージに含まれるプログラムの作成時に生成される起動用最新性情報とを含み、
    前記情報処理装置は、
    前記プログラムの更新時に、前記更新用最新性情報を検証し、
    前記プログラムの起動時に、前記起動用最新性情報を検証することを特徴とする情報処理装置。
  5. プログラムを実行する情報処理装置のプログラムを更新するプログラム起動方法であって、
    前記情報処理装置は、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、前記記憶部に格納されたプログラムを実行する演算部とを有し、
    前記プログラムは、パッケージに含まれて情報処理装置に送信され、
    前記パッケージは、当該パッケージ又は当該パッケージに含まれるプログラムの作成時に生成される最新性情報と、前記プログラム及び前記最新性情報を検証するための検証期待値を含み、
    前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報と、各領域に格納されたプログラム及び前記最新性情報を検証するための検証期待値を格納しており、
    前記プログラム起動方法は、
    前記情報処理装置が、前記プログラムの更新時に、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、
    前記情報処理装置が、前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動し、
    前記情報処理装置が、前記プログラムの起動時に、前記検証期待値を用いて、当該プログラム及び前記パッケージに含まれる当該プログラムの最新性情報を検証し、
    前記情報処理装置が、当該検証に成功すると当該プログラムを起動可能とすることを特徴とするプログラム起動方法。
JP2020033870A 2020-02-28 2020-02-28 情報処理装置、及びプログラム起動方法 Active JP7477990B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020033870A JP7477990B2 (ja) 2020-02-28 2020-02-28 情報処理装置、及びプログラム起動方法
PCT/JP2021/003372 WO2021171906A1 (ja) 2020-02-28 2021-01-29 情報処理装置、及びプログラム起動方法
US17/796,158 US20230114009A1 (en) 2020-02-28 2021-01-29 Information Processing Apparatus and Program Starting Method
CN202180014033.XA CN115244534A (zh) 2020-02-28 2021-01-29 信息处理装置及程序启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020033870A JP7477990B2 (ja) 2020-02-28 2020-02-28 情報処理装置、及びプログラム起動方法

Publications (2)

Publication Number Publication Date
JP2021135937A JP2021135937A (ja) 2021-09-13
JP7477990B2 true JP7477990B2 (ja) 2024-05-02

Family

ID=77490111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020033870A Active JP7477990B2 (ja) 2020-02-28 2020-02-28 情報処理装置、及びプログラム起動方法

Country Status (4)

Country Link
US (1) US20230114009A1 (ja)
JP (1) JP7477990B2 (ja)
CN (1) CN115244534A (ja)
WO (1) WO2021171906A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006301960A (ja) 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2017021434A (ja) 2015-07-07 2017-01-26 キヤノン株式会社 情報処理装置及びその制御方法
US20180157840A1 (en) 2016-12-07 2018-06-07 Google Inc. Rollback resistant security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006301960A (ja) 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2017021434A (ja) 2015-07-07 2017-01-26 キヤノン株式会社 情報処理装置及びその制御方法
US20180157840A1 (en) 2016-12-07 2018-06-07 Google Inc. Rollback resistant security

Also Published As

Publication number Publication date
WO2021171906A1 (ja) 2021-09-02
CN115244534A (zh) 2022-10-25
JP2021135937A (ja) 2021-09-13
US20230114009A1 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
JP4980064B2 (ja) 携帯端末内に格納されたデータを第1のデータバージョンから更新データバージョンに差分的に更新する方法、携帯端末及びコンピュータプログラム
US8880898B2 (en) Anti-roll-back mechanism for counter
JP6373888B2 (ja) 情報処理装置及び制御方法
US9720782B2 (en) Authenticating a backup image with bifurcated storage
US8296579B2 (en) System and method for updating a basic input/output system (BIOS)
JP2014503101A (ja) コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US20210149681A1 (en) Secure Firmware Management with Hierarchical Boot Sequence using Last Known Good Firmware
EP3026559A1 (en) Method and device for providing verifying application integrity
JP2011003020A (ja) コンピューターシステムおよびプログラム起動方法
JP7477990B2 (ja) 情報処理装置、及びプログラム起動方法
CN114003915A (zh) 基于芯片的安全启动方法及装置
CN112417422A (zh) 安全芯片升级方法及计算机可读存储介质
JP6622360B2 (ja) 情報処理装置
CN116775145A (zh) 一种服务器的启动恢复方法、装置、设备及存储介质
CN113360914A (zh) 一种bios更新的方法、系统、设备及介质
CN115220796A (zh) 安全引导设备
CN111143887B (zh) 一种安全控制方法、处理器、集成器件及计算机设备
JP7461755B2 (ja) 情報処理装置、プログラム更新システム、及びプログラム更新方法
JP7341376B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
KR20190118894A (ko) 안전한 usb 장치를 보장하는 부트 방법
WO2023243212A1 (ja) 情報処理装置
CN116415225A (zh) 固件验证系统及固件验证方法
JP2024071504A (ja) 情報処理装置
CN114721693A (zh) 一种微处理器、bios固件更新方法、计算机设备及存储介质
CN115357293A (zh) 升级签名固件的方法、电子设备和存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20220602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7477990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150