JP6077115B2 - 制御装置およびそれを用いたソフトウェア書き換えシステム - Google Patents

制御装置およびそれを用いたソフトウェア書き換えシステム Download PDF

Info

Publication number
JP6077115B2
JP6077115B2 JP2015523748A JP2015523748A JP6077115B2 JP 6077115 B2 JP6077115 B2 JP 6077115B2 JP 2015523748 A JP2015523748 A JP 2015523748A JP 2015523748 A JP2015523748 A JP 2015523748A JP 6077115 B2 JP6077115 B2 JP 6077115B2
Authority
JP
Japan
Prior art keywords
data
control
software
variable
rewriting
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
JP2015523748A
Other languages
English (en)
Other versions
JPWO2014207859A1 (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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP6077115B2 publication Critical patent/JP6077115B2/ja
Publication of JPWO2014207859A1 publication Critical patent/JPWO2014207859A1/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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Description

本発明は、制御対象をソフトウェアによって制御する制御装置に関する。
自動車、エレベータ、建設機械、家電機器等の技術分野では、いわゆる組込みソフトウェアによって制御対象を制御する組込み制御装置が用いられている。組込みソフトウェアによる制御は、従来の機械的機構や電気回路による制御方式に比べて、柔軟かつ高度な制御が実現できるという利点、並びにソフトウェアの書換えによって市場への供給後であっても動作を変更できるという利点を有する。
このような組込み制御装置、例えば自動車のエンジン制御装置(以下、ECUと記す)では、エンジンを制御するための制御ソフトウェアを、電気的に記憶内容の書き換えが可能なメモリに格納しておくことで、必要に応じて制御ソフトウェアを書き換えることが可能である。
制御ソフトウェアが書き換え可能な制御装置は、臨機応変に制御ソフトウェアを変更することが可能だが、不正な書き換えに対しては、これを防止する機能を備えている。
制御装置の制御ソフトウェアが不正に書き換えられることを防止する技術としては、特開2012−234437号公報(特許文献1)に記載の技術が知られている。本技術においては、制御ソフトウェア書き換え時に、特定の2個のECU間における接続確認用データの一致を確認することで、安全性を確保する。
また、特開2008−239021号公報(特許文献2)に記載の技術も知られている。本技術においては、車両制御装置の制御ソフトウェア書き換え時に、ユーザが入力したIDコードと車両に予め登録されたIDコードとを比較することでユーザを識別し、特定のユーザによる制御ソフトウェアの書き換えのみを許可する。
特開2012−234437号公報 特開2008−239021号公報
上記特許文献1に記載された技術においては、二個のECUを接続したまま不正にソフトウェア書き換えが行われる場合に関しては考慮されていない。また特許文献2に記載された技術では、IDコードが不正に入手された場合に関しては考慮されていない。従って、これらの従来技術では、組込みソフトウェアによる制御の適用拡大や高機能化に伴う、不正書き換えに対する安全性の向上という要請に対しては、十分な対応が難しい。
そこで、本発明は、ソフトウェアの不正書き換えに対する安全性を向上することができる制御装置を提供する。
上記課題を解決するために、本発明による制御装置においては、任意のデータ参照を許可する参照先変数に関するデータが登録されたホワイトリストデータを用いて、ソフトウェア書き換えの禁止及び許可を判定する。
上記本発明の一態様である制御装置は、制御用のソフトウェアを格納する記憶部と、記憶部に格納されたソフトウェアによって制御対象を制御するデータ処理部とを備える。記憶部は、任意のデータ参照を許可する参照先変数に関するデータが登録されたホワイトリストデータを格納する。また、データ処理部は、プログラム検証手段によって、書き換えソフトウェアにおける参照先変数に関する変数情報データが、ホワイトリストデータに登録されているデータのみで構成されているか否かを判定し、構成されていると判定したら、記憶部に格納されているソフトウェアの書き換えソフトウェアへの書き換えを許可し、構成されていないと判定したら書き換えを禁止する。
本発明によれば、書き換えソフトウェア自体が不正なものであるか否かを判定するため、ソフトウェアの不正書き換えを確実に防止することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本発明の一実施形態である制御装置におけるソフトウェア書き換えの処理手順を示すフローチャートである。 本発明の一実施形態である制御装置のシステム構成図である。 実施形態における、データの流れを示すブロック図である。 アクセス禁止変数データの具体例を示す。 制御変数間参照関係データの具体例を示す。 制御変数間参照関係データを、別の表記方法を用いて示した図である。 ホワイトリスト作成器が実行する処理を示すフローチャートである。 ホワイトリストデータの具体例を示す。 実施形態におけるホワイトリストデータの具体例を示す図。 書き換えプログラムデータの具体例を示す。 書き換えプログラムデータの別の具体例を示す。 ソースコード解析器が実行する処理を示すフローチャートである。 参照関係データの具体例を示す。 参照関係データの他の具体例を示す。 プログラム検証器が実行する処理を示すフローチャートである。 表示装置に表示された検証結果データの一例を示す。 表示装置に表示された検証結果データの他の例を示す。 参照関係更新器が実行する処理を示すフローチャートである。 更新後の制御変数間参照関係データの具体例を示す。
以下、図面を参照して本発明の実施形態について説明する。なお、本実施形態である制御装置は、制御装置内に格納された制御用ソフトウェアによって制御対象を制御する。例えば、本実施形態をECUに適用する場合、制御対象および制御用ソフトウェアは、それぞれ、自動車のエンジンおよびエンジン制御プログラムとなる。
図1は、本発明の一実施形態である制御装置におけるソフトウェア書き換えの主たる処理手順を示すフローチャートである。ステップS1001から処理が始まる。ステップS1002で書き換えソフトウェアを入力する。ステップS1003で任意のデータ参照を許可する変数情報を記憶したホワイトリストデータを入力する。ステップS1004で、書き換えソフトウェアがホワイトリストデータに記憶された変数のみで構成されているか否かを判定する。構成されていると判定された場合(Yes)、ステップS1005に進み、構成されていないと判定された場合(No)、ステップS1006に進む。ステップS1005では、書き換えを許可してソフトウェアを書き換える。ステップS1006では、ソフトウェアの書き換えを禁止する。ステップS1007で処理を終了する。
図2は本発明の一実施形態である制御装置のシステム構成図である。制御装置1は、データ処理部11とデータベース12とを有する。データ処理部11としては、例えばマイクロコンピュータ等の演算処理装置が用いられる。また、データベース12は、半導体メモリ等の記憶装置に格納される。
データ処理部11は、ソースコード解析部111と、ホワイトリスト作成器112と、プログラム検証器113と、参照関係更新器114を有する。これらの手段は、データ処理部11が後述するような処理手順に関するプログラムを読み込んで動作することにより、データ処理部11に備わる機能である。処理手順に関するプログラムは、データベース12と同様に記憶装置に格納される。なお、データ処理部11は、制御対象を制御するための制御信号を作成する公知の手段を有するが、本手段については図示および詳細な説明は省略する。
データベース12は、書き換えプログラムデータ121と、参照関係データ122と、アクセス禁止変数データ123と、制御変数間参照関係データ124と、ホワイトリストデータ125と、検証結果データ126を有する。
ソフトウェアを書き換えるためには、制御装置1に、外部装置である書き換えツール200が接続される。書き換えツール200は、書き換えソフトウェアを格納し、この書き換えソフトウェアを制御装置1に送信する。書き換えツールとしては、例えば、パーソナルコンピュータが用いられる。後述するように、データ処理部11は、ホワイトリストデータ125を用いて、書き換えツール200から送信される書き換えソフトウェアの適否を判定し、判定結果に応じて書き換えを許可または禁止する。書き換えが許可されたことおよび禁止されたことは、書き換えツール200の表示装置201(例えば、ディスプレイ装置)に表示される。
図3は本実施形態における、データの流れを示すブロック図である。ソースコード解析器111は、システムに新しく書き換えるソフトウェアである書き換えプログラムデータ121を入力とし、書き換えプログラムデータ121中の変数の代入参照関係を示す参照関係データ122を出力する。ホワイトリスト作成器112は、任意のアクセスを禁止する変数を示すアクセス禁止変数データ123と、書き換え前のソフトウェアすなわちプログラム中の変数の代入参照関係を示す制御変数間参照関係データ124とを入力とし、任意アクセスすることを許可された変数の集合であるホワイトリストデータ125を出力する。プログラム検証器113は、参照関係データ122とホワイトリストデータ125とを入力し、入力した参照関係データ122とホワイトリストデータ125とを照合した結果を示す検証結果データ126を出力する。参照関係更新器114は、参照関係データ122と、検証結果データ126と、制御変数間参照関係データ124とを入力とし、検証結果データ126に基づき参照関係データ122の内容を制御変数間参照関係データ124に追加する。表示装置201は検証結果データ126の内容を表示する。
図4は、アクセス禁止変数データ123の具体例を示す。アクセス禁止変数データ1231は書き換えプログラムからの任意アクセスを禁止する変数の集合で構成されている。本実施形態では、変数kが、任意アクセスを禁止する変数である。
図5は、制御変数間参照関係データ124の具体例を示す。制御変数間参照関係データ1241は書き換え前のプログラム中の変数の代入参照関係情報の集合で構成されている。本実施形態では、制御変数間参照関係データは、プログラム中の2変数間の参照関係を示すデータである。例えば、書き換え前のプログラム中でb=a+fのような演算処理が存在する場合、変数aとfを参照元変数と定義し、変数bを参照先変数と定義する。このように変数間の代入参照関係により、プログラム中のどの変数がどの変数に影響を与えているかを示す。
図6は、制御変数間参照関係データ124を、別の表記方法を用いて示した図である。制御変数間参照関係データ1242は変数を示すノードと、参照関係を示す矢印とで構成されている。ここで、矢印の根元にある変数(例えば、a,f)が参照元変数であり、矢印の先にある変数(例えば、b)が参照先変数である。
図7は、ホワイトリスト作成器112が実行する処理を示すフローチャートである。
ステップS1121から処理が始まる。ステップS1122において、ホワイトリスト作成器112は、アクセス禁止変数データ123と制御変数間参照関係データ124とを入力する。
ステップS1123において、ホワイトリスト作成器112は、制御変数間参照関係データ124中の変数の内、アクセス禁止変数データ123中の変数から参照されている全ての変数を記憶する。すなわち、アクセス禁止変数データ123中の変数を参照先変数とする全ての参照元変数を抽出して記憶する。本実施形態においては、禁止変数kを参照先変数とする参照元変数gを抽出して記憶する(図4,5参照)。
ステップS1124において、ホワイトリスト作成器112は、制御変数間参照関係データ124の内、ステップS1123で記憶した変数を参照先変数とする全ての参照元変数を抽出して記憶する。本実施形態においては、ステップS1123で記憶した変数gを参照先変数とする参照元変数c,hを抽出して記憶する(図5参照)。
ステップS1125において、ホワイトリスト作成器112は、ステップS1124で記憶した変数の個数が0個であるか否かを判定する。0個ではないと判定された場合(NO)、記憶した変数を参照先変数とする参照元変数が存在する可能性があるため、ステップS1124を再度実行し、この時点で記憶している変数を参照先変数とする参照元変数を抽出して記憶する。0個であると判定した場合(YES)、ステップS1126へ進む。本実施形態において、ホワイトリスト作成器112は、最初にステップS1124を実行する際に、2個の変数c,hを記憶するので、再度ステップS1124を実行する。その結果、変数c,hを参照先変数とする参照元変数は無いため(図5参照)、ステップS1124の再実行によって、ホワイトリスト作成器112がさらに抽出して記憶する変数は無い。このため、次にステップS1125を実行すると、直前のステップS1124で記憶した変数の個数は0個であると判定し、次にステップS1126を実行する。
ステップS1126において、ホワイトリスト作成器112は、制御変数間参照関係データ124中の変数の内、アクセス禁止変数以外、かつステップS1123およびステップS1124で記憶した変数以外の全ての変数を抽出して、ホワイトリストデータ125として記憶する。本実施形態では、アクセス禁止変数はkであり、ステップS1123およびS1124において記憶した変数がc,g,hであるから、これら以外の変数a,b,d,e,fをホワイトリストデータとして抽出して記憶する。
ステップS1127において、ホワイトリスト作成器112は、ステップS1126において記憶したホワイトリストデータ125を出力してデータベース12に登録し、ステップS1128で処理を終了する。
図8は、ホワイトリストデータ125の具体例を示す。ホワイトリストデータ1251は、ホワイトリスト作成器112が図7に示した処理を実行することにより作成されるデータである。図8が示すように、ホワイトリストデータ1251は、書き換えを許可する変数すなわち許可変数a,b,d,e,fを有する。図5および図6に示した制御変数間参照関係データ124と対比すると判るように、ホワイトリストデータ1251は、アクセス禁止変数kと直接的あるいは間接的に参照関係にある変数以外の変数、すなわちアクセス禁止変数データkに影響を与えていない変数のみで構成されている。
図9にホワイトリストデータ125の具体例を別の表記方法で示す。ホワイトリストデータ1252は変数をノード、変数間の参照関係を矢印で示している。本図において、ノードkを終点とする矢印の始点となるノードは、直接的にはノードg、間接的にはノードc,hである。従って、ホワイトリストデータ1252は、ノードkを終点とする矢印の始点とはならないノード、すなわち図中の破線部で囲まれたノードである変数a,b,d,e,fから構成される。
図10は、書き換えプログラムデータ121の具体例を示す。書き換えプログラム1211は、変数としてl,m,nをそれぞれ新しく定義している。また、新たなプログラムとしてnewFuncAを定義している。
図11は、書き換えプログラムデータ121の別の具体例を示す。書き換えプログラム1212は、変数としてl,m,nをそれぞれ新しく定義している。また、新たなプログラムとしてnewFuncBを定義している。
図12は、ソースコード解析器111が実行する処理を示すフローチャートである。ステップS1111から処理が始まる。ステップS1112において、ソースコード解析器111は、書き換えプログラムデータ121を入力する。ステップS1113において、ステップS1112で入力した書き換えプログラムデータ121中の変数の代入参照関係を解析して記憶する。ステップS1114においては、ステップS1113で記憶した変数の代入参照関係を、参照関係データ122として出力し、データベース12に登録する。
図13は、参照関係データ122の具体例を示す。参照関係データ1221は、ソースコード解析器111によって解析された、図10の書き換えプログラム1211中の変数a,f,l,m,nの参照関係を示している。ソースコード解析器111は、図12に示した処理フローに従って、図10の書き換えプログラム1211を入力し、プログラム中の演算式a=K*l(K:定数)およびf=m−nから、変数lと変数aの間の参照関係、並びに変数mおよびnと変数fの間の参照関係(図13)を解析してデータベースに登録する。
図14は、参照関係データ122の他の具体例を示す。参照関係データ1222は、ソースコード解析器111によって解析された、図11の書き換えプログラム1212中の変数a,c,l,m,nの参照関係を示している。ソースコード解析器111は、図12に示した処理フローに従って、図11の書き換えプログラム1212を入力し、プログラム中の演算式a=K*l(K:定数)およびc=m−nから、変数lと変数aの間の参照関係、並びに変数mおよびnと変数cの間の参照関係(図14)を解析してデータベースに登録する。
図15はプログラム検証器113が実行する処理を示すフローチャートである。
ステップS1131から処理が始まる。ステップS1132において、プログラム検証器113は、ステップS1132において参照関係データ122とホワイトリストデータ125を入力する。
ステップS1133においては、ステップS1132において入力した参照関係データ122とホワイトリストデータ125を照合して、参照関係データ122における参照先情報中の変数がホワイトリストデータ125に登録されているか否かを判定する。判定結果に基づき、ステップS1134において、参照関係データ122の参照先情報中にホワイトリストデータ125に登録されていない変数が存在するか否かを判定する。存在すると判定した場合(YES)、ステップS1135に進み、存在しないと判定した場合(NO)、ステップS1136に進む。
ステップS1135においては、検証結果データ126としてエラー結果を出力する。ステップS1136においては、検証結果データとして正常結果を出力する。その後、ステップS1137で処理を終了する。
本実施形態において、制御プログラムを図10の書き換えプログラム1211に書き換えようとする場合、プログラム検証器113は、図13の参照関係データ1221と図8のホワイトリストデータ1251を入力する。入力したこれらデータを照合し、参照関係データ1221の参照先変数a,fがホワイトリスト1251に登録された許可変数であると判定する。この判定結果に基づいて、プログラム検証器113は、参照関係データ1221の参照先変数にホワイトリストデータ121に登録されていない変数は存在しない(NO)と判定し、検証結果データとして正常結果を出力する。
また、制御プログラムを図11の書き換えプログラム1212に書き換えようとする場合、プログラム検証器113は、図14の参照関係データ1222と図8のホワイトリストデータ1251を入力する。入力したこれらデータを照合し、参照関係データ1222の参照先変数a,fについて、変数aはホワイトリスト1251に登録された許可変数であり、変数cはホワイトリスト1251に登録された許可変数ではないと判定する。この判定結果に基づいて、プログラム検証器113は、参照関係データ1222の参照先変数にホワイトリストデータ121に登録されていない変数が存在する(YES)と判定し、検証結果データとしてエラー結果を出力する。
図16は、書き換えツール200の表示装置201に表示された検証結果データ126の一例を示す。検証結果データ1261は検証結果データ126が正常結果だった場合である。上述したように、参照関係データ1221(図13)を用いた場合、プログラム検証器113は、図15のステップS1134においてNOと判定するため、正常結果を出力する。この出力に基づき、書き換えツール200は、表示装置201に、正常結果を示す検証結果データ1261を表示する。
図17は、書き換えツール200の表示装置201に表示された検証結果データ126の他の例を示す。検証結果データ1262は検証結果データ126がエラー結果だった場合である。上述したように、参照関係データ1222(図14)を用いた場合、プログラム検証器113は、図15のステップS1134においてYESと判定するため、エラー結果を出力する。この出力に基づき、書き換えツール200は、表示装置201に、エラー結果を示す検証結果データ1262を表示する。
図18は、参照関係更新器115が実行する処理を示すフローチャートである。
ステップS1151から処理が始まる。ステップS1152において、参照関係更新器115は、検証結果データ126を入力する。ステップS1153において、検証結果データが正常結果であるか否かを判定する。正常結果であると判定した場合(YES)、ステップS1154に進み、正常結果ではないと判定した場合(NO)、ステップS1158に進んで処理を終了する。
ステップS1154において、制御変数間参照関係データ124と、書き換えプログラムの参照関係データ122とを入力する。ステップS1155において、ステップS1154で入力した参照関係データ122の内、ステップS1154で入力した制御変数参照関係データ124に存在しないデータを抽出して、制御変数間参照関係データ124に追加登録する。
ステップS1156において、参照関係データ122の全てのデータについてステップS1155を実行したか否かを判定する。実行したと判定した場合(YES)、ステップS1157に進み、実行していない、すなわち未実行のデータがあると判定した場合(NO)、ステップS1155に進む。ステップS1157において、参照関係更新器115は、書き換えプログラムにおける新規な参照関係データが登録された制御変数間参照関係データ124を出力し、データベース12に登録する。その後、ステップS1158で処理を終了する。
図19は、参照関係更新器115から出力された、更新後の制御変数間参照関係データ124の具体例を示す。本具体例は、図10の書き換えプログラム1211に書き換える場合であり、次のようにして出力される。まず、参照関係更新器115は、検証結果データ126を入力し、検証結果データ126は正常結果であると判定する。次に、参照関係データ1221(図13)および制御変数間参照関係データ1241(図5)を入力する。入力した参照関係データ1221の内、入力した制御変数参照関係データ1241に存在しないデータ、この場合は参照関係データ1221(図13)のすべてのデータを抽出して、制御変数間参照関係データ1241に追加登録する。これにより、図19に示すように、制御変数間参照関係データ1241に参照関係データ1221が追加された、更新後の制御変数間参照関係データ1242が得られる。
さらに、更新後の制御変数間参照関係データ124とアクセス禁止変数データ123とを用いて、ホワイトリスト作成器112が、前述した図7に示した処理を実行して、ホワイトリストデータ125を更新する。本実施形態において、図10の書き換えプログラム1211に書き換える場合、すなわち、書き換えが許可される場合、ホワイトリスト作成器112は、アクセス禁止変数データ1231(図4)と、参照関係更新器115によって更新された制御変数間参照関係データ1241(図19)とから、ホワイトリストデータ1251(図8)に許可変数として変数l,m,nが追加される更新されたホワイトリストデータ125を作成して出力する。
上記実施形態によれば、参照先変数に関するホワイトリストデータにより、書き換えソフトウェア自体が不正なものであるか否かを判定するので、ソフトウェアの不正な書き換えを確実に防止できる。さらに、参照関係更新器により更新された制御変数参照関係データによりホワイトリストデータを更新するので、制御装置が常時最新のホワイトリストを備えることができる。
上述した実施形態に限らず、本発明の技術的思想の範囲内において、種々の実施形態並びに前述した実施形態の変形が可能である。
例えば、書き換えプログラムにおける変数間の参照関係を解析するソースコード解析器は、書き換えられたプログラムの一部を制御装置が実行している状態で、解析を進めても良いし、実行される前に解析しても良い。後者については、書き換えプログラム全体について不正か否かを検証してから制御装置によりプログラムが実行されるので、安全性が向上する。
ホワイトリストデータは、制御装置から外部出力される制御信号である制御変数以外の変数で構成することができる。この制御変数は不正なソフトウェア書き換えに対する高い安全性を要求される変数であるため、このような制御変数以外の変数でホワイトリストデータを構成することにより、プログラムの不正書き換えに対する安全性が向上する。
また、ホワイトリストデータは、プログラム中における有効範囲が制限されない変数、すなわち、いわゆる大域変数(グローバル変数)で構成することができる。言い換えれば、ホワイトリストデータは、プログラム中において有効範囲が制限される局所変数(ローカル変数)以外の変数で構成することができる。局所変数は不正なソフトウェア書き換えに対する高い安全性を要求される変数であるため、局所変数以外の変数すなわち大域変数でホワイトリストデータを構成することにより、プログラムの不正書き換えに対する安全性が向上する。
さらに、プログラム検証器は、書き換えプログラムにおける参照先変数に関する変数情報の内、ホワイトリストデータに登録されているデータで構成されていないと判定した変数情報データをデータベースに登録しても良い。
また、本発明は、インターネットなどのネットワークを介して外部装置から書き換えプログラムデータを制御装置へ送信する場合にも適用できる。
さらに、本発明は、自動車制御用ECUに限らず、昇降機、建設機械、医療用機器、家庭用電気機器などにおける組み込みソフトウェアを備えた制御装置に適用できる。いずれに適用した場合でも、不正なソフトウェア書き換えに対する安全性を向上できる。なお、家庭用電気機器などのように、一般消費者が使用する機器や、製品サイクルが短く低コストが要求される機器では、ホワイトリストデータを更新せずに固定されたものとしても良い。
1 制御装置,11 データ処理部,12 データベース,111 ソースコード解析器,112 ホワイトリスト作成器,113 プログラム検証器,114 参照関係更新器,121 書き換えプログラムデータ,122 参照関係データ,123 アクセス禁止変数データ,124 制御変数間参照関係データ,125 ホワイトリストデータ,126 検証結果データ,200 書き換えツール,201 表示装置

Claims (11)

  1. 制御用のソフトウェアを格納する記憶部と、前記記憶部に格納された前記ソフトウェアによって制御対象を制御するデータ処理部と、を備える制御装置において、
    前記記憶部は、任意のデータ参照を許可する参照先変数に関するデータが登録されたホワイトリストデータを格納し、
    前記データ処理部は、書き換えソフトウェアにおける参照先変数に関する変数情報データが、前記ホワイトリストデータに登録されているデータのみで構成されているか否かを判定し、構成されていると判定したら前記記憶部に格納されている前記制御用のソフトウェアの前記書き換えソフトウェアへの書き換えを許可し、構成されていないと判定したら前記書き換えを禁止するプログラム検証手段を備えることを特徴とする制御装置。
  2. 請求項1に記載された制御装置において、前記データ処理部は、前記記憶部に格納されている前記制御用のソフトウェアを前記書き換えソフトウェアに書き換えることを許可したら、前記変数情報データに基づいて前記ホワイトリストデータを更新するホワイトリスト作成手段を備えることを特徴とする制御装置。
  3. 請求項1に記載された制御装置において、
    前記記憶部は前記制御用のソフトウェアにおける変数間の参照関係に関する制御変数間参照関係データと、任意のアクセスを禁止する変数に関するアクセス禁止変数データを格納し、
    前記データ処理部は、前記制御変数間参照関係データと、前記アクセス禁止変数データとに基づいて、前記ホワイトリストデータを作成するホワイトリスト作成手段を備えることを特徴とする制御装置。
  4. 請求項3に記載された制御装置において、
    前記データ処理部は、前記記憶部に格納されている前記制御用のソフトウェアを前記書き換えソフトウェアに書き換えることを許可したら、前記変数情報データに基づいて前記制御変数間参照関係データを更新する参照関係更新手段を備え、
    前記ホワイトリスト作成手段は、更新された前記制御変数間参照関係データと前記アクセス禁止変数データとに基づいて、前記記憶部に格納される前記ホワイトリストデータを更新することを特徴とする制御装置。
  5. 請求項1に記載された制御装置において、
    前記データ処理部は、前記書き換えソフトウェアにおける変数間の参照関係を解析して前記変数情報データを出力するソースコード解析手段を備えることを特徴とする制御装置。
  6. 請求項5に記載された制御装置において、
    前記ソースコード解析手段は、前記書き換えソフトウェアが実行される前に、前記変数間の参照関係を解析することを特徴とする制御装置。
  7. 請求項1に記載の制御装置において、
    前記ホワイトリストデータは、制御装置から外部出力される制御信号である制御変数以外の変数で構成されることを特徴とする制御装置。
  8. 請求項1に記載の制御装置において、
    前記ホワイトリストデータは、大域変数で構成されることを特徴とする制御装置。
  9. 請求項1に記載の制御装置において、
    前記記憶部は、前記プログラム検証手段が、前記ホワイトリストデータに登録されているデータで構成されていないと判定した前記変数情報データを格納することを特徴とする制御装置。
  10. 請求項1に記載の制御装置において、
    前記ホワイトリストデータは固定されていることを特徴とする制御装置。
  11. 制御用のソフトウェアを格納する記憶部と、前記記憶部に格納された前記制御用のソフトウェアによって制御対象を制御するデータ処理部とを備える制御装置と、
    書き換えソフトウェアを格納し、前記制御装置へ前記書き換えソフトウェアを送信する外部装置と、
    を備えるソフトウェア書き換えシステムにおいて、
    前記記憶部は、任意のデータ参照を許可する参照先変数に関するデータが登録されたホワイトリストデータを格納し、
    前記データ処理部は、書き換えソフトウェアにおける参照先変数に関する変数情報データが、前記ホワイトリストデータに登録されているデータのみで構成されているか否かを判定し、構成されていると判定したら前記記憶部に格納されている前記制御用のソフトウェアの前記書き換えソフトウェアへの書き換えを許可し、検証結果データとして正常結果を前記外部装置に出力し、構成されていないと判定したら前記書き換えを禁止し、前記検証結果データとしてエラー結果を前記外部装置に出力するプログラム検証手段を備え、
    前記外部装置は、前記正常結果および前記エラー結果を表示する表示装置を備えることを特徴とするソフトウェア書き換えシステム。
JP2015523748A 2013-06-27 2013-06-27 制御装置およびそれを用いたソフトウェア書き換えシステム Expired - Fee Related JP6077115B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/067604 WO2014207859A1 (ja) 2013-06-27 2013-06-27 制御装置およびそれを用いたソフトウェア書き換えシステム

Publications (2)

Publication Number Publication Date
JP6077115B2 true JP6077115B2 (ja) 2017-02-08
JPWO2014207859A1 JPWO2014207859A1 (ja) 2017-02-23

Family

ID=52141263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015523748A Expired - Fee Related JP6077115B2 (ja) 2013-06-27 2013-06-27 制御装置およびそれを用いたソフトウェア書き換えシステム

Country Status (2)

Country Link
JP (1) JP6077115B2 (ja)
WO (1) WO2014207859A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1770584A2 (en) * 2005-09-27 2007-04-04 Omron Corporation Programmable controller system and aid device for control program development therefor
JP2008102831A (ja) * 2006-10-20 2008-05-01 Hitachi Ltd 情報提供装置、プログラム及び情報提供方法
JP2010238168A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 実行制御プログラムおよび情報処理システム
JP2011123675A (ja) * 2009-12-10 2011-06-23 Fujitsu Ltd 実行制御方法、実行制御プログラムおよび実行制御装置
JP2012243257A (ja) * 2011-05-24 2012-12-10 Denso Corp 電子制御装置
US20130097659A1 (en) * 2011-10-17 2013-04-18 Mcafee, Inc. System and method for whitelisting applications in a mobile network environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1770584A2 (en) * 2005-09-27 2007-04-04 Omron Corporation Programmable controller system and aid device for control program development therefor
JP2008102831A (ja) * 2006-10-20 2008-05-01 Hitachi Ltd 情報提供装置、プログラム及び情報提供方法
JP2010238168A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 実行制御プログラムおよび情報処理システム
JP2011123675A (ja) * 2009-12-10 2011-06-23 Fujitsu Ltd 実行制御方法、実行制御プログラムおよび実行制御装置
JP2012243257A (ja) * 2011-05-24 2012-12-10 Denso Corp 電子制御装置
US20130097659A1 (en) * 2011-10-17 2013-04-18 Mcafee, Inc. System and method for whitelisting applications in a mobile network environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6013038281; 二宮 秀一郎: '制御システムにおけるセキュリティアーキテクチャと対策ツール' 計装 Vol. 54, No. 9, 20110901, pp. 60-63, (有)工業技術社 *
JPN6013038284; 玉木 淳治: 'ソフトウェア品質診断ツールeXquto (エクスキュート)' 組込みプレス Vol. 16, 20091001, pp. 90-96, (株)技術評論社 *

Also Published As

Publication number Publication date
JPWO2014207859A1 (ja) 2017-02-23
WO2014207859A1 (ja) 2014-12-31

Similar Documents

Publication Publication Date Title
JP5457362B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
JP5014726B2 (ja) 無許可のブートローダの実行を防止することによって安全性を高めた実行環境
US8533492B2 (en) Electronic device, key generation program, recording medium, and key generation method
CN103425909B (zh) 控制系统、控制装置及程序执行控制方法
US8856538B2 (en) Secured flash programming of secondary processor
EP2261832A1 (en) Information processing device
CN103329095B (zh) 用编码的信息验证管理程序
CN101300583A (zh) 用于可信赖移动电话的简单可伸缩和可配置安全启动
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
US8930710B2 (en) Using a manifest to record presence of valid software and calibration
JP6925542B2 (ja) ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
JP5718373B2 (ja) 不揮発性メモリのメモリブロックを検査する方法
KR20080039046A (ko) 펌웨어 업데이트 장치 및 방법
JP2015022521A (ja) セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム
TWI570591B (zh) 允許測試金鑰用於bios安裝之技術
KR102324328B1 (ko) 보안 요소
CN103348355A (zh) 用于管理安全状态转换的方法和设备
CN103858128A (zh) 提供用于抗攻击的遍及应用的相依性网络的系统和方法
KR20180007717A (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
JP6077115B2 (ja) 制御装置およびそれを用いたソフトウェア書き換えシステム
JP5759827B2 (ja) メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法
CN106164853A (zh) 使用驻留在外部存储器设备上的芯片限制的指令用于启动序列修改的系统和方法
US9699172B2 (en) Method for managing the installation of an application on an electronic device
JP6421816B2 (ja) 制御装置及び制御装置システム
CN109753788B (zh) 内核运行时的完整性校验方法及计算机可读存储介质

Legal Events

Date Code Title Description
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: 20161213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170111

R150 Certificate of patent or registration of utility model

Ref document number: 6077115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees