JP6188673B2 - 受信ノード、メッセージ検査方法、及びコンピュータプログラム - Google Patents

受信ノード、メッセージ検査方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP6188673B2
JP6188673B2 JP2014261356A JP2014261356A JP6188673B2 JP 6188673 B2 JP6188673 B2 JP 6188673B2 JP 2014261356 A JP2014261356 A JP 2014261356A JP 2014261356 A JP2014261356 A JP 2014261356A JP 6188673 B2 JP6188673 B2 JP 6188673B2
Authority
JP
Japan
Prior art keywords
message
received message
check
result
authentication code
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.)
Expired - Fee Related
Application number
JP2014261356A
Other languages
English (en)
Other versions
JP2016122932A (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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2014261356A priority Critical patent/JP6188673B2/ja
Publication of JP2016122932A publication Critical patent/JP2016122932A/ja
Application granted granted Critical
Publication of JP6188673B2 publication Critical patent/JP6188673B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明は、受信ノード、メッセージ検査方法、及びコンピュータプログラムに関する。
従来、自動車等の車両に搭載される通信ネットワークの一つとして知られているCAN(Controller Area Network)が、車両内の各種ECU(Electronic Control Unit)間の通信に用いられる。そのCANにおいてメッセージの認証を可能にする技術として、例えば非特許文献1,2、特許文献1に記載の技術が知られている。
非特許文献1に記載の従来技術では、CANに接続された偽のECUからなりすましメッセージを発信する攻撃に対して、本物のECUが、自己のIDが付与されたなりすましメッセージを検知すると、自己のIDを付与した異常を知らせるメッセージを発信することで、受信側ECUに対して異常を報知している。
非特許文献2に記載の従来技術では、CANフレーム中の誤り訂正(Cyclic Redundancy Check:CRC)フィールドに格納する情報をMAC(Message Authentication Code)に変更している。この従来技術では、送信側は、N番目からN+3番目までの4つのCANフレーム中のデータフィールドのデータ(64×4=256ビット)から64ビットのMACを生成し、該MACを16ビットずつに4分割して、N+4番目からN+7番目までの4つのCANフレーム中のCRCフィールド(16ビット)にそれぞれ格納して各CANフレームを送信する。受信側では、N+4番目からN+7番目までのCANフレーム中のCRCフィールドからMACを取得し、N番目からN+3番目までのCANフレーム中のデータフィールドから生成されるMACと一致するか否かによってN番目からN+3番目までのCANフレームが正当であるか否かを判断する。これにより、CRCフィールドから得られるMACと、データフィールドから算出されるMACとが異なる場合には、N番目からN+3番目までのCANフレームのいずれかが不正であると判断できる。
特許文献1に記載の技術では、各ECUにおいてCANIDごとにメッセージが送信された回数をカウントする。そして、メインメッセージを送信した送信ノードは、メインメッセージのデータフィールドおよびCANIDと、CANIDに対応するカウンタ値とから生成したMACを含むMACメッセージを送信する。メインメッセージを受信した受信ノードは、メインメッセージに含まれるデータフィールドおよびCANIDと、CANIDに対応するカウンタ値とからMACを生成して、受信したMACメッセージに含まれるMACと一致するかを判断する。
国際公開第2013/065689号
畑正人、田邉正人、吉岡克成、大石和臣、松本勉、"不正送信阻止:CANではそれが可能である"、情報処理学会、コンピュータセキュリティシンポジウム(CSS2011)、pp.624-629、2011年10月. AKIRA YOSHIOKA ET AL.: "Kosei Shomei Kino o Motsu Shanai Tsushin Protocol no Teian" SYMPOSIUM ON MULTIMEDIA, DISTRIBUTED, COOPERATIVE AND MOBILE SYSTEMS (DICOM02008) RONBUNSHU vol. 2008, no. 1, 02 July 2008, pages 1270 - 1275 RFC 2104 HMAC: Keyed-Hashing for Message Authentication、[2014年12月19日検索]、インターネット<URL:http://www.rfc-editor.org/rfc/rfc2104.txt> RFC 2104 HMAC:メッセージ認証のための鍵付ハッシング、[2014年12月19日検索]、インターネット<URL:http://www.ipa.go.jp/security/rfc/RFC2104JA.html> "Interpreting the CAN data for a 2010 Toyota Camry"、[2014年12月19日検索]、インターネット<URL:http://tucrrc.utulsa.edu/ToyotaCAN.html> 竹森敬祐、川端秀明、窪田歩、"ARM+SIM/UIMによるセキュアブート"、電子情報通信学会、暗号と情報セキュリティシンポジウム(SCIS2014)、1B1-2、2014年1月. Trusted Computing Group、[2014年12月19日検索]、インターネット<URL:http://www.trustedcomputinggroup.org/>
しかし、上述した非特許文献1に記載の従来技術では、通信を監視する本物のECUが取り外された場合に異常を報知できない。また、非特許文献2に記載の従来技術では、N番目からN+3番目までのCANフレームの正当性を確認するためには、N+4番目からN+7番目までのCANフレームを受信するまで待たなければならないので、CANフレームの正当性の確認に毎回時間がかかる。また、特許文献1に記載の従来技術では、メインメッセージとは別にMACメッセージを送信するので通信量が2倍以上になる。さらに、メインメッセージの認証を行うためには、MACメッセージを受信するまで待たなければならないので、メインメッセージの認証に毎回時間がかかる。
本発明は、このような事情を考慮してなされたものであり、送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査性能を向上させることができる、受信ノード、メッセージ検査方法、及びコンピュータプログラムを提供することを課題とする。
(1)本発明の一態様は、送信ノードから通信ネットワークを介してメッセージを受信する受信ノードであり、自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査部を備え、前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定する、受信ノードである。
(2)本発明の一態様は、上記(1)の受信ノードにおいて、前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査のいずれかの結果が一致であることが連続するときに受信メッセージの検査の合格を通知する、受信ノードである。
(3)本発明の一態様は、上記(1)の受信ノードにおいて、前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときに受信メッセージの検査の合格を通知する、受信ノードである。
(4)本発明の一態様は、上記(1)の受信ノードにおいて、前記メッセージ認証コード検査部は、受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の少なくともいずれかの結果が一致であることが連続するときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、受信ノードである。
(5)本発明の一態様は、上記(1)の受信ノードにおいて、前記メッセージ認証コード検査部は、受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、受信ノードである。
(6)本発明の一態様は、上記(1)から(5)のいずれかの受信ノードにおいて、前記送信ノードからの受信メッセージは、メッセージ認証コードの複数に区分けされた区間のうち、前記送信ノードがメッセージの送信毎に所定のカウント値だけ増加させる送信カウンタ値に基づいて特定される区間のみを格納し、前記受信ノードは、前記送信ノードからのメッセージの受信毎に前記カウント値だけ増加させる受信カウンタ値を保持する受信カウンタ部を備え、前記メッセージ認証コード検査部は、第1の検査において、前記送信ノードからの受信メッセージから取得したメッセージ認証コードの区間と、自己が生成したメッセージ認証コードの複数に区分けされた区間のうち前記受信カウンタ値に基づいて特定される区間と、の一致を検査する、受信ノードである。
(7)本発明の一態様は、上記(6)の受信ノードにおいて、前記受信カウンタ部は、前記再検査の結果が一致である区間に基づいて、自己が保持する受信カウンタ値を更新する、受信ノードである。
(8)本発明の一態様は、上記(6)又は(7)のいずれかの受信ノードにおいて、前記送信ノードが保持する秘密情報と同じ秘密情報を記憶する秘密情報記憶部を備え、前記送信ノードから送信されるメッセージに格納されるメッセージ認証コードの区間の元のメッセージ認証コードは、該送信されるメッセージ中のデータ部に格納される送信データと前記送信カウンタ値と前記秘密情報とに基づいて生成され、前記メッセージ認証コード検査部は、前記送信ノードからの受信メッセージ中のデータ部から取得した受信データと前記受信カウンタ値と前記秘密情報とに基づいてメッセージ認証コードを生成する、受信ノードである。
(9)本発明の一態様は、送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査方法であり、前記受信ノードが、自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップを含み、前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定する、メッセージ検査方法である。
(10)本発明の一態様は、送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのコンピュータに、前記受信ノードが生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップ、を実行させるためのコンピュータプログラムであり、前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定する、コンピュータプログラムである。
本発明によれば、送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査性能を向上させることができるという効果が得られる。
本発明の第1実施形態に係る通信ネットワークシステム1を示す構成図である。 本発明の第1実施形態に係るMCU_2(ノード)を示す構成図である。 本発明の第1実施形態に係るデータフレームを示す構成図である。 本発明の第1実施形態に係るMAC生成処理を示す説明図である。 本発明の第1実施形態に係るメッセージ検査方法を示すフローチャートである。 本発明の第1実施形態に係るメッセージ検査方法を示すフローチャートである。 本発明の第1実施形態に係るMAC検査処理(第1の検査)を示す説明図である。 本発明の第1実施形態に係る再検査処理を示す説明図である。 本発明の第2実施形態に係る通信ネットワークシステム1を示す構成図である。 本発明の第2実施形態に係るブート処理のシーケンスチャートである。 本発明の第2実施形態に係る暗号処理のシーケンスチャートである。 本発明の第2実施形態に係るMAC生成処理および検査処理(MAC検査処理(第1の検査)、再検査処理)を説明するためのシーケンスチャートである。
以下、図面を参照し、本発明の実施形態について説明する。
[第1実施形態]
本実施形態では、本発明に係る通信ネットワークシステムの一態様として、車両に搭載される通信ネットワークシステムとしてのCANを例に挙げて説明する。図1は、本発明の第1実施形態に係る通信ネットワークシステム1を示す構成図である。図1において、通信ネットワークシステム1は、複数のMCU(Micro Computing Unit)_2を有する。MCU_2は、CPU(Central Processing Unit:中央演算処理装置)及びメモリ等から構成されるものであって、コンピュータの一種である。MCU_2は、自己のCPUがコンピュータプログラムを実行することにより、該コンピュータプログラムに該当する機能を実現する。各MCU_2は、車両内の機器を制御する電子制御ユニット(ECU)として利用される。
MCU_2はCANの通信バス3に接続される。本実施形態では、説明の便宜上、通信ネットワークシステム1は3台のMCU_2を有するものとし、該3台のMCU_2が通信バス3に接続される。通信バス3は、各MCU_2の間で交換されるメッセージを伝送する。各MCU_2は、通信バス3を介して、相互にメッセージを送受する。CANでは、所定のフレーム形式でメッセージの伝送が行われる。MCU_2は、CANにおけるノード(通信装置)として機能する。本実施形態では、MCU_2は、メッセージを送信する送信ノードの機能とメッセージを受信する受信ノードの機能とを有する。図1中に示されるように、3台の各MCU_2には、CANにおける識別子(ID)として、ID1、ID2、ID3がそれぞれ付与されている。
図2は、本発明の第1実施形態に係るMCU_2(ノード)を示す構成図である。図2において、MCU_2は、送信部111と受信部112とフレーム受信処理部113とMAC(メッセージ認証コード)生成部114とカウンタ部115とMAC(メッセージ認証コード)検査部116と秘密情報記憶部117とを備える。
送信部111は、所定のフレーム形式のメッセージを通信バス3に送信する。受信部112は、該所定のフレーム形式のメッセージを通信バス3から受信する。図3は、本発明の第1実施形態に係るデータフレームを示す構成図である。図3のデータフレームにおいて、各フィールド中に示されるカッコ内の数字は、当該フィールドに格納される情報のビット数を示している。図3に示されるデータフレームの構成は、CANにおける標準フォーマットのデータフレームの構成に対して、一部限定している。本実施形態では、データフレーム中のデータフィールド(Data Field:データ部)に、メッセージ認証コード(MAC)を格納する。MACは、データ部内の所定の場所に格納される。図3の例では、MACは、データ部内の最後の部分に格納される。図3の例では、MACのデータ長は16ビットである。このため、データ部に格納されるMAC以外のデータのデータ長の最大値は48ビットである。図3に示されるデータフレームにおいてデータ部にMACを格納する点以外は、CANにおける標準フォーマットと同じである。以下、図3に示される本実施形態に係るデータフレームのことをCANフレームと称する。
説明を図2に戻す。
送信部111には、CANフレームに格納する送信データ等のデータが入力される。送信部111は、該入力されたデータをCANフレーム中の該当部分に格納したCANフレームを、通信バス3へ送信する。送信データは、図3中のデータフィールド(Data Field:データ部)に格納される。フレーム受信処理部113は、受信部112により通信バス3から受信されたCANフレームについての受信処理を実行する。MAC生成部114は、CANフレーム中のデータ部に格納される送信データ等に基づいてMACを生成する。
カウンタ部115は、送信カウンタ部としての機能と、受信カウンタ部としての機能とを有する。カウンタ部115は、送信カウンタ部の機能として、送信部111によるCANフレームの送信毎に所定のカウント値だけ増加させる送信カウンタ値を保持する。本実施形態では、該カウント値は1とする。したがって、カウンタ部115は、送信部111によるCANフレームの送信毎に1だけ増加させる送信カウンタ値を保持する。この送信カウンタ値は、自己のMCU_2(ノード)がCANフレームを送信する毎に1ずつ増やされる。
カウンタ部115は、受信カウンタ部の機能として、受信部112によるCANフレームの受信毎に送信カウンタ部と同じ所定のカウント値だけ増加させる受信カウンタ値を保持する。本実施形態では、該カウント値は1となる。したがって、カウンタ部115は、受信部112によるCANフレームの受信毎に1だけ増加させる受信カウンタ値を保持する。この受信カウンタ値は、CANフレーム中のID毎に設けられる。該IDは、CANフレームを送信したMCU_2(ノード)に付与されているIDであり、図3中のIDフィールド(ID部)に格納される。
本実施形態では、3台のMCU_2(IDがそれぞれ、ID1、ID2、ID3である)が存在する。このため、図2に示されるように、カウンタ部115は、該3台の各MCU_2(各IDであるID1、ID2、ID3)に対応する3つのカウンタ値(ID1カウンタ値、ID2カウンタ値、ID3カウンタ値)を保持する。カウンタ部115において、自己のMCU_2のIDに対応するカウンタ値が送信カウンタ値であり、他のMCU_2のIDに対応するカウンタ値が受信カウンタ値である。例えば、ID1のMCU_2においては、ID1カウンタ値が送信カウンタ値であり、ID2カウンタ値がID2に対応する受信カウンタ値であり、ID3カウンタ値がID3に対応する受信カウンタ値である。
MAC検査部116は、受信部112により通信バス3から受信されたCANフレームから取得されたMACについての検査を行う。秘密情報記憶部117は、各MCU_2において同じ秘密情報を記憶する。この秘密情報は、MCU_2の製造時などに、安全に、MCU_2に設定される。
次に、本実施形態に係るMCU_2(ノード)の動作を説明する。
[送信ノードの動作]
はじめに図4を参照して、MCU_2の送信ノードとしての動作を説明する。図4は、本発明の第1実施形態に係るMAC生成処理を示す説明図である。図4のMAC生成処理は、送信部111から送信されるCANフレームを作成する際に開始される。
(ステップS111)MAC生成部114は、カウンタ部115から送信カウンタ値を取得する。MAC生成部114は、該取得した送信カウンタ値のビット列(ビット数がLである)から、所定の抽出ビット数分(L−nビット分)の上位ビットのみを上位抽出ビット(ビット数が「L−n」である)として取得する。
(ステップS112)MAC生成部114は、CANフレーム中のデータ部に格納される送信データと、ステップS111で取得した上位抽出ビットと、秘密情報記憶部117に記憶される秘密情報とを使用して、MACを生成する。MACの生成方法の例1,2を以下に示す。
(MACの生成方法の例1)
MACとして、ハッシュ(Hash)値を算出する。ハッシュ値の算出方法として、例えば、SHA-256が挙げられる。なお、ハッシュ値の算出方法については、例えば非特許文献3,4に記載されている。
(MACの生成方法の例2)
MACとして、Code MAC(CMAC)を算出する。CMACは共通鍵暗号ベースのMACである。
(ステップS113)MAC生成部114は、ステップS112で生成したMACのビット列(MAC値)から、CANフレーム中のデータ部に格納するビット列(16ビット)を抽出する。例えば、ステップS112で生成したMAC値が128ビット長であり、その128ビット長のMAC値から16ビット長のビット列を抽出する。抽出されるビット列は、ステップS111で取得した送信カウンタ値のビット列(ビット数がLである)のうち上位抽出ビット以外の所定の下位ビット(ビット数がnである)の値で特定される。図4に示される例では、該下位ビット(ビット数がnである)の値は「3」である。これにより、MAC値のビット列中において、該値「3」で特定される一部分(16ビット分)を抽出する。
本実施形態では、CANフレーム中のデータ部に格納する情報として、MAC値のビット列から該値「3」で特定される16ビット分を抽出する。このため、MAC値のビット列に対して16ビットずつの区間を定め、どの区間の16ビットをCANフレーム中のデータ部に格納するのかを、送信カウンタ値の下位ビット(ビット数がnである)の値で特定する。なお、図4の例では、MAC値の総ビット数に応じたK個の区間(1区間は16ビット)が定められる。
送信部111は、CANフレームに対して、送信データ(ステップS112でMAC生成に使用されたもの)と、ステップS113でMAC値のビット列中から抽出された16ビットのビット列とをデータ部に格納する。送信部111は、該CANフレームを通信バス3へ送信する。カウンタ部115は、該CANフレームの送信により送信カウンタ値を1だけ増加させて保持する。
以上が送信ノードの動作の説明である。
[受信ノードの動作]
次に図5、図6、図7、図8を参照して、MCU_2の受信ノードとしての動作を説明する。図5及び図6は、本発明の第1実施形態に係るメッセージ検査方法を示すフローチャートである。図7は、本発明の第1実施形態に係るMAC検査処理(第1の検査)を示す説明図である。図8は、本発明の第1実施形態に係る再検査処理を示す説明図である。以下、図5及び図6のフローチャートの手順に沿って説明する。図5及び図6の処理は、受信部112によりCANフレームを受信した際に開始される。
(ステップS201)MAC検査部116は、受信部112により受信したCANフレーム(以下、受信フレームと称する)のID部に格納されているID(以下、受信IDと称する)に対応する保留フラグがオンであるかを確認する。保留フラグは、送信ノードのID毎に設けられる。本実施形態では、送信ノードに対応するMCU_2のID毎に、保留フラグがある。例えば、ID1のMCU_2のMAC検査部116は、送信ノードとしてのID2のMCU_2に対応するID2の保留フラグと、送信ノードとしてのID3のMCU_2に対応するID3の保留フラグと、を備える。
あるIDの保留フラグは、当該IDを持つ受信フレームの検査の結果の保留の有無を示す。あるIDの保留フラグがオンである場合、当該IDを持つ受信フレームの検査の結果の保留があることを示す。あるIDの保留フラグがオフである場合、当該IDを持つ受信フレームの検査の結果の保留がないことを示す。例えば、ID2の保留フラグがオンである場合、ID2を持つ受信フレームの検査の結果の保留があることを示す。ID2の保留フラグがオフである場合、ID2を持つ受信フレームの検査の結果の保留がないことを示す。
ステップS201の確認の結果、受信フレームの受信IDの保留フラグがオンである場合には図6のステップS211に進み、該保留フラグがオフである場合にはステップS202に進む。
(ステップS202)MAC検査部116は、MAC検査処理(第1の検査)を実行する。
ここで、図7を参照して、本実施形態に係るMAC検査処理(第1の検査)を説明する。
(ステップS121)MAC検査部116は、受信フレームの受信IDに対応する受信カウンタ値を、カウンタ部115から取得する。MAC検査部116は、該取得した受信カウンタ値のビット列(ビット数がLである)から、所定の抽出ビット数分(L−nビット分)の上位ビットのみを上位抽出ビット(ビット数が「L−n」である)として取得する。この上位抽出ビットの取得方法は、上述したMAC生成部114の処理(ステップS111)と同じである。
(ステップS122)MAC検査部116は、受信フレーム中のデータ部から受信データを取得する。受信データは、受信フレームのデータ部に格納されるデータのうち、MAC以外のデータである。MAC検査部116は、受信データと、ステップS121で取得した上位抽出ビットと、秘密情報記憶部117に記憶される秘密情報とを使用して、MACを生成する。このMACの値(算出MAC値)は、上述したMAC生成部114と同じ算出方法(ステップS112と同じ算出方法)で算出される。
(ステップS123)MAC検査部116は、ステップS122で生成したMACのビット列(算出MAC値)から、検査の対象にする検査対象ビット列(16ビット)を抽出する。この検査対象ビット列の抽出方法は、上述したMAC生成部114での、CANフレーム中のデータ部に格納するビット列(16ビット)の抽出方法(ステップS113)と同様である。つまり、該検査対象ビット列は、算出MAC値のビット列のうち、ステップS121で取得した受信カウンタ値のビット列(ビット数がLである)のうち上位抽出ビット以外の所定の下位ビット(ビット数がnである)の値で特定される一部分(16ビット分)である。図7に示される例では、該下位ビット(ビット数がnである)の値は「3」である。これにより、算出MAC値のビット列中において、該値「3」で特定される一部分(16ビット分)を抽出する。
本実施形態では、CANフレーム中のデータ部に格納されているMAC(16ビット)と、算出MAC値のビット列から抽出された検査対象ビット列(16ビット)との一致を検査する。このため、上述したMAC生成処理と同様に、算出MAC値のビット列に対して16ビットずつの区間を定め、どの区間の16ビットを検査対象ビット列とするのかを、受信カウンタ値の下位ビット(ビット数がnである)の値で特定している。なお、図7の例では、算出MAC値の総ビット数に応じたK個の区間(1区間は16ビット)が定められる。
MAC検査部116は、受信フレーム中のデータ部から取得したMAC値(受信MAC値(16ビット))と、算出MAC値のビット列から抽出された検査対象ビット列(16ビット)とが一致するか否かを判定する。
以上がMAC検査処理(第1の検査)の説明である。
説明を図5に戻す。
(ステップS203)MAC検査部116は、ステップS202のMAC検査処理(第1の検査)の結果、受信MAC値と検査対象ビット列とが一致である場合には、受信フレームの検査が合格であると判定する。この後、ステップS204へ進む。一方、MAC検査部116は、ステップS202のMAC検査処理(第1の検査)の結果、受信MAC値と検査対象ビット列とが不一致である場合には、ステップS205へ進む。
(ステップS204)MAC検査部116は、フレーム受信処理部113に対して、受信フレームの検査の合格を通知する。これにより、フレーム受信処理部113は、受信フレームに対して、正常に受信したCANフレームに対する所定の受信処理を実行する。また、MAC検査部116は、カウンタ部115に対して、受信フレームの検査の合格を通知する。これにより、カウンタ部115は、該当する受信カウンタ値を1だけ増加させて保持する。このカウント対象の受信カウンタ値は、受信フレームの受信IDに対応する受信カウンタ値である。ステップS204の後、図5及び図6の処理を終了する。
(ステップS205)MAC検査部116は、再検査処理を実行する。
ここで、図8を参照して、本実施形態に係る再検査処理を説明する。
(ステップS131)MAC検査部116は、受信フレームについてのMAC検査処理(第1の検査)のステップS122で生成した算出MAC値のビット列から、再検査の対象にする再検査対象ビット列(16ビット)を抽出する。この再検査対象ビット列の抽出処理は、上述した検査対象ビット列の抽出処理と同様であるが、受信フレームについてのMAC検査処理(第1の検査)のステップS121で取得した受信カウンタ値を増加させた値(増加受信カウンタ値)を使用する。具体的には、まず、ステップS121で取得した受信カウンタ値に1を加える。そして、算出MAC値のビット列のうち、該受信カウンタ値に1を加算した値である増加受信カウンタ値のビット列における下位ビット(ビット数がnである)の値で特定される一部分(16ビット分)を、再検査対象ビット列として抽出する。
MAC検査部116は、該抽出した再検査対象ビット列と受信MAC値との一致を判定する。この判定の結果が不一致である場合には、現在の増加受信カウンタ値に対してさらに1を加算した値を新たな増加受信カウンタ値とする。そして、算出MAC値のビット列のうち、該新たな増加受信カウンタ値のビット列における下位ビット(ビット数がnである)の値で特定される一部分(16ビット分)を、新たな再検査対象ビット列として抽出する。そして、該抽出された新たな再検査対象ビット列と受信MAC値との一致を判定する。この再検査は、判定の結果が一致となるまで繰り返される。但し、算出MAC値のビット列の端の区間(下位ビットの値「K−1」で特定される区間)までで当該再検査は終了とする。この理由は、下位ビットの値が桁上げされて、算出MAC値の生成に使用される上位抽出ビットの値が変わるからである。
なお、算出MAC値のビット列のうち、下位ビットの値「K−1」で特定される区間まで検査を行っても、受信MAC値と一致とならない場合には、下位ビットの値の桁上げ後の上位抽出ビットを使用して算出MAC値を再計算し、該再計算した新たな算出MAC値を使用して、上述した再検査と同様に、受信MAC値との一致の判定を繰り返し行ってもよい。この場合、MAC検査部116は、所定回数だけ再検査を繰り返しても、再検査対象ビット列と受信MAC値とが不一致である場合には、再検査処理を終了する。該所定回数として、例えば、128ビット長の元のMACの8個に区分けされた各16ビット長の区間に対して、区間数分の8回としたり、又は、区間数分の倍の16回としたりすることが挙げられる。
(ステップS132)MAC検査部116は、ステップS131の再検査の結果、再検査対象ビット列と受信MAC値とが一致した場合に、カウンタ部115に対して、当該再検査対象ビット列に係る下位ビットの値を通知してカウンタ同期を指示する。カウンタ部115は、該カウンタ同期の指示により、該当する受信カウンタ値の下位ビット(ビット数がnである)の値を、通知された下位ビットの値に変更する。このカウンタ同期対象の受信カウンタ値は、受信フレームの受信IDに対応する受信カウンタ値である。これにより、当該IDに対応する送信ノードの送信カウンタ値と、本受信ノードの当該IDに対応する受信カウンタ値との同期が取られることになる。
図8に示される例では、ステップS121で取得した受信カウンタ値における下位ビット(ビット数がnである)の値は「3」である。この値「3」で特定された検査対象ビット列では受信MAC値と不一致であった。このため、ステップS121で取得した受信カウンタ値に1を加算した増加受信カウンタ値のビット列における下位ビット(ビット数がnである)の値「4」で特定される部分を再検査対象ビット列として、受信MAC値との一致を判定する。図8の例では、該値「4」で特定された再検査対象ビット列でも、受信MAC値と不一致であった。このため、現在の増加受信カウンタ値に1を加算した新たな増加受信カウンタ値のビット列における下位ビット(ビット数がnである)の値「5」で特定される部分を再検査対象ビット列として、受信MAC値との一致を判定する。図8の例では、該値「5」で特定された再検査対象ビット列では、受信MAC値と一致であった。これにより、カウンタ部115において該当する受信カウンタ値の下位ビット(ビット数がnである)の値が「3」から「5」に変更される。
以上が再検査処理の説明である。
説明を図5に戻す。
(ステップS206)MAC検査部116は、ステップS205の再検査処理の結果、再検査対象ビット列と受信MAC値とが一致した場合には、ステップS208へ進む。一方、MAC検査部116は、ステップS205の再検査処理の結果、再検査対象ビット列と受信MAC値とが不一致のまま再検査処理を終了した場合には、ステップS207へ進む。
(ステップS207)MAC検査部116は、フレーム受信処理部113に対して、受信フレームの検査の不合格を通知する。これにより、フレーム受信処理部113は、受信フレームを破棄する。これは、通信エラーや、なりすましメッセージを発信する攻撃が発生したと考えられるからである。なお、受信フレームの検査が不合格である場合、MAC検査部116は、カウンタ部115に対して、受信フレームの検査の合格を通知しない。これにより、カウンタ部115は、受信フレームの受信IDに対応する受信カウンタ値に対して、受信カウンタ値の増加を行わない。ステップS207の後、図5及び図6の処理を終了する。
(ステップS208)MAC検査部116は、受信フレームの受信IDの連続合格個数を1にして記録する。
(ステップS209)MAC検査部116は、受信フレームの受信IDの保留フラグをオンにする。ステップS209の後、図5及び図6の処理を終了する。
上記ステップS201の確認の結果、受信フレームの受信IDの保留フラグがオンである場合には、図6のステップS211〜S219の処理が実行される。
(ステップS211)MAC検査部116は、MAC検査処理(第1の検査)を実行する。このMAC検査処理(第1の検査)は、図7を参照して上述したMAC検査処理(第1の検査)と同じである。
(ステップS212)MAC検査部116は、ステップS211のMAC検査処理(第1の検査)の結果、受信MAC値と検査対象ビット列とが一致である場合には、ステップS216へ進む。一方、MAC検査部116は、ステップS211のMAC検査処理(第1の検査)の結果、受信MAC値と検査対象ビット列とが不一致である場合には、ステップS213へ進む。
(ステップS213)MAC検査部116は、再検査処理を実行する。この再検査処理は、図8を参照して上述した再検査処理と同じである。
(ステップS214)MAC検査部116は、ステップS213の再検査処理の結果、再検査対象ビット列と受信MAC値とが一致した場合には、ステップS216へ進む。一方、MAC検査部116は、ステップS213の再検査処理の結果、再検査対象ビット列と受信MAC値とが不一致のまま再検査処理を終了した場合には、ステップS215へ進む。
(ステップS215)MAC検査部116は、フレーム受信処理部113に対して、受信フレームの検査の不合格を通知する。この後、ステップS219へ進む。MAC検査部116から受信フレームの検査の不合格が通知されたフレーム受信処理部113は、受信フレームを破棄する。これは、通信エラーや、なりすましメッセージを発信する攻撃が発生したと考えられるからである。なお、受信フレームの検査が不合格である場合、MAC検査部116は、カウンタ部115に対して、受信フレームの検査の合格を通知しない。これにより、カウンタ部115は、受信フレームの受信IDに対応する受信カウンタ値に対して、受信カウンタ値の増加を行わない。
(ステップS216)MAC検査部116は、受信フレームの受信IDの連続合格個数に関して、現在記録される連続合格個数に1を加算して記録を更新する。
(ステップS217)MAC検査部116は、受信フレームの受信IDの連続合格個数に関して、現在記録される連続合格個数が所定値Nであるかを確認する。但し、Nは2以上の整数である。所定値Nは予めMAC検査部116に保持される。現在記録される連続合格個数が所定値Nであることは、受信フレームの受信IDについての第1の検査又は再検査のいずれかの結果が一致であることがN回連続したことを示す。
例えば、Nが2である場合を説明する。まず、受信フレームの受信IDの保留フラグがオフであって当該IDを持つ受信フレームの検査の結果の保留がない状態において、ステップS202でのMAC検査処理(第1の検査)の結果が不一致であってステップS205の再検査処理の結果が一致したことにより、受信フレームの受信IDの連続合格個数に1が記録され、当該IDの保留フラグがオンになり、当該IDを持つ受信フレームの検査の結果の保留がある状態となる。次に同じIDのCANフレームが受信された時に、受信フレームの受信IDの保留フラグがオンであって当該IDを持つ受信フレームの検査の結果の保留がある状態において、ステップS211でのMAC検査処理(第1の検査)又はステップS213での再検査処理のいずれかの結果が一致したことにより、受信フレームの受信IDの連続合格個数の現在の記録値「1」に1が加算されて「2」が記録される。これにより、ステップS217において、受信フレームの受信IDの連続合格個数の現在の記録値「2」がNであることが確認される。この例では、受信フレームの検査の結果の保留がない状態において実行された再検査処理の結果が一致であり、次の同じIDのCANフレームが受信された時に受信フレームの検査の結果の保留がある状態において実行されたMAC検査処理(第1の検査)又は再検査処理のいずれかの結果が一致であることにより、受信フレームの受信IDについての第1の検査又は再検査のいずれかの結果が一致であることが2回連続したとなる。
ステップS217の確認の結果、連続合格個数が所定値Nである場合にはステップS218に進み、そうではない場合には図5及び図6の処理を終了する。
(ステップS218)MAC検査部116は、フレーム受信処理部113に対して、受信フレームの検査の合格を通知する。これにより、フレーム受信処理部113は、受信フレームに対して、正常に受信したCANフレームに対する所定の受信処理を実行する。このとき、MAC検査部116から受信フレームの検査の合格が通知されたIDを持つ受信フレームであって受信フレームの検査の結果が保留された受信フレームの全てに対して、正常に受信したCANフレームに対する所定の受信処理を実行してもよい。又は、MAC検査部116から受信フレームの検査の合格が通知されたIDを持つ最新の受信フレームのみに対して、正常に受信したCANフレームに対する所定の受信処理を実行してもよい。
また、MAC検査部116は、カウンタ部115に対して、受信フレームの検査の合格を通知する。これにより、カウンタ部115は、該当する受信カウンタ値を1だけ増加させて保持する。このカウント対象の受信カウンタ値は、受信フレームの受信IDに対応する受信カウンタ値である。
(ステップS219)MAC検査部116は、受信フレームの受信IDの保留フラグをオフにする。ステップS219の後、図5及び図6の処理を終了する。
なお、受信ノードは、同一IDのCANフレームにおいて、同じMAC値を有するCANフレームを2回以上連続して受信した場合には、リプレイ攻撃が発生したと判断してもよい。この場合、当該IDのCANフレームについては、メッセージ検査処理を行わないようにする対処が挙げられる。
以上が受信ノードの動作の説明である。
本実施形態によれば、送信ノードから送信されるCANフレームには、当該CANフレームのデータ部に格納される送信データを使用して生成されたMACがデータ部に格納される。そして、受信ノードでは、受信したCANフレームのデータ部から取得した受信データを使用して生成したMACと、当該CANフレームのデータ部から取得したMACとを使用して、当該CANフレームの検査を行う。これにより、送信ノードから、送信データのCANフレームとは別にMACのCANフレームを送信する必要がないので、MACのCANフレームによりCANの通信帯域が圧迫される問題を解消できる。
また、受信フレームの検査の結果の保留がない場合において、受信フレームのMAC検査処理(第1の検査)の結果が一致となった場合には、当該受信フレームの検査の合格を通知するので、当該受信フレームに対する検査の即時性を実現できる。
一方、受信フレームの検査の結果の保留がない場合において、受信フレームのMAC検査処理(第1の検査)の結果が不一致であって再検査の結果が一致であるときには受信フレームの検査の結果を保留する。そして、受信フレームの検査の結果の保留がある場合において、受信フレームに対するMAC検査処理(第1の検査)又は再検査の少なくともいずれかの結果が一致であることが連続するときに受信フレームの検査の合格を通知し、受信フレームに対するMAC検査処理(第1の検査)及び再検査の両方の結果が不一致であるときには受信フレームの検査の不合格を通知する。これにより、受信フレームに対する検査の信頼性を向上させることができる。
本実施形態では、例えば128ビット長の元のMACの一部(16ビット)のみの一致を検査するので、128ビット長の元のMACの一致を検査する場合に比して検査の精度が低下する。例えば、128ビット長の元のMACの8個に区分けされた各16ビット長の区間の中に、偶然に一致する複数の区間が発生する可能性がある。このため、再検査によって一致した結果が必ずしも正しいとは言えない。しかし、本実施形態によれば、受信フレームに対する再検査の結果が一致である場合において、受信フレームに対するMAC検査処理(第1の検査)又は再検査のいずれかの結果が一致であることが連続するときに受信フレームの検査の合格を通知する。これにより、上述のように偶然の一致によって検査を合格としてしまう確率を下げることができるので、受信フレームに対する検査の信頼性を向上させることができる。
上述したステップS217で使用される所定値Nは、CANフレームに対する即時の判断の必要性などに応じて決定してもよい。また、該所定値Nは、ID毎に設けてもよい。例えば、ID2のMCU_2が送信するCANフレームのデータ部に格納される送信データは、受信するMCU_2にとって即時に判断する必要性が高いとする。この場合、ID2の所定値Nは比較的小さい値にすることが挙げられる。例えば、ID3のMCU_2が送信するCANフレームのデータ部に格納される送信データは、受信するMCU_2にとって即時に判断する必要性よりも信頼性の方が高いとする。この場合、ID3の所定値Nは比較的大きい値にすることが挙げられる。
なお、受信フレームに対する再検査の結果が一致である場合において、受信フレームに対するMAC検査処理(第1の検査)又は再検査の複数の結果が一致であるときに受信フレームの検査の合格を通知するようにしてもよい。例えば、同じIDを有するP個の受信フレームのうち、Q個の受信フレームに対するMAC検査処理(第1の検査)又は再検査の複数の結果が一致であるときに受信フレームの検査の合格を通知する。但し、「2≦Q≦P」である。これにより、上述のように偶然の一致によって検査を合格としてしまう確率を下げることができるので、受信フレームに対する検査の信頼性を向上させることができる。Q及びPの値は、上述した所定値Nと同様に、CANフレームに対する即時の判断の必要性などに応じて決定してもよい。また、Q及びPの値はID毎に設けてもよい。Q及びPの値は予め決定されてMAC検査部116に保持される。
また、受信フレームの検査の結果の保留がある場合において、受信フレームに対するMAC検査処理(第1の検査)又は再検査の複数の結果が一致であるときには受信フレームの検査の合格を通知し、受信フレームに対するMAC検査処理(第1の検査)及び再検査の両方の結果が不一致であるときには受信フレームの検査の不合格を通知するようにしてもよい。これにより、受信フレームに対する検査の信頼性を向上させることができる。
また、送信ノードと受信ノードとで同じ秘密情報を使用してMACが生成されるので、該秘密情報を有さない送信ノードが生成したMACではCANフレームの検査が不合格となる。これにより、CANフレームの検査に対する信頼性が向上する。
また、生成されたMACのビット列のうち、送信カウンタ値の下位ビットで特定される区間をCANフレームに格納することにより、送信されるCANフレーム毎に格納されているMAC値が異なる。これにより、同じCANフレームを繰り返し送信するリプレイ攻撃を容易に検出できる。また、送信ノードではCANフレーム中のデータ部の送信データを使用してMACを生成するので、受信ノードで送信データの改竄を検出できる。
また、本実施形態では、MACの生成にはカウンタ値の上位抽出ビットを使用し、カウンタ値の上位抽出ビット以外の下位ビットによって、該MACのどの部分をデータ部に格納するのかを決める。このため、MACの再検査において、該下位ビットの桁上げが発生するまでは、MACの再計算を行う必要がなく、同じMACの中から再検査対象ビット列を変えながら再検査を繰り返し行うことができる。これにより、検査時の演算量を低減でき、検査時間の短縮に寄与できる。
また、本実施形態によれば、CANの既存のフレーム形式に対する変更が少ないという効果も得られる。
なお、CANフレームのデータ部に格納するMACのデータ長は、データ部の空きの状況に応じて決定してもよい。例えば非特許文献5には、ある車種のCANフレームのデータ部に格納される送信データのデータ長(Data Length)の観測値の例が示される。この例によれば、多くのCANフレームは、データ部に格納可能な64ビットの全てを送信データに利用している。この場合、データ部に格納するMACが例えば8ビット長でも16ビット長でもデータ部にMACを格納することによって、1個のCANフレームで送信していた送信データを分割して2個のCANフレームで送信することになる。該送信データを分割して2個のCANフレームで送信するのであれば、32ビット長のMACをデータ部に格納しても、2個のCANフレームで送信可能である。他方、送信データが48ビット長である場合もあるので、48ビット長の送信データを1個のCANフレームで送信することを勘案すると、データ部に格納するMACのデータ長は、16ビット長であることも好ましい。
また、上述した実施形態では、CANフレーム中のデータ部(データフィールド)にMACを格納したが、他のフィールドに格納するようにしてもよい。例えば、CRC部に格納することが挙げられる。
[第2実施形態]
図9は、本発明の第2実施形態に係る通信ネットワークシステム1を示す構成図である。図9に示される通信ネットワークシステム1は車両に搭載される。図9に示される通信ネットワークシステム1において、CANの通信バス3には、複数のMCU_2−a,2−bが接続されている。第2実施形態においても、上述した第1実施形態と同様に、説明の便宜上、3台のMCU_2−a,2−bが通信バス3に接続されているとする。図9中に示されるように、3台の各MCU_2−a,2−bには、CANにおける識別子(ID)として、MCU_2−aにはID1が付与され、各MCU_2−bにはID2、ID3がそれぞれ付与されている。また、本実施形態においても、上述の図3に示される構成のCANフレームを使用する。
MCU_2−aは、通信バス3に接続されるMCU_2−bを認証する処理においてマスタとして動作する。以下、MCU_2−aのことを「マスタMCU_2−a」と称する。また、MCU_2−bのことを「エンドMCU_2−b」と称する。また、MCU_2−a,2−bを特に区別しないときは「MCU_2」と称する。
次に、図9を参照して、マスタMCU_2−aとエンドMCU_2−bの構成を説明する。マスタMCU_2−aとエンドMCU_2−bとは同様の構成であるので、以下、MCU_2として、マスタMCU_2−aとエンドMCU_2−bの構成を説明する。
MCU_2は、CPU_10と、フラッシュメモリ(flash memory)11と、RAM(ランダムアクセスメモリ)_12と、ブートローダ(boot loader)13と、セキュアエレメント(secure element)14を有する。セキュアエレメント14は、セキュアRAM_21と、セキュアROM(Read Only Memory:リードオンリメモリ)_22と、検証部23と、暗号処理部24を有する。
CPU_10は、コンピュータプログラムを実行することにより、車両内の機器を制御するECUとしての機能およびCANにおけるノードとしての機能を実現する。フラッシュメモリ11は、CPU_10で実行されるコンピュータプログラムと該コンピュータプログラムについての署名とを記憶する。RAM_12はデータを記憶する。RAM_12は、CPU_10がコンピュータプログラムを実行する際の実行領域となる。
ブートローダ13は、MCU_2の電源投入によりブート処理を行う。ブートローダ13は、該ブート処理の内容を変更できないようにROM化されている。
セキュアエレメント14は、セキュアエレメント14内部で保持されるデータに対してセキュアエレメント14外部からアクセスできない安全な要素として構成される。セキュアRAM_21は、セキュアエレメント14内部で保持されるデータの一時記憶領域である。セキュアRAM_21に対してセキュアエレメント14外部からはアクセスできないように構成される。セキュアROM_22は、セキュアエレメント14内部で使用される鍵を記憶する。セキュアROM_22に対してセキュアエレメント14外部からはアクセスできないように構成される。セキュアROM_22には、MCU_2の製造時などに、予め安全に鍵が書き込まれる。
検証部23は、ブートローダ13によるブート処理におけるプログラム正当性検証処理を、セキュアROM_22に保持される署名検証鍵を使用して行う。検証部23は、該プログラム正当性検証処理において、セキュアRAM_21を一時記憶領域として使用する。
暗号処理部24は、自己のMCU_2と他のMCU_2との間で交換される情報についての暗号処理を、セキュアROM_22に保持される暗号鍵を使用して行う。該暗号処理は、暗号化処理または復号化処理である。暗号処理部24は、該暗号処理において、セキュアRAM_21を一時記憶領域として使用する。
次に、図10を参照して、本実施形態に係るブート処理を説明する。図10は、本実施形態に係るブート処理のシーケンスチャートである。MCU_2の電源投入により図10の処理が開始される。
(ステップS1)ブートローダ13が、フラッシュメモリ11からコンピュータプログラムと署名とを読み込む。次いで、ブートローダ13が、該読み込んだコンピュータプログラムのハッシュ(hash)値を算出する。
(ステップS2)ブートローダ13が、該算出したハッシュ値と、フラッシュメモリ11から読み込んだ署名とをセキュアエレメント14へ送信する。
(ステップS3)セキュアエレメント14において検証部23が、セキュアROM_22に保持される署名検証鍵を使用して、ブートローダ13から受信した署名に含まれる値とブートローダ13から受信したハッシュ値との一致を検証する。この検証処理では、セキュアRAM_21が、検証処理におけるデータの一時記憶領域として使用される。該検証が成功した場合には、セキュアエレメント14はブートローダ13へ検証成功を通知する。
(ステップS4)ブートローダ13は、セキュアエレメント14から検証成功の通知を受信した場合に、ステップS1でフラッシュメモリ11から読み込んだコンピュータプログラムをRAM_12へロードする。これにより、CPU_10はRAM_12にロードされたコンピュータプログラムを実行することができる。
一方、ブートローダ13は、セキュアエレメント14からの検証成功の通知がない場合には(例えば、ステップS2の送信後から所定時間が経過してもセキュアエレメント14から検証成功の通知を受信しなかったり、セキュアエレメント14から検証失敗の通知を受信したりした場合)、ステップS1でフラッシュメモリ11から読み込んだコンピュータプログラムをRAM_12へロードしない。この場合、ブートローダ13がMCU_2の起動を停止する。
上述した本実施形態に係るブート処理によれば、セキュアエレメント14による署名検証によって、CPU_10で実行されるコンピュータプログラムの正当性検証が安全に行われる。これにより、CPU_10の実行領域であるRAM_12には正しいコンピュータプログラムがロードされ、該RAM_12にロードされたコンピュータプログラムをCPU_10が実行することにより、MCU_2が正常に起動する。よって、本実施形態に係る通信ネットワークシステム1では、MCU_2の個々において、MCU_2の起動時に当該MCU_2のコンピュータプログラム(例えば、オペレーティングシステム(Operating System:OS)など)の正当性を検証するセキュアブート(Secure Boot)が実現される。なお、セキュアブートについては、例えば非特許文献6に記載されている。
次に、図11を参照して、本実施形態に係る暗号処理を説明する。図11は、本実施形態に係る暗号処理のシーケンスチャートである。所定の契機により図11の処理が開始される。ここでは、秘密の情報である乱数を、マスタMCU_2−aからエンドMCU_2−bへ安全に通知する場面を例に挙げて説明する。なお、マスタMCU_2−aとエンドMCU_2−bとの間のデータの送受は通信バス3を介して行われる。
(ステップS11)マスタMCU_2−aが、自己のRAM_12に保持される初期乱数をチャレンジとしてエンドMCU_2−bへ送信する。また、マスタMCU_2−aは、該エンドMCU_2−bへチャレンジとして送信した初期乱数を、自己のセキュアエレメント14へ渡す。
(ステップS12)エンドMCU_2−bは、マスタMCU_2−aから受信したチャレンジである初期乱数を、自己のセキュアエレメント14に渡す。エンドMCU_2−bの暗号処理部24は、該渡された初期乱数を、自己のセキュアROM_22に保持される秘密鍵Ksを使用して暗号化する。この暗号化処理では、エンドMCU_2−bのセキュアRAM_21が、暗号化処理におけるデータの一時記憶領域として使用される。次いで、エンドMCU_2−bは、暗号化された初期乱数である暗号化データKs(初期乱数)をレスポンスとしてマスタMCU_2−aへ送信する。
(ステップS13)マスタMCU_2−aは、エンドMCU_2−bから受信したレスポンスである暗号化データKs(初期乱数)を、自己のセキュアエレメント14に渡す。マスタMCU_2−aの暗号処理部24は、該渡された暗号化データKs(初期乱数)を、自己のセキュアROM_22に保持される該当エンドMCU_2−bの公開鍵Kpを使用して復号化する。次いで、マスタMCU_2−aの暗号処理部24は、該復号化により得られた復号化データと、ステップS11でチャレンジとしてエンドMCU_2−bへ送信された初期乱数との一致を検証する。それら復号化処理および検証処理では、マスタMCU_2−aのセキュアRAM_21が、復号化処理および検証処理におけるデータの一時記憶領域として使用される。該検証の成功により、当該エンドMCU_2−bの認証が成功したと判断できる。
該検証が成功した場合には、マスタMCU_2−aの暗号処理部24は、秘密の情報である乱数を生成し、生成した乱数を、自己のセキュアROM_22に保持される該当エンドMCU_2−bの公開鍵Kpを使用して暗号化する。それら乱数生成処理および暗号化処理では、マスタMCU_2−aのセキュアRAM_21が、乱数生成処理および暗号化処理におけるデータの一時記憶領域として使用される。次いで、マスタMCU_2−aは、暗号化された秘密の情報(乱数)である暗号化データKp(乱数)をエンドMCU_2−bへ送信する。
エンドMCU_2−bは、マスタMCU_2−aから受信した暗号化データKp(乱数)を、自己のセキュアエレメント14に渡す。エンドMCU_2−bの暗号処理部24は、該渡された暗号化データKp(乱数)を、自己のセキュアROM_22に保持される秘密鍵Ksを使用して復号化する。この復号化処理では、エンドMCU_2−bのセキュアRAM_21が、復号化処理におけるデータの一時記憶領域として使用される。該復号化処理によって暗号化データKp(乱数)から、秘密の情報である乱数が取得される。該取得された乱数は、エンドMCU_2−bのセキュアRAM_21で安全に保持される。
上述した本実施形態に係る暗号処理によれば、セキュアエレメント14による暗号処理によって、MCU_2間(上述した例ではマスタMCU_2−aとエンドMCU_2−bの間)で交換される情報の暗号処理(暗号化処理、復号化処理)が安全に行われる。これにより、MCU_2間で交換される情報の安全性が保たれる。
さらに、当該暗号処理に基づいたチャレンジ・レスポンスによって、マスタMCU_2−aがエンドMCU_2−bの確かな認証を行うことができる。そして、マスタMCU_2−aから認証済みのエンドMCU_2−bに対して、当該暗号処理に基づいて秘密の情報を安全に送信することができる。この秘密の情報は、上述した第1実施形態における秘密情報として利用できる。上述した例では、マスタMCU_2−aからエンドMCU_2−bに対して、安全に、秘密の情報である乱数が伝達される。
次に、図12を参照して、本実施形態に係るMAC生成処理および検査処理(MAC検査処理(第1の検査)、再検査処理)を説明する。図12は、本実施形態に係るMAC生成処理および検査処理(MAC検査処理(第1の検査)、再検査処理)を説明するためのシーケンスチャートである。上述した図11に係る暗号処理によって、マスタMCU_2−aから認証済みのエンドMCU_2−bに対して、秘密の情報である乱数が安全に送信されている。マスタMCU_2−a及びエンドMCU_2−bは、該秘密の情報である乱数をセキュアRAM_21に格納する。このセキュアRAM_21は、上述した第1実施形態における秘密情報記憶部117として、該乱数(秘密情報)を安全に保持する。
図12において、送信側MCU_2は送信ノードとして動作する。送信側MCU_2はマスタMCU_2−aであってもよく、又は、エンドMCU_2−bであってもよい。受信側MCU_2は受信ノードとして動作する。受信側MCU_2はマスタMCU_2−aであってもよく、又は、エンドMCU_2−bであってもよい。送信側MCU_2は、RAM_12に送信カウンタ値および送信データを保持している。受信側MCU_2は、RAM_12に受信カウンタ値を保持している。図12の処理は、送信側MCU_2から送信されるCANフレームを作成する際に開始される。
(ステップS21)送信側MCU_2は、RAM_12からセキュアRAM_21へ、送信データおよび送信カウンタ値を渡す。送信側MCU_2のセキュアエレメント14は、セキュアRAM_21に保持される、乱数(秘密情報)と送信データと送信カウンタ値を使用して、MACの生成を行う。このMACの生成方法は、上述した第1実施形態と同様である。但し、該MACの生成は、セキュアRAM_21において安全に行われる。このMACの生成の結果としてMAC値のビット列中から抽出された16ビットのビット列(データ部用抽出MACビット列)は、セキュアRAM_21からRAM_12へ渡される。
(ステップS22)送信側MCU_2は、CANフレームに対して、ステップS21でRAM_12からセキュアRAM_21へ渡した送信データと、ステップS21でセキュアRAM_21からRAM_12へ渡されたデータ部用抽出MACビット列と、をデータ部に格納する。送信側MCU_2は、該CANフレームを通信バス3へ送信する。このCANフレームは、通信バス3を介して受信側MCU_2で受信される。
(ステップS23)受信側MCU_2は、通信バス3から受信したCANフレームをRAM_12に保持する。受信側MCU_2は、RAM_12に保持されるCANフレーム中のデータ部から取得した受信データとデータ部から取得した受信MAC値とをセキュアRAM_21へ渡す。さらに、受信側MCU_2は、RAM_12に保持されるCANフレーム中のID部に格納されているIDに対応する受信カウンタ値を、RAM_12からセキュアRAM_21へ渡す。
次いで、受信側MCU_2のセキュアエレメント14は、セキュアRAM_21に保持される、乱数(秘密情報)と受信データと受信カウンタ値を使用して、MACの生成を行う。このMACの生成方法は、上述した第1実施形態と同様である。但し、該MACの生成は、セキュアRAM_21において安全に行われる。このMACの生成の結果として算出MAC値のビット列中から16ビットの検査対象ビット列が抽出される。次いで、受信側MCU_2のセキュアエレメント14は、セキュアRAM_21に保持される受信MAC値と検査対象ビット列との一致を判定する。この判定の結果が不一致である場合には、上述した第1実施形態と同様に再検査が行われる。
上述したように本実施形態によれば、セキュアRAM_21に安全に保持される乱数(秘密情報)を使用してMACの生成および検査が行われる。これにより、CANフレームの検査に対する信頼性が向上する。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した実施形態では、1台のMCU_2が送信ノードの機能と受信ノードの機能とを有したが、1台のMCU_2が送信ノードの機能のみを有してもよく、又は、1台のMCU_2が受信ノードの機能のみを有してもよい。
また、一つのMCU_2が一つの半導体装置として構成されてもよい。一つのMCU_2が一つの半導体集積回路としてワンチップ化されることにより、安全性がさらに向上する。
また、セキュアエレメントとして、例えば、無線通信に使用されるeSIM(Embedded Subscriber Identity Module)又はSIM(Subscriber Identity Module)を使用してもよい。eSIMおよびSIMは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。又は、セキュアエレメントとして、例えば、TPM(Trusted Platform Module)と呼ばれる耐タンパー性(Tamper Resistant)のある暗号処理チップを使用してもよい。TPMについては、例えば非特許文献7に記載されている。
また、上述した実施形態は、車両として、例えば、自動車、原動機付自転車、鉄道車両等に適用可能である。
また、上述した実施形態では、本発明に係る通信ネットワークシステムの一態様として、車両に搭載される通信ネットワークシステムを例に挙げて説明したが、本発明に係る通信ネットワークシステムは様々な分野に適用可能である。例えば、家電製品を制御するコンピュータとしてMCU_2を適用し、宅内の各家電製品のMCU_2を宅内ネットワークで接続するように構成してもよい。また、スマートメーターとしてMCU_2を適用し、各スマートメーターのMCU_2を通信ネットワークで接続するように構成してもよい。
また、上述したMCU_2の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するようにしてもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータ内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1…通信ネットワークシステム、2,2−a,2−b…MCU、3…通信バス、10…CPU、11…フラッシュメモリ、12…RAM、13…ブートローダ、14…セキュアエレメント、21…セキュアRAM、22…セキュアROM、23…検証部、24…暗号処理部、111…送信部、112…受信部、113…フレーム受信処理部、114…MAC(メッセージ認証コード)生成部、115…カウンタ部、116…MAC(メッセージ認証コード)検査部、117…秘密情報記憶部

Claims (15)

  1. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードであり、
    自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査部を備え、
    前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定
    前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査のいずれかの結果が一致であることが連続するときに受信メッセージの検査の合格を通知する、
    受信ノード。
  2. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードであり、
    自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査部を備え、
    前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときに受信メッセージの検査の合格を通知する、
    受信ノード。
  3. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードであり、
    自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査部を備え、
    前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査部は、
    受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、
    受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の少なくともいずれかの結果が一致であることが連続するときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、
    受信ノード。
  4. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードであり、
    自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査部を備え、
    前記メッセージ認証コード検査部は、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査部は、
    受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、
    受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、
    受信ノード。
  5. 前記送信ノードからの受信メッセージは、メッセージ認証コードの複数に区分けされた区間のうち、前記送信ノードがメッセージの送信毎に所定のカウント値だけ増加させる送信カウンタ値に基づいて特定される区間のみを格納し、
    前記受信ノードは、
    前記送信ノードからのメッセージの受信毎に前記カウント値だけ増加させる受信カウンタ値を保持する受信カウンタ部を備え、
    前記メッセージ認証コード検査部は、第1の検査において、前記送信ノードからの受信メッセージから取得したメッセージ認証コードの区間と、自己が生成したメッセージ認証コードの複数に区分けされた区間のうち前記受信カウンタ値に基づいて特定される区間と、の一致を検査する、
    請求項1からのいずれか1項に記載の受信ノード。
  6. 前記受信カウンタ部は、前記再検査の結果が一致である区間に基づいて、自己が保持する受信カウンタ値を更新する、
    請求項に記載の受信ノード。
  7. 前記送信ノードが保持する秘密情報と同じ秘密情報を記憶する秘密情報記憶部を備え、
    前記送信ノードから送信されるメッセージに格納されるメッセージ認証コードの区間の元のメッセージ認証コードは、該送信されるメッセージ中のデータ部に格納される送信データと前記送信カウンタ値と前記秘密情報とに基づいて生成され、
    前記メッセージ認証コード検査部は、前記送信ノードからの受信メッセージ中のデータ部から取得した受信データと前記受信カウンタ値と前記秘密情報とに基づいてメッセージ認証コードを生成する、
    請求項又はのいずれか1項に記載の受信ノード。
  8. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査方法であり、
    前記受信ノードが、自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップを含み、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査のいずれかの結果が一致であることが連続するときに受信メッセージの検査の合格を通知する、
    メッセージ検査方法。
  9. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査方法であり、
    前記受信ノードが、自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップを含み、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときに受信メッセージの検査の合格を通知する、
    メッセージ検査方法。
  10. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査方法であり、
    前記受信ノードが、自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップを含み、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査ステップは、
    受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、
    受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の少なくともいずれかの結果が一致であることが連続するときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、
    メッセージ検査方法。
  11. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのメッセージ検査方法であり、
    前記受信ノードが、自己が生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップを含み、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査ステップは、
    受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、
    受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、
    メッセージ検査方法。
  12. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのコンピュータに、
    前記受信ノードが生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップ、を実行させるためのコンピュータプログラムであり、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査のいずれかの結果が一致であることが連続するときに受信メッセージの検査の合格を通知する、
    コンピュータプログラム。
  13. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのコンピュータに、
    前記受信ノードが生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップ、を実行させるためのコンピュータプログラムであり、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときに受信メッセージの検査の合格を通知する、
    コンピュータプログラム。
  14. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのコンピュータに、
    前記受信ノードが生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップ、を実行させるためのコンピュータプログラムであり、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査ステップは、
    受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、
    受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の少なくともいずれかの結果が一致であることが連続するときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、
    コンピュータプログラム。
  15. 送信ノードから通信ネットワークを介してメッセージを受信する受信ノードのコンピュータに、
    前記受信ノードが生成したメッセージ認証コードと前記送信ノードからの受信メッセージから取得したメッセージ認証コードとの一致を、メッセージ認証コードの複数に区分けされた区間を対象に検査し、検査対象の区間の第1の検査の結果が不一致である場合には検査対象の区間を変えて区間の一致を再検査するメッセージ認証コード検査ステップ、を実行させるためのコンピュータプログラムであり、
    前記メッセージ認証コード検査ステップは、受信メッセージに対する再検査の結果が一致である場合に、受信メッセージに対する第1の検査又は再検査の複数の結果に基づいて、受信メッセージの検査の合否を判定し、
    前記メッセージ認証コード検査ステップは、
    受信メッセージの検査の結果の保留がない場合において、受信メッセージに対する第1の検査の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査の結果が不一致であって再検査の結果が一致であるときには受信メッセージの検査の結果を保留し、
    受信メッセージの検査の結果の保留がある場合において、受信メッセージに対する第1の検査又は再検査の複数の結果が一致であるときには受信メッセージの検査の合格を通知し、受信メッセージに対する第1の検査及び再検査の両方の結果が不一致であるときには受信メッセージの検査の不合格を通知する、
    コンピュータプログラム。
JP2014261356A 2014-12-24 2014-12-24 受信ノード、メッセージ検査方法、及びコンピュータプログラム Expired - Fee Related JP6188673B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014261356A JP6188673B2 (ja) 2014-12-24 2014-12-24 受信ノード、メッセージ検査方法、及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014261356A JP6188673B2 (ja) 2014-12-24 2014-12-24 受信ノード、メッセージ検査方法、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2016122932A JP2016122932A (ja) 2016-07-07
JP6188673B2 true JP6188673B2 (ja) 2017-08-30

Family

ID=56327590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014261356A Expired - Fee Related JP6188673B2 (ja) 2014-12-24 2014-12-24 受信ノード、メッセージ検査方法、及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6188673B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5770602B2 (ja) * 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
WO2015170453A1 (ja) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、不正検知電子制御ユニット及び不正対処方法

Also Published As

Publication number Publication date
JP2016122932A (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
JP6199335B2 (ja) 通信ネットワークシステム及びメッセージ検査方法
JP6190404B2 (ja) 受信ノード、メッセージ受信方法およびコンピュータプログラム
CN110519260B (zh) 一种信息处理方法及信息处理装置
CN108768970B (zh) 一种智能设备的绑定方法、身份认证平台及存储介质
KR102193644B1 (ko) 설비 검증 방법 및 장치
CN106612180B (zh) 实现会话标识同步的方法及装置
CN108809953B (zh) 一种基于区块链的匿名身份认证的方法及装置
CN102801616B (zh) 报文发送和接收的方法、装置和系统
CN108243176B (zh) 数据传输方法和装置
TW201735578A (zh) 受控的安全碼認證
CN109690543B (zh) 安全认证方法、集成电路及系统
CN104350703B (zh) 消息的安全传输
CN105490997A (zh) 安全校验方法、装置、终端及服务器
CN109361681A (zh) 国密证书认证方法、装置及设备
JP6408536B2 (ja) 通信システム、通信装置、サーバ装置、通信方法、及びコンピュータプログラム
Alqarni et al. A proposed RFID authentication protocol based on two stages of authentication
CN111338841A (zh) 数据处理方法、装置、设备和存储介质
JP6454917B2 (ja) 通信ネットワークシステム及びメッセージ検査方法
US20130205374A1 (en) Method and system for network access control
JP6188673B2 (ja) 受信ノード、メッセージ検査方法、及びコンピュータプログラム
CN113572717B (zh) 通信连接的建立方法、洗护设备及服务器
CN108270742A (zh) 一种使用票据进行vpn安全认证的方法
CN106953728B (zh) 一种数据传输方法和电子设备
CN113872769B (zh) 基于puf的设备认证方法、装置、计算机设备及存储介质
CN116566744B (zh) 数据处理方法和安全校验系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170801

R150 Certificate of patent or registration of utility model

Ref document number: 6188673

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees