(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-14
(54)【発明の名称】CANバス物理層でハッキングされたノードの対処方法、CANバスでノードID自動設定を通じての物理層セキュリティ方法、これを遂行するための記録媒体およびシステム
(51)【国際特許分類】
G06F 21/55 20130101AFI20231107BHJP
H04L 12/28 20060101ALI20231107BHJP
【FI】
G06F21/55
H04L12/28 200Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023524176
(86)(22)【出願日】2020-12-28
(85)【翻訳文提出日】2023-04-19
(86)【国際出願番号】 KR2020019184
(87)【国際公開番号】W WO2022085863
(87)【国際公開日】2022-04-28
(31)【優先権主張番号】10-2020-0136473
(32)【優先日】2020-10-21
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2020-0136471
(32)【優先日】2020-10-21
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】516262480
【氏名又は名称】ファウンデーション オブ スンシル ユニヴァーシティ インダストリー コーポレーション
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(74)【代理人】
【識別番号】100189625
【氏名又は名称】鄭 元基
(74)【代理人】
【識別番号】100196139
【氏名又は名称】相田 京子
(74)【代理人】
【識別番号】100199004
【氏名又は名称】服部 洋
(72)【発明者】
【氏名】イ ソンス
(72)【発明者】
【氏名】カン テウク
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA08
5K033BA06
5K033CB06
5K033DA13
5K033EA02
5K033EA07
(57)【要約】
CANバス物理層でハッキングされたノードの対処方法は、CAN(Controller Area Network)バスラインに連結された多数のノードに対して、それぞれ互いに異なる固有IDであるNID(Node ID)を設定する段階;偽造されたNIDを使うノード、他のNIDを使うノードおよび存在しないNIDを使うノードのうち少なくとも一つが発見される場合にエラーフレームと判断する段階;前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させる段階;およびTECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断する段階;を含む。これに伴い、CANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって悪意の攻撃を防御する。CANバスでノードID自動設定を通じての物理層セキュリティ方法は、CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値に到達するとTID(Temporary ID)を設定してデータフレームを送信する段階;クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させる前に劣性信号を感知したりしたノードは、バスに現れる互いに異なる各ノードの固有IDであるNID(Node ID)を保存する段階;TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDをNIDで設定する段階;およびCANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定しデータフレームを送信する段階;を含む。これに伴い、IDSとCANコントローラのNIDを設定しておく方式で、CANバス上で発生し得るすべてのネットワーク攻撃に対して対処することができる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
CAN(Controller Area Network)バスラインに連結された多数のノードに対して、それぞれ互いに異なる固有IDであるNID(Node ID)を設定する段階;
偽造されたNIDを使うノード、他のNIDを使うノードおよび存在しないNIDを使うノードのうち少なくとも一つが発見される場合にエラーフレームと判断する段階;
前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させる段階;および
TECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断する段階;を含む、CANバス物理層でハッキングされたノードの対処方法。
【請求項2】
前記エラーフレームと判断する段階は、
偽造されたNIDを使うノードが発見された場合、詐称されたNIDが設定されたノードがハッキングを感知する、請求項1に記載のCANバス物理層でハッキングされたノードの対処方法。
【請求項3】
前記エラーフレームと判断する段階は、
他のNIDを使うノードまたは存在しないNIDを使うノードが発見された場合、侵入感知システムであるIDS(Intrusion Detection System)がハッキングを感知する、請求項1に記載のCANバス物理層でハッキングされたノードの対処方法。
【請求項4】
前記CANバスラインに連結された多数のノードに対して、それぞれ互いに異なる固有IDであるNIDを設定する段階は、
データフレームを送信する時にメッセージID領域の下位4ビットをNID値で設定する、請求項1に記載のCANバス物理層でハッキングされたノードの対処方法。
【請求項5】
前記エラーフレームが発生するたびに送信ノードと受信ノードのTECとRECのカウントを増加させる段階は、
前記エラーフレームが発生すると、送信ノードのTECは8だけ増加させ、受信ノードの場合、最も先にエラーフレームを発生させたノードのRECは8だけ増加させ、他のノードのRECは1だけ増加させる、請求項1に記載のCANバス物理層でハッキングされたノードの対処方法。
【請求項6】
メッセージが成功的に伝送されるたびに送信ノードと受信ノードのTECとRECのカウントを減少させる段階;をさらに含む、請求項1に記載のCANバス物理層でハッキングされたノードの対処方法。
【請求項7】
前記TECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断する段階は、
ノードのTECまたはRECが256より大きくなる場合に該当ノードを分離する、請求項1に記載のCANバス物理層でハッキングされたノードの対処方法。
【請求項8】
請求項1に記載された前記CANバス物理層でハッキングされたノードの対処方法を遂行するためのコンピュータプログラムが記録されたコンピュータで読み取り可能な保存媒体。
【請求項9】
CAN(Controller Area Network)バスラインに連結され、それぞれ互いに異なる固有IDであるNID(Node ID)が設定された多数のノード;
前記CANバスラインにローディングされるデータフレームの内容を分析してハッキングされたノードであるかを判断するIDS(Intrusion Detection System);
前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させ、メッセージが成功的に伝送されるたびに送信ノードと受信ノードのTECとRECのカウントを減少させるカウンタ;および
前記多数のノードおよびIDSにそれぞれ装着されて、TECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断するNES(Node Expulsion System);を含む、CANバス物理層でハッキングされたノードの対処システム。
【請求項10】
偽造されたNIDを使うノードが発見された場合、詐称されたNIDが設定されたノードのNESがハッキングを感知する、請求項9に記載のCANバス物理層でハッキングされたノードの対処システム。
【請求項11】
他のNIDを使うノードまたは存在しないNIDを使うノードが発見された場合、前記IDSのNESがハッキングを感知する、請求項9に記載のCANバス物理層でハッキングされたノードの対処システム。
【請求項12】
各ノードのNIDはデータフレームを送信する時にメッセージID領域の下位4ビットで設定される、請求項9に記載のCANバス物理層でハッキングされたノードの対処システム。
【請求項13】
CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値に到達するとTID(Temporary ID)を設定してデータフレームを送信する段階;
クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させる前に劣性信号を感知ししたりしたノードは、バスに現れる互いに異なる各ノードの固有IDであるNID(Node ID)を保存する段階;
TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDをNIDで設定する段階;および
CANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定しデータフレームを送信する段階;を含む、CANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項14】
前記段階を繰り返し遂行してバスラインに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせ、ノードは通信を開始する段階;をさらに含む、請求項13に記載のCANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項15】
設定したNIDを、データフレームを送信する時にメッセージID領域の下位4ビットに設定したNIDを記載して送信する、請求項14に記載のCANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項16】
同一のNIDが設定されたノードが同時に互いに異なるデータを送信する場合、データフレームを送信する時にデータフィールド(Data field)でビット(Bit)エラーが発生する段階;
ビット(Bit)エラーが発生すると、データフィールドの何番目のビットでエラーが発生するかを保存する段階;および
予め設定された回数だけ連続して同じところでビットエラーが発生する場合、エラーフレームを送信せずに同一のNIDが設定されたと判断してNIDを変更する段階;をさらに含む、請求項15に記載のCANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項17】
同一のNIDが設定されたノードのうち一つがデータを送信する場合、データを送信しないノードがArbitration field RTRデータを受信する過程でエラーを発生させる段階;
ノードがデータフレームを送信する時、データを送信しないノードが自身のNIDがCANバス上に予め設定された回数だけ連続して現れるかをチェックする段階;および
自身のNIDが予め設定された回数だけ連続して現れる場合、同一のNIDが設定されたと判断して自身のNIDを変更する段階;をさらに含む、請求項15に記載のCANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項18】
前記バスに現れる互いに異なる各ノードの固有IDであるNID(Node ID)を保存する段階は、
クロックカウントを初期化して通信が終了することを待機する段階;をさらに含む、請求項13に記載のCANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項19】
前記TID(Temporary ID)を設定してデータフレームを送信する段階は、
前記クロックカウントの臨界値は16’hFFFFに設定する、請求項13に記載のCANバスでノードID自動設定を通じての物理層セキュリティ方法。
【請求項20】
請求項13に記載された前記CANバスでノードID自動設定を通じての物理層セキュリティ方法を遂行するためのコンピュータプログラムが記録されたコンピュータで読み取り可能な保存媒体。
【請求項21】
CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値に到達するとTID(Temporary ID)を設定してデータフレームを送信し、TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDを互いに異なる各ノードの固有IDであるNID(Node ID)で設定する自動ID設定部;
クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させる前に劣性信号を感知したりしたノードのNIDを保存するNID保存部;
CANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定してデータフレームを送信する状態マシン;および
バスラインに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせて通信を開始するようにする伝送バッファ;を含む、CANバスでノードID自動設定を通じての物理層セキュリティ装置。
【請求項22】
前記CANバスでノードID自動設定を通じての物理層セキュリティ装置は、CANコントローラ上に具現され、同一のNIDが設定されたノードが同時に互いに異なるデータを送信する場合、データフレームを送信する時にデータフィールド(Data field)でビット(Bit)エラーが発生すると、データフィールドの何番目のビットでエラーが発生するかを保存し、予め設定された回数だけ連続して同じところでビットエラーが発生する場合、エラーフレームを送信せずに同一のNIDが設定されたと判断してNIDを変更し、
同一のNIDが設定されたノードのうち一つがデータを送信する場合、データを送信しないノードがArbitration field RTRデータを受信する過程でエラーが発生すると、ノードがデータフレームを送信する時、データを送信しないノードが自身のNIDがCANバス上に予め設定された回数だけ連続して現れるかをチェックし、自身のNIDが予め設定された回数だけ連続して現れる場合、同一のNIDが設定されたと判断して自身のNIDを変更する、請求項21に記載のCANバスでノードID自動設定を通じての物理層セキュリティ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はCANバス物理層でハッキングされたノードの対処方法、CANバスでノードID自動設定を通じての物理層セキュリティ方法、これを遂行するための記録媒体およびシステムに関し、さらに詳細には、CANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって悪意の攻撃を防御する技術であり、CANバスでブーティング時ごとに個別ノードに固有IDを自動で付与して各ノードを区別する物理層セキュリティ技術に関する。
【背景技術】
【0002】
今日殆どの自動車は、CAN(Controller Area Network)バスを基盤として車両内部のECU(Electronic Control Unit)を連結している。CANバスの特徴のうち一つは、通信に参加するノードのアドレスが存在しないという点である。これは同時伝送、多数伝送などの多くの長所を有しているが、同時にセキュリティ上の弱点を提供する。
【0003】
通信に参加するノードのうち一つをハッキングして悪意のデータフレームを伝送する場合、いずれのノードがデータフレームを送信したかが分からないため該当ノードを遮断することが非常に難しい。このように悪意のデータフレームを防ぐことができない場合、CANバスを過負荷にさせて正常な通信ができないようにしたり、他のノードを攻撃して使用者に危険となり得る動作をするようにしたりすることができる。
【0004】
具体的には、CAN通信プロトコル(Protocol)の特徴のうち一つとして、CANバスに連結されるノード(Node)はアドレス(Address)が存在しないため、通信に参加するノードのうち一つがハッカーによってハッキングされて悪意のデータフレームを送信してもいずれの電子制御装置が問題であるか識別することが困難であるという問題がある。
【0005】
ハッキングされたノードは悪意のデータフレームを送信してCANバスを過負荷にさせたり、他のノードを誤動作させたりする恐れがあり、または他の正常ノードを盗用する恐れがあるが、この場合、使用者の安全に大きな危険となり得る。したがって、CANバス上で発生する悪意のノードを識別して速かに対処して事故に備えなければならない。
【0006】
そして、殆どの自動車電装システムはECU(Electronic Control Unit)により制御され、CAN(Controller Area Network)バスを通じてデータをやり取りする。車両に搭載されるECUには、プロセッサIDと通信用暗号キーが固有に指定されているので通信を遂行するたびにプログラムで確認し、ハッキングが疑われる場合、通信を遮断するように命令を下す。
【0007】
しかし、ハッキングが高度化すると、該当ECUのすべてのソフトウェア動作を変調できるのでCANバス上で伝送される正常な通信データをモニタリングしてプロセッサIDおよび通信用暗号キーを類推して偽造することができ、通信遮断命令も無視することができる。
【0008】
したがって、ハッキングによる通信妨害および悪意的データ伝送を根本的に防止するためには、ハッキングされたノードの通信をCANバス上でハードウェア的に遮断しなければならない。すでにハッキングされてCAN通信を妨害し悪意的データを伝送するノードを遮断するためには最も先にCANバス上で個別ノードを固有に特定しなければならないが、CANバスにはイーサネットのMAC(Media Access Control)アドレスのように個別ノードを識別できる機能が存在しない。
【0009】
CANコントローラ生産時にハードウェア的に固有IDを付与する方法もあるが、この場合、すべてのチップごとに固有IDを付与するためには固有IDのビット数が大きく増えてCANバスの伝送効率を大きく落としてしまう。
【0010】
また、すべてのノードがCANバス上に装着された後に工場で一括的に固有IDを付与すると、同一CANバス内のノード数がわずかであるので固有IDのビット数は大きく減るものの、部品の取り替え時ごとに再び工場でID付与作業を遂行しなければならないため非常に煩雑であるという問題がある。
[先行技術文献]
[特許文献]
(特許文献1)JP4232603B2
(特許文献2)KR10-1332339B1
(特許文献3)KR10-2009-0065260A
【発明の概要】
【発明が解決しようとする課題】
【0011】
したがって、本発明の技術的課題はこのような点に鑑みて着眼されたもので、本発明の目的は、多様な攻撃シナリオに対して即刻に対処できるようにCANバス物理層でハッキングされたノードの対処方法を提供することである。
【0012】
本発明の他の目的は、前記CANバス物理層でハッキングされたノードの対処方法を遂行するためのコンピュータプログラムが記録された記録媒体を提供することである。
【0013】
本発明のさらに他の目的は、前記CANバス物理層でハッキングされたノードの対処方法を遂行するためのシステムを提供することである。
【0014】
本発明のさらに他の目的は、ブーティング時ごとに個別ノードに固有IDを自動で付与する方式で、CANバスでノードID自動設定を通じての物理層セキュリティ方法を提供することである。
【0015】
本発明のさらに他の目的は、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法を遂行するためのコンピュータプログラムが記録された記録媒体を提供することである。
【0016】
本発明のさらに他の目的は、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法を遂行するための装置を提供することである。
【課題を解決するための手段】
【0017】
前記の本発明の目的を実現するための一実施例に係るCANバス物理層でハッキングされたノードの対処方法は、CAN(Controller Area Network)バスラインに連結された多数のノードに対して、それぞれ互いに異なる固有IDであるNID(Node ID)を設定する段階;偽造されたNIDを使うノード、他のNIDを使うノードおよび存在しないNIDを使うノードのうち少なくとも一つが発見される場合にエラーフレームと判断する段階;前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させる段階;およびTECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断する段階;を含む。
【0018】
本発明の実施例において、前記エラーフレームと判断する段階は、偽造されたNIDを使うノードが発見された場合、詐称されたNIDが設定されたノードがハッキングを感知することができる。
【0019】
本発明の実施例において、前記エラーフレームと判断する段階は、他のNIDを使うノードまたは存在しないNIDを使うノードが発見された場合、侵入感知システムであるIDS(Intrusion Detection System)がハッキングを感知することができる。
【0020】
本発明の実施例において、前記CANバスラインに連結された多数のノードに対して、それぞれ互いに異なる固有IDであるNIDを設定する段階は、データフレームを送信する時にメッセージID領域の下位4ビットをNID値で設定することができる。
【0021】
本発明の実施例において、前記エラーフレームが発生するたびに送信ノードと受信ノードのTECとRECのカウントを増加させる段階は、前記エラーフレームが発生すると、送信ノードのTECは8だけ増加させ、受信ノードの場合、最も先にエラーフレームを発生させたノードのRECは8だけ増加させ、他のノードのRECは1だけ増加させることができる。
【0022】
本発明の実施例において、前記CANバス物理層でハッキングされたノードの対処方法は、メッセージが成功的に伝送されるたびに送信ノードと受信ノードのTECとRECのカウントを減少させる段階;をさらに含むことができる。
【0023】
本発明の実施例において、前記TECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断する段階は、ノードのTECまたはRECが256より大きくなる場合に該当ノードを分離することができる。
【0024】
前記の本発明の他の目的を実現するための一実施例に係るコンピュータで読み取り可能な保存媒体には、前記CANバス物理層でハッキングされたノードの対処方法を遂行するためのコンピュータプログラムが記録されている。
【0025】
前記の本発明のさらに他の目的を実現するための一実施例に係るCANバス物理層でハッキングされたノードの対処システムは、CAN(Controller Area Network)バスラインに連結され、それぞれ互いに異なる固有IDであるNID(Node ID)が設定された多数のノード;前記CANバスラインにローディングされるデータフレームの内容を分析してハッキングされたノードであるかを判断するIDS(Intrusion Detection System);前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させ、メッセージが成功的に伝送されるたびに送信ノードと受信ノードのTECとRECのカウントを減少させるカウンタ;および前記多数のノードおよびIDSにそれぞれ装着されて、TECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断するNES(Node Expulsion System);を含む。
【0026】
本発明の実施例において、前記CANバス物理層でハッキングされたノードの対処システムは、偽造されたNIDを使うノードが発見された場合、詐称されたNIDが設定されたノードのNESがハッキングを感知することができる。
【0027】
本発明の実施例において、前記CANバス物理層でハッキングされたノードの対処システムは、他のNIDを使うノードまたは存在しないNIDを使うノードが発見された場合、前記IDSのNESがハッキングを感知することができる。
【0028】
本発明の実施例において、各ノードのNIDはデータフレームを送信する時にメッセージID領域の下位4ビットで設定され得る。
【0029】
本発明の実施例において、CANバスでノードID自動設定を通じての物理層セキュリティ方法は、CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値に到達するとTID(Temporary ID)を設定してデータフレームを送信する段階;クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させる前に劣性信号を感知したりしたノードは、バスに現れる互いに異なる各ノードの固有IDであるNID(Node ID)を保存する段階;TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDをNIDで設定する段階;およびCANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定しデータフレームを送信する段階;を含む。
【0030】
本発明の実施例において、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法は、前記段階を繰り返し遂行してバスラインに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせ、ノードは通信を開始する段階;をさらに含むことができる。
【0031】
本発明の実施例において、設定したNIDを、データフレームを送信する時にメッセージID領域の下位4ビットに設定したNIDを記載して送信することができる。
【0032】
本発明の実施例において、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法は、同一のNIDが設定されたノードが同時に互いに異なるデータを送信する場合、データフレームを送信する時にデータフィールド(Data field)でビット(Bit)エラーが発生する段階;ビット(Bit)エラーが発生すると、データフィールドの何番目のビットでエラーが発生するかを保存する段階;および予め設定された回数だけ連続して同じところでビットエラーが発生する場合、エラーフレームを送信せずに同一のNIDが設定されたと判断してNIDを変更する段階;をさらに含むことができる。
【0033】
本発明の実施例において、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法は、同一のNIDが設定されたノードのうち一つがデータを送信する場合、データを送信しないノードがArbitration field RTRデータを受信する過程でエラーを発生させる段階;ノードがデータフレームを送信する時、データを送信しないノードが自身のNIDがCANバス上に予め設定された回数だけ連続して現れるかをチェックする段階;および自身のNIDが予め設定された回数だけ連続して現れる場合、同一のNIDが設定されたと判断して自身のNIDを変更する段階;をさらに含むことができる。
【0034】
本発明の実施例において、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法は、前記バスに現れる互いに異なる各ノードの固有IDであるNID(Node ID)を保存する段階は、クロックカウントを初期化して通信が終了することを待つ段階;をさらに含むことができる。
【0035】
本発明の実施例において、前記TID(Temporary ID)を設定してデータフレームを送信する段階は、前記クロックカウントの臨界値は16’hFFFFに設定することができる。
【0036】
前記の本発明の他の目的を実現するための一実施例に係るコンピュータで読み取り可能な保存媒体には、前記CANバスでノードID自動設定を通じての物理層セキュリティ方法を遂行するためのコンピュータプログラムが記録されている。
【0037】
前記の本発明のさらに他の目的を実現するための一実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ装置は、CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値に到達するとTID(Temporary ID)を設定してデータフレームを送信し、TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDを互いに異なる各ノードの固有IDであるNID(Node ID)で設定する自動ID設定部;クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させる前に劣性信号を感知したりしたノードのNIDを保存するNID保存部;CANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定してデータフレームを送信する状態マシン;およびバスラインに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせて通信を開始するようにする伝送バッファ;を含む。
【0038】
本発明の実施例において、前記CANバスでノードID自動設定を通じての物理層セキュリティ装置は、CANコントローラ上に具現され、同一のNIDが設定されたノードが同時に互いに異なるデータを送信する場合、データフレームを送信する時にデータフィールド(Data field)でビット(Bit)エラーが発生すると、データフィールドの何番目のビットでエラーが発生するかを保存し、予め設定された回数だけ連続して同じところでビットエラーが発生する場合、エラーフレームを送信せずに同一のNIDが設定されたと判断してNIDを変更し、同一のNIDが設定されたノードのうち一つがデータを送信する場合、データを送信しないノードがArbitration field RTRデータを受信する過程でエラーが発生すると、ノードがデータフレームを送信する時、データを送信しないノードが自身のNIDがCANバス上に予め設定された回数だけ連続して現れるかをチェックし、自身のNIDが予め設定された回数だけ連続して現れる場合、同一のNIDが設定されたと判断して自身のNIDを変更することができる。
【発明の効果】
【0039】
このようなCANバス物理層でハッキングされたノードの対処方法によると、CANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって悪意の攻撃を防御する。
【0040】
IDS(Intrusion Detection System)とCAN(Controller Area Network)コントローラのNID(Node ID)を設定しておくハードウェア的な方式で、CANバス上で発生し得るすべてのネットワーク攻撃に対して即刻に対処することができる。したがって、使用者の安全性を高めることができ、セキュリティ性能を強化することができる。
【0041】
このようなCANバスでノードID自動設定を通じての物理層セキュリティ方法によると、CANバスでブーティング時ごとに個別ノードに固有IDを自動で付与して各ノードを区別する。本発明はブーティング時ごとに固有IDであるNID(Node ID)を割り当てるため、部品の取り替えにかかわらず容易に適用が可能でありながらも固有IDのビット数を大きく減らすことができる。
【0042】
また、IDSとCANコントローラのNIDを設定しておく方式で、CANバス上で発生し得るすべてのネットワーク攻撃に対して対処することができる。これに伴い、使用者の安全性を高めることができ、セキュリティ性能を強化することができる。
【図面の簡単な説明】
【0043】
【
図1】本発明の一実施例に係るCANバス物理層でハッキングされたノードの対処システムのブロック図である。
【0044】
【
図2】
図1でNIDが設定されているノードのMIDとDLCによる送信できるデータ範囲を示す表である。
【0045】
【
図3】TECとRECによるノードの状態変化を示す図面である。
【0046】
【
図4】本発明により一般の攻撃に対処する過程を示す図面である。
【0047】
【
図5】本発明によりスプーフィング攻撃に対処する過程を示す図面である。
【0048】
【
図6】本発明の一実施例に係るCANバス物理層でハッキングされたノードの対処方法のフローチャートである。
【0049】
【
図7】本発明により一般の攻撃に対処する動作のシミュレーション波形を示す図面である。
【0050】
【
図8】本発明によりスプーフィング攻撃に対処する動作のシミュレーション波形を示す図面である。
【0051】
【
図9】本発明の一実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ装置のブロック図である。
【0052】
【
図10】本発明によりNIDを自動で設定する過程を示す図面である。
【0053】
【
図11】本発明により同一のNIDが設定されたノードが同時にデータを送信する場合を説明するための図面である。
【0054】
【
図12】
図11の場合にData fieldでBitエラーが発生する過程を説明するための図面である。
【0055】
【
図13】本発明により同一のNIDが設定されたノードのうち一つがデータを送信する場合を説明するための図面である。
【0056】
【
図14】
図13の場合にArbitration fieldでBitエラーが発生する過程を説明するための図面である。
【0057】
【
図15】本発明でNIDが設定されているノードのMIDとDLCによる送信できるデータ範囲を示す表である。
【0058】
【
図16】本発明でIDSが攻撃に対処する過程を説明するための図面である。
【0059】
【
図17】本発明の一実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ方法のフローチャートである。
【0060】
【
図18】CANバスがブーティングされながらノードの固有IDが自動で付与される過程のシミュレーション結果を示す図面である。
【0061】
【
図19】CANバス内部攻撃に対する対処動作のシミュレーション結果を示す図面である。
【発明を実施するための形態】
【0062】
後述する本発明に対する詳細な説明は、本発明が実施され得る特定の実施例を例示として図示する添付図面を参照する。これらの実施例は当業者が本発明を十分に実施できるように詳細に説明される。本発明の多様な実施例は互いに異なるが互いに排他的である必要はないことが理解されなければならない。例えば、ここに記載されている特定形状、構造および特性は、一実施例に関連して本発明の精神および範囲を逸脱することなく他の実施例で具現され得る。また、それぞれの開示された実施例内の個別構成要素の位置または配置は、本発明の精神および範囲を逸脱することなく変更され得ることが理解されなければならない。したがって、後述する詳細な説明は限定的な意味で取ろうとするものではなく、本発明の範囲は、適切に説明されるのであれば、その請求項が主張するものと均等なすべての範囲とともに、添付された請求項によってのみ限定される。図面で類似する参照符号は多様な側面に亘って同一または類似する機能を指称する。
【0063】
以下、図面を参照して本発明の好ましい実施例をより詳細に説明することにする。
【0064】
図1は、本発明の一実施例に係るCANバス物理層でハッキングされたノードの対処システムのブロック図である。
図2は、
図1でNIDが設定されているノードのMIDとDLCによる送信できるデータ範囲を示す表である。
【0065】
本発明に係るCAN(Controller Area Network)バス物理層でハッキングされたノードの対処システム(1、以下、システム)はCANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって悪意の攻撃を防御する技法を提案する。例えば、本発明で提案した技法を搭載したCANコントローラをVerilog HDLを利用して具現することができる。
【0066】
図1を参照すると、本発明に係るシステム1はCANバスラインに連結された多数のノード(Node A、B、C、D)、IDS(Intrusion Detection System)、カウンタ(図示されず)およびNES(Node Expulsion System)を含む。
【0067】
前記多数のノード(Node A、B、C、D)はCAN(Controller Area Network)バスラインに連結され、それぞれ互いに異なる固有IDであるNID(Node ID)が設定される。
【0068】
本発明では、すべてのノードが通信を開始する前に、
図1のように互いに異なる本人の固有IDであるNID(Node ID)が設定されている。データフレームを送信する時にメッセージID領域の下位4ビットをNID値で満たして送信すると、NIDがフィンガープリント(Fingerprint)役割をするのでいずれのノードがデータフレームを送信するかが分かるようになる。
【0069】
本発明に係るCANバスは追加的にIDS(Intrusion Detection System)を連結したが、IDSは侵入感知システムであって、
図2のようにMID(Message ID)とDLC(Data Length Code)により送信できるデータの範囲を事前に設定してIDSとノードに予めアップデートしておく。
【0070】
前記IDSは前記CANバスラインにローディングされるデータフレームの内容を分析してハッキングされたノードであるかを判断する。
【0071】
前記カウンタは前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させ、メッセージが成功的に伝送されるたびに送信ノードと受信ノードのTECとRECのカウントを減少させる。
【0072】
前記NESは前記多数のノードおよびIDSにそれぞれ装着されて、TECまたはRECが設定された臨界値より大きくなるノードをバスオフ(off)させて遮断する。
【0073】
CANバスのすべてのノードはTEC(Transmit Error Counter)とREC(Receive Error Counter)があり、これを利用してエラーが頻繁に発生するノードが他のノードの送受信を妨害しないように管理する。
【0074】
すべてのノードはエラーを発見するとエラーフレームを発生させるが、この時、送信ノードのTECは8だけ増加することになる。受信ノードの場合、最も先にエラーフレームを発生させたノードのRECは8だけ増加し、他のノードのRECは1だけ増加する。
【0075】
反面、メッセージが成功的に伝送されると送信ノードと受信ノードのTECとRECはそれぞれ1ずつ減少する。
図3はTECとRECによりノード状態の変化を示したものである。エラーアクティブ状態は正常な送受信を遂行するが、TECまたはRECが128以上になるとエラーパッシブ状態となって送受信に多少制約を受ける。
【0076】
特に、TECが256以上になると、バスオフ状態となってバスで自動的に分離され、送受信が禁止される。本発明ではこれを利用して、悪意のデータフレームを伝送するノードをバスオフ状態にさせて、該当ノードがバスを過負荷にさせたり他のノードを攻撃したりすることを防ぐ技法を提案する。
【0077】
CANバス攻撃シナリオCANバスでは大きく三つの攻撃シナリオが考えられるが、ノードを占領した後にスニッフィング(Sniffing)を通じてメッセージパターンを把握してもよく、一般的な攻撃(Attack)を通じて悪意のデータフレームを送信してバスに過負荷がかかるようにしたり他のノードを誤動作させたりすることができる。
【0078】
また、他のノードであるように装って悪意のデータフレームを送信するスプーフィング(Spoofing)攻撃をすることもできる。例えば、攻撃シナリオは下記の通りである。
【0079】
シナリオ1として、スニッフィングはハッキングを通じて占領したノードを利用して、バス上で通信中であるメッセージ等を見てパターンを把握することである。この段階ではCANバスに害を加えない。
【0080】
シナリオ2として、一般の攻撃はスニッフィングを通じてメッセージパターンを把握した後、占領したノードを利用して悪意のデータフレームを送信する。シナリオ3はスプーフィング攻撃であって、一般的な攻撃とスプーフィング攻撃は悪意のデータフレームを送信する点では同一であるものの、スプーフィング攻撃では占領したノードが他のノードであるように偽装するという差がある。
【0081】
エラーフレームを送ってハッキングされたノードを追放する機能であるNES(Node Expulsion System)は、一般的なCANバスにはない本発明で追加した機能である。
【0082】
一実施例として、NESは特定条件を満足すればエラーフレームを送りだす回路をCANコントローラに付加して具現することができる。本発明ではNESを各ノードとIDSにすべて装着した。
【0083】
本発明でスニッフィングは、直ぐにはバスに悪影響を及ぼさないので特別な措置は取らない。しかし、一般の攻撃では、
図4のように占領されたノードが悪意のデータフレームを送信する場合、IDSで該当データフレームの内容を分析して該当ノードがハッキングされたことを感知する。
【0084】
以後では、IDSに装着されたNESが、該当ノードが送信するたびにエラーフレームを送信し続けるので、該当ノードは送信が封鎖されTECが増加してバスオフ状態となる。
【0085】
具体的には、ハッキングされたノードが悪意のデータフレームを送信してCANバスを過負荷にさせたり他のノードを誤動作させたりする攻撃に対処する過程である。IDSはCANバスを持続的にモニタリングしているが、(1)MaliciousノードがMID=0x102、DLC=4b0010、Data=0x2000を送信すると、(2)IDSは事前にアップデートされている表と異なっていることを見て現在のデータフレームを送信中であるノードがハッキングされたノードと判断する。
【0086】
(3)ハッキングされたノードを感知したIDSはエラーフレームを送信し、(4)データフレームを送信中のエラーフレームを受信したMaliciousノードはTECが増加することになる。さらに他の攻撃である他の正常ノードを盗用する攻撃は発生することができないが、その理由はすべてのノードが、固有NIDが設定されているので変更できないためである。
【0087】
一方、スプーフィング攻撃では、
図5のように占領されたノードがNIDを偽造して悪意のデータフレームを送信する場合、偽造されたノード(すなわち、偽造されたNIDを始めから使っているノード)で自身と同一のNIDを発見したので該当ノードがハッキングされたことを感知する。
【0088】
以後では、偽造されたノードにかかっているNESが、該当ノードが送信するたびにエラーフレームを送信し続けるので、該当ノードは送信が封鎖されTECが増加してバスオフ状態となる。
【0089】
本発明ではCANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって、悪意の攻撃を防御することができる。
【0090】
図6は、本発明の一実施例に係るCANバス物理層でハッキングされたノードの対処方法のフローチャートである。
【0091】
本実施例に係るCANバス物理層でハッキングされたノードの対処方法は、
図1のシステム1と実質的に同じ構成で進行され得る。したがって、
図1のシステム1と同じ構成要素は同じ図面番号を付与し、重複する説明は省略する。
【0092】
また、本実施例に係るCANバス物理層でハッキングされたノードの対処方法は、CANバス物理層でハッキングされたノードに対処するためのソフトウェア(アプリケーション)により実行され得る。
【0093】
本発明はCANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって悪意の攻撃を防御する。
【0094】
図6を参照すると、本実施例に係るCANバス物理層でハッキングされたノードの対処方法は、CAN(Controller Area Network)バスラインに連結された多数のノードに対して、それぞれ互いに異なる固有IDであるNID(Node ID)を設定する(段階S10)。データフレームを送信する時にメッセージID領域の下位4ビットをNID値で設定することができる。
【0095】
偽造されたNIDを使うノード、他のNIDを使うノードおよび存在しないNIDを使うノードのうち少なくとも一つが発見される場合にエラーフレームと判断する(段階S20)。
【0096】
ノードはそれぞれ自身のNIDが設定されているので、偽造されたNIDを使うノードが発見された場合、詐称されたNIDが設定されたノードがハッキングを感知することができる。
【0097】
反面、他のNIDを使うノードまたは存在しないNIDを使うノードが発見された場合、侵入感知システムであるIDS(Intrusion Detection System)がハッキングを感知することができる。
【0098】
前記エラーフレームが発生するたびに送信ノードと受信ノードのTEC(Transmit Error Counter)とREC(Receive Error Counter)のカウントを増加させる(段階S30)。
【0099】
前記エラーフレームが発生すると、送信ノードのTECは8だけ増加させ、受信ノードの場合、最も先にエラーフレームを発生させたノードのRECは8だけ増加させ、他のノードのRECは1だけ増加させることができる。
【0100】
反面、メッセージが成功的に伝送されるたびに送信ノードと受信ノードのTECとRECのカウントを減少させることができる。
【0101】
TECまたはRECが設定された臨界値より大きくなる場合(段階S40)、ノードをバスオフ(off)させて遮断する(段階S50)。例えば、ノードのTECまたはRECが256より大きくなる場合に該当ノードを分離することができる。
【0102】
このようなCANバス物理層でハッキングされたノードの対処方法によると、CANバス上で悪意のデータフレームが感知されると、侵入感知システムが内部攻撃ノードのエラーカウンタを増加させてバスから分離させることによって悪意の攻撃を防御する。
【0103】
IDS(Intrusion Detection System)とCAN(Controller Area Network)コントローラのNID(Node ID)を設定しておくハードウェア的な方式で、CANバス上で発生し得るすべてのネットワーク攻撃に対して即刻に対処することができる。したがって、使用者の安全性を高めることができ、セキュリティ性能を強化することができる。
【0104】
以下では本発明の性能を検証するためのシミュレーション結果を説明する。本発明では既存のCANコントローラにNESを装着してVerilog HDLで設計し、ModelSimでシミュレーションした。4個のCANノードのNIDは4、8、16、32に設定したし、スニッフィングは直ぐには悪影響を及ぼさないため、一般の攻撃とスプーフィング攻撃の二つに対してのみシミュレーションを遂行した。
【0105】
図7は一般の攻撃に対処する場合であって、最初は正常動作をしていて、一定の時間が経過した後にIDSで占領された4番ノード(NID=32)を感知し、4番ノードがデータフレームを送信するたびにIDSがエラーフレームを発生させて4番ノードのTECを増加させる。以後、4番ノードが伝送するたびにIDSがTECを増加し続けてバスオフにさせる。
【0106】
図8はスプーフィング攻撃に対処する場合であって、占領された4番ノード(NID=32)が1番ノード(NID=4)を盗用してデータフレームを送信する。しかし、1番ノードは送信中ではないのに自身のNIDを感知したので、攻撃と認識してエラーフレームを発生させて4番ノードのTECを増加させる。以後、4番ノードが1番ノード(NID=4)を盗用するたびに1番ノードがTECを増加し続けてバスオフにさせる。
【0107】
CANバスでは、ノードのうち一つがハッキングされて悪意のデータフレームを伝送してもいずれのノードが問題であるかを識別することが難しい。本発明では既存のCANコントローラを修正して、CANバスで発生し得る多様な攻撃シナリオに対し対処が可能な方法を提案した。
【0108】
このような、CANバス物理層でハッキングされたノードの対処方法はアプリケーションで具現されるか、多様なコンピュータ構成要素を通じて遂行行され得るプログラム命令語の形態で具現されて、コンピュータ読み取り可能な記録媒体に記録され得る。前記コンピュータ読み取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。
【0109】
前記コンピュータ読み取り可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計されて構成されたものなどであり、コンピュータソフトウェア分野の当業者に公知になっている使用可能なものであってもよい。
【0110】
コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、およびROM、RAM、フラッシュメモリなどのようなプログラム命令語を保存し遂行するように特別に構成されたハードウェア装置が含まれる。
【0111】
プログラム命令語の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを使ってコンピュータによって実行され得る高級言語コードも含まれる。前記ハードウェア装置は本発明に係る処理を遂行するために一つ以上のソフトウェアモジュールで作動するように構成され得、その逆も同様である。
【0112】
図9は、本発明の一実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ装置のブロック図である。
【0113】
本発明に係るCANバスでノードID自動設定を通じての物理層セキュリティ装置(10、以下装置)は、CANバスがブーティングされる時個別ノードに固有IDを自動で付与する物理層セキュリティを提案する。
【0114】
図9を参照すると、本発明に係る装置10は自動ID設定部110、NID保存部(図示されず)、状態マシン180および伝送バッファ140を含む。一実施例で、本発明の装置10は提案した技法を、Verilog HDLを利用してCANコントローラに具現することができる。また、CANコントローラはCANシステムに具現されたり、CANバス上のノードに具現されたりし得る。
【0115】
他の実施例として、本発明の装置10はClock DivIDer120、Bit Time Logic130、Receive FIFO Buffer150、Acceptance Filter160およびCRC170のうち少なくとも一つをさらに含むことができる。
【0116】
本発明の前記装置10はCANバスでノードID自動設定を通じての物理層セキュリティを遂行するためのソフトウェア(アプリケーション)が設置されて実行され得、前記自動ID設定部110、前記NID保存部(図示されず)、前記状態マシン180および前記伝送バッファ140の構成は、前記装置10で実行される前記CANバスでノードID自動設定を通じての物理層セキュリティを遂行するためのソフトウェアによって制御され得る。
【0117】
前記装置10は別途の端末であるかまたは端末の一部のモジュールであり得る。また、前記自動ID設定部110、前記NID保存部(図示されず)、前記状態マシン180および前記伝送バッファ140の構成は統合モジュールで形成されるか、一つ以上のモジュールからなり得る。しかし、これとは反対に各構成は別途のモジュールからなってもよい。
【0118】
前記装置10は移動性を有するか固定され得る。前記装置10は、サーバー(server)またはエンジン(engine)の形態であり得、デバイス(device)、機構(apparatus)、端末(terminal)、UE(user equipment)、MS(mobile station)、無線機器(wireless device)、携帯機器(handheld device)等の他の用語で呼ばれ得る。
【0119】
前記装置10はオペレーティングシステム(Operation System;OS)、すなわちシステムを基盤として多様なソフトウェアを実行したり製作することができる。前記オペレーティングシステムはソフトウェアが装置のハードウェアを使用できるようにするためのシステムプログラムであって、アンドロイドOS、iOS、ウインドウモバイルOS、バダOS、シンビアンOS、ブラックベリーOSなどのモバイルコンピュータオペレーティングシステムおよびウインドウ系列、リナックス系列、ユニックス系列、MAC、AIX、HP-UXなどのコンピュータオペレーティングシステムをすべて含むことができる。
【0120】
本発明では
図10のように、CANバス攻撃に対処する。本発明ではIDS(Intrusion Detection System)、NES(Node Expulsion System)というハードウェアを使う。IDSはデータフレームの内容を分析して現在送信中であるノードがハッキングされたノードであるかを判断する。NESはIDSがハッキングされたノードであると指し示した特定ノードをCANバスで追放する機能を遂行するブロックであって、一般的なCANバスにはない機能である。
【0121】
IDSはCANバスを常にモニタリングしていて、あるノードが悪意のデータフレームを送信する場合、データの内容を分析してノードがハッキングされたことを感知する。以後、ハッキングされたノードが送信するたびにデータの内容にかかわらずNESがエラーフレームを発生させて送信を防ぐ。
【0122】
ハッキングされたノードはデータを送信するたびに送信エラーカウントが持続的に増加し、エラーパッシブ状態を経てバスオフ状態となってこれ以上送信が不可能になる。本発明では
図10のようにCANバス内部のすべてのノードに固有IDが指定されている。
【0123】
もし、CANコントローラごとに生産時に固有IDを指定すれば固有IDのビット数が過度に増加し、すべてのノードが車両に装着された後に固有IDを指定すれば部品の取り替え時ごとに固有IDを再指定しなければならない。本発明ではこのような問題点を解決するために、CANバスがブーティングする時に各ノードの固有IDを自動で付与する方案を提案する。
【0124】
前記自動ID設定部110は、CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値に到達すると、TID(Temporary ID)を設定してデータフレームを送信する。以後、TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDを、互いに異なる各ノードの固有IDであるNID(Node ID)で設定する。
【0125】
前記NID保存部(図示されず)はクロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させる前に劣性信号を感知したりしたノードのNIDを保存する。
【0126】
前記状態マシン180はCANバスが休止(IDLE)状態になると、再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定してデータフレームを送信する。
【0127】
前記伝送バッファ140はバスラインに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせて通信を開始するようにする。
【0128】
本発明ではすべてのノードがBoot-upされる時に自動でノードの固有IDであるNID(Node ID)を設定する。NIDを設定する方法は「すべてのオシレータは誤差が存在する。」という点を利用するが、CANバスに連結されたノードがBoot-upされる場合、クロックカウントを開始して十分に大きい値(例えば、十分に大きい値を16’hFFFFに設定する)に到達すると、
図10のように(1)TID(Temporary ID)を設定してデータフレームを送信する。データフレームを送信したのでCANバスには劣性(Recessive)信号が現れる。
【0129】
(2)クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了した後にTx(Transmitter)信号を発生させたりする前に劣性信号を感知したノードは、他のノードが先にCANバスを使っているわけであるのでクロックカウントを初期化し、通信が終了することを待ってバスに現れるNIDを記憶する。
【0130】
(3)TIDを設定したデータフレームを送信したIDSはAck信号を送る。(4)IDSからAck信号を受信したノードはTIDをNIDで設定する。CANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスに現れたNIDに1だけ足した値で設定してデータフレームを送信する。
【0131】
(5)この過程を繰り返してバスに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせ、ノードは通信を開始する。
【0132】
例えば、CANバスがブーティングされる時にクロックカウントを基盤として各ノードの固有IDを設定する。
図2のように、すべてのノードはブーティングされるとともにクロックカウントを開始する。クロックオシレータ回路には偏差が存在するので、あるノードのクロックカウントが先に16′hFFFFに到達すると、その瞬間に該当ノードのIDを1に設定してデータフレームを送信する。
【0133】
この時、IDSからAck信号を受信すると、設定したアドレスを固有IDに設定する。反面、クロックカウントが増加する途中にRx信号が劣性(Recessive)に感知されると、クロックカウントを初期化して待機する。この時、各ノードはクロックカウントの初期化回数を記憶する。
【0134】
バスが休止(IDLE)状態になると再びクロックカウントを開始し、クロックカウントが16′hFFFFになる瞬間にクロックカウントの初期化回数に1だけ足した値を計算しておいてから、IDSからAck信号を受信するとこの計算値を固有IDに設定する。
【0135】
一実施例で、最も先にクロックカウントが16′hFFFFに到達するノードがID=1となり、他のノードはクロックカウントが初期化され、残ったノードのうち最も先にクロックカウントが16′hFFFFに到達するノードがID=2となり、他のノードは同様にクロックカウントが初期化される。このようにしてバスに連結されたすべてのノードのアドレスを設定する。
【0136】
本発明でノードの固有IDを設定するためにオシレータの微細な誤差を利用してクロックカウントの差を発生させるためには、クロックカウントを十分に多く遂行しなければならない。しかし、クロックカウントを多く遂行するとCANバスに連結されているノードの固有IDを設定するまでにかかる時間が長くなる短所がある。
【0137】
反面、固有IDを設定する時間を短縮させるためにクロックカウントを少し遂行すると、ノードのクロックカウントの差が発生しないため同一の固有IDが設定される問題が発生し得る。したがって、クロックカウントの遂行と固有IDを設定する時間は互いにトレードオフ(Trade-off)の関係である。
【0138】
同一の固有IDが設定される問題はノードが通信を開始した以後に発見することができる。大別すると、同一の固有IDが設定されたノードが同時にデータを送信する場合と同一の固有IDが設定されたノードのうち一つがデータを送信する場合である。発見した問題を解決する方法は次の通りである。
【0139】
イ.同時にデータを送信する場合
【0140】
同一の固有IDが設定されたノードが同時にデータを送信する場合は、大別すると、同じデータを送信する場合と互いに異なるデータを送信する場合がある。
【0141】
同一の固有IDが設定されたノードが同時に同一のデータを送信する場合、両ノードはいずれもデータの伝送目的を達成することになるので、問題が発生しない。
【0142】
図11を参照すると、(1)同一のNIDが設定されているノード1とノード4が同時に互いに異なるデータを送信する場合(2)データフィールド(Data field)を送信する過程でビット(Bit)エラーが発生する。
【0143】
データフィールドでビットエラーが発生する過程を詳察すると、
図12のように、ノード4のデータフィールドの8番目のビットを送信する過程でノード1に押されてビットエラーが発生する。データフレームを送信中であるノード1とノード4はエラーフレームを受信したのでTECが増加し、バス休止(IDLE)状態になるとノード1とノード4は再びデータフレームを送信する。
【0144】
そして、再びノード4のデータフィールドの8番目のビットを送信する過程でノード1に押されてビット(Bit)エラーが発生する。このような現象を利用して、ノードがデータフレームを送信する時にデータフィールドでビットエラーが発生する場合、データフィールドの何番目のビットでエラーが発生するかを記憶し、(3)3回連続して同じところでビットエラーが発生すると、エラーフレームを送信せずに同一のNIDが設定されたと判断してNIDを変更する。
【0145】
3回連続データフィールドの同じところでビットエラーが発生することで同一のNIDが設定されたと判断する理由は次の通りである。ノイズまたはCANバスの問題でビットエラーが発生する確率は3.1×10-9であるが、3回連続データフィールドの同じところでビットエラーが確率は29.8×10-29であって非常に小さいためである。また、4回以上とする場合には正常なノードのTECが不要に多く増加し得る。
【0146】
ロ.ノードのうち一つがデータを送信する場合
【0147】
図13のように、(1)同一の固有IDが設定されたノードのうち一つがデータを送信する場合、データを送信しないノードが(2)Arbitration field RTRデータを受信する過程でエラーを発生させる。Arbitration fieldでエラーが発生する過程を詳察すると。
図14のように、ノード1は、自身は送信中の状態ではないのに自身のNIDがCANバス上に現れるのでエラーフレームを送信しRECを増加させる。
【0148】
データを送信中であるノード4は、エラーフレームを受信したのでTECが増加し、バス休止(IDLE)状態になるとノード4は再びデータフレームを送信する。そして、再びノード1がArbitration field RTRデータを受信する過程でエラーを発生させる。
【0149】
このような現象を利用して、ノードがデータフレームを送信する時にデータを送信しないノードが、自身のNIDがCANバス上に(3)3回連続現れると同一のNIDが設定されたと判断してNIDを変更する。
【0150】
3回連続自身のNIDがCANバス上に現れることで同一のNIDが設定されたと判断する理由は、ノイズまたはCANバスの問題でビットエラーが発生する確率は3.1×10-9であるが、3回連続Arbitration fieldで自身のNIDが現れる確率は29.8×10-29であって非常に小さいためである。また、4回以上とする場合には正常なノードのTECが不要に多く増加し得る。
【0151】
設定したNIDをデータフレームを送信する時にメッセージID領域の下位4ビットに満たして送信するとNIDがフィンガープリント(Fingerprint)の役割をするので、いずれのノードがデータフレームを送信するかが分かるようになる。
【0152】
バスの構成は既存のCANバスに追加的にIDS(Intrusion Detection System)を連結したのであるが、IDSは侵入感知システムであって、
図15の表のようにMID(Message ID)とDLC(Data Length Code)により送信できるデータの範囲を事前に設定してIDSとノードに予めアップデートしておく。
【0153】
図16は、ハッキングされたノードが悪意のデータフレームを送信してCANバスを過負荷にさせたり他のノードを誤動作させたりする攻撃に対処する過程である。IDSはCANバスを持続的にモニタリングしているが、(1)MaliciousノードがMID=0x102、DLC=4b0010、Data=0x2000を送信すると(2)IDSは事前にアップデートされている表と異なっていることを見て現在のデータフレームを送信中であるノードがハッキングされたノードと判断する。
【0154】
(3)ハッキングされたノードを感知したIDSはエラーフレームを送信し、(4)データフレームを送信中のエラーフレームを受信したMaliciousノードはTECが増加することになる。さらに他の攻撃である他の正常ノードを盗用する攻撃は発生できないが、その理由はすべてのノードが、固有NIDが設定されているので変更できないためである。
【0155】
CANバス上のノードにはアドレスがないので、ハッキングされて悪意のデータフレームを伝送してもいずれのノードがハッキングされたかを識別することが難しい。本発明では、既存のCANコントローラを修正してCANバスがブーティングするたびに自動でノードの固有IDを定め、これを通じてCANバス内部の攻撃から安全に防御することができる。
【0156】
図17は、本発明の一実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ方法のフローチャートである。
【0157】
本実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ方法は、
図9の装置10と実質的に同じ構成で進行され得る。したがって、
図9の装置10と同じ構成要素は同じ図面番号を付与し、重複する説明は省略する。
【0158】
また、本実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ方法は、CANバスでノードID自動設定を通じての物理層セキュリティを遂行するためのソフトウェア(アプリケーション)により実行され得る。
【0159】
本発明は、CANバスがブーティングされる時に個別ノードに固有IDを自動で付与する物理層セキュリティを提案する。
【0160】
図17を参照すると、本実施例に係るCANバスでノードID自動設定を通じての物理層セキュリティ方法は、CAN(Controller Area Network)バスラインに連結されたノードがブーティング(Boot-up)される場合、クロックカウントを開始して臨界値(例えば、16’hFFFF)に到達すると、TID(Temporary ID)を設定してデータフレームを送信する(段階S100)。
【0161】
クロックカウント動作中に劣性(Recessive)信号を感知したり、クロックカウントを完了してTx(Transmitter)信号を発生させたりする前に劣性信号を感知したノードは、バスに現れる互いに異なる各ノードの固有IDであるNID(Node ID)を保存する(段階S200)。
【0162】
この時、ノードはクロックカウントを初期化して通信が終了することを待機する。設定したNIDは、データフレームを送信する時にメッセージID領域の下位4ビットに設定したNIDを記載して送信することができる。
【0163】
TIDを設定したデータフレームを送信したIDSから送信されたAck信号を受信したノードのTIDをNIDで設定する(段階S300)。
【0164】
CANバスが休止(IDLE)状態になると再びクロックカウントを開始してクロックカウントが設定した値に到達すると、TIDを最後にバスラインに現れたNIDに1だけ足した値で設定してデータフレームを送信する(段階S400)。
【0165】
前記段階(段階S100~段階S400)を繰り返し遂行してバスラインに連結されたすべてのノードのNIDを設定すると、IDSでエラーフレームを送信して各ノードにNID設定が完了したことを知らせ、ノードは通信を開始する(段階S500)。
【0166】
同一のNIDが設定されたノードが同時に互いに異なるデータを送信する場合、データフレームを送信する時にデータフィールド(Data field)でビット(Bit)エラーが発生する。ビット(Bit)エラーが発生すると、データフィールドの何番目のビットでエラーが発生するかを保存する。
【0167】
また、予め設定された回数(例えば、3回)だけ連続して同じところでビットエラーが発生する場合、エラーフレームを送信せずに同一のNIDが設定されたと判断してNIDを変更する。
【0168】
同一のNIDが設定されたノードのうち一つがデータを送信する場合、データを送信しないノードがArbitration field RTRデータを受信する過程でエラーを発生させる。
【0169】
ノードがデータフレームを送信する時、データを送信しないノードが自身のNIDがCANバス上に予め設定された回数(例えば、3回)だけ連続して現れるかをチェックする。自身のNIDが予め設定された回数だけ連続して現れる場合、同一のNIDが設定されたと判断して自身のNIDを変更する。
【0170】
以下では本発明の性能を検証するためのシミュレーション結果を説明する。本発明では既存のCANコントローラにNESを追加してVerilog HDLを利用して具現したし、IDEC(IC Design Education Center)で提供したModelSimでシミュレーションした。
【0171】
シミュレーションでは二つの状況を確認したが、一つはCANバスがブーティングされながら自動でノードの固有アドレスを付与する状況であり、他の一つは内部攻撃がなされこれに対する防御がなされる状況である。
【0172】
図18は、CANバスがブーティングされながら自動でノードの固有アドレスを付与するシミュレーション結果である。最初にブーティングが開始され、各ノードはクロックカウントを増加させる。
【0173】
図18を参照すると、最も先にクロックカウントが16‘hFFFFになったauto_con2ノードが固有IDとして1が付与され、auto_con1ノードとauto_con3ノードはクロックカウント中にRx信号がRecessiveに感知されることによりクロックカウントを初期化する。この時、auto_con1、auto_con3ノードはクロックカウントの初期化回数(この時点では1)を記憶する。
【0174】
バスが休止状態になると再びクロックカウントを開始する。このような方式でauto_con1ノードとauto_con3ノードの順で固有ID設定を完了する。十分な時間の間バスが空いていることになるとすべてのノードはID付与作業が完了したと判断して、実際の動作を開始しながらデータフレームの送受信を開始する。
【0175】
図19は、各ノードの固有IDが設定された以後に内部攻撃が始まり、これに対する対処がなされるシミュレーション結果である。このシミュレーションでは、4個のCANノードのIDが4、8、16、32に設定されたと仮定した。
図19では、最初は正常動作をしていて、一定時間後にIDSでデータフレームのデータを見てIDが4であるノードがハッキングされたことを感知した。
【0176】
以後には、IDが4である内部攻撃ノードがデータフレームを送信するたびにエラーフレームを発生させて該当ノードのTECを増加させる。この作業はIDが4である内部攻撃ノードがデータフレームを伝送するたびになされ、該当ノードのTECが増加し続けて、結局はエラーパッシブ状態を経てバスオフ状態となる。
【0177】
本発明のCANバスでノードID自動設定を通じての物理層セキュリティ方法によると、CANバスでブーティング時ごとに個別ノードに固有IDを自動で付与して各ノードを区別する。本発明はブーティング時ごとに固有IDであるNID(Node ID)を割り当てるため、部品の取り替えにかかわらず容易に適用が可能でありながらも固有IDのビット数を大きく減らすことができる。
【0178】
また、IDSとCANコントローラのNIDを設定しておく方式で、CANバス上で発生し得るすべてのネットワーク攻撃に対して対処することができる。これに伴い、使用者の安全性を高めることができ、セキュリティ性能を強化することができる。
【0179】
このようなCANバスでノードID自動設定を通じての物理層セキュリティ方法はアプリケーションで具現されるか、多様なコンピュータ構成要素を通じて遂行され得るプログラム命令語の形態で具現されて、コンピュータ読み取り可能な記録媒体に記録され得る。前記コンピュータ読み取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。
【0180】
前記コンピュータ読み取り可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計されて構成されたものなどであるかコンピュータソフトウェア分野の当業者に公知になっている使用可能なものであってもよい。
【0181】
コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、およびROM、RAM、フラッシュメモリなどのようなプログラム命令語を保存し遂行するように特別に構成されたハードウェア装置が含まれる。
【0182】
プログラム命令語の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを使ってコンピュータによって実行され得る高級言語コードも含まれる。前記ハードウェア装置は本発明に係る処理を遂行するために一つ以上のソフトウェアモジュールで作動するように構成され得、その逆も同様である。
【0183】
以上では実施例を参照して説明したが、該当技術分野の熟練した当業者は下記の特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で本発明を多様に修正および変更できることが理解できるであろう。
【産業上の利用可能性】
【0184】
今日殆どの自動車の場合、CAN(Controller Area Network)通信プロトコルを使って車両内部の主要電子制御装置(ECU:Electronic Control Unit)をバス型トポロジー(Bus Topology)方式で連結する。本発明はCANバス上で発生する悪意のノードを識別して速かに対処して事故に備えるので、CAN通信を使う自動車のECUおよびその他の装置に便利に活用可能である。
【符号の説明】
【0185】
1:CANバス物理層でハッキングされたノードの対処システム
10:CANバスでノードID自動設定を通じての物理層セキュリティ装置
【国際調査報告】