KR102006296B1 - Can communication system and method - Google Patents

Can communication system and method Download PDF

Info

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
Application number
KR1020180017096A
Other languages
Korean (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 KR1020180017096A priority Critical patent/KR102006296B1/en
Priority to PCT/KR2018/001961 priority patent/WO2019156273A1/en
Application granted granted Critical
Publication of KR102006296B1 publication Critical patent/KR102006296B1/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • 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

Abstract

The present invention relates to a controller area network (CAN) communication system and method. According to an embodiment of the present invention, the CAN communication system may comprise: a system control module for executing a process in a processor to generate a packet and transmitting the packet; and at least one device node for receiving a packet to verify whether the received packet is valid, and to control a device to operate according to data contained in the valid packet.

Description

CAN 통신 시스템 및 방법{CAN COMMUNICATION SYSTEM AND METHOD}CAN communication system and method {CAN COMMUNICATION SYSTEM AND METHOD}

본 발명은 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 CAN communication system 10 in accordance with an embodiment of the present invention.

도 1을 참조하면, 상기 CAN 통신 시스템(10)은 시스템 제어 모듈(100) 및 적어도 하나의 장치 노드(200)를 포함한다.Referring to FIG. 1, the CAN communication system 10 includes a system control module 100 and at least one device node 200.

상기 시스템 제어 모듈(100)은 프로세서에서 처리를 실행하여 패킷을 생성하고 상기 패킷을 전송한다. 상기 장치 노드(200)는 패킷을 수신하여 상기 수신된 패킷의 유효 여부를 검증한다. 그리고, 상기 장치 노드(200)는 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어한다.The system control module 100 executes processing in a processor to generate a packet and transmit the packet. The device node 200 receives a packet and verifies whether the received packet is valid. The device node 200 controls the device to operate according to the data included in the valid packet.

상기 시스템 제어 모듈(100)과 상기 적어도 하나의 장치 노드(200)는 CAN(Controller Area Network)을 구성하여 서로 간에 패킷을 주고받으면서 장치를 제어하고 동작시킨다. 본 발명의 실시예에 따른 CAN 통신 시스템(10)은 차량에 적용될 수 있으나, CAN을 구축하여 운영하는 시스템이라면 본 발명의 실시예에 따른 CAN 통신 시스템(10)이 제한 없이 사용될 수 있다.The system control module 100 and the at least one device node 200 form a controller area network (CAN) to control and operate devices while exchanging packets with each other. The CAN communication system 10 according to an embodiment of the present invention may be applied to a vehicle, but the CAN communication system 10 according to an embodiment of the present invention may be used without limitation as long as the system is constructed and operated.

만약 상기 CAN 통신 시스템(10)이 차량에 적용되어 사용되는 경우, 상기 시스템 제어 모듈(100)은 ECU(Electronic Control Unit)를 포함할 수 있다. 본 발명의 실시예에 따르면, 상기 ECU는 소정의 운영체제가 설치되어 프로세서에서 정해진 알고리즘에 따라 처리를 실행할 수 있다. 그 결과, 상기 시스템 제어 모듈(100)은 프로세서의 처리에 의해 패킷을 생성하고 상기 생성된 패킷을 전송할 수 있다.If the CAN communication system 10 is applied to and used in a vehicle, the system control module 100 may include an ECU (Electronic Control Unit). According to an embodiment of the present invention, the ECU may be installed with a predetermined operating system to execute a process according to an algorithm determined by a processor. As a result, the system control module 100 may generate a packet by a processor and transmit the generated packet.

도 2는 본 발명의 일 실시예에 따른 시스템 제어 모듈(100)과 장치 노드들(200)의 동작을 설명하기 위한 도면이다.2 is a view for explaining the operation of the system control module 100 and the device nodes 200 according to an embodiment of the present invention.

본 발명의 실시예에 따르면, 상기 시스템 제어 모듈(100)은 프로세서의 처리를 미리 설정된 시간 단위마다 다수의 파티션으로 구분할 수 있다.According to an embodiment of the present invention, the system control module 100 may divide the processing of the processor into a plurality of partitions for each predetermined time unit.

예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 ECU에 구비된 프로세서에서 실행되는 처리를 소정의 클럭 수마다 서로 다른 파티션으로 구분할 수 있다.For example, referring to FIG. 2, the system control module 100 may divide a process executed in a processor included in an ECU into different partitions for each predetermined number of clocks.

그리고, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 해당 파티션에 대응하는 처리를 실행하여 패킷을 생성할 수 있다.The system control module 100 may generate a packet by executing a process corresponding to the partition for each partition.

예를 들어, 도 2에 도시된 바와 같이, 상기 시스템 제어 모듈(100)은 제 1 파티션에 해당하는 구간에서는 차량의 조향 장치에 관한 제 1 장치 노드(201)를 위한 처리를 실행하여 상기 제 1 장치 노드(201)의 동작에 관한 패킷을 생성할 수 있다.For example, as shown in FIG. 2, the system control module 100 executes processing for the first device node 201 regarding the steering device of the vehicle in the section corresponding to the first partition to perform the first operation. A packet regarding the operation of the device node 201 may be generated.

그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에 해당하는 구간에서는 차량의 계기판에 관한 제 2 장치 노드(202)를 위한 처리를 실행하여 상기 제 2 장치 노드(202)의 동작에 관한 패킷을 생성할 수 있다.In addition, the system control module 100 performs a process for the second device node 202 related to the instrument panel of the vehicle in a section corresponding to the second partition to transmit a packet regarding the operation of the second device node 202. Can be generated.

이와 같이 상기 시스템 제어 모듈(100)은 하드웨어 리소스의 동작을 일정한 시간 간격으로 구분하여 각각의 구별된 파티션마다 서로 다른 장치 노드(200)를 위한 처리를 실행함으로써 해당 장치 노드에 관한 패킷을 생성할 수 있다.As such, the system control module 100 may generate a packet regarding the corresponding device node by performing a process for different device nodes 200 for each partition by dividing the operation of hardware resources at regular time intervals. have.

나아가, 상기 시스템 제어 모듈(100)은 각각의 장치 노드(200)를 위한 파티션을 반복하여 실행할 수 있다. 예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 제 1 파티션부터 제 N 파티션을 순차적으로 실행한 후, 다시 제 1 파티션부터 제 N 파티션까지의 실행을 반복할 수 있다.In addition, the system control module 100 may repeatedly execute a partition for each device node 200. For example, referring to FIG. 2, the system control module 100 may sequentially execute the first partition to the Nth partition, and then repeat the execution of the first partition to the Nth partition.

본 발명의 일 실시예에 따르면, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 사전에 결정된 식별자를 패킷에 포함시켜 해당 파티션에 할당된 시간 내에 패킷을 전송할 수 있다.According to an embodiment of the present invention, the system control module 100 may transmit a packet within a time allocated to the partition by including a predetermined identifier in the packet for each partition.

예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)은 제 1 파티션에서 상기 제 1 장치 노드(201)를 위한 처리를 실행하여 패킷을 생성하되, 해당 패킷에 제 1 파티션과 매칭된 식별자를 포함시켜 패킷을 구성할 수 있다.For example, referring to FIG. 2, the system control module 100 generates a packet by executing a process for the first device node 201 in a first partition, and matches the packet with the first partition. You can construct a packet by including an identifier.

그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에서 상기 제 2 장치 노드(202)를 위한 처리를 실행하여 패킷을 생성하되, 해당 패킷에 제 2 파티션과 매칭된 식별자를 포함시켜 패킷을 구성할 수 있다.The system control module 100 generates a packet by executing a process for the second device node 202 in a second partition, and configures the packet by including an identifier matched with the second partition in the packet. Can be.

이 실시예에 따르면, 각각의 파티션마다 패킷에 포함되는 식별자는 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 system control module 100 generates an arbitration ID in association with the device node 200 corresponding to each partition, and includes the generated arbitration ID and data for controlling the corresponding device node in a packet. You can construct a packet.

그러고 나서, 상기 시스템 제어 모듈(100)은 각각의 파티션마다 생성된 패킷을 해당 파티션에 할당된 시간 내에 전송한다. 즉, 상기 시스템 제어 모듈(100)은 제 1 파티션에서 생성된 상기 제 1 장치 노드(201)를 위한 패킷을 제 1 파티션에 해당하는 시간 구간 내에 전송한다. 그리고, 상기 시스템 제어 모듈(100)은 제 2 파티션에서 생성된 상기 제 2 장치 노드(202)를 위한 패킷을 제 2 파티션에 해당하는 시간 구간 내에 전송한다.Then, the system control module 100 transmits the packet generated for each partition within the time allotted to the partition. That is, the system control module 100 transmits a packet for the first device node 201 generated in the first partition within a time interval corresponding to the first partition. The system control module 100 transmits a packet for the second device node 202 generated in the second partition within a time period corresponding to the second partition.

상기 장치 노드(200)는 상기 시스템 제어 모듈(100)로부터 전송된 패킷을 수신하여 유효 여부를 검증한다.The device node 200 receives a packet transmitted from the system control module 100 and verifies whether it is valid.

본 발명의 일 실시예에 따르면, 상기 장치 노드(200)는 패킷이 수신된 타이밍이 속하는 시간 구간을 식별함으로써 상기 수신된 패킷의 유효 여부를 검증할 수 있다.According to an embodiment of the present invention, the device node 200 may verify whether the received packet is valid by identifying a time interval to which the packet is received.

구체적으로, 상기 장치 노드(200)는 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간인 경우, 상기 수신된 패킷을 상기 유효 패킷으로 결정할 수 있다. 그렇지 않고, 상기 식별된 시간 구간이 해당 장치 노드에 대하여 미리 설정된 시간 구간이 아닌 경우, 상기 장치 노드(200)는 상기 수신된 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.In detail, the device node 200 identifies a time interval to which a packet reception timing belongs among preset time intervals corresponding to each partition, and the identified time interval is a time interval preset for the device node. In the case, the received packet may be determined as the valid packet. Otherwise, if the identified time interval is not a preset time interval for the device node, the device node 200 may determine the received packet as an attack packet and discard it.

예를 들어, 도 2를 참조하면, 상기 제 1 장치 노드(201)가 해당 장치 노드에 매칭된 제 1 파티션에 대응하는 제 1 시간 구간(즉, 제 1 파티션이 시작되는 타이밍으로부터 제 1 파티션이 종료하는 타이밍까지의 시간 구간) 내에서 제 1 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 1 패킷을 유효 패킷으로 결정할 수 있다.For example, referring to FIG. 2, the first device node 201 may include a first time interval corresponding to the first partition matched with the corresponding device node (that is, the first partition may be deleted from the timing at which the first partition starts). When the first packet is received within the time interval until the termination timing, the first device node 201 may determine the received first packet as a valid packet.

그러나, 상기 제 1 장치 노드(201)가 해당 장치 노드에 매칭된 제 1 파티션이 아닌 제 2 파티션에 대응하는 제 2 시간 구간(즉, 제 2 파티션이 시작되는 타이밍으로부터 제 2 파티션이 종료하는 타이밍까지의 시간 구간) 내에서 제 2 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 2 패킷을 공격 패킷으로 결정하고 상기 제 2 패킷을 폐기할 수 있다.However, when the first device node 201 ends a second time interval corresponding to the second partition that is not the first partition matched with the corresponding device node (that is, the timing at which the second partition ends from the timing at which the second partition starts). When the second packet is received within the time interval of), the first device node 201 may determine the received second packet as an attack packet and discard the second packet.

마찬가지로, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션에 대응하는 제 2 시간 구간 내에서 제 4 패킷을 수신한 경우, 상기 제 2 장치 노드(202)는 상기 수신된 제 4 패킷을 유효 패킷으로 결정할 수 있다.Similarly, when the second device node 202 receives a fourth packet within a second time interval corresponding to a second partition matched to the device node, the second device node 202 receives the received first packet. 4 packets can be determined as valid packets.

그러나, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션이 아닌 제 1 파티션에 대응하는 제 1 시간 구간 내에서 제 5 패킷을 수신한 경우, 상기 제 2 장치 노드(202)는 상기 수신된 제 5 패킷을 공격 패킷으로 결정하고 상기 제 5 패킷을 폐기할 수 있다.However, when the second device node 202 receives the fifth packet within the first time interval corresponding to the first partition that is not the second partition matched with the device node, the second device node 202 May determine the received fifth packet as an attack packet and discard the fifth packet.

이와 같이 본 발명의 일 실시예에서 상기 장치 노드(200)는 각각의 장치 노드에 매칭된 파티션에 대응하는 시간 구간에서 수신된 패킷을 유효 패킷으로 결정하고 그렇지 않은 패킷을 공격 패킷으로 간주하여 폐기할 수 있다.As such, in one embodiment of the present invention, the device node 200 determines a packet received in a time interval corresponding to a partition matched to each device node as a valid packet, and discards a packet not considered as an attack packet. Can be.

나아가, 본 발명의 다른 실시예에 따르면, 패킷이 수신된 타이밍이 속하는 시간 구간과 패킷에 포함된 식별자를 기반으로 유효 패킷을 검증할 수도 있다.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 device node 200 may identify a time section to which a packet reception timing belongs among preset time sections corresponding to each partition. The device node 200 may extract an identifier included in the received packet, and determine whether the extracted identifier corresponds to a previously matched identifier for the identified time interval.

만약 상기 추출된 식별자가 사전에 매칭된 식별자에 해당하면, 상기 장치 노드(200)는 상기 수신된 패킷을 유효 패킷으로 결정할 수 있다. 그렇지 않고, 상기 추출된 식별자가 사전에 매칭된 식별자에 해당하지 않으면, 상기 장치 노드(200)는 상기 수신된 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.If the extracted identifier corresponds to a previously matched identifier, the device node 200 may determine the received packet as a valid packet. Otherwise, if the extracted identifier does not correspond to a previously matched identifier, the device node 200 may determine and discard the received packet as an attack packet.

예를 들어, 도 2를 참조하면, 상기 시스템 제어 모듈(100)이 제 1 파티션에서 상기 제 1 장치 노드(201)를 위해 제 1 패킷을 생성하고 그 패킷 안에 제 1 파티션에 매칭된 식별자를 포함시켜 제 1 파티션에 해당하는 시간 구간 안에 전송한 경우, 상기 제 1 장치 노드(201)는 제 1 패킷을 수신하여 패킷이 수신된 타이밍이 속하는 시간 구간(즉, 제 1 파티션에 해당하는 제 1 시간 구간)을 식별하고 제 1 패킷에 포함된 식별자를 추출할 수 있다.For example, referring to FIG. 2, the system control module 100 generates a first packet for the first device node 201 in a first partition and includes an identifier that matches the first partition in the packet. In this case, the first device node 201 receives a first packet, and thus, a time period (ie, a first time corresponding to the first partition) to which the packet is received. Section) and extract the identifier included in the first packet.

그 뒤, 상기 제 1 장치 노드(201)는 제 1 패킷으로부터 추출된 식별자가 상기 식별된 시간 구간인 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별할 수 있다.Thereafter, the first device node 201 may determine whether the identifier extracted from the first packet corresponds to an identifier previously matched with respect to the first time interval that is the identified time interval.

여기서, 상기 추출된 식별자가 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 1 패킷을 유효 패킷으로 결정할 수 있다.Here, when the extracted identifier corresponds to an identifier previously matched with respect to the first time interval, the first device node 201 may determine the received first packet as a valid packet.

반면, 상기 제 1 장치 노드(201)가 제 1 파티션에 해당하는 제 1 시간 구간에서 또 다른 패킷인 제 3 패킷을 수신한 경우, 상기 제 1 장치 노드(201)는 제 3 패킷이 수신된 타이밍이 속하는 시간 구간(즉, 제 1 시간 구간)을 식별하고 제 3 패킷에 포함된 식별자를 추출할 수 있다.On the other hand, when the first device node 201 receives a third packet, which is another packet in a first time interval corresponding to the first partition, the first device node 201 is the timing at which the third packet is received. This time interval (that is, the first time interval) can be identified and the identifier included in the third packet can be extracted.

그 뒤, 상기 제 1 장치 노드(201)는 제 3 패킷으로부터 추출된 식별자가 제 1 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는지 여부를 판별하여 제 3 패킷의 유효 여부를 검증할 수 있다.Thereafter, the first device node 201 may verify whether the third packet is valid by determining whether the identifier extracted from the third packet corresponds to a previously matched identifier for the first time interval.

만약 제 3 패킷이 상기 제 1 장치 노드(201)에 대하여 미리 설정된 제 1 시간 구간 내에 수신되었더라도 해당 패킷 안에 포함된 식별자(식별자 C)가 제 1 시간 구간에 대하여 사전에 매칭된 식별자(식별자 A)에 해당하지 않는 경우, 상기 제 1 장치 노드(201)는 상기 수신된 제 3 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.If a third packet is received within the first time interval preset for the first device node 201, the identifier (identifier C) included in the packet is previously matched for the first time interval (identifier A). If not, the first device node 201 may determine and discard the received third packet as an attack packet.

마찬가지로, 상기 제 2 장치 노드(202)가 해당 장치 노드에 매칭된 제 2 파티션에 대응하는 제 2 시간 구간 내에서 제 4 패킷과 제 6 패킷을 수신한 경우, 제 4 패킷에 포함된 식별자(식별자 D)가 제 2 시간 구간에 대하여 사전에 매칭된 식별자(식별자 D)에 해당하므로 상기 제 2 장치 노드(202)는 상기 수신된 제 4 패킷을 유효 패킷으로 결정할 수 있다. 반면, 제 6 패킷에 포함된 식별자(식별자 F)는 제 2 시간 구간에 대하여 사전에 매칭된 식별자(식별자 D)에 해당하지 않으므로, 상기 제 2 장치 노드(202)는 상기 수신된 제 6 패킷을 공격 패킷으로 결정하고 폐기할 수 있다.Similarly, when the second device node 202 receives the fourth packet and the sixth packet within a second time interval corresponding to the second partition matched with the corresponding device node, an identifier (identifier) included in the fourth packet Since D) corresponds to an identifier (identifier D) previously matched for the second time interval, the second device node 202 may determine the received fourth packet as a valid packet. On the other hand, since the identifier (identifier F) included in the sixth packet does not correspond to the identifier (identifier D) previously matched with respect to the second time interval, the second device node 202 may receive the received sixth packet. Can be determined by the attack packet and discarded.

이와 같이 본 발명의 다른 실시예에서 상기 장치 노드(200)는 패킷이 수신된 시간 구간과 해당 패킷에 포함된 식별자를 기반으로 상기 시스템 제어 모듈(100)에 의해 생성되어 전송된 유효 패킷과 그렇지 않은 공격 패킷을 구분함으로써 네트워크에 대한 공격을 효율적으로 탐지하고 보안을 유지할 수 있다.As such, according to another embodiment of the present invention, the device node 200 is based on the time interval in which the packet was received and the valid packet generated and transmitted by the system control module 100 based on the identifier included in the packet. By classifying attack packets, you can efficiently detect and secure attacks on your network.

도 3은 본 발명의 일 실시예에 따른 CAN 통신 방법(1000)의 예시적인 흐름도이다.3 is an exemplary flowchart of a CAN communication method 1000 in accordance with an embodiment of the present invention.

상기 CAN 통신 방법(1000)은 앞서 설명한 본 발명의 실시예에 따른 CAN 통신 시스템(10)에 의해 실행된다.The CAN communication method 1000 is executed by the CAN communication system 10 according to the embodiment of the present invention described above.

본 발명의 일 실시예에 따른 CAN 통신 방법(1000)은 프로세서에서 처리를 실행하여 상기 시스템 제어 모듈(100)이 패킷을 생성하는 단계, 상기 장치 노드(200)가 패킷을 수신하는 단계, 상기 장치 노드(200)가 상기 수신된 패킷의 유효 여부를 검증하는 단계, 및 상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계를 포함한다.In the CAN communication method 1000 according to an embodiment of the present invention, the system control module 100 generates a packet by executing a process in a processor, the device node 200 receiving a packet, and the device. The node 200 verifies whether the received packet is valid, and the device node controls the device to operate according to the data included in the valid packet.

구체적으로, 도 3을 참조하면, 상기 CAN 통신 방법(1000)은 상기 시스템 제어 모듈(100)이 해당 파티션에 대하여 사전에 결정된 식별자를 포함시켜 패킷을 생성하는 단계(S1100), 상기 시스템 제어 모듈(100)이 식별자가 포함된 패킷을 해당 파티션에 할당된 시간 내에 전송하는 단계(S1200), 상기 장치 노드(200)가 각각의 파티션에 대응하여 사전에 설정된 시간 구간 중에서 패킷이 수신된 타이밍이 속하는 시간 구간을 식별하는 단계(S1300), 상기 장치 노드(200)가 상기 수신된 패킷에 포함된 식별자를 추출하는 단계(S1400), 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하는 경우(S1500에서 예), 상기 수신된 패킷을 유효 패킷으로 결정하는 단계(S1610), 상기 추출된 식별자가 상기 식별된 시간 구간에 대하여 사전에 매칭된 식별자에 해당하지 않는 경우(S1500에서 아니오), 상기 수신된 패킷을 폐기하는 단계(S1620), 및 상기 장치 노드(200)가 상기 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계(S1700)를 포함할 수 있다.Specifically, referring to FIG. 3, in the CAN communication method 1000, the system control module 100 generates a packet by including a predetermined identifier for a corresponding partition (S1100) and the system control module ( In step S1200, the packet including the identifier is transmitted within the time allotted to the corresponding partition (S1200), and the time at which the device node 200 belongs to the timing at which the packet is received in a preset time interval corresponding to each partition. Identifying a section (S1300), the device node 200 extracting an identifier included in the received packet (S1400), and the extracted identifier corresponds to an identifier previously matched with the identified time interval. If applicable (YES in S1500), determining the received packet as a valid packet (S1610), the identifier with which the extracted identifier is previously matched for the identified time interval If not applicable (NO in S1500), discarding the received packet (S1620), and controlling the device node 200 to operate according to the data included in the valid packet (S1700). It may include.

이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내어 설명하는 것이며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위내에서 변경 또는 수정이 가능하다. 저술한 실시예는 본 발명의 기술적 사상을 구현하기 위한 최선의 상태를 설명하는 것이며, 본 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.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.
삭제delete 삭제delete 삭제delete 삭제delete 프로세서에서 처리를 실행하여 시스템 제어 모듈이 패킷을 생성하는 단계;
장치 노드가 패킷을 수신하는 단계;
상기 장치 노드가 상기 수신된 패킷의 유효 여부를 검증하는 단계; 및
상기 장치 노드가 유효 패킷에 포함된 데이터에 따라 장치가 동작하도록 제어하는 단계;를 포함하되,
상기 패킷을 생성하는 단계는,
상기 시스템 제어 모듈이 프로세서의 처리를 기 설정된 시간 단위마다 다수의 파티션으로 구분하는 단계;
상기 시스템 제어 모듈이 각각의 파티션마다 해당 파티션에 대응하는 처리를 반복하여 실행하는 단계;
상기 시스템 제어 모듈이 각각의 파티션에 대응하는 상기 장치 노드를 제어하기 위한 데이터를 생성하는 단계;
시스템 제어 모듈이 각각의 파티션과 매칭되고, 각각의 파티션에 대응하는 상기 장치 노드와 관련된 중재 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.
KR1020180017096A 2018-02-12 2018-02-12 Can communication system and method KR102006296B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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