JP5864510B2 - 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置 - Google Patents

修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置 Download PDF

Info

Publication number
JP5864510B2
JP5864510B2 JP2013217473A JP2013217473A JP5864510B2 JP 5864510 B2 JP5864510 B2 JP 5864510B2 JP 2013217473 A JP2013217473 A JP 2013217473A JP 2013217473 A JP2013217473 A JP 2013217473A JP 5864510 B2 JP5864510 B2 JP 5864510B2
Authority
JP
Japan
Prior art keywords
information
software
update
program
control 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.)
Expired - Fee Related
Application number
JP2013217473A
Other languages
English (en)
Other versions
JP2015079440A (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.)
Fujitsu Ltd
Toyota Motor Corp
Original Assignee
Fujitsu Ltd
Toyota Motor 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 Fujitsu Ltd, Toyota Motor Corp filed Critical Fujitsu Ltd
Priority to JP2013217473A priority Critical patent/JP5864510B2/ja
Priority to EP14185730.0A priority patent/EP2863303B1/en
Priority to US14/495,195 priority patent/US10157050B2/en
Priority to CN201410525010.7A priority patent/CN104572320B/zh
Publication of JP2015079440A publication Critical patent/JP2015079440A/ja
Application granted granted Critical
Publication of JP5864510B2 publication Critical patent/JP5864510B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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

Landscapes

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

Description

本発明は、ネットワークを介したソフトウェアの更新方法に関する。
情報処理装置のソフトウェアの更新方法の一例として、情報処理装置が、ネットワークを介して接続された更新サーバから更新ソフトウェアを取得して、取得したソフトウェアを適用する方法がある。ネットワークを介してソフトウェアを更新する方法の一例として、例えば以下の第1と第2の技術がある。
第1の技術は、先ず、ベンダシステムで、ユーザシステムにインストールされているソフトウェア情報やハードウェア情報を含むユーザシステム情報を取得する。次に、取得したユーザシステム情報を基にテスト環境を構築して、そのテスト環境においてソフトウェア更新パッチを適用したシステムの動作を検証し、テスト環境においてシステムが正常に動作するかを確認する。そして、正常動作が確認された場合に、ソフトウェア更新パッチをユーザシステムに送信し、ユーザシステムでは、そのソフトウェア更新パッチを適用して、自らのシステムを更新する。
第2の技術では、顧客システムに導入されているOS(Operating System)およびアプリケーションを示す情報を含む顧客システム情報とパッチが適用できるOSおよびアプリケーションを規定する条件である排他条件を含むパッチ詳細情報とが保持される。そして、顧客システム情報とパッチ詳細情報に基づいて、顧客システムに対するパッチの適用の可否が判断される。パッチの適用が可であると判断された場合、パッチが顧客システムに送付されパッチの適用指示が出される。
特開2005−107803号公報 特開2004−102379号公報
更新対象のソフトウェアを自動車で稼動させる場合、自動車に搭載可能な計算機の資源は乏しく、更新処理の失敗時の復旧のための資源の確保が難しい。また自動車に搭載される計算機にかかる負荷の軽減が望まれる。そこで、更新サーバにおける、ソフトウェアの更新処理の確実な成否確認が重要となる。
しかしながら、上記第1及び第2の技術では、自動車で稼動するソフトウェアの更新の成否を更新サーバ側で確認することについては開示されていない。
そこで、1つの側面では、本発明は、自動車に対して更新ソフトウェアを送信して適用させる更新サーバが、更新ソフトウェアの適用の成否を確認する方法を提供することを目的とする。
一態様の方法は、自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、自動車に搭載された当該制御部から、制御プログラムの状態に関する情報である第一の情報を受信し、受信した、第一の情報に基づいて、制御プログラムについての修正プログラムを制御部に適用した場合の制御プログラムの状態である第二の情報を算出し、制御部へ修正プログラムを送信し、送信した修正プログラムを制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、制御部から受信し、受信した第三の情報と、算出した第二の情報とを比較し、比較した結果に基づいて、制御部に対する修正プログラムの適用処理が成功したか失敗したかを判断する。
1実施態様によれば、自動車に対して更新ソフトウェアを送信して適用させる更新サーバが、更新ソフトウェアの適用の成否を確認する方法を提供することができる。
情報処理装置の一実施例の構成を図解した機能ブロック図である。 本実施形態に係る情報処理システムの構成の一例を示す。 自動車と更新サーバのシーケンス図の一例を示す。 本実施形態に係る更新サーバの構成の一例を示す。 ホワイトリストXの構成の一例を示す。 ホワイトリストYの構成の一例を示す。 ホワイトリストZの構成の一例を示す。 状態情報のデータ構造の一例を示す。 更新指示のデータ構造の一例を示す。 最終指示のデータ構造の一例を示す。 認証部が車載器の公開鍵とハッシュ関数を管理するための鍵管理情報の一例を示す。 本実施形態に係る車載器の構成の一例を示す。 本実施形態に係るECUの構成の一例を示す。 更新サーバの処理内容を図解したフローチャートである。 車載器の処理内容を図解したフローチャートである。 ECUの処理内容を図解したフローチャートである。 更新サーバのハードウェア構成の一例を示す。 車載器のハードウェア構成の一例を示す。 ECUのソフトウェアの更新機能の実現方法の一例(その1)を示す。 ECUのソフトウェアの更新機能の実現方法の一例(その2)を示す。 情報処理システムの変形例の構成の一例を示す。
図1は、情報処理装置の一実施例の構成を図解した機能ブロック図である。図1において情報処理装置10は、第1の受信部1、算出部2、送信部3、第2の受信部4、比較部5、判断部6、最終指示部7、及び状態判定部8を含む。
第1の受信部1は、自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、自動車に搭載された当該制御部から、制御プログラムの状態に関する情報である第一の情報を受信する。
算出部2は、受信された、第一の情報に基づいて、制御プログラムについての修正プログラムを制御部に適用した場合の制御プログラムの状態である第二の情報を算出する。
送信部3は、制御部へ修正プログラムを送信する。
第2の受信部4は、送信された修正プログラムを制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、制御部から受信する。
比較部5は、第2の受信部4により受信された第三の情報と、算出部2により算出された第二の情報とを比較する。
判断部6は、比較部5により比較された結果に基づいて、制御部に対する修正プログラムの適用処理が成功したか失敗したかを判断する。
最終指示部7は、制御部に対する修正プログラムの適用処理が成功したと判断部6により判断された場合、修正プログラムが適用された制御プログラムを有効化させる指示を制御部へ送信する。また、最終指示部7は、制御部に対する修正プログラムの適用処理が失敗したと判断部6により判断された場合、修正プログラムの適用処理をロールバックさせる指示を制御部へ送信する。
状態判定部8は、第1の受信部1が受信した第一の情報に基いて、制御プログラムの状態が正常か否かを判定する。そして送信部3は、状態判定部8により制御プログラムの状態が正常であると判定された場合に、制御部へ修正プログラムを送信する。
また、第一の情報及び第三の情報は、TPM(Trusted Platform Module)に搭載されている機能により真正性が確認されているソフトウェアにより作成された情報である。
図2は、本実施形態に係る、自動車に搭載されたECU(Electronic Control Unit)の更新システムの一例を示す。
図2において、更新システム20は自動車21と更新サーバ22を含む。そして自動車21は車載器23とECU24A、24B、24Cを含む。更新サーバ22と車載器23はネットワークを介して接続される。そして、車載器23とECU24はネットワークまたはバスを介して接続される。更新サーバ22と車載器23を接続するネットワークには、例えば無線ネットワークがある。ECU24と車載器23を接続するネットワークには、例えばCAN(Controller Area Network)やFlexRayなどがある。以下の説明では、ECU24A、24B、24Cを特に区別しない場合には、単にECU24と記す。
車載器23は、ネットワークを介して更新サーバ22と情報の通信が可能な装置である。車載器23は、更新サーバ22から更新ソフトウェアを受信し、受信した更新ソフトウェアを更新対象のECU24に適用するように指示する。また、車載器23は、各ECU24で稼動するソフトウェアの状態を示す構成情報を収集して、更新サーバ22に送信する。車載器23は、更新サーバ22と各ECU24に対して通信可能であれば特に限定されず、カーナビゲーション装置や、自動車21に設置可能なスマートフォンなどでもよい。
ECU24は、エンジンの制御で用いられる各種のセンサを含むセンサ系統及びエンジンの動作を制御する。ECU24は車載器23から構成情報の収集を指示されると、自身の構成情報を取得して車載器23に通知する。また、ECU24は車載器23からソフトウェアの更新指示を受信し、指示された内容に自身のソフトウェアを更新する。ソフトウェアの更新は、更新ソフトウェアのインストール処理と、更新ソフトウェアの有効化処理の2段階で行われ、更新ソフトウェアの有効化は、更新サーバ22からの更新の有効化の指示を受け取った後に行われる。尚、ソフトウェアの構成情報は例えば、ソフトウェアの各種パラメータであって、当該パラメータが正常であればソフトウェアが正常であることが保証されるパラメータである。
更新サーバ22は、車載器23に対してECU24の構成情報の取得要求を送信し、その応答としてECU24の構成情報を受信する。そして更新サーバ22は、受信した構成情報に基いて、自動車21の各ECU24の状態を把握し、最適な更新ソフトウェアを選別する。更新サーバ22は、構成情報に基いて作成した、車両と同様の構成の実機またはシミュレータを用いて、選定したソフトウェアの適用が成功した場合の各ソフトウェアの構成情報の値が格納されたホワイトリストを算出する。そして、更新サーバ22は選別した更新ソフトウェアの適用指示を車載器23に送信する。その後更新サーバ22は、車載器23から更新ソフトウェア適用後の構成情報を受信して、受信した構成情報とホワイトリストとに基いてソフトウェアの更新の成否を判定する。ソフトウェアの更新が成功したと判定した場合、更新サーバ22は車載器23に対して更新ソフトウェアの有効化を指示し、更新が失敗したと判定した場合、更新サーバ22は車載器23に対して更新処理のロールバックを指示する。
尚、更新ソフトウェアは不具合の見つかったソフトウェアに適用される形式のソフトウェアでもよいし、不具合の見つかったソフトウェアと入れ替わる形式のソフトウェアでもよい。具体的には例えば更新ソフトウェアはソフトウェアのパッチである。
このような構成とすることで、ソフトウェアの更新の成否を更新サーバ22で判定し、成功したと判定された場合に実際の更新の反映がなされるため、更新後のECU24の信頼性を高めることができ、また、更新後のECU24の不具合を未然に防ぐことができる。また、適切な更新ソフトウェアの選定を更新サーバ22が行うため、自動車21の各ECU24のソフトウェアの更新に伴うECU24及び車載器23の負荷を軽減することができる。
図3に、本実施形態に係る、自動車21と更新サーバ22のシーケンス図の一例を示す。
先ず、更新サーバ22は、自動車21に対してECU24の構成情報の取得要求を送信する(S101)。自動車21は構成情報の取得要求を受信すると、各ECU24から構成情報を収集して、収集した構成情報を更新サーバ22に送信する(S102)。更新サーバ22は構成情報を受信すると、受信した構成情報に基いてソフトウェアが更新可能か否かを判定する。更新可能と判定した場合、更新サーバ22は更新ソフトウェアを選定し、選定したソフトウェアの適用が成功した場合の各ソフトウェアの構成情報の値が格納されたホワイトリストを算出する。そして、更新サーバ22は選定した更新ソフトウェアを自動車21に送信する(S103)。自動車21は更新ソフトウェアを受信すると、更新ソフトウェアのインストール処理を行う。ただしこの時点においては、自動車21はソフトウェアの更新内容の有効化は行わない。次に自動車21は、更新ソフトウェアインストール処理後の構成情報を取得して更新サーバ22に送信する(S104)。更新サーバ22は、更新ソフトウェアインストール処理後の構成情報を受信すると、受信した構成情報とホワイトリストの値を比較することでソフトウェアの更新が正常に行われたかを検証する。そしてソフトウェアの更新の成否に基づいて、更新サーバ22は自動車21に最終指示を送信する(S105)。最終指示は、更新ソフトウェアのインストール処理が正常に行われたと判定された場合には、更新内容を有効にするように指示するものとなる。一方ソフトウェアの更新が正常に行われていないと判定された場合には、最終指示は自動車21にロールバックを指示するものとなる。最終指示を受信すると自動車21は指示内容に応じた処理である更新確定処理を行う。すなわち、自動車21は、更新ソフトウェアの有効化の指示を受信すると更新ソフトウェアの有効化を行い、ロールバックの指示を受信するとロールバックを行う。
図4は、本実施形態に係る更新サーバの構成の一例を示す。
更新サーバ22は、管理部31、認証部32、状態情報取得部33、決定部34、選定部35、検証部36、記憶部37、及び履歴管理部38を含む。更新サーバ22は、情報処理装置10の一例である。状態情報取得部33は、第1の受信部1、及び第2の受信部4の一例である。選定部35は、算出部2の一例である。検証部36は、比較部5、判断部6、及び最終指示部7の一例である。決定部34は、状態判定部8の一例である。
管理部31は、更新サーバ22の管理対象車両の出荷前の時点におけるソフトウェアの構成情報を記憶部37に記憶して管理する。以下の説明では、出荷前における各ECU24のソフトウェアの構成情報が格納されたソフトウェア管理情報をホワイトリストX(40)と記す。
図5に、ホワイトリストX(40)の構成の一例を示す。ホワイトリストX(40)は、ソフトウェア名41、製造者42、種別43、ハッシュ値44、ハッシュ値取得方法45、ソフトウェア実体46、登録日47のデータ項目を含む。尚、ホワイトリストX(40)は車両毎に管理されるものとする。
ソフトウェア名41は、車両に搭載可能なソフトウェアを一意に識別するための情報である。製造者42は、ソフトウェアの製造元の会社名の情報である。種別43は、ソフトウェアが稼動するECU24の種別を表す情報である。ハッシュ値44は、ソフトウェアの構成情報のハッシュ値をハッシュ値取得方法45で取得した結果の値である。このハッシュ値44は、ソフトウェアが正常な状態か否かを判定するために使用される。ソフトウェアから取得した構成情報のハッシュ値が、このハッシュ値44の値と一致する場合に、そのソフトウェアは正常であると判定される。ハッシュ値取得方法45は、ハッシュ値44を取得する際に用いられる方法である。尚、ハッシュ値取得方法45は、ソフトウェア名と対応付けて、車載器23も保持する。ソフトウェア実体46は、ソフトウェアの実体、すなわち、ソフトウェアのバイナリデータが格納される。登録日47は、当該レコードのソフトウェアがソフトウェア管理情報に登録された日付である。尚、ソフトウェア実体46には、ソフトウェアの実ファイルが格納された記憶領域のアドレスが格納されてもよい。
また管理部31は、ソフトウェアに不具合が見つかった場合、不具合が見つかったソフトウェアを修正するためのソフトウェアである更新ソフトウェアを取得する。例えば管理部31は、不具合のあったソフトウェアの製造元から、更新対象のソフトウェア名41と更新ソフトウェアとを取得する。そして管理部31は、ホワイトリストX(40)の複製である新たなホワイトリストYを作成し、ホワイトリストYから、取得した更新対象のソフトウェア名41と一致するレコードを抽出する。そして抽出したレコードの各フィールドの情報を、管理部31は、取得した更新ソフトウェアの情報に更新する。更新ソフトウェアは、更新サーバ22に接続された他の情報処理装置から入力されてもよいし、ユーザにより入力されてもよい。管理部31は、作成したホワイトリストYを記憶部37に格納する。
図6は、ホワイトリストY(50)の構成の一例を示す。ホワイトリストY(50)のデータ構造はホワイトリストX(40)と同様である。図6の例では、図5のホワイトリストX(40)のうち、ソフトウェア名41が「A−FF03」に不具合が見つかり、その更新ソフトウェアとして、「A−FF04」が取得された場合の例を示している。図5のホワイトリストX(40)と比較すると、図6のホワイトリストY(50)では、ソフトウェア名41が「A−FF03」のレコードの情報が「A−FF04」の情報に更新されている。
さらに管理部31は、不具合の見つかったソフトウェアに更新ソフトウェアを適用した場合に影響が及ぶソフトウェアの範囲を特定する。
不具合のあるソフトウェアを修正した場合には、そのソフトウェアの出力値が変化する可能性がある。そこで管理部31は、例えば以下のように更新ソフトウェアを適用した場合に影響の及ぶソフトウェアを特定する。ここでは説明のため、所定のECU24のソフトウェアに不具合が見つかった場合を考え、不具合の見つかったソフトウェアをソフトウェアXと記す。管理部31は、ソフトウェアXからの出力値であってソフトウェアXの修正により変化する当該出力値を入力とするソフトウェア(ソフトウェアYと記す)を特定する。さらに、特定したソフトウェアYからの出力値であってソフトウェアXの修正により変化する当該出力値を入力とするソフトウェアを特定する。さらに同様に、新たに特定されたソフトウェアからの出力値であってソフトウェアXの修正により変化する当該出力値を入力とするソフトウェアを特定していく。このように管理部31はソフトウェアXの修正により影響の及ぶソフトウェアを特定する。
さらに、ソフトウェアXの修正により影響の及ぶソフトウェアのそれぞれについて、管理部31は修正が必要である場合にはそのソフトウェアの更新ソフトウェアを、例えば外部から取得する。そして、取得した更新ソフトウェアのそれぞれに対して、さらに管理部31は影響の及ぶソフトウェアを特定し、特定したソフトウェアのそれぞれについてソフトウェアの修正が必要であれば更新ソフトウェアを取得する。
以下の説明では、管理部31により特定された、不具合の見つかったソフトウェア、及び、不具合の見つかったソフトウェアの更新により影響の及ぶソフトウェアであって修正が必要なソフトウェアの集合を、更新対象ソフトウェアの集合と記す。
さらに管理部31は、ホワイトリストYにおける、更新対象ソフトウェアの集合に含まれるソフトウェアのレコードを更新ソフトウェアの情報に更新した、新たな管理情報を作成する。以下の説明では、ホワイトリストYの更新対象ソフトウェアのレコードを更新ソフトウェアの情報に更新した新たな管理情報を、ホワイトリストZと記す。管理部31は、作成したホワイトリストZを記憶部37に格納する。
図7は、ホワイトリストZの構成の一例を示す。ホワイトリストZ(60)のデータ構造はホワイトリストX(40)と同様である。図7は、図5のホワイトリストX(40)の例において、「A−FF03」に不具合が見つかり、「A−FF04」に更新される場合の例である。この例では、「B−TT77」は「A−FF03」の出力値を入力とするものとし、「A−FF03」と「B−TT77」は連携して動作するものとする。この場合、管理部31は「B−TT77」を更新対象ソフトウェアであると判定し、判定結果を例えば出力装置に出力する。その後、判定結果を参照したA社とB社とが協議の結果、B社が今回の変更に対応するため「B−TT77」の更新を了承し、「B−TT77」の更新ソフトウェアである「B−TT78」を作成する。そして、「A−FF03」と「B−TT77」の組み合わせの場合に、「A−FF03」を原因とする不具合が発生する事、それぞれを「A−FF04」と「B−TT78」に同時に更新する事によって、その不具合が解消される事が確認されたとする。すると管理部31は「B−TT78」を、例えばB社から取得し、ホワイトリストYのソフトウェア名41が「B−TT77」のレコードの各フィールドの情報を「B−TT78」の対応する情報に更新してホワイトリストZを作成する。
例えば、上記の例のように、ソフトウェア単独では不具合は発生せず、他のソフトウェアとの組み合わせが所定の条件である場合に不具合が発生する場合も考えられる。さらに、同じ車種でも出荷時期によって、ソフトウェアのバージョンが異なることも考えられる。よって、実際の車両のソフトウェアのバージョンやソフトウェア間の関係性なども考慮して、更新対象ソフトウェアが決定されてもよい。本実施形態では、管理部31は、想定される全ての対象車両の状態毎の更新対象ソフトウェアの集合を記憶部37に格納する。ここで、想定される全ての対象車両の状態とは、例えば、車両で稼動するソフトウェアの種類、バージョン、複数のソフトウェア間の接続関係等を考慮した、想定されるすべての状態を指す。
またホワイトリストZ(60)は、想定される全ての対象車両の状態毎に作成される。ホワイトリストZの更新対象ソフトウェアのレコードのハッシュ値44の値は、想定される各対象車両の各状態を再現した実機もしくはシミュレータにより検証されたものが格納される。
尚、ホワイトリストZ(60)は、車種毎に雛形を作成しておき、更新対象車両の状態情報を取得した後に、車両の状態情報に基いて、実機もしくはシミュレータを用いて正確なホワイトリストZ(60)を作成してもよい。
本実施形態では、ソフトウェアの修正においては、更新ソフトウェアを適用する形とするが、このような更新ソフトウェアには、ソフトウェアの設定値(パラメータ)を変更するプログラムを含んでもよい。
また、ホワイトリストY(50)、Z(60)の更新ソフトウェアのレコードのハッシュ値44の算出の基となった構成情報には、更新ソフトウェアの実機又はシミュレータにおける適用時の戻り値などの、更新ソフトウェア適用時のログの情報が含まれてもよい。
認証部32は、更新サーバ22と車載器23の間の通信のセキュリティを確保するための仕組みを提供する。車載器23と更新サーバ22間の通信のセキュリティの確保については、後ほど説明する。
状態情報取得部33は、所定の車両に対して、車両で稼動するソフトウェアの構成情報をまとめた状態情報の取得要求を送信する。そして状態情報取得部33は、取得対象の車両の車載器23から状態情報を受信する。
図8は、状態情報のデータ構造の一例を示す。状態情報70は、ソフトウェア名71とハッシュ値72を含む。ソフトウェア名71はソフトウェアを一意に識別するための情報である。ハッシュ値72は、構成情報からハッシュ関数を用いて算出されたハッシュ値の情報である。
決定部34は、車載器23から受信した状態情報70に基いて、車両に更新ソフトウェアを適用することが可能か否かを判定する。例えば対象車両の更新対象ソフトウェアが不正に改造されている場合等には、更新処理を行うと新たな障害が発生する可能性がある。このようなケースを防ぐために、更新に先立ち、車両に搭載されているソフトウェアが正常か否かの確認が行われる。更新ソフトウェアの適用が不能であると判定した場合には、決定部34は、車載器23に対して、警告表示を行うように指示する。警告表示の内容は、例えば、リモートでのソフトウェアの更新が不可能である旨や、車両の回収勧告などを含んでもよい。
具体的には例えば、決定部34は、各更新対象のソフトウェアについて、構成情報のハッシュ値と、ホワイトリストX(40)のハッシュ値44とが一致するか否かを判定する。そして決定部34は、更新対象ソフトウェアのすべてのハッシュ値が、構成情報とホワイトリストX(40)間で一致する場合に、対象車両に更新ソフトウェアを適用可能であると判定する。更新対象ソフトウェアのいずれかのハッシュ値が、構成情報とホワイトリストX(40)で一致しない場合には、対象車両に更新ソフトウェアを適用することは不可であると決定部34は判定する。
さらに具体的には決定部34は、各更新対象ソフトウェアに対して、状態情報70からソフトウェア名71が更新対象ソフトウェアのソフトウェア名と一致するレコードを抽出する。そして決定部34は、抽出したレコードのハッシュ値72と、ホワイトリストX(40)においてソフトウェア名41が同一のレコードのハッシュ値44とが同一か否かを判定する。すべての更新対象ソフトウェアで、状態情報70のレコードとホワイトリストX(40)のレコードのハッシュ値が一致することを確認した場合、決定部34は、対象車両は更新ソフトウェアの適用が可能であると判定する。
尚、ホワイトリストX(40)に格納されている情報は、車両の出荷時点のものであるため、車両のソフトウェアが例えば、出荷時点から最新のバージョンに更新されている場合には、ハッシュ値が一致しない可能性がある。そこで例えば、予め管理部31は、車両が正常と判断される、想定されるソフトウェアのすべての組み合わせのホワイトリストを作成しておく。そして決定部34は、車両から取得した構成情報を何れかのホワイトリストと比較したときに、対応するソフトウェアのハッシュ値がすべて一致するものがあれば、更新ソフトウェアの適用が可能と判定してもよい。
選定部35は、状態情報70に基いて更新対象ソフトウェア及びホワイトリストZ(60)を選定し、ソフトウェアの更新指示を車載器23に送信する。すなわち、先ず選定部35は、状態情報70に基いて、想定される全ての対象車両の状態毎に対応付けられて記憶部37に記憶された更新ソフトウェアの集合のうち、対象車両の状態に対応する更新ソフトウェアの集合を特定する。次に、選定部35は、状態情報70に基いて、想定される全ての対象車両の状態毎に作成されているホワイトリストZ(60)から、対象車両の状態に対応するホワイトリストZ(60)を特定する。以下の説明においては、「更新対象ソフトウェア」、「ホワイトリストZ(60)」と記す場合には、それぞれ、更新対象車両の状態情報70に応じて選定された、「更新対象ソフトウェア」、「ホワイトリストZ(60)」を指すものとする。
図9は、更新指示80のデータ構造の一例を示す。更新指示80は、対象ソフトウェア名81、ECU名82、及び更新ソフトウェア実体83のデータ項目を含む。対象ソフトウェア名81は、更新対象ソフトウェアを一意に識別するための情報である。ECU名82は、対象ソフトウェアが稼動しているECU24を一意に識別するための情報である。更新ソフトウェア実体83は、更新ソフトウェアの実体である。選定部35は、更新対象ソフトウェアの集合に含まれるすべてのソフトウェアに対応するレコードを作成し、更新指示に含ませる。
図9の例において更新指示80には、対象ソフトウェア名81、ECU名82、更新ソフトウェア実体83がそれぞれ、「A−FF03」、「ECU201」、「A−FF04」の実体のレコードが格納されている。また、更新指示80には、対象ソフトウェア名81、ECU名82、更新ソフトウェア実体83がそれぞれ、「B−TT77」、「ECU202」、「B−TT78」の実体のレコードが格納されている。
検証部36は、更新ソフトウェアが正しくインストール(適用)されたか否かの検証を行う。具体的には検証部36は、更新ソフトウェアのインストール後に車載器23から送られてくる状態情報70と、ホワイトリストZ(60)の情報とを用いて検証を行う。更新ソフトウェアの適用後に車載器23から送られてくる状態情報は図8の状態情報70の形式と同様である。
検証部36は、受信した状態情報70に含まれる更新対象ソフトウェアのハッシュ値72が、ホワイトリストZ(60)の対応するソフトウェアのハッシュ値44と一致するか否かを判定する。そして検証部36は、更新対象ソフトウェアのすべてのハッシュ値が、状態情報70のレコードとホワイトリストZ(60)のレコード間で一致する場合に、対象車両の更新ソフトウェアの適用が正常に行われたと判定する。更新対象ソフトウェアのいずれかのハッシュ値が、状態情報70のレコードとホワイトリストZ(60)のレコードとで一致しない場合には、対象車両の更新ソフトウェアの適用が失敗したと検証部36は判定する。なお、失敗したと判定された場合でも、予め定められた条件を満たしている場合には、正常に行われたと判定しなおすことも考えられる。条件として例えば、更新対象ソフトウェアに、自動車の走行に影響する第1種のソフトウェアと、走行に直接には影響しない第二種のソフトウェアとがある場合、第1種のソフトウェアについては全て、ハッシュ値が、状態情報70のレコードとホワイトリストZ(60)のレコード間で一致することという条件が考えられる。
検証部36は、更新ソフトウェアのインストールの成否の判定結果に応じて、車載器に最終指示を送信する。図10は、最終指示のデータ構造の一例を示す。図10において最終指示85は、対象ソフトウェア名86、ECU名87、及び指示内容88のデータ項目を含む。対象ソフトウェア名86は、更新対象ソフトウェアを一意に識別するための情報である。ECU名87は、対象ソフトウェアが稼動しているECU24を一意に識別するための情報である。指示内容88は、対象ソフトウェアに対する指示内容である。検証部36は、ソフトウェアの更新が成功したと判定した場合、指示内容88に更新の有効化を設定する。一方検証部36は、更新が失敗したと判定した場合、指示内容88に更新処理のロールバックを設定する。更新が失敗したと判定した場合には、検証部36はロールバックの指示とともに再度更新ソフトウェアを車載器23に送付して再度更新指示80を送信してもよい。尚、検証部36は、更新対象ソフトウェアの集合に含まれるすべてのソフトウェアに対応するレコードを作成し、最終指示85に含ませる。
記憶部37は、ホワイトリストX(40)、ホワイトリストY(50)、ホワイトリストZ(60)、及び更新対象ソフトウェアの集合を記憶する。また記憶部37は、更新ソフトウェアのインストール作業ログを記憶する。
履歴管理部38は、車載器23からソフトウェアの更新処理の作業ログを受信し、受信した作業ログを記憶部37に記録する。
次に、車載器23と更新サーバ22の通信のセキュリティの確保について説明する。
本実施形態では、更新サーバ22と車載器23との通信のセキュリティを確保するために、暗号化およびデジタル署名が用いられる。デジタル署名のための公開鍵と秘密鍵とのペアは、更新サーバと車載器との組み合わせ毎に生成され、車載器の鍵ペアは、各車両の出荷時点に生成される。暗号化の対象となるデータは、相手の公開鍵により暗号化され、自らの秘密鍵で復号化される。デジタル署名は、更新サーバおよび車載器のそれぞれが保持する自らの秘密鍵により署名されることで行われる。よって、公開鍵と秘密鍵のペアは複数存在し、第一のペア(更新サーバの鍵ペア)については、更新サーバ22が更新サーバ22の秘密鍵を、車載器23が更新サーバ22の公開鍵を保持し、第二のペア(車載器の鍵ペア)は車載器23が車載器23の秘密鍵を、更新サーバ22が車載器23の公開鍵を保持することとなる。
車載器の鍵ペアは、各車載器23に含まれるTPMにより作成されたものが用いられてもよい。
更新サーバ22の認証部32は、更新サーバ22の秘密鍵を保持する。また、更新サーバ22は、車載器23の公開鍵、及び、送信データとデジタル署名の比較で用いるハッシュ関数を、車載器毎に管理する。図11は、認証部32が車載器23の公開鍵とハッシュ関数を管理するための鍵管理情報90の一例を示す。鍵管理情報90は、車載器識別情報91、公開鍵92、及びハッシュ関数93のデータ項目を含む。車載器識別情報91は車載器23を一意に識別するための識別情報である。公開鍵92は、車載器識別情報91で識別される車載器23の公開鍵92の情報である。公開鍵92は車載器識別情報91の車載器23の秘密鍵と対応する。ハッシュ関数93は、送信データとデジタル署名の比較のために用いられるハッシュ関数93である。このハッシュ関数93は、車載器識別情報91の車載器23にも同じハッシュ関数が記憶される。鍵管理情報90には、各車両の出荷時点に登録される。
次に、認証部32による車載器23の認証及び車載器23からのデータの機密性の確認方法の一例として、デジタル署名を用いた方法について説明する。尚、認証及び機密性の確認の方法は以下で説明するデジタル署名を用いたものに限定されず、種々の方法が用いられてもよい。ここでは、認証部32と車載器23の間で送受信されるデータは暗号化される一例を説明する。
認証に当たって先ず車載器23は、送信対象データのハッシュ値を、車載器23に記憶されたハッシュ関数を用いて算出する。次に車載器23は、算出したハッシュ値を自身の秘密鍵を用いて暗号化し、デジタル署名を作成する。そして車載器23は、作成したデジタル署名と送信対象データとを、サーバ22の公開鍵を用いて暗号化する。そして車載器23は、暗号化した、送信対象データとデジタル署名とを、更新サーバ22に送信する。
車載器23から、暗号化された、送信対象データとデジタル署名とを受信すると、認証部32は、サーバ22の秘密鍵を用いて受信した情報を復号する。次に認証部32は、車載器23の公開鍵92を鍵管理情報90から取得して、その公開鍵92で、デジタル署名を復号してハッシュ値を取得する。次に認証部32は、車載器23に対応するハッシュ関数93を鍵管理情報90から取得し、取得したハッシュ関数93を用いて、送信対象データのハッシュ値を算出する。そして認証部32は、算出したハッシュ値と、デジタル署名を復号して得たハッシュ値とを比較し、比較の結果が一致した場合に、車載器23が正当な車載器23であると判定し、車載器23から受信したデータは改竄されていないと判定する。
尚、認証部32と車載器23の間で送受信されるデータの暗号化については、共通鍵暗号と公開鍵暗号を組み合わせたハイブリッド暗号方式を用いてもよいし、種々の方法が用いられてもよい。
このように更新サーバ22の認証部32は、車載器23の認証と車載器23から受信した情報が改竄されていないことを確認する。
次に、車載器23の構成について説明する。図12は、本実施形態に係る車載器の構成の一例を示す。
車載器23は、認証情報格納部201、サーバ認証部202、構成情報収集部203、更新ソフトウェア適用部204、及び信頼性チェック部205を含む。
認証情報格納部201は、更新サーバとの通信のセキュリティを確保するために使用される、更新サーバ22の公開鍵、車載器23の秘密鍵、及びハッシュ関数を格納する。更新サーバ22の公開鍵、車載器23の秘密鍵、及びハッシュ関数は車両の出荷前に格納される。尚、車載器23の秘密鍵とハッシュ関数は、鍵管理情報90の公開鍵92とハッシュ関数93に対応する。
サーバ認証部202は、更新サーバ22と車載器23の間の通信セキュリティを確保する。サーバ認証部202による、更新サーバ22の認証、及び更新サーバ22から受信した情報が改竄されていないことの判定も、上記の認証部32による車載器23の認証と同様にして行われる。すなわち、認証に当たって、先ず更新サーバ22の認証部32は、送信対象データのハッシュ値を、ハッシュ関数を用いて算出する。次に認証部32は、算出したハッシュ値を、サーバ22の秘密鍵を用いて暗号化し、デジタル署名を作成する。そしてサーバ22は、作成したデジタル署名と送信対象データとを、車載器23の公開鍵を用いて暗号化する。そしてサーバ22は、暗号化した、送信対象データとデジタル署名とを、車載器23に送信する。
更新サーバ22から、暗号化された、送信対象データとデジタル署名とを受信すると、サーバ認証部202は、車載器23の秘密鍵を用いて受信した情報を復号する。次にサーバ認証部202は、サーバ22の公開鍵を用いてデジタル署名を復号しハッシュ値を取得する。次にサーバ認証部202は、認証情報格納部201に格納されたハッシュ関数を用いて、送信対象データのハッシュ値を算出する。そしてサーバ認証部202は、算出したハッシュ値と、デジタル署名を復号して得たハッシュ値とを比較し、比較の結果が一致した場合に、更新サーバ22が正当であると判定し、更新サーバ22から受信した送信対象データは改竄されていないと判定する。
構成情報収集部203は、車両の各ECU24のソフトウェアの構成情報を取得し、取得した構成情報に基づいて状態情報70を作成し、更新サーバ22に送信する。すなわち構成情報収集部203は、先ず各ECU24に対してソフトウェアの構成情報の取得要求を送信する。次にこの取得要求の応答として、構成情報収集部203は各ECU24からソフトウェアの構成情報を取得する。次に、構成情報収集部203は取得した構成情報から状態情報70を作成する。そして構成情報収集部203は作成した状態情報70を更新サーバ22に送信する。
状態情報70の作成については、具体的には構成情報収集部203は、各ECU24から受信したソフトウェアに対してレコードを作成する。そして構成情報収集部203は、ソフトウェア名71に収集した構成情報に対応するソフトウェア名を格納し、ハッシュ値72に、そのソフトウェアに対応付けられたハッシュ値取得方法45を用いて算出した、ソフトウェアのハッシュ値を格納する。
構成情報の収集は、更新サーバ22からの構成情報取得要求を受信したとき、及び、ソフトウェアの適用処理が完了した直後に行われる。
更新ソフトウェア適用部204は、更新サーバ22からソフトウェアの更新指示80を受信し、更新指示80で指示された各ECU24に対してソフトウェアの更新を指示する。具体的には、更新ソフトウェア適用部204は、受信した更新指示80の各レコードのECU名82のECU24に対して、そのレコードの対象ソフトウェア名81と更新ソフトウェア実体83とを対応付けて送信する。
さらに更新ソフトウェア適用部204は、更新サーバ22から最終指示85を受信し、最終指示85で指示された各ECU24に対して指示内容を送信する。具体的には、更新ソフトウェア適用部204は、受信した最終指示85の各レコードのECU名87のECU24に対して、そのレコードの対象ソフトウェア名86と指示内容88とを対応付けて送信する。また、更新ソフトウェア適用部204は、最終指示85の指示内容88がロールバックであった場合には、ユーザに対して警告表示を行ってもよい。警告表示の内容には、例えば、ソフトウェアの更新が失敗した旨や、車両の回収勧告などが含まれてもよい。
信頼性チェック部205は、車載器23で稼動するアプリケーションの真正性をチェックする。具体的には、信頼性チェック部205は、予め所定の記憶領域に、車載器23で起動する各アプリケーションの真正性を確認するためのハッシュ値を記憶しておく。そして、アプリケーションの起動時にアプリケーションのハッシュ値を取得して予め記憶しておいた真正性を確認するためのハッシュ値と比較し、ハッシュ値が一致した場合、アプリケーションは真正であると判定する。信頼性チェック部205による真正性のチェックの対象となるアプリケーションには、サーバ認証部202、構成情報収集部203、更新ソフトウェア適用部204の機能を提供するものが含まれる。また、信頼性チェック部205は、構成情報収集部203と通信を行うECU24のアプリケーションについても同様に、ハッシュ値の比較による真正性のチェックを行う。尚、信頼性チェック部205の機能は、TPMにより提供されてもよい。TPMは、ハードウェア耐タンパー性をもつセキュリティチップであり、信頼性基点として、TPMがハッシュ値のチェックを行う各アプリケーションの信頼性の確保に用いることができる。
信頼性チェック部205が、構成情報収集部203、及び、構成情報収集部203と通信を行うECU24のアプリケーションの信頼性をチェックするため、構成情報収集部203が更新サーバ22に送信する状態情報70の信頼性を確保することができる。また、状態情報70は、デジタル署名により機密性が確保される。よって、更新サーバ22が車載器23から受信する状態情報70のセキュリティが確保される。
次に、ECU24の構成について説明する。図13は、本実施形態に係るECU24の構成の一例を示す。
ECU24は、構成情報取得部301、及びソフトウェア更新部302を含む。
構成情報取得部301は、当該ECU24で稼動するソフトウェアの構成情報を取得し、取得した構成情報を車載器23に送信する。構成情報の取得は、車載器23からの構成情報取得要求を受信したとき、及び、ソフトウェアの適用処理が完了した直後に行われる。構成情報は、ソフトウェアを一意に識別するためのソフトウェア名の情報と、ソフトウェア名に対応付けられた構成情報とが含まれる。
ソフトウェア更新部302は、車載器23からソフトウェアの更新指示を受信する。するとソフトウェア更新部302は、受信した更新ソフトウェアをインストールする。すなわち、ソフトウェア更新部302は、更新指示に含まれる対象ソフトウェア名のソフトウェアに、更新ソフトウェアを適用する。ただし、更新ソフトウェアの適用処理では、更新の有効化(例えば、更新したソフトウェアでの起動)は行なわずに、車載器23から有効化の指示を受信した後に更新したソフトウェアの有効化を行うものとする。車載器23からロールバックの指示を受けた場合にはソフトウェア更新部302は、適用した情報を破棄して、ソフトウェアを適用処理の直前の状態に戻す。
さらにソフトウェア更新部302は、作業ログを車載器23に送信する。ここで、作業ログは、ソフトウェア更新部302によるインストール処理と、その後の有効化処理またはロールバック処理の作業ログのデータである。
尚、ロールバック処理は、更新ソフトウェアのインストール処理の開始直前のソフトウェアの状態を所定の記憶領域にバックアップ(またはスナップショットを取得)することにより実現してもよい。この場合、ソフトウェア更新部302は、車載器23からソフトウェアの更新指示を受信すると、先ず、更新対象ソフトウェアのバックアップを取得する。バックアップの取得が完了するとソフトウェア更新部302は更新ソフトウェアをインストールする。その後車載器23からロールバックの指示を受信すると、ソフトウェア更新部302は、バックアップしたデータを戻すことにより、インストール処理開始直前の状態に更新対象ソフトウェアを復元する。
また、ソフトウェアの有効化は、更新ソフトウェアのインストール処理を実施したソフトウェアを再起動することにより実現してもよい。この場合、ソフトウェア更新部302は、更新ソフトウェアのインストール処理においては、インストール処理が完了した状態でのソフトウェアの起動は行わずにおいておく。その後車載器23から有効化の指示を受信すると、ソフトウェア更新部302は、インストール処理が完了した状態でのソフトウェアを起動することにより更新対象ソフトウェアの有効化を行う。
尚、本実施形態においては、車載器23とECU24間の通信のセキュリティは確保されているものとする。車載器23とECU24間のセキュリティが確保されていない場合には、車載器23と更新サーバ22の通信と同様に、通信データに署名を付与することによって、車載器23とECU24間の通信のセキュリティを確保してもよい。
次に更新サーバ22の動作フローについて説明する。図14は、更新サーバ22の処理内容を図解したフローチャートである。
図14のフローにおいて、先ず状態情報取得部33は対象車両の状態情報70の取得要求を車載器23に送信し、取得要求の応答として、状態情報70を受信する(S401)。状態情報70を受信すると認証部32は、状態情報70の送信元である車載器23の認証を行い、状態情報70の機密性が確保されていることを確認する。
次に決定部34は、状態情報70に基いて、対象車両に更新ソフトウェアを適用することが可能か否かを判定する(S402)。対象車両に更新ソフトウェアが適用可能でないと判定した場合(S402でNo)、決定部34は、対象車両の車載器23に警告表示を行うように指示する(S403)。そして処理は終了する。
一方S402において、決定部34により対象車両に更新ソフトウェアが適用可能であると判定された場合(S402でYes)、管理部31は、状態情報70に基いてホワイトリストZ(60)を算出する(S404)。
次に、決定部34は対象車両に更新指示80を送信して、対象車両のECU24のソフトウェアの更新指示80を送信する(S405)。更新指示80の送信に際しては、更新ソフトウェアの機密性を確保するために署名が付与される。
次に、検証部36は、対象車両から更新後の状態情報70を受信する(S406)。状態情報70を受信すると、状態情報70の送信元である車載器23の認証を行い、状態情報70の機密性が確保されていることを確認する。
次に、検証部36は、更新後の状態情報70とホワイトリストZ(60)とに基づいて、対象車両のソフトウェアの更新が成功したか否かを判定する(S407)。ソフトウェアの更新に失敗したと判定した場合(S407でNo)、検証部36は、最終指示としてロールバックの指示を車載器23に送信する(S408)。そして処理はS410に遷移する。
一方、ソフトウェアの更新に成功したと判定した場合(S407でYes)、検証部36は、最終指示としてソフトウェアの更新を有効にするように車載器23に指示を送信する(S409)。
そして、履歴管理部38は、車載器23から作業ログを受信し、受信した作業ログを所定の記憶領域に保存する(S410)。そして、処理は終了する。
次に車載器23の動作フローについて説明する。図15は、車載器の処理内容を図解したフローチャートである。
図15のフローにおいて、先ず構成情報収集部203は、更新サーバ22から状態情報70の取得要求を受信する(S501)。状態情報70の取得要求を受信すると、サーバ認証部202は取得要求の送信元である更新サーバ22の認証を行う。
次に、構成情報収集部203は、車両に搭載されている全てのECU24から構成情報を収集し、収集した構成情報に基づいて状態情報70を作成して更新サーバ22に送信する(S502)。状態情報70の送信に際しては、サーバ認証部202は送信元の認証及び状態情報70の機密性確保のために署名を付与して、状態情報70を送信する。
次に、更新ソフトウェア適用部204は、更新ソフトウェアを含むソフトウェアの更新指示80を更新サーバ22から受信する(S503)。ソフトウェアの更新指示80を受信すると、サーバ認証部202は更新指示の送信元である更新サーバ22の認証を行い、また、受信した更新指示80の機密性が確保されていることを確認する。
次に、更新ソフトウェア適用部204は、更新対象ソフトウェアが稼動している各ECU24に対して、更新ソフトウェアとともに更新の指示を送信する(S504)。
次に、構成情報収集部203は、S504で更新を指示したECU24から、更新後の構成情報を受信して、更新後の構成情報に基いて状態情報70を作成し更新サーバ22に送信する(S505)。尚、S505の情報収集では、すべてのECU24から構成情報を取得してもよい。
次に、更新ソフトウェア適用部204は、更新サーバ22から最終指示85を受信する(S506)。最終指示85を受信すると、サーバ認証部202は最終指示85の送信元である更新サーバ22の認証を行い、また、受信した最終指示の機密性が確保されていることを確認する。
次に、更新ソフトウェア適用部204は、最終指示85で指示された各ECU24に対して、最終指示を送信する(S507)。
次に、更新ソフトウェア適用部204は、作業ログを各ECU24から受信し、更新サーバ22に送信する。また、更新ソフトウェア適用部204は、作業ログに含まれる最終指示の処理結果を、例えば、表示装置に出力してもよい(S508)。そして、処理は終了する。
次にECU24の動作フローについて説明する。図16は、ECU24の処理内容を図解したフローチャートである。
図16のフローにおいて、先ず構成情報取得部301は、車載器23から構成情報取得要求を受信する(S601)。
次に、構成情報取得部301は、ECU24で稼動する全てのソフトウェアの構成情報を収集し、収集した構成情報を車載器23に送信する(S602)。
次に、ソフトウェア更新部302は、車載器23からソフトウェアの更新指示を受信する(S603)。すると、ソフトウェア更新部302は更新ソフトウェアのインストール処理を行う(S604)。インストール処理が完了すると、構成情報取得部301はインストール処理が完了したソフトウェアの構成情報を収集して車載器23に送信する(S605)。
次に、ソフトウェア更新部302は車載器23から最終指示を受信する(S606)。
ソフトウェア更新部302は最終指示の内容を確認し(S607)、指示内容がロールバックである場合は(S607でロールバック)、ソフトウェアのロールバックを行う(S608)。そして処理はS610に遷移する。
一方、指示内容が更新の有効化の場合は(S607で有効化)、ソフトウェア更新部302はソフトウェアの有効化を行う(S609)。そして、ソフトウェア更新部302は、作業ログを車載器に送信する(S610)。そして、処理は終了する。
次に、更新サーバ22の構成について説明する。図17は、更新サーバ22のハードウェア構成の一例を示す。
更新サーバ22は、CPU(Central Processing Unit)401、メモリ402、記憶装置403、読取装置404、通信インターフェース405、及び入出力装置406を含む。CPU401、メモリ402、記憶装置403、読取装置404、通信インターフェース405、及び入出力装置406はバスを介して接続される。
CPU401は、メモリ402を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、管理部31、認証部32、状態情報取得部33、決定部34、選定部35、検証部36、及び履歴管理部38の一部または全部の機能を提供する。
メモリ402は、例えば半導体メモリであり、RAM(Random Access Memory)領域およびROM(Read Only Memory)領域を含んで構成される。記憶装置403は、例えばハードディスクであり、記憶部37の機能の一部または全てを提供する。なお、記憶装置403は、フラッシュメモリ等の半導体メモリであってもよい。また、記憶装置403は、外部記録装置であってもよい。
読取装置404は、CPU401の指示に従って着脱可能記憶媒体450にアクセスする。着脱可能記憶媒体450は、たとえば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。尚、読取装置404は更新サーバ22に含まれなくてもよい。
通信インターフェース405は、車載器23に接続し、CPU401の指示に従ってネットワークを介して、車載器23との間でデータを送受信する。また、通信インターフェース405は、他の情報処理装置と接続してもよい。例えば管理部31により更新ソフトウェアが通信インターフェース405を介して取得される。
入出力装置406は、例えば、ユーザからの指示を受け付けるデバイス、情報を表示する表示装置などである。尚、入出力装置406は更新サーバ22に含まれなくてもよい。
実施形態のプログラムは、例えば、下記の形態で更新ンサーバ22に提供される。
(1)記憶装置403に予めインストールされている。
(2)着脱可能記憶媒体450により提供される。
(3)プログラムサーバ(図示せず)から通信インターフェース405を介して提供される。
さらに、実施形態の更新サーバ22の一部は、ハードウェアで実現してもよい。或いは、実施形態の更新サーバ22は、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
次に、車載器23の構成について説明する。図18は、車載器のハードウェア構成の一例を示す。
車載器23は、CPU501、メモリ502、記憶装置503、読取装置504、通信インターフェース505、出力装置506、及びTPM507を含む。CPU501、メモリ502、記憶装置503、読取装置504、通信インターフェース505、出力装置506、及びTPM507はバス等を介して接続される。
CPU501は、メモリ502を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、サーバ認証部202、構成情報収集部203、更新ソフトウェア適用部204の一部または全部の機能を提供する。
メモリ502は、例えば半導体メモリであり、RAM領域およびROM領域を含んで構成される。記憶装置503は、例えばハードディスクであり、認証情報格納部201の機能の一部または全部の機能を提供し、また、実施形態のプログラムを格納する。なお、記憶装置503は、フラッシュメモリ等の半導体メモリであってもよい。また、記憶装置503は、外部記録装置であってもよい。
読取装置504は、CPU501の指示に従って着脱可能記憶媒体550にアクセスする。着脱可能記憶媒体550は、たとえば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。尚、読取装置504は車載器23に含まれなくてもよい。
通信インターフェース505は、更新サーバ22に接続し、CPU501の指示に従ってネットワークを介してデータを送受信する。また、通信インターフェース505は、ECU24に接続し、CPU501の指示に従ってネットワークを介してデータを送受信する。
出力装置506は、例えば、情報を表示する表示装置などである。ユーザに対する警告や更新ソフトウェアの更新結果は、出力装置506に出力される。
TPM507は、CPU501で稼動するプログラムの信頼性をチェックすることが可能なセキュリティチップであり、信頼性チェック部205の機能の一部または全てを提供する。信頼性チェック部205がアプリケーションの真正性のチェックにおいて使用するハッシュ値は、TPM507内の所定の記憶領域に格納される。
実施形態のプログラムは、例えば、下記の形態で車載器23に提供される。
(1)記憶装置503に予めインストールされている。
(2)着脱可能記憶媒体550により提供される。
(3)プログラムサーバ(図示せず)または更新サーバ22から通信インターフェース505を介して提供される。
さらに、実施形態の車載器23の一部は、ハードウェアで実現してもよい。或いは、実施形態の車載器23は、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
次に、ECU24のソフトウェアの更新機能の実現方法を説明する。図19及び図20は、ECUのソフトウェアの更新機能の実現方法の一例を示す。
図19におけるECU24は、ブートローダ601が構成情報取得部301とソフトウェア更新部302の機能を実現する。この例の場合、ソフトウェアの更新作業は、更新対象ソフトウェアが起動する前に行われる。すなわち、更新対象ソフトウェアに対する更新ソフトウェアのインストール処理が行われた後に、更新対象ソフトウェアが起動されて更新が有効になる。よって、図16において、S604で更新ソフトウェアのインストール処理が行われてからS608までは、更新対象ソフトウェアは起動されず、S609において更新を有効化されてから更新ソフトウェアが起動される構成としてもよい。
一方、図20におけるECU24では、仮想マシンマネージャ602が稼動しており、構成情報取得部301とソフトウェア更新部302の機能は仮想マシンマネージャ上の仮想マシンにより実現する。また、更新対象ソフトウェアも仮想マシンで動作させることにより、動作中の更新対象ソフトウェアと同じ構成のインストール用のソフトウェアを動作させてもよい。そして、図16において、S604の更新ソフトウェアのインストール処理は更新用のソフトウェアに対して行い、S609の更新の有効化において、動作中の仮想マシンからインストール用の仮想マシンに切り替える構成としてもよい。この場合、S608のロールバック処理を行う場合は、インストール用の仮想マシンを破棄すればよい。
(変形例)
自動車21の各ECU24にTPM507を搭載し、更新サーバ22とECU24の間の通信において、車載器23を介さない構成とすることも可能である。
図21は、情報処理システムの変形例の構成の一例を示す。図21で示される情報処理システム29の第1の実施形態との違いは、各ECU24が車載器23を介さずに更新サーバ22と通信を行う点である。第1の実施形態の車載器23の各機能は、第2の実施形態では各ECU24に組み込まれる。ただし、更新サーバ22とECU24が直接通信するため、構成情報収集部203の機能については省略可能である。なお、各ECU24A、24B、24Cにはそれぞれ、TPM507A、507B、507Cが含まれる。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、前記自動車に搭載された該制御部から、該制御プログラムの状態に関する情報である第一の情報を受信し、
受信した、前記第一の情報に基づいて、前記制御プログラムについての修正プログラムを前記制御部に適用した場合の該制御プログラムの状態である第二の情報を算出し、
前記制御部へ前記修正プログラムを送信し、
送信した前記修正プログラムを前記制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、前記制御部から受信し、
受信した前記第三の情報と、算出した前記第二の情報とを比較し、
該比較した結果に基づいて、前記制御部に対する前記修正プログラムの適用処理が成功したか失敗したかを判断する
ことを特徴とする、コンピュータにより実行される修正プログラム確認方法。
(付記2)
前記第一の情報及び前記第三の情報は、真正性が確認されているソフトウェアにより作成された情報である
ことを特徴とする、付記1に記載のコンピュータにより実行される修正プログラム確認方法。
(付記3)
前記第一の情報及び前記第三の情報は、TPMに搭載されている機能により真正性が確認されているソフトウェアにより作成された情報である
ことを特徴とする、付記2に記載のコンピュータにより実行される修正プログラム確認方法。
(付記4)
さらに、前記制御部に対する前記修正プログラムの適用処理が成功したと判断した場合、前記修正プログラムが適用された前記制御プログラムを有効化させる指示を前記制御部へ送信する
ことを特徴とする、付記1〜3のうちいずれか1項に記載のコンピュータにより実行される修正プログラム確認方法。
(付記5)
さらに、前記制御部に対する前記修正プログラムの適用処理が失敗したと判断した場合、前記修正プログラムの適用処理をロールバックさせる指示を前記制御部へ送信する
ことを特徴とする、付記1〜4のうちいずれか1項に記載のコンピュータにより実行される修正プログラム確認方法。
(付記6)
さらに、前記受信した第一の情報に基いて、前記制御プログラムの状態が正常か否かを判定し、
前記送信する処理は、前記制御プログラムの状態が正常であると判定された場合に、前記制御部に前記修正プログラムを送信することを含む
ことを特徴とする、請求項1〜5のうちいずれか1項に記載のコンピュータにより実行される修正プログラム確認方法。
(付記7)
コンピュータに、
自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、前記自動車に搭載された該制御部から、該制御プログラムの状態に関する情報である第一の情報を受信し、
受信した、前記第一の情報に基づいて、前記制御プログラムについての修正プログラムを前記制御部に適用した場合の該制御プログラムの状態である第二の情報を算出し、
前記制御部へ前記修正プログラムを送信し、
送信した前記修正プログラムを前記制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、前記制御部から受信し、
受信した前記第三の情報と、算出した前記第二の情報とを比較し、
該比較した結果に基づいて、前記制御部に対する前記修正プログラムの適用処理が成功したか失敗したかを判断する
処理を実行させることを特徴とする修正プログラム確認プログラム。
(付記8)
前記第一の情報及び前記第三の情報は、真正性が確認されているソフトウェアにより作成された情報である
ことを特徴とする付記6に記載の修正プログラム確認プログラム。
(付記9)
前記第一の情報及び前記第三の情報は、TPMに搭載されている機能により真正性が確認されているソフトウェアにより作成された情報である
ことを特徴とする付記7に記載の修正プログラム確認プログラム。
(付記10)
さらに、
前記制御部に対する前記修正プログラムの適用処理が成功したと判断した場合、前記修正プログラムが適用された前記制御プログラムを有効化させる指示を前記制御部へ送信する
処理を実行させることを特徴とする付記6〜8のうちいずれか1項に記載の修正プログラム確認プログラム。
(付記11)
自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、前記自動車に搭載された該制御部から、該制御プログラムの状態に関する情報である第一の情報を受信する第1の受信部と、
受信された、前記第一の情報に基づいて、前記制御プログラムについての修正プログラムを前記制御部に適用した場合の該制御プログラムの状態である第二の情報を算出する算出部と、
前記制御部へ前記修正プログラムを送信する送信部と、
送信された前記修正プログラムを前記制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、前記制御部から受信する第2の受信部と、
受信された前記第三の情報と、算出された前記第二の情報とを比較する比較部と、
該比較された結果に基づいて、前記制御部に対する前記修正プログラムの適用処理が成功したか失敗したかを判断する判断部と、
を備えることを特徴とする情報処理装置。
(付記12)
前記第一の情報及び前記第三の情報は、真正性が確認されているソフトウェアにより作成された情報である
ことを特徴とする付記11に記載の情報処理装置。
(付記13)
前記第一の情報及び前記第三の情報は、TPMに搭載されている機能により真正性が確認されているソフトウェアにより作成された情報である
ことを特徴とする付記12に記載の情報処理装置。
(付記14)
前記情報処理装置は、さらに、
前記制御部に対する前記修正プログラムの適用処理が成功したと判断された場合、前記修正プログラムが適用された前記制御プログラムを有効化させる指示を送信する最終指示部
を備えることを特徴とする付記11〜13のうちいずれか1項に記載の情報処理装置。
1 第1の受信部
2 算出部
3 送信部
4 第2の受信部
5 比較部
6 判断部
7 最終指示部
8 状態判定部
10 情報処理装置

Claims (8)

  1. 自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、前記自動車に搭載された該制御部から、該制御プログラムの状態に関する情報である第一の情報を受信し、
    受信した、前記第一の情報に基づいて、前記制御プログラムについての修正プログラムを前記制御部に適用した場合の該制御プログラムの状態である第二の情報を算出し、
    前記制御部へ前記修正プログラムを送信し、
    送信した前記修正プログラムを前記制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、前記制御部から受信し、
    受信した前記第三の情報と、算出した前記第二の情報とを比較し、
    該比較した結果に基づいて、前記制御部に対する前記修正プログラムの適用処理が成功したか失敗したかを判断する
    ことを特徴とする、コンピュータにより実行される修正プログラム確認方法。
  2. 前記第一の情報及び前記第三の情報は、真正性が確認されているソフトウェアにより作成された情報である
    ことを特徴とする、請求項1に記載のコンピュータにより実行される修正プログラム確認方法。
  3. 前記第一の情報及び前記第三の情報は、TPM(Trusted Platform Module)に搭載されている機能により真正性が確認されているソフトウェアにより作成された情報である
    ことを特徴とする、請求項2に記載のコンピュータにより実行される修正プログラム確認方法。
  4. さらに、前記制御部に対する前記修正プログラムの適用処理が成功したと判断した場合、前記修正プログラムが適用された前記制御プログラムを有効化させる指示を前記制御部へ送信する
    ことを特徴とする、請求項1〜3のうちいずれか1項に記載のコンピュータにより実行される修正プログラム確認方法。
  5. さらに、前記制御部に対する前記修正プログラムの適用処理が失敗したと判断した場合、前記修正プログラムの適用処理をロールバックさせる指示を前記制御部へ送信する
    ことを特徴とする、請求項1〜4のうちいずれか1項に記載のコンピュータにより実行される修正プログラム確認方法。
  6. さらに、前記受信した第一の情報に基いて、前記制御プログラムの状態が正常か否かを判定し、
    前記送信する処理は、前記制御プログラムの状態が正常と判定した場合に、前記制御部に前記修正プログラムを送信することを含む
    ことを特徴とする、請求項1〜5のうちいずれか1項に記載のコンピュータにより実行される修正プログラム確認方法。
  7. コンピュータに、
    自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、前記自動車に搭載された該制御部から、該制御プログラムの状態に関する情報である第一の情報を受信し、
    受信した、前記第一の情報に基づいて、前記制御プログラムについての修正プログラムを前記制御部に適用した場合の該制御プログラムの状態である第二の情報を算出し、
    前記制御部へ前記修正プログラムを送信し、
    送信した前記修正プログラムを前記制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、前記制御部から受信し、
    受信した前記第三の情報と、算出した前記第二の情報とを比較し、
    該比較した結果に基づいて、前記制御部に対する前記修正プログラムの適用処理が成功したか失敗したかを判断する
    処理を実行させることを特徴とする修正プログラム確認プログラム。
  8. 自動車に搭載された機器を制御する制御プログラムを実行する制御部であって、前記自動車に搭載された該制御部から、該制御プログラムの状態に関する情報である第一の情報を受信する第1の受信部と、
    受信された、前記第一の情報に基づいて、前記制御プログラムについての修正プログラムを前記制御部に適用した場合の該制御プログラムの状態である第二の情報を算出する算出部と、
    前記制御部へ前記修正プログラムを送信する送信部と、
    送信された前記修正プログラムを前記制御部に適用した後の制御プログラムの状態に関する情報である第三の情報を、前記制御部から受信する第2の受信部と、
    受信された前記第三の情報と、算出された前記第二の情報とを比較する比較部と、
    該比較された結果に基づいて、前記制御部に対する前記修正プログラムの適用処理が成功したか失敗したかを判断する判断部と、
    を備えることを特徴とする情報処理装置。
JP2013217473A 2013-10-18 2013-10-18 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置 Expired - Fee Related JP5864510B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013217473A JP5864510B2 (ja) 2013-10-18 2013-10-18 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
EP14185730.0A EP2863303B1 (en) 2013-10-18 2014-09-22 Method for confirming correction program, confirming program for confirming correction program, and information processing apparatus
US14/495,195 US10157050B2 (en) 2013-10-18 2014-09-24 Method for confirming correction program and information processing apparatus
CN201410525010.7A CN104572320B (zh) 2013-10-18 2014-10-08 用于确认校正程序的方法以及信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013217473A JP5864510B2 (ja) 2013-10-18 2013-10-18 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2015079440A JP2015079440A (ja) 2015-04-23
JP5864510B2 true JP5864510B2 (ja) 2016-02-17

Family

ID=51687781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013217473A Expired - Fee Related JP5864510B2 (ja) 2013-10-18 2013-10-18 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置

Country Status (4)

Country Link
US (1) US10157050B2 (ja)
EP (1) EP2863303B1 (ja)
JP (1) JP5864510B2 (ja)
CN (1) CN104572320B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268557B2 (en) 2016-09-13 2019-04-23 Kabushiki Kaisha Toshiba Network monitoring device, network system, and computer program product
EP3493054A1 (en) 2017-11-30 2019-06-05 Hitachi, Ltd. In-vehicle software distribution system, in-vehicle software distribution server, and in-vehicle software distribution method

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140058532A1 (en) * 2012-08-23 2014-02-27 GM Global Technology Operations LLC Method for partial flashing of ecus
DE102014116172A1 (de) * 2014-11-06 2016-05-12 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Datenübertragungseinheit für ein Fahrzeug
US9639344B2 (en) * 2014-12-11 2017-05-02 Ford Global Technologies, Llc Telematics update software compatibility
DE102015204362A1 (de) * 2015-03-11 2016-09-15 Robert Bosch Gmbh Stromtankstelle und Elektrofahrzeug
DE102015207795A1 (de) * 2015-04-28 2016-11-03 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktualisieren von Software in einem Transportmittel
JP6481489B2 (ja) * 2015-04-30 2019-03-13 富士通株式会社 修正適用情報作成プログラム、修正適用情報作成装置及び修正適用情報作成方法
DE102015214390A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben wechselnder Gastsysteme unter einem Hypervisor
CN107851383B (zh) * 2015-07-31 2021-07-13 三菱电机株式会社 车辆用信息通信***及车辆用信息通信方法
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
JP2017090092A (ja) * 2015-11-04 2017-05-25 株式会社デンソー 車載用ダウンロード制御装置、及びダウンロード制御方法
JP6508067B2 (ja) * 2016-01-14 2019-05-08 株式会社デンソー 車両用データ通信システム
US10114634B2 (en) * 2016-01-22 2018-10-30 2236008 Ontario Inc. Updating a controller unit in a vehicle
US11106454B2 (en) * 2016-04-15 2021-08-31 Nec Corporation Software update control device, software update control method, and recording medium having software update control program stored thereon
JP6665728B2 (ja) * 2016-08-05 2020-03-13 株式会社オートネットワーク技術研究所 車載更新装置、車載更新システム及び通信装置の更新方法
WO2018029905A1 (ja) * 2016-08-10 2018-02-15 Kddi株式会社 データ提供システム、データ保安装置、データ提供方法、及びコンピュータプログラム
US10055215B2 (en) * 2016-10-05 2018-08-21 Sap Se Enabling corrections during upgrade procedure
US10055260B2 (en) * 2017-01-05 2018-08-21 Guardknox Cyber Technologies Ltd. Specially programmed computing systems with associated devices configured to implement centralized services ECU based on services oriented architecture and methods of use thereof
US11036484B2 (en) * 2017-01-06 2021-06-15 Ford Global Technologies, Llc Software update management
EP3575954B1 (en) * 2017-01-25 2023-08-02 Hitachi Astemo, Ltd. Vehicle control device and program updating system
ES2901207T3 (es) * 2017-03-02 2022-03-21 Actility Interfaz de comunicación para una red de área extensa de baja potencia, dispositivo inalámbrico y servidor que usan tal interfaz de comunicación
US10908983B2 (en) 2017-03-31 2021-02-02 Cae Inc. Method and system for preventing an anomaly in a simulator
US10269192B2 (en) 2017-04-07 2019-04-23 Airbiquity Inc. Technologies for verifying control system operation
US11294661B2 (en) * 2017-04-25 2022-04-05 Microsoft Technology Licensing, Llc Updating a code file
US10387139B2 (en) 2017-07-25 2019-08-20 Aurora Labs Ltd. Opportunistic software updates during select operational modes
JP6773617B2 (ja) * 2017-08-21 2020-10-21 株式会社東芝 更新制御装置、ソフトウェア更新システムおよび更新制御方法
US10545751B2 (en) 2017-10-03 2020-01-28 Accenture Global Solutions Limited Automated usage driven engineering
CN111279310B (zh) * 2017-10-24 2023-09-12 华为国际有限公司 一种车载设备升级方法及相关设备
JP6915500B2 (ja) * 2017-11-06 2021-08-04 トヨタ自動車株式会社 更新システム、電子制御装置、更新管理装置、及び更新管理方法
US10009325B1 (en) * 2017-12-07 2018-06-26 Karamba Security End-to-end communication security
CN108460273B (zh) 2017-12-27 2022-10-14 ***股份有限公司 一种终端的应用管理方法、应用服务器及终端
DE102018200318A1 (de) * 2018-01-11 2019-07-11 Bayerische Motoren Werke Aktiengesellschaft Absicherung eines Softwareupdates eines Steuergerätes eines Fortbewegungsmittels
US10666767B1 (en) 2018-01-30 2020-05-26 State Farm Mutual Automobile Insurance Company Systems and methods for vehicle configuration verification using smart contracts
US10409585B2 (en) * 2018-02-14 2019-09-10 Micron Technology, Inc. Over-the-air (OTA) update for firmware of a vehicle component
JP7311245B2 (ja) * 2018-03-07 2023-07-19 トヨタ自動車株式会社 マスタ装置、マスタ、制御方法、プログラム及び車両
US11003537B2 (en) 2018-05-29 2021-05-11 Micron Technology, Inc. Determining validity of data read from memory by a controller
US11579865B2 (en) 2018-08-10 2023-02-14 Denso Corporation Vehicle information communication system
WO2020032196A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 車両情報通信システム
JP7159989B2 (ja) * 2018-08-10 2022-10-25 株式会社デンソー 車両用マスタ装置、車両用電子制御システム、アクティベート要求の指示方法及びアクティベート要求の指示プログラム
JP7059985B2 (ja) 2018-08-10 2022-04-26 株式会社デンソー 車両用電子制御システム、車両用マスタ装置、データ格納面情報の送信制御方法、データ格納面情報の送信制御プログラム、車両用マスタ装置側プログラム、センター装置、更新データの選定方法及びセンター装置側プログラム
JP7047819B2 (ja) * 2018-08-10 2022-04-05 株式会社デンソー 電子制御装置、車両用電子制御システム、アクティベートの実行制御方法及びアクティベートの実行制御プログラム
WO2020032192A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 電子制御装置、車両用電子制御システム、アクティベートの実行制御方法及びアクティベートの実行制御プログラム
US11163549B2 (en) 2018-08-10 2021-11-02 Denso Corporation Vehicle information communication system
WO2020032195A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 車両情報通信システム
KR102529916B1 (ko) * 2018-09-14 2023-05-08 현대자동차주식회사 가상머신 기반 차량 제어 검증 시스템 및 방법
JP2020088458A (ja) * 2018-11-16 2020-06-04 株式会社デンソーテン 情報処理装置
JP7139971B2 (ja) * 2019-01-23 2022-09-21 トヨタ自動車株式会社 ソフトウェア配布システムおよびソフトウェア配布方法
US11665001B1 (en) * 2019-02-12 2023-05-30 Ethernovia Inc. Network security using root of trust
JP2020140636A (ja) * 2019-03-01 2020-09-03 株式会社デンソー アプリケーションサーバ装置及び電子制御装置
JP7211224B2 (ja) * 2019-04-09 2023-01-24 住友電気工業株式会社 管理装置、通信システム、車両通信管理方法および車両通信管理プログラム
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
CN110065501B (zh) * 2019-05-14 2022-07-26 上汽通用五菱汽车股份有限公司 电子控制器的软件控制方法、配置设备及可读存储介质
JP7008661B2 (ja) * 2019-05-31 2022-01-25 本田技研工業株式会社 認証システム
US11837411B2 (en) 2021-03-22 2023-12-05 Anthony Macaluso Hypercapacitor switch for controlling energy flow between energy storage devices
US11685276B2 (en) 2019-06-07 2023-06-27 Anthony Macaluso Methods and apparatus for powering a vehicle
US11289974B2 (en) 2019-06-07 2022-03-29 Anthony Macaluso Power generation from vehicle wheel rotation
US11641572B2 (en) 2019-06-07 2023-05-02 Anthony Macaluso Systems and methods for managing a vehicle's energy via a wireless network
US11615923B2 (en) 2019-06-07 2023-03-28 Anthony Macaluso Methods, systems and apparatus for powering a vehicle
US11409874B2 (en) 2019-07-03 2022-08-09 International Business Machines Corporation Coprocessor-accelerated verifiable computing
JP7063853B2 (ja) * 2019-07-03 2022-05-09 本田技研工業株式会社 ソフトウェア更新装置、サーバ装置、ソフトウェア更新方法、およびプログラム
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
CN110413348B (zh) * 2019-07-31 2023-01-06 中国工商银行股份有限公司 数据处理方法、装置、***及介质
JP7331931B2 (ja) * 2019-08-28 2023-08-23 株式会社デンソー 車両用電子制御システム
JP7346187B2 (ja) * 2019-09-13 2023-09-19 東芝テック株式会社 サーバー装置及びプログラム
WO2021061715A1 (en) * 2019-09-25 2021-04-01 Shift5, Inc. Passive monitoring and prevention of unauthorized firmware or software upgrades between computing devices
US11422792B2 (en) 2019-10-09 2022-08-23 Toyota Motor North America, Inc. Management of transport software updates
US11294662B2 (en) 2019-10-09 2022-04-05 Toyota Motor North America, Inc. Management of transport software updates
US11169795B2 (en) 2019-10-09 2021-11-09 Toyota Motor North America, Inc. Management of transport software updates
JP6970156B2 (ja) * 2019-10-18 2021-11-24 トヨタ自動車株式会社 車両の制御に用いるデータの生成方法、車両用制御装置、車両用制御システム、車載装置および車両用学習装置
JP7392407B2 (ja) * 2019-11-14 2023-12-06 株式会社デンソー センター装置、車両用電子制御システム、プログラム更新の進捗制御方法及びプログラム更新の進捗制御プログラム
CN111769903A (zh) * 2020-06-09 2020-10-13 国家数字交换***工程技术研究中心 应用于网络安全防御***的网络安全防御方法及相关装置
US11281450B2 (en) 2020-06-23 2022-03-22 Toyota Motor North America, Inc. Secure transport software update
US11880670B2 (en) 2020-06-23 2024-01-23 Toyota Motor North America, Inc. Execution of transport software update
JP7405033B2 (ja) * 2020-07-20 2023-12-26 トヨタ自動車株式会社 サーバ、更新管理方法、更新管理プログラム、ソフトウェア更新装置、サーバ及びソフトウェア更新装置を備えるシステム、センタ、otaマスタ、センタ及びotaマスタを備えるシステム
DE102022104321A1 (de) 2021-03-05 2022-09-08 Toyota Jidosha Kabushiki Kaisha Center, aktualisierungsmanagementverfahren und nicht-transitorisches speichermedium
CN112925546B (zh) * 2021-03-10 2023-07-25 云度新能源汽车股份有限公司 一种防止车载ecu刷新出错的多级校验方法及***
US11472306B1 (en) 2022-03-09 2022-10-18 Anthony Macaluso Electric vehicle charging station
US11577606B1 (en) 2022-03-09 2023-02-14 Anthony Macaluso Flexible arm generator
US11955875B1 (en) 2023-02-28 2024-04-09 Anthony Macaluso Vehicle energy generation system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002144983A (ja) * 2000-11-14 2002-05-22 Toyoda Mach Works Ltd 車両制御装置の制御ソフト変更装置及びその方法
US7373643B2 (en) * 2001-03-06 2008-05-13 Cybersoft, Inc. Apparatus, methods and articles of manufacture for data transmission
JP2004102379A (ja) 2002-09-05 2004-04-02 Hitachi Ltd パッチ適用管理プログラム、方法、およびシステム
JP2004326689A (ja) * 2003-04-28 2004-11-18 Nissan Motor Co Ltd 車載機器のソフトウェア書き換え方法、テレマティクスシステムおよびテレマティクス装置
JP2005107803A (ja) 2003-09-30 2005-04-21 Hitachi Ltd システム更新方法、および、それを実行するための計算機システム
US20080222604A1 (en) * 2005-03-07 2008-09-11 Network Engines, Inc. Methods and apparatus for life-cycle management
JP2006331185A (ja) 2005-05-27 2006-12-07 Fujitsu Ten Ltd 制御装置、書換装置、書換方法および書換プログラム
US7870379B2 (en) * 2006-10-10 2011-01-11 Exaflop Llc Updating a power supply microcontroller
JP5024036B2 (ja) 2007-12-27 2012-09-12 沖電気工業株式会社 プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム
JP2010128844A (ja) 2008-11-28 2010-06-10 Hitachi Software Eng Co Ltd ソフトウェア更新システム
TWI386847B (zh) * 2009-02-04 2013-02-21 Novatek Microelectronics Corp 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
US9195455B2 (en) * 2009-04-01 2015-11-24 Oracle International Corporation Reducing downtime when patching multiple inter-dependent software components
US8166341B2 (en) * 2009-08-31 2012-04-24 Red Hat, Inc. Systems and methods for testing results of configuration management activity
JP2011108167A (ja) * 2009-11-20 2011-06-02 Toyota Infotechnology Center Co Ltd コンピューターシステム
US20110238980A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9189357B2 (en) * 2010-05-25 2015-11-17 Red Hat, Inc. Generating machine state verification using number of installed package objects
US9464905B2 (en) * 2010-06-25 2016-10-11 Toyota Motor Engineering & Manufacturing North America, Inc. Over-the-air vehicle systems updating and associate security protocols
US9256745B2 (en) * 2011-03-01 2016-02-09 Microsoft Technology Licensing, Llc Protecting operating system configuration values using a policy identifying operating system configuration settings
DE112012007197T5 (de) * 2012-12-05 2015-08-20 Bendix Commercial Vehicle Systems Llc Verfahren und Vorrichtung zum Aktualisieren von Softwarekomponenten in Koordination mit Betriebsablaufbedingungen eines Motorfahrzeugs
US10509639B2 (en) * 2014-06-04 2019-12-17 Rimini Street, Inc. Automatic software-update framework

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268557B2 (en) 2016-09-13 2019-04-23 Kabushiki Kaisha Toshiba Network monitoring device, network system, and computer program product
EP3493054A1 (en) 2017-11-30 2019-06-05 Hitachi, Ltd. In-vehicle software distribution system, in-vehicle software distribution server, and in-vehicle software distribution method
US10891123B2 (en) 2017-11-30 2021-01-12 Hitachi, Ltd. In-vehicle software distribution system, in-vehicle software distribution server, and in-vehicle software distribution method

Also Published As

Publication number Publication date
EP2863303B1 (en) 2020-01-15
EP2863303A1 (en) 2015-04-22
CN104572320A (zh) 2015-04-29
US10157050B2 (en) 2018-12-18
CN104572320B (zh) 2018-09-14
JP2015079440A (ja) 2015-04-23
US20150113520A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP5864510B2 (ja) 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
EP3319266B1 (en) Software distribution processing device, vehicle, software distribution processing method, and computer program
CN108762783B (zh) 车辆***的软件更新方法、装置及车辆***
KR102347659B1 (ko) 디바이스의 보안 프로비저닝 및 관리
JP6719079B2 (ja) 情報機器、データ処理システム、データ処理方法およびコンピュータプログラム
US10360018B2 (en) Update control apparatus, software update system, and update control method
JP5975964B2 (ja) 情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システム
US9792440B1 (en) Secure boot for vehicular systems
CN109314639B (zh) 管理***、密钥生成装置、车载计算机、管理方法以及记录介质
JP6625269B2 (ja) 車載認証システム、車両通信装置、認証管理装置、車載認証方法および車載認証プログラム
US9807268B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
WO2015080108A1 (ja) プログラム更新システム及びプログラム更新方法
JP6190443B2 (ja) 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP5861597B2 (ja) 認証システムおよび認証方法
JP2011108167A (ja) コンピューターシステム
US20170293753A1 (en) Electronic device and system
Adelsbach et al. Secure software delivery and installation in embedded systems
CN113127930A (zh) 充电数据处理方法、装置和计算机可读存储介质
WO2013161371A1 (ja) プログラム提供装置、システム、プログラム提供方法およびプログラム
CN111226214B (zh) 用于确认密码密钥的***和方法
WO2022009464A1 (ja) 制御装置およびプログラム検証方法
CN118103841A (zh) 用于准许授权由交通工具的交通工具部件运行计算机程序的方法、交通工具部件和计算机程序
CN117519812A (zh) 一种软件启动方法、控制器、车辆及存储介质
CN117040859A (zh) 激活认证方法、装置和电子设备及存储介质
CN117579325A (zh) 一种数字证书验证方法及相关装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151111

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: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151224

R150 Certificate of patent or registration of utility model

Ref document number: 5864510

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees