KR102006296B1 - Can 통신 시스템 및 방법 - Google Patents
Can 통신 시스템 및 방법 Download PDFInfo
- Publication number
- KR102006296B1 KR102006296B1 KR1020180017096A KR20180017096A KR102006296B1 KR 102006296 B1 KR102006296 B1 KR 102006296B1 KR 1020180017096 A KR1020180017096 A KR 1020180017096A KR 20180017096 A KR20180017096 A KR 20180017096A KR 102006296 B1 KR102006296 B1 KR 102006296B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- device node
- partition
- identifier
- time interval
- Prior art date
Links
Images
Classifications
-
- 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/40052—High-speed IEEE 1394 serial bus
- H04L12/40071—Packet processing; Packet format
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 CAN(Controller Area Network) 통신 시스템 및 방법에 관한 것이다. 본 발명의 일 실시예에 따른 CAN 통신 시스템은 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송하는 시스템 제어 모듈; 및 패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증하고, 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 적어도 하나의 장치 노드를 포함할 수 있다.
Description
본 발명은 CAN(Controller Area Network) 통신 시스템 및 방법에 관한 것이다.
오늘날의 자동차는 전자 제어 유닛(ECU: Electronic Control Unit)을 이용해 엔진뿐만 아니라 변속, 조향, 에어백 등을 제어하고 있다. 또한, 근래에 들어 차량은 탑승자의 조작뿐만 아니라 센서를 통해 주변 환경까지 고려하는 거대한 시스템이 되면서 다양한 디바이스 간 통신을 위해 CAN을 채용하고 있다.
기존의 차량에 구축된 네트워크는 폐쇄 네트워크로 여겨지고 있었다. 그러나, 차량이 탑승자의 스마트폰과 상호작용을 하고, 다가오는 미래에 사물인터넷 인프라가 보급되면서 도로 위의 각종 장치와 차량과 통신을 하게 되는 V2X(Vehicle To Everything) 기술이 도입된다면 차량 네트워크는 개방되어 있는 것과 다름이 없게 된다.
이 경우, 개방형 차량 네트워크에 대한 접근으로 다양한 사이버 공격의 위협이 발생할 수 있으며, 이러한 사이버 공격은 차량의 오작동을 유발하여 인명이나 재산의 피해를 야기할 가능성이 있다.
본 발명의 실시예는 차량이나 각종 전자 장비에 구축되는 CAN에 허가받지 않은 악의적인 공격이나 접근이 시도되는 경우 이를 탐지하여 네트워크를 보호할 수 있는 CAN 통신 시스템 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 CAN 통신 시스템은 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송하는 시스템 제어 모듈; 및 패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증하고, 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 적어도 하나의 장치 노드를 포함할 수 있다.
상기 시스템 제어 모듈은: 상기 프로세서의 처리를 미리 설정된 시간 단위마다 다수의 파티션으로 구분하고 각각의 파티션마다 해당 파티션에 대응하는 처리를 실행하여 패킷을 생성할 수 있다.
상기 시스템 제어 모듈은: 각각의 파티션마다 사전에 결정된 식별자를 패킷에 포함시켜 해당 파티션에 할당된 시간 내에 패킷을 전송할 수 있다.
상기 장치 노드는: 상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 유효 패킷으로 결정하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 수신된 패킷을 폐기할 수 있다.
상기 장치 노드는: 상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 수신된 패킷에 포함된 식별자를 추출하고, 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하고, 상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하면, 상기 수신된 패킷을 상기 유효 패킷으로 결정하고, 상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하지 않으면, 상기 수신된 패킷을 폐기할 수 있다.
본 발명의 일 실시예에 따른 CAN 통신 방법은 프로세서에서 처리를 실행하여 시스템 제어 모듈이 패킷을 생성하는 단계; 상기 시스템 제어 모듈이 상기 패킷을 전송하는 단계; 장치 노드가 패킷을 수신하는 단계; 상기 장치 노드가 상기 수신된 패킷의 유효 여부를 검증하는 단계; 및 상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 CAN 통신 방법은 컴퓨터로 실행하기 위한 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 기록될 수 있다.
본 발명의 실시예에 따르면, 통신 시스템의 복잡도 상승을 최소화하면서 네트워크에 대한 공격을 효율적으로 탐지하여 패킷의 유효성을 확인할 수 있다.
도 1은 본 발명의 일 실시예에 따른 CAN 통신 시스템의 예시적인 블록도이다.
도 2는 본 발명의 일 실시예에 따른 시스템 제어 모듈과 장치 노드들의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 CAN 통신 방법의 예시적인 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 시스템 제어 모듈과 장치 노드들의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 CAN 통신 방법의 예시적인 흐름도이다.
이하, 본 발명의 실시 예를 첨부된 도면들을 참조하여 더욱 상세하게 설명한다. 본 발명의 실시 예는 여러 가지 형태로 변형할 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것으로 해석되어서는 안 된다. 본 실시 예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이다. 따라서 도면에서의 요소의 형상은 보다 명확한 설명을 강조하기 위해 과장되었다.
한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 '~부', '~기', '~블록', '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈'들로 결합되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈'들로 더 분리될 수 있다.
이하, 본 명세서에 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 CAN 통신 시스템(10)의 예시적인 블록도이다.
도 1을 참조하면, 상기 CAN 통신 시스템(10)은 시스템 제어 모듈(100) 및 적어도 하나의 장치 노드(200)를 포함한다.
상기 시스템 제어 모듈(100)은 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송한다. 상기 장치 노드(200)는 패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증한다. 그리고, 상기 장치 노드(200)는 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어한다.
상기 시스템 제어 모듈(100)과 상기 적어도 하나의 장치 노드(200)는 CAN(Controller Area Network)을 구성하여 서로 간에 패킷을 주고받으면서 장치를 제어하고 동작시킨다. 본 발명의 실시예에 따른 CAN 통신 시스템(10)은 차량에 적용될 수 있으나, CAN을 구축하여 운영하는 시스템이라면 본 발명의 실시예에 따른 CAN 통신 시스템(10)이 제한 없이 사용될 수 있다.
만약 상기 CAN 통신 시스템(10)이 차량에 적용되어 사용되는 경우, 상기 시스템 제어 모듈(100)은 ECU(Electronic Control Unit)를 포함할 수 있다. 본 발명의 실시예에 따르면, 상기 ECU는 소정의 운영체제가 설치되어 프로세서에서 정해진 알고리즘에 따라 처리를 실행할 수 있다. 그 결과, 상기 시스템 제어 모듈(100)은 프로세서의 처리에 의해 패킷을 생성하고 상기 생성된 패킷을 전송할 수 있다.
도 2는 본 발명의 일 실시예에 따른 시스템 제어 모듈(100)과 장치 노드들(200)의 동작을 설명하기 위한 도면이다.
본 발명의 실시예에 따르면, 상기 시스템 제어 모듈(100)은 프로세서의 처리를 미리 설정된 시간 단위마다 다수의 파티션으로 구분할 수 있다.
예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 ECU에 구비된 프로세서에서 실행되는 처리를 소정의 클럭 수마다 서로 다른 파티션으로 구분할 수 있다.
그리고, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 해당 파티션에 대응하는 처리를 실행하여 패킷을 생성할 수 있다.
예를 들어, 도 2에 도시된 바와 같이, 상기 시스템 제어 모듈(100)은 제 1 파티션에 해당하는 구간에서는 차량의 조향 장치에 관한 제 1 장치 노드(201)를 위한 처리를 실행하여 상기 제 1 장치 노드(201)의 동작에 관한 패킷을 생성할 수 있다.
그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에 해당하는 구간에서는 차량의 계기판에 관한 제 2 장치 노드(202)를 위한 처리를 실행하여 상기 제 2 장치 노드(202)의 동작에 관한 패킷을 생성할 수 있다.
이와 같이 상기 시스템 제어 모듈(100)은 하드웨어 리소스의 동작을 일정한 시간 간격으로 구분하여 각각의 구별된 파티션마다 서로 다른 장치 노드(200)를 위한 처리를 실행함으로써 해당 장치 노드에 관한 패킷을 생성할 수 있다.
나아가, 상기 시스템 제어 모듈(100)은 각각의 장치 노드(200)를 위한 파티션을 반복하여 실행할 수 있다. 예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 제 1 파티션부터 제 N 파티션을 순차적으로 실행한 후, 다시 제 1 파티션부터 제 N 파티션까지의 실행을 반복할 수 있다.
본 발명의 일 실시예에 따르면, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 사전에 결정된 식별자를 패킷에 포함시켜 해당 파티션에 할당된 시간 내에 패킷을 전송할 수 있다.
예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 제 1 파티션에서 상기 제 1 장치 노드(201)를 위한 처리를 실행하여 패킷을 생성하되, 해당 패킷에 제 1 파티션과 매칭된 식별자를 포함시켜 패킷을 구성할 수 있다.
그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에서 상기 제 2 장치 노드(202)를 위한 처리를 실행하여 패킷을 생성하되, 해당 패킷에 제 2 파티션과 매칭된 식별자를 포함시켜 패킷을 구성할 수 있다.
이 실시예에 따르면, 각각의 파티션마다 패킷에 포함되는 식별자는 CAN 프로토콜에 정의된 중재 ID(Arbitration ID)일 수 있다. 이 경우, 상기 시스템 제어 모듈(100)은 각각의 파티션에 대응하는 장치 노드(200)와 관련하여 중재 ID를 생성하고, 상기 생성된 중재 ID와 해당 장치 노드를 제어하기 위한 데이터를 패킷에 포함시켜 패킷을 구성할 수 있다.
그러고 나서, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 생성된 패킷을 해당 파티션에 할당된 시간 내에 전송한다. 즉, 상기 시스템 제어 모듈(100)은 제 1 파티션에서 생성된 상기 제 1 장치 노드(201)를 위한 패킷을 제 1 파티션에 해당하는 시간 구간 내에 전송한다. 그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에서 생성된 상기 제 2 장치 노드(202)를 위한 패킷을 제 2 파티션에 해당하는 시간 구간 내에 전송한다.
상기 장치 노드(200)는 상기 시스템 제어 모듈(100)로부터 전송된 패킷을 수신하여 유효 여부를 검증한다.
본 발명의 일 실시예에 따르면, 상기 장치 노드(200)는 패킷이 수신된 타이밍이 속하는 시간 구간을 식별함으로써 상기 수신된 패킷의 유효 여부를 검증할 수 있다.
구체적으로, 상기 장치 노드(200)는 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 상기 유효 패킷으로 결정할 수 있다. 그렇지 않고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 장치 노드(200)는 상기 수신된 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.
예를 들어, 도 2를 참조하면, 상기 제 1 장치 노드(201)가 해당 장치 노드에 매칭된 제 1 파티션에 대응하는 제 1 시간 구간(즉, 제 1 파티션이 시작되는 타이밍으로부터 제 1 파티션이 종료하는 타이밍까지의 시간 구간) 내에서 제 1 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 1 패킷을 유효 패킷으로 결정할 수 있다.
그러나, 상기 제 1 장치 노드(201)가 해당 장치 노드에 매칭된 제 1 파티션이 아닌 제 2 파티션에 대응하는 제 2 시간 구간(즉, 제 2 파티션이 시작되는 타이밍으로부터 제 2 파티션이 종료하는 타이밍까지의 시간 구간) 내에서 제 2 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 2 패킷을 공격 패킷으로 결정하고 상기 제 2 패킷을 폐기할 수 있다.
마찬가지로, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션에 대응하는 제 2 시간 구간 내에서 제 4 패킷을 수신한 경우, 상기 제 2 장치 노드(202)는 상기 수신된 제 4 패킷을 유효 패킷으로 결정할 수 있다.
그러나, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션이 아닌 제 1 파티션에 대응하는 제 1 시간 구간 내에서 제 5 패킷을 수신한 경우, 상기 제 2 장치 노드(202)는 상기 수신된 제 5 패킷을 공격 패킷으로 결정하고 상기 제 5 패킷을 폐기할 수 있다.
이와 같이 본 발명의 일 실시예에서 상기 장치 노드(200)는 각각의 장치 노드에 매칭된 파티션에 대응하는 시간 구간에서 수신된 패킷을 유효 패킷으로 결정하고 그렇지 않은 패킷을 공격 패킷으로 간주하여 폐기할 수 있다.
나아가, 본 발명의 다른 실시예에 따르면, 패킷이 수신된 타이밍이 속하는 시간 구간과 패킷에 포함된 식별자를 기반으로 유효 패킷을 검증할 수도 있다.
구체적으로, 상기 장치 노드(200)는 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별할 수 있다. 그리고, 상기 장치 노드(200)는 상기 수신된 패킷에 포함된 식별자를 추출하고, 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별할 수 있다.
만약 상기 추출된 식별자가 사전에 매칭된 식별자에 해당하면, 상기 장치 노드(200)는 상기 수신된 패킷을 유효 패킷으로 결정할 수 있다. 그렇지 않고, 상기 추출된 식별자가 사전에 매칭된 식별자에 해당하지 않으면, 상기 장치 노드(200)는 상기 수신된 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.
예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)이 제 1 파티션에서 상기 제 1 장치 노드(201)를 위해 제 1 패킷을 생성하고 그 패킷 안에 제 1 파티션에 매칭된 식별자를 포함시켜 제 1 파티션에 해당하는 시간 구간 안에 전송한 경우, 상기 제 1 장치 노드(201)는 제 1 패킷을 수신하여 패킷이 수신된 타이밍이 속하는 시간 구간(즉, 제 1 파티션에 해당하는 제 1 시간 구간)을 식별하고 제 1 패킷에 포함된 식별자를 추출할 수 있다.
그 뒤, 상기 제 1 장치 노드(201)는 제 1 패킷으로부터 추출된 식별자가 상기 식별된 시간 구간인 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별할 수 있다.
여기서, 상기 추출된 식별자가 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 1 패킷을 유효 패킷으로 결정할 수 있다.
반면, 상기 제 1 장치 노드(201)가 제 1 파티션에 해당하는 제 1 시간 구간에서 또 다른 패킷인 제 3 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 제 3 패킷이 수신된 타이밍이 속하는 시간 구간(즉, 제 1 시간 구간)을 식별하고 제 3 패킷에 포함된 식별자를 추출할 수 있다.
그 뒤, 상기 제 1 장치 노드(201)는 제 3 패킷으로부터 추출된 식별자가 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하여 제 3 패킷의 유효 여부를 검증할 수 있다.
만약 제 3 패킷이 상기 제 1 장치 노드(201)에 대하여 미리 설정된 제 1 시간 구간 내에 수신되었더라도 해당 패킷 안에 포함된 식별자(식별자 C)가 제 1 시간 구간에 대하여 사전에 매칭된 식별자(식별자 A)에 해당하지 않는 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 3 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.
마찬가지로, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션에 대응하는 제 2 시간 구간 내에서 제 4 패킷과 제 6 패킷을 수신한 경우, 제 4 패킷에 포함된 식별자(식별자 D)가 제 2 시간 구간에 대하여 사전에 매칭된 식별자(식별자 D)에 해당하므로 상기 제 2 장치 노드(202)는 상기 수신된 제 4 패킷을 유효 패킷으로 결정할 수 있다. 반면, 제 6 패킷에 포함된 식별자(식별자 F)는 제 2 시간 구간에 대하여 사전에 매칭된 식별자(식별자 D)에 해당하지 않으므로, 상기 제 2 장치 노드(202)는 상기 수신된 제 6 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.
이와 같이 본 발명의 다른 실시예에서 상기 장치 노드(200)는 패킷이 수신된 시간 구간과 해당 패킷에 포함된 식별자를 기반으로 상기 시스템 제어 모듈(100)에 의해 생성되어 전송된 유효 패킷과 그렇지 않은 공격 패킷을 구분함으로써 네트워크에 대한 공격을 효율적으로 탐지하고 보안을 유지할 수 있다.
도 3은 본 발명의 일 실시예에 따른 CAN 통신 방법(1000)의 예시적인 흐름도이다.
상기 CAN 통신 방법(1000)은 앞서 설명한 본 발명의 실시예에 따른 CAN 통신 시스템(10)에 의해 실행된다.
본 발명의 일 실시예에 따른 CAN 통신 방법(1000)은 프로세서에서 처리를 실행하여 상기 시스템 제어 모듈(100)이 패킷을 생성하는 단계, 상기 장치 노드(200)가 패킷을 수신하는 단계, 상기 장치 노드(200)가 상기 수신된 패킷의 유효 여부를 검증하는 단계, 및 상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계를 포함한다.
구체적으로, 도 3을 참조하면, 상기 CAN 통신 방법(1000)은 상기 시스템 제어 모듈(100)이 해당 파티션에 대하여 사전에 결정된 식별자를 포함시켜 패킷을 생성하는 단계(S1100), 상기 시스템 제어 모듈(100)이 식별자가 포함된 패킷을 해당 파티션에 할당된 시간 내에 전송하는 단계(S1200), 상기 장치 노드(200)가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하는 단계(S1300), 상기 장치 노드(200)가 상기 수신된 패킷에 포함된 식별자를 추출하는 단계(S1400), 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우(S1500에서 예), 상기 수신된 패킷을 유효 패킷으로 결정하는 단계(S1610), 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하지 않는 경우(S1500에서 아니오), 상기 수신된 패킷을 폐기하는 단계(S1620), 및 상기 장치 노드(200)가 상기 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계(S1700)를 포함할 수 있다.
이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내어 설명하는 것이며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위내에서 변경 또는 수정이 가능하다. 저술한 실시예는 본 발명의 기술적 사상을 구현하기 위한 최선의 상태를 설명하는 것이며, 본 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.
10: CAN 통신 시스템
100: 시스템 제어 모듈
200: 장치 노드
201: 제 1 장치 노드
202: 제 2 장치 노드
100: 시스템 제어 모듈
200: 장치 노드
201: 제 1 장치 노드
202: 제 2 장치 노드
Claims (7)
- 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송하는 시스템 제어 모듈; 및
패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증하고, 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 적어도 하나의 장치 노드를 포함하되,
상기 시스템 제어 모듈은,
상기 프로세서의 처리를 기 설정된 시간 단위마다 다수의 파티션으로 구분하고, 각각의 파티션마다 해당 파티션에 대응하는 처리를 반복하여 실행하고,
상기 시스템 제어 모듈은,
각각의 파티션에 대응하는 상기 장치 노드를 제어하기 위한 데이터를 생성하고,
상기 시스템 제어 모듈은,
각각의 파티션과 매칭되고, 각각의 파티션에 대응하는 상기 장치 노드와 관련된 중재 ID를 포함하는 식별자를 생성하고,
상기 시스템 제어 모듈은,
각각의 파티션마다 생성된 상기 식별자와 상기 장치 노드를 제어하기 위한 데이터를 포함하는 패킷을 생성하고, 상기 패킷을 해당 파티션에 할당된 시간 내에 상기 장치 노드로 전송하고,
상기 장치 노드는,
상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고,
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 유효 패킷으로 결정하고,
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 수신된 패킷을 폐기하고,
상기 장치 노드는,
상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고,
상기 수신된 패킷에 포함된 식별자를 추출하고,
상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하고,
상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하면, 상기 수신된 패킷을 상기 유효 패킷으로 결정하고,
상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하지 않으면, 상기 수신된 패킷을 폐기하는 CAN 통신 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 프로세서에서 처리를 실행하여 시스템 제어 모듈이 패킷을 생성하는 단계;
장치 노드가 패킷을 수신하는 단계;
상기 장치 노드가 상기 수신된 패킷의 유효 여부를 검증하는 단계; 및
상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계;를 포함하되,
상기 패킷을 생성하는 단계는,
상기 시스템 제어 모듈이 프로세서의 처리를 기 설정된 시간 단위마다 다수의 파티션으로 구분하는 단계;
상기 시스템 제어 모듈이 각각의 파티션마다 해당 파티션에 대응하는 처리를 반복하여 실행하는 단계;
상기 시스템 제어 모듈이 각각의 파티션에 대응하는 상기 장치 노드를 제어하기 위한 데이터를 생성하는 단계;
시스템 제어 모듈이 각각의 파티션과 매칭되고, 각각의 파티션에 대응하는 상기 장치 노드와 관련된 중재 ID를 포함하는 식별자를 생성하는 단계;
시스템 제어 모듈이 각각의 파티션마다 생성된 상기 식별자와 상기 장치 노드를 제어하기 위한 데이터를 포함하는 패킷을 생성하는 단계; 및
상기 시스템 제어 모듈이 상기 식별자와 상기 장치 노드를 제어하기 위한 데이터가 포함된 패킷을 해당 파티션에 할당된 시간 내에 전송하는 단계;를 포함하고,
상기 수신된 패킷의 유효 여부를 검증하는 단계는,
상기 장치 노드가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 상기 수신된 패킷이 수신된 타이밍에 속하는 시간 구간을 식별하는 단계;
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 유효 패킷으로 결정하는 단계; 및
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 수신된 패킷을 폐기하는 단계;
상기 수신된 패킷의 유효 여부를 검증하는 단계는,
상기 장치 노드가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 상기 수신된 패킷이 수신된 타이밍에 속하는 시간 구간을 식별하는 단계;
상기 장치 노드가 상기 수신된 패킷에 포함된 상기 식별자를 추출하는 단계;
상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우, 상기 수신된 패킷을 유효 패킷으로 결정하는 단계; 및
상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하지 않는 경우, 상기 수신된 패킷을 폐기하는 단계;를 포함하는 CAN 통신 방법.
- 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
청구항 6에 따른 CAN 통신 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017096A KR102006296B1 (ko) | 2018-02-12 | 2018-02-12 | Can 통신 시스템 및 방법 |
PCT/KR2018/001961 WO2019156273A1 (ko) | 2018-02-12 | 2018-02-14 | Can 통신 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017096A KR102006296B1 (ko) | 2018-02-12 | 2018-02-12 | Can 통신 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102006296B1 true KR102006296B1 (ko) | 2019-10-01 |
Family
ID=67548310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180017096A KR102006296B1 (ko) | 2018-02-12 | 2018-02-12 | Can 통신 시스템 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102006296B1 (ko) |
WO (1) | WO2019156273A1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1087570B1 (en) * | 1999-09-22 | 2009-06-24 | Sony Corporation | Data transmission with error correction code and effective transmission time |
US20100260102A1 (en) * | 2009-04-10 | 2010-10-14 | Samsung Electronics Co., Ltd. | Communication protocol for wireless enhanced controller area networks |
KR101299396B1 (ko) * | 2006-10-18 | 2013-08-22 | 두산인프라코어 주식회사 | 건설기계 분산제어시스템 및 그 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3437990B2 (ja) * | 2000-03-17 | 2003-08-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 通信方法、通信端末、無線アドホックネットワークおよび携帯電話 |
KR101198724B1 (ko) * | 2007-06-05 | 2012-11-12 | 현대자동차주식회사 | 캔통신 에러 검출 및 대처방법 |
-
2018
- 2018-02-12 KR KR1020180017096A patent/KR102006296B1/ko active
- 2018-02-14 WO PCT/KR2018/001961 patent/WO2019156273A1/ko active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1087570B1 (en) * | 1999-09-22 | 2009-06-24 | Sony Corporation | Data transmission with error correction code and effective transmission time |
KR101299396B1 (ko) * | 2006-10-18 | 2013-08-22 | 두산인프라코어 주식회사 | 건설기계 분산제어시스템 및 그 방법 |
US20100260102A1 (en) * | 2009-04-10 | 2010-10-14 | Samsung Electronics Co., Ltd. | Communication protocol for wireless enhanced controller area networks |
Also Published As
Publication number | Publication date |
---|---|
WO2019156273A1 (ko) | 2019-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aliwa et al. | Cyberattacks and countermeasures for in-vehicle networks | |
Dibaei et al. | Attacks and defences on intelligent connected vehicles: A survey | |
Young et al. | Survey of automotive controller area network intrusion detection systems | |
Groza et al. | Security solutions for the controller area network: Bringing authentication to in-vehicle networks | |
Choi et al. | Identifying ecus using inimitable characteristics of signals in controller area networks | |
EP3113529B1 (en) | System and method for time based anomaly detection in an in-vehicle communication network | |
EP3407545B1 (en) | Evaluation device, evaluation system, and evaluation method | |
Martínez-Cruz et al. | Security on in-vehicle communication protocols: Issues, challenges, and future research directions | |
Bhatia et al. | Evading Voltage-Based Intrusion Detection on Automotive CAN. | |
JP2017017761A (ja) | ネットワーク通信システム | |
WO2016094703A1 (en) | Apparatuses and methods for security in broadcast serial buses | |
KR101972457B1 (ko) | Can 통신 기반 해킹공격 탐지 방법 및 시스템 | |
CN111935325B (zh) | 一种ota升级方法及装置 | |
CN112805968B (zh) | 车载通信装置、通信控制方法和通信控制程序 | |
KR101754951B1 (ko) | Can 통신 기반 해킹공격에 안전한 can 컨트롤러 | |
Nowdehi et al. | CASAD: CAN-aware stealthy-attack detection for in-vehicle networks | |
US20220182404A1 (en) | Intrusion path analysis device and intrusion path analysis method | |
Serag et al. | {ZBCAN}: A {Zero-Byte}{CAN} Defense System | |
KR102006296B1 (ko) | Can 통신 시스템 및 방법 | |
Kim et al. | Shadowauth: Backward-compatible automatic can authentication for legacy ecus | |
US20230379344A1 (en) | Information processing system, information processing method, and program | |
Carsten et al. | A system to recognize intruders in controller area network (can) | |
KR101825711B1 (ko) | Can 통신 기반 해킹공격에 안전한 can 컨트롤러 | |
KR20180039586A (ko) | Can 통신 기반 해킹공격에 안전한 can 컨트롤러 | |
Lu et al. | Security-aware real-time transmission for automotive can-fd networks |