KR102006296B1 - Can communication system and method - Google Patents
Can communication system and method 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
Abstract
Description
본 발명은 CAN(Controller Area Network) 통신 시스템 및 방법에 관한 것이다.The present invention relates to a controller area network (CAN) communication system and method.
오늘날의 자동차는 전자 제어 유닛(ECU: Electronic Control Unit)을 이용해 엔진뿐만 아니라 변속, 조향, 에어백 등을 제어하고 있다. 또한, 근래에 들어 차량은 탑승자의 조작뿐만 아니라 센서를 통해 주변 환경까지 고려하는 거대한 시스템이 되면서 다양한 디바이스 간 통신을 위해 CAN을 채용하고 있다.Today's cars use Electronic Control Units (ECUs) to control not only the engine, but also shifts, steering and airbags. In addition, in recent years, vehicles have become a huge system that considers not only the passenger's operation but also the surrounding environment through sensors, and employs CAN for communication between various devices.
기존의 차량에 구축된 네트워크는 폐쇄 네트워크로 여겨지고 있었다. 그러나, 차량이 탑승자의 스마트폰과 상호작용을 하고, 다가오는 미래에 사물인터넷 인프라가 보급되면서 도로 위의 각종 장치와 차량과 통신을 하게 되는 V2X(Vehicle To Everything) 기술이 도입된다면 차량 네트워크는 개방되어 있는 것과 다름이 없게 된다.The networks built on existing vehicles were considered closed networks. However, the vehicle network will be opened if the vehicle is interacting with the passenger's smartphone and the Vehicle To Everything (V2X) technology is introduced, which will communicate with various devices and vehicles on the road as IoT infrastructure spreads in the coming future. It is like being there.
이 경우, 개방형 차량 네트워크에 대한 접근으로 다양한 사이버 공격의 위협이 발생할 수 있으며, 이러한 사이버 공격은 차량의 오작동을 유발하여 인명이나 재산의 피해를 야기할 가능성이 있다.In this case, various cyber attacks may be threatened by access to an open vehicle network, and such cyber attacks may cause vehicle malfunctions and cause damage to life or property.
본 발명의 실시예는 차량이나 각종 전자 장비에 구축되는 CAN에 허가받지 않은 악의적인 공격이나 접근이 시도되는 경우 이를 탐지하여 네트워크를 보호할 수 있는 CAN 통신 시스템 및 방법을 제공하는 것을 목적으로 한다.An embodiment of the present invention is to provide a CAN communication system and method capable of detecting a malicious attack or access to a CAN constructed in a vehicle or various electronic equipment to protect the network.
본 발명의 일 실시예에 따른 CAN 통신 시스템은 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송하는 시스템 제어 모듈; 및 패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증하고, 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 적어도 하나의 장치 노드를 포함할 수 있다.A CAN communication system according to an embodiment of the present invention includes a system control module for executing a process in a processor to generate a packet and transmit the packet; And at least one device node receiving a packet to verify whether the received packet is valid and controlling the device to operate according to data included in the valid packet.
상기 시스템 제어 모듈은: 상기 프로세서의 처리를 미리 설정된 시간 단위마다 다수의 파티션으로 구분하고 각각의 파티션마다 해당 파티션에 대응하는 처리를 실행하여 패킷을 생성할 수 있다.The system control module may generate a packet by dividing a process of the processor into a plurality of partitions for each predetermined time unit and executing a process corresponding to the partition for each partition.
상기 시스템 제어 모듈은: 각각의 파티션마다 사전에 결정된 식별자를 패킷에 포함시켜 해당 파티션에 할당된 시간 내에 패킷을 전송할 수 있다.The system control module may include a predetermined identifier for each partition in the packet and transmit the packet within a time allocated to the partition.
상기 장치 노드는: 상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 유효 패킷으로 결정하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 수신된 패킷을 폐기할 수 있다.The device node may include: identifying a time interval to which a packet reception timing belongs among preset time intervals corresponding to each partition, and when the identified time interval is a preset time interval for the corresponding device node, The received packet may be determined to be a valid packet, and if the identified time interval is not a preset time interval for the device node, the received packet may be discarded.
상기 장치 노드는: 상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 수신된 패킷에 포함된 식별자를 추출하고, 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하고, 상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하면, 상기 수신된 패킷을 상기 유효 패킷으로 결정하고, 상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하지 않으면, 상기 수신된 패킷을 폐기할 수 있다.The device node may include: identifying a time interval to which a packet reception timing belongs among preset time intervals corresponding to each partition, extracting an identifier included in the received packet, and wherein the extracted identifier is the identification; And whether the extracted identifier corresponds to the pre-matched identifier, the received packet is determined as the valid packet, and the extracted identifier is determined. If it does not correspond to the previously matched identifier, the received packet may be discarded.
본 발명의 일 실시예에 따른 CAN 통신 방법은 프로세서에서 처리를 실행하여 시스템 제어 모듈이 패킷을 생성하는 단계; 상기 시스템 제어 모듈이 상기 패킷을 전송하는 단계; 장치 노드가 패킷을 수신하는 단계; 상기 장치 노드가 상기 수신된 패킷의 유효 여부를 검증하는 단계; 및 상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계를 포함할 수 있다.CAN communication method according to an embodiment of the present invention includes the steps of executing a process in the processor to generate a packet by the system control module; Sending, by the system control module, the packet; The device node receiving the packet; The device node verifying whether the received packet is valid; And controlling the device to operate according to data included in the valid packet.
본 발명의 실시예에 따른 CAN 통신 방법은 컴퓨터로 실행하기 위한 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 기록될 수 있다.The CAN communication method according to an embodiment of the present invention may be implemented as a program to be executed by a computer and recorded in a computer-readable recording medium.
본 발명의 실시예에 따르면, 통신 시스템의 복잡도 상승을 최소화하면서 네트워크에 대한 공격을 효율적으로 탐지하여 패킷의 유효성을 확인할 수 있다.According to an embodiment of the present invention, an attack on a network can be efficiently detected while minimizing an increase in the complexity of a communication system to confirm the validity of a packet.
도 1은 본 발명의 일 실시예에 따른 CAN 통신 시스템의 예시적인 블록도이다.
도 2는 본 발명의 일 실시예에 따른 시스템 제어 모듈과 장치 노드들의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 CAN 통신 방법의 예시적인 흐름도이다.1 is an exemplary block diagram of a CAN communication system in accordance with an embodiment of the present invention.
2 is a view for explaining the operation of the system control module and the device nodes according to an embodiment of the present invention.
3 is an exemplary flowchart of a CAN communication method according to an embodiment of the present invention.
이하, 본 발명의 실시 예를 첨부된 도면들을 참조하여 더욱 상세하게 설명한다. 본 발명의 실시 예는 여러 가지 형태로 변형할 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것으로 해석되어서는 안 된다. 본 실시 예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이다. 따라서 도면에서의 요소의 형상은 보다 명확한 설명을 강조하기 위해 과장되었다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The embodiments of the present invention can be modified in various forms, and the scope of the present invention should not be construed as being limited to the following embodiments. This embodiment is provided to more completely explain the present invention to those skilled in the art. Therefore, the shape of the elements in the drawings are exaggerated to emphasize a more clear description.
한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.On the other hand, the terms '~', '~', '~ block', '~ module', etc. used throughout the present specification may mean a unit for processing at least one function or operation. For example, it can mean a hardware component such as software, FPGA, or ASIC. However, '~', '~', '~ block', '~ module', etc. are not limited to software or hardware. '~', '~', '~', '~' May be configured to reside in an addressable storage medium or may be configured to play one or more processors.
따라서, 일 예로서 '~부', '~기', '~블록', '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈'들로 결합되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈'들로 더 분리될 수 있다.Thus, as an example, '~', '~', '~ block', '~ module' are components such as software components, object-oriented software components, class components, and task components. And processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and Contains variables The components and the functions provided within '~', '~', '~', '~', ',' ~ Module 'or may be further separated into additional components and' ~ part ',' ~ group ',' ~ block ',' ~ module '.
이하, 본 명세서에 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 CAN 통신 시스템(10)의 예시적인 블록도이다.1 is an exemplary block diagram of a
도 1을 참조하면, 상기 CAN 통신 시스템(10)은 시스템 제어 모듈(100) 및 적어도 하나의 장치 노드(200)를 포함한다.Referring to FIG. 1, the CAN
상기 시스템 제어 모듈(100)은 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송한다. 상기 장치 노드(200)는 패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증한다. 그리고, 상기 장치 노드(200)는 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어한다.The
상기 시스템 제어 모듈(100)과 상기 적어도 하나의 장치 노드(200)는 CAN(Controller Area Network)을 구성하여 서로 간에 패킷을 주고받으면서 장치를 제어하고 동작시킨다. 본 발명의 실시예에 따른 CAN 통신 시스템(10)은 차량에 적용될 수 있으나, CAN을 구축하여 운영하는 시스템이라면 본 발명의 실시예에 따른 CAN 통신 시스템(10)이 제한 없이 사용될 수 있다.The
만약 상기 CAN 통신 시스템(10)이 차량에 적용되어 사용되는 경우, 상기 시스템 제어 모듈(100)은 ECU(Electronic Control Unit)를 포함할 수 있다. 본 발명의 실시예에 따르면, 상기 ECU는 소정의 운영체제가 설치되어 프로세서에서 정해진 알고리즘에 따라 처리를 실행할 수 있다. 그 결과, 상기 시스템 제어 모듈(100)은 프로세서의 처리에 의해 패킷을 생성하고 상기 생성된 패킷을 전송할 수 있다.If the
도 2는 본 발명의 일 실시예에 따른 시스템 제어 모듈(100)과 장치 노드들(200)의 동작을 설명하기 위한 도면이다.2 is a view for explaining the operation of the
본 발명의 실시예에 따르면, 상기 시스템 제어 모듈(100)은 프로세서의 처리를 미리 설정된 시간 단위마다 다수의 파티션으로 구분할 수 있다.According to an embodiment of the present invention, the
예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 ECU에 구비된 프로세서에서 실행되는 처리를 소정의 클럭 수마다 서로 다른 파티션으로 구분할 수 있다.For example, referring to FIG. 2, the
그리고, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 해당 파티션에 대응하는 처리를 실행하여 패킷을 생성할 수 있다.The
예를 들어, 도 2에 도시된 바와 같이, 상기 시스템 제어 모듈(100)은 제 1 파티션에 해당하는 구간에서는 차량의 조향 장치에 관한 제 1 장치 노드(201)를 위한 처리를 실행하여 상기 제 1 장치 노드(201)의 동작에 관한 패킷을 생성할 수 있다.For example, as shown in FIG. 2, the
그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에 해당하는 구간에서는 차량의 계기판에 관한 제 2 장치 노드(202)를 위한 처리를 실행하여 상기 제 2 장치 노드(202)의 동작에 관한 패킷을 생성할 수 있다.In addition, the
이와 같이 상기 시스템 제어 모듈(100)은 하드웨어 리소스의 동작을 일정한 시간 간격으로 구분하여 각각의 구별된 파티션마다 서로 다른 장치 노드(200)를 위한 처리를 실행함으로써 해당 장치 노드에 관한 패킷을 생성할 수 있다.As such, the
나아가, 상기 시스템 제어 모듈(100)은 각각의 장치 노드(200)를 위한 파티션을 반복하여 실행할 수 있다. 예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 제 1 파티션부터 제 N 파티션을 순차적으로 실행한 후, 다시 제 1 파티션부터 제 N 파티션까지의 실행을 반복할 수 있다.In addition, the
본 발명의 일 실시예에 따르면, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 사전에 결정된 식별자를 패킷에 포함시켜 해당 파티션에 할당된 시간 내에 패킷을 전송할 수 있다.According to an embodiment of the present invention, the
예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 제 1 파티션에서 상기 제 1 장치 노드(201)를 위한 처리를 실행하여 패킷을 생성하되, 해당 패킷에 제 1 파티션과 매칭된 식별자를 포함시켜 패킷을 구성할 수 있다.For example, referring to FIG. 2, the
그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에서 상기 제 2 장치 노드(202)를 위한 처리를 실행하여 패킷을 생성하되, 해당 패킷에 제 2 파티션과 매칭된 식별자를 포함시켜 패킷을 구성할 수 있다.The
이 실시예에 따르면, 각각의 파티션마다 패킷에 포함되는 식별자는 CAN 프로토콜에 정의된 중재 ID(Arbitration ID)일 수 있다. 이 경우, 상기 시스템 제어 모듈(100)은 각각의 파티션에 대응하는 장치 노드(200)와 관련하여 중재 ID를 생성하고, 상기 생성된 중재 ID와 해당 장치 노드를 제어하기 위한 데이터를 패킷에 포함시켜 패킷을 구성할 수 있다.According to this embodiment, the identifier included in the packet for each partition may be an Arbitration ID defined in the CAN protocol. In this case, the
그러고 나서, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 생성된 패킷을 해당 파티션에 할당된 시간 내에 전송한다. 즉, 상기 시스템 제어 모듈(100)은 제 1 파티션에서 생성된 상기 제 1 장치 노드(201)를 위한 패킷을 제 1 파티션에 해당하는 시간 구간 내에 전송한다. 그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에서 생성된 상기 제 2 장치 노드(202)를 위한 패킷을 제 2 파티션에 해당하는 시간 구간 내에 전송한다.Then, the
상기 장치 노드(200)는 상기 시스템 제어 모듈(100)로부터 전송된 패킷을 수신하여 유효 여부를 검증한다.The
본 발명의 일 실시예에 따르면, 상기 장치 노드(200)는 패킷이 수신된 타이밍이 속하는 시간 구간을 식별함으로써 상기 수신된 패킷의 유효 여부를 검증할 수 있다.According to an embodiment of the present invention, the
구체적으로, 상기 장치 노드(200)는 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 상기 유효 패킷으로 결정할 수 있다. 그렇지 않고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 장치 노드(200)는 상기 수신된 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.In detail, the
예를 들어, 도 2를 참조하면, 상기 제 1 장치 노드(201)가 해당 장치 노드에 매칭된 제 1 파티션에 대응하는 제 1 시간 구간(즉, 제 1 파티션이 시작되는 타이밍으로부터 제 1 파티션이 종료하는 타이밍까지의 시간 구간) 내에서 제 1 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 1 패킷을 유효 패킷으로 결정할 수 있다.For example, referring to FIG. 2, the
그러나, 상기 제 1 장치 노드(201)가 해당 장치 노드에 매칭된 제 1 파티션이 아닌 제 2 파티션에 대응하는 제 2 시간 구간(즉, 제 2 파티션이 시작되는 타이밍으로부터 제 2 파티션이 종료하는 타이밍까지의 시간 구간) 내에서 제 2 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 2 패킷을 공격 패킷으로 결정하고 상기 제 2 패킷을 폐기할 수 있다.However, when the
마찬가지로, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션에 대응하는 제 2 시간 구간 내에서 제 4 패킷을 수신한 경우, 상기 제 2 장치 노드(202)는 상기 수신된 제 4 패킷을 유효 패킷으로 결정할 수 있다.Similarly, when the
그러나, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션이 아닌 제 1 파티션에 대응하는 제 1 시간 구간 내에서 제 5 패킷을 수신한 경우, 상기 제 2 장치 노드(202)는 상기 수신된 제 5 패킷을 공격 패킷으로 결정하고 상기 제 5 패킷을 폐기할 수 있다.However, when the
이와 같이 본 발명의 일 실시예에서 상기 장치 노드(200)는 각각의 장치 노드에 매칭된 파티션에 대응하는 시간 구간에서 수신된 패킷을 유효 패킷으로 결정하고 그렇지 않은 패킷을 공격 패킷으로 간주하여 폐기할 수 있다.As such, in one embodiment of the present invention, the
나아가, 본 발명의 다른 실시예에 따르면, 패킷이 수신된 타이밍이 속하는 시간 구간과 패킷에 포함된 식별자를 기반으로 유효 패킷을 검증할 수도 있다.Furthermore, according to another embodiment of the present invention, the valid packet may be verified based on the time interval to which the packet is received and the identifier included in the packet.
구체적으로, 상기 장치 노드(200)는 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별할 수 있다. 그리고, 상기 장치 노드(200)는 상기 수신된 패킷에 포함된 식별자를 추출하고, 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별할 수 있다.In detail, the
만약 상기 추출된 식별자가 사전에 매칭된 식별자에 해당하면, 상기 장치 노드(200)는 상기 수신된 패킷을 유효 패킷으로 결정할 수 있다. 그렇지 않고, 상기 추출된 식별자가 사전에 매칭된 식별자에 해당하지 않으면, 상기 장치 노드(200)는 상기 수신된 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.If the extracted identifier corresponds to a previously matched identifier, the
예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)이 제 1 파티션에서 상기 제 1 장치 노드(201)를 위해 제 1 패킷을 생성하고 그 패킷 안에 제 1 파티션에 매칭된 식별자를 포함시켜 제 1 파티션에 해당하는 시간 구간 안에 전송한 경우, 상기 제 1 장치 노드(201)는 제 1 패킷을 수신하여 패킷이 수신된 타이밍이 속하는 시간 구간(즉, 제 1 파티션에 해당하는 제 1 시간 구간)을 식별하고 제 1 패킷에 포함된 식별자를 추출할 수 있다.For example, referring to FIG. 2, the
그 뒤, 상기 제 1 장치 노드(201)는 제 1 패킷으로부터 추출된 식별자가 상기 식별된 시간 구간인 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별할 수 있다.Thereafter, the
여기서, 상기 추출된 식별자가 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 1 패킷을 유효 패킷으로 결정할 수 있다.Here, when the extracted identifier corresponds to an identifier previously matched with respect to the first time interval, the
반면, 상기 제 1 장치 노드(201)가 제 1 파티션에 해당하는 제 1 시간 구간에서 또 다른 패킷인 제 3 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 제 3 패킷이 수신된 타이밍이 속하는 시간 구간(즉, 제 1 시간 구간)을 식별하고 제 3 패킷에 포함된 식별자를 추출할 수 있다.On the other hand, when the
그 뒤, 상기 제 1 장치 노드(201)는 제 3 패킷으로부터 추출된 식별자가 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하여 제 3 패킷의 유효 여부를 검증할 수 있다.Thereafter, the
만약 제 3 패킷이 상기 제 1 장치 노드(201)에 대하여 미리 설정된 제 1 시간 구간 내에 수신되었더라도 해당 패킷 안에 포함된 식별자(식별자 C)가 제 1 시간 구간에 대하여 사전에 매칭된 식별자(식별자 A)에 해당하지 않는 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 3 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.If a third packet is received within the first time interval preset for the
마찬가지로, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션에 대응하는 제 2 시간 구간 내에서 제 4 패킷과 제 6 패킷을 수신한 경우, 제 4 패킷에 포함된 식별자(식별자 D)가 제 2 시간 구간에 대하여 사전에 매칭된 식별자(식별자 D)에 해당하므로 상기 제 2 장치 노드(202)는 상기 수신된 제 4 패킷을 유효 패킷으로 결정할 수 있다. 반면, 제 6 패킷에 포함된 식별자(식별자 F)는 제 2 시간 구간에 대하여 사전에 매칭된 식별자(식별자 D)에 해당하지 않으므로, 상기 제 2 장치 노드(202)는 상기 수신된 제 6 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.Similarly, when the
이와 같이 본 발명의 다른 실시예에서 상기 장치 노드(200)는 패킷이 수신된 시간 구간과 해당 패킷에 포함된 식별자를 기반으로 상기 시스템 제어 모듈(100)에 의해 생성되어 전송된 유효 패킷과 그렇지 않은 공격 패킷을 구분함으로써 네트워크에 대한 공격을 효율적으로 탐지하고 보안을 유지할 수 있다.As such, according to another embodiment of the present invention, the
도 3은 본 발명의 일 실시예에 따른 CAN 통신 방법(1000)의 예시적인 흐름도이다.3 is an exemplary flowchart of a
상기 CAN 통신 방법(1000)은 앞서 설명한 본 발명의 실시예에 따른 CAN 통신 시스템(10)에 의해 실행된다.The
본 발명의 일 실시예에 따른 CAN 통신 방법(1000)은 프로세서에서 처리를 실행하여 상기 시스템 제어 모듈(100)이 패킷을 생성하는 단계, 상기 장치 노드(200)가 패킷을 수신하는 단계, 상기 장치 노드(200)가 상기 수신된 패킷의 유효 여부를 검증하는 단계, 및 상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계를 포함한다.In the
구체적으로, 도 3을 참조하면, 상기 CAN 통신 방법(1000)은 상기 시스템 제어 모듈(100)이 해당 파티션에 대하여 사전에 결정된 식별자를 포함시켜 패킷을 생성하는 단계(S1100), 상기 시스템 제어 모듈(100)이 식별자가 포함된 패킷을 해당 파티션에 할당된 시간 내에 전송하는 단계(S1200), 상기 장치 노드(200)가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하는 단계(S1300), 상기 장치 노드(200)가 상기 수신된 패킷에 포함된 식별자를 추출하는 단계(S1400), 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우(S1500에서 예), 상기 수신된 패킷을 유효 패킷으로 결정하는 단계(S1610), 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하지 않는 경우(S1500에서 아니오), 상기 수신된 패킷을 폐기하는 단계(S1620), 및 상기 장치 노드(200)가 상기 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계(S1700)를 포함할 수 있다.Specifically, referring to FIG. 3, in the
이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내어 설명하는 것이며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위내에서 변경 또는 수정이 가능하다. 저술한 실시예는 본 발명의 기술적 사상을 구현하기 위한 최선의 상태를 설명하는 것이며, 본 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.The foregoing detailed description illustrates the present invention. In addition, the above-mentioned contents show preferred embodiments of the present invention, and the present invention can be used in various other combinations, modifications, and environments. That is, changes or modifications may be made within the scope of the concept of the invention disclosed in the present specification, the scope equivalent to the disclosures described above, and / or the skill or knowledge in the art. The described embodiments illustrate the best state for implementing the technical idea of the present invention, and various modifications required in the specific application field and use of the present invention are possible. Thus, the detailed description of the invention is not intended to limit the invention to the disclosed embodiments. Also, the appended claims should be construed to include other embodiments.
10: CAN 통신 시스템
100: 시스템 제어 모듈
200: 장치 노드
201: 제 1 장치 노드
202: 제 2 장치 노드10: CAN communication system
100: system control module
200: device node
201: first device node
202: second device node
Claims (7)
패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증하고, 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 적어도 하나의 장치 노드를 포함하되,
상기 시스템 제어 모듈은,
상기 프로세서의 처리를 기 설정된 시간 단위마다 다수의 파티션으로 구분하고, 각각의 파티션마다 해당 파티션에 대응하는 처리를 반복하여 실행하고,
상기 시스템 제어 모듈은,
각각의 파티션에 대응하는 상기 장치 노드를 제어하기 위한 데이터를 생성하고,
상기 시스템 제어 모듈은,
각각의 파티션과 매칭되고, 각각의 파티션에 대응하는 상기 장치 노드와 관련된 중재 ID를 포함하는 식별자를 생성하고,
상기 시스템 제어 모듈은,
각각의 파티션마다 생성된 상기 식별자와 상기 장치 노드를 제어하기 위한 데이터를 포함하는 패킷을 생성하고, 상기 패킷을 해당 파티션에 할당된 시간 내에 상기 장치 노드로 전송하고,
상기 장치 노드는,
상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고,
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 유효 패킷으로 결정하고,
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 수신된 패킷을 폐기하고,
상기 장치 노드는,
상기 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고,
상기 수신된 패킷에 포함된 식별자를 추출하고,
상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하고,
상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하면, 상기 수신된 패킷을 상기 유효 패킷으로 결정하고,
상기 추출된 식별자가 상기 사전에 매칭된 식별자에 해당하지 않으면, 상기 수신된 패킷을 폐기하는 CAN 통신 시스템.
A system control module for executing a process in a processor to generate a packet and to transmit the packet; And
At least one device node for receiving a packet to verify the validity of the received packet, and to control the device to operate according to the data contained in the valid packet,
The system control module,
The process of the processor is divided into a plurality of partitions for each predetermined time unit, and the processing corresponding to the partition is repeatedly executed for each partition
The system control module,
Generate data for controlling the device node corresponding to each partition,
The system control module,
Generate an identifier that matches each partition and includes an arbitration ID associated with the device node corresponding to each partition,
The system control module,
Generating a packet including the identifier generated for each partition and data for controlling the device node, transmitting the packet to the device node within a time allocated to the partition;
The device node,
Identifying a time interval to which a packet reception timing belongs among preset time intervals corresponding to each partition,
If the identified time interval is a time interval preset for the device node, determine the received packet as a valid packet,
If the identified time interval is not a preset time interval for the device node, discard the received packet,
The device node,
Identifying a time interval to which a packet reception timing belongs among preset time intervals corresponding to each partition,
Extract an identifier included in the received packet,
Determine whether the extracted identifier corresponds to a previously matched identifier for the identified time interval,
If the extracted identifier corresponds to the previously matched identifier, determine the received packet as the valid packet,
And if the extracted identifier does not correspond to the previously matched identifier, discard the received packet.
장치 노드가 패킷을 수신하는 단계;
상기 장치 노드가 상기 수신된 패킷의 유효 여부를 검증하는 단계; 및
상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계;를 포함하되,
상기 패킷을 생성하는 단계는,
상기 시스템 제어 모듈이 프로세서의 처리를 기 설정된 시간 단위마다 다수의 파티션으로 구분하는 단계;
상기 시스템 제어 모듈이 각각의 파티션마다 해당 파티션에 대응하는 처리를 반복하여 실행하는 단계;
상기 시스템 제어 모듈이 각각의 파티션에 대응하는 상기 장치 노드를 제어하기 위한 데이터를 생성하는 단계;
시스템 제어 모듈이 각각의 파티션과 매칭되고, 각각의 파티션에 대응하는 상기 장치 노드와 관련된 중재 ID를 포함하는 식별자를 생성하는 단계;
시스템 제어 모듈이 각각의 파티션마다 생성된 상기 식별자와 상기 장치 노드를 제어하기 위한 데이터를 포함하는 패킷을 생성하는 단계; 및
상기 시스템 제어 모듈이 상기 식별자와 상기 장치 노드를 제어하기 위한 데이터가 포함된 패킷을 해당 파티션에 할당된 시간 내에 전송하는 단계;를 포함하고,
상기 수신된 패킷의 유효 여부를 검증하는 단계는,
상기 장치 노드가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 상기 수신된 패킷이 수신된 타이밍에 속하는 시간 구간을 식별하는 단계;
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 유효 패킷으로 결정하는 단계; 및
상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 수신된 패킷을 폐기하는 단계;
상기 수신된 패킷의 유효 여부를 검증하는 단계는,
상기 장치 노드가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 상기 수신된 패킷이 수신된 타이밍에 속하는 시간 구간을 식별하는 단계;
상기 장치 노드가 상기 수신된 패킷에 포함된 상기 식별자를 추출하는 단계;
상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우, 상기 수신된 패킷을 유효 패킷으로 결정하는 단계; 및
상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하지 않는 경우, 상기 수신된 패킷을 폐기하는 단계;를 포함하는 CAN 통신 방법.
Executing processing in a processor to generate a packet by the system control module;
The device node receiving the packet;
The device node verifying whether the received packet is valid; And
And controlling, by the device node, the device to operate according to data included in a valid packet.
Generating the packet,
Dividing, by the system control module, the processing of the processor into a plurality of partitions for each predetermined time unit;
Repeating, by the system control module, a process corresponding to the partition for each partition;
Generating, by the system control module, data for controlling the device node corresponding to each partition;
The system control module generating an identifier that matches each partition and includes an arbitration ID associated with the device node corresponding to each partition;
Generating, by the system control module, a packet including the identifier generated for each partition and data for controlling the device node; And
And transmitting, by the system control module, a packet including data for controlling the identifier and the device node within a time allocated to the partition.
Verifying whether the received packet is valid,
Identifying, by the device node, a time interval belonging to a timing at which the received packet is received among preset time intervals corresponding to each partition;
Determining the received packet as a valid packet when the identified time interval is a preset time interval for the device node; And
Discarding the received packet if the identified time interval is not a preset time interval for the device node;
Verifying whether the received packet is valid,
Identifying, by the device node, a time interval belonging to a timing at which the received packet is received among preset time intervals corresponding to each partition;
The device node extracting the identifier included in the received packet;
If the extracted identifier corresponds to an identifier previously matched for the identified time interval, determining the received packet as a valid packet; And
Discarding the received packet if the extracted identifier does not correspond to a previously matched identifier for the identified time interval.
청구항 6에 따른 CAN 통신 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 기록 매체.In the computer-readable recording medium,
A recording medium having recorded thereon a program for executing a CAN communication method according to claim 6 with a computer.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017096A KR102006296B1 (en) | 2018-02-12 | 2018-02-12 | Can communication system and method |
PCT/KR2018/001961 WO2019156273A1 (en) | 2018-02-12 | 2018-02-14 | Can communication system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017096A KR102006296B1 (en) | 2018-02-12 | 2018-02-12 | Can communication system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102006296B1 true KR102006296B1 (en) | 2019-10-01 |
Family
ID=67548310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180017096A KR102006296B1 (en) | 2018-02-12 | 2018-02-12 | Can communication system and method |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102006296B1 (en) |
WO (1) | WO2019156273A1 (en) |
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 (en) * | 2006-10-18 | 2013-08-22 | 두산인프라코어 주식회사 | Distributed control system for construction equipment and method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3437990B2 (en) * | 2000-03-17 | 2003-08-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Communication method, communication terminal, wireless ad hoc network, and mobile phone |
KR101198724B1 (en) * | 2007-06-05 | 2012-11-12 | 현대자동차주식회사 | Error Detection Method for robust CAN communication in Vehicles |
-
2018
- 2018-02-12 KR KR1020180017096A patent/KR102006296B1/en active
- 2018-02-14 WO PCT/KR2018/001961 patent/WO2019156273A1/en 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 (en) * | 2006-10-18 | 2013-08-22 | 두산인프라코어 주식회사 | Distributed control system for construction equipment and method thereof |
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 (en) | 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 | |
KR102243114B1 (en) | Real-time frame authentication using id anonymization in automotive networks | |
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 (en) | Network communication system | |
WO2020047016A1 (en) | Virtualized controllers for in-vehicle and iot networks | |
WO2016094703A1 (en) | Apparatuses and methods for security in broadcast serial buses | |
KR101972457B1 (en) | Method and System for detecting hacking attack based on the CAN protocol | |
CN111935325B (en) | OTA (over the air) upgrading method and device | |
CN112805968B (en) | In-vehicle communication device, communication control method, and communication control program | |
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 (en) | Can communication system and method | |
Kim et al. | Shadowauth: Backward-compatible automatic can authentication for legacy ecus | |
KR101825711B1 (en) | A CAN controller secured from hacking attack based on the CAN protocol | |
KR102204656B1 (en) | A mitigation system against message flooding attacks for secure controller area network by predicting transfer delay of normal can message | |
Lu et al. | Security-aware real-time transmission for automotive can-fd networks | |
KR102056641B1 (en) | Sdn controller for resolving arp poisoning attack and method for managing the same |