以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量又は部材等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量又は部材等の名称を省略又は略記することがある。
<<第1実施形態>>
本発明の第1実施形態を説明する。図1に示す如く、第1実施形態に係る車両1に対して、ECU(車両制御ECU)2とGPS処理部3が搭載されている。車両1は、例えば路面を走行可能な自動車である。GPS処理部3は車両1内に設置されたCAN通信線を介してECU2に接続され、ECU2及びGPS処理部3はCAN通信線を介し互いに双方向通信が可能となっている。尚、GPS処理部3はECU2に内蔵されるものであっても良い。
ECU2は、車両1を制御するための電子制御装置(Electronic Control Unit)である。ECU2は、例えば、車両1のエンジン(内燃機関)における燃料噴射を制御する燃料噴射制御機能や、車両1の走行速度を制御する走行速度制御機能を実現する。
GPS処理部3は所定地情報取得部として機能する。GPS処理部3は、グローバルポジショニングシステム(GPS)を形成する衛星からの送信信号を受信して、受信信号に基づき車両1の所在地(換言すれば現在地)を検出し、車両1の所在地を示す所在地情報を取得する。所在地情報は、車両1の存在位置の緯度及び経度を含む。所在地情報は、更に、車両1の存在位置の高度を含む場合もある。
ECU2は、予め与えられた制御プログラムに従って車両1を制御する。この制御プログラムの書き換えはリプログラミングと称される。リプログラミングは、主として制御プログラムの改良(所謂バージョンアップ)のために実行される。以下、リプログラミングはリプロと略記されることがある。
図2にリプログラミングを実現するリプログラミングシステムの構成を示す。リプログラミングシステムは、ECU2及びGPS処理部3と、演算処理装置の例であるパーソナルコンピュータ4(以下、PC4と称する)と、を含んで構成される。ECU2及びPC4間は所定の配線により接続され、ECU2及びPC4は当該配線を介し互いに双方向通信が可能となっている。尚、ECU2及びPC4は無線接続されていても良く、この場合、ECU2及びPC4は無線により双方向通信が可能とされる。
ECU2は、CPU(Central Processing Unit)21と、RAM(Random access memory)22と、ROM(Read only memory)23と、備える。CPU21には、プログラム実行部24と、メモリ制御部の例としてのROM制御部25が備えられる。尚、ROM制御部25は、ECU2内であって且つCPU21外に設けられる部位であっても良い。
ROM23は、ROM23内の記憶内容の書き換えが可能な不揮発性メモリであって、例えばフラッシュメモリにて構成される。ROM23は制御プログラムを不揮発的に記憶するプログラムメモリ26を有する。プログラム実行部24は、プログラムメモリ26に記憶された制御プログラムを実行することでECU2に割り当てられた機能を実現する。RAM22は制御プログラムの実行の際に生じる一時的なデータを記憶する。
ROM制御部25は、ROM23に対して任意のデータを書き込むことができる。例えば、ROM制御部25は、プログラムメモリ26に第1制御プログラムが記憶されているときにプログラムメモリ26に記憶される制御プログラムを第1制御プログラムとは異なる第2制御プログラムに書き換える機能を有し、この書き換えがリプログラミングに相当する。第2制御プログラムへの書き換えが行われる際、第2制御プログラムはPC4からECU2に対して提供される。
プログラム実行部24は、プログラムメモリ26に第1制御プログラムが記憶されている状態では第1制御プログラムを実行し、プログラムメモリ26に第2制御プログラムが記憶されている状態では第2制御プログラムを実行する。第2制御プログラムは、例えば、第1制御プログラムの一部を改訂したものである。
PC4は、表示部41と、入力IF(入力インターフェース)42と、記憶部43と、プロセッサ44と、を備える。表示部41は液晶ディスプレイパネル等から成り、プロセッサ44の制御の下、ユーザが視認可能な任意の画像を表示する。入力IF42は、キーボートやポインティングデバイス等から成り、ユーザからの情報の入力を受け付ける。ユーザとはPC4の使用者を意味する又はPC4の使用者を含む。記憶部43は、磁気ディスクや半導体メモリから成り、任意の情報を記憶する。プロセッサ44は、CPU、ROM及びRAM等から成り、記憶部43に記憶されたPC用プログラムを実行することを通じ、入力IF42に対する入力情報に基づきつつ、表示部41の表示内容を制御したり、記憶部43の記憶内容を変更したりすることに加え、リプログラミングの実現に関与する(詳細は後述)。
また、ECU2のROM23には、複数の店舗分の店舗組情報が予めテーブルデータとして記憶されている。図3にROM23に記憶されたデーブルデータTBLの構造を示す。複数の店舗について店舗ごとに店舗組情報が定義され、デーブルデータTBLには複数の店舗分の店舗組情報が格納されている。ここでは、店舗として計n個の店舗A[1]〜A[n]があって、店舗A[1]〜A[n]に対する計n個の店舗組情報がデーブルデータTBLに格納されているものとする。nは2以上の整数である。但し “n=1”であっても良い。以下では、特に記述無き限り、nは2以上の整数であるとする。
店舗A[1]〜A[n]の夫々は、リプログラミングの実行が許可された正規の店舗(車両の販売店)である。各店舗組情報は、店舗名と、対応する店舗の所在地を示す店舗所在地情報と、対応する店舗の固有識別情報と、対応する店舗に割り当てられたパスワードと、を含んでいる。図3では、店舗A[1]〜A[n]の店舗名に対しても記号“A[1]〜A[n]”を割り振っている。店舗A[i]に対する店舗組情報を記号“G[i]”により表すと共に、店舗組情報G[i]に含まれる店舗所在地情報、固有識別情報、パスワードを、夫々、“B[i]”、“C[i]”、“D[i]”により表す(iは任意の整数)。
そうすると、店舗A[i]に対応する店舗組情報G[i]は、店舗A[i]の店舗名と、店舗A[i]の所在地を示す店舗所在地情報B[i]と、店舗A[i]に対して固有に割り当てられた固有識別情報C[i]と、店舗A[i]に対して固有に割り当てられたパスワードD[i]と、を含んでいる。固有識別情報C[1]〜C[n]は互いに異なっており、パスワードD[1]〜D[n]も互いに異なっている。
図4に示す如く、プログラムメモリ26に第1制御プログラムが記憶されている状態を第1記憶状態と称し、プログラムメモリ26に第2制御プログラムが記憶されている状態を第2記憶状態と称する。以下、第1記憶状態から第2記憶状態へ遷移させる方法について説明するが、この遷移に先立って、PC4の記憶部43には第2制御プログラムが保持されているものとする。図5に示す如く、PC4はインターネット網などのネットワーク網を介してサーバ機器SVに接続可能であり、第2制御プログラムはサーバ機器SVからネットワーク網を介してPC4に提供される。サーバ機器SVは、例えば、車両1の製造業者又は協力業者にて所有及び運営されるコンピュータ機器である。但し、PC4への第2制御プログラムの提供方法は任意であり、第2制御プログラムを格納した記録媒体(不図示)をPC4の記録媒体読み取り装置(不図示)に挿入することで第2制御プログラムがPC4に提供されても良い。
[リプログラミング工程]
図6及び図7に、第1記憶状態から第2記憶状態へ遷移させるためのりリプログラミング工程のフローチャートを示す。当該工程は車両1が停止している状態で実行され、基本的には車両1が店舗A[1]〜A[n]の何れかに持ち込まれた状態で実行される。リプログラミング工程はステップS11〜S27、S60〜S62、S70及びS80〜S82の各処理を含んで構成される。
まずステップS11において作業者がPC4とECU2を双方向通信が可能な形態で接続する。基本的に作業者はPC4のユーザと一致することが想定されるが、PC4のユーザと異なり得る。続くステップS12において、PC4のユーザが入力IF42を操作することでPCリプロ用プログラムを起動させる。PCリプロ用プログラムとは、PC4の記憶部43に記憶されたPC用プログラムの内、リプログラミングの実現に関与するPC用プログラムを指し、事前にサーバ機器SV等からPC4に提供されている。リプログラミング工程を構成する各ステップの処理の内、PC4にて実行される処理は、PCリプロ用プログラムに従って実行される。
PCリプロ用プログラムが起動すると、ステップS13において、PC4(例えばプロセッサ44)は所定の起動信号をECU2に対して送信する。ECU2にて起動信号が受信されるとステップS14に進む。ステップS14において、ECU2(例えばROM制御部25)は、GPS処理部3にて取得された、車両1の現在の所在地を示す所在地情報PCRTを参照し、所在地情報PCRTをテーブルデータTBL中の店舗所在地情報B[1]〜B[n]と比較する。
店舗A[i]の所在地は予め定められた登録地であって、リプログラミングシステムでは、車両1(ECU2)が何れかの登録地にあるときにのみ、リプログラミングを許可しうる。ステップS14において、ECU2(例えばROM制御部25)は、所在地情報PCRTにて示される車両1の現在の所在地が、店舗所在地情報B[1]〜B[n]に示される店舗A[1]〜A[n]の所在地の何れかと適合する場合に限り場所条件が充足すると判断してステップS15への移行を発生させ、そうでない場合には、所定の所在地エラー信号をPC4に送信して図6及び図7のリプログラミング工程の動作を終了させる。
例えば、車両1の所在地及び店舗A[i]の所在地が経度及び緯度にて特定される場合、ステップS14において、経度及び緯度にて特定される車両1の所在地と経度及び緯度にて特定される店舗A[i]の所在地とを比較し、所在地情報PCRTにて示される車両1の現在の所在地と店舗A[i]の所在地との距離が所定距離以下である場合、車両1の現在の所在地が店舗A[i]の所在地に適合すると判断し、そうでない場合、車両1の現在の所在地が店舗A[i]の所在地に適合しないと判断する。
ステップS15において、ECU2(例えばROM制御部25)は所定の所在地適合信号をPC4に送信し、また自身が管理する変数pに“0”を代入する。PC4にて所在地適合信号が受信されるとステップS16に進む。
ステップS16において、PC4のプロセッサ44は、ユーザ名及びパスワードの入力を受け付けるためのパスワード入力画像(換言すればユーザ名及びパスワードの入力を要求するパスワード入力画像)を表示部41に表示させ、パスワード入力画像が表示されている状態でユーザ名及びパスワードの入力を受け付ける。PC4のユーザはキーボード等の入力IF42に対してユーザ名及びパスワードを入力することができる。入力されるべきユーザ名及びパスワードは、図3のテーブルデータTBL内の店舗識別情報及びパスワードに対応している。ユーザ名及びパスワードが入力されるとステップS17に進む。
図8の画像600はパスワード入力画像の例である。ユーザがユーザ名及びパスワードを入力して、パスワード入力画像600に含まれる所定のOKアイコンを選択する操作を入力IF42に入力すると、入力されたユーザ名及びパスワードがPC4からECU2に送信され、ステップS17においてECU2(例えばROM制御部25)によりパスワード照合処理が行われる。
リプログラミングの実行が許可された正規の店舗A[i]に対しては、店舗識別情報C[i]及びパスワードD[i]が予め与えられている。例えば、正規の店舗A[i]に設置されたPC4に対して、PCリプロ用プログラムと共に店舗識別情報C[i]及びパスワードD[i]がサーバ機器SVから提供される。店舗A[i]の店員としてのユーザは、ステップS16において、ユーザ名として店舗識別情報C[i]を入力し且つパスワードとしてパスワードD[i]を入力する。
ステップS17のパスワード照合処理において、ECU2(例えばROM制御部25)は、ステップS14にて取得された所在地情報PCRTに対応する店舗組情報中の店舗識別情報及びパスワードをテーブルデータTBLから抽出し、抽出した店舗識別情報及びパスワードをPC4から受信したユーザ名及びパスワードと照合する。そして、抽出した店舗識別情報、パスワードが、夫々、PC4から受信したユーザ名、パスワードと一致する場合には、パスワード条件が充足してステップS17からステップS18への移行を発生させる一方、そうでない場合には、ステップS60への移行を発生させる。
例えば、所在地情報PCRTに示される車両1の現在の所在地が店舗A[1]の所在地と適合している場合、店舗A[1]に対応する店舗組情報G[1]中の店舗識別情報C[1]及びパスワードD[1]が抽出され、PC4から受信したユーザ名が店舗識別情報C[1]と一致し且つPC4から受信したパスワードがパスワードD[1]と一致している場合に限りステップS18への移行が発生し、そうでない場合にはステップS60への移行が発生する。車両1の現在の所在地が店舗A[2]等の所在地と適合している場合も同様である。
ステップS18において、ECU2(例えばROM制御部25)は所定のパスワード適合信号をPC4に送信する。PC4にてパスワード適合信号が受信されるとステップS19(図7参照)に進む。
ステップS60に移行した場合、ECU2(例えばROM制御部25)は、ステップS60にて変数pに“1”を加算してからステップS61にて変数pを所定の上限値pLIMと比較し、“p≧pLIM”が不成立の場合には所定のパスワードエラー信号をPC4に送信する。PC4にてパスワードエラー信号が受信されるとステップS16に戻ってステップS16以降の処理が繰り返される。一方、ステップS61にて“p≧pLIM”が成立している場合には、ECU2(例えばROM制御部25)により第1不正条件が成立すると判断され、ステップS62に進んで不正対応処理が実行され、その後、図6及び図7のリプログラミング工程の動作を終了させる。不正対応処理については後述される。
上限値pLIMは1以上の任意の値を有していて良い。“pLIM=1”とすることも可能であるが、パスワード等の誤入力も有り得るため、上限値pLIMは2以上であることが好ましい。パスワード等の誤入力でステップS62に移行することが実質的に無いように、上限値pLIMとして十分に大きな値(例えば10000)を設定しておくことも可能であるし、ステップS60の後は、変数pの値に関係なく常にステップS16に戻るようにしても良い(この場合、ステップS62の処理は削除される)。
尚、ステップS17における照合をPC4にて行わせるような変形も可能である。この場合、ECU2によりテーブルデータTBLから上記の如く抽出された店舗識別情報及びパスワードを、ECU2からPC4に送信すると良い。
ステップS19(図7参照)において、PC4(例えばプロセッサ44)は所定のセキュリティー情報をECU2に対して送信する。セキュリティー情報は、リプログラミングの実行に許可を与えるための情報の1つとして予めECU2に登録されている(例えばROM23内に予め格納されている)。例えば、正規のPCリプロ用プログラムにはセキュリティー情報が組み込まれており、正規のPCリプロ用プログラムは、自身に組み込まれたセキュリティー情報をステップS19においてECU2に送信する。或いは、リプログラミングの実行が許可された正規の店舗A[i]に対して、何らかの媒体(紙媒体や、光ディスク等の記録媒体)を経由してセキュリティー情報が知らされており、店舗A[i]の店員としてのユーザが入力IF42を介してセキュリティー情報をPC4に与えるようにしても良い。
セキュリティー情報がECU2にて受信されると、ECU2にてステップS20のセキュリティキー情報照合処理が実行される。セキュリティキー情報照合処理において、ECU2(例えばROM制御部25)は、ECU2に予め登録されている(例えばROM23内に予め格納されている)セキュリティー情報と、PC4から受信されたセキュリティー情報とを照合し、それらが一致する場合には、セキュリティー適合条件が充足してステップS20からステップS21への移行を発生させる一方、そうでない場合には、第2不正条件が成立すると判断してステップS70への移行を発生させる。
ステップS70ではECU2(例えばROM制御部25)により不正対応処理が実行され、その後、図6及び図7のリプログラミング工程の動作が終了される。不正対応処理については後述される。尚、ステップS70に移行した場合、不正対応処理を行うことなく、単にリプログラミング工程の動作を終了するようにしても良い。
ステップS21において、ECU2(例えばROM制御部25)は所定のセキュリティー情報適合信号をPC4に送信し、また自身が管理する変数qに“0”を代入する。PC4にてセキュリティー情報適合信号が受信されるとステップS22に進む。
ステップS22において、PC4のプロセッサ44は、ユーザに対して課題を与えて回答を求める課題画像を生成して表示部41に表示させ、課題画像が表示されている状態で、ユーザからの回答の入力を受け付ける。PC4のユーザはキーボード等の入力IF42に対して(換言すれば入力IF42を介しPC4に対して)回答を入力することができる。
図9の画像620は課題画像の例である。画像620にて例示される課題画像は、乱数発生器(不図示)により発生された乱数の値を所定の通常態様で示す画像に対し、所定の加工処理を加えた画像であり、回答を導出する主体が人間であるかどうかを識別するためのものである。回答を導出する主体がコンピュータプログラムにて構成される所謂「ボット」である場合に、正しい回答が導き難くなるように加工処理が実行される。即ち、例えば、加工処理は、乱数の値を構成する各桁の数値の画像を不規則に回転、拡大又は縮小する処理、画像にノイズを重畳する処理、画像をぼかす処理、及び、画像に対して不規則の水玉模様を付加する処理の内の何れか1以上の処理を含む。
乱数発生器はPC4のプロセッサ44に設けられるものであっても良いし、ECU2(例えばROM制御部25)に設けられるものであっても良い。乱数発生器がECU2に設けられる場合には、乱数発生器にて発生された乱数の値が通信によりECU2からPC4に伝達される。以下では、乱数発生器がECU2に設けられる場合を例にとる。
ユーザが回答を入力して、課題画像に含まれる所定のOKアイコンを選択する操作を入力IF42に入力すると、ステップS22からステップS23に進んでステップS23の回答照合処理が実行される。上述の如く乱数発生器がECU2に設けられる場合には、ユーザにより入力された回答がPC4からECU2に送信され、回答照合処理において、ECU2(例えばROM制御部25)は、PC4から受信した回答を表す数値を、正解の回答を表す数値と比較し、それらが一致している場合には、回答正解条件が充足してステップS23からステップS24への移行を発生させる一方、そうでない場合には、ステップS80への移行を発生させる。正解の回答を表す数値は、乱数発生器が発生した数値に相当する。
例えば、発生された乱数の値が「8240」であって且つ図9の課題画像620が生成されて表示部41に表示された場合において、回答として数値「8240」を入力すればステップS24への移行が発生し、回答として数値「8240」以外の数値や記号を入力すればステップS80への移行が発生する。
ステップS80に移行した場合、ECU2(例えばROM制御部25)は、ステップS80にて変数qに“1”を加算してからステップS81にて変数qを所定の上限値qLIMと比較し、“q≧qLIM”が不成立の場合には所定の回答エラー信号をPC4に送信する。PC4にて回答エラー信号が受信されるとステップS22に戻ってステップS22以降の処理が繰り返される。一方、ステップS81にて“q≧qLIM”が成立している場合には、ECU2(例えばROM制御部25)により第3不正条件が成立すると判断され、ステップS82に進んで不正対応処理が実行され、その後、図6及び図7のリプログラミング工程の動作を終了させる。不正対応処理については後述される。
上限値qLIMは1以上の任意の値を有していて良い。“qLIM=1”とすることも可能であるが、回答の誤入力も有り得るため、上限値qLIMは2以上であることが好ましい。回答の誤入力でステップS82に移行することが実質的に無いように、上限値qLIMとして十分に大きな値(例えば10000)を設定しておくことも可能であるし、ステップS80の後は、変数qの値に関係なく常にステップS22に戻るようにしても良い(この場合、ステップS82の処理は削除される)。
ステップS24において、ECU2(例えばROM制御部25)は所定の回答適合信号をPC4に送信する。PC4にて回答適合信号が受信されるとステップS25に進む。回答適合信号は、新たな制御プログラム(ここでは第2制御プログラム)の送信を要求する信号に相当し、回答適合信号の送信を以って、ROM制御部25はリプログラミングの許可を与える。
ステップS25において、PC4のプロセッサ44は、プログラムメモリ26に新たに書き込まれるべき第2制御プログラムをECU2に送信する。ECU2にて第2制御プログラムが受信されると、ステップS26において、ROM制御部25は、プログラムメモリ26に記憶される制御プログラムを第1制御プログラムから第2制御プログラムに変更する(即ち書き換える)リプログラミングを実行する。当該リプログラミングが完了するとステップS27において、ECU2からPC4に所定のリプログラミング完了信号が送信され、リプログラミング完了信号の送受信を以って図6及び図7のリプログラミング工程の動作が終了する。
尚、上述の如く、乱数発生器はPC4のプロセッサ44に設けられるものであっても良く、この場合には、ステップS23の回答照合処理はプロセッサ44にて実行されると共に、ステップS24ではPC4からECU2に対し回答適合信号が送信されることになり、ECU2にて回答適合信号が受信されることでリプログラミングの準備が整うことになる。また、乱数発生器がPC4のプロセッサ44に設けられる場合、変数qの管理を含むステップS80及びS81の処理はプロセッサ44にて実行されて良く、この場合、プロセッサ44側で回答の正解/不正解を判断可能であるため、上述したようなECU2からPC4への回答エラー信号の送信は不要である。
リプログラミングの実行を試みる者として、正規実行者と、それ以外の不正実行者とが想定される。正規実行者は、店舗A[1]〜A[n]の何れかに属する正規の店員である。不正実行者は、不正にリプログラミングを実行しようとする者である。基本的に正規実行者が上記ユーザとなるが、不正実行者も上記ユーザとなりうる。不正実行者として、不正なリプログラミングを行おうとする車両1の所有者や、車両1の所有者からの依頼を受けた改造業者の店員が挙げられる。
本実施形態に係るリプログラミングシステムでは、所定のリプログラミング条件が充足したときリプログラミング(ステップS26)を実行する一方で、リプログラミング条件が充足せずに所定の不正条件が充足したとき、不正対応処理を実行する。不正対応処理として、不正実行者にペナルティを与えるような処理を実行することができ、特に、車両1の走行に影響を与えるような処理を実行することができる。
これにより、不正なリプログラミングを実行しようとする意志が生じ難くなるという効果が期待され、不正なリプログラミングの実行による、車両1の走行の安全性劣化等を抑制することが可能となる。
リプログラミング条件は、図7のステップS26に至るために充足すべき条件に相当する。不正実施者がリプログラミングし難くなるように、リプログラミング条件は、車両1の所在地が所定の登録地に適合するという場所条件を含んでいると良い。上述の例では、登録地は正規の店舗A[1]〜A[n]の所在地に相当し、場所条件が充足したときに、図6のステップS14からステップS15への移行が発生する。n≧2”である場合には、車両1の所在地が店舗A[1]〜A[n]の所在地の何れかに適合するときに場所条件が充足する。
リプログラミング条件に上記場所条件を含めておくことで、不正実行者による不正なリプログラミングが行われ難くなり、もって、不正なリプログラミングの実行による、車両1の走行の安全性劣化等を抑制することが可能となる。
上述の如く、所在地情報を利用することで正規の店舗でしかリプログラミングが実行されないような仕組みが導入されているが(ステップS14参照)、不正実行者が正規の店舗の近くに車両1を配置してリプログラミングを実行しようとした場合、上記の仕組みが突破されてステップS14からステップS15への移行が発生しうる。このような場合でも、ステップS15以降の処理にて不正なリプログラミングの実行が成され難くなっている。
具体的には、ステップS16及びS17によるパスワードの認証がある。即ち、リプログラミング条件は、ユーザにより所定のパスワードが入力されるというパスワード条件を含んでいると良い。正規のパスワードはECU2内に予め設定及び登録されているが、特筆すべき点は、パスワードが登録地ごとに設定されている点である。即ち、第1登録地に相当する店舗A[1]の所在地に対してはパスワードD[1]が設定され、第2登録地に相当する店舗A[2]の所在地に対してはパスワードD[2]が設定されている。
登録地ごとパスワードを設定しておくことで、不正実行者がパスワード照合処理を突破し難くなる(即ちステップS17からステップS18への移行が発生し難くなる)。全ての登録地に対して共通のパスワードが設定されていた場合、不正実行者が何らかの不正な手段で当該共通のパスワードを一旦取得すれば、全ての登録地又は全ての登録地近辺にて不正なリプログラミングが可能となりうる。これに対し、登録地ごとにパスワードを設定しておけば、或る登録地用のパスワードは当該登録地に対してのみ有効となるため、不正なリプログラミングの実行に対するハードルが高まる。即ち、不正実行者による不正なリプログラミングが行われ難くなり、もって、不正なリプログラミングの実行による、車両1の走行の安全性劣化等を抑制することが可能となる。
不正条件として、ステップS17を経由してステップS62に至るための第1不正条件、ステップS20を経由してステップS70に至るための第2不正条件、及び、ステップS23を経由してステップS82に至るための第3不正条件、がある。
第1不正条件に関し、“pLMT=1”である場合には、ステップS17のパスワード照合処理の実行を通じてステップS60に至るとき、第1不正条件が成立してステップS62に至る。即ち、PC4に対して入力されたユーザ名及びパスワードがテーブルデータTBL中の対応する店舗識別情報及びパスワードと一致しないとき、第1不正条件が成立してステップS62に至る。
第1不正条件に関し、“pLMT≧2”である場合には、ステップS17のパスワード照合処理の実行を通じてステップS60に至るという処理が連続してpLMT回以上あったとき、第1不正条件が成立してステップS62に至る。即ち、PC4に対して入力されたユーザ名及びパスワードがテーブルデータTBL中の対応する店舗識別情報及びパスワードと一致しないことが、pLMT回以上連続して生じたとき、第1不正条件が成立してステップS62に至る。
第1不正条件に関連する条件として、リプログラミング条件には上記パスワード条件が含まれることになる。ステップS17のパスワード照合処理にてパスワード条件の充足/不充足が判断される。
第2不正条件は、リプログラミング工程にてECU2に送信されたセキュリティー情報が、ECU2に予め登録及び設定されているセキュリティー情報と一致しないという条件であり、ステップS20を経由してステップS70に至ることが、第2不正条件の成立に相当する。
第2不正条件に関連する条件として、リプログラミング条件にはセキュリティー適合条件が含まれることになる。セキュリティー適合条件は、リプログラミング工程にてECU2に送信されたセキュリティー情報がECU2に予め登録及び設定されているセキュリティー情報と一致するという条件であり、ステップS20にて、セキュリティー適合条件及び第2不正条件の何れかが充足しているかが判断される。
第3不正条件に関し、“qLMT=1”である場合には、ステップS23の回答照合処理の実行を通じてステップS80に至るとき、第3不正条件が成立してステップS82に至る。即ち、回答照合処理において課題に対し正解の回答と異なる誤回答があったとき、第3不正条件が成立してステップS82に至る。
第3不正条件に関し、“qLMT≧2”である場合には、ステップS23の回答照合処理の実行を通じてステップS80に至るという処理が連続してqLMT回以上あったとき、第3不正条件が成立してステップS82に至る。即ち、回答照合処理において課題に対し正解の回答と異なる誤回答が連続してqLMT回以上あったとき、第3不正条件が成立してステップS82に至る。
第3不正条件に関連する条件として、リプログラミング条件には回答正解条件が含まれることになる。回答正解条件は、ユーザに提示された課題に対する回答が所定の正解回答に適合するという条件である。ステップS23の回答照合処理にて回答正解条件の充足/不充足が判断される。上述の乱数の例では、入力された回答の数値が、乱数の値としての正解回答に一致するとき、課題に対する回答が所定の正解回答に適合することになる。
ボットがパスワード等に対応するかもしれないデータ群を次々とPC4に送りつけることでパスワード照合処理は突破されるおそれがある。特に、パスワード照合処理に関わる上限値pLMTが十分に大きく設定されている場合、又は、ステップS16に至った後はステップS18に達するまでステップS16及びS17の処理が無制限に繰り返し実行されるようリプログラミングシステムが構成されている場合には、パスワード照合処理はボットにより何れ突破されるおそれがある。これを考慮し、本実施形態では、ボットでは突破しにくい課題を提示し、誤回答により第3不正条件が成立した場合には不正対応処理を行うようにしている。これにより、ペナルティの発生をおそれて、不正なリプログラミングを実行しようとする意志が生じ難くなるという効果が期待され、不正なリプログラミングの実行による、車両1の走行の安全性劣化等を抑制することが可能となる。
[不正対応処理]
上述のステップS62、S70又はS82にて実行することのできる不正対応処理として、3種類の不正対応処理、即ち第1不正対応処理〜第3不正対応処理を説明する。
―――第1不正対応処理―――
第1不正対応処理について説明する。第1不正対応処理は、車両1の走行に影響を与える不正対応処理に属する。
図10に示す如く、第1不正対応処理において、ROM制御部25は、プログラムメモリ26内に記憶されている制御プログラムを消去する。制御プログラムの消去とは、制御プログラムの全部の消去であっても良いし、制御プログラムの一部の消去であっても良い。何れにせよ、車両1の走行を制御するための制御プログラムの消去により、車両1は走行不能となる。
即ち、第1不正対応処理が行われる前において、プログラムメモリ26に記憶されている制御プログラムの実行を通じて車両1は走行可能であるが、第1不正対応処理が行われると、車両1は走行不能となる。
具体的には例えば、制御プログラムにて実現されるべき機能が、車両1のエンジン(内燃機関)における燃料噴射を制御する燃料噴射制御機能を含んでいる場合、制御プログラムの全部又は一部が消去されることで燃料噴射が行われなくなり、車両1は走行不能となる。但し、ここでは、燃料噴射を利用したエンジンのみが車両1の動力となることを想定している。仮に車両1が蓄電池の放電電力を利用して走行する場合にあって、且つ、制御プログラムにて実現されるべき機能が蓄電池の放電制御を含んでいる場合、制御プログラムの全部又は一部が消去されることで放電制御が行われなくなり、車両1は走行不能となる。
不正なリプログラミングを行おうとしたときに、車両1が走行不能になりうるというペナルティを課しておくことで、不正なリプログラミングを実行しようとする意志が生じ難くなるという効果が期待される。不正なリプログラミングの実行による、車両1の走行の安全性劣化等を抑制することが可能となる。
―――第2不正対応処理―――
第2不正対応処理について説明する。第2不正対応処理も、車両1の走行に影響を与える不正対応処理に属する。
図11に示す如く、第2不正対応処理において、ROM制御部25は、プログラムメモリ26内に記憶されている制御プログラムを特定のプログラムに書き換える。ここにおける書き換えは、制御プログラムの全部の書き換えであっても良いし、制御プログラムの一部の書き換えであっても良い。第2不正対応処理での書き換えが行われる前にプログラムメモリ26内に記憶されていた制御プログラム(図4の第1制御プログラムに相当)を基準制御プログラムと称し、第2不正対応処理での書き換えにより、プログラムメモリ26内に記憶されることになった制御プログラムを制限モード制御プログラムと称する。制限モード制御プログラムは上記特定のプログラムを含む。上記特定のプログラムは、ECU2内に設けられた特定メモリ(不図示;ROM23内にあっても良い)に予め記憶されたものであっても良いし、PC4からECU2に提供されるものであっても良い。
基準制御プログラムは、車両1を本来の性能で走行させることのできる制御プログラムである。これに対し、制限モード制御プログラムは、車両1を本来の性能で走行させることのできない制御プログラムである。
制限モード制御プログラムは、車両1を走行不能とするための制御プログラムであっても良い。この場合、第2不正対応処理が行われる前において、プログラムメモリ26に記憶されている制御プログラム(基準制御プログラム)の実行を通じて車両1は走行可能であるが、第2不正対応処理が行われると、車両1は走行不能となる。具体的には例えば、制御プログラム(基準制御プログラム)にて実現されるべき機能が車両1のエンジンにおける燃料噴射を制御する燃料噴射制御機能を含んでいる場合、制限モード制御プログラムに燃料噴射を停止するプログラムを含ませておけば、車両1は走行不能となる。車両1が蓄電池の放電電力を利用して走行する場合であって、且つ、制御プログラム(基準制御プログラム)にて実現されるべき機能が蓄電池の放電制御を含んでいる場合、制限モード制御プログラムに蓄電池の放電を停止するプログラムを含ませておけば、車両1は走行不能となる。
基準制御プログラムによる、車両1が本来の性能で走行できる状態を基準状態と称する。制限モード制御プログラムは、基準状態よりも制限が加わった制限状態で車両1を走行可能とするための制御プログラムであっても良い。この場合、第2不正対応処理が行われる前において、プログラムメモリ26に記憶されている制御プログラム(基準制御プログラム)の実行を通じて車両1は基準状態で走行可能であるが、第2不正対応処理が行われると、車両1は制限状態にて走行可能となる。
制限状態とは、基準状態との比較において、車両1の走行に所定の制限が加わった状態を指す。具体的には例えば、基準制御プログラム及び制限モード制御プログラムにて実現されるべき機能が車両1の走行速度を制御する走行速度制御機能を含んでいる場合、制限モード制御プログラムは車両1の走行速度を所定の制限モード上限速度(例えば20km/時)以下に制限するプログラムを含む。基準状態では、基準制御プログラムにより、制限モード上限速度を超えて車両1の走行速度を高めることができる。また、車両1において、車両1のエンジンで生じた運動を車両1のタイヤの回転運動に変換する駆動機構に変速機が設けられている。基準制御プログラム及び制限モード制御プログラムにて実現されるべき機能が変速機での変速比を制御する変速機制御機能を含んでいる場合、基準制御プログラムでは変速比を5段階で可変させることができるが、基準制御プログラムでは変速比を1つの変速比に固定する、といった制限の行い方も取り得る。
不正なリプログラミングを行おうとしたときに、車両1が走行不能になりうる又は車両1の走行に制限が加わるというペナルティを課しておくことで、不正なリプログラミングを実行しようとする意志が生じ難くなるという効果が期待される。結果、不正なリプログラミングの実行による、車両1の走行の安全性劣化等を抑制することが可能となる。
―――第3不正対応処理―――
第3不正対応処理について説明する。第3不正対応処理は、車両1の走行に影響を与える不正対応処理に属さない。第3不正対応処理を実施する場合にあっては、ECU2内に設けられた不揮発性のフラグメモリ(不図示:ROM23内にあっても良い)にリプロ禁止フラグを記憶させておく。リプロ禁止フラグは“0”又は“1”の値をとる。ROM制御部25は、リプロ禁止フラグが“1”であるときリプログラミングの実行を禁止し、リプロ禁止フラグが“0”であるときにのみリプログラミングを実行し得る。リプロ禁止フラグは原則として“0”の値を持つ。
図12に示す如く、第3不正対応処理において、ROM制御部25はリプロ禁止フラグに“1”を代入することでリプログラミングの実行を禁止する。リプロ禁止フラグに“1”が設定されている限り、図6及び図7のリプログラミング工程の動作が行われたとしてもステップS26に至るまでの任意の段階でリプロ禁止フラグの値が確認されることで、ステップS26に至ることなくリプログラミング工程の動作が異常終了する。
ステップS62、S70及びS82にて実行される不正対応処理は、共通して第1不正対応処理であっても良いし、共通して第2不正対応処理であっても良いし、共通して第3不正対応処理であっても良い。或いは、ステップS62、S70及びS82にて実行される不正対応処理は、一部又は全部において互いに相違していても良い。例えば、ステップS62での不正対応処理では第3不正対応処理を実行し、ステップS82での不正対応処理では第1又は第2不正対応処理を実行するといったことが可能である。また例えば、ステップS60の後は、変数pの値に関係なく常にステップS16に戻るようにしておく一方で、上限値qLIMに1、2又は3等の値を設定しておき且つステップS82にて第1又は第2不正対応処理を実行するといったことも可能である。
また、上述したように、ステップS62、S70及びS82の内、1つ以上の任意のステップにおいて不正対応処理は非実行とされても良い。
[復帰工程;復帰処理]
不正対応処理の後、車両1の走行不能等から永遠に復帰できないと、酷であるとも言える。また、正規実行者の手違いにより不正対応処理が実行されることも有り得る。そこで、リプログラミングシステムでは復帰処理が用意されている。即ち、不正対応処理の実行後、後述の復帰工程の中で実行される復帰処理が実行されると、不正対応処理によるペナルティは解消され、ECU2は不正対応処理の実行前の状態に戻る。
図13に復帰工程のフローチャートを示す。復帰工程はステップS110〜S118の各処理を含む。復帰工程では、まずステップS110にて復帰パスワードの取得を行う。復帰パスワードの取得とは、例えば、PC4がサーバ機器SV等から復帰パスワードを取得することを指す。PC4がサーバ機器SVから復帰パスワードを取得する場合、正規の店舗(例えば店舗A[1])の店員としてのユーザが、車両1の車種及び型式を示す情報を含む復帰パスワード要求情報をPC4からサーバ機器SVに送信させる。復帰パスワード要求情報は、対応する店舗のユーザ名及びパスワード(例えばC[1]及びD[1])を含むものであっても良い。サーバ機器SVにてパスワード要求情報が正規の店舗からのものであると認められれば、サーバ機器SVからPC4に対して復帰パスワードを含む情報が送信され、これによってPC4にて復帰パスワードが取得される。正規の店舗(例えば店舗A[1])に対し、何らかの媒体(紙媒体や、光ディスク等の記録媒体)を経由して復帰パスワードが提供されるようにしても良い。
PC4又は正規の店舗が取得する復帰パスワードと同じ復帰パスワードが、ECU2内に設けられた不揮発性の復帰パスワードメモリ(不図示;ROM23内にあっても良い)に予め格納されている。
ステップS110に続くステップS111において作業者がPC4とECU2を双方向通信が可能な形態で接続する。基本的に作業者はPC4のユーザと一致することが想定されるが、PC4のユーザと異なり得る。続くステップS112において、PC4のユーザが入力IF42を操作することでPCリプロ用プログラムを起動させる。ステップS112にて起動するPCリプロ用プログラムは、リプログラミング工程で使用されるPCリプロ用プログラムと同じものであって良く、PCリプロ用プログラムには復帰処理を担うプログラムも内包されているが、以下では、リプログラミング工程で使用されるPCリプロ用プログラムと、復帰工程で使用されるPCリプロ用プログラムとの混同を避けるべく、後者を便宜上、復帰機能付きPCリプロ用プログラムと称する。復帰工程を構成する各ステップの処理の内、PC4にて実行される処理は、復帰機能付きPCリプロ用プログラムに従って実行される。
復帰機能付きPCリプロ用プログラムが起動すると、ステップS113において、PC4(例えばプロセッサ44)は所定の起動信号をECU2に対して送信する。ECU2にて起動信号が受信されるとステップS114に進む。ステップS114において、ECU2(例えばROM制御部25)は、GPS処理部3にて取得された、車両1の現在の所在地を示す所在地情報PCRTを参照し、所在地情報PCRTをテーブルデータTBL中の店舗所在地情報B[1]〜B[n]と比較する。
上述の如く、店舗A[i]の所在地は予め定められた登録地であって、リプログラミングシステムでは、車両1(ECU2)が何れかの登録地にあるときにのみ、復帰処理を実行し得る。ステップS114において、ECU2(例えばROM制御部25)は、所在地情報PCRTにて示される車両1の現在の所在地が、店舗所在地情報B[1]〜B[n]に示される店舗A[1]〜A[n]の所在地の何れかと適合する場合に限り復帰場所条件が充足すると判断してステップS115への移行を発生させ、そうでない場合には、所定の所在地エラー信号をPC4に送信して図13の復帰工程の動作を終了させる。上記適合の有無の判別方法は、図6のステップS14に関連して上述した方法と同じである。
ステップS115において、ECU2(例えばROM制御部25)は所定の所在地適合信号に加えて、復帰パスワードを要求する復帰パスワード要求信号をPC4に送信する。PC4にて所在地適合信号及び復帰パスワード要求信号が受信されるとステップS116に進む。
図6及び図7のリプログラミング工程の説明では、ECU2にて不正対応処理が未だ行われていないことが想定されており、このため図6のステップS15では復帰パスワード要求信号が送信されていない。復帰処理をも考慮したECU2(例えばROM制御部25)は、PC4に所在地適合信号を送信する際、プログラムメモリ26内の記憶内容を確認し、第1不正対応処理によりプログラムメモリ26内の制御プログラムが消去されている場合、第2不正対応処理によりプログラムメモリ26内の制御プログラムが制限モード制御プログラムとなっている場合、又は、第3不正対応処理によりリプロ禁止フラグに“1”が設定されている場合には、所在地適合信号と共に復帰パスワード要求信号をPC4に送信する。
ステップS116において、PC4のプロセッサ44は、復帰パスワードの入力を受け付けるための復帰パスワード入力画像(換言すれば復帰パスワードの入力を要求する復帰パスワード入力画像;不図示)を表示部41に表示させ、復帰パスワード入力画像が表示されている状態で復帰パスワードの入力を受け付ける。PC4のユーザはキーボード等の入力IF42に対して復帰パスワードを入力することができる。ユーザが復帰パスワードを入力して、パスワード入力画像に含まれる所定のOKアイコン(不図示)を選択する操作を入力IF42に入力すると、入力された復帰パスワードがPC4からECU2に送信され、ステップS117においてECU2(例えばROM制御部25)により復帰パスワード照合処理が行われる。
ステップS117のパスワード照合処理において、ECU2(例えばROM制御部25)は、ECU2内の復帰パスワードメモリ(不図示)に予め格納されている復帰パスワードと、PC4から受信した復帰パスワードとの照合を行い、それらの復帰パスワードが一致する場合には、復帰パスワード条件が充足すると判断してステップS117からステップS118への移行を発生させる一方、そうでない場合には所定の復帰パスワードエラー信号をPC4に送信して図13の復帰工程の動作を終了させる。
ステップS118では復帰処理が実行される。復帰処理の具体的内容は、過去に実行された不正対応処理の内容に依存する。
ECU2にて過去に実行された不正対応処理が第3不正対応処理の場合、ステップS118の復帰処理はリプロ禁止フラグに“0”を代入する処理を含み、当該処理によって、リプログラミングが可能な状態に戻る。即ち、ECU2は第3不正対応処理の実行前の状態に戻される。
ECU2にて過去に実行された不正対応処理が第1又は第2不正対応処理の場合、ステップS118の復帰処理は、不正対応処理の実行前にプログラムメモリ26に記憶されていた制御プログラムを、再度、プログラムメモリ26に書き込む処理である。具体的には例えば、ステップS118の復帰処理において、第1制御プログラム(不正対応処理の実行前にプログラムメモリ26に記憶されていた制御プログラムに相当)がPC4からECU2に送信され、ECU2のROM制御25が、受信した第1制御プログラムをプログラムメモリ26に書き込む。これにより、ECU2は第1又は第2不正対応処理の実行前の状態に戻される。
ステップS118の復帰処理の後、続けて上述のリプログラミング工程が実行されるようにしても良い。ステップS118の復帰処理後のリプログラミング工程では、場所条件の充足/不充足の判定を省略し、図6のステップS16からリプログラミング工程を開始するようにしても良い(但し、この開始の際、変数pに“0”が代入される)。
このように、ECU2(例えばROM制御部25)は、不正対応処理の実行後、所定の復帰条件の充足下において、ECU2を不正対応処理の実行前の状態に戻す復帰処理を実行する。この際、復帰条件は、車両1の所在地が復帰用登録地に適合するという復帰場所条件を含んでいると良い。上述の例では、復帰用登録地は正規の店舗A[1]〜A[n]の所在地に相当し、場所条件が充足したときに、図13のステップS114からステップS115への移行が発生する。n≧2”である場合には、車両1の所在地が店舗A[1]〜A[n]の所在地の何れかに適合するときに場所条件が充足する。尚、復帰用登録地は、店舗A[1]〜A[n]の内の、一部の店舗の所在地であっても良い。
復帰条件に復帰場所条件を含めておくことで、不正実行者に課されたペナルティが不正実行者では解消され難くなる。結果、不正実行者は不正なリプログラミングを再度実行しようとは考えないようになると期待され、これを通じて、不正なリプログラミングの実行抑制効果が期待される。
また、復帰条件は、ユーザにより所定の復帰パスワードが入力されるという復帰パスワード条件を含んでいると良い。図13の復帰工程の例では、復帰パスワード条件が充足したときにのみステップS17からステップS18への移行が発生して復帰処理が実行される。
復帰条件に復帰パスワード条件を含めておくことで、不正実行者に課されたペナルティが不正実行者では解消され難くなる。結果、不正実行者は不正なリプログラミングを再度実行しようとは考えないようになると期待され、これを通じて、不正なリプログラミングの実行抑制効果が期待される。
<<第2実施形態>>
本発明の第2実施形態を説明する。第2実施形態では第1実施形態に対する補足事項、応用技術、変形技術等を説明する。第2実施形態は第1実施形態を基礎とする実施形態であり、第2実施形態において特に述べない事項に関しては、矛盾の無い限り、第1実施形態の記載が第2実施形態にも適用される。第2実施形態の記載を解釈するにあたり、第1及び第2実施形態間で矛盾する事項については第2実施形態の記載が優先されて良い。第2実施形態は以下の実施例EX2_1〜EX2_4を含む。
[実施例EX2_1]
実施例EX2_1を説明する。車両1に搭載されるECU2の個数は1であり得るが、通常は、複数のECU2が車両1に搭載される。この場合、車両1に搭載される各ECU2に対して第1実施形態に示した技術を適用することができる。
車両1に複数のECU2が搭載される場合、複数のECU2にて実現すべき多数の機能が各ECU2に割り振られることになる。複数のECU2は車両1に搭載されたCAN通信線を介して互いに双方向通信が可能であって良い。車両1の運転手が車両1のイグニッションキーを操作することで各ECU2への電力供給が開始されると、各ECU2が起動することになる。このとき、複数のECU2の内、任意の1以上のECU2のプログラムメモリ26に制御プログラムが記憶されていないとき(即ち不正対応処理の実行により制御プログラムが消去されているとき)、複数のECU2から成る車両制御システムは、異常が発生しているものとして車両1の走行を禁止する。
例えば、以下のような動作例が想定される。複数のECU2に含まれる統括ECUが、起動時において統括ECU以外の各ECU2に対して各ECU2の状態を問い合わせ、統括ECU以外の各ECU2は自身のプログラムメモリに格納された制御プログラムに従って、当該問い合わせに対する返信信号を統括ECUに返信する。統括ECUは、統括ECU以外の全ECU2から正常な返信信号を受信した場合、車両1の走行を許可するが、何れか1以上のECU2から正常な返信信号が受信されない場合、車両1の走行を禁止する制御を行う。車両1の走行を禁止する制御が行われているとき、車両1の走行制御を司るECU2(統括ECUでありうる)は、運転手による運転操作に拘わらず車両1を走行させない。
[実施例EX2_2]
実施例EX2_2を説明する。PC4とユーザとの間で操作又は情報を伝達するためのマンマシンインターフェースは、上述の例では、表示部41及び入力IF42により構成されている。
リプログラミング工程においては、図6のステップS16の段階でマンマシンインターフェースが、パスワード入力画像(図8参照)の表示を通じてユーザにパスワードの入力を要求し、ユーザからのパスワードの入力を受け付ける。但し、マンマシンインターフェースによるパスワードの入力の要求は必須ではなく、パスワードの入力を受け付けることにのみ注目すれば、マンマシンインターフェースは入力IF42のみによって構成されると考えても良い。
復帰工程においては、図13のステップS116の段階でマンマシンインターフェースが、復帰パスワード入力画像の表示を通じてユーザに復帰パスワードの入力を要求し、ユーザからの復帰パスワードの入力を受け付ける。但し、マンマシンインターフェースによる復帰パスワードの入力の要求は必須ではなく、復帰パスワードの入力を受け付けることにのみ注目すれば、マンマシンインターフェースは入力IF42のみによって構成されると考えても良い。
またリプログラミング工程においては、図7のステップS22の段階でマンマシンインターフェースが、課題画像(図9参照)の表示を通じてユーザに課題を提示し、課題に対するユーザからの回答の入力を受け付ける。
第1実施形態に示した例では、課題画像にて表現される数値を読み取ることが課題となっているが(図9参照)、ユーザに提示される課題は任意である。但し、人間は正しい回答を容易に導くことができるがボットでは正しい回答を得難くなるような課題を用意することが望ましい。例えば、複数の写真画像の中からランダムに選出した写真画像を表示部41に表示し、表示された写真画像中の物体の名称を回答として求める課題を利用できる。課題は視覚的な課題以外の課題であっても良く、例えば、PC4に設けられたスピーカ(不図示)から文字列の音声を出力し、出力音声による文字列を回答として求める課題を利用しても良い。また例えば、表示部41がタッチパネルとして構成されている場合、表示部41に複数の点を表示して、表示された複数の点をユーザの指にてなぞることを求める課題を利用しても良い(この場合、表示された複数の点を実際にユーザの指にてなぞる操作をタッチパネル上で行うことが正しい回答となる)。
[実施例EX2_3]
実施例EX2_3を説明する。図6及び図7に示したリプログラミング工程の手順は例示に過ぎず、様々に変形家可能である。
図6及び図7に示したリプログラミング工程において、リプログラミングが実行される条件であるリプログラミング条件は、場所条件、パスワード条件、セキュリティー適合条件及び回答正解条件を含むが、場所条件、パスワード条件、セキュリティー適合条件及び回答正解条件の内、任意の1以上の条件はリプログラミング条件に含まれないようにしても良い。
例えば、図6及び図7に示したリプログラミング工程において、ステップS19以降の処理を削除するようにしても良い。この場合、ステップS18にてステップS26の処理に相当するリプログラミングが実行され、セキュリティー適合条件及び回答正解条件がリプログラミング条件に含まれないことになる。
或いは例えば、図6及び図7に示したリプログラミング工程において、ステップS22以降の処理を削除するようにしても良い。この場合、ステップS21にてステップS26の処理に相当するリプログラミングが実行され、回答正解条件がリプログラミング条件に含まれないことになる。
或いは例えば、図6及び図7に示したリプログラミング工程において、ステップS13〜S18及びS60〜S62の処理を削除するようにしても良い。この場合、ステップS12の後は直接ステップS19に移行し、場所条件及びパスワード条件がリプログラミング条件に含まれないことになる。
また、場所条件、パスワード条件、セキュリティー適合条件及び回答正解条件の何れとも異なる条件がリプログラミング条件に含まれていても良い。
同様に、図13に示した復帰工程において、復帰処理が実行される条件である復帰条件は、復帰場所条件及び復帰パスワード条件を含むが、復帰場所条件及び復帰パスワード条件の内、何れか一方の条件は復帰条件に含まれていなくても良く、また、復帰場所条件及び復帰パスワード条件の何れとも異なる条件が復帰条件に含まれていても良い。
また、既に述べた事項と部分的に重複するが、図6及び図7に示したリプログラミング工程において、ステップS60、S70及びS80の内、任意の1つ又は2つのステップを削除することも可能である。
ステップS60が削除される場合、ステップS61及びS62も併せて削除され、故にステップS60への移行を発生させる上述の状況(即ちパスワード条件が不充足の状況)においては、ユーザによるパスワード等の入力操作が単に無効とされて、ステップS17からステップS16に戻る或いはリプログラミング工程の動作が終了する。
ステップS70が削除される場合、ステップS70への移行を発生させる上述の状況(即ちセキュリティー適合条件が不充足の状況又は第2不正条件が充足の状況)において、ECU2にて受信したセキュリティー情報が単に無効とされる。この際、ステップS19及びS20の処理が繰り返されても良いし、リプログラミング工程の動作を終了しても良い。
ステップS80が削除される場合、ステップS81及びS82も併せて削除され、故にステップS80への移行を発生させる上述の状況(即ち回答正解条件が不充足の状況)においては、ユーザによる回答の入力操作が単に無効とされて、ステップS23からステップS22に戻る或いはリプログラミング工程の動作が終了する。
ステップS60、S70及びS80の内、任意の1つ又は2つのステップを削除することで、或る段階での不正に対しては操作等が無効になるだけであるが特定の段階での不正に対してはペナルティを課すといった動作が実現される。特に例えば、ステップS60、S70及びS80の内、前段側ステップを削除する一方で後段側ステップを削除しない場合、図6及び図7の工程における分岐処理を不正実行者が手間をかけて突破したのに、最後の方の不正行為に対して不正対応処理が実行されるといった特異なペナルティのかけ方を行うことができる。特異なペナルティによって不正の抑止効果が高まる可能性がある。尚、上記の前段側ステップはステップS60及びS70の内の少なくとも一方を含み、上記の後段側ステップはステップS70及びS80の内の少なくとも一方を含む。詳細には、前段側ステップがステップS60であるとき、後段側ステップはステップS70及びS80の内の少なくとも一方を含む。前段側ステップがステップS70であるとき、又は、前段側ステップがステップS60及びS70の双方を含むとき、後段側ステップはステップS80である。
[実施例EX2_4]
実施例EX2_4を説明する。実施例EX2_4では、車両1に複数のECU2が搭載されることを想定する。複数のECU2は共通の構成を有するが、複数のECU2に割り当てられた機能は複数のECU2間で互いに異なる。
複数のECU2は、割り当てられた機能により複数の系統に分類される。複数の系統は、例えば、エンジン制御系統、走行制御系統、空調機制御系統及びオーディオ制御系統を含み、以下では、これらの4つの系統にのみ注目する。エンジン制御系統に属するECU2は、自身が保持する制御プログラムの実行を通じて車両1のエンジンの制御を行う。走行制御系統に属するECU2は、自身が保持する制御プログラムの実行を通じて車両1の走行制御(例えば加速、減速の制御)を行う。空調機制御系統に属するECU2は、自身が保持する制御プログラムの実行を通じて車両1に設置された空調機の制御を行う。オーディオ制御系統に属するECU2は、自身が保持する制御プログラムの実行を通じて車両1に設置されたオーディオ機器の制御を行う。
正規の店舗A[1]〜A[n]の夫々に対し、全ての系統のECU2に対するリプログラミングの権限を与えておくことも可能であるが、複数の店舗間でリプログラミングの権限を互いに異ならせるようにしても良い。
例えば、店舗A[1]に対して全ての系統のECU2に対するリプログラミングの権限を与えておく一方で、店舗A[2]に対しては空調機制御系統及びオーディオ制御系統に属するECU2のみに対してリプログラミングの権限を与えておくといったことが可能である。これを実現するべく、以下のようにすることができる。説明の簡略化上、店舗A[1]及びA[2]にのみ注目する。
テーブルデータTBL(図3参照)における各店舗組情報に権限情報を含めておく。図14に示す如く、エンジン制御系統、走行制御系統、空調機制御系統及びオーディオ制御系統の何れかに属する全ECU2においては、テーブルデータTBL中の店舗組情報G[1]に対して“1”の権限情報を含めておく。エンジン制御系統及び走行制御系統の何れかに属する全ECU2においては、テーブルデータTBL中の店舗組情報G[2]に対して“0”の権限情報を含め、空調機制御系統及びオーディオ制御系統の何れかに属する全ECU2においては、テーブルデータTBL中の店舗組情報G[2]に対して“1”の権限情報を含めておく。“1”の権限情報はリプログラミングの権限があることを意味し、“0”の権限情報はリプログラミングの権限がないことを意味する。
図6及び図7のリプログラミング工程において、リプログラミングを実行する前の任意の段階で、ECU2(例えばROM制御部25)は、ステップS14にて取得された所在地情報PCRT又はステップS16にてPC4に入力されたユーザ名に基づき、PC4が存在する店舗を特定して、PC4が存在する店舗に対応付けられた権限情報に基づき、リプログラミングの実行又は非実行を決定する。
即ち、エンジン制御系統に属するECU2(例えばROM制御部25)は、PC4が存在する店舗が店舗A[1]である場合には、店舗A[1]に対応付けられた“1”の権限情報に基づきリプログラミングの権限があると判断し、上述のリプログラミング条件の充足を条件にリプログラミングを実行する。一方、エンジン制御系統に属するECU2(例えばROM制御部25)は、PC4が存在する店舗が店舗A[2]である場合には、店舗A[2]に対応付けられた“0”の権限情報に基づきリプログラミングの権限がないと判断し、上述のリプログラミング条件の充足/非充足に関係なくリプログラミングを実行しない。走行制御系統に属するECU2についても同様である。
空調機制御系統に属するECU2(例えばROM制御部25)は、PC4が存在する店舗が店舗A[1]である場合には、店舗A[1]に対応付けられた“1”の権限情報に基づきリプログラミングの権限があると判断し、上述のリプログラミング条件の充足を条件にリプログラミングを実行する。空調機制御系統に属するECU2(例えばROM制御部25)は、PC4が存在する店舗が店舗A[2]である場合にも、店舗A[2]に対応付けられた“1”の権限情報に基づきリプログラミングの権限があると判断し、上述のリプログラミング条件の充足を条件にリプログラミングを実行する。オーディオ制御系統に属するECU2についても同様である。
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。