(57)【特許請求の範囲】
【請求項１】
車両の内部に設置された電子制御装置と、
前記電子制御装置に記憶されているプログラムを車両の外部から書き換える外部装置と前記電子制御装置とを接続するための通信経路に設置された中継装置と、
を備え、
前記中継装置は、
前記電子制御装置の照合コードを記憶する中継側記憶手段と、
前記外部装置からの要求に従い、プログラムの書換要求を前記電子制御装置へ送信する送信手段と、を備え、
前記電子制御装置は、
前記照合コードを記憶する制御側記憶手段と、
前記書換要求を受信した場合に、その送信元が前記中継装置であるか否かを前記照合コードを用いて判定し、送信元が前記中継装置であると判定した場合にプログラムの書換えを許可し、前記中継装置でないと判定した場合にプログラムの書換えを禁止する判定手段と、
複数の前記電子制御装置と、を備え、
前記制御側記憶手段が記憶する前記照合コードは、前記電子制御装置ごとに固有のものであり、
前記中継側記憶手段は、複数の前記電子制御装置ごとの前記照合コードを記憶する
ことを特徴とする車載通信システム。
【請求項２】
請求項１に記載の車載通信システムであって、
前記中継装置は、前記中継側記憶手段が記憶する前記照合コードを更新する中継側更新手段を更に備え、
前記電子制御装置は、前記制御側記憶手段が記憶する前記照合コードを、前記中継装置と同じタイミングで更新する制御側更新手段を更に備える
ことを特徴とする車載通信システム。
【請求項３】
請求項２に記載の車載通信システムであって、
前記中継側更新手段は、前記中継側記憶手段が記憶する前記照合コードを用いて所定の演算を行うことにより、前記照合コードを更新し、
前記制御側更新手段は、前記制御側記憶手段が記憶する前記照合コードを用いて前記中継装置と同じ演算を行うことにより、前記照合コードを更新する
ことを特徴とする車載通信システム。
【請求項４】
請求項２又は請求項３に記載の車載通信システムであって、
前記中継側更新手段及び前記制御側更新手段は、前記電子制御装置に記憶されているプログラムの書換えが完了したタイミングで、前記照合コードを更新する
ことを特徴とする車載通信システム。
【請求項５】
請求項１から請求項４までのいずれか１項に記載の車載通信システムであって、
前記判定手段は、前記照合コードと一義的に対応するコード対応値を前記中継装置に送信させ、前記コード対応値と前記制御側記憶手段が記憶する前記照合コードとが一義的に対応するか否かを判定する
ことを特徴とする車載通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両の内部に設置された電子制御装置に記憶されているプログラムを書き換えるための技術に関する。
【背景技術】
【０００２】
従来、車両では、電子制御化の進歩に伴い、エンジンやブレーキ等といった各種の車両構成品が電子部品を介して制御され、これら電子部品に接続された電子制御装置（ＥＣＵ）の数も増加傾向にある。また、ＥＣＵは、相互間での連携動作や情報の共有化を可能とするために、ネットワーク（車載通信システム）を構築している。
【０００３】
こうした車載通信システムが搭載された車両には、車両の外部からＥＣＵと通信するためのコネクタが設けられている。このようなコネクタに外部装置を接続することで、外部装置とＥＣＵとが通信可能となり、ＥＣＵに記憶されているプログラムの書換処理（リプログラミング）を行うことができる。
【０００４】
ただし、このような構成では、不正な外部装置を用いた不正行為（例えば、ＥＣＵプログラムの不正な書換えなど）が行われる可能性がある。そこで、コネクタに接続された外部装置が正規のものであるか否かを判定する構成が提案されている。
【０００５】
例えば特許文献１に記載の車載通信システムでは、コネクタに接続されたテスタ（外部装置）の認証を行うマスタＥＣＵ（中継装置）が設置されている。マスタＥＣＵは、テスタから識別コードを受信し、受信した識別コードが自身の記憶する識別コードと一致するか否かを判定し、一致した場合にＥＣＵのフラッシュメモリの書換えを許可する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１５７１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述した特許文献１に記載の構成では、不正な外部装置から電子制御装置へ中継装置を介さずに直接通信が行われると、電子制御装置に記憶されているプログラムが不正に書き換えられてしまう可能性がある。
【０００８】
本発明は、こうした問題にかんがみてなされたものであり、外部装置から電子制御装置へ中継装置を介さずに通信が行われた場合にも、プログラムの書換えを禁止することのできる技術を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明の車載通信システムは、車両の内部に設置された電子制御装置と、外部装置と電子制御装置とを接続するための通信経路に設置された中継装置とを備える。なお、ここでいう外部装置とは、電子制御装置に記憶されているプログラムを車両の外部から書き換えるための装置である。
【００１０】
そして、中継装置においては、中継側記憶手段が、電子制御装置の照合コードを記憶し、送信手段が、外部装置からの要求に従い、プログラムの書換要求を電子制御装置へ送信する。
【００１１】
一方、電子制御装置においては、制御側記憶手段が、照合コードを記憶する。また、判定手段が、書換要求を受信した場合に、その送信元が中継装置であるか否かを照合コードを用いて判定し、送信元が中継装置であると判定した場合にプログラムの書換えを許可し、中継装置でないと判定した場合にプログラムの書換えを禁止する。
【００１２】
このような車載通信システムによれば、電子制御装置は、プログラムの書換要求の送信元が正規の中継装置であるか否かを、照合コードに基づいて判定することができる。このため、外部装置から電子制御装置へ中継装置を介さずにプログラムの書換要求が直接送信された場合にも、プログラムの書換えを禁止することができる。したがって、外部装置と電子制御装置とを中継装置を回避して接続するといった手口の不正を抑制することができる。
【００１３】
ところで、同一の照合コードを長期間使用するよりも、適当なタイミングで照合コードを更新した方がセキュリティ性を高くすることができる。そこで、中継装置において、中継側更新手段が、中継側記憶手段が記憶する照合コードを更新し、電子制御装置において、制御側更新手段が、制御側記憶手段が記憶する照合コードを、中継装置と同じタイミングで更新するようにしてもよい。このような車載通信システムによれば、照合コードを更新してセキュリティ性を向上させることができる。
【００１４】
具体的には、中継側更新手段は、中継側記憶手段が記憶する照合コードを用いて所定の演算を行うことにより、照合コードを更新し、制御側更新手段は、制御側記憶手段が記憶する照合コードを用いて中継装置と同じ演算を行うことにより、照合コードを更新するようにしてもよい。このような車載通信システムによれば、更新後の照合コードの受渡しが不要となるため、照合コードの秘密状態を維持しやすくすることができる。
【００１５】
また、中継側更新手段及び制御側更新手段は、電子制御装置に記憶されているプログラムの書換えが完了したタイミングで、照合コードを更新するようにしてもよい。このような車載通信システムによれば、プログラムの書換えごとに異なる照合コードが用いられるため、セキュリティ性を高くすることができる。
【００１６】
ところで、プログラムの書換要求の送信元が正規の中継装置であるか否かを照合コードに基づいて判定する際に、照合コード自体の受渡しを行わないことが好ましい。そこで、判定手段は、照合コードと一義的に対応するコード対応値を中継装置に送信させ、コード対応値と制御側記憶手段が記憶する照合コードとが一義的に対応するか否かを判定するようにしてもよい。このような車載通信システムによれば、照合コード自体を受け渡す必要がないため、セキュリティ性を高くすることができる。
【００１７】
また、車載通信システムが複数の電子制御装置を備える場合、制御側記憶手段が記憶する照合コードは、電子制御装置ごとに固有のものであり、中継側記憶手段は、複数の電子制御装置ごとの照合コードを記憶するようにしてもよい。このような車載通信システムによれば、照合コードが複数の電子制御装置で共通のものである場合と比較して、セキュリティ性を高くすることができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態の車載通信システムの構成を示すブロック図である。
【図２】ＧＷ−ＥＣＵ及び他のＥＣＵで実行される処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明が適用された実施形態について、図面を用いて説明する。
［１．全体構成］
図１は、実施形態の車載通信システム１の構成を示すブロック図である。
【００２０】
車載通信システム１は、車両の内部における各部に設置された複数の電子制御装置（以下「ＥＣＵ」という。）として、ゲートウェイＥＣＵ（以下「ＧＷ−ＥＣＵ」という。）１０と、種々の機能を有する他の複数のＥＣＵ２０，２０，…とを備える。ＧＷ−ＥＣＵ１０及び各ＥＣＵ２０は、共通の通信線であるバス３０に接続され、バス３０を介してＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）プロトコルに従った相互通信を行う。
【００２１】
ＧＷ−ＥＣＵ１０は、外部ツール５０を車両の外部から接続するためのデータリンクコネクタ（以下「コネクタ」という。）４０とバス３０とを接続する通信経路（換言すれば、外部ツール５０とＥＣＵ２０とを接続するための通信経路）３１に設置されている。外部ツール５０とは、コネクタ４０に接続された状態で、車両の内部に設置されたＥＣＵ２０に記憶されているプログラムの書換処理（リプログラミング）を行う機能を有した装置である。つまり、外部ツール５０は、ＥＣＵ２０に直接接続されるのではなく、ＧＷ−ＥＣＵ１０を介して接続され、ＧＷ−ＥＣＵ１０は、外部ツール５０とＥＣＵ２０との通信を中継する中継装置として機能する。
【００２２】
ＧＷ−ＥＣＵ１０は、ＣＰＵ１１と、電気的に記憶内容の書換えが可能な不揮発性メモリであるフラッシュメモリ１２とを備える。フラッシュメモリ１２には、ＣＰＵ１１により実行されるソフトウェアのプログラムが記憶されている。また、フラッシュメモリ１２には、各ＥＣＵ２０の照合コードが記憶されている。ここで、照合コードとは、ＧＷ−ＥＣＵ１０がＥＣＵ２０へプログラムの書換要求を送信した場合に、書換要求の送信元が正規のＧＷ−ＥＣＵ１０であることを、ＥＣＵ２０が確認できるようにするための秘密情報である。なお、本実施形態では、照合コードが複数のＥＣＵ２０で共通であり、ＧＷ−ＥＣＵ１０は、１つの照合コードを記憶する。
【００２３】
同様に、各ＥＣＵ２０も、ＣＰＵ２１及びフラッシュメモリ２２を備え、フラッシュメモリ２２には、ＣＰＵ２１により実行されるソフトウェアのプログラムと、ＧＷ−ＥＣＵ１０及び他の各ＥＣＵ２０と同一の照合コードとが記憶されている。
【００２４】
［２．処理］
図２は、コネクタに接続された状態の外部ツール５０からプログラムの書換処理が要求された場合に、ＧＷ−ＥＣＵ１０及び他のＥＣＵ２０で実行される処理を示すフローチャートである。
【００２５】
ＧＷ−ＥＣＵ１０のＣＰＵ１１は、外部ツール５０からプログラムの書換要求を受信すると（Ｓ１０１）、外部ツール５０からの要求に従い、書換要求の対象となるＥＣＵ（以下「対象ＥＣＵ」ともいう。）２０へ、プログラムの書換要求を送信する（Ｓ１０２）。なお、外部ツール５０とＧＷ−ＥＣＵ１０との間では、従来と同様、ＧＷ−ＥＣＵ１０が外部ツール５０の認証を行うことにより、不正な外部ツールからの書換要求をＥＣＵ２０へ送信しないようにすることができる。
【００２６】
対象ＥＣＵ２０のＣＰＵ２１は、ＧＷ−ＥＣＵ１０から書換要求を受信すると（Ｓ２０１）、書換要求の送信元が正規のＧＷ−ＥＣＵ１０であるか否かを判定するための処理を行う。具体的には、まず乱数を発生し、発生した乱数を送信元のＧＷ−ＥＣＵ１０へ送信する（Ｓ２０２）。また、発生した乱数に対し、フラッシュメモリ２２に記憶されている照合コードを用いて、あらかじめ定められている演算を行う（Ｓ２０３）。
【００２７】
一方、ＧＷ−ＥＣＵ１０のＣＰＵ１１は、対象ＥＣＵ２０から乱数を受信すると（Ｓ１０３）、受信した乱数に対し、フラッシュメモリ１２に記憶されている照合コードを用いて、あらかじめ定められている演算（対象ＥＣＵ２０で行われる演算と同じ演算）を行う（Ｓ１０４）。そして、その演算結果を対象ＥＣＵ２０へ送信する（Ｓ１０５）。
【００２８】
対象ＥＣＵ２０のＣＰＵ２１は、ＧＷ−ＥＣＵ１０から演算結果を受信すると（Ｓ２０４）、受信した演算結果と自身で行った演算結果とが一致するか否かを判定（照合コードを照合）する（Ｓ２０５）。そして、演算結果が一致しないと判定した場合（書換要求の送信元が正規のＧＷ−ＥＣＵ１０でない場合）には（Ｓ２０５：ＮＯ）、フラッシュメモリ２２に記憶されているプログラムの書換えを禁止する（Ｓ２０６）。具体的には、書換えのためのデータが送信されてきても書換えを行わない状態になる。一方、演算結果が一致したと判定した場合（書換要求の送信元が正規のＧＷ−ＥＣＵ１０である場合）には（Ｓ２０５：ＹＥＳ）、フラッシュメモリ２２に記憶されているプログラムの書換えを許可し（Ｓ２０７）、書換開始要求をＧＷ−ＥＣＵ１０へ送信する（Ｓ２０８）。
【００２９】
ＧＷ−ＥＣＵ１０のＣＰＵ１１は、対象ＥＣＵ２０から書換開始要求を受信すると（Ｓ１０６）、外部ツール５０から受信した書換プログラムを対象ＥＣＵ２０へ送信（転送）する（Ｓ１０７）。つまり、外部ツール５０に対して対象ＥＣＵ２０との通信（プログラムの書換処理）を許可した状態となる。
【００３０】
対象ＥＣＵ２０のＣＰＵ２１は、ＧＷ−ＥＣＵ１０から書換プログラムを受信すると（Ｓ２０９）、受信した書換プログラムを用いてフラッシュメモリ２２に記憶されているプログラムを書き換える書換処理を実行する（Ｓ２１０）。そして、書換処理が完了すると、書換完了通知をＧＷ−ＥＣＵ１０へ送信する（Ｓ２１１）。
【００３１】
ＧＷ−ＥＣＵ１０のＣＰＵ１１は、対象ＥＣＵ２０から書換完了通知を受信すると（Ｓ１０８）、照合コードを更新させるための照合コード書換要求を、すべてのＥＣＵ２０へ送信する（Ｓ１０９）。また、自身のフラッシュメモリ１２に記憶されている照合コードを更新する（Ｓ１１０）。本実施形態では、照合コードを一定の値だけカウントアップすることにより、照合コードを更新する。
【００３２】
一方、対象ＥＣＵ２０及びその他のＥＣＵ２０の各ＣＰＵ２１は、ＧＷ−ＥＣＵ１０から照合コード書換要求を受信すると（Ｓ２１２）、自身のフラッシュメモリ２２に記憶されている照合コードを更新する（Ｓ２１３）。具体的には、ＧＷ−ＥＣＵ１０と同様、照合コードを一定の値だけカウントアップすることにより、照合コードを更新する。これにより、ＧＷ−ＥＣＵ１０及びすべてのＥＣＵ２０の照合コードが同一の値に更新される。
【００３３】
［３．効果］
以上説明したように、本実施形態の車載通信システム１によれば、プログラムの書換え対象となるＥＣＵ２０は、プログラムの書換要求の送信元が正規のＧＷ−ＥＣＵ１０であるか否かを、照合コードに基づいて判定することができる（Ｓ２０１〜Ｓ２０５）。このため、外部ツール５０からＥＣＵ２０へＧＷ−ＥＣＵ１０を介さずにプログラムの書換要求が直接送信された場合にも、プログラムの書換えを禁止することができる（Ｓ２０５：ＮＯ，Ｓ２０６）。したがって、外部ツール５０とＥＣＵ２０とをＧＷ−ＥＣＵ１０を回避して接続する（外部ツール５０をバス３０に直接接続する）といった手口の不正を抑制することができる。
【００３４】
具体的には、ＥＣＵ２０は、照合コードと一義的に対応するコード対応値（乱数及び照合コードを用いた演算結果）をＧＷ−ＥＣＵ１０に送信させ（Ｓ２０２）、コード対応値と自身の演算結果とが一致するか否かを判定する（Ｓ２０３〜Ｓ２０５）。このため、照合コード自体を受け渡す必要がなく、セキュリティ性を高くすることができる。
【００３５】
また、ＧＷ−ＥＣＵ１０とＥＣＵ２０とが、照合コードを同じタイミングで更新するため（Ｓ１０９，Ｓ１１０，Ｓ２１２，Ｓ２１３）、同一の照合コードを長期間使用する場合と比較して、セキュリティ性を向上させることができる。特に、ＥＣＵ２０に記憶されているプログラムの書換えが完了したタイミングで照合コードを更新するため、プログラムの書換えごとに異なる照合コードが用いられることとなり、セキュリティ性を高くすることができる。
【００３６】
加えて、ＧＷ−ＥＣＵ１０とＥＣＵ２０とが、照合コードを用いた所定の演算（照合コードを一定の値だけカウントアップする演算）を行うことにより照合コードを更新するため、更新後の照合コードの受渡しが不要となり、照合コードの秘密状態を維持しやすくすることができる。
【００３７】
なお、ＧＷ−ＥＣＵ１０が中継装置の一例に相当し、フラッシュメモリ１２が中継側記憶手段の一例に相当し、Ｓ１０２が送信手段としての処理の一例に相当し、Ｓ１１０が中継側更新手段としての処理の一例に相当する。また、ＥＣＵ２０が電子制御装置の一例に相当し、フラッシュメモリ２２が制御側記憶手段の一例に相当し、Ｓ２０２〜Ｓ２０５が判定手段としての処理の一例に相当し、Ｓ２１３が制御側更新手段としての処理の一例に相当する。また、外部ツール５０が外部装置の一例に相当する。
【００３８】
［４．他の実施形態］
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得ることは言うまでもない。
【００３９】
（１）上記実施形態では、照合コードが複数のＥＣＵ２０で共通であり、ＧＷ−ＥＣＵ１０が１つの照合コードを記憶する構成を例示したが、これに限定されるものではない。例えば、照合コードをＥＣＵ２０ごとに固有のものとして、ＧＷ−ＥＣＵ１０がＥＣＵ２０ごとの照合コードを記憶するようにしてもよい。このようにすれば、照合コードが複数のＥＣＵ２０で共通である場合と比較して、セキュリティ性を高くすることができる。
【００４０】
（２）上記実施形態では、ＥＣＵ２０に記憶されているプログラムの書換えが完了したタイミングで照合コードを更新する構成を例示したが、照合コードを更新するタイミングはこれに限定されるものではない。例えば、イグニッションスイッチがオンしたことを示す信号を受信したタイミングなど、特定の信号を受信したタイミングであってもよい。
【００４１】
（３）上記実施形態では、ＧＷ−ＥＣＵ１０とＥＣＵ２０とが、照合コードを用いた同一の演算（照合コードを一定の値だけカウントアップする演算）を行うことにより照合コードを更新する構成を例示したが、更新方法はこれに限定されるものではない。例えば、特定のタイミング（プログラムの書換え完了時、イグニッションスイッチのオン時、等）の時刻を示す値を用いて照合コードを設定（算出）するようにしてもよい。
【００４２】
（４）上記実施形態では、ＧＷ−ＥＣＵ１０が、ＥＣＵ２０に記憶されている照合コードと同一の照合コードを記憶する構成を例示したが、必ずしも同一の情報を記憶する必要はない。例えば、ＥＣＵ２０に記憶されている照合コードと一義的に対応する情報を記憶するようにしてもよい。
【符号の説明】
【００４３】
１…車載通信システム、１０…ＧＷ−ＥＣＵ、１１，２１…ＣＰＵ、１２，２２…フラッシュメモリ、２０…ＥＣＵ、３０…バス、４０…コネクタ、５０…外部ツール
【図１】
0005783013.tif 000002
【図２】
0005783013.tif 000003