JP7306865B2 - 演算装置 - Google Patents

演算装置 Download PDF

Info

Publication number
JP7306865B2
JP7306865B2 JP2019080069A JP2019080069A JP7306865B2 JP 7306865 B2 JP7306865 B2 JP 7306865B2 JP 2019080069 A JP2019080069 A JP 2019080069A JP 2019080069 A JP2019080069 A JP 2019080069A JP 7306865 B2 JP7306865 B2 JP 7306865B2
Authority
JP
Japan
Prior art keywords
core
verification
unit
message
verification process
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.)
Active
Application number
JP2019080069A
Other languages
English (en)
Other versions
JP2020177504A (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 Astemo Ltd
Original Assignee
Hitachi Astemo 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 Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2019080069A priority Critical patent/JP7306865B2/ja
Priority to US17/604,653 priority patent/US12019787B2/en
Priority to CN202080028246.3A priority patent/CN113711213A/zh
Priority to PCT/JP2020/017086 priority patent/WO2020213744A1/ja
Priority to EP20791242.9A priority patent/EP3958151A4/en
Publication of JP2020177504A publication Critical patent/JP2020177504A/ja
Application granted granted Critical
Publication of JP7306865B2 publication Critical patent/JP7306865B2/ja
Active 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Small-Scale Networks (AREA)
  • Storage Device Security (AREA)

Description

本発明は、演算装置に関する。
自動車の車載システムはセンタシステムや車外の装置と繋がりつつある。これにともない、車外からのサイバーセキュリティ攻撃に対する備えが重要になってきている。しかしながら、車載システムに搭載される制御装置の多くは限られたリソースで動作している。特許文献1には、複数のプロセッサのそれぞれが有するリソースを相互に利用させながら処理を実行させるマルチプロセッサシステムであって、第一のプロセッサによる第二のプロセッサのリソースを用いた該第二のプロセッサに属する処理の実行を許可するか否かを判定する実行許否判定手段、を備えることを特徴とするマルチプロセッサシステムが開示されている。
特開2008-176646号公報
特許文献1に記載されている発明では、安全対策が十分でない。特に、マルチプロセッサコアが搭載された環境において、不正なメッセージを受信した際に、第1の検証が突破・回避された際の対策が十分でない。
本発明の第1の態様による演算装置は、演算処理を行う第1コア、第2コア、以上のその他のコアである他コア、およびRAMを備える演算装置であって、前記第1コアは、前記演算装置の外部から受信するメッセージに対して1回目の検証処理を行う第1検証部を有し、前記第2コアは、前記メッセージに含まれる識別情報に基づき、前記メッセージに対する2回目の検証処理を当該第2コアが実行するか否かを判断する検証先判断処理部を有し、前記他コアは、前記1回目の検証処理および前記2回目の検証処理において異常が発見されないと前記メッセージに含まれる情報に基づき前記第1コア、前記第2コア、および前記他コアの少なくとも1つのコアに前記RAMの特定の領域へアクセスするための権限を付与する権限付与部を有する。
本発明の第2の態様による演算装置は、演算処理を行う3つ以上のコア、およびRAMを備える演算装置であって、前記演算装置の外部からメッセージを受信するインタフェース部と、前記メッセージに対して1回目の検証処理を行う第1検証部と、前記メッセージに対して2回目の検証処理を行う第2検証部と、前記メッセージに含まれる識別情報に基づき、前記2回目の検証処理を実行する前記コアを特定する特定部と、前記1回目の検証処理および前記2回目の検証処理において異常が発見されないと前記メッセージに含まれる情報に基づき前記3つ以上のコアに含まれる少なくとも1つのコアに前記RAMの特定の領域へアクセスするための権限を付与する権限付与部と、を備え、前記第1検証部および前記第2検証部は異なる前記コアにより実現される。
本発明によれば、マルチプロセッサコアが搭載された環境において、不正なメッセージを受信した際に、第1の検証が突破・回避されても、第2の検証により、不正メッセージから対象装置を保護することができる。
演算装置のハードウエア構成図 演算装置の機能構成図 検証判断情報の一例を示す図 検証依頼先情報の一例を示す図 権限管理情報の一例を示す図 認証システムの全体処理シーケンス図 図6における第1コアの動作を示すフローチャート 図6における第2コアの動作を示すフローチャート 図6における第3コアの動作を示すフローチャート 変形例3における演算装置の機能構成図
―実施の形態―
以下、図1~図9を参照して、本発明に係る演算装置の実施の形態を説明する。
(ハードウエア構成)
図1は、本発明に係る演算装置1のハードウエア構成図である。演算装置1は、通信バス4を介して、第1コア11、第2コア12、第3コア13、インタフェース部5、RAM6、ROM7が接続されている。ROM7に格納されたプログラムを第1コア11、第2コア12、および第3コア13がRAM6に展開して実行することにより後述する機能を実現する。以下では、第1コア11、第2コア12、および第3コア13をまとめてコア10と呼ぶ。第1コア11、第2コア12、および第3コア13のそれぞれは物理コアであり、それぞれが独立してパッケージ化されてもよいし、コア10が1つのパッケージに封入されてもよい。
なおROM7には、検証判断情報700、検証依頼先情報800、および権限管理情報900が格納される。検証判断情報700、検証依頼先情報800、および権限管理情報900はコア10により参照される。検証判断情報700、検証依頼先情報800、および権限管理情報900の具体的な説明は後述する。
インタフェース部5は、演算装置1の外部からの通信メッセージを受信し、RAM6に保存する。またインタフェース部5は、RAM6またはRAM7に保存された情報を通信メッセージとして演算装置1の外部に送信する。インタフェース部5が対応する通信バスの規格は、CAN(登録商標)、LIN(登録商標)、FlexRay(登録商標)、イーサネット(登録商標)などである。インタフェース部5は少なくとも1つの通信規格に対応すればよい。
通信メッセージとは、通信により授受される電子データであり、「パケット」、「データフレーム」、「データグラム」などとも呼ばれる。また通信メッセージは「パケット」などのそのものでなくてもよく、たとえば複数の「パケット」などを所定の手順により結合や復号をしたものであってもよい。さらに通信メッセージは、ヘッダを含めた全体であってもよいし、ヘッダを除いたペイロードのみでもよい。
(機能構成)
図2は、演算装置1の機能構成図である。演算装置1は、第1バス21と、第2バス22と、第3バス23とに接続される。演算装置1はたとえば車両に搭載され、第1バス21および第2バス22は車両の外部に接続される通信バスであり、第3バス23は車両の内部に接続される通信バスである。第2バス22は「内部向け通信バス」、第3バス23は「外部向け通信バス」と呼ぶこともできる。たとえば不図示の無線通信ユニットが車両の外部から受信したメッセージが第1バス21や第2バス22を経由して演算装置1に入力され、演算装置1を介して車両内部の第3バス23に出力される。第3バス23には、車両を制御する電子制御装置が接続される。本実施の形態では、第1バス21を介して演算装置1が受信した通信メッセージの真正性の検証を説明する動作を主に説明する。
図2に示す通信バスとコア10の関係は観念的なものであり、それぞれの通信バスから入力されるメッセージは、接続されたコア10が初めに処理を行う。たとえば本実施の形態で主に説明する状況である、演算装置1が第1バス21からメッセージを受信した場合には、第1コア11が初めに処理を行う。具体的には第1コア11が最初の検証を行い、他のコアが2番目の検証を行う。詳しくは後述する。なお以下では、最初の検証を「第1検証」や「第1の検証」と呼ぶことがある。なお以下では、2回目の検証を「第2検証」や「第2の検証」と呼ぶことがある。
なお第1バス21、第2バス22、および第3バス23のそれぞれは、物理的に複数の通信バスであってもよい。第1バス21、第2バス22、および第3バス23のそれぞれが対応する通信バスの規格はすべて同一でもよいし異なっていてもよい。第1バス21、第2バス22、および第3バス23が対応する通信バスの規格は図1に示したインタフェース部5の規格などである。
演算装置1はその機能として、第1検証部31、第2検証部32、制御部33、検証先判断処理部34、検証依頼処理部35、および権限管理部36を備える。本実施の形態では、第1コア11が第1検証部31を実行し、第2コア12が第2検証部32、制御部33、検証先判断処理部34、および検証依頼処理部35を実行し、第3コア13が第2検証部32、制御部33、および権限管理部36を実行する。
第2検証部32および制御部33は、第2コア12と第3コア13の両方で実行される。これは、2つのコアが協力して1つの処理を行うことを意味しているのではなく、それぞれのコアが独立して処理を実行可能であることを意味する。すなわち第2検証部32および制御部33のそれぞれは、第2コア12により実行されることもあるし、第3コア13により実行されることもある。いずれのコアが上述の処理を行うかは後述する。なお第2検証部32および制御部33は、ある入力に対して同一の出力が得られることから実行するコアを問わず同一の符号を付しており、それぞれを実現する手段が異なってもよい。たとえば第2コア12が第2検証部32を実現するためのプログラムコードと、第3コア13が第2検証部32を実現するためのプログラムコードとが同一でなくてもよい。
第1検証部31および第2検証部32は、演算装置1が受信した通信メッセージの真正性を検証する。第1検証部31と第2検証部32は、異なるコアにより実行される。本実施の形態では主に、前述のとおり、第1バス21を介して演算装置1が受信した通信メッセージの真正性の検証を説明する。そのため、最初に通信メッセージの検証を行う第1コア11の検証部を、便宜的に第2コア12や第3コア13の検証部とは異なる名称としている。第1検証部31および第2検証部32は同一の手法により通信メッセージの真正性を検証してもよいし、異なる手法により通信メッセージの真正性を検証してもよい。
第2コア12により実行される検証先判断処理部34は、通信メッセージの2番目の検証、すなわち第2検証部32の動作を、第2コア12自身が実行するか否かを判断する。第2コア12により実行される検証依頼処理部35は、検証先判断処理部34が通信メッセージの2番目の検証を、自身以外のプロセッサコアに依頼すべきと判断した場合、所定のルールに該当するプロセッサコアに対して、通信メッセージの検証を依頼する。
第2コア12および第3コア13により実行される制御部33は、与えられた権限に従って、所定の処理を実行する。
第2コア12および第3コア13により実行される権限管理部36は、処理内容に応じてそれぞれのコア10に付与する権限を制御する。権限の制御とはたとえば、RAM6の特定の領域へのアクセスの許可である。権限管理部36は、第2検証部32の検証結果において真正性を確認された処理内容に対してだけ権限を制御する。すなわち第1検証部31および第2検証部32のいずれかにより真正性が確認できない場合には、権限を変更しない。なお権限管理部36は、車外と直接接続されない第3コア13にのみ備えられることが好ましい。
(検証判断情報700)
図3は検証判断情報700の一例を示す図である。検証判断情報700は、複数のレコードを有し、各レコードは処理ID701および処理可否702のフィールドを有する。処理ID701は、実行する処理内容を識別するための識別子である。処理ID701は識別が可能であればフォーマットは問わず、図3に示すように何らかの数値でもよいし、IPアドレスなどでもよい。処理可否702は、同一レコードの処理ID701を有する通信メッセージを第2コア12自身が処理するか否かを示す。図3に示す例では「1」は第2コア12自身が処理することを示し、「0」は第2コア12以外のコアが処理することを示す。処理ID701は、通信メッセージに含まれていてもよく、通信メッセージごとに処理IDが区別される場合は通信IDを処理IDとして使用してもよい。
検証先判断処理部34は、検証判断情報700を参照することで、受信した通信メッセージを第2コア12が処理するか否かを判断する。検証先判断処理部34は、まず受信した通信メッセージの処理IDを特定する。次に検証先判断処理部34は、特定した処理IDに対応する処理の可否を検証判断情報700から読み取る。読み取った処理可否702が「1」であれば第2コア12が処理すると判断し、「0」であれば第2コア12が処理しないと判断する。
(検証依頼先情報800)
図4は検証依頼先情報800の一例を示す図である。検証依頼先情報800は複数のレコードを有し、各レコードは処理ID801およびコアID802のフィールドを有する。処理ID801は、実行する処理内容を識別するための識別子であり、検証判断情報700の_701と同一である。コアID802は、同一レコードの処理ID701を有する通信メッセージを検証するコア10の識別子を示す。コアID802はたとえば第1コア11に対応する「0x001」、第2コア12に対応する「0x002」、第3コア13に対応する「0x003」のいずれかである。ただし本実施の形態では、第1コア11が最初の検証を行うため、検証依頼先情報800のコアID802により示されるコア10は、第2コア12および第3コア13のいずれかである。
検証依頼処理部35は、検証依頼先情報800を参照することで、受信した通信メッセージの検証依頼先を特定する。検証依頼処理部35は、まず受信した通信メッセージの処理IDを特定する。次に検証依頼処理部35は、特定した処理IDを有する通信メッセージの2回目の検証を行うコア10を検証判断情報700から読み取る。読み取ったコアID802が「0x002」であれば第2コア12自身に処理を依頼し、「0x003」であれば第3コア13に処理を依頼する。
(権限管理情報900)
図5は権限管理情報900の一例を示す図である。権限管理情報900は複数のレコードを有し、各レコードは処理ID901、第1コア権限902、第2コア権限903、第3コア権限904のフィールドを有する。処理ID901は、実行する処理内容を識別するための識別子であり、検証判断情報700の_701や検証依頼先情報800の_801と同一である。第1コア権限902、第2コア権限903、および第3コア権限904のそれぞれは、第1コア11、第2コア12、および第3コアのそれぞれへの権限付与の有無を示す。図5に示す例では「0」は権限を付与しないことを示し、「1」は権限を付与することを示す。
なお図5に示す例では権限付与の有無のみを示しているが、付与する権限の種類や範囲などを合わせて示してもよい。権限の種類とは、たとえば読み込みのみ、書き込みのみ、読み込みと書き込み、などである。権限の範囲とは、たとえばアドレス空間の番地の範囲や、権限を付与する時間的な範囲である。
権限管理部36は、権限管理情報900を参照して、受信した通信メッセージに起因する処理に必要な権限の付与を行う。権限管理部36は、まず受信した通信メッセージの処理IDを特定する。次に権限管理部36は、特定した処理IDに対応するコア10に権限を付与する。たとえば権限管理部36は、処理IDが「0x002」の場合には、第2コア12および第3コアに権限を付与する。
(シーケンス図)
図6は、第1コア11が通信メッセージを受信した場合における認証システムの全体処理シーケンス図である。ステップS301では、第1検証部31はインタフェース部5を介して受信した通信メッセージの真正性を、所定のルールに基づいて検証する。続くステップS302では、第1コア11は第2コア12に通信メッセージを受信したことを通知する。なおステップS301において真正性が確認できない場合は、第1コア11は異常対処処理を行う。
続くステップS303では、第2コア12により実現される検証先判断処理部34はステップS301において真正性を検証した通信メッセージの2回目の検証を、自身以外、すなわち第2コア12以外のコア10に依頼すべきか否かを判断する。ただし本図の説明においては、ステップS303において検証先判断処理部34は自身以外のコア10に検証を依頼すべきと判断したとする。
検証依頼処理部35は通信メッセージの2回目の検証を依頼する検証先となるコア10を決定し(ステップS304)、そのコア10に対して検証依頼を通知する(ステップS305)。ステップS306では、第3コア13の第2検証部32はステップS301において最初の検証を実施した通信メッセージの真正性を、所定のルールに基づいて検証する。ステップS307では、第2検証部32はステップS306の検証の結果である、真正性の有無を確認する。
ステップS308では、権限管理部36はステップS307において真正性があると確認された場合、通信メッセージの処理において、権限の付与が必要か否かを確認する。ステップS309では、権限管理部36はステップS308において必要と判断した権限を付与、すなわち権限を更新する。ステップS310では、第3コア13はステップS307において確認した検証結果を第2コア12に通知する。
ステップS311では、検証依頼処理部35はステップS310において通知された検証結果により、真正性および権限付与について確認する。ステップS312では、制御部33は通信メッセージを所定の処理に応じて実行する。ステップS313では、第2コア12は通信メッセージの処理が完了したことを第3コア13に通知する。
ステップS314では、権限管理部36は上記ステップS313において通知された完了通知を受けた場合、上記ステップS309において権限の付与があったか否かを確認する。ステップS315では、権限管理部36は上記ステップS314において権限の付与があったことを確認した場合、付与された権限を解除する。
以上のステップにより、認証処理システムは、演算装置1が装置外から通信メッセージを受信した場合、第1コア11による第1の検証に加えて、装置外からメッセージを受信していない第2コア12を経由し、第2コア12または第3コア13が第2の検証を実行させ、車外から送られてくる不正な通信に対して自動車を安全な状態で維持できる。
(第1コア11のフローチャート)
図7は、図6における第1コア11のステップS301からステップS302までに関する処理を示すフローチャートである。具体的には図7に示すフローチャートでは、通信メッセージを検証し、第2コア12に通信メッセージの受信を通知する処理を示す。
ステップS401では、第1コア11はインタフェース部5を用いて装置外からの通信メッセージを受信する。続くステップS402では、第1コア11はステップS401で受信した通信メッセージを対象として、第1検証部31を用いて正しい通信メッセージか否かを検証する。第1検証部31はたとえば次の3つの判断手法のいずれかを採用してもよいし、これ以外の手法を採用してもよい。
第1の手法は、当該通信メッセージに含まれる通信IDが予め決められた通信IDの場合は正しいと判定し、該当しない通信IDの場合は正しくないと判定する手法である。第2の手法は、当該通信メッセージが予め決められた通信周期内に受信した場合は正しいと判定し、通信周期内に受信しなかった場合は正しくないと判定する手法である。第3の手法は、当該通信メッセージに含まれるMAC(Message Authentication Code)の値と、当該通信メッセージに基づいて生成されるMACの値が一致している場合は正しいと判定し、一致していない場合は正しくないと判定する手法である。
ステップS403では、第1コア11はステップS402において通信メッセージが正しいと判定した場合はステップS405に進み、正しくないと判定した場合はステップS404に進む。ステップS404では、第1コア11は所定の異常対処処理を実行する。たとえば、第1コア11は受信した通信メッセージを破棄してもよく、加えて、異常が発生したことを装置内および装置外に通知してもよい。
ステップS405では、第1コア11は第2コア12に通信メッセージを受信したことを通知する。ただし、第1コア11は第2コア12以外の予め決められたコア10に通知してもよいし、通信メッセージに含まれる通信IDに応じたコア10に通知してもよい。また第1コア11は、自身以外のコア10の処理負荷を確認し、処理負荷が一定の基準以下のコア10に通知してもよいし、自身以外のすべてのプロセッサコアに通知してもよい。
(第2コア12のフローチャート)
以上のステップにより、第1コア11は、受信した通信メッセージを検証し、検証結果に基づいて、他のプロセッサコアに通信メッセージの受信を通知できる。
図8は、図6における第2コア12の処理、すなわちステップS303からステップS305まで、およびステップS311からステップS313までの処理を示すフローチャートである。具体的には図8に示すフローチャートは、通信メッセージの検証要否を判断し、判断結果に応じて検証先を決定し、検証結果に応じて制御処理を実行する処理を示す。
ステップS501では、第2コア12は第1コア11からの通信メッセージ受信の通知を受け取り、当該通信メッセージを取得する。ステップS502では、第2コア12は受信した通信メッセージに含まれる通信IDを取得する。ステップS503では、第2コア12の検証先判断処理部34は、検証判断情報700を参照してステップS502で取得した通信IDが第2コア12自身の処理対象か否かを判断する。たとえば、検証先判断処理部34は、ステップS501で取得した通信メッセージに含まれる処理IDが「0x002」の場合は、図3に示す検証判断情報700では処理可否702が「0」なので、検証対象ではないと判断する。
ステップS504では、第2コア12はステップS501で受信した通信メッセージに対して、第2検証部32を用いて正しい通信メッセージか否かを検証してステップS509に進む。たとえば、当該通信メッセージに含まれる通信IDが予め決められた通信IDの場合は正しいと判定する。
ステップS505では、第2コア12の検証依頼処理部35は検証依頼先情報800を参照し、検証依頼先を選定する。たとえば、検証依頼処理部35は、ステップS501で取得した通信メッセージの処理IDが「0x002」の場合は、図4に示す検証依頼先情報800ではこの処理ID801に紐づくコアID802が「0x003」なので、第3コア13を検証依頼先として選定する。
ステップS506では、第2コア12の検証依頼処理部35はステップS505で選定した検証依頼先に対して、検証依頼通知を送信する。ステップS507では、第2コア12はステップS506で送信した検証依頼の結果が返信されるのを待つ。ステップS508では、第2コア12は検証結果を受信した場合はステップS509に進み、検証結果を受信していない場合はステップS507に戻る。
ステップS504の次、またはステップS508において肯定判断されると実行されるステップS509では、第2コア12の第2検証部32は2回目の検証処理の結果を確認し、異常があると判断する場合はステップS510に進み、異常がないと判断する場合はステップS511に進む。ステップS510では、第2コア12は所定の異常対処処理を実行する。たとえば、受信した通信メッセージを破棄してもよく、加えて、異常が発生したことを装置内および装置外に通知してもよい。ステップS511では、第2コア12は処理IDに応じた所定の制御を実行する。
以上の処理により、第2コア12は通信メッセージの検証要否を判断し、判断結果に応じて検証先を決定し、検証結果に応じて制御処理を実行できる。
(第3コア13のフローチャート)
図9は、図6における第3コア13のステップS306からステップS310まで、およびステップS314からステップS315までの処理を示すフローチャートである。具体的には図9に示すフローチャートは、2回目の検証処理を実施し、検証結果に応じて権限の更新を実行する処理を示す。
ステップS601では、第3コア13は第2コア12からの通信メッセージ受信の通知を受け取り、当該通信メッセージを取得する。ステップS602では、第3コア13の第2検証部32はステップS601で受信した通信メッセージに対して、正しい通信メッセージか否かを検証する。
ステップS603では、第3コア13の第2検証部32は2回目の検証処理の結果を確認し、異常があればステップS604に進み、異常がなければステップS605に進む。ステップS604では、第3コア13は所定の異常対処処理を実行する。たとえば、受信した通信メッセージを破棄してもよく、加えて、異常が発生したことを装置内および装置外に通知してもよい。
ステップS605では、第3コア13の権限管理部36は通信メッセージに含まれる処理IDを取得し、権限管理情報900を参照して当該処理IDが権限変更を必要とするか否かを確認する。たとえば全てのコアについて権限の付与が不要であれば、権限変更は不要である。ステップS606では、第3コア13の権限管理部36は、ステップS605において権限変更が必要と判断した場合はステップS607に進み、権限変更が必要ないと判断した場合はステップS608に進む。
ステップS607では、第3コア13は権限管理部36を用いて権限管理情報900を参照し、該当する処理IDの権限を更新する。ステップS608では、第3コア13はステップS602における検証結果を第2コア12に通知する。続くステップS609では、第3コア13は第2コア12からの制御完了通知を待つ。ステップS610では、第3コア13は第2コア12からの制御処理の完了通知を受信した場合はステップS611に進み、受信していない場合はステップS609に戻る。
ステップS611では、第3コア13はステップS607における権限変更の有無を確認する。たとえば、RAM6に初期値が「0」の更新有無フラグを格納し、第3コア13は権限管理部36がいずれかの権限を変更した際に更新有無フラグを「1」に更新し、権限管理部36が更新有無フラグの値を確認することにより、権限変更の有無を判断する。
ステップS612では、第3コア13はステップS611において権限の変更があったと判断する場合はステップS613に進み、権限の変更がなかったと判断する場合は本処理を終了する。 ステップS613では、第3コア13は権限管理部36を用いて上記ステップS607で更新した権限を、更新前の権限に変更する。
以上の処理により、第3コア13は、第2検証処理を実施し、検証結果に応じて権限の更新を実行できる。
上述した実施の形態によれば、次の作用効果が得られる。
(1)演算装置1は演算処理を行う第1コア11、第2コア12、および第3コア13を備える。第1コア11は、演算装置1の外部から受信するメッセージに対して1回目の検証処理を行う第1検証部31を有する。第2コア12は、メッセージに含まれる識別情報、すなわち処理IDに基づき、メッセージに対する2回目の検証処理を当該第2コア12が実行するか否かを判断する検証先判断処理部34を有する。そのため、演算装置1は、車外からの通信を介したサイバー攻撃に対して、堅牢である。具体的には、演算装置1の外部からメッセージを受信した第1コア11における最初の検証処理が突破や回避されたとしても、物理的に異なるコアである第2コア12または第3コア13が2番目の認証を実行するので、マルチプロセッサコアのリソースを効率的に使用した多層防御を実現できる。
(2)第2コア12は、検証先判断処理部34が2回目の検証処理を第2コア12が実行しないと判断すると、識別情報である処理IDおよび検証依頼先情報800に基づきいずれのコア10が2回目の検証処理を実行するかを特定して2回目の検証処理の実行を依頼する検証依頼処理部35をさらに有する。そのため、2回目の検証処理を実行するコア10を特定して実行を依頼できる。
(3)第3コア13は、1回目の検証処理および2回目の検証処理において異常が発見されないと(図9のS603:NO)、メッセージに含まれる情報、すなわち処理IDに基づき第1コア11、第2コア12、および第3コア13の少なくとも1つのコアにRAM6へのアクセス権限を付与する権限管理部36を有する。そのため演算装置1は、2回の検証において異常が発見されなかった場合に、メッセージを処理するための権限を付与することができる。
(4)第2コア12は、検証先判断処理部34が2回目の検証処理を第2コア12が実行すると判断すると(図8のS503:YES)、当該第2コア12が2回目の検証処理を実行する(図8のS504)。
(変形例1)
演算装置1のROM7には、検証判断情報700および検証依頼先情報800の少なくとも一方が格納されていればよい。ROM7に検証判断情報700が格納されていない場合は、検証先判断処理部34は検証依頼先情報800を検証判断情報700の代替として利用する。すなわち_34は、検証依頼先情報800を読み取り、コアID802が第2コア12を示すものであるか否かを判断することで、検証判断情報700の代替とすることができる。
また、ROM7に検証依頼先情報800が格納されていない場合は、検証依頼処理部35は何ら参照することなく第3コア13を検証依頼先として決定する。コアが3つだけの場合には、消去法により第3コア13しか残らないためである。具体的には、2回目の検証処理を実行可能なコアは、最初の検証処理を行った第1コア11を除く2つのコアであり、第2コア12が2回目の検証処理を実行しないのであれば、2回目の検証処理を実行できるのは第3コア13だけである。
本変形例によれば次の作用効果が得られる。
(5)演算装置1は3つのコアを備える。第2コア12は、検証先判断処理部34が2回目の検証処理を第2コア12が実行しないと判断すると、第3コア13に2回目の検証処理の実行を依頼する検証依頼処理部35を有する。
(変形例2)
上述した実施の形態では、検証先判断処理部34および検証依頼処理部35は、メッセージに含まれる識別子である処理IDのみから2回目の検証処理を実行するコア10が決定された。しかし検証先判断処理部34および検証依頼処理部35は、メッセージの指示内容に基づき2回目の検証処理を実行するコア10を決定してもよい。より具体的には、検証先判断処理部34および検証依頼処理部35は、識別情報に基づき2回目の検証処理を第2コア12が実行すると判断する場合であっても、メッセージの指示内容が所定の条件に合致する場合は2回目の検証処理を第3コア13が実行すると判断してもよい。
メッセージに関する所定の条件とは、たとえば次の2つの場合である。第1の場合は、そのメッセージの少なくとも一部を車両の内部に接続される通信バスである第3バス23へ転送する指示が含まれる場合である。第2の場合は、そのメッセージの処理に際して権限の付与が行われる場合である。
本変形例によれば次の作用効果が得られる。
(6)演算装置1は車両に搭載される。演算装置1は車両の外部向け通信バスである第1バス21、第2バス22および内部向け通信バスである第3バス23に接続される。第1コア11および第2コア12は外部向け通信バスとのメッセージの送受信を実行する。第3コア13は、内部向け通信バスとのメッセージの送受信を実行する。第2コア12の検証先判断処理部34および検証依頼処理部35は、識別情報に基づき2回目の検証処理を当該第2コア12が実行すると判断する場合であっても、メッセージの指示内容が所定の条件に合致する場合は2回目の検証処理を第3コア13が実行すると判断する。
(変形例3)
上述した実施の形態では、検証先判断処理部34および検証依頼処理部35は第2コア12に備えられた。しかし検証先判断処理部34および検証依頼処理部35は第3コア13に備えられてもよい。この場合には、検証先判断処理部34および検証依頼処理部35は第3コア13のみに備えられてもよいし、第2コア12および第3コア13に備えられてもよい。
なお実施の形態では第1バス21を介して演算装置1が受信した通信メッセージの真正性の検証を説明する動作を主に説明したが、実際には第2バス22を介して演算装置1が受信した通信メッセージの真正性の検証も行うので、第1コア11にも検証先判断処理部34および検証依頼処理部35が備えられる構成も想定される。
図10は、変形例3における演算装置1の機能構成図である。図10では想定される最大限の構成を示しており、メッセージの入力元により第1コア11および第2コア12における検証が第1検証部31とも第2検証部32とも呼べてしまうので、ここでは両者を兼ねたものとして検証部30Aを定義する。図10に示すように、第1コア11と第2コア12の機能構成は同一であり、第3コア13の機能構成は、第1コア11や第2コア12の機能構成に加えてさらに権限管理部36を有する。
本変形例によれば次の作用効果が得られる。
(7)演算装置1は、演算処理を行う3つ以上のコアを備える。演算装置1の外部からメッセージを受信するインタフェース部5と、メッセージに対して1回目の検証処理を行う第1検証部31と、メッセージに対して2回目の検証処理を行う第2検証部32と、メッセージに含まれる識別情報に基づき、2回目の検証処理を実行するコアを特定する特定部、すなわち検証先判断処理部34および検証依頼処理部35とを備える。第1検証部31および第2検証部32は異なるコアにより実現される。そのため、演算装置1の機能構成に様々なバリエーションを持たせることができる。
(変形例4)
上述した実施の形態では、演算装置1は3つのコアを備えた。しかし演算装置1は4以上のコアを備えてもよい。この場合には検証依頼先情報800は、コアID802の値のバリエーションがコアの数に応じて増加する。また権限管理情報900は、各レコードのフィールドがコアの数に応じたフィールドを有する。ただし検証判断情報700の処理可否702は「0」か「1」の値しかとりえないので形式的な違いはない。
(変形例5)
第1コア11、第2コア12、および第3コア13の少なくとも1つが書き換え可能な論理回路であるFPGA(Field Programmable Gate Array)や特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)により実現されてもよい。この変形例5によれば、演算装置1を様々なハードウエア構成で実現できる。
(変形例6)
第3コア13は、図9のステップS603において異常がないと判断した場合に制御処理を実行してもよい。すなわち実施の形態では、制御処理は第2コア12が実行したが第3コア13が制御処理を実行してもよい。
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
なお、上述した実施の形態では特に説明しなかったが、暗号用の鍵及びシードは安全に配布、管理、更新されていればよく、車両のエンジン起動時/停止時、製品開発時、メンテナンス時などの任意のタイミングで配布や更新が行なわれてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
1…演算装置
5…インタフェース部
11…第1コア
12…第2コア
13…第3コア
21…第1バス
22…第2バス
23…第3バス
31…第1検証部
32…第2検証部
33…制御部
34…検証先判断処理部
35…検証依頼処理部
36…権限管理部

Claims (6)

  1. 演算処理を行う第1コア、第2コア、以上のその他のコアである他コア、およびRAMを備える演算装置であって、
    前記第1コアは、前記演算装置の外部から受信するメッセージに対して1回目の検証処理を行う第1検証部を有し、
    前記第2コアは、前記メッセージに含まれる識別情報に基づき、前記メッセージに対する2回目の検証処理を当該第2コアが実行するか否かを判断する検証先判断処理部を有し、
    前記他コアは、前記1回目の検証処理および前記2回目の検証処理において異常が発見されないと前記メッセージに含まれる情報に基づき前記第1コア、前記第2コア、および前記他コアの少なくとも1つのコアに前記RAMの特定の領域へアクセスするための権限を付与する権限付与部を有する、演算装置。
  2. 請求項1に記載の演算装置において、
    前記第2コアは、前記検証先判断処理部が前記2回目の検証処理を前記第2コアが実行しないと判断すると、前記識別情報に基づき前記他コアのいずれが前記2回目の検証処理を実行するかを特定して前記2回目の検証処理の実行を依頼する検証依頼処理部をさらに有する演算装置。
  3. 請求項1に記載の演算装置において、
    前記他コアは1つのコアであり、
    前記第2コアは、前記検証先判断処理部が前記2回目の検証処理を前記第2コアが実行しないと判断すると、前記他コアに前記2回目の検証処理の実行を依頼する検証依頼処理部をさらに有する演算装置。
  4. 請求項1に記載の演算装置において、
    前記第2コアは、前記検証先判断処理部が前記2回目の検証処理を前記第2コアが実行すると判断すると、当該第2コアが前記2回目の検証処理を実行する演算装置。
  5. 請求項2に記載の演算装置において、
    前記演算装置は車両に搭載され、
    前記演算装置は前記車両の外部向け通信バスおよび内部向け通信バスに接続され、
    前記第1コアおよび前記第2コアは前記外部向け通信バスとのメッセージの送受信を実行し、
    前記他コアに含まれる第3コアは、前記内部向け通信バスとのメッセージの送受信を実行し、
    前記第2コアの前記検証先判断処理部および前記検証依頼処理部は、前記識別情報に基づき前記2回目の検証処理を当該第2コアが実行すると判断する場合であっても、前記メッセージの指示内容が所定の条件に合致する場合は前記2回目の検証処理を前記第3コアが実行すると判断する演算装置。
  6. 演算処理を行う3つ以上のコア、およびRAMを備える演算装置であって、
    前記演算装置の外部からメッセージを受信するインタフェース部と、
    前記メッセージに対して1回目の検証処理を行う第1検証部と、
    前記メッセージに対して2回目の検証処理を行う第2検証部と、
    前記メッセージに含まれる識別情報に基づき、前記2回目の検証処理を実行する前記コアを特定する特定部と
    前記1回目の検証処理および前記2回目の検証処理において異常が発見されないと前記メッセージに含まれる情報に基づき前記3つ以上のコアに含まれる少なくとも1つのコアに前記RAMの特定の領域へアクセスするための権限を付与する権限付与部と、を備え、
    前記第1検証部および前記第2検証部は異なる前記コアにより実現される演算装置。
JP2019080069A 2019-04-19 2019-04-19 演算装置 Active JP7306865B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019080069A JP7306865B2 (ja) 2019-04-19 2019-04-19 演算装置
US17/604,653 US12019787B2 (en) 2019-04-19 2020-04-20 Arithmetic device
CN202080028246.3A CN113711213A (zh) 2019-04-19 2020-04-20 运算装置
PCT/JP2020/017086 WO2020213744A1 (ja) 2019-04-19 2020-04-20 演算装置
EP20791242.9A EP3958151A4 (en) 2019-04-19 2020-04-20 CALCULATION DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019080069A JP7306865B2 (ja) 2019-04-19 2019-04-19 演算装置

Publications (2)

Publication Number Publication Date
JP2020177504A JP2020177504A (ja) 2020-10-29
JP7306865B2 true JP7306865B2 (ja) 2023-07-11

Family

ID=72837307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019080069A Active JP7306865B2 (ja) 2019-04-19 2019-04-19 演算装置

Country Status (5)

Country Link
US (1) US12019787B2 (ja)
EP (1) EP3958151A4 (ja)
JP (1) JP7306865B2 (ja)
CN (1) CN113711213A (ja)
WO (1) WO2020213744A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008306592A (ja) 2007-06-08 2008-12-18 Univ Nagoya 車載通信システム、車載通信装置及び車載通信方法
WO2013072973A1 (ja) 2011-11-18 2013-05-23 富士通株式会社 通信ノード、通信制御方法、および通信ノードの制御プログラム
JP2019004518A (ja) 2014-05-08 2019-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 車載ネットワークシステム、電子制御ユニット及び不正対処方法
JP2019041228A (ja) 2017-08-24 2019-03-14 株式会社デンソー 電子制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176646A (ja) 2007-01-19 2008-07-31 Toyota Motor Corp マルチプロセッサシステム
JP4709268B2 (ja) * 2008-11-28 2011-06-22 日立オートモティブシステムズ株式会社 車両制御用マルチコアシステムまたは内燃機関の制御装置
KR20240042252A (ko) 2009-10-29 2024-04-01 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치
JP2015171008A (ja) 2014-03-07 2015-09-28 株式会社リコー 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6459812B2 (ja) * 2015-07-10 2019-01-30 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
DE102017119062B4 (de) 2016-08-23 2024-06-06 Steering Solutions Ip Holding Corporation Computerimplementiertes Verfahren zur Kommunikation zwischen Controllern und Kommunikationssystem
US10735206B2 (en) * 2016-11-07 2020-08-04 The Regents Of The University Of Michigan Securing information exchanged between internal and external entities of connected vehicles
JP6736456B2 (ja) * 2016-11-17 2020-08-05 キオクシア株式会社 情報処理装置およびプログラム
US11108542B2 (en) * 2017-07-07 2021-08-31 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Multi-processor automotive electronic control unit
CN107888710A (zh) * 2017-12-26 2018-04-06 新华三信息安全技术有限公司 一种报文转发方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008306592A (ja) 2007-06-08 2008-12-18 Univ Nagoya 車載通信システム、車載通信装置及び車載通信方法
WO2013072973A1 (ja) 2011-11-18 2013-05-23 富士通株式会社 通信ノード、通信制御方法、および通信ノードの制御プログラム
JP2019004518A (ja) 2014-05-08 2019-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 車載ネットワークシステム、電子制御ユニット及び不正対処方法
JP2019041228A (ja) 2017-08-24 2019-03-14 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
EP3958151A1 (en) 2022-02-23
CN113711213A (zh) 2021-11-26
EP3958151A4 (en) 2023-01-11
US12019787B2 (en) 2024-06-25
WO2020213744A1 (ja) 2020-10-22
JP2020177504A (ja) 2020-10-29
US20220215131A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
US11422787B2 (en) Method and device for wirelessly updating software for vehicle
JP6477281B2 (ja) 車載中継装置、車載通信システム及び中継プログラム
US9426164B2 (en) Network device and network system
US11513816B2 (en) System configuration control of a hardware system
EP3565212B1 (en) Method for providing an authenticated update in a distributed network
JP6704458B2 (ja) 車載用処理装置
WO2018173732A1 (ja) 車載通信装置、コンピュータプログラム及びメッセージ判定方法
EP3396922A1 (en) Information processing apparatus, information processing system and information processing method
US11558404B2 (en) On-board communication system, switching device, verification method, and verification program
US11727153B2 (en) Multi-master security circuit
JP7306865B2 (ja) 演算装置
JP6769270B2 (ja) 車載電子制御装置、車載電子制御システム、中継装置
JP2021005382A (ja) 通信装置およびメッセージを認証するための方法
CN112806034A (zh) 用于为车辆的控制设备提供通信的装置、方法和计算机程序,用于提供更新的方法、中央装置和计算机程序,控制设备和车辆
US11336657B2 (en) Securing communication within a communication network using multiple security functions
CN114834393B (zh) 车辆控制***
JP2020107237A (ja) 情報処理装置
JP7110950B2 (ja) ネットワークシステム
Chan et al. Towards a blockchain framework for autonomous vehicle system integrity
WO2019069308A1 (en) SYSTEM AND METHOD FOR VALIDATION OF COMMUNICATION AUTHENTICITY IN ONBOARD NETWORKS
WO2024127532A1 (ja) アクセス許可装置、および、アクセス許可方法
JP4627535B2 (ja) 証明書を利用したクライアントセキュリティ認証システム及びその認証方法ならびにそのためのプログラム
Ballesteros et al. RATS Working Group G. Mandyam Internet-Draft Qualcomm Technologies Inc. Intended status: Standards Track L. Lundblade Expires: August 23, 2020 Security Theory LLC
CN114282179A (zh) 容器***授权方法和服务器
CN118020270A (zh) 计算***中的安全通信

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230602

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: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230629

R150 Certificate of patent or registration of utility model

Ref document number: 7306865

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150