(57)【要約】【課題】自動車の車載セキュリティを向上させる。【解決手段】自動車のＣＡＮバス２００に接続された電子制御装置１００は、ＣＡＮバス２００を流れるデータフレームのデータフィールドに割り当てるデータのレイアウトを所定タイミングで変更する。そして、電子制御装置１００は、ＣＡＮバス２００に接続された他の電子制御装置１００に対して変更したデータのレイアウトを特定可能な情報を通知し、変更したデータのレイアウトに応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出する。【選択図】図１
2020065151.tif 000002
【特許請求の範囲】
【請求項１】
自動車の車載ネットワークに接続された自動車用電子制御装置であって、
前記車載ネットワークを流れるデータフレームのデータフィールドに割り当てるデータのレイアウトを所定タイミングで変更し、前記車載ネットワークに接続された少なくとも１つの他の電子制御装置に対して前記変更したデータのレイアウトを特定可能な情報を通知し、前記変更したデータのレイアウトに応じてデータフィールドにデータを割り当てたデータフレームを前記車載ネットワークに送出する、
自動車用電子制御装置。
【請求項２】
前記所定タイミングは、起動時及び起動後の所定時間ごとの少なくとも一方である、
請求項１に記載の自動車用電子制御装置。
【請求項３】
前記所定タイミングが起動後の所定時間ごとである場合、
前記データのレイアウトは、前記自動車が安全状態にあるときのみ変更される、
請求項２に記載の自動車用電子制御装置。
【請求項４】
前記データのレイアウトは、複数のレイアウト定義の中からランダムに選定された１つのレイアウト定義に基づいて変更された、
請求項１〜請求項３のいずれか１つに記載の自動車用電子制御装置。
【請求項５】
前記データのレイアウトは、不揮発性メモリに格納されて逐次更新される、
請求項１〜請求項４のいずれか１つに記載の自動車用電子制御装置。
【請求項６】
前記データのレイアウトに、当該レイアウトと関連がない少なくとも１つのキーワードが埋め込まれた、
請求項１〜請求項５のいずれか１つに記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ネットワークに接続される自動車用電子制御装置に関する。
【背景技術】
【０００２】
近年の自動車では、車載ネットワークに接続された複数の電子制御装置がデータを交換することで、各種の機能を実現する分散制御システムが採用されている。この場合、例えば、診断を行うインターフェースであるＯＢＤ２（On Board Diagnosis second generation）ポートにアナライザーを接続し、車載ネットワークで交換されるデータフレームを取得して解析することができる。このため、外部のネットワークと接続可能な電子制御装置が搭載されていると、その電子制御装置を介して車載ネットワークに任意のデータを送り付けることで、例えば、自動車を遠隔制御できてしまうおそれがある。そこで、特開２０１７−２８７４２号公報（特許文献１）に記載されるように、車載ネットワークを流れるデータフレームの内容が不正を示す所定条件に該当するか否かを判定して、不正なデータを検知する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２８７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、データフレームのデータフィールドのレイアウトが固定であったため、データフレームの解析が行われてしまうと、特許文献１に記載の技術では不正なデータの検知が困難となり、例えば、自動車が遠隔操作されてしまうおそれが依然としてあった。
【０００５】
そこで、本発明は、自動車の車載セキュリティを向上させた、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このため、自動車の車載ネットワークに接続された自動車用電子制御装置は、車載ネットワークを流れるデータフレームのデータフィールドに割り当てるデータのレイアウトを所定タイミングで変更する。そして、自動車用電子制御装置は、車載ネットワークに接続された少なくとも１つの他の電子制御装置に対して変更したデータのレイアウトを特定可能な情報を通知し、変更したデータのレイアウトに応じてデータフィールドにデータを割り当てたデータフレームを車載ネットワークに送出する。
【発明の効果】
【０００７】
本発明によれば、データフレームのデータフィールドに割り当てるデータのレイアウトが逐次変更されるので、データフレームの解析が困難になって、自動車の車載セキュリティを向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】車載ネットワークの一例を示す概要図である。
【図２】電子制御装置の一例を示す概要図である。
【図３】データフレームの一例を示す説明図である。
【図４】レイアウト情報の一例を示す説明図である。
【図５】起動時処理の第１実施形態を示すフローチャートである。
【図６】レイアウト定義１を示す説明図である。
【図７】レイアウト定義２を示す説明図である。
【図８】レイアウト定義３を示す説明図である。
【図９】レイアウト定義４を示す説明図である。
【図１０】レイアウト定義５を示す説明図である。
【図１１】起動時処理の第２実施形態を示すフローチャートである。
【図１２】レイアウト更新処理の第１実施形態を示すフローチャートである。
【図１３】レイアウト更新処理の第２実施形態を示すフローチャートである。
【図１４】キーワードを埋め込んだレイアウト定義の一例を示す説明図である。
【図１５】図１４のレイアウト定義にレイアウト定義５を適用した場合の説明図である。
【図１６】キーワードを埋め込んだレイアウト定義の他の例を示す説明図である。
【図１７】図１６のレイアウト定義にレイアウト定義５を適用した場合の説明図である。
【発明を実施するための形態】
【０００９】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、自動車に搭載されたライン型の車載ネットワークの一例を示している。エンジンシステム、自動変速システム、横滑り防止システム、自動ブレーキシステム、自動運転システムなどを電子制御する複数の電子制御装置１００は、例えば、ＣＡＮ（Controller Area Network）バス２００を介して、任意のデータを交換可能に接続されている。以下の説明においては、ＣＡＮを使用した実施形態について説明するが、車載ネットワークとしては、ＣＡＮに限らず、ＦｌｅｘＲａｙ（登録商標）、ＬＩＮ（Local Interconnect Network）などの公知のネットワークを使用することができる。
【００１０】
電子制御装置１００は、図２に示すように、プロセッサ１１０と、不揮発性メモリ１２０と、揮発性メモリ１３０と、入出力回路１４０と、ＣＡＮトランシーバ１５０と、ＣＡＮコントローラ１６０と、を備えている。
【００１１】
プロセッサ１１０は、ソフトウエアプログラムに記述された命令セットを実行するハードウエアであって、例えば、ＣＰＵ（Central Processing Unit）などからなる。不揮発性メモリ１２０は、電源を遮断してもデータが保持される電気的にデータを書き換え可能なメモリであって、例えば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、フラッシュＲＯＭ（Read Only Memory）などからなる。揮発性メモリ１３０は、電源を遮断するとデータが消失するメモリであって、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）などからなる。入出力回路１４０は、各種のセンサ又はスイッチなどからアナログ信号又はデジタル信号を読み込むと共に、アクチュエータなどにアナログ又はデジタルの駆動信号を出力するデバイスであって、例えば、Ａ／Ｄコンバータ、Ｄ／Ｄコンバータなどからなる。そして、プロセッサ１１０、不揮発性メモリ１２０、揮発性メモリ１３０及び入出力回路１４０は、内部バス１７０を介して、任意のデータを送受信可能に接続されている。
【００１２】
ＣＡＮトランシーバ１５０は、複数の電子制御装置１００の間で任意のデータを送受信するために、バス送信電圧の発生及び調整、動作電流の確保、配線の保護などを行う。ＣＡＮコントローラ１６０は、ビットスタッフィング、通信調停、エラーハンドリング、ＣＲＣ（Cyclic Redundancy Check）などのＣＡＮプロトコルの機能を実現する。また、ＣＡＮコントローラ１６０は、外部の電子制御装置１００との間でデータフレームを送受信するために、複数のメールボックスＭＢを実装するメッセージＲＡＭ１６２を内蔵している。そして、ＣＡＮトランシーバ１５０は、専用のバス１８０を介して、ＣＡＮコントローラ１６０を経由してプロセッサ１１０に接続されている。なお、ＣＡＮトランシーバ１５０及びＣＡＮコントローラ１６０は、専用のバス１８０に代えて、内部バス１７０に接続されていてもよい。
【００１３】
複数の電子制御装置１００の間で送受信されるデータフレームは、図３に示すように、ＳＯＦ（Start Of Frame）と、ＩＤ（Identifier）と、ＲＴＲ（Remote Transmission Request）と、コントロールフィールドと、データフィールドと、ＣＲＣフィールドと、ＡＣＫ（Acknowledgement）フィールドと、ＥＯＦ（End Of Frame)と、を含んでいる。
【００１４】
ＳＯＦは、データフレームの開始を表す。ＩＤは、送信されるデータの内容を識別すると共に、データの優先順位を表す。ＲＴＲは、データフレームとリモートフレームとを識別する。コントロールフィールドは、ＩＤＥ（Identifier Extension）と、予約ビットｒと、データフィールドにおいて何バイトのデータが送信されるかを表すＤＬＣ（Data Length Code）と、を含んでいる。データフィールドは、送信されるデータの本体を格納する。ＣＲＣフィールドは、正常に受信できたかを判断するためのＣＲＣシーケンスと、ＣＲＣシーケンスの終了を表すＣＲＣデリミタと、を含んでいる。ＡＣＫフィールドは、ＡＣＫスロットと、ＡＣＫデリミタと、を含んでいる。ＥＯＦは、データフレームの終了を表す。なお、このデータフレームは、標準フォーマットのデータフレームの一例であるが、拡張フォーマットのデータフレームであってもよい。
【００１５】
電子制御装置１００のプロセッサ１１０は、複数のメールボックスＭＢに格納されたデータフレームのＩＤに応じて、そのＩＤにより特定される優先順位でデータフレームを送信する。このとき、電子制御装置１００のプロセッサ１１０は、最初に、複数のメールボックスＭＢに優先順位が上位のデータフレームを夫々格納し、それ以降においては、複数のメールボックスＭＢのいずれかに格納されたデータフレームの送信完了によるソフトウエア割り込みに応答して、そのメースボックスＭＢに優先順位が次に高いデータフレームを順次格納する。
【００１６】
データフレームのデータフィールドには、０〜８バイト（０〜２５６ビット）のデータが格納可能である。このため、電子制御装置１００の不揮発性メモリ１２０には、図４に示すように、ＣＡＮバス２００を流れるデータフレームのデータフィールドに割り当てるデータのレイアウトを定義したレイアウト情報３００が格納されている。図４に示すレイアウト情報３００は、データフレームのデータフィールドに対して、８ビット（１バイト）のデータＡ０〜Ａ７からなる車速、１ビットのデータＢからなるブレーキスイッチ、１ビットのデータＣからなるアクセルスイッチが割り当てられた初期状態を示している。ここで、レイアウト情報３００は、ＩＤにより識別されるデータフレームごとに異なる可能性があるため、各ＩＤに対応付けられた状態で不揮発性メモリ１２０に格納されることが好ましい。なお、レイアウト情報３００が、データのレイアウトを特定可能な情報の一例として挙げられる。
【００１７】
図５は、電子制御装置１００が起動されたことを契機として、電子制御装置１００のプロセッサ１１０が実行する起動時処理の第１実施形態を示している。ここで、電子制御装置１００のプロセッサ１１０は、不揮発性メモリ１２０に格納されたプログラムに従って起動時処理を実行する（以下同様）。なお、起動時処理を実行する電子制御装置１００としては、車載セキュリティの向上が要望される、例えば、電子的なキーの照合システムを使用した自動車盗難システム（イモビライザーシステム）の電子制御装置とすることができる（以下同様）。
【００１８】
ステップ１（図５では「Ｓ１」と略記する。以下同様。）では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０からレイアウト情報３００を読み込む。
ステップ２では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続された他の電子制御装置１００に対して、不揮発性メモリ１２０から読み込んだレイアウト情報３００を通知する。
【００１９】
ステップ３では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続されたすべての電子制御装置１００から、レイアウト情報３００の受付完了通知があったか否かを判定する。そして、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知があったならば、処理をステップ４へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知がなかったならば、すべての電子制御装置１００から受付完了通知があるまで待機する（Ｎｏ）。なお、一定時間内にすべての電子制御装置１００から受付完了通知がなかった場合、電子制御装置１００のプロセッサ１１０は、例えば、ＣＡＮ通信異常であると判断して警告灯を点灯させてもよい（以下同様）。
【００２０】
ステップ４では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０から読み込んだレイアウト情報３００を更新し、これを不揮発性メモリ１２０に上書きして書き換える。従って、不揮発性メモリ１２０には、直近に更新されたレイアウト情報３００が格納されることとなる。なお、レイアウト情報３００の具体的な更新方法は、起動時処理を説明した後で詳細に説明する。
【００２１】
ステップ５では、電子制御装置１００のプロセッサ１１０が、他の電子制御装置１００に通知したレイアウト情報３００に応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出することで、他の電子制御装置１００との通信を開始する。
【００２２】
かかる起動時処理によれば、自動車のＣＡＮバス２００に接続された電子制御装置１００は、ＣＡＮバス２００を流れるデータフレームのデータフィールドに割り当てるデータのレイアウトを更新し、ＣＡＮバス２００に接続された他の電子制御装置１００に対して変更したデータのレイアウトを特定可能なレイアウト情報３００を通知する。そして、電子制御装置１００は、更新したデータのレイアウトに応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出する。従って、電子制御装置１００が起動されるたびに、データフィールドに割り当てるデータのレイアウトが逐次変更されるので、データフレームの解析が困難になって、自動車の車載セキュリティを向上させることができる。
【００２３】
レイアウト情報３００を受信した他の電子制御装置１００は、このレイアウト情報３００を不揮発性メモリ１２０又は揮発性メモリ１３０に書き込み、これを参照してデータフレームのデータフィールドを解析することで、受信したデータフレームを正しく使用することができる（以下同様）。
【００２４】
ここで、レイアウト情報３００の更新方法について説明する。
電子制御装置１００のプロセッサ１１０は、複数のレイアウト定義の中からランダムに選定された１つのレイアウト定義に基づいて、レイアウト情報３００を変更することができる。レイアウト定義としては、次のようなものが例として挙げられる。
【００２５】
［レイアウト定義１］
レイアウト定義１は、図６に示すように、データフレームのデータフィールドに対して、最上位バイトの最上位ビット（第０バイトの第０ビット）から最下位バイトの最下位ビット（第７バイトの第７ビット）に向けて、各種のデータを詰めて配置することを定義したものである。この場合、各種のデータが配置されていない部分には、例えば、所定のダミーデータ、ランダムに生成したダミーデータなどを配置することができる（以下同様）。なお、ＣＡＮバス２００に接続された電子制御装置１００は、データフレームのデータフィールドにダミーデータが配置されていても、データフィールドのレイアウトが分かっているため問題が生じない。
【００２６】
［レイアウト定義２］
レイアウト定義２は、図７に示すように、データフレームのデータフィールドに対して、最上位バイトの最下位ビット（第０バイトの第７ビット）から最下位バイトの最上位ビット（第７バイトの第０ビット）に向けて、各種のデータを詰めて配置することを定義したものである。即ち、各バイトにおいては、最下位ビット（第７ビット）から最上位ビット（第０ビット）へと逆方向にデータが配置される。このようにすれば、データの各ビットの配置が逆になるため、データフィールドの解析がより困難になる。
【００２７】
［レイアウト定義３］
レイアウト定義３は、図８に示すように、データフレームのデータフィールドに対して、最下位バイトの最上位ビット（第７バイトの第０ビット）から最上位バイトの最下位ビット（第０バイトの第７ビット）に向けて、各種のデータを詰めて配置することを定義したものである。即ち、最下位バイト（第７バイト）から最上位バイト（第０バイト）へと逆方向にデータが配置される。このようにすれば、各バイトの配列が逆になるため、データフィールドの解析がより困難になる。
【００２８】
［レイアウト定義４］
レイアウト定義４は、図９に示すように、データフレームのデータフィールドに対して、最下位バイトの最下位ビット（第７バイトの第７ビット）から最上位バイトの最上位ビット（第０バイトの第０ビット）に向けて、各種のデータを詰めて配置することを定義したものである。即ち、各バイトにおいては、最下位ビット（第７ビット）から最上位ビット（第０ビット）へと逆方向にデータが配置され、このようなバイトが最下位バイト（第７バイト）から最上位バイト（第０バイト）へと逆方向に配置される。このようにすれば、各バイトにおけるビット配列及び各バイトの配列が逆になるため、データフィールドの解析がより一層困難になる。
【００２９】
［レイアウト定義５］
レイアウト定義５は、図１０に示すように、データフレームのデータフィールドのレイアウトを変更するたびに、最上位バイト（第０バイト）から最下位バイト（第７バイト）に向けて、各バイトをシフトすることを定義したものである。ここで、レイアウトを変更するとき、最下位バイト（第７バイト）は最上位バイト（第０バイト）へとシフトされる。このようにすれば、簡潔なレイアウト更新にもかかわらず、ダミーデータと各種のデータとの境界が不明確になることから、データフィールドの解析がより困難になる。なお、各バイトのシフト方向は、最下位バイト（第７バイト）から最上位バイト（第０バイト）に向かう方向であってもよい。
【００３０】
そして、電子制御装置１００のプロセッサ１１０は、例えば、乱数を用いて、レイアウト定義１〜５の中から１つのレイアウト定義をランダムに選定し、そのレイアウト定義に応じてレイアウト情報３００を更新する。なお、レイアウト定義は、レイアウト定義１〜５に限らず、これらの中から選択された少なくとも２つのレイアウト定義、各種のデータをランダムに配置したレイアウト定義などであってもよい。
【００３１】
図１１は、電子制御装置１００が起動されたことを契機として、電子制御装置１００のプロセッサ１１０が実行する起動時処理の第２実施形態を示している。ここで、起動時処理の第２実施形態について、起動時処理の第１実施形態と同様な処理は簡単に説明することとする。必要があれば、起動時処理の第１実施形態の説明を参照されたい。
【００３２】
ステップ１１では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０からレイアウト情報３００を読み込む。
ステップ１２では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０から読み込んだレイアウト情報３００を更新し、これを不揮発性メモリ１２０に上書きして書き換える。
【００３３】
ステップ１３では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続された他の電子制御装置１００に対して、不揮発性メモリ１２０から読み込んだレイアウト情報３００を通知する。
【００３４】
ステップ１４では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続されたすべての電子制御装置１００から、レイアウト情報３００の受付完了通知があったか否かを判定する。そして、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知があったならば、処理をステップ１５へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知がなかったならば、すべての電子制御装置１００から受付完了通知があるまで待機する（Ｎｏ）。
【００３５】
ステップ１５では、電子制御装置１００のプロセッサ１１０が、他の電子制御装置１００に通知したレイアウト情報３００に応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出することで、他の電子制御装置１００との通信を開始する。
【００３６】
なお、かかる起動時処理の作用及び効果は、レイアウト情報３００を更新するタイミングが異なるだけで、起動時処理の第１実施形態と同様であるため、その説明は省略することとする。必要があれば、起動時処理の第１実施形態の説明を参照されたい。
【００３７】
図１２は、電子制御装置１００の起動後、電子制御装置１００のプロセッサ１１０が所定時間ごとに繰り返し実行するレイアウト更新処理の第１実施形態を示している。ここで、電子制御装置１００のプロセッサ１１０は、不揮発性メモリ１２０に格納されたプログラムに従ってレイアウト変更処理を実行する（以下同様）。
【００３８】
ステップ２１では、電子制御装置１００のプロセッサ１１０が、自動車が安全状態にあるか否かを判定する。ここで、「自動車が安全状態にある」とは、例えば、エンジン作動状態で停車したとき、アイドリングストップ状態のとき、パーキングレンジに変速されたときなど、データフィールドのレイアウト変更を実行しても自動車の安全性に影響がない状態にあることを意味する。そして、電子制御装置１００のプロセッサ１１０は、自動車が安全状態にあると判定すれば、処理をステップ２２へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１１０は、自動車が安全状態にないと判定すれば、レイアウト変更処理を強制的に終了させる（Ｎｏ）。
【００３９】
ステップ２２では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０からレイアウト情報３００を読み込む。
ステップ２３では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続された他の電子制御装置１００に対して、不揮発性メモリ１２０から読み込んだレイアウト情報３００を通知する。
【００４０】
ステップ２４では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続されたすべての電子制御装置１００から、レイアウト情報３００の受付完了通知があったか否かを判定する。そして、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知があったならば、処理をステップ２５へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知がなかったならば、すべての電子制御装置１００から受付完了通知があるまで待機する（Ｎｏ）。
【００４１】
ステップ２５では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０から読み込んだレイアウト情報３００を更新し、これを不揮発性メモリ１２０に上書きして書き換える。従って、不揮発性メモリ１２０には、直近に更新されたレイアウト情報３００が格納されることとなる。
【００４２】
ステップ２６では、電子制御装置１００のプロセッサ１１０が、他の電子制御装置１００に通知したレイアウト情報３００に応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出することで、他の電子制御装置１００との通信を開始する。
【００４３】
かかるレイアウト更新処理によれば、自動車のＣＡＮバス２００に接続された電子制御装置１００は、起動後の所定時間ごとに、データフィールドに割り当てるデータのレイアウトを更新し、ＣＡＮバス２００に接続された他の電子制御装置１００に対して変更したデータのレイアウトを特定可能なレイアウト情報３００を通知する。そして、電子制御装置１００は、更新したデータのレイアウトに応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出する。従って、電子制御装置１００の起動後の所定時間ごとに、データフィールドに割り当てるデータのレイアウトが逐次変更されるので、データフレームの解析が困難になり、自動車の車載セキュリティを向上させることができる。
【００４４】
図１３は、電子制御装置１００の起動後、電子制御装置１００のプロセッサ１１０が所定時間ごとに繰り返し実行するレイアウト更新処理の第２実施形態を示している。レイアウト更新処理の第２実施形態について、レイアウト更新処理の第１実施形態と同様な処理は簡単に説明することとする。必要があれば、レイアウト更新処理の第１実施形態の説明を参照されたい。
【００４５】
ステップ３１では、電子制御装置１００のプロセッサ１１０が、自動車が安全状態にあるか否かを判定する。そして、電子制御装置１００のプロセッサ１１０は、自動車が安全状態にあると判定すれば、処理をステップ３２へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１１０は、自動車が安全状態にないと判定すれば、レイアウト変更処理を強制的に終了させる（Ｎｏ）。
【００４６】
ステップ３２では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０からレイアウト情報３００を読み込む。
ステップ３３では、電子制御装置１００のプロセッサ１１０が、不揮発性メモリ１２０から読み込んだレイアウト情報３００を更新し、これを不揮発性メモリ１２０に上書きして書き換える。
【００４７】
ステップ３４では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続された他の電子制御装置１００に対して、更新したレイアウト情報３００を通知する。
【００４８】
ステップ３５では、電子制御装置１００のプロセッサ１１０が、ＣＡＮバス２００に接続されたすべての電子制御装置１００から、レイアウト情報３００の受付完了通知があったか否かを判定する。そして、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知があったならば、処理をステップ３６へと進める（Ｙｅｓ）。一方、電子制御装置１００のプロセッサ１１０は、すべての電子制御装置１００から受付完了通知がなかったならば、すべての電子制御装置１００から受付完了通知があるまで待機する（Ｎｏ）。
【００４９】
ステップ３６では、電子制御装置１００のプロセッサ１１０が、他の電子制御装置１００に通知したレイアウト情報３００に応じてデータフィールドにデータを割り当てたデータフレームをＣＡＮバス２００に送出することで、他の電子制御装置１００との通信を開始する。
【００５０】
なお、かかるレイアウト更新処理の作用及び効果は、レイアウト情報３００を更新するタイミングが異なるだけで、レイアウト更新処理の第１実施形態と同様であるため、その説明は省略することとする。必要があれば、レイアウト更新処理の第１実施形態の説明を参照されたい。
【００５１】
要するに、自動車に搭載された電子制御装置１００は、データフレームのデータフィールドに割り当てるデータのレイアウトを所定タイミングで変更することで、例えば、ＯＢＤ２ポートにアナライザーが接続されても、データフィールドの解析が容易にできないようにして、車載セキュリティを向上させている。ここで、所定タイミングとしては、電子制御装置１００の起動時、その起動後の所定時間ごとの少なくとも一方とすることができる。また、データフレームのデータフィールドに割り当てるデータのレイアウトは、不揮発性メモリ１２０に格納されて逐次更新されるため、レイアウト定義が特定できない限り、これを容易に解析することができない。
【００５２】
自動車の車載セキュリティを更に向上させる工夫として、レイアウト定義に関して、図１４に示すように、データフレームのデータフィールドに割り当てるデータのレイアウトと関連がない少なくとも１つのキーワードを埋め込むようにしてもよい。図４に示す一例では、レイアウト定義１を前提として、第３バイトの第３及び第４ビット並びに第４バイトの第３及び第４ビットに、４ビットのキーワード（１）〜（４）を埋め込んでいるが、その埋め込み箇所及びその大きさ、前提とするレイアウト定義１〜４は任意とすることができる。ここで、キーワードの一例としては、データフレームに格納されないチェックサム、更新回数を計数するカウンタ、乱数により生成したランダムな値とすることができる。
【００５３】
このようにすれば、データフレームのデータフィールドに各種のデータとは関連がないキーワードが含まれることとなるので、そのデータフィールドを取得して解析しても、各種のデータとキーワードとを区別することができず、車載セキュリティを更に向上させることができる。
【００５４】
この場合、レイアウト定義５を適用すると、図１５に示すように、データフレームのデータフィールドのレイアウトを変更するたびに、各バイトを最上位バイトから最下位バイトに向けてシフトすると、キーワードも併せてシフトされる。このため、簡潔なレイアウト更新にもかかわらず、各種のデータとキーワードとの境界が不明確になることから、データフィールドの解析がより一層困難になる。
【００５５】
キーワードの埋め込みについては、４ビットのキーワードであれば、図１６に示すように、例えば、第０バイトの第０ビット、第０バイトの第７ビット、第７バイトの第０ビット及び第７バイトの第７ビットなど固定の箇所としてもよい。このようにすれば、固定箇所に埋め込まれたキーワードの存在が分からない限り、これと各種データとの区別ができず、自動車の車載セキュリティを更に向上させることができる。
【００５６】
この場合、レイアウト定義５を適用すると、図１７に示すように、データフレームのデータフィールドのレイアウトを変更しても、キーワードの埋め込み箇所が固定であるため、キーワード周囲の解析が困難となって、自動車の車載セキュリティをより一層向上させることができる。
【００５７】
なお、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。
【符号の説明】
【００５８】
１００  電子制御装置（自動車用電子制御装置）
１２０  不揮発性メモリ
２００  ＣＡＮバス（車載ネットワーク）
３００  レイアウト情報
【図１】
2020065151.tif 000003
【図２】
2020065151.tif 000004
【図３】
2020065151.tif 000005
【図４】
2020065151.tif 000006
【図５】
2020065151.tif 000007
【図６】
2020065151.tif 000008
【図７】
2020065151.tif 000009
【図８】
2020065151.tif 000010
【図９】
2020065151.tif 000011
【図１０】
2020065151.tif 000012
【図１１】
2020065151.tif 000013
【図１２】
2020065151.tif 000014
【図１３】
2020065151.tif 000015
【図１４】
2020065151.tif 000016
【図１５】
2020065151.tif 000017
【図１６】
2020065151.tif 000018
【図１７】
2020065151.tif 000019