KR101952117B1 - 차량용 캔 통신 방법 및 장치 - Google Patents
차량용 캔 통신 방법 및 장치 Download PDFInfo
- Publication number
- KR101952117B1 KR101952117B1 KR1020180030196A KR20180030196A KR101952117B1 KR 101952117 B1 KR101952117 B1 KR 101952117B1 KR 1020180030196 A KR1020180030196 A KR 1020180030196A KR 20180030196 A KR20180030196 A KR 20180030196A KR 101952117 B1 KR101952117 B1 KR 101952117B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- control unit
- data
- bit error
- crc value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명은 차량용 캔 통신 방법 및 장치에 관한 것으로, 상기 캔 통신 방법은 송신측 전자제어장치의 제어부가 CAN 메시지를 전송하고, 이 CAN 메시지를 모니터링 하는 단계; 상기 제어부가 상기 CAN 메시지의 데이터 영역에서 비트에러의 발생을 체크하는 단계; 상기 데이터 영역에서 비트에러가 발생하였을 경우, 상기 제어부가 상기 비트에러가 발생한 CAN 메시지의 데이터에 대하여 CRC 값을 계산하는 단계; 상기와 같이 비트에러가 발생한 CAN 메시지의 데이터에 대하여 CRC 값을 계산한 후, 상기 제어부가 상기 데이터 영역에서 비트에러가 발생한 CAN 메시지의 CRC 영역에서 비트에러가 발생하는지 체크하는 단계; 상기 비트에러가 발생한 CAN 메시지의 데이터에 대하여, 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하는 단계; 및 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었을 경우, 상기 제어부는 상기 CAN 메시지의 데이터가 조작된 것으로 판단하여, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 단계;를 포함한다.
Description
본 발명은 차량용 캔 통신 방법 및 장치에 관한 것으로, 보다 상세하게는 차량에서 CAN(Controller Area Network) 메시지가 송신될 때, 상기 CAN 메시지에 악성 조작이 수행되어 데이터와 이 데이터에 대응하는 CRC(Cyclical Redundancy Check)가 조작된 것을 송신측 전자제어장치(ECU : Electronic Control Unit)가 인지하여 상기 CAN 메시지에 대한 에러를 강제로 유발시킴으로써, 수신측 전자제어장치가 상기 CAN 메시지를 이용하지 못하게 하여 보안성을 향상시키는 차량용 캔 통신 방법 및 장치에 관한 것이다.
일반적으로 차량의 시스템이 자동화됨에 따라, 차량 내부 제어기들 간의 통신 또한 빈번하게 이뤄지고 있으며, 차량 내부 통신을 위해서 CAN(Controller Area Network) 통신이 일반적으로 이용된다.
즉, 자동차 내부의 전자제어시스템은 엔진제어기, 변속기제어기, 브레이크제어기, 및 에어백제어기 등 수 십여 개의 전자제어장치(ECU : Electronic Control Unit)들로 구성되어 있다. 이러한 복수의 전자제어장치(예 : ECU1 ~ ECU5)들 간의 통신은 CAN 통신을 사용한다(도 1 참조).
도 1은 일반적인 CAN 통신 방식의 연결 구조를 보인 예시도이다.
도 1에 도시된 바와 같이, CAN 통신은 중재 기능이 존재하기 때문에 CAN 통신은 2가닥의 꼬임선을 이용하여 복수의 전자제어장치(ECU)가 병렬로 연결되어 통신이 가능하도록 한다.
기본적으로, CAN(Controller Area Network) 프로토콜 방식의 메시지 통신에 따르면, 네트워크는 복수의 노드(또는 CAN 컨트롤러)와 공통의 CAN 버스로 구성되고, 각 노드는 브로드캐스팅 방식으로 메시지를 전송하고, 각 노드가 필요한 메시지를 선택하여 수신한다. 즉, 모든 CAN 컨트롤러(또는 노드)는 CAN 버스(Bus)를 공통으로 사용하여 메시지를 송수신한다.
또한, 각 CAN 컨트롤러(또는 노드)는 전송할 메시지들을 네트워크 상 모든 노드들에게 브로드캐스트 방식으로 전송한다.
그리고 메시지 식별자에 의한 자체적인 중재 기능을 제공한다.
구체적으로, 각 CAN 컨트롤러(또는 노드)는 메시지의 식별자(ID)를 인식하여, 브로트캐스팅 된 메시지들 중에서 필요한 메시지만 걸러서 수신한다.
참고로 상기 CAN 통신 방식은 복수의 에러 검출 방법(예 : Bit Error, Stuff Error, CRC Error, Form Error, Acknowledgement Error)이 적용됨으로써 보안성이 높은 장점이 있다.
특히 수신중인 전자제어장치가 데이터에 변환이 발생했다는 것을 알 수 있는 에어 검출 방법 중 하나이면서, 통신에서 일반적으로 사용되는 에러 검출 방법으로서 CRC 에러 감출 방법이 있는데, 만약 데이터와 이 데이터에 대응하는 CRC가 동시에 조작될 경우, CAN 메시지를 수신하는 수신측 전자제어장치가 CRC 체크를 수행하더라도 에러 없음으로 판정하여, 해당하는 수신측 전자제어장치가 이상 동작을 수행하게 되는 보안상의 문제점이 있다.
가령 외부망 연결성이 높아 보안 취약성이 높은 장치들(예 : 텔레매틱스, AVN시스템 등)이 해커들에게 장악되어 CAN 메시지의 데이터에 이에 대응하는 CRC가 동시에 조작될 경우, 보안상 중요한 장치들(예 : 엔진제어기, 브레이크제어기, 에어백제어기 등)이 도용되어, 차량 시스템에 중대한 보안 위협이 될 수 있는 문제점이 있다.
따라서 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC가 조작된 것을 감지하여 이 CAN 메시지를 무효화시킴으로써 보안성을 향상시키는 기술이 필요한 상황이다.
본 발명의 배경기술은 대한민국 공개특허 10-2017-0024310호(2017.03.07. 공개, 통신 네트워크, 이를 포함하는 차량, 및 그 제어방법)에 개시되어 있다.
본 발명의 일 측면에 따르면, 본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, CAN(Controller Area Network) 메시지가 송신될 때, 상기 CAN 메시지에 악성 조작이 수행되어 데이터와 이 데이터에 대응하는 CRC(Cyclical Redundancy Check)가 조작된 것을 송신측 전자제어장치(ECU : Electronic Control Unit)가 인지하여 상기 CAN 메시지에 대한 에러를 강제로 유발시킴으로써, 수신측 전자제어장치가 상기 CAN 메시지를 이용하지 못하게 하여 보안성을 향상시키는 차량용 캔 통신 방법 및 장치를 제공하는데 그 목적이 있다.
본 발명의 일 측면에 따른 차량용 캔 통신 방법은, 송신측 전자제어장치(ECU)의 제어부가 CAN(Controller Area Network) 메시지를 전송하고, 이 CAN 메시지를 모니터링 하는 단계; 상기 제어부가 상기 CAN 메시지의 데이터 영역에서 비트에러의 발생을 체크하는 단계; 상기 데이터 영역에서 비트에러가 발생하였을 경우, 상기 제어부가 상기 비트에러가 발생한 CAN 메시지의 데이터에 대하여 CRC 값을 계산하는 단계; 상기와 같이 비트에러가 발생한 CAN 메시지의 데이터에 대하여 CRC 값을 계산한 후, 상기 제어부가 상기 데이터 영역에서 비트에러가 발생한 CAN 메시지의 CRC 영역에서 비트에러가 발생하는지 체크하는 단계; 상기 비트에러가 발생한 CAN 메시지의 데이터에 대하여, 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하는 단계; 및 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었을 경우, 상기 제어부는 상기 CAN 메시지의 데이터가 조작된 것으로 판단하여, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 CAN 메시지의 데이터 영역에서 비트에러의 발생을 체크하는 단계에서, 상기 제어부는, 자신이 송신한 데이터와 CAN 통신 라인에서 검출된 데이터가 다른 경우 데이터 영역에서 비트에러가 발생한 것으로 판단하는 것을 특징으로 한다.
본 발명에 있어서, 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하기 위하여, 상기 제어부는, 자신이 본래 송신한 CAN 메시지의 CRC 값과 CAN 통신 라인에서 검출된 상기 비트에러가 발생한 데이터가 포함된 CAN 메시지에 포함된 CRC 값이 다른지 체크하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부가 본래 송신한 CAN 메시지의 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 다른 경우, 상기 제어부는, 상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은지 체크하고, 상기 체크 결과에 따라 상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은 경우에 상기 CAN 메시지의 데이터와 CRC 값이 동시에 조작된 것으로 판단하는 것을 특징으로 한다.
본 발명에 있어서, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 단계에서, 상기 지정된 특정 필드는, 형식(FORM) 에러 검출 영역으로서, EOF(End Of Field) 필드를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 데이터 영역에서 비트에러가 발생하는지 않을 경우, 상기 제어부는 CAN 통신 에러가 발생하지 않는 것으로 판단하여 정상적으로 CAN 통신을 수행하는 것을 특징으로 한다.
본 발명에 있어서, 상기 CRC 영역에 비트에러가 발생하지 않았거나, 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 값이 상기 비트에러가 발생한 데이터에 대응하는 CRC 값이 아닌 경우, 상기 제어부는, 해킹에 의한 CAN 메시지의 조작이 아닌 일반적인 CAN 통신 중 발생한 통신 에러로 판단하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 차량용 캔 통신 장치는, CAN 통신 라인을 통해 CAN 메시지를 송수신하는 CAN 트랜시버; 상기 CAN 트랜시버를 통해 송수신되는 CAN 메시지의 비트에러를 모니터링 하는 비트에러 모니터링부; 상기 CAN 트랜시버를 통해 송수신되는 CAN 메시지의 데이터를 이용해 CRC를 생성하는 CRC 생성부; 상기 CRC 생성부에서 생성된 CRC 값과 상기 CAN 트랜시버를 통해 수신되는 CAN 메시지에 포함된 CRC 값을 비교하는 CRC 비교부; 및 상기 비트에러 모니터링부를 통해 검출된 비트에러 정보와 상기 CRC 비교부를 통해 검출된 CRC 에러 정보를 바탕으로 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC 값이 동시에 조작되었는지 판단하고, 상기 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC 값이 동시에 조작되었을 경우, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 제어부;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 자신이 송신한 데이터와 CAN 통신 라인에서 검출된 데이터가 다른 경우 데이터 영역에서 비트에러가 발생한 것으로 판단하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하기 위하여, 자신이 본래 송신한 CAN 메시지의 CRC 값과 CAN 통신 라인에서 검출된 상기 비트에러가 발생한 데이터가 포함된 CAN 메시지에 포함된 CRC 값이 다른지 체크하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 제어부 자신이 본래 송신한 CAN 메시지의 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 다른 경우, 상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은지 체크하고, 상기 체크 결과에 따라 상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은 경우에 상기 CAN 메시지의 데이터와 CRC 값이 동시에 조작된 것으로 판단하는 것을 특징으로 한다.
본 발명에 있어서, 상기 지정된 특정 필드는, 형식(FORM) 에러 검출 영역으로서, EOF(End Of Field) 필드를 포함하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 본 발명은 CAN(Controller Area Network) 메시지가 송신될 때, 상기 CAN 메시지에 악성 조작이 수행되어 데이터와 이 데이터에 대응하는 CRC(Cyclical Redundancy Check)가 조작된 것을 송신측 전자제어장치(ECU : Electronic Control Unit)가 인지하여 상기 CAN 메시지에 대한 에러를 강제로 유발시킴으로써, 수신측 전자제어장치가 상기 CAN 메시지를 이용하지 못하게 하여 보안성을 향상시킨다.
도 1은 일반적인 CAN 통신 방식의 연결 구조를 보인 예시도.
도 2는 본 발명의 일 실시예에 따른 차량용 캔 통신 장치의 개략적인 구성을 보인 예시도.
도 3은 본 발명의 일 실시예에 따른 차량용 캔 통신 방법을 설명하기 위한 흐름도.
도 4는 일반적인 CAN 통신 방식에서 CAN 2.0A 규격의 CAN 메시지 구조를 보인 예시도.
도 5는 일반적인 CAN 통신 방식에서 비트 모니터링을 통한 비트 에러 검출 영역을 보인 예시도.
도 6은 일반적인 CAN 통신 방식에서 CRC 값을 생성하기 위한 필드를 보인 예시도.
도 7 내지 도 9는 일반적인 CAN 통신 방식에서 CAN 메시지의 데이터와 CRC 값이 모두 조작될 수 있는 상황을 설명하기 위하여 보인 예시도.
도 10은 본 발명의 일 실시예에 관련된 CAN 통신 프로토콜의 FORM 에러 검출 영역을 보인 예시도.
도 2는 본 발명의 일 실시예에 따른 차량용 캔 통신 장치의 개략적인 구성을 보인 예시도.
도 3은 본 발명의 일 실시예에 따른 차량용 캔 통신 방법을 설명하기 위한 흐름도.
도 4는 일반적인 CAN 통신 방식에서 CAN 2.0A 규격의 CAN 메시지 구조를 보인 예시도.
도 5는 일반적인 CAN 통신 방식에서 비트 모니터링을 통한 비트 에러 검출 영역을 보인 예시도.
도 6은 일반적인 CAN 통신 방식에서 CRC 값을 생성하기 위한 필드를 보인 예시도.
도 7 내지 도 9는 일반적인 CAN 통신 방식에서 CAN 메시지의 데이터와 CRC 값이 모두 조작될 수 있는 상황을 설명하기 위하여 보인 예시도.
도 10은 본 발명의 일 실시예에 관련된 CAN 통신 프로토콜의 FORM 에러 검출 영역을 보인 예시도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 차량용 캔 통신 방법 및 장치의 일 실시예를 설명한다.
이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2는 본 발명의 일 실시예에 따른 차량용 캔 통신 장치의 개략적인 구성을 보인 예시도이다.
도 2에 도시된 바와 같이, 본 실시예에 따른 차량용 캔 통신 장치는, CAN 트랜시버(110), 비트에러 모니터링부(120), CRC 생성부(130), CRC 비교부(140), 에러 카운터부(150), 및 제어부(160)를 포함한다.
상기 CAN 트랜시버(110)는 CAN 통신 라인을 통해 CAN 메시지를 송수신한다.
상기 비트에러 모니터링부(120)는 상기 CAN 트랜시버(110)를 통해 송수신되는 CAN 메시지의 비트에러를 모니터링 한다.
특히 본 실시예에서 상기 비트에러 모니터링부(120)는 상기 CAN 트랜시버(110)를 통해 송신되는 CAN 메시지의 비트에러도 모니터링 하는 특징이 있다.
상기 CRC 생성부(130)는 상기 CAN 트랜시버(110)를 통해 수신되는(또는 CAN 통신 라인 상에 있는) CAN 메시지의 데이터를 이용해 CRC를 생성(또는 계산)한다.
특히 본 실시예에서 상기 CRC 생성부(130)는 상기 CAN 트랜시버(110)를 통해 송신되는 CAN 메시지의 데이터를 이용해 내부적으로 CRC를 생성(또는 계산)할 수 있다.
상기 CRC 비교부(140)는 상기 CRC 생성부(130)에서 생성된 CRC 정보(필드 정보)와 상기 CAN 트랜시버(110)를 통해 수신되는(또는 CAN 통신 라인 상에 있는) CAN 메시지에 포함된 CRC 정보(필드 정보)를 비교한다.
특히 본 실시예에서는 상기 CAN 트랜시버(110)를 통해 송신되는 CAN 메시지의 데이터를 이용해 내부적으로 생성(또는 계산)한 CRC 정보와 상기 CAN 트랜시버(110)를 통해 수신되는(또는 CAN 통신 라인 상에 있는) CAN 메시지에 포함된 CRC 정보(필드 정보)를 비교할 수 있다.
상기 제어부(160)(즉, 송신측 전자제어장치의 제어부)는 상기 비트에러 모니터링부(120)를 통해 검출된 비트에러 정보와 상기 CRC 비교부(140)를 통해 검출된 CRC 에러 정보를 바탕으로 CAN 메시지의 조작(또는 변경) 여부를 판단한다.
특히 본 실시예서 상기 제어부(160)는 상기 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC 정보가 동시에 조작된 것인지 판단한다.
또한 상기 제어부(160)(즉, 송신측 전자제어장치의 제어부)는 상기 CAN 메시지가 조작(또는 변경)된 것으로 판단될 경우, 상기 CAN 메시지에 대한 에러를 강제로 유발시킴으로써, 수신측 전자제어장치가 상기 CAN 메시지에 에러가 있음을 인지하게 하여 상기 CAN 메시지를 이용하지 못하게 한다. 왜냐하면 상기 수신측 전자제어장치는 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC 정보가 동시에 조작된 경우 CRC 체크 방식으로는 에러를 검출하지 못하기 때문이다.
상기 CAN 메시지의 조작(또는 변경) 여부를 판단하여 상기 CAN 메시지가 조작된 경우 상기 CAN 메시지에 에러가 있음을 인지하게 하는 구체적인 방법은, 도 3의 흐름도를 참조하여 설명한다.
상기 에러 카운터부(150)는 CAN 통신 중 발생하는 에러의 횟수를 카운트 한다. 상기 카운트 값이 기 지정된 횟수 이상이 되면 상기 제어부(160)는 더 이상 CAN 통신을 수행할 수 없게 한다.
도 3은 본 발명의 일 실시예에 따른 차량용 캔 통신 방법을 설명하기 위한 흐름도이다.
도 3에 도시된 바와 같이, 제어부(160)는 CAN 메시지 송신을 위한 ID 우선순위를 선정하고(즉, 송신모드로 진입하여)(S101), 데이터를 전송함과 아울러 이 전송 데이터에 대한 모니터링을 수행한다(S102).
참고로, CAN 2.0A를 기준으로 CAN 메시지의 구조를 살펴보면, 도 4에 도시된 바와 같이 각 필드별 지정된 개수의 비트로 구성된 복수의 필드로 구성된다. 도 4는 CAN 2.0A 규격의 CAN 메시지의 구조를 보인 예시도이다.
예컨대 SOF(Start of Frame) 필드는 1비트로 구성되고, ID(Identifier) 필드는 11비트로 구성되며, RTR(Remote Transmission Request) 필드는 1비트로 구성되고, R1(Reserved Bit) 및 R0(Reserved Bit) 필드는 1비트로 구성되며, DLC(Data Length Code) 필드는 4비트로 구성되고, Data(Data Bytes) 필드는 0~64비트로 구성되며, ACK(Acknowledge) 필드는 2비트로 구성되고, EOF(End of Frame) 필드는 7비트로 구성되며, INT(Intermission) 필드는 3비트로 구성된다. 여기서 ID 필드와 RTR 필드를 묶어서 중재(arbitration) 필드라고 하고, R1, R0, 및 DLC 필드를 묶어서 제어(Control) 필드라고 할 수 있다.
상기 제어부(160)는 상기 Data(Data Bytes) 필드를 통해 전송하는 데이터 영역에서 비트에러가 발생하는지 체크한다(S103).
예컨대 상기 비트에러 검출 방식은 송신하는 CAN 메시지를 모니터링을 하여, 송신측에서 송신하는 값이 CAN 통신 버스에 실리는 값과 다른 경우 오류로 인식하는 경우이고, 이때 ID 필드는 제외한다. 그 이유는 ID 필드에서는 경쟁이 되어 보낸 값과 실제 버스에 실린 값이 다를 수 있기 때문이다.
여기서 중요한 점은 비트에러 검출은 CAN 메시지를 송신 중인 송신측 전자제어장치(ECU)만 알 수 있고 수신 중인 수신측 전자제어장치는 이를 알 수 없다는 점이다.
도 5는 일반적인 CAN 통신 방식에서 비트 모니터링을 통한 비트 에러 검출 영역을 보인 예시도로서, 상기 제어부(160)(즉, 송신측 전자제어장치의 제어부)는 SOF 필드, 제어 필드, Data 필드, 및 CRC 필드에 대해서 비트 모니터링을 통해 비트에러를 검출할 수 있다.
이에 따라 상기 데이터 영역에서 비트에러가 발생하는지 않을 경우(S103의 아니오), 상기 제어부(160)는 CAN 메시지에 에러가 없는 것으로 판단하여 정상적으로 CAN 통신을 수행한다(S104).
그러나 상기 데이터 영역에서 비트에러가 발생하였을 경우(S103의 예), 상기 제어부(160)는 상기 비트에러가 발생한 데이터에 대하여 CRC를 계산한다(S105).
이때 상기 CRC 값을 계산(생성)하기 위한 필드는, 도 6에 도시된 바와 같이, SOF 필드, 중재(Arbitration) 필드, 제어 필드, 및 Data 필드를 포함한다.
한편 상기와 같이 비트에러가 발생한 데이터에 대하여 CRC를 계산한 후, 상기 제어부(160)는 상기 CRC 영역에서 비트에러가 발생하는지 체크한다(S106).
즉, 상기 제어부(160)(즉, 송신측 전자제어장치의 제어부)는 모니터링을 통해 상기 데이터 영역에서 비트에러가 발생한 것을 실시간으로 알 수 있다. 다시 말해, 상기 제어부(160)는 자신이 송신한 데이터와 CAN 통신 라인에서 검출된 데이터가 다른 경우 데이터 영역에서 비트에러가 발생한 것을 알 수 있다.
이와 같이 비트에러가 발생한 데이터가 포함된 CAN 메시지를 수신측 전자제어장치가 수신할 경우, 상기 데이터 영역에서 비트에러가 있는 CAN 메시지의 CRC 필드에 있는 CRC 값과 상기 데이터를 이용해 계산한 CRC 값에서 차이가 발생하기 때문에 상기 수신측 전자제어장치는 CAN 메시지의 이상을 검출할 수 있다.
그러나 만약 상기 비트에러가 있는 데이터에 맞게 상기 CRC 값이 조작(변경)된 경우, 상기 수신측 전자제어장치는 이러한 CAN 메시지의 이상을 검출할 수 없게 된다.
예컨대 도 7에 도시된 바와 같이, 차량에서 발생되는 CAN 통신 데이터의 ID가 2B0라고 할 때, 상기 2B0는 데이터가 총 5바이트로 출력되며, 이를 CRC 값을 포함한 이진 데이터로 바꾸어보면 도 8에 도시된 바와 같다. 이때 CAN 트랜시버(110)는 버스 데이터'1'을'0'으로 바꿀 수 있으므로(반대로 '0'을 '1'로 바꿀 수는 없음), 이를 고려하여 데이터 값과 CRC 값을 동시에 0으로 바꿀 수 있는 데이터를 찾아보면 도 9에 도시된 바와 같다. 도 9에 도시된 바와 같이 데이터를 변경하면 ID 2B0의 데이터가 DF, FF, 02, 07, 25에서 DF, D5, 02, 02, 20으로 변경되며, 수신측 전자제어장치에서 CRC 체크를 수행하더라도 에러가 없음으로 판정된다. 이와 같이 CAN 메시지의 데이터와 CRC 값을 동시에 조작하게 되면 수신측 전자제어장치는 이를 인지하지 못하는 보안상의 문제점이 있다.
따라서 본 실시예에서는 상기와 같이 비트에러가 있는 데이터에 맞춰 상기 CAN 메시지의 CRC 값이 조작된 에러를 검출하기 위하여, 상기 제어부(160)는 자신이 본래 송신한 CAN 메시지의 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 값이 다른지 체크한다. 즉, 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 영역에서 비트에러(즉, 본래 송신한 CAN 메시지의 CRC 값과 다른지)가 발생하는지 체크하는 것이다.
상기 체크(S106) 결과, 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 영역에서 비트에러가 발생한 경우, 즉, 본래 송신한 CAN 메시지의 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 값이 다른 경우(S106의 예), 상기 제어부(160)는 상기 S105 단계에서 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은지 여부에 의해, 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 값이 상기 변조(조작)된 데이터에 대응하는 CRC 값인지 체크한다(S107).
즉, 상기 S105 단계에서 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은 경우(S107의 예), 상기 제어부(160)는 상기 CAN 메시지의 데이터와 CRC 값이 동시에 조작된 것으로 판단하고, 상기 CAN 메시지의 EOF(End of Frame) 필드(즉, FORM 에러 검출 영역)를 조작하여 강제로 비트에러를 발생시킨다(S108).
만약 상기 S106 단계에서 CRC 영역에 비트에러가 발생하지 않았거나(S106의 아니오), 상기 S107 단계에서 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 값이 상기 변조(조작)된 데이터에 대응하는 CRC 값이 아닌 경우(S107의 아니오), 상기 제어부(160)는 해킹에 의한 CAN 메시지의 조작이 아닌 일반적인 CAN 통신 에러로 인지한다(S109). 따라서 일반적인 CAN 통신 에러에 대해서 규정된 프로토콜에 따라 대응한다.
참고로 상기 CAN 메시지의 EOF(End of Frame) 필드(영역)에 강제로 비트에러를 발생시키는 방법에 대해서 좀 더 구체적으로 설명한다.
상기와 같이 본 실시예에서 제어부(160)(즉, 송신측 전자제어장치의 제어부)는 CAN 통신 라인에서 CAN 메시지의 데이터가 조작될 경우, 전송되는 CAN 메시지의 모니터링을 통하여 데이터가 조작되는 상황을 파악한다.
그리고 이와 같이 데이터가 조작된 CAN 메시지를 수신측에서 수신하지 못하도록 하기 위하여, 상기 제어부(160)(즉, 송신측 전자제어장치의 제어부)는 수신측 전자제어장치가 수행할 수 있는 CAN 에러 검출 방법들 중 하나인 형식(FORM) 에러 검출 방법을 이용하여 CAN 메시지의 에러를 검출할 수 있도록, 형식(FORM) 에러 검출 영역(예 : EOF 필드 포함)의 비트를 강제로 조작한다.
예컨대 형식(FORM) 에러 검출 영역은, 도 10에 도시된 바와 같이, 항상 '1'이 되어야 한다. 보다 구체적으로 설명하면, CAN 통신 프로토콜은 CRC 필드의 마지막 비트, ACK 필드의 마지막 비트, 및 EOF 필드의 7비트가 항상 '1'이 되어야 하는 규칙을 가지고 있다.
이러한 규칙을 이용하여 CAN 통신 버스의 데이터가 바뀌고 CRC 값도 이에 맞도록 조작된 것으로 판정될 경우, 상기 제어부(160)는 CRC 영역 이후에 FORM 에러 검출 영역(예 : EOF 필드 포함)의 비트를 강제로'0'으로 바꾸어 에러를 유발시키도록 한다. 즉, 상술한 바와 같이 CAN 통신 프로토콜은 CRC 필드의 마지막 비트, ACK 필드의 마지막 비트, 및 EOF 필드의 7비트가 항상 '1'이 되어야 하는데, 형식(FORM) 에러 검출 영역(예 : EOF 필드 포함)의 비트를 강제로'0'으로 바꾸어 줌으로써, 수신측 전자제어장치는 해당 CAN 메시지가 이상이 있는 것으로 판단하여 이를 수신하지 않게 되는 것이다.
상기와 같이 본 실시예는 CAN 메시지가 송신될 때, 상기 CAN 메시지에 악성 조작이 수행되어 데이터와 이 데이터에 대응하는 CRC 값이 조작된 것을 송신측 전자제어장치가 인지하여 상기 CAN 메시지에 대한 에러를 강제로 유발시킴으로써, 수신측 전자제어장치가 상기 CAN 메시지를 이용하지 못하게 하여 보안성을 향상시키는 효과가 있다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
110 : CAN 트랜시버 120 : 비트에러 모니터링부
130 : CRC 생성부 140 : CRC 비교부
150 : 에러 카운터부 160 : 제어부
130 : CRC 생성부 140 : CRC 비교부
150 : 에러 카운터부 160 : 제어부
Claims (12)
- 송신측 전자제어장치(ECU)의 제어부가 CAN(Controller Area Network) 메시지를 전송하고, 이 CAN 메시지를 모니터링 하는 단계;
상기 송신측 전자제어장치(ECU)의 제어부가 상기 CAN 메시지의 데이터 영역에서 비트에러의 발생을 체크하는 단계;
상기 데이터 영역에서 비트에러가 발생하였을 경우, 상기 송신측 전자제어장치(ECU)의 제어부가 상기 비트에러가 발생한 CAN 메시지의 데이터에 대하여 CRC 값을 계산하는 단계;
상기와 같이 비트에러가 발생한 CAN 메시지의 데이터에 대하여 CRC 값을 계산한 후, 상기 송신측 전자제어장치(ECU)의 제어부가 상기 데이터 영역에서 비트에러가 발생한 CAN 메시지의 CRC 영역에서 비트에러가 발생하는지 체크하는 단계;
상기 비트에러가 발생한 CAN 메시지의 데이터에 대하여, 상기 송신측 전자제어장치(ECU)의 제어부가 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하는 단계; 및
상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었을 경우, 상기 송신측 전자제어장치(ECU)의 제어부는 상기 CAN 메시지의 데이터가 조작된 것으로 판단하여, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 단계;를 포함하는 것을 특징으로 하는 차량용 캔 통신 방법.
- 제 1항에 있어서,
상기 CAN 메시지의 데이터 영역에서 비트에러의 발생을 체크하는 단계에서,
상기 송신측 전자제어장치(ECU)의 제어부는,
자신이 송신한 데이터와 CAN 통신 라인에서 검출된 데이터가 다른 경우 데이터 영역에서 비트에러가 발생한 것으로 판단하는 것을 특징으로 하는 차량용 캔 통신 방법.
- 제 1항에 있어서, 상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하기 위하여,
상기 송신측 전자제어장치(ECU)의 제어부는,
자신이 본래 송신한 CAN 메시지의 CRC 값과 CAN 통신 라인에서 검출된 상기 비트에러가 발생한 데이터가 포함된 CAN 메시지에 포함된 CRC 값이 다른지 체크하는 것을 특징으로 하는 차량용 캔 통신 방법.
- 제 3항에 있어서,
상기 송신측 전자제어장치(ECU)의 제어부가 본래 송신한 CAN 메시지의 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 다른 경우,
상기 송신측 전자제어장치(ECU)의 제어부는,
상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은지 체크하고, 상기 체크 결과에 따라 상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은 경우에 상기 CAN 메시지의 데이터와 CRC 값이 동시에 조작된 것으로 판단하는 것을 특징으로 하는 차량용 캔 통신 방법.
- 제 1항에 있어서, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 단계에서,
상기 지정된 특정 필드는,
형식(FORM) 에러 검출 영역으로서, EOF(End Of Field) 필드를 포함하는 것을 특징으로 하는 차량용 캔 통신 방법.
- 제 1항에 있어서, 상기 데이터 영역에서 비트에러가 발생하는지 않을 경우,
상기 송신측 전자제어장치(ECU)의 제어부는 CAN 통신 에러가 발생하지 않는 것으로 판단하여 정상적으로 CAN 통신을 수행하는 것을 특징으로 하는 차량용 캔 통신 방법.
- 제 1항에 있어서,
상기 CRC 영역에 비트에러가 발생하지 않았거나, 상기 CAN 통신 라인에서 검출된 CAN 메시지의 CRC 값이 상기 비트에러가 발생한 데이터에 대응하는 CRC 값이 아닌 경우,
상기 송신측 전자제어장치(ECU)의 제어부는,
해킹에 의한 CAN 메시지의 조작이 아닌 일반적인 CAN 통신 중 발생한 통신 에러로 판단하는 것을 특징으로 하는 차량용 캔 통신 방법.
- CAN 통신 라인을 통해 CAN 메시지를 송수신하는 CAN 트랜시버;
상기 CAN 트랜시버를 통해 송신측 전자제어장치(ECU)의 제어부가 송신하는 CAN 메시지의 비트에러를 모니터링 하는 비트에러 모니터링부;
상기 송신측 전자제어장치(ECU)의 제어부가 상기 CAN 트랜시버를 통해 CAN 통신 라인 상에 송신하는 CAN 메시지의 데이터를 이용해 CRC를 생성하는 CRC 생성부;
상기 CRC 생성부에서 생성된 CRC 값과 상기 송신측 전자제어장치(ECU)의 제어부가 상기 CAN 트랜시버를 통해 수신되는 CAN 메시지에 포함된 CRC 값을 비교하는 CRC 비교부; 및
상기 비트에러 모니터링부를 통해 검출된 비트에러 정보와 상기 CRC 비교부를 통해 검출된 CRC 에러 정보를 바탕으로 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC 값이 동시에 조작되었는지 판단하고, 상기 CAN 메시지의 데이터와 이 데이터에 대응하는 CRC 값이 동시에 조작되었을 경우, 상기 CAN 메시지의 지정된 특정 필드를 강제로 조작하여 비트에러를 발생시키는 상기 송신측 전자제어장치(ECU)의 제어부;를 포함하는 것을 특징으로 하는 차량용 캔 통신 장치.
- 제 8항에 있어서, 상기 송신측 전자제어장치(ECU)의 제어부는,
자신이 송신한 데이터와 CAN 통신 라인에서 검출된 데이터가 다른 경우 데이터 영역에서 비트에러가 발생한 것으로 판단하는 것을 특징으로 하는 차량용 캔 통신 장치.
- 제 8항에 있어서, 상기 송신측 전자제어장치(ECU)의 제어부는,
상기 비트에러가 발생한 데이터에 맞춰 CRC 값이 조작되었는지 검출하기 위하여, 자신이 본래 송신한 CAN 메시지의 CRC 값과 CAN 통신 라인에서 검출된 상기 비트에러가 발생한 데이터가 포함된 CAN 메시지에 포함된 CRC 값이 다른지 체크하는 것을 특징으로 하는 차량용 캔 통신 장치.
- 제 10항에 있어서, 상기 송신측 전자제어장치(ECU)의 제어부는,
제어부 자신이 본래 송신한 CAN 메시지의 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 다른 경우,
상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은지 체크하고, 상기 체크 결과에 따라 상기 비트에러가 발생된 데이터로 계산한 CRC 값과 상기 CAN 통신 라인에서 검출된 CAN 메시지에 포함된 CRC 값이 같은 경우에 상기 CAN 메시지의 데이터와 CRC 값이 동시에 조작된 것으로 판단하는 것을 특징으로 하는 차량용 캔 통신 장치.
- 제 8항에 있어서, 상기 지정된 특정 필드는,
형식(FORM) 에러 검출 영역으로서, EOF(End Of Field) 필드를 포함하는 것을 특징으로 하는 차량용 캔 통신 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180030196A KR101952117B1 (ko) | 2018-03-15 | 2018-03-15 | 차량용 캔 통신 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180030196A KR101952117B1 (ko) | 2018-03-15 | 2018-03-15 | 차량용 캔 통신 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101952117B1 true KR101952117B1 (ko) | 2019-02-26 |
Family
ID=65562715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180030196A KR101952117B1 (ko) | 2018-03-15 | 2018-03-15 | 차량용 캔 통신 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101952117B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11831464B2 (en) | 2020-06-29 | 2023-11-28 | Lg Energy Solution, Ltd. | Network routing device and method |
KR20240111614A (ko) | 2023-01-10 | 2024-07-17 | 한성대학교 산학협력단 | Bus-off 공격 탐지방법 및 비트 에러로 인한 Bus-off 공격 탐지가 가능한 CAN 버스 시스템 |
US12107871B2 (en) | 2020-11-18 | 2024-10-01 | Korea Automotive Technology Institute | Apparatus for security of vehicle can communication and method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101472896B1 (ko) * | 2013-12-13 | 2014-12-16 | 현대자동차주식회사 | 차량 내 통신 네트워크에서의 보안 강화 방법 및 그 장치 |
KR20150015831A (ko) * | 2013-08-01 | 2015-02-11 | 한국전자통신연구원 | Can 통신의 오류 검출 장치 및 오류 검출 방법 |
-
2018
- 2018-03-15 KR KR1020180030196A patent/KR101952117B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150015831A (ko) * | 2013-08-01 | 2015-02-11 | 한국전자통신연구원 | Can 통신의 오류 검출 장치 및 오류 검출 방법 |
KR101472896B1 (ko) * | 2013-12-13 | 2014-12-16 | 현대자동차주식회사 | 차량 내 통신 네트워크에서의 보안 강화 방법 및 그 장치 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11831464B2 (en) | 2020-06-29 | 2023-11-28 | Lg Energy Solution, Ltd. | Network routing device and method |
US12107871B2 (en) | 2020-11-18 | 2024-10-01 | Korea Automotive Technology Institute | Apparatus for security of vehicle can communication and method thereof |
KR20240111614A (ko) | 2023-01-10 | 2024-07-17 | 한성대학교 산학협력단 | Bus-off 공격 탐지방법 및 비트 에러로 인한 Bus-off 공격 탐지가 가능한 CAN 버스 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11438355B2 (en) | In-vehicle network anomaly detection system and in-vehicle network anomaly detection method | |
US10165442B2 (en) | Transmission device, reception device, transmission method, and reception method | |
US20160173505A1 (en) | On-vehicle communication system | |
KR101952117B1 (ko) | 차량용 캔 통신 방법 및 장치 | |
US10958470B2 (en) | Attributing bus-off attacks based on error frames | |
EP3319275A1 (en) | Method for monitoring data traffic in a motor-vehicle network | |
CN112347022B (zh) | 用于can节点的安全模块 | |
US11677779B2 (en) | Security module for a can node | |
WO2019193786A1 (ja) | ログ出力方法、ログ出力装置及びプログラム | |
CN104320295A (zh) | Can报文异常检测方法及系统 | |
KR101734505B1 (ko) | 차량용 네트워크의 공격탐지 방법 및 그 장치 | |
US11463198B2 (en) | Security module for a serial communications device | |
CN107836095B (zh) | 用于在网络中产生秘密或密钥的方法 | |
KR101334017B1 (ko) | 차량 네트워크의 메시지 무결성 체크 시스템 및 방법 | |
KR20190003112A (ko) | Can 통신 기반 우회 공격 탐지 방법 및 시스템 | |
CN113169966A (zh) | 用于监控数据传输系统的方法、数据传输系统和机动车 | |
US20230327907A1 (en) | Relay device, communication network system, and communication control method | |
US11212295B2 (en) | Data communication method and apparatus for vehicle network | |
JP2004236333A (ja) | データパケットの安全送信の監視方法および装置 | |
KR102595722B1 (ko) | 통신 네트워크, 이에 연결된 노드를 식별하는 방법 및 장치 | |
Lee et al. | Expanding the Attack Scenarios of SAE J1939: A Comprehensive Analysis of Established and Novel Vulnerabilities in Transport Protocol | |
JP3401361B2 (ja) | 多重伝送システム | |
JP2020061655A (ja) | 通信システム | |
JP2019134262A (ja) | 電子制御装置 | |
KR20120010693A (ko) | 전자 제어 장치간 인증방법 및 그 방법을 이용한 전자 제어 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |