"車両の内部に設置された電子制御装置と、前記電子制御装置に記憶されているプログラムを車両の外部から書き換える外部装置と前記電子制御装置とを接続するための通信経路に設置された中継装置と、を備え、前記中継装置は、前記電子制御装置の照合コードを記憶する中継側記憶手段と、前記外部装置からの要求に従い、プログラムの書換要求を前記電子制御装置へ送信する送信手段と、を備え、前記電子制御装置は、前記照合コードを記憶する制御側記憶手段と、前記書換要求を受信した場合に、その送信元が前記中継装置であるか否かを前記照合コードを用いて判定し、送信元が前記中継装置であると判定した場合にプログラムの書換えを許可し、前記中継装置でないと判定した場合にプログラムの書換えを禁止する判定手段と、を備えることを特徴とする車載通信システム。請求項1に記載の車載通信システムであって、前記中継装置は、前記中継側記憶手段が記憶する前記照合コードを更新する中継側更新手段を更に備え、前記電子制御装置は、前記制御側記憶手段が記憶する前記照合コードを、前記中継装置と同じタイミングで更新する制御側更新手段を更に備えることを特徴とする車載通信システム。請求項2に記載の車載通信システムであって、前記中継側更新手段は、前記中継側記憶手段が記憶する前記照合コードを用いて所定の演算を行うことにより、前記照合コードを更新し、前記制御側更新手段は、前記制御側記憶手段が記憶する前記照合コードを用いて前記中継装置と同じ演算を行うことにより、前記照合コードを更新することを特徴とする車載通信システム。請求項2又は請求項3に記載の車載通信システムであって、前記中継側更新手段及び前記制御側更新手段は、前記電子制御装置に記憶されているプログラムの書換えが完了したタイミングで、前記照合コードを更新することを特徴とする車載通信システム。請求項1から請求項4までのいずれか1項に記載の車載通信システムであって、前記判定手段は、前記照合コードと一義的に対応するコード対応値を前記中継装置に送信させ、前記コード対応値と前記制御側記憶手段が記憶する前記照合コードとが一義的に対応するか否かを判定することを特徴とする車載通信システム。請求項1から請求項5までのいずれか1項に記載の車載通信システムであって、複数の前記電子制御装置を備え、前記制御側記憶手段が記憶する前記照合コードは、前記電子制御装置ごとに固有のものであり、前記中継側記憶手段は、複数の前記電子制御装置ごとの前記照合コードを記憶することを特徴とする車載通信システム。しかしながら、前述した特許文献1に記載の構成では、不正な外部装置から電子制御装置へ中継装置を介さずに直接通信が行われると、電子制御装置に記憶されているプログラムが不正に書き換えられてしまう可能性がある。本発明は、こうした問題にかんがみてなされたものであり、外部装置から電子制御装置へ中継装置を介さずに通信が行われた場合にも、プログラムの書換えを禁止することのできる技術を提供することを目的としている。本発明請求項1の車載通信システムは、車両の内部に設置された電子制御装置と、外部装置と電子制御装置とを接続するための通信経路に設置された中継装置とを備える。なお、ここでいう外部装置とは、電子制御装置に記憶されているプログラムを車両の外部から書き換えるための装置である。そして、中継装置においては、中継側記憶手段が、電子制御装置の照合コードを記憶し、送信手段が、外部装置からの要求に従い、プログラムの書換要求を電子制御装置へ送信する。一方、電子制御装置においては、制御側記憶手段が、照合コードを記憶する。また、判定手段が、書換要求を受信した場合に、その送信元が中継装置であるか否かを照合コードを用いて判定し、送信元が中継装置であると判定した場合にプログラムの書換えを許可し、中継装置でないと判定した場合にプログラムの書換えを禁止する。このような車載通信システムによれば、電子制御装置は、プログラムの書換要求の送信元が正規の中継装置であるか否かを、照合コードに基づいて判定することができる。このため、外部装置から電子制御装置へ中継装置を介さずにプログラムの書換要求が直接送信された場合にも、プログラムの書換えを禁止することができる。したがって、外部装置と電子制御装置とを中継装置を回避して接続するといった手口の不正を抑制することができる。ところで、同一の照合コードを長期間使用するよりも、適当なタイミングで照合コードを更新した方がセキュリティ性を高くすることができる。そこで、中継装置において、中継側更新手段が、中継側記憶手段が記憶する照合コードを更新し、電子制御装置において、制御側更新手段が、制御側記憶手段が記憶する照合コードを、中継装置と同じタイミングで更新するようにしてもよい請求項2。このような車載通信システムによれば、照合コードを更新してセキュリティ性を向上させることができる。具体的には、中継側更新手段は、中継側記憶手段が記憶する照合コードを用いて所定の演算を行うことにより、照合コードを更新し、制御側更新手段は、制御側記憶手段が記憶する照合コードを用いて中継装置と同じ演算を行うことにより、照合コードを更新するようにしてもよい請求項3。このような車載通信システムによれば、更新後の照合コードの受渡しが不要となるため、照合コードの秘密状態を維持しやすくすることができる。また、中継側更新手段及び制御側更新手段は、電子制御装置に記憶されているプログラムの書換えが完了したタイミングで、照合コードを更新するようにしてもよい請求項4。このような車載通信システムによれば、プログラムの書換えごとに異なる照合コードが用いられるため、セキュリティ性を高くすることができる。ところで、プログラムの書換要求の送信元が正規の中継装置であるか否かを照合コードに基づいて判定する際に、照合コード自体の受渡しを行わないことが好ましい。そこで、判定手段は、照合コードと一義的に対応するコード対応値を中継装置に送信させ、コード対応値と制御側記憶手段が記憶する照合コードとが一義的に対応するか否かを判定するようにしてもよい請求項5。このような車載通信システムによれば、照合コード自体を受け渡す必要がないため、セキュリティ性を高くすることができる。また、車載通信システムが複数の電子制御装置を備える場合、制御側記憶手段が記憶する照合コードは、電子制御装置ごとに固有のものであり、中継側記憶手段は、複数の電子制御装置ごとの照合コードを記憶するようにしてもよい請求項6。このような車載通信システムによれば、照合コードが複数の電子制御装置で共通のものである場合と比較して、セキュリティ性を高くすることができる。以下、本発明が適用された実施形態について、図面を用いて説明する。[1.全体構成]図1は、実施形態の車載通信システム1の構成を示すブロック図である。車載通信システム1は、車両の内部における各部に設置された複数の電子制御装置以下ECUという。として、ゲートウェイECU以下GW-ECUという。10と、種々の機能を有する他の複数のECU20,20,...とを備える。GW-ECU10及び各ECU20は、共通の通信線であるバス30に接続され、バス30を介してCANControllerAreaNetworkプロトコルに従った相互通信を行う。GW-ECU10は、外部ツール50を車両の外部から接続するためのデータリンクコネクタ以下コネクタという。40とバス30とを接続する通信経路換言すれば、外部ツール50とECU20とを接続するための通信経路31に設置されている。外部ツール50とは、コネクタ40に接続された状態で、車両の内部に設置されたECU20に記憶されているプログラムの書換処理リプログラミングを行う機能を有した装置である。つまり、外部ツール50は、ECU20に直接接続されるのではなく、GW-ECU10を介して接続され、GW-ECU10は、外部ツール50とECU20との通信を中継する中継装置として機能する。GW-ECU10は、CPU11と、電気的に記憶内容の書換えが可能な不揮発性メモリであるフラッシュメモリ12とを備える。フラッシュメモリ12には、CPU11により実行されるソフトウェアのプログラムが記憶されている。また、フラッシュメモリ12には、各ECU20の照合コードが記憶されている。ここで、照合コードとは、GW-ECU10がECU20へプログラムの書換要求を送信した場合に、書換要求の送信元が正規のGW-ECU10であることを、ECU20が確認できるようにするための秘密情報である。なお、本実施形態では、照合コードが複数のECU20で共通であり、GW-ECU10は、1つの照合コードを記憶する。同様に、各ECU20も、CPU21及びフラッシュメモリ22を備え、フラッシュメモリ22には、CPU21により実行されるソフトウェアのプログラムと、GW-ECU10及び他の各ECU20と同一の照合コードとが記憶されている。[2.処理]図2は、コネクタに接続された状態の外部ツール50からプログラムの書換処理が要求された場合に、GW-ECU10及び他のECU20で実行される処理を示すフローチャートである。GW-ECU10のCPU11は、外部ツール50からプログラムの書換要求を受信するとS101、外部ツール50からの要求に従い、書換要求の対象となるECU以下対象ECUともいう。20へ、プログラムの書換要求を送信するS102。なお、外部ツール50とGW-ECU10との間では、従来と同様、GW-ECU10が外部ツール50の認証を行うことにより、不正な外部ツールからの書換要求をECU20へ送信しないようにすることができる。対象ECU20のCPU21は、GW-ECU10から書換要求を受信するとS201、書換要求の送信元が正規のGW-ECU10であるか否かを判定するための処理を行う。具体的には、まず乱数を発生し、発生した乱数を送信元のGW-ECU10へ送信するS202。また、発生した乱数に対し、フラッシュメモリ22に記憶されている照合コードを用いて、あらかじめ定められている演算を行うS203。一方、GW-ECU10のCPU11は、対象ECU20から乱数を受信するとS103、受信した乱数に対し、フラッシュメモリ12に記憶されている照合コードを用いて、あらかじめ定められている演算対象ECU20で行われる演算と同じ演算を行うS104。そして、その演算結果を対象ECU20へ送信するS105。対象ECU20のCPU21は、GW-ECU10から演算結果を受信するとS204、受信した演算結果と自身で行った演算結果とが一致するか否かを判定照合コードを照合するS205。そして、演算結果が一致しないと判定した場合書換要求の送信元が正規のGW-ECU10でない場合にはS205:NO、フラッシュメモリ22に記憶されているプログラムの書換えを禁止するS206。具体的には、書換えのためのデータが送信されてきても書換えを行わない状態になる。一方、演算結果が一致したと判定した場合書換要求の送信元が正規のGW-ECU10である場合にはS205:YES、フラッシュメモリ22に記憶されているプログラムの書換えを許可しS207、書換開始要求をGW-ECU10へ送信するS208。GW-ECU10のCPU11は、対象ECU20から書換開始要求を受信するとS106、外部ツール50から受信した書換プログラムを対象ECU20へ送信転送するS107。つまり、外部ツール50に対して対象ECU20との通信プログラムの書換処理を許可した状態となる。対象ECU20のCPU21は、GW-ECU10から書換プログラムを受信するとS209、受信した書換プログラムを用いてフラッシュメモリ22に記憶されているプログラムを書き換える書換処理を実行するS210。そして、書換処理が完了すると、書換完了通知をGW-ECU10へ送信するS211。GW-ECU10のCPU11は、対象ECU20から書換完了通知を受信するとS108、照合コードを更新させるための照合コード書換要求を、すべてのECU20へ送信するS109。また、自身のフラッシュメモリ12に記憶されている照合コードを更新するS110。本実施形態では、照合コードを一定の値だけカウントアップすることにより、照合コードを更新する。一方、対象ECU20及びその他のECU20の各CPU21は、GW-ECU10から照合コード書換要求を受信するとS212、自身のフラッシュメモリ22に記憶されている照合コードを更新するS213。具体的には、GW-ECU10と同様、照合コードを一定の値だけカウントアップすることにより、照合コードを更新する。これにより、GW-ECU10及びすべてのECU20の照合コードが同一の値に更新される。[3.効果]以上説明したように、本実施形態の車載通信システム1によれば、プログラムの書換え対象となるECU20は、プログラムの書換要求の送信元が正規のGW-ECU10であるか否かを、照合コードに基づいて判定することができるS201~S205。このため、外部ツール50からECU20へGW-ECU10を介さずにプログラムの書換要求が直接送信された場合にも、プログラムの書換えを禁止することができるS205:NO,S206。したがって、外部ツール50とECU20とをGW-ECU10を回避して接続する外部ツール50をバス30に直接接続するといった手口の不正を抑制することができる。具体的には、ECU20は、照合コードと一義的に対応するコード対応値乱数及び照合コードを用いた演算結果をGW-ECU10に送信させS202、コード対応値と自身の演算結果とが一致するか否かを判定するS203~S205。このため、照合コード自体を受け渡す必要がなく、セキュリティ性を高くすることができる。また、GW-ECU10とECU20とが、照合コードを同じタイミングで更新するためS109,S110,S212,S213、同一の照合コードを長期間使用する場合と比較して、セキュリティ性を向上させることができる。特に、ECU20に記憶されているプログラムの書換えが完了したタイミングで照合コードを更新するため、プログラムの書換えごとに異なる照合コードが用いられることとなり、セキュリティ性を高くすることができる。加えて、GW-ECU10とECU20とが、照合コードを用いた所定の演算照合コードを一定の値だけカウントアップする演算を行うことにより照合コードを更新するため、更新後の照合コードの受渡しが不要となり、照合コードの秘密状態を維持しやすくすることができる。なお、GW-ECU10が中継装置の一例に相当し、フラッシュメモリ12が中継側記憶手段の一例に相当し、S102が送信手段としての処理の一例に相当し、S110が中継側更新手段としての処理の一例に相当する。また、ECU20が電子制御装置の一例に相当し、フラッシュメモリ22が制御側記憶手段の一例に相当し、S202~S205が判定手段としての処理の一例に相当し、S213が制御側更新手段としての処理の一例に相当する。また、外部ツール50が外部装置の一例に相当する。[4.他の実施形態]以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。1上記実施形態では、照合コードが複数のECU20で共通であり、GW-ECU10が1つの照合コードを記憶する構成を例示したが、これに限定されるものではない。例えば、照合コードをECU20ごとに固有のものとして、GW-ECU10がECU20ごとの照合コードを記憶するようにしてもよい。このようにすれば、照合コードが複数のECU20で共通である場合と比較して、セキュリティ性を高くすることができる。2上記実施形態では、ECU20に記憶されているプログラムの書換えが完了したタイミングで照合コードを更新する構成を例示したが、照合コードを更新するタイミングはこれに限定されるものではない。例えば、イグニッションスイッチがオンしたことを示す信号を受信したタイミングなど、特定の信号を受信したタイミングであってもよい。3上記実施形態では、GW-ECU10とECU20とが、照合コードを用いた同一の演算照合コードを一定の値だけカウントアップする演算を行うことにより照合コードを更新する構成を例示したが、更新方法はこれに限定されるものではない。例えば、特定のタイミングプログラムの書換え完了時、イグニッションスイッチのオン時、等の時刻を示す値を用いて照合コードを設定算出するようにしてもよい。4上記実施形態では、GW-ECU10が、ECU20に記憶されている照合コードと同一の照合コードを記憶する構成を例示したが、必ずしも同一の情報を記憶する必要はない。例えば、ECU20に記憶されている照合コードと一義的に対応する情報を記憶するようにしてもよい。"