[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102610234B1 - 버스 오프 감지 방법 및 이를 수행하는 전자제어장치 - Google Patents

버스 오프 감지 방법 및 이를 수행하는 전자제어장치 Download PDF

Info

Publication number
KR102610234B1
KR102610234B1 KR1020210034167A KR20210034167A KR102610234B1 KR 102610234 B1 KR102610234 B1 KR 102610234B1 KR 1020210034167 A KR1020210034167 A KR 1020210034167A KR 20210034167 A KR20210034167 A KR 20210034167A KR 102610234 B1 KR102610234 B1 KR 102610234B1
Authority
KR
South Korea
Prior art keywords
bus
electronic control
maximum
time
data frame
Prior art date
Application number
KR1020210034167A
Other languages
English (en)
Other versions
KR20220129364A (ko
Inventor
최원석
이세영
Original Assignee
한성대학교 산학협력단
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 한성대학교 산학협력단 filed Critical 한성대학교 산학협력단
Priority to KR1020210034167A priority Critical patent/KR102610234B1/ko
Publication of KR20220129364A publication Critical patent/KR20220129364A/ko
Application granted granted Critical
Publication of KR102610234B1 publication Critical patent/KR102610234B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/067Generation of reports using time frame reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40104Security; Encryption; Content protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0695Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Electronic Switches (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Abstract

본 발명은 버스 오프 감지 방법 및 이를 수행하는 전자제어장치에 관한 것이다.
본 발명에서는 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 수신되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 기지의 값으로 구비하는 차량용 전자제어장치에 있어서, CAN 버스상에서 수신되는 선행 데이터 프레임의 EOF 필드부터 후행 데이터 프레임의 EOF 필드까지를 반복적으로 카운팅하는 카운터를 구비하고, 카운터의 출력값으로부터 산출되는 시간이 상기 최대 IFS 시간보다 더 큰 값을 가질 경우 버스 오프 상태로 판별하고 CAN 버스에 통지하는 CAN 제어부(controller)를 포함하는 것을 특징으로 하는 전자제어장치가 개시된다.
본 발명에서 제시된 버스 오프 감지 방법 및 이를 수행하는 전자제어장치에 의해 차량 내부 네트워크를 보장할 수 있게 되어 안전 운행이 가능하게 되었다.

Description

버스 오프 감지 방법 및 이를 수행하는 전자제어장치{BUS OFF DETECTION METHOD AND ELECTRONIC CONTROL UNIT PERFORMING THE SAME}
본 발명은 버스 오프 감지 방법 및 이를 수행하는 전자제어장치에 관한 것으로서, 보다 구체적으로는 연속적으로 수신되는 데이터 프레임을 IFS를 이용하여 버스 오프를 감지하는 방법 및 이를 수행하는 전자제어장치에 관한 것이다.
현재 생산되는 대부분의 차량은 CAN을 통해 ECU를 제어하며 차량의 대부분 기능이 수행된다. 그리고 CAN 표준상으로 ECU의 에러 인지와 관리를 위해 Fault confinement 메커니즘이 정의되어 있으며 ECU들은 해당 메커니즘에 따라 동작한다. Fault confinement 메커니즘 중 CAN Bus의 안전성을 위해 오류 또는 통신 장애가 발생한 ECU를 논리적으로 CAN Bus에서 제외시키기 위해 Bus Off 모드가 정의되어 있다.
사용자의 안전성과 주행 편의성을 위해 차량에 더 많은 기능과 외부 통신 인터 페이스가 추가됨에 따라 차량 내부 네트워크를 대상으로 하는 새로운 공격과 취약점이 등장하고 있다. 특히 차량의 안전을 위해 설계된 Fault confinement 메커니즘을 악용하여 ECU를 강제로 Bus Off 시키는 공격이 발표되었다.
Bus Off 모드인 ECU는 CAN Bus 상으로 어떠한 메시지 송.수신도 수행할 수 없기 때문에 기능에 중요한 ECU가 강제로 Bus Off 모드로 전환될 경우 사용자와 운전자의 생명에 큰 문제가 발생할 수 있다.
한국공개특허 제10-2014-0047984호 (2014.04.23 공개)
본 발명의 목적은 CAN Bus상에 모니터링되는 연속적으로 수신되는 데이터 프레임 사이의 시간 간격을 분석하여 버스 오프 공격을 감지하는 방법 및 이를 수행하는 전자제어장치를 제공하는 것을 목적으로 한다.
본 발명의 상기 목적은 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 생성되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 저장 구비하는 차량용 전자제어장치에서 CAN 버스의 버스 오프를 감지하는 방법으로서, CAN 버스상에서 수신되는 인접된 데이터 프레임 사이의 시간 간격(IFS, Inter-Frame Space)을 측정하는 제1단계와, 상기 제1단계에서 측정된 IFS 시간과 해당 차량에서 허여된 최대 IFS 시간을 비교하여 측정된 IFS 시간이 최대 IFS 시간보다 더 큰값인지 여부를 판별하는 제2단계 및 제2단계의 판별 결과 측정된 IFS 시간이 최대 IFS 시간보다 더 큰 값을 가질 경우 Bus Off가 발생되었다고 판단하고 CAN 버스에 통지하는 제3단계를 포함하는 버스 오프 감지 방법에 의해서 달성 가능하다.
본 발명의 상기 목적은 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 생성되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 저장 구비하는 차량용 전자제어장치에서 CAN 버스의 버스 오프를 감지하는 방법으로서, CAN 버스상에서 수신되는 선행 데이터 프레임의 EOF 필드부터 카운팅을 시작하는 제1단계와, CAN 버스상에서 수신되는 후행 데이터 프레임의 EOF 필드에서 카운팅을 종료하는 제2단계와, - 후행 데이터 프레임은 상기 선행 데이터 프레임 다음에 연속적으로 수신되는 데이터 프레임임 - 제2단계의 후행 데이터 프레임을 선행 프레임으로 지정하여 상기 제1단계와 상기 제2단계를 반복 수행하는 제3단계와, 카운터의 출력값으로부터 선행 데이터 프레임의 EOF 필드를 수신한 시간부터 경과된 시간을 산출하고, 산출된 시간이 상기 최대 IFS 시간보다 큰 값을 갖는지 여부를 판별하는 제4단계 및 제4단계의 판별 결과 산출된 시간이 최대 IFS 시간보다 더 큰 값을 가질 경우 Bus Off가 발생되었다고 판단하고 CAN 버스에 통지하는 제5단계를 포함하는 버스 오프 감지 방법에 의해서도 달성 가능하다.
본 발명의 또 다른 목적은 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 수신되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 기지의 값으로 구비하는 차량용 전자제어장치에 있어서,
CAN 버스상에서 수신되는 선행 데이터 프레임의 EOF 필드부터 후행 데이터 프레임의 EOF 필드까지를 반복적으로 카운팅하는 카운터를 구비하고,
- 상기 후행 데이터 프레임은 상기 선행 데이터 프레임 다음에 연속적으로 수신되는 데이터 프레임임 -
상기 카운터의 출력값으로부터 산출되는 시간이 상기 최대 IFS 시간보다 더 큰 값을 가질 경우 버스 오프 상태로 판별하고 CAN 버스에 통지하는 CAN 제어부(controller)를 포함하는 것을 특징으로 하는 전자제어장치에 의해서도 달성 가능하다.
현재 생산되는 대부분의 차량은 CAN을 통해 ECU를 제어하며 차량의 대부분 기능이 수행된다. 그리고 CAN 표준상으로 ECU의 에러 인지와 관리를 위해 Fault confinement 메커니즘이 정의되어 있으며 ECU들은 해당 메커니즘에 따라 동작한다. Fault confinement 메커니즘 중 CAN Bus의 안전성을 위해 오류 또는 통신 장애가 발생한 ECU를 논리적으로 CAN Bus에서 제외시키기 위해 Bus Off 모드가 정의되어 있다. 최근 이러한 Fault confinement를 악용하여 강제로 ECU를 Bus Off 시키는 공격이 발표되었다. Bus Off 모드인 ECU는 CAN Bus 상으로 어떠한 메시지 송·수신도 수행할 수 없기 때문에 기능에 중요한 ECU가 강제로 Bus Off 모드로 전환된 경우 사용자와 운전자의 생명에 큰 문제가 발생할 수 있다.
본 발명에서 제시된 버스 오프 감지 방법 및 이를 수행하는 전자제어장치에 의하면 연속적으로 수신되는 데이터 프레임의 IFS 시간을 측정함으로써 효율적인 Bus Off 공격을 탐지할 수 있게 되었다. 또한, 본 발명에서 제시된 버스 오프 감지 방법 및 이를 수행하는 전자제어장치에 의해 차량 내부 네트워크를 보장할 수 있게 되어 안전 운행이 가능하게 되었다.
도 1은 정상 동작상태에서 CAN Bus 상에서 시간의 흐름에 따른 데이터 프레임의 전송 방식을 설명하는 설명도.
도 2는 차량에서 TEC와 REC의 값에 따라 노드에서 나타나는 세 가지 상태 다이어그램을 표시하는 설명도.
도 3은 공격자가 CAN Bus에서 Bus Off를 발생시키는 경우 시간의 흐름에 따른 데이터 프레임의 전송 방식을 설명하는 설명도.
도 4는 Standard Format 및 Extended Format의 CAN 버스의 데이터 포맷.
도 5는 본 발명에 따른 일 실시예의 Bus Off 공격을 탐지하는 흐름도.
도 6은 본 발명에 따른 일 실시예의 Bus Off 공격을 탐지하는 흐름도.
도 7은 CAN Bus와 이에 연결된 복수 개 전자제어장치의 구성도.
본 발명에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에서, "~ 상에 또는 ~ 상부에" 라 함은 대상 부분의 위 또는 아래에 위치함을 의미하는 것이며, 반드시 중력 방향을 기준으로 상 측에 위치하는 것을 의미하는 것은 아니다. 또한, 영역, 판 등의 부분이 다른 부분 "상에 또는 상부에" 있다고 할 때, 이는 다른 부분 "바로 상에 또는 상부에" 접촉하여 있거나 간격을 두고 있는 경우뿐 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
삭제
삭제
삭제
본 발명은 이러한 Bus Off 공격을 탐지하기 위해서 데이터 프레임 사이의 간격인 IFS를 이용하여 효율적인 Bus Off 공격 탐지 방법을 제시한다. 이를 통해 운전자에게 안전한 차량 내부 네트워크 보안성을 제공할 수 있다.
삭제
IFS는 CAN Bus상에 데이터 프레임(Frame) 사이의 시간 간격을 나타내는 정보로 연속적인 데이터 프레임을 위해서는 데이터 프레임 사이에 최소 3 bit time의 IFS가 존재해야 한다. 도 1은 정상 동작상태에서 CAN Bus 상에서 시간의 흐름에 따른 데이터 프레임의 전송 방식을 설명하는 설명도이다. 즉, ECU가 CAN Bus 상으로 메시지 프레임 전송을 위해서는 CAN Bus에 이미 전송되고 있는 데이터 프레임이 전송된 이후에 최소 3 bit time 대기 후에 다음 메시지 프레임 전송이 가능하다. 일반적인 CAN 통신의 Bit rate인 50kbps 속도에서 3bit time은 6㎲(microsecond)이다.
Bus Off 공격은 타겟 ECU를 의도적으로 Bus Off 상태가 되도록 만드는 공격이다. 각 ECU에는 CAN 통신 상에 발생하는 에러에 대해 ECU의 상태를 관리하기 위해 TEC(Transmit Error Counter)와 REC(Receive Eror Counter)가 정의되어 있다. 특히 TEC가 256 이상인 경우에 해당 ECU는 Bus Off 상태가 되며 Bus Off 상태인 ECU는 CAN Bus 상으로 어떠한 프레임 전송이나 수신을 할 수 없게 된다.
공격자는 타겟 ECU를 Bus Off 시키기 위해서 타겟 ECU가 전송하는 데이터 프레임 내의 Arbitration field 이후에 bit 에러를 발생시킨다. Bit 에러를 인지한 타겟 ECU는 TEC(Transmit Error Count)를 8 증가시키고 전송에 실패한 데이터 프레임에 대해 재전송을 시도한다. 공격자는 동일한 과정을 반복함으로써 타겟 ECU의 TEC가 256 이상이 되도록 하여 타겟 ECU를 CAN Bus에서 Bus Off 시킨다.
CAN 통신 버스 네트워크에 참여하는 모든 노드(ECU)의 CAN 컨트롤러는 2개의 8비트 레지스터를 관리한다. 전송 에러를 카운트하는 레지스터 TEC(Transmission Error Counter)와 수신 에러를 카운트하는 레지스터 REC(Receive Error Counter)이다. 두 개의 레지스터는 CAN BUS에서 결함을 제한하는 목적으로 사용된다(Fault Confinement).
도 2는 차량에서 TEC와 REC의 값에 따라 노드에서 나타나는 세 가지 상태 다이어그램을 표시한다. 에러가 발생하면 카운터는 증가하고 결함이 없는 프레임이면 카운터는 감소된다. TEC나 REC 카운터 중 하나가 특정한 값을 초과하게 되면 해당 노드는 에러를 제어하기 위한 다른 상태모드로 천이된다.
카운터가 증가하는 규칙을 정리한다.
<TEC 카운터>
전송노드가 에러플래그를 전송시 : TEC = TEC + 8
성공적으로 전송시 : TEC = TEC - 1
<REC 카운터>
수신노드가 에러플래를 전송시 : REC = REC + 1
수신노드가 첫 번째 에러플래그를 전송시 : REC = REC + 8
성공적으로 전송시 : REC = REC - 1
수신노드가 REC 카운터를 증가시키는 것보다 송신노드가 TEC 카운터를 증가시키는 속도가 빠르다. 이는 송신노드가 직접 메시지를 전송하므로 결함을 찾기가 더 쉽기 때문이다. TEC와 REC 값에 따라 해당 노드는 Error Active, Error Passive, Bus Off 상태 중 하나로 천이된다.
Error Active 상태는 일반적인 통신 상태로 에러가 발생하면, 도미넌트 값('0') 6개를 가지는 에러플래그를 버스에 실려준다.
카운터 값이 127을 초과하면 Error Passive 상태로 천이된다. 이 상태에서는 송신에 제약이 따르지만 메시지 송수신을 계속 할 수 있다. Error Passive 상태에서 더 이상의 에러가 발생하지 않으면 다시 Error Active 상태로 돌아간다.
문제의 노드가 에러를 계속 송신하여 카운터값이 255를 초과하게 되면 해당 노드는 네트워크에서 제외되는 Bus off 상태가 된다. 해당 노드를 더 이상 통신에 참여하지 못하게 함으로써 네트워크 결합을 제거하는 것이다. 물론 Bus Off 상태라도 물리적으로 연결이 끊기는 것은 아니다. Bus Off 상태에서 어플리케이션을 다시 시작하거나(Reset) 11비트의 리세시브 값이 128회 반복되면 Bus Off 상태에서 Error Active 상태로 돌아갈 수 있다.
도 3은 공격자가 CAN Bus에서 Bus Off를 발생시키는 경우 시간의 흐름에 따른 데이터 프레임의 전송 방식을 설명하는 설명도이다. 공격자가 타겟 ECU를 Bus Off 시키기 위해서는 두 가지 조건을 만족해야 한다. 첫 번째는 공격 데이터 프레임 전송 타이밍으로 타겟 ECU가 데이터 프레임을 전송하는 타이밍과 동일하게 공격자가 데이터 프레임을 전송해야 한다. 두 번째는 공격 데이터 프레임 내용으로 타겟 ECU가 전송하는 데이터 프레임의 Arbitration field와 동일한 Arbitration field로 이루어져 있으며 Arbitration field 이후에 임의의 위치에서 타겟 데이터 프레임의 1 (recessive) bit 대신에 0 (dominant) bit로 이루어진 데이터 프레임을 전송해야한다. CAN 통신의 경우 데이터 프레임의 정상적으로 전송되어야 하는 0 (dominant) bit를 1 (recessive) bit로 변환하는 것은 어려우므로 공격자는 정상적으로 전송되어야 하는 1 (recessive) bit 대신에 0 (dominant) bit로 변환해서 송부하는 것이다.
도 4는 Standard Format 및 Extended Format의 CAN 버스의 데이터 포맷을 나타낸다. 공격자는 도 4에 도시된 Arbitration field 다음에 전송되는 Control Field, Data Field, CRC Field 및 ACK Field 중에서 선택된 어느 하나 필드(일반적으로는 Data Field)의 비트값을 '1'에서 '0'으로 변환하여 공격하는 것이다.
CAN 메세지 포맷에서 데이터 프레임의 각 필드에 대한 설명은 표 1로 정리하였다.
SOF(Start Of Frame) 한 개의 dominant 비트로 구성되어 있으며, 메시지의 처음을 지시하고 모든 노드의 동기화를 위해 사용된다.
Arbitration Field
(중재 필드)
11비트 또는 29비트의 크기를 갖는 ID와 1비트의 RTR(Remote Transmission Request) 비트로 구성된다. 이 영역은 둘 이상의 노드에서 메시지의 전송이 동시에 일어날 경우 발생하는 메시지 간의 충돌을 조정하는 데 사용된다. RTR비트의 값은 데이터 프레임인지("d") 리모트 프레임인지("r")를 결정하는 데 사용된다.
Control Field
(제어 필드)
2비트의 IDE(IDentifier Extension) 비트, 4비트의 데이터 길이 코드(DLC, Data Length Code)로 구성된다. R0는 Reserved 비트(Extended CAN 2.0B R0, R1)이다.
Data Field
(데이터 필드)
8bytes까지 사용 가능하며, 데이터를 저장하는 데 사용된다(특정한 노드에서 다른 노드로 전송하는 데이터를 포함).
CRC
(Cyclic Redundancy Check) 필드
SOF에서부터 데이터 필드까지의 비트열을 이용해 생성한 15비트의 CRC 시퀀스와 하나의 ‘r’비트의 CRC 델리미터로 구성되어 있다. 이것은 메시지 상의 에러 유무를 검사하는데 사용된다.
ACK(ACKnowledge) 필드 한 비트의 ACK 슬롯과 하나의 ACK 델리미터("d")로 구성되어 있다. 임의의 노드에서 올바른 메시지를 수신하게 되면 ACK 필드를 받는 순간 ACK 슬롯의 값을 'd’로 설정해 버스 상에서 계속 전송하게 된다.
EOF(End Of Frame, 프레임종료) 7개의 ‘r’비트로 구성되어 메시지의 끝을 알리는 목적으로 사용된다.
해당 프레임을 공격자가 타겟 ECU의 전송 시점에 동일하게 전송한 경우, 타겟 ECU는 Arbitration field 이후에 특정 위치에서 1 bit를 보냈지만 0 bit 가 모니터링 되어 bit 에러를 감지하고 TEC를 증가시킨다. 그리고 다시 데이터 프레임 전송을 재시도하며 동일하게 에러를 감지하고 TEC를 증가시킨다. 공격자는 해당 과정을 이용하여 타겟 ECU를 Bus Off 상태가 되도록 유도하는 것이다.
차량에는 복수 개 전자제어장치(ECU, Electronic Control Unit)가 장착된다. ECU는 자동차에서 사용되는 각 기계 또는 전기 부품을 전자적으로 제어하는 장치들을 지칭하는 용어이다. ECU의 예로는 Airbag Conrol Unit(ACU), Engine Control Unit(ECU), Transmission Control Unit(TCU), Brake Control Unit(BCU) 및 On-Board-Diagnostic(OBD) 등이 있다. 차량의 시동을 켜는 순간부터 각 ECU는 CAN Bus를 이용하여 주기적으로 자신의 상태를 다른 ECU에게 전달한다. 따라서 정상적인 차량 상태에서 데이터 프레임 사이의 최대 IFS 시간은 차량마다 정해져 있다. 이러한 차량별 최대 IFS 시간은 제조사가 제공하거나 또는 제공하지 않더라도 간단한 측정을 통해서 구할 수 있음은 물론이다.
본 발명에서는 이러한 버스 오프 공격을 탐지하게 위해 데이터 프레임 사이에 발생되는 IFS를 이용한다. Bus Off 공격 시에는 공격자에 의해 유도된 연속적인 에러 발생과 타겟 ECU의 데이터 프레임 재전송으로 인해 메시지 프레임 사이의 IFS가 길어진다. 따라서 정상 상황에서 데이터 프레임 사이에서 모니터링되는 최대 IFS 시간에 비해 더 긴 IFS 시간이 모니터링된 경우 CAN Bus 상으로 Bus Off 공격이 수행되었음을 탐지할 수 있다. Bus Off 공격 발생시 연속적인 에러 발생과 데이터 프레임 재 전송으로 정상보다 더 긴 IFS가 모니터링 된다.
삭제
삭제
삭제
삭제
도 5는 본 발명에 따른 일 실시예의 Bus Off 공격을 탐지하는 흐름도이다. 도 5에 대한 모니터링은 Airbag Conrol Unit(ACU), Engine Control Unit(ECU), Transmission Control Unit(TCU), Brake Control Unit(BCU), On-Board-Diagnostic(OBD) 등에서 선택된 적어도 어느 하나의 전자제어장치(ECU)에서 수행될 수 있음은 물론이고, Bus Off 상태를 감지하기 위한 별도 모니터링용 전자제어장치를 부가하고 이를 통해서도 수행 가능하다.
차량 시동이 켜지면, 본 발명의 모니터링 기능이 부가된 전자제어장치는 카운터를 리셋하여 카운팅을 시작한다. 이후 CAN 버스 모니터링을 수행한다(ST610). 모니터링을 통해 메세지 프레임이 수신되면 해당 메세지 프레임을 디코딩하여 데이터 프레임인지 여부를 체크한다(ST620). CAN Bus 상 메시지는 데이터 프레임, 리모트(remote) 프레임, 에러 프레임, 오버로드 프레임이 있다. 본 발명에서는 다른 프레임 종류의 간격과는 무관하며 데이터 프레임 사이의 간격만을 이용하여 Bus Off 상태를 감지한다. ST620 판별 결과 데이터 프레임이 아닌 경우라면 해당 프레임을 버리고 ST610단계를 다시 수행한다. ST620 판별 결과 데이터 프레임으로 판별되면 EOF(End Of Frame)를 검출하고, 카운터를 다시 리셋한 후 새롭게 카운팅을 시작시킨 후(ST630), ST610 단계부터 다시 수행하여 ST610 ~ ST630단계를 무한 반복시키다.
ST610 ~ ST630단계를 무한 반복하는 과정에서 측정된 카운터값이 최대 IFS에 대응하는 카운터값을 초과하는 이벤트가 발생하는지 여부를 체크한다(ST650). ST650에 해당하는 이벤트가 발생되면 어느 하나의 노드에 Bus Off 공격이 가해졌다고 파악하고 이를 통지한 후(ST660) 종료한다.
도 6은 본 발명에 따른 일 실시예의 Bus Off 공격을 탐지하는 흐름도이다. 차량 시동이 켜지면, 본 발명의 모니터링 기능이 부가된 전자제어장치는 카운터를 리셋하여 카운팅을 시작한다. 이후 CAN 버스 모니터링을 수행한다(ST710). 모니터링을 통해 메세지 프레임이 수신되면 해당 메세지 프레임을 디코딩하여 데이터 프레임인지 여부를 체크한다(ST720). ST720 판별 결과 데이터 프레임이 아닌 경우라면 해당 프레임을 버리고 ST710단계를 다시 수행한다. ST720 판별 결과 데이터 프레임으로 판별되면 EOF(End Of Frame)를 검출하고, IFS를 측정한다(ST730). 이후, 측정된 IFS가 최대 IFS보다 큰 값을 갖는지 여부를 판별하고(ST740), ST740 판별 결과가 참인 경우에는 어느 하나의 노드에 Bus Off 공격이 가해졌다고 판별하고 이를 통지한 후(ST760) 종료한다. ST740 판별 결과가 거짓인 경우에는 카운터를 다시 리셋한 후 새롭게 카운팅을 시작시킨 후(ST750), ST710 단계부터 다시 수행을 시작한다.
ST730단계에서는 정상적으로 수신된 이전 데이터 프레임 이후부터 다시 새로운 정상적인 데이터 프레임을 전송받을 때까지 걸리는 시간인 IFS 시간(측정 IFS 시간)이 산출되는 것이다. CAN Bus 상에서 바로 전(前)에 전송된 정상적인 데이터 프레임 이후부터 다음의 새로운 정상적인 데이터 프레임을 전송받을 때까지의 IFS를 측정(이를 측정 IFS라 함)하는 것이다.
후속 조치로서 Bus Off 공격에 의해 해당 노드가 Bus Off 상태로 진입한 것이라 판별되고, 해당 노드가 Bus Off 상태로 진입되면 해당 노드의 어플리케이션을 다시 시작(Soft Reset) 되도록 처리할 수 있음은 물론이다.
구체적인 실시예를 설정하고 본 발명의 실시예의 하나인 도 6에 따라 Bus Off 상황을 감지하는 방식에 대해 좀더 상세히 설명한다. Transmission Control Unit(TCU)에서 본 발명에 따른 Bus off를 감지하는 기능이 구현되는 것으로 가정하고, CAN Bus 상에는 도 3에 도시된 바와 같이 'ID A(정상)', 'ID B(정상)', 'ID C(비정상)' 데이터 프레임이 순차적으로 전송된다고 가정한다. 여기서, 'ID A', 'ID B' 및 'ID C'는 모두 데이터 프레임으로서, TCU를 제외한 다른 전자제어장치에서 생성된 것이라고 가정한다.
차량 시동이 켜지면, TCU는 CAN Bus 상의 모든 데이터 프레임을 모니터링한다. TCU는 수신되는 메세지 프레임이 데이터 프레임인지 여부를 체크하고, 데이터 프레임만 수신하여 디코딩한다.
TCU는 첫 번째 'ID A(정상)'를 수신한 후, 해당 'ID A'의 EOF(End of Frame)를 수신한 시각을 트리거 신호로 이용하여 카운팅을 시작한다. 다시 'ID B'가 수신되면, 해당 'ID B'의 EOF(End of Frame)를 확인하고 카운팅을 종료하고 카운팅값(측정 IFS)과 최대 IFS를 비교한다. 이때 실질적인 비교는 카운팅값을 시간으로 변환하여 측정 IFS 시간을 구하고, 구해진 측정 IFS 시간을 최대 IFS 시간과 비교하는 방식으로 이루어진다.
이 경우에는 '측정 IFS 시간 > 최대 IFS 시간'를 만족시키지 못하므로 카운터를 리셋시키고, 새롭게 입력된 'ID B'의 EOF(End of Field)를 수신한 시각을 트리거 신호로 이용하여 새로운 카운팅을 시작하는 것이다. 'ID B' 데이터 프레임 이후에는 EOF 필드가 포함되지 않은 'ID C'가 입력될 것이나, EOF를 가지지 않으므로 연속적으로 입력되는 비정상 'ID C'를 모두 수신하는 동안 카운팅은 계속된다. 비정상 'ID C'를 전송하는 노드는 데이터 프레임에 오류가 있음을 파악하고 오류가 발생될 때마다 '에러 프레임'을 CAN 버스 상에 전송하므로 TCU는 에러 프레임을 확인하고 방금 수신한 'ID C'가 비정상임을 확인할 수 있게 된다.
이후 다시 정상적인 'ID B'가 입력되면 해당 'ID B'의 EOF(End of Frame)를 확인하고 카운팅을 종료하고 카운팅값(측정 IFS)과 최대 IFS 시간과 비교한다. 이 경우에는 '측정 IFS 시간 > 최대 IFS 시간'를 만족할 것이므로 Bus Off 공격이 가해졌음을 파악하고 이를 통지하고 종료한다.
도 7은 CAN Bus와 이에 연결된 복수 개 전자제어장치의 구성도이다. 도 7에는 Airbag Conrol Unit(ACU), Engine Control Unit(ECU), Transmission Control Unit(TCU) 및 Brake Control Unit(BCU)이 CAN Bus에 연결되어 있다. 각 전자제어장치는 CAN 컨트롤러를 구비하는 DSP(Digital Signal Processor) 또는 마이크로제어기(μC, micro controller)가 구비되고, CAN 트랜시버(Transceiver)가 구비된다. DSP(Digital Signal Processor) 또는 마이크로제어기(μC, micro controller)에는 연속으로 수신되는 데이터 프레임 사이의 시간 간격을 측정하는 카운터를 구비하고, CAN 컨트롤러는 카운터 값을 이용하여 버스 오프 상태를 통지하게 구현할 수 있음은 물론이다.
상기에서 본 발명의 바람직한 실시예가 특정 용어들을 사용하여 설명 및 도시되었지만 그러한 용어는 오로지 본 발명을 명확히 설명하기 위한 것일 뿐이며, 본 발명의 실시예 및 기술된 용어는 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안되며, 본 발명의 청구범위 안에 속한다고 해야 할 것이다.
ID A, ID B, ID C: 데이터 프레임
IFS: Inter-Frame Space

Claims (9)

  1. 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 생성되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 저장 구비하는 차량용 전자제어장치에서 CAN 버스의 버스 오프를 감지하는 방법으로서,
    CAN 버스상에서 수신되는 인접된 데이터 프레임의 EOF(End of Frame) 사이 시간 간격(IFS, Inter-Frame Space)을 측정하는 제1단계와,
    상기 제1단계에서 측정된 IFS 시간과 해당 차량에서 허여된 최대 IFS 시간을 비교하여 측정된 IFS 시간이 최대 IFS 시간보다 더 큰 값인지 여부를 판별하는 제2단계 및
    상기 제2단계의 판별 결과 측정된 IFS 시간이 최대 IFS 시간보다 더 큰 값을 가질 경우 Bus Off가 발생되었다고 판단하고 CAN 버스에 통지하는 제3단계를 포함하는 버스 오프 감지 방법.
  2. 제1항에 있어서,
    상기 최대 IFS 시간은 차량이 Bus Off가 발생되지 않은 상태에서 측정하여 미리 저장하는 제0단계를 더 포함하고,
    상기 제0단계는 상기 제2단계 이전에 수행되는 것을 특징으로 하는 버스 오프 감지 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1단계 내지 제3단계는 복수 개 전자제어장치 중 어느 하나의 전자제어장치에서 수행되며,
    상기 어느 하나의 전자제어장치는 에어백제어유닛(Airbag Conrol Unit), 엔진제어유닛(Engine Control Unit), 트랜스미션제어유닛(Transmission Control Unit), 브레이크제어유닛(Brake Control Unit) 및 온보드진단기(On-Board-Diagnostic) 중에서 선택되는 것을 특징으로 하는 버스 오프 감지 방법.
  4. 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 생성되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 저장 구비하는 차량용 전자제어장치에서 CAN 버스의 버스 오프를 감지하는 방법으로서,
    CAN 버스상에서 수신되는 선행 데이터 프레임의 EOF 필드부터 카운팅을 시작하는 제1단계와,
    CAN 버스상에서 수신되는 후행 데이터 프레임의 EOF 필드에서 카운팅을 종료하는 제2단계와,
    - 상기 후행 데이터 프레임은 상기 선행 데이터 프레임 다음에 연속적으로 수신되는 데이터 프레임임 -
    상기 제2단계의 후행 데이터 프레임을 선행 프레임으로 지정하여 상기 제1단계와 상기 제2단계를 반복 수행하는 제3단계와,
    카운터의 출력값으로부터 선행 데이터 프레임의 EOF 필드를 수신한 시간부터 경과된 시간을 산출하고, 산출된 시간이 상기 최대 IFS 시간보다 큰 값을 갖는지 여부를 판별하는 제4단계 및
    상기 제4단계의 판별 결과 산출된 시간이 최대 IFS 시간보다 더 큰 값을 가질 경우 Bus Off가 발생되었다고 판단하고 CAN 버스에 통지하는 제5단계를 포함하는 버스 오프 감지 방법.
  5. 제4항에 있어서,
    상기 최대 IFS 시간은 차량이 Bus Off가 발생되지 않은 상태에서 측정하여 미리 저장하는 제0단계를 더 포함하고,
    상기 제0단계는 상기 제4단계 이전에 수행되는 것을 특징으로 하는 버스 오프 감지 방법.
  6. 제4항 또는 제5항에 있어서,
    상기 제1단계 내지 제5단계는 복수 개 전자제어장치 중 어느 하나의 전자제어장치에서 수행되며,
    상기 어느 하나의 전자제어장치는 에어백제어유닛(Airbag Conrol Unit), 엔진제어유닛(Engine Control Unit), 트랜스미션제어유닛(Transmission Control Unit), 브레이크제어유닛(Brake Control Unit) 및 온보드진단기(On-Board-Diagnostic) 중에서 선택되는 것을 특징으로 하는 버스 오프 감지 방법.
  7. 복수 개 전자제어장치가 CAN 버스를 이용하여 데이터를 송수신하고, 정상적인 차량 운행 중 연속적으로 수신되는 데이터 프레임 사이의 최대 시간 간격인 최대 IFS 시간을 기지의 값으로 구비하는 차량용 전자제어장치에 있어서,
    CAN 버스상에서 수신되는 선행 데이터 프레임의 EOF 필드부터 후행 데이터 프레임의 EOF 필드까지를 반복적으로 카운팅하는 카운터를 구비하고,
    - 상기 후행 데이터 프레임은 상기 선행 데이터 프레임 다음에 연속적으로 수신되는 데이터 프레임임 -
    상기 카운터의 출력값으로부터 산출되는 시간이 상기 최대 IFS 시간보다 더 큰 값을 가질 경우 버스 오프 상태로 판별하고 CAN 버스에 통지하는 CAN 제어부(controller)를 포함하는 것을 특징으로 하는 전자제어장치.
  8. 제7항에 있어서,
    상기 최대 IFS 시간은 차량이 Bus Off가 발생되지 않은 상태에서 측정하여 미리 저장하여 구비하는 것을 특징으로 하는 전자제어장치.
  9. 제8항에 있어서,
    상기 전자제어장치는 에어백제어유닛(Airbag Conrol Unit), 엔진제어유닛(Engine Control Unit), 트랜스미션제어유닛(Transmission Control Unit), 브레이크제어유닛(Brake Control Unit) 및 온보드진단기(On-Board-Diagnostic) 중에서 선택된 어느 하나인 것을 특징으로 하는 전자제어장치.
KR1020210034167A 2021-03-16 2021-03-16 버스 오프 감지 방법 및 이를 수행하는 전자제어장치 KR102610234B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210034167A KR102610234B1 (ko) 2021-03-16 2021-03-16 버스 오프 감지 방법 및 이를 수행하는 전자제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210034167A KR102610234B1 (ko) 2021-03-16 2021-03-16 버스 오프 감지 방법 및 이를 수행하는 전자제어장치

Publications (2)

Publication Number Publication Date
KR20220129364A KR20220129364A (ko) 2022-09-23
KR102610234B1 true KR102610234B1 (ko) 2023-12-06

Family

ID=83445949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210034167A KR102610234B1 (ko) 2021-03-16 2021-03-16 버스 오프 감지 방법 및 이를 수행하는 전자제어장치

Country Status (1)

Country Link
KR (1) KR102610234B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010081152A (ja) 2008-09-25 2010-04-08 Nec Electronics Corp 通信装置および通信システム並びに通信方法、canノード
US20150263938A1 (en) * 1997-02-18 2015-09-17 Emulex Corporation Interconnect system and method for ethernet networks
KR101748272B1 (ko) 2015-12-10 2017-06-27 현대자동차주식회사 차량에서의 대용량 진단 통신 제어 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100569147B1 (ko) * 2004-06-17 2006-04-07 현대자동차주식회사 캔 타임아웃 통신오류 진단방법
KR102077200B1 (ko) 2012-10-15 2020-02-13 현대모비스 주식회사 메세지를 이용한 캔 버스 오프 감지 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150263938A1 (en) * 1997-02-18 2015-09-17 Emulex Corporation Interconnect system and method for ethernet networks
JP2010081152A (ja) 2008-09-25 2010-04-08 Nec Electronics Corp 通信装置および通信システム並びに通信方法、canノード
KR101748272B1 (ko) 2015-12-10 2017-06-27 현대자동차주식회사 차량에서의 대용량 진단 통신 제어 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Habeeb Olufowobi 외 2 명, 'Controller Area Network Intrusion Prevention System Leveraging Fault Recovery,' ACM, (20190.11.19.)*
Hyun Min Song 외 2 명, 'Intrusion detection system based on the analysis of time intervals of CAN messages for in-vehicle network,' ICOIN, (2016.01.13.)*

Also Published As

Publication number Publication date
KR20220129364A (ko) 2022-09-23

Similar Documents

Publication Publication Date Title
US10693905B2 (en) Invalidity detection electronic control unit, in-vehicle network system, and communication method
US11636196B2 (en) Misuse detection method, misuse detection electronic control unit, and misuse detection system
JP4407752B2 (ja) 故障箇所検出装置及び通信装置並びに故障箇所検出方法
JP5919205B2 (ja) ネットワーク装置およびデータ送受信システム
KR101472896B1 (ko) 차량 내 통신 네트워크에서의 보안 강화 방법 및 그 장치
US7783808B2 (en) Embedded self-checking asynchronous pipelined enforcement (escape)
US20110035180A1 (en) Diagnostic apparatus and system adapted to diagnose occurrence of communication error
KR101519793B1 (ko) 차량용 네트워크 시스템 및 이 시스템 내 이종 통신 제어기의 데이터 전송 방법
US8432814B2 (en) Node of a distributed communication system, node and monitoring device coupled to such communication system
CN109104352B (zh) 车辆网络操作协议和方法
US11218501B2 (en) Detector, detection method, and detection program
KR101334017B1 (ko) 차량 네트워크의 메시지 무결성 체크 시스템 및 방법
US20150258999A1 (en) Method and apparatus for isolating a fault-active controller in a controller area network
JP3770053B2 (ja) 車両用ネットワークの通信復帰判定方法
KR102610234B1 (ko) 버스 오프 감지 방법 및 이를 수행하는 전자제어장치
JP7207231B2 (ja) 通信装置及びプロトコルの切替方法
JP3217397B2 (ja) 通信制御装置のデータ送信方法
KR20240048200A (ko) Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템
KR20110101972A (ko) Can 프로토콜을 사용한 데이터 통신에서 데이터 메시지에 대한 무결성 확인 방법
JP6873375B2 (ja) 通信装置、通信システム及び通信方法
KR20240043982A (ko) 차량 네트워크의 Bus-off 공격 기반 가장 공격 탐지 방법 및 이를 탐지하는 장치
JPS62176236A (ja) 応答パケツト送信時の伝送エラ−防止方法
JP2011229079A (ja) 電子制御ユニット
JP2021090147A (ja) 通信装置
US20100074272A1 (en) Communication protocol detection system and method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right