WO2022085863A1 - Can 버스 물리 계층에서 해킹된 노드의 대처 방법, can 버스에서 노드 id 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템 - Google Patents

Can 버스 물리 계층에서 해킹된 노드의 대처 방법, can 버스에서 노드 id 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템 Download PDF

Info

Publication number
WO2022085863A1
WO2022085863A1 PCT/KR2020/019184 KR2020019184W WO2022085863A1 WO 2022085863 A1 WO2022085863 A1 WO 2022085863A1 KR 2020019184 W KR2020019184 W KR 2020019184W WO 2022085863 A1 WO2022085863 A1 WO 2022085863A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
bus
nid
physical layer
setting
Prior art date
Application number
PCT/KR2020/019184
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020200136473A external-priority patent/KR102456506B1/ko
Priority claimed from KR1020200136471A external-priority patent/KR102423504B1/ko
Application filed by 숭실대학교 산학협력단 filed Critical 숭실대학교 산학협력단
Priority to EP20958813.6A priority Critical patent/EP4231596A1/en
Priority to US18/032,473 priority patent/US20240031404A1/en
Priority to JP2023524176A priority patent/JP2023547833A/ja
Publication of WO2022085863A1 publication Critical patent/WO2022085863A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40104Security; Encryption; Content protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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
    • 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

Definitions

  • the present invention relates to a method of coping with a hacked node in the CAN bus physical layer, a physical layer security method through automatic node ID setting in the CAN bus, and a recording medium and system for performing the same, and more particularly, to a malicious attack on the CAN bus.
  • the intrusion detection system increments the error counter of the internal attack node and separates it from the bus to prevent malicious attacks. It relates to physical layer security technology that distinguishes.
  • ECUs Electronic Control Units
  • CAN Controller Area Network
  • One of the characteristics of the CAN bus is that the addresses of nodes participating in communication do not exist. This has many advantages such as simultaneous transmission and multiple transmission, but at the same time provides security vulnerabilities.
  • the nodes connected to the CAN bus do not have addresses, so one of the nodes participating in the communication is hacked by a hacker and a malicious data frame There is a difficulty in identifying which electronic control device is the problem even if it is transmitted.
  • a hacked node can overload the CAN bus by sending malicious data frames, malfunction other nodes, or steal other normal nodes, which can be a great risk to user safety. Therefore, it is necessary to prepare for an accident by identifying malicious nodes occurring on the CAN bus and responding quickly.
  • ECU Electronic Control Unit
  • CAN Controller Area Network
  • Patent Document 1 JP 4232603 B2
  • Patent Document 2 KR 10-1332339 B1
  • Patent Document 3 KR 10-2009-0065260 A
  • an object of the present invention is to provide a coping method of a node hacked in the CAN bus physical layer so that it can respond immediately to various attack scenarios.
  • Another object of the present invention is to provide a recording medium in which a computer program for performing a method of coping with a hacked node in the CAN bus physical layer is recorded.
  • Another object of the present invention is to provide a system for performing a coping method of a hacked node in the CAN bus physical layer.
  • Another object of the present invention is to provide a physical layer security method through automatic node ID setting on a CAN bus in such a way that a unique ID is automatically assigned to an individual node every time it boots.
  • Another object of the present invention is to provide a recording medium in which a computer program for performing a physical layer security method through automatic node ID setting on the CAN bus is recorded.
  • Another object of the present invention is to provide an apparatus for performing a physical layer security method through automatic node ID setting on the CAN bus.
  • a method for dealing with a node hacked in the CAN bus physical layer is a unique ID that is different for a plurality of nodes connected to a CAN (Controller Area Network) bus line.
  • setting a Node ID (NID) determining an error frame when at least one of a node using a forged NID, a node using another NID, and a node using a non-existent NID is found; increasing counts of Transmit Error Counter (TEC) and Receive Error Counter (REC) of a transmitting node and a receiving node whenever the error frame is generated; and blocking a node having a TEC or REC greater than a set threshold by bus-off (off).
  • TEC Transmit Error Counter
  • REC Receive Error Counter
  • a node with an impersonated NID may detect hacking.
  • an Intrusion Detection System an intrusion detection system detects hacking when a node using another NID or a node using a non-existent NID is found.
  • the step of setting the NID, which is a different unique ID, for each of the plurality of nodes connected to the CAN bus line may include setting the lower 4 bits of the message ID area to the NID value when transmitting the data frame. there is.
  • the step of increasing the counts of TECs and RECs of the transmitting node and the receiving node each time the error frame is generated includes: when the error frame is generated, the TEC of the transmitting node is incremented by 8; In the case of a node, the REC of the node that generated the first error frame can be increased by 8, and the REC of other nodes can be increased by 1.
  • the method of dealing with a node hacked in the CAN bus physical layer may further include: decrementing the counts of TECs and RECs of the transmitting node and the receiving node whenever a message is successfully transmitted. there is.
  • the step of blocking a node in which the TEC or REC becomes greater than a set threshold by bus-off may separate the node when the TEC or REC of the node becomes greater than 256.
  • a computer program for performing a method for coping with a hacked node in the CAN bus physical layer is recorded.
  • a system for coping with a hacked node in a CAN bus physical layer is connected to a CAN (Controller Area Network) bus line and NID (Node) which is a different unique ID, respectively.
  • CAN Controller Area Network
  • NID Node
  • ID is set for a plurality of nodes; an Intrusion Detection System (IDS) that analyzes the contents of a data frame loaded on the CAN bus line to determine whether a node has been hacked; Each time the error frame is generated, the TEC (Transmit Error Counter) and REC (Receive Error Counter) counts of the sending node and the receiving node are incremented, and whenever a message is successfully transmitted, the TEC and REC of the sending node and the receiving node counter to decrement the count of; and a Node Expulsion System (NES) that is mounted on the plurality of nodes and the IDS, respectively, and blocks a node having a TEC or REC greater than a set threshold by bus-off.
  • IDS Intrusion Detection System
  • the NES of the node to which the impersonated NID is set may detect hacking.
  • the NES of the IDS can detect hacking there is.
  • the NID of each node may be set in the lower 4 bits of the message ID area when transmitting a data frame.
  • the physical layer security method through automatic node ID setting in the CAN bus starts a clock count and reaches a threshold when nodes connected to a controller area network (CAN) bus line are booted up. transmitting a data frame by setting a Temporary ID (TID) upon arrival; Nodes that detect a recessive signal during clock count operation or that detect a recessive signal before completing clock count and generating a Tx (Transmitter) signal have NID (Node ID), which is a unique ID of each node that appears on the bus saving the; setting the TID of the node receiving the Ack signal transmitted from the IDS transmitting the data frame with the TID set as the NID; and when the CAN bus enters the idle (IDLE) state, the clock count starts again, and when the clock count reaches the set value, the TID is set to a value obtained by adding 1 to the last NID displayed on the bus line, and the data frame is transmitted.
  • TID Temporary ID
  • Tx Transmitter
  • the method may further include notifying the nodes that the NID setting is complete and the nodes starting communication.
  • the set NID can be transmitted by writing the set NID in the lower 4 bits of the message ID area when transmitting the data frame.
  • the physical layer security method through automatic node ID setting in the CAN bus when nodes with the same NID transmit different data at the same time, when transmitting a data frame, a data field bit error occurs in the ; if a bit error occurs, storing at which bit of the data field the error occurs; and determining that the same NID is set without transmitting an error frame and changing the NID when a bit error continuously occurs in the same place for a preset number of times.
  • a node that does not transmit data transmits Arbitration field RTR data. generating an error in the process of receiving; when a node transmits a data frame, a node that does not transmit data continuously checks whether its NID appears on a CAN bus a preset number of times; and determining that the same NID is set and changing the own NID when the own NID continuously appears for a preset number of times.
  • the step of storing NID (Node ID), which is a unique ID of each node different from each other appearing on the bus, initializes a clock count and waiting for the communication to end; may further include.
  • the threshold value of the clock count may be set to 16'hFFFF.
  • a computer program for performing a physical layer security method through automatic node ID setting on the CAN bus is recorded.
  • the nodes connected to the CAN (Controller Area Network) bus line are booted up.
  • the TID Temporal ID
  • the data frame is transmitted
  • the TID of the node receiving the Ack signal transmitted from the IDS that transmitted the data frame with the TID set is set to a different TID.
  • an automatic ID setting unit that sets each node's unique ID, NID (Node ID); an NID storage unit for detecting a recessive signal during a clock count operation or storing NIDs of nodes that have detected a recessive signal before completing a clock count and generating a Tx (Transmitter) signal; State machine that starts clock counting again when the CAN bus enters idle (IDLE) state, sets TID to the NID last displayed on the bus line plus 1 when clock count reaches the set value, and transmits a data frame; and a transmission buffer configured to start communication by transmitting an error frame from the IDS when the NIDs of all nodes connected to the bus line are set to notify each node that the NID setting is complete.
  • NID Node ID
  • NID storage unit for detecting a recessive signal during a clock count operation or storing NIDs of nodes that have detected a recessive signal before completing a clock count and generating a Tx (Transmitter) signal
  • the physical layer security device through automatic node ID setting in the CAN bus is implemented on a CAN controller, and when nodes with the same NID transmit different data at the same time, it is possible to transmit a data frame.
  • a bit error occurs in the data field, it stores the number of bits in the data field where the error occurs. If it is determined that the same NID has been set without transmitting, the NID is changed, and one of the nodes with the same NID configured transmits data.
  • a node that does not transmit data checks whether its NID continuously appears a preset number of times on the CAN bus, and if its own NID appears consecutively a preset number of times, the same NID is You can determine that it has been set and change your own NID.
  • the intrusion detection system increments the error counter of the internal attack node and separates it from the bus to prevent malicious attacks.
  • NID Node ID
  • IDS Intrusion Detection System
  • CAN Controller Area Network
  • NID Node ID
  • FIG. 1 is a block diagram of a system for coping with a hacked node in a CAN bus physical layer according to an embodiment of the present invention.
  • FIG. 2 is a table showing a data range that can be transmitted according to the MID and DLC of the node to which the NID is set in FIG. 1 .
  • FIG. 3 is a diagram showing a state change of a node according to TEC and REC.
  • FIG. 4 is a view showing a process of coping with a general attack according to the present invention.
  • FIG. 5 is a diagram showing a process of coping with a spoofing attack according to the present invention.
  • FIG. 6 is a flowchart of a coping method of a node hacked in a CAN bus physical layer according to an embodiment of the present invention.
  • FIG. 7 is a diagram showing a simulation waveform of an operation to cope with a general attack according to the present invention.
  • FIG. 8 is a diagram showing a simulation waveform of an operation to cope with a spoofing attack according to the present invention.
  • FIG. 9 is a block diagram of a physical layer security device through automatic node ID setting on a CAN bus according to an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a process of automatically setting an NID according to the present invention.
  • FIG. 11 is a diagram for explaining a case in which nodes to which the same NID is set simultaneously transmit data according to the present invention.
  • FIG. 12 is a diagram for explaining a process in which a bit error occurs in the data field in the case of FIG. 11 .
  • 13 is a diagram for explaining a case in which one of the nodes to which the same NID is set transmits data according to the present invention.
  • FIG. 14 is a diagram for explaining a process in which a bit error occurs in the arbitration field in the case of FIG. 13 .
  • 15 is a table showing a range of data that can be transmitted according to the MID and DLC of the node to which the NID is set in the present invention.
  • 16 is a diagram for explaining a process in which the IDS copes with an attack in the present invention.
  • 17 is a flowchart of a physical layer security method through automatic node ID setting in a CAN bus according to an embodiment of the present invention.
  • FIG. 18 is a diagram showing a simulation result of a process in which a unique ID of a node is automatically assigned while the CAN bus is booted.
  • 19 is a diagram showing a simulation result of a coping operation against a CAN bus internal attack.
  • FIG. 1 is a block diagram of a system for coping with a hacked node in a CAN bus physical layer according to an embodiment of the present invention.
  • FIG. 2 is a table showing a data range that can be transmitted according to the MID and DLC of the node to which the NID is set in FIG. 1 .
  • CAN Controller Area Network
  • the intrusion detection system increases the error counter of the internal attack node.
  • a technique to prevent malicious attacks by separating them from the bus.
  • a CAN controller equipped with the technique proposed in the present invention can be implemented using Verilog HDL.
  • the system 1 includes a plurality of nodes (Node A, B, C, D) connected to a CAN bus line, an Intrusion Detection System (IDS), a counter (not shown) and an NES ( Node Expulsion System).
  • Node A, B, C, D nodes connected to a CAN bus line
  • IDS Intrusion Detection System
  • NES Node Expulsion System
  • Nodes A, B, C, and D are connected to a controller area network (CAN) bus line, and a unique ID (NID) that is different from each other is set.
  • CAN controller area network
  • NID unique ID
  • NID Node ID
  • the NID acts as a fingerprint, so it is possible to know which node is transmitting the data frame.
  • the CAN bus according to the present invention additionally connects an Intrusion Detection System (IDS), which is an intrusion detection system.
  • IDS Intrusion Detection System
  • the range of data that can be transmitted is pre-determined according to MID (Message ID) and DLC (Data Length Code). Set in , and update IDS and nodes in advance.
  • MID Message ID
  • DLC Data Length Code
  • the IDS determines whether the node has been hacked by analyzing the contents of the data frame loaded on the CAN bus line.
  • the counter increments the TEC (Transmit Error Counter) and REC (Receive Error Counter) counts of the sending node and the receiving node whenever the error frame is generated, and each time a message is successfully transmitted, the Decrease the count of TEC and REC.
  • the NES is mounted on the plurality of nodes and the IDS, respectively, and blocks a node having a TEC or REC greater than a set threshold by bus-off.
  • TEC Transmit Error Counter
  • REC Receive Error Counter
  • any node finds an error, it generates an error frame, at which time the TEC of the transmitting node is increased by 8.
  • the REC of the node that first generated the error frame increases by 8
  • the REC of the other node increases by 1.
  • the TEC and REC of the sending node and the receiving node are each decreased by 1. 3 shows node state changes according to TEC and REC. In the error active state, normal transmission/reception is performed, but when TEC or REC is 128 or higher, the error passive state becomes error-passive, and transmission/reception is somewhat restricted.
  • the present invention proposes a technique for preventing a node transmitting a malicious data frame from overloading the bus or attacking other nodes by making the node that transmits a malicious data frame in a bus-off state using this.
  • CAN Bus Attack Scenarios There are three main attack scenarios in the CAN bus. After occupying a node, a message pattern can be identified through sniffing, and a malicious data frame can be transmitted through a general attack. may overload the node or cause other nodes to malfunction.
  • a spoofing attack that transmits a malicious data frame while pretending to be another node may be performed.
  • the attack scenario is as follows.
  • sniffing is to identify patterns by looking at messages communicating on the bus using nodes occupied through hacking. No harm is done to the CAN bus at this stage.
  • Scenario 2 a normal attack detects a message pattern through sniffing and then sends a malicious data frame using the occupied node.
  • Scenario 3 is a spoofing attack.
  • the general attack and the spoofing attack are the same in that they transmit a malicious data frame, but the spoofing attack differs in that the occupied node pretends to be another node.
  • the Node Expulsion System which is a function to expel a hacked node by sending an error frame, is a function added to the present invention that is not present in a general CAN bus.
  • the NES may be implemented by adding a circuit for outputting an error frame to the CAN controller when a specific condition is satisfied.
  • the NES is installed in both each node and the IDS.
  • the NES attached to the forged node continues to transmit an error frame whenever the node transmits, so the node is blocked from transmitting and the TEC is increased, resulting in a bus-off state.
  • the intrusion detection system when a malicious data frame is detected on the CAN bus, the intrusion detection system increases the error counter of the internal attack node and separates it from the bus, thereby preventing malicious attacks.
  • FIG. 6 is a flowchart of a coping method of a node hacked in a CAN bus physical layer according to an embodiment of the present invention.
  • the coping method of a node hacked in the CAN bus physical layer may proceed in substantially the same configuration as the system 1 of FIG. 1 . Accordingly, the same components as those of the system 1 of FIG. 1 are given the same reference numerals, and repeated descriptions are omitted.
  • the coping method of a node hacked in the CAN bus physical layer may be executed by software (application) for coping with a node hacked in the CAN bus physical layer.
  • the intrusion detection system increments the error counter of the internal attack node and separates it from the bus to prevent malicious attacks.
  • a Node ID which is a unique ID different from each other for a plurality of nodes connected to a controller area network (CAN) bus line.
  • NID Node ID
  • the lower 4 bits of the message ID area can be set as the NID value.
  • step S20 When at least one of a node using a forged NID, a node using a different NID, and a node using a non-existent NID is found, it is determined as an error frame (step S20).
  • each node has its own NID set, when a node using a forged NID is found, the impersonated node with the NID set can detect hacking.
  • the Intrusion Detection System an intrusion detection system, can detect hacking.
  • the TEC Transmit Error Counter
  • REC Receiveive Error Counter
  • the TEC of the transmitting node may be increased by 8, and in the case of the receiving node, the REC of the node that first generated the error frame may be increased by 8, and the REC of the other node may be increased by 1.
  • the counts of the TEC and REC of the sending node and the receiving node may be decremented.
  • step S40 When the TEC or REC becomes greater than the set threshold (step S40), the node is blocked by bus-off (step S50). For example, if a node's TEC or REC becomes greater than 256, that node can be detached.
  • the intrusion detection system increments the error counter of the internal attack node and separates it from the bus to prevent malicious attacks.
  • NID Node ID
  • IDS Intrusion Detection System
  • CAN Controller Area Network
  • NES is installed in the existing CAN controller, designed with Verilog HDL, and simulated with ModelSim.
  • the NIDs of the four CAN nodes were set to 4, 8, 16, and 32, and since sniffing does not have an immediate adverse effect, only two types of attacks, a normal attack and a spoofing attack, were simulated.
  • the present invention proposes a method capable of coping with various attack scenarios that may occur in the CAN bus by modifying the existing CAN controller.
  • Such a method of coping with a node hacked in the CAN bus physical layer may be implemented as an application or implemented in the form of program instructions that may be executed through various computer components and recorded in a computer-readable recording medium.
  • the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded in the computer-readable recording medium are specially designed and configured for the present invention, and may be known and available to those skilled in the computer software field.
  • Examples of the computer-readable recording medium include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks. media), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
  • the hardware device may be configured to operate as one or more software modules for carrying out the processing according to the present invention, and vice versa.
  • FIG. 9 is a block diagram of a physical layer security device through automatic node ID setting on a CAN bus according to an embodiment of the present invention.
  • the physical layer security device (10, hereinafter device) through automatic node ID setting in the CAN bus proposes physical layer security in which a unique ID is automatically assigned to an individual node when the CAN bus is booted.
  • the device 10 includes an automatic ID setting unit 110 , an NID storage unit (not shown), a state machine 180 , and a transmission buffer 140 .
  • the apparatus 10 of the present invention may implement the proposed technique in a CAN controller using Verilog HDL.
  • the CAN controller may be implemented in a CAN system or may be implemented in a node on a CAN bus.
  • the device 10 of the present invention may further include at least one of a Clock DivIDer 120 , a Bit Time Logic 130 , a Receive FIFO Buffer 150 , an Acceptance Filter 160 , and a CRC 170 .
  • a Clock DivIDer 120 may further include at least one of a Clock DivIDer 120 , a Bit Time Logic 130 , a Receive FIFO Buffer 150 , an Acceptance Filter 160 , and a CRC 170 .
  • software for performing physical layer security through automatic node ID setting on a CAN bus may be installed and executed, and the automatic ID setting unit 110, the NID storage unit ( (not shown), the configuration of the state machine 180 and the transmission buffer 140 will be controlled by software for performing physical layer security through automatic node ID setting on the CAN bus running on the device 10 .
  • the device 10 may be a separate terminal or a part of a module of the terminal.
  • the configuration of the automatic ID setting unit 110 , the NID storage unit (not shown), the state machine 180 , and the transmission buffer 140 may be formed as an integrated module or may be formed of one or more modules. .
  • each configuration may be configured as a separate module.
  • the device 10 may be mobile or stationary.
  • the apparatus 10 may be in the form of a server or an engine, and may be a device, an application, a terminal, a user equipment (UE), a mobile station (MS), or a wireless device. (wireless device), may be called other terms such as a handheld device (handheld device).
  • the device 10 may execute or manufacture various software based on an operating system (OS), that is, the system.
  • OS operating system
  • the operating system is a system program for software to use the hardware of the device, and is a mobile computer operating system such as Android OS, iOS, Windows Mobile OS, Bada OS, Symbian OS, Blackberry OS and Windows series, Linux series, Unix series, It can include all computer operating systems such as MAC, AIX, and HP-UX.
  • the present invention copes with a CAN bus attack as shown in FIG. 10 .
  • hardware such as an Intrusion Detection System (IDS) and a Node Expulsion System (NES) is used.
  • IDS Intrusion Detection System
  • NES Node Expulsion System
  • the IDS analyzes the contents of the data frame to determine whether the currently transmitting node is a hacked node.
  • NES is a block that performs the function of expelling a specific node designated as a hacked node by the IDS from the CAN bus. It is a function not found in the general CAN bus.
  • IDS always monitors the CAN bus, and if a node transmits a malicious data frame, it detects that the node has been hacked by analyzing the data content. After that, whenever a hacked node transmits, the NES generates an error frame regardless of data content to block transmission.
  • the hacked node continuously increases the transmission error count every time it transmits data, passes the error passive state and goes into a bus-off state, making it impossible to transmit any more.
  • unique IDs are assigned to all nodes inside the CAN bus as shown in FIG. 10 .
  • the present invention proposes a method of automatically assigning a unique ID to each node when the CAN bus boots.
  • the automatic ID setting unit 110 starts a clock count when nodes connected to a controller area network (CAN) bus line are booted up and sets a TID (Temporary ID) when a threshold is reached to create a data frame. send Thereafter, the TID of the node receiving the Ack signal transmitted from the IDS that transmitted the data frame with the TID set is set as a unique ID (NID) of each node.
  • TID Temporal ID
  • the NID storage unit (not shown) detects a recessive signal during a clock count operation or stores NIDs of nodes that have detected a recessive signal before completing the clock count and generating a Tx (Transmitter) signal.
  • the state machine 180 starts clock counting again when the CAN bus enters the idle (IDLE) state.
  • the TID is set to a value added by 1 to the last NID displayed on the bus line. Send a data frame.
  • the IDS transmits an error frame to notify each node that the NID setting has been completed to start communication.
  • NID Node ID
  • the method of setting NID uses the point that 'all oscillators have errors.
  • Nodes that detect a recessive signal during clock count operation or that detect a recessive signal before generating a Tx (Transmitter) signal after completing clock count are the other nodes using the CAN bus first. It initializes, waits for communication to end, and remembers the NID that appears on the bus.
  • the IDS that has transmitted the TID-set data frame sends an Ack signal.
  • the node that receives the Ack signal from the IDS sets the TID to the NID.
  • the clock count starts again.
  • the clock count reaches the set value, the TID is set to the last NID displayed on the bus plus 1, and the data frame is transmitted.
  • the IDS sends an error frame to notify each node that the NID setting is complete, and the nodes start communication.
  • the CAN bus when the CAN bus boots up, it sets a unique ID for each node based on a clock count. As shown in FIG. 2 , all nodes start counting clocks as soon as they are booted. Since there is a deviation in the clock oscillator circuit, when the clock count of a node first reaches 16'hFFFF, at that moment, the ID of the node is set to 1 and the data frame is transmitted.
  • the set address is set as a unique ID.
  • the clock count is initialized and the clock count is increased. At this time, each node stores the number of initialization times of the clock count.
  • the clock starts counting again, and when the clock count reaches 16'hFFFF, the clock count initialization count is calculated by adding 1 to it.
  • the calculated value is converted into a unique ID set to
  • the other nodes have their clock counts initialized
  • 2 and the other nodes also reset their clock counts. In this way, the addresses of all nodes connected to the bus are set.
  • nodes with the same unique ID transmit data at the same time, there are cases where the same data is transmitted and there are cases where different data are transmitted.
  • the reason for determining that the same NID is set because a bit error occurs at the same position in the data field three consecutive times is as follows.
  • the probability of bit errors due to noise or CAN bus problems is However, the probability of a bit error at the same place in the data field three consecutive times is because it is very small.
  • the TEC of a normal node may be increased unnecessarily.
  • node 1 when one of the nodes set with the same unique ID transmits data, a node that does not transmit data 2 generates an error in the process of receiving the Arbitration field RTR data. Looking at the process in which an error occurs in the arbitration field, as shown in FIG. 14 , node 1 transmits an error frame and increases REC because its NID appears on the CAN bus even though it is not in a transmitting state.
  • node 4 Since node 4, which is transmitting data, has received an error frame, the TEC increases and node 4 transmits the data frame again when it enters the bus idle (IDLE) state. In addition, an error is generated while node 1 receives the arbitration field RTR data again.
  • IDLE bus idle
  • the NID acts as a fingerprint, so you can know which node is transmitting the data frame.
  • IDS Intrusion Detection System
  • MID Message ID
  • DLC Data Length Code
  • 16 is a process of coping with an attack in which a hacked node overloads the CAN bus or malfunctions another node by transmitting a malicious data frame.
  • 17 is a flowchart of a physical layer security method through automatic node ID setting in a CAN bus according to an embodiment of the present invention.
  • the physical layer security method through automatic node ID setting in the CAN bus may proceed in substantially the same configuration as the device 10 of FIG. 9 . Accordingly, the same components as those of the device 10 of FIG. 9 are given the same reference numerals, and repeated descriptions are omitted.
  • the physical layer security method through automatic node ID setting in the CAN bus may be executed by software (application) for performing physical layer security through automatic node ID setting in the CAN bus.
  • the present invention proposes a physical layer security that automatically assigns a unique ID to an individual node when the CAN bus is booted.
  • a threshold value eg, 16'hFFFF
  • TID Temporal ID
  • Nodes that detect a recessive signal during clock count operation or that detect a recessive signal before completing clock count and generating a Tx (Transmitter) signal have NID (Node ID), which is a unique ID of each node that appears on the bus is stored (step S200).
  • the node initializes the clock count and waits for the communication to end.
  • the set NID can be transmitted by writing the set NID in the lower 4 bits of the message ID area when transmitting the data frame.
  • the TID of the node receiving the Ack signal transmitted from the IDS transmitting the data frame with the TID set is set as the NID (step S300).
  • the clock count starts again.
  • the TID is set to the last NID displayed on the bus line plus 1, and the data frame is transmitted (step S400). ).
  • step S100 to S400 When the above steps (steps S100 to S400) are repeatedly performed to set the NIDs of all nodes connected to the bus line, the IDS transmits an error frame to notify each node that the NID setting is complete, and the nodes start communication. (Step S500).
  • a node that does not transmit data When one of the nodes to which the same NID is configured transmits data, a node that does not transmit data generates an error in the process of receiving the Arbitration field RTR data.
  • a node that does not transmit data continuously checks whether its NID appears on the CAN bus a preset number of times (eg, 3 times). When one's own NID continuously appears for a preset number of times, it is determined that the same NID has been set and the own NID is changed.
  • NES was added to the existing CAN controller and implemented using Verilog HDL, and simulation was performed with ModelSim provided by IDEC (IC Design Education Center).
  • 18 is a simulation result of automatically assigning a unique address to a node while the CAN bus is booted. At first boot starts and each node increments the clock count.
  • the first auto_con2 node whose clock count is 16'hFFFF is given a unique ID of 1, and the auto_con1 node and the auto_con3 node initialize the clock count while the Rx signal is detected as recessive during the clock count.
  • the auto_con1 and auto_con3 nodes memorize the number of clock count initialization times (1 at this point).
  • an error frame is generated to increase the TEC of the node. This operation is performed whenever an internal attack node with ID 4 transmits a data frame, and the TEC of that node continues to increase, eventually passing the error passive state and entering the bus-off state.
  • each node is distinguished by automatically assigning a unique ID to each node whenever booting from the CAN bus. Since the present invention allocates NID (Node ID), which is a unique ID, every time it boots, it can be easily applied regardless of replacement of parts, and the number of bits of the unique ID can be greatly reduced.
  • NID Node ID
  • Such a physical layer security method through automatic node ID setting in the CAN bus may be implemented as an application or implemented in the form of a program command that may be executed through various computer components and recorded in a computer-readable recording medium.
  • the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded in the computer-readable recording medium are specially designed and configured for the present invention, and may be known and available to those skilled in the computer software field.
  • Examples of the computer-readable recording medium include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks. media), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
  • the hardware device may be configured to operate as one or more software modules for carrying out the processing according to the present invention, and vice versa.
  • CAN Controller Area Network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)

Abstract

CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은, CAN(Controller Area Network) 버스 라인에 연결된 다수의 노드들에 대해 각각 서로 다른 고유 ID인 NID(Node ID)를 설정하는 단계; 위조된 NID를 사용하는 노드, 다른 NID를 사용하는 노드 및 존재하지 않는 NID를 사용하는 노드 중 적어도 하나가 발견되는 경우 에러 프레임으로 판단하는 단계; 상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시키는 단계; 및 TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 단계;를 포함한다. 이에 따라, CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로써 악의적인 공격을 방어한다. CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하는 단계; 클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들은 버스에 나타나는 서로 다른 각 노드의 고유 ID인 NID(Node ID)를 저장하는 단계; TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 NID로 설정하는 단계; 및 CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면 TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신하는 단계;를 포함한다. 이에 따라, IDS와 CAN 컨트롤러의 NID를 설정해 두는 방식으로 CAN 버스 상에서 발생할 수 있는 모든 네트워크 공격에 대해 대처할 수 있다.

Description

CAN 버스 물리 계층에서 해킹된 노드의 대처 방법, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템
본 발명은 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템에 관한 것으로서, 더욱 상세하게는 CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로써 악의적인 공격을 방어하는 기술이며, CAN 버스에서 부팅 때마다 개별 노드에 고유 ID를 자동으로 부여하여 각 노드를 구별하는 물리 계층 보안 기술에 관한 것이다.
오늘날 대부분의 자동차는 CAN(Controller Area Network) 버스를 기반으로 차량 내부의 ECU(Electronic Control Unit)들을 연결하고 있다. CAN 버스의 특징 중 하나는 통신에 참여하는 노드들의 주소가 존재하지 않는다는 점이다. 이는 동시 전송, 다수 전송 등 많은 장점을 가지고 있지만 동시에 보안상 취약점을 제공한다.
통신에 참여하는 노드들 중 하나를 해킹하여 악의적인 데이터 프레임을 전송하는 경우, 어느 노드가 데이터 프레임을 송신하였는지 알 수 없기 때문에 해당 노드를 차단하는 것이 매우 어렵다. 이렇게 악의적인 데이터 프레임을 막지 못할 경우 CAN 버스를 과부하시켜서 정상적인 통신을 못하게 하거나 다른 노드를 공격하여 사용자에게 위험이 될 수 있는 동작을 하게 할 수 있다.
구체적으로, CAN 통신 프로토콜(Protocol)의 특징 중 하나로 CAN 버스에 연결되는 노드(Node)들은 어드레스(Address)가 존재하지 않아 통신에 참여하는 노드들 중 하나가 해커에 의해 해킹을 당하여 악의적인 데이터 프레임을 송신 하여도 어느 전자 제어 장치가 문제인지 식별의 어려움이 있다.
해킹 당한 노드는 악의적인 데이터 프레임을 송신하여 CAN 버스를 과부하 시키거나 다른 노드를 오동작 시킬 수 있고 또는 다른 정상 노드를 도용할 수 있는데, 이 경우 사용자의 안전에 큰 위험이 될 수 있다. 따라서, CAN 버스 상에서 발생하는 악의적인 노드를 식별하고 신속하게 대처하여 사고에 대비하여야 한다.
그리고, 대부분의 자동차 전장 시스템은 ECU(Electronic Control Unit)에 의해 제어되며 CAN(Controller Area Network) 버스를 통해 데이터를 주고 받는다. 차량에 탑재되는 ECU에는 프로세서 ID와 통신용 암호키가 고유하게 지정되어 있어서 통신을 수행할 때마다 프로그램에서 확인하며 해킹이 의심되는 경우 통신을 차단하도록 명령을 내린다.
그러나, 해킹이 고도화되면 해당 ECU의 모든 소프트웨어 동작을 변조할 수 있으므로, CAN 버스 상에서 전송되는 정상적 통신 데이터를 모니터링하여 프로세서 ID 및 통신용 암호키를 유추하고 위조할 수 있으며 통신 차단 명령도 무시할 수 있다.
따라서, 해킹에 의한 통신 방해 및 악의적 데이터 전송을 원천적으로 방지하기 위해서는 해킹된 노드의 통신을 CAN 버스 상에서 하드웨어적으로 차단하여야 한다. 이미 해킹되어 CAN 통신을 방해하고 악의적 데이터를 전송하는 노드를 차단하기 위해서는 가장 먼저 CAN 버스 상에서 개별 노드를 고유하게 특정하여야 하지만 CAN 버스에는 이더넷의 MAC(Media Access Control) 주소와 같이 개별 노드를 식별할 수 있는 기능이 존재하지 않는다.
CAN 콘트롤러 생산 시 하드웨어적으로 고유 ID를 부여 하는 방법도 있으나, 이 경우 모든 칩마다 고유 ID를 부여하기 위해서는 고유 ID의 비트 수가 크게 늘어나서 CAN 버스의 전송 효율을 크게 떨어뜨린다.
또한, 모든 노드가 CAN 버스 상에 장착된 후에 공장에서 일괄적으로 고유 ID를 부여하면 동일 CAN 버스 내의 노드 수가 얼마 안되기 때문에 고유 ID의 비트 수는 크게 줄어들지만 부품 교체 때마다 다시 공장에서 ID 부여 작업을 수행해야 하기 때문에 매우 번거로운 문제가 있다.
[선행기술문헌]
[특허문헌]
(특허문헌 1) JP 4232603 B2
(특허문헌 2) KR 10-1332339 B1
(특허문헌 3) KR 10-2009-0065260 A
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 여러 가지 공격 시나리오에 대해 즉각적으로 대처할 수 있도록 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법을 수행하기 위한 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 부팅 때마다 개별 노드에 고유 ID를 자동으로 부여하는 방식으로 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법을 수행하기 위한 장치를 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은, CAN(Controller Area Network) 버스 라인에 연결된 다수의 노드들에 대해 각각 서로 다른 고유 ID인 NID(Node ID)를 설정하는 단계; 위조된 NID를 사용하는 노드, 다른 NID를 사용하는 노드 및 존재하지 않는 NID를 사용하는 노드 중 적어도 하나가 발견되는 경우 에러 프레임으로 판단하는 단계; 상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시키는 단계; 및 TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 단계;를 포함한다.
본 발명의 실시예에서, 상기 에러 프레임으로 판단하는 단계는, 위조된 NID를 사용하는 노드가 발견된 경우 사칭 당한 NID가 설정된 노드가 해킹을 감지할 수 있다.
본 발명의 실시예에서, 상기 에러 프레임으로 판단하는 단계는, 다른 NID를 사용하는 노드 또는 존재하지 않는 NID를 사용하는 노드가 발견된 경우 침입 감지 시스템인 IDS(Intrusion Detection System)가 해킹을 감지할 수 있다.
본 발명의 실시예에서, 상기 CAN 버스 라인에 연결된 다수의 노드들에 대해 각각 서로 다른 고유 ID인 NID를 설정하는 단계는, 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4 비트를 NID 값으로 설정할 수 있다.
본 발명의 실시예에서, 상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 증가시키는 단계는, 상기 에러 프레임이 발생되면, 송신 노드의 TEC는 8만큼 증가시키고, 수신 노드의 경우 가장 먼저 에러 프레임을 발생시킨 노드의 REC는 8만큼 증가시키고 다른 노드의 REC는 1만큼 증가시킬 수 있다.
본 발명의 실시예에서, 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은, 메시지가 성공적으로 전송될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 감소시키는 단계;를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 단계는, 노드의 TEC 또는 REC가 256 보다 커지는 경우 해당 노드를 분리할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템은, CAN(Controller Area Network) 버스 라인에 연결되고 각각 서로 다른 고유 ID인 NID(Node ID)가 설정된 다수의 노드들; 상기 CAN 버스 라인에 로딩되는 데이터 프레임의 내용을 분석하여 해킹당한 노드인지 판단하는 IDS(Intrusion Detection System); 상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시키고, 메시지가 성공적으로 전송될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 감소시키는 카운터; 및 상기 다수의 노드들 및 IDS에 각각 장착되어, TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 NES(Node Expulsion System);를 포함한다.
본 발명의 실시예에서, 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템은, 위조된 NID를 사용하는 노드가 발견된 경우 사칭 당한 NID가 설정된 노드의 NES가 해킹을 감지할 수 있다.
본 발명의 실시예에서, 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템은, 다른 NID를 사용하는 노드 또는 존재하지 않는 NID를 사용하는 노드가 발견된 경우 상기 IDS의 NES가 해킹을 감지할 수 있다.
본 발명의 실시예에서, 각 노드의 NID는 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4 비트에서 설정될 수 있다.
본 발명의 실시예에서, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하는 단계; 클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들은 버스에 나타나는 서로 다른 각 노드의 고유 ID인 NID(Node ID)를 저장하는 단계; TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 NID로 설정하는 단계; 및 CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면 TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신하는 단계;를 포함한다.
본 발명의 실시예에서, 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, 상기 단계들을 반복적으로 수행하여 버스 라인에 연결된 모든 노드들의 NID를 설정하면, IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알리고 노드들은 통신을 시작하는 단계;를 더 포함할 수 있다.
본 발명의 실시예에서, 설정한 NID를 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4비트에 설정한 NID를 기재하여 송신할 수 있다.
본 발명의 실시예에서, 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, 동일한 NID가 설정된 노드들이 동시에 서로 다른 데이터를 송신하는 경우, 데이터 프레임을 송신할 때 데이터 필드(Data field)에서 비트(Bit) 에러가 발생하는 단계; 비트(Bit) 에러가 발생하면, 데이터 필드의 몇 번째 비트에서 에러가 발생하는지 저장하는 단계; 및 미리 설정된 횟수만큼 연속적으로 같은 자리에서 비트 에러가 발생하는 경우, 에러 프레임을 송신하지 않고 동일한 NID가 설정된 것으로 판단하고 NID를 변경하는 단계;를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, 동일한 NID가 설정된 노드들 중 하나가 데이터를 송신하는 경우, 데이터를 송신하지 않는 노드가 Arbitration field RTR 데이터를 수신하는 과정에서 에러를 발생시키는 단계; 노드가 데이터 프레임을 송신할 때 데이터를 송신하지 않는 노드가 자신의 NID가 CAN 버스 상에 미리 설정된 횟수만큼 연속적으로 나타나는지 체크하는 단계; 및 자신의 NID가 미리 설정된 횟수만큼 연속적으로 나타나는 경우, 동일한 NID가 설정된 것으로 판단하고 자신의 NID를 변경하는 단계;를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, 상기 버스에 나타나는 서로 다른 각 노드의 고유 ID인 NID(Node ID)를 저장하는 단계는, 클락 카운트를 초기화하고 통신이 끝나는 것을 기다리는 단계;를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하는 단계는, 상기 클락 카운트의 임계치는 16’hFFFF로 설정할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치는, CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하고, TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 서로 다른 각 노드의 고유 ID인 NID(Node ID)로 설정하는 자동 ID 설정부; 클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들의 NID를 저장하는 NID 저장부; CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면 TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신하는 상태 머신; 및 버스 라인에 연결된 모든 노드들의 NID를 설정하면, IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알려서 통신을 시작하도록 하는 전송 버퍼;를 포함한다.
본 발명의 실시예에서, 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치는, CAN 컨트롤러 상에 구현되고, 동일한 NID가 설정된 노드들이 동시에 서로 다른 데이터를 송신하는 경우, 데이터 프레임을 송신할 때 데이터 필드(Data field)에서 비트(Bit) 에러가 발생하면, 데이터 필드의 몇 번째 비트에서 에러가 발생하는지 저장하고, 미리 설정된 횟수만큼 연속적으로 같은 자리에서 비트 에러가 발생하는 경우, 에러 프레임을 송신하지 않고 동일한 NID가 설정된 것으로 판단하고 NID를 변경하고, 동일한 NID가 설정된 노드들 중 하나가 데이터를 송신하는 경우, 데이터를 송신하지 않는 노드가 Arbitration field RTR 데이터를 수신하는 과정에서 에러가 발생하면, 노드가 데이터 프레임을 송신할 때 데이터를 송신하지 않는 노드가 자신의 NID가 CAN 버스 상에 미리 설정된 횟수만큼 연속적으로 나타나는지 체크하고, 자신의 NID가 미리 설정된 횟수만큼 연속적으로 나타나는 경우, 동일한 NID가 설정된 것으로 판단하고 자신의 NID를 변경할 수 있다.
이와 같은 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법에 따르면, CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로써 악의적인 공격을 방어한다.
IDS(Intrusion Detection System)와 CAN(Controller Area Network) 컨트롤러의 NID(Node ID)를 설정해 두는 하드웨어적 방식으로 CAN 버스 상에서 발생할 수 있는 모든 네트워크 공격에 대해 즉각적으로 대처할 수 있다. 따라서, 사용자의 안전성을 높일 수 있고 보안 성능을 강화할 수 있다.
이와 같은 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법에 따르면, CAN 버스에서 부팅 때마다 개별 노드에 고유 ID를 자동으로 부여하여 각 노드를 구별한다. 본 발명은 부팅 때마다 고유 ID인 NID(Node ID)를 할당하기 때문에 부품 교체와 상관없이 쉽게 적용이 가능하면서도 고유 ID의 비트 수를 크게 줄일 수 있다.
또한, IDS와 CAN 컨트롤러의 NID를 설정해 두는 방식으로 CAN 버스 상에서 발생할 수 있는 모든 네트워크 공격에 대해 대처할 수 있다. 이에 따라, 사용자의 안전성을 높일 수 있고 보안 성능을 강화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템의 블록도이다.
도 2는 도 1에서 NID가 설정되어 있는 노드의 MID와 DLC에 따른 송신할 수 있는 데이터 범위를 보여주는 표이다.
도 3은 TEC와 REC에 따른 노드의 상태 변화를 보여주는 도면이다.
도 4는 본 발명에 따라 일반 공격에 대처하는 과정을 보여주는 도면이다.
도 5는 본 발명에 따라 스푸핑 공격에 대처하는 과정을 보여주는 도면이다.
도 6은 본 발명의 일 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법의 흐름도이다.
도 7은 본 발명에 따라 일반 공격에 대처하는 동작의 시뮬레이션 파형을 보여주는 도면이다.
도 8은 본 발명에 따라 스푸핑 공격에 대처하는 동작의 시뮬레이션 파형을 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치의 블록도이다.
도 10은 본 발명에 따라 NID를 자동으로 설정하는 과정을 보여주는 도면이다.
도 11은 본 발명에 따라 동일한 NID가 설정된 노드가 동시에 데이터를 송신하는 경우를 설명하기 위한 도면이다.
도 12는 도 11의 경우에 Data field에서 Bit 에러가 발생하는 과정을 설명하기 위한 도면이다.
도 13은 본 발명에 따라 동일한 NID가 설정된 노드 중 하나가 데이터를 송신하는 경우를 설명하기 위한 도면이다.
도 14는 도 13의 경우에 Arbitration field에서 Bit 에러가 발생하는 과정을 설명하기 위한 도면이다.
도 15는 본 발명에서 NID가 설정되어 있는 노드의 MID와 DLC에 따른 송신할 수 있는 데이터 범위를 보여주는 표이다.
도 16은 본 발명에서 IDS가 공격에 대처하는 과정을 설명하기 위한 도면이다.
도 17은 본 발명의 일 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법의 흐름도이다.
도 18은 CAN 버스가 부팅되면서 노드의 고유 ID가 자동으로 부여되는 과정의 시뮬레이션 결과를 보여주는 도면이다.
도 19는 CAN 버스 내부 공격에 대한 대처 동작의 시뮬레이션 결과를 보여주는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템의 블록도이다. 도 2는 도 1에서 NID가 설정되어 있는 노드의 MID와 DLC에 따른 송신할 수 있는 데이터 범위를 보여주는 표이다.
본 발명에 따른 CAN(Controller Area Network) 버스 물리 계층에서 해킹된 노드의 대처 시스템(1, 이하 시스템)은 CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로써 악의적인 공격을 방어하는 기법을 제안한다. 예를 들어, 본 발명에서 제안한 기법을 탑재한 CAN 컨트롤러를 Verilog HDL을 이용하여 구현할 수 있다.
도 1을 참조하면, 본 발명에 따른 시스템(1)은 CAN 버스 라인에 연결된 다수의 노드들(Node A, B, C, D), IDS(Intrusion Detection System), 카운터(미도시) 및 NES(Node Expulsion System)를 포함한다.
상기 다수의 노드들(Node A, B, C, D)은 CAN(Controller Area Network) 버스 라인에 연결되고 각각 서로 다른 고유 ID인 NID(Node ID)가 설정된다.
본 발명에서는 모든 노드들이 통신을 시작하기 전에 도 1과 같이 서로 다른 본인의 고유 ID인 NID(Node ID)가 설정되어 있다. 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4 비트를 NID 값으로 채워 송신하면, NID가 핑거프린트(Fingerprint) 역할을 하므로 어느 노드가 데이터 프레임을 송신하는지 알 수 있게 된다.
본 발명에 따른 CAN 버스는 추가적으로 IDS(Intrusion Detection System)를 연결하였는데 IDS는 침입 감지 시스템으로 도 2와 같이 MID(Message ID)와 DLC(Data Length Code)에 따라 송신할 수 있는 데이터의 범위를 사전에 설정하여 IDS와 노드들에게 미리 업데이트 해둔다.
상기 IDS는 상기 CAN 버스 라인에 로딩되는 데이터 프레임의 내용을 분석하여 해킹당한 노드인지 판단한다.
상기 카운터는 상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시키고, 메시지가 성공적으로 전송될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 감소시킨다.
상기 NES는 상기 다수의 노드들 및 IDS에 각각 장착되어, TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단한다.
CAN 버스의 모든 노드는 TEC(Transmit Error Counter)와 REC(Receive Error Counter)가 있으며, 이를 이용하여 에러가 자주 발생하는 노드가 다른 노드의 송수신을 방해하지 않도록 관리한다.
어느 노드든지 에러를 발견하면 에러 프레임을 발생시키는데, 이때 송신 노드의 TEC는 8만큼 증가하게 된다. 수신 노드의 경우 가장 먼저 에러 프레임을 발생시킨 노드의 REC는 8만큼 증가하고 다른 노드의 REC는 1만큼 증가한다.
반면, 메시지가 성공 적으로 전송되면 송신 노드와 수신 노드의 TEC와 REC는 각각 1씩 감소한다. 도 3은 TEC와 REC에 따라 노드 상태 변화를 나타낸 것이다. 에러 액티브 상태는 정상적인 송수신을 수행하지만 TEC 또는 REC가 128 이상이 되면, 에러 패시브 상태가 되어 송수신에 다소 제약을 받는다.
특히, TEC가 256 이상이 되면 버스 오프 상태가 되어 버스에서 자동적으로 분리되며 송수신이 금지된다. 본 발명에서는 이를 이용하여 악의적인 데이터 프레임을 전송하는 노드를 버스 오프 상태로 만들어서 해당 노드가 버스를 과부하 시키거나 다른 노드를 공격하는 것을 막는 기법을 제안한다.
CAN 버스 공격 시나리오 CAN 버스에서는 크게 3가지의 공격 시나리오를 생각할 수 있는데 노드를 점령한 뒤 스니핑(Sniffing)을 통해 메시지 패턴을 파악할 수도 있고, 일반적인 공격(Attack)을 통해 악의적인 데이터 프레임을 송신하여 버스를 과부하 걸리게 만들거나 다른 노드를 오동작시킬 수 있다.
또한, 다른 노드인 척 가장하면서 악의적인 데이터 프레임을 송신하는 스푸핑(Spoofing) 공격을 할 수도 있다. 예를 들어, 공격 시나리오는 아래와 같다.
시나리오 1로서 스니핑은 해킹을 통해 점령한 노드를 이용해서 버스 상에서 통신 중인 메시지들을 보고 패턴을 파악하는 것이다. 이 단계에서는 CAN 버스에 해를 가하지 않는다.
시나리오 2로서 일반 공격은 스니핑을 통해 메시지 패턴을 파악한 후 점령한 노드를 이용하여 악의적인 데이터 프레임을 송신한다. 시나리오 3은 스푸핑 공격으로 일반적인 공격과 스푸핑 공격은 악의적인 데이터 프레임을 송신하는 점에서는 동일하나 스푸핑 공격에서는 점령한 노드가 다른 노드인 척 위장한다는 차이가 있다.
에러 프레임을 보내서 해킹당한 노드를 추방하는 기능인 NES(Node Expulsion System)는 일반적인 CAN 버스에는 없는 본 발명에서 추가한 기능이다.
일 실시예로서, NES는 특정 조건을 만족하면 에러 프레임을 내보내는 회로를 CAN 컨트롤러에 부가하여 구현할 수 있다. 본 발명에서는 NES를 각 노드와 IDS에 모두 장착하였다.
본 발명에서 스니핑은 당장 버스에 악 영향을 끼치지 않기 때문에 특별한 조치를 취하지 않는다. 그러나, 일반 공격에서는 도 4와 같이 점령당한 노드가 악의적인 데이터 프레임을 송신할 경우 IDS에서 해당 데이터 프레임의 내용을 분석하고 해당 노드가 해킹되었음을 감지한다.
이후로는 IDS에 장착된 NES가 해당 노드가 송신할 때마다 계속 에러 프레임을 송신하기 때문에 해당 노드는 송신을 봉쇄당하고 TEC가 증가하여 버스 오프 상태가 된다.
구체적으로, 해킹 당한 노드가 악의적인 데이터 프레임을 송신하여 CAN 버스를 과부하 시키거나 다른 노드를 오동작시키는 공격에 대처하는 과정이다. IDS는 CAN 버스를 지속적으로 모니터링 하고 있는데 ① Malicious 노드가 MID=0x102, DLC=4b0010, Data=0x2000을 송신하면, ② IDS는 사전에 업데이트 되어 있는 표와 다른 것을 보고 현재 데이터 프레임을 송신 중인 노드가 해킹 당한 노드로 판단한다.
③ 해킹 당한 노드를 감지한 IDS는 에러 프레임을 송신하고, ④ 데이터 프레임을 송신 중의 에러 프레임을 수신한 Malicious 노드는 TEC가 증가하게 된다. 또 다른 공격인 다른 정상 노드를 도용하는 공격은 발생할 수 없는데 그 이유는 모든 노드들이 고유 NID가 설정되어 있어 변경할 수 없기 때문이다.
한편, 스푸핑 공격에서는 도 5와 같이 점령당한 노드가 NID를 위조하여 악의적인 데이터 프레임을 송신할 경우, 위조 당한 노드(즉, 위조된 NID를 원래 쓰고 있는 노드)에서 자신과 동일한 NID를 발견하였으므로 해당 노드가 해킹되었음을 감지한다.
이후로는 위조 당한 노드에 달려있는 NES가 해당 노드가 송신할 때마다 계속 에러 프레임을 송신하기 때문에 해당 노드는 송신을 봉쇄당하고 TEC가 증가하여 버스 오프 상태가 된다.
본 발명에서는 CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로서 악의적인 공격을 방어할 수 있다.
도 6은 본 발명의 일 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법의 흐름도이다.
본 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은, 도 1의 시스템(1)과 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1의 시스템(1)과 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
또한, 본 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은 CAN 버스 물리 계층에서 해킹된 노드에 대처하기 위한 소프트웨어(애플리케이션)에 의해 실행될 수 있다.
본 발명은 CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로써 악의적인 공격을 방어한다.
도 6을 참조하면, 본 실시예에 따른 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은, CAN(Controller Area Network) 버스 라인에 연결된 다수의 노드들에 대해 각각 서로 다른 고유 ID인 NID(Node ID)를 설정한다(단계 S10). 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4 비트를 NID 값으로 설정할 수 있다.
위조된 NID를 사용하는 노드, 다른 NID를 사용하는 노드 및 존재하지 않는 NID를 사용하는 노드 중 적어도 하나가 발견되는 경우 에러 프레임으로 판단한다(단계 S20).
노드들은 각자 자신의 NID가 설정되어 있으므로, 위조된 NID를 사용하는 노드가 발견된 경우 사칭 당한 NID가 설정된 노드가 해킹을 감지할 수 있다.
반면, 다른 NID를 사용하는 노드 또는 존재하지 않는 NID를 사용하는 노드가 발견된 경우 침입 감지 시스템인 IDS(Intrusion Detection System)가 해킹을 감지할 수 있다.
상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시킨다(단계 S30).
상기 에러 프레임이 발생되면, 송신 노드의 TEC는 8만큼 증가시키고, 수신 노드의 경우 가장 먼저 에러 프레임을 발생시킨 노드의 REC는 8만큼 증가시키고 다른 노드의 REC는 1만큼 증가시킬 수 있다.
반면, 메시지가 성공적으로 전송될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 감소시킬 수 있다.
TEC 또는 REC이 설정된 임계치 보다 커지는 경우(단계 S40), 노드를 버스 오프(off)시켜 차단한다(단계 S50). 예를 들어, 노드의 TEC 또는 REC가 256 보다 커지는 경우 해당 노드를 분리할 수 있다.
이와 같은 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법에 따르면, CAN 버스 상에서 악의적인 데이터 프레임이 감지되면 침입 감지 시스템이 내부 공격 노드의 에러 카운터를 증가시켜서 버스에서 분리시킴으로써 악의적인 공격을 방어한다.
IDS(Intrusion Detection System)와 CAN(Controller Area Network) 컨트롤러의 NID(Node ID)를 설정해 두는 하드웨어적 방식으로 CAN 버스 상에서 발생할 수 있는 모든 네트워크 공격에 대해 즉각적으로 대처할 수 있다. 따라서, 사용자의 안전성을 높일 수 있고 보안 성능을 강화할 수 있다.
아래에서는 본 발명의 성능을 검증하기 위한 시뮬레이션 결과를 설명한다. 본 발명에서는 기존의 CAN 컨트롤러에 NES를 장착하여 Verilog HDL로 설계하고 ModelSim으로 시뮬레이션하였다. 4개 CAN 노드의 NID는 4, 8, 16, 32로 설정하였으며 스니핑은 당장 악영향을 끼치지 않기 때문에 일반 공격과 스푸핑 공격의 2가지에 대해서만 시뮬레이션을 수행하였다.
도 7은 일반 공격에 대처하는 경우로, 처음에는 정상 동작을 하다가 일정 시간이 지난 뒤 IDS에서 점령당한 4번 노드(NID=32)를 감지하고 4번 노드가 데이터 프레임을 송신할 때마다 IDS가 에러 프레임을 발생시켜 4번 노드의 TEC를 증가시킨다. 이후 4번 노드가 전송할 때마다 IDS가 TEC를 계속 증가시켜 버스 오프로 만든다.
도 8은 스푸핑 공격에 대처하는 경우로, 점령 당한 4번 노드(NID=32)가 1번 노드(NID=4)를 도용하여 데이터 프레임을 송신한다. 그러나 1번 노드는 송신 중이 아닌데 자신의 NID를 감지하였으므로, 공격으로 인식하고 에러 프레임을 발생시켜 4번 노드의 TEC를 증가시킨다. 이후 4번 노드가 1번 노드(NID=4)를 도용할 때마다 1번 노드가 TEC를 계속 증가시켜 버스 오프로 만든다.
CAN 버스에서는 노드들 중 하나가 해킹을 당하여 악의적인 데이터 프레임을 전송하여도 어느 노드가 문제인지 식별하기 어렵다. 본 발명에서는 기존의 CAN 컨트롤러를 수정하여 CAN 버스에서 발생할 수 있는 다양한 공격 시나리오에 대하여 대처가 가능한 방법을 제안하였다.
이와 같은, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 9는 본 발명의 일 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치의 블록도이다.
본 발명에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치(10, 이하 장치)는 CAN 버스가 부팅될 때 개별 노드에 고유 ID를 자동으로 부여하는 물리 계층 보안을 제안한다.
도 9를 참조하면, 본 발명에 따른 장치(10)는 자동 ID 설정부(110), NID 저장부(미도시), 상태 머신(180) 및 전송 버퍼(140)를 포함한다. 일 실시예에서, 본 발명의 장치(10)는 제안한 기법을 Verilog HDL을 이용하여 CAN 컨트롤러에 구현할 수 있다. 또한, CAN 컨트롤러는 CAN 시스템에 구현되거나, CAN 버스 상의 노드에 구현될 수 있다.
다른 실시예로서, 본 발명의 장치(10)는 Clock DivIDer(120), Bit Time Logic(130), Receive FIFO Buffer(150), Acceptance Filter(160) 및 CRC(170) 중 적어도 하나를 더 포함할 수 있다.
본 발명의 상기 장치(10)는 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안을 수행하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 상기 자동 ID 설정부(110), 상기 NID 저장부(미도시), 상기 상태 머신(180) 및 상기 전송 버퍼(140)의 구성은 상기 장치(10)에서 실행되는 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안을 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
상기 장치(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 상기 자동 ID 설정부(110), 상기 NID 저장부(미도시), 상기 상태 머신(180) 및 상기 전송 버퍼(140)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
상기 장치(10)는 이동성을 갖거나 고정될 수 있다. 상기 장치(10)는, 서버(server) 또는 엔진(engine) 형태일 수 있으며, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다.
상기 장치(10)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
본 발명에서는 도 10과 같이 CAN 버스 공격에 대처한다. 본 발명에서는 IDS(Intrusion Detection System), NES(Node Expulsion System)라는 하드웨어를 사용한다. IDS는 데이터 프레임의 내용을 분석하여 현재 송신 중인 노드가 해킹당한 노드인지 판단한다. NES는 IDS가 해킹당한 노드로 지목한 특정 노드를 CAN 버스에서 추방하는 기능을 수행 하는 블록으로 일반적인 CAN 버스에는 없는 기능이다.
IDS는 CAN 버스를 항상 모니터링하다가 어떤 노드가 악의적인 데이터 프레임을 송신하는 경우, 데이터 내용을 분석하여 노드가 해킹당한 것을 감지한다. 이후, 해킹 당한 노드가 송신할 때마다 데이터 내용에 관계없이 NES가 에러 프레임을 발생시켜 송신을 막는다.
해킹당한 노드는 데이터를 송신할 때마다 송신 에러 카운트가 지속적으로 증가하고, 에러 패시브 상태를 지나 버스 오프 상태가 되어 더 이상 송신이 불가능하게 된다. 본 발명에서는 도 10과 같이 CAN 버스 내부의 모든 노드에 고유 ID가 지정되어 있다.
만약, CAN 콘트롤러마다 생산 시에 고유 ID를 지정하면 고유 ID의 비트 수가 너무 늘어나고, 모든 노드가 차량에 장착된 다음에 고유 ID를 지정하면 부품 교체 시마다 고유 ID를 재지정해야 한다. 본 발명에서는 이러한 문제점을 해결 하기 위해 CAN 버스가 부팅할 때 각 노드의 고유 ID를 자동으로 부여하는 방안을 제안한다.
상기 자동 ID 설정부(110)는 CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신한다. 이후, TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 서로 다른 각 노드의 고유 ID인 NID(Node ID)로 설정한다.
상기 NID 저장부(미도시)는 클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들의 NID를 저장한다.
상기 상태 머신(180)는 CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면, TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신한다.
상기 전송 버퍼(140)는 버스 라인에 연결된 모든 노드들의 NID를 설정하면, IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알려서 통신을 시작하도록 한다.
본 발명에서는 모든 노드들이 Boot-up 될 때 자동으로 노드의 고유 ID인 NID(Node ID)를 설정한다. NID를 설정하는 방법은 ‘모든 오실레이터는 오차가 존재한다.’는 점을 이용하는데 CAN 버스에 연결된 노드들이 Boot-up 되는 경우 클락 카운트를 시작하여 충분히 큰 값(예를 들어, 충분히 큰 값을 16’hFFFF로 설정 함)에 도달하면, 도 10과 같이 ① TID(Temporary ID)를 설정하여 데이터 프레임을 송신한다. 데이터 프레임을 송신하였기 때문에 CAN 버스에는 열성(Recessive) 신호가 나타난다.
② 클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료한 다음 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들은 다른 노드가 먼저 CAN 버스를 사용하고 있는 것이므로 클락 카운트를 초기화하고, 통신이 끝나는 것을 기다리고 버스에 나타나는 NID를 기억한다.
③ TID를 설정한 데이터 프레임을 송신한 IDS는 Ack 신호를 보낸다. ④ IDS로부터 Ack 신호를 받은 노드는 TID를 NID로 설정한다. CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하고 클락 카운트가 설정한 값에 도달 하면 TID를 마지막으로 버스에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신한다.
⑤ 이 과정을 반복하여 버스에 연결된 모든 노드들의 NID를 설정하면 IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알리고 노드들은 통신을 시작한다.
예를 들어, CAN 버스가 부팅될 때 클록 카운트를 기반으로 각 노드의 고유 ID를 설정한다. 도 2와 같이 모든 노드들은 부팅이 됨과 동시에 클록 카운트를 시작한다. 클록 오실레이터 회로에는 편차가 존재하므로 어떤 노드의 클록 카운트가 먼저 16'hFFFF에 도달하면 그 순간에 해당 노드의 ID를 1로 설정하고 데이터 프레임을 송신한다.
이때 IDS로부터 Ack 신호를 받으면 설정했던 주소를 고유 ID로 설정한다. 반면, 클록 카운트가 증가하는 중간에 Rx 신호가 열성(Recessive)로 감지되면 클록 카운트를 초기화하고 기다린다. 이때, 각 노드들은 클록 카운트의 초기화 횟수를 기억한다.
버스가 휴지(IDLE) 상태가 되면 다시 클록 카운트를 시작하고 클록 카운트가 16'hFFFF가 되는 순간 클록 카운트의 초기화 횟수에 1만큼 더한 값을 계산해 두었다가 IDS로부터 Ack 신호를 받으면, 이 계산값을 고유 ID로 설정한다.
일 실시예에서, 가장 먼저 클록 카운트가 16'hFFFF에 도달하는 노드가 ID=1이 되고 다른 노드들은 클록 카운트가 초기화되며, 남은 노드 중에 가장 먼저 클록 카운트가 16'hFFFF에 도달하는 노드가 ID=2가 되고 다른 노드들은 역시 클록 카운트가 초기화된다. 이렇게 하여 버스에 연결된 모든 노드들의 주소를 설정한다.
본 발명에서 노드들의 고유 ID를 설정하기 위해서 오실레이터의 미세한 오차를 이용하여 클락 카운트의 차이를 발생시키기 위해서는 클락 카운트를 충분히 많이 수행하여야 한다. 하지만, 클락 카운트를 많이 수행하면 CAN 버스에 연결되어 있는 노드들의 고유 ID를 설정하는데까지 걸리는 시간이 길어지는 단점이 있다.
반면, 고유 ID를 설정하는 시간을 단축시키기 위해서 클락 카운트를 조금 수행하면 노드들의 클락 카운트의 차이가 발생하지 않아 동일한 고유 ID가 설정 되는 문제가 발생할 수 있다. 따라서, 클락 카운트 수행과 고유 ID를 설정하는 시간은 서로 트레이드 오프(Trade-off) 관계이다.
동일한 고유 ID가 설정 되는 문제는 노드들이 통신을 시작한 이후에 발견할 수 있다. 크게, 동일한 고유 ID가 설정된 노드가 동시에 데이터를 송신하는 경우와 동일한 고유 ID가 설정된 노드 중 하나가 데이터를 송신하는 경우이다. 발견한 문제를 해결하는 방법은 다음과 같다.
가. 동시에 데이터를 송신하는 경우
동일한 고유 ID가 설정된 노드가 동시에 데이터를 송신하는 경우는 크게 같은 데이터를 송신하는 경우와 서로 다른 데이터를 송신하는 경우가 있다.
동일한 고유 ID가 설정된 노드가 동시에 같은 데이터를 송신하는 경우 두 노드 모두 데이터 전송 목적을 달성하게 되므로, 문제가 발생하지 않는다.
도 11을 참조하면, ① 동일한 NID가 설정되어 있는 노드 1과 노드 4가 동시에 서로 다른 데이터를 송신하는 경우 ② 데이터 필드(Data field)를 송신하는 과정에서 비트(Bit) 에러가 발생한다.
데이터 필드에서 비트 에러가 발생하는 과정을 살펴보면 도 12와 같이 노드 4의 데이터 필드 8번째 비트를 송신하는 과정에서 노드 1에 밀려서 비트 에러가 발생한다. 데이터 프레임을 송신 중인 노드 1과 노드 4는 에러 프레임을 수신하였기 때문에 TEC가 증가하고, 버스 휴지(IDLE) 상태가 되면 노드 1과 노드 4는 다시 데이터 프레임을 송신한다.
그리고, 다시 노드 4의 데이터 필드 8번째 비트를 송신하는 과정에서 노드 1에 밀려서 비트(Bit) 에러가 발생한다. 이와 같은 현상을 이용하여 노드가 데이터 프레임을 송신할 때 데이터 필드에서 비트 에러가 발생하는 경우 데이터 필드의 몇 번째 비트에서 에러가 발생하는지 기억하고, ③ 3번 연속 같은 자리에서 비트 에러가 발생하면 에러 프레임을 송신하지 않고 동일한 NID가 설정된 것으로 판단하고 NID를 변경한다.
3번 연속 데이터 필드의 같은 자리에서 비트 에러가 발생하는 것으로 동일한 NID가 설정되었다고 판단하는 이유는 다음과 같다. 노이즈 또는 CAN 버스 문제로 비트 에러가 발생할 확률은
Figure PCTKR2020019184-appb-I000001
이지만 3번 연속 데이터 필드의 같은 자리에서 비트 에러가 확률은
Figure PCTKR2020019184-appb-I000002
로 매우 작기 때문이다. 또한, 4번 이상으로 하는 경우에는 정상적인 노드의 TEC가 불필요하게 많이 증가될 수 있다.
나. 노드 중 하나가 데이터를 송신하는 경우
도 13과 같이 ① 동일한 고유 ID가 설정된 노드 중 하나가 데이터를 송신하는 경우 데이터를 송신하지 않는 노드가 ② Arbitration field RTR 데이터를 수신하는 과정에서 에러를 발생시킨다. Arbitration field에서 에러가 발생하는 과정을 살펴보면 도 14와 같이 노드 1은 자신은 송신 중인 상태가 아닌데 자신의 NID가 CAN 버스 상에 나타나므로 에러 프레임을 송신하고 REC를 증가시킨다.
데이터를 송신 중인 노드 4는 에러 프레임을 수신하였기 때문에 TEC가 증가하고 버스 휴지(IDLE) 상태가 되면 노드 4는 다시 데이터 프레임을 송신한다. 그리고, 다시 노드 1이 Arbitration field RTR 데이터를 수신하는 과정에서 에러를 발생시킨다.
이와 같은 현상을 이용하여 노드가 데이터 프레임을 송신할 때 데이터를 송신하지 않는 노드가 자신의 NID가 CAN 버스 상에 ③ 3번 연속 나타나면 동일한 NID가 설정된 것으로 판단하고 NID를 변경한다.
3번 연속 자신의 NID가 CAN 버스 상에 나타나는 것으로 동일한 NID가 설정되었다고 판단하는 이유는 노이즈 또는 CAN 버스 문제로 비트 에러가 발생할 확률은
Figure PCTKR2020019184-appb-I000003
이지만 3번 연속 Arbitration field에서 자신의 NID가 나타날 확률은
Figure PCTKR2020019184-appb-I000004
로 매우 작기 때문이다. 또한 4번 이상으로 하는 경우에는 정상적인 노드의 TEC가 불필요하게 많이 증가될 수 있다.
설정한 NID를 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4비트에 채워서 송신하면 NID가 핑거프린트(Fingerprint) 역할을 하므로, 어느 노드가 데이터 프레임을 송신 하는지 알 수 있게 된다.
버스의 구성은 기존 CAN 버스에 추가적으로 IDS(Intrusion Detection System)를 연결하였는데 IDS는 침입 감지 시스템으로 도 15의 표와 같이 MID(Message ID)와 DLC(Data Length Code)에 따라 송신할 수 있는 데이터의 범위를 사전에 설정하여 IDS와 노드들에게 미리 업데이트 해둔다.
도 16은 해킹 당한 노드가 악의적인 데이터 프레임을 송신하여 CAN 버스를 과부하 시키거나 다른 노드를 오동작 시키는 공격에 대처하는 과정이다. IDS는 CAN 버스를 지속적으로 모니터링 하고 있는데 ① Malicious 노드가 MID=0x102, DLC=4b0010, Data=0x2000을 송신하면 ② IDS는 사전에 업데이트 되어 있는 표와 다른 것을 보고 현재 데이터 프레임을 송신 중인 노드가 해킹 당한 노드로 판단한다.
③ 해킹 당한 노드를 감지한 IDS는 에러 프레임을 송신하고 ④ 데이터 프레임을 송신 중의 에러 프레임을 수신한 Malicious 노드는 TEC가 증가하게 된다. 또 다른 공격인 다른 정상 노드를 도용하는 공격은 발생할 수 없는데 그 이유는 모든 노드들이 고유 NID가 설정되어 있어 변경할 수 없기 때문이다.
CAN 버스 상의 노드에는 주소가 없기 때문에 해킹을 당하여 악의적인 데이터 프레임을 전송하여도 어느 노드가 해킹 당했는지 식별하기 어렵다. 본 발명에서는 기존의 CAN 컨트롤러를 수정하여 CAN 버스가 부팅할 때마다 자동으로 노드의 고유 ID를 정하고 이를 통해 CAN 버스 내부의 공격에서 안전하게 방어할 수 있다.
도 17은 본 발명의 일 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법의 흐름도이다.
본 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, 도 9의 장치(10)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 9의 장치(10)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
또한, 본 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안을 수행하기 위한 소프트웨어(애플리케이션)에 의해 실행될 수 있다.
본 발명은 CAN 버스가 부팅될 때 개별 노드에 고유 ID를 자동으로 부여하는 물리 계층 보안을 제안한다.
도 17을 참조하면, 본 실시예에 따른 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은, CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치(예를 들어, 16’hFFFF)에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신한다(단계 S100).
클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들은 버스에 나타나는 서로 다른 각 노드의 고유 ID인 NID(Node ID)를 저장한다(단계 S200).
이때, 노드는 클락 카운트를 초기화하고 통신이 끝나는 것을 기다린다. 설정한 NID는 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4비트에 설정한 NID를 기재하여 송신할 수 있다.
TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 NID로 설정한다(단계 S300).
CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면 TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신한다(단계 S400).
상기 단계들(단계 S100 내지 단계 S400)을 반복적으로 수행하여 버스 라인에 연결된 모든 노드들의 NID를 설정하면, IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알리고 노드들은 통신을 시작한다(단계 S500).
동일한 NID가 설정된 노드들이 동시에 서로 다른 데이터를 송신하는 경우, 데이터 프레임을 송신할 때 데이터 필드(Data field)에서 비트(Bit) 에러가 발생한다. 비트(Bit) 에러가 발생하면, 데이터 필드의 몇 번째 비트에서 에러가 발생하는지 저장한다.
또한, 미리 설정된 횟수(예를 들어, 3회)만큼 연속적으로 같은 자리에서 비트 에러가 발생하는 경우, 에러 프레임을 송신하지 않고 동일한 NID가 설정된 것으로 판단하고 NID를 변경한다.
동일한 NID가 설정된 노드들 중 하나가 데이터를 송신하는 경우, 데이터를 송신하지 않는 노드가 Arbitration field RTR 데이터를 수신하는 과정에서 에러를 발생시킨다.
노드가 데이터 프레임을 송신할 때 데이터를 송신하지 않는 노드가 자신의 NID가 CAN 버스 상에 미리 설정된 횟수(예를 들어, 3회)만큼 연속적으로 나타나는지 체크한다. 자신의 NID가 미리 설정된 횟수만큼 연속적으로 나타나는 경우, 동일한 NID가 설정된 것으로 판단하고 자신의 NID를 변경한다.
아래에서는 본 발명의 성능을 검증하기 위한 시뮬레이션 결과를 설명한다. 본 발명에서는 기존의 CAN 컨트롤러에 NES를 추가하여 Verilog HDL을 이용하여 구현하였으며 IDEC(IC Design Education Center)에서 제공한 ModelSim으로 시뮬레이션 하였다.
시뮬레이션에서는 두 가지 상황을 확인하였는데, 하나는 CAN 버스가 부팅되면서 자동으로 노드의 고유 주소를 부여하는 상황이며 다른 하나는 내부 공격이 이루어지고 이에 대한 방어가 이루어지는 상황이다.
도 18은 CAN 버스가 부팅되면서 자동으로 노드의 고유 주소를 부여하는 시뮬레이션 결과이다. 처음에 부팅이 시작되고 각 노드들은 클록 카운트를 증가시킨다.
도 18을 참조하면, 가장 먼저 클록 카운트가 16'hFFFF가 된 auto_con2 노드가 고유 ID로 1을 부여받고, auto_con1 노드와 auto_con3 노드는 클록 카운트 중에 Rx 신호가 Recessive로 감지되면서 클록 카운트를 초기화한다. 이때, auto_con1, auto_con3 노드는 클록 카운트의 초기화 횟수(이 시점에서는 1)를 기억한다.
이제 버스가 휴지 상태가 되면 다시 클록 카운트를 시작한다. 이런 식으로 auto_con1 노드와 auto_con3 노드 순으로 고유 ID 설정을 완료한다. 충분한 시간동안 버스가 비어 있게 되면 모든 노드들은 ID 부여 작업이 완료되었다고 판단하여 실제 동작을 시작하면서 데이터 프레임의 송수신을 시작한다.
도 19는 각 노드의 고유 ID가 설정된 이후에 내부 공격이 시작되고 이에 대한 대처가 이루 어지는 시뮬레이션 결과이다. 이 시뮬에이션에서는 4개 CAN 노드의 ID가 4, 8, 16, 32로 설정되었다고 가정하였다. 도 19에서는 처음에는 정상 동작을 하다가 일정 시간 후 IDS에서 데이터 프레임의 데이터를 보고 ID가 4인 노드가 해킹당한 것을 감지하였다.
이후에는 ID가 4인 내부 공격 노드가 데이터 프레임을 송신할 때마다 에러 프레임을 발생시켜 해당 노드의 TEC를 증가시킨다. 이 작업은 ID가 4인 내부 공격 노드가 데이터 프레임을 전송할 때마다 이루어지며, 해당 노드의 TEC가 계속 증가하여 결국에는 에러 패시브 상태를 지나 버스 오프 상태가 된다.
본 발명의 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법에 따르면, CAN 버스에서 부팅 때마다 개별 노드에 고유 ID를 자동으로 부여하여 각 노드를 구별한다. 본 발명은 부팅 때마다 고유 ID인 NID(Node ID)를 할당하기 때문에 부품 교체와 상관없이 쉽게 적용이 가능하면서도 고유 ID의 비트 수를 크게 줄일 수 있다.
또한, IDS와 CAN 컨트롤러의 NID를 설정해 두는 방식으로 CAN 버스 상에서 발생할 수 있는 모든 네트워크 공격에 대해 대처할 수 있다. 이에 따라, 사용자의 안전성을 높일 수 있고 보안 성능을 강화할 수 있다.
이와 같은, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
[산업상 이용가능성]
오늘날 대부분의 자동차의 경우 CAN(Controller Area Network) 통신 프로토콜을 사용하여 차량 내부 주요 전자 제어 장치(ECU: Electronic Control Unit)들을 버스 토폴로지(Bus Topology) 방식으로 연결된다. 본 발명은 CAN 버스 상에서 발생하는 악의적인 노드를 식별하고 신속하게 대처하여 사고에 대비하므로, CAN 통신을 사용하는 자동차의 ECU 및 기타 장치에 유용하게 활용 가능하다.
[부호의 설명]
1: CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템
10: CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치

Claims (22)

  1. CAN(Controller Area Network) 버스 라인에 연결된 다수의 노드들에 대해 각각 서로 다른 고유 ID인 NID(Node ID)를 설정하는 단계;
    위조된 NID를 사용하는 노드, 다른 NID를 사용하는 노드 및 존재하지 않는 NID를 사용하는 노드 중 적어도 하나가 발견되는 경우 에러 프레임으로 판단하는 단계;
    상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시키는 단계; 및
    TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 단계;를 포함하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  2. 제1항에 있어서, 상기 에러 프레임으로 판단하는 단계는,
    위조된 NID를 사용하는 노드가 발견된 경우 사칭 당한 NID가 설정된 노드가 해킹을 감지하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  3. 제1항에 있어서, 상기 에러 프레임으로 판단하는 단계는,
    다른 NID를 사용하는 노드 또는 존재하지 않는 NID를 사용하는 노드가 발견된 경우 침입 감지 시스템인 IDS(Intrusion Detection System)가 해킹을 감지하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  4. 제1항에 있어서, 상기 CAN 버스 라인에 연결된 다수의 노드들에 대해 각각 서로 다른 고유 ID인 NID를 설정하는 단계는,
    데이터 프레임을 송신할 때 메시지 ID 영역 하위 4 비트를 NID 값으로 설정하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  5. 제1항에 있어서, 상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 증가시키는 단계는,
    상기 에러 프레임이 발생되면, 송신 노드의 TEC는 8만큼 증가시키고, 수신 노드의 경우 가장 먼저 에러 프레임을 발생시킨 노드의 REC는 8만큼 증가시키고 다른 노드의 REC는 1만큼 증가시키는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  6. 제1항에 있어서,
    메시지가 성공적으로 전송될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 감소시키는 단계;를 더 포함하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  7. 제1항에 있어서, 상기 TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 단계는,
    노드의 TEC 또는 REC가 256 보다 커지는 경우 해당 노드를 분리하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 방법.
  8. 제1항에 따른 상기 CAN 버스 물리 계층에서 해킹된 노드의 대처 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
  9. CAN(Controller Area Network) 버스 라인에 연결되고 각각 서로 다른 고유 ID인 NID(Node ID)가 설정된 다수의 노드들;
    상기 CAN 버스 라인에 로딩되는 데이터 프레임의 내용을 분석하여 해킹당한 노드인지 판단하는 IDS(Intrusion Detection System);
    상기 에러 프레임이 발생될 때마다 송신 노드와 수신 노드의 TEC(Transmit Error Counter)와 REC(Receive Error Counter)의 카운트를 증가시키고, 메시지가 성공적으로 전송될 때마다 송신 노드와 수신 노드의 TEC와 REC의 카운트를 감소시키는 카운터; 및
    상기 다수의 노드들 및 IDS에 각각 장착되어, TEC 또는 REC이 설정된 임계치 보다 커지는 노드를 버스 오프(off)시켜 차단하는 NES(Node Expulsion System);를 포함하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템.
  10. 제9항에 있어서,
    위조된 NID를 사용하는 노드가 발견된 경우 사칭 당한 NID가 설정된 노드의 NES가 해킹을 감지하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템.
  11. 제9항에 있어서,
    다른 NID를 사용하는 노드 또는 존재하지 않는 NID를 사용하는 노드가 발견된 경우 상기 IDS의 NES가 해킹을 감지하는, CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템.
  12. 제9항에 있어서,
    각 노드의 NID는 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4 비트에서 설정되는, CAN 버스 물리 계층에서 해킹된 노드의 대처 시스템.
  13. CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하는 단계;
    클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들은 버스에 나타나는 서로 다른 각 노드의 고유 ID인 NID(Node ID)를 저장하는 단계;
    TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 NID로 설정하는 단계; 및
    CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면 TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신하는 단계;를 포함하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  14. 제13항에 있어서,
    상기 단계들을 반복적으로 수행하여 버스 라인에 연결된 모든 노드들의 NID를 설정하면, IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알리고 노드들은 통신을 시작하는 단계;를 더 포함하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  15. 제14항에 있어서,
    설정한 NID를 데이터 프레임을 송신할 때 메시지 ID 영역 하위 4비트에 설정한 NID를 기재하여 송신하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  16. 제15항에 있어서,
    동일한 NID가 설정된 노드들이 동시에 서로 다른 데이터를 송신하는 경우, 데이터 프레임을 송신할 때 데이터 필드(Data field)에서 비트(Bit) 에러가 발생하는 단계;
    비트(Bit) 에러가 발생하면, 데이터 필드의 몇 번째 비트에서 에러가 발생하는지 저장하는 단계; 및
    미리 설정된 횟수만큼 연속적으로 같은 자리에서 비트 에러가 발생하는 경우, 에러 프레임을 송신하지 않고 동일한 NID가 설정된 것으로 판단하고 NID를 변경하는 단계;를 더 포함하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  17. 제15항에 있어서,
    동일한 NID가 설정된 노드들 중 하나가 데이터를 송신하는 경우, 데이터를 송신하지 않는 노드가 Arbitration field RTR 데이터를 수신하는 과정에서 에러를 발생시키는 단계;
    노드가 데이터 프레임을 송신할 때 데이터를 송신하지 않는 노드가 자신의 NID가 CAN 버스 상에 미리 설정된 횟수만큼 연속적으로 나타나는지 체크하는 단계; 및
    자신의 NID가 미리 설정된 횟수만큼 연속적으로 나타나는 경우, 동일한 NID가 설정된 것으로 판단하고 자신의 NID를 변경하는 단계;를 더 포함하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  18. 제13항에 있어서, 상기 버스에 나타나는 서로 다른 각 노드의 고유 ID인 NID(Node ID)를 저장하는 단계는,
    클락 카운트를 초기화하고 통신이 끝나는 것을 기다리는 단계;를 더 포함하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  19. 제13항에 있어서, 상기 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하는 단계는,
    상기 클락 카운트의 임계치는 16’hFFFF로 설정하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법.
  20. 제13항에 따른 상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
  21. CAN(Controller Area Network) 버스 라인에 연결된 노드들이 부팅(Boot-up)되는 경우, 클락 카운트를 시작하여 임계치에 도달하면 TID(Temporary ID)를 설정하여 데이터 프레임을 송신하고, TID를 설정한 데이터 프레임을 송신한 IDS로부터 송신된 Ack 신호를 수신한 노드의 TID를 서로 다른 각 노드의 고유 ID인 NID(Node ID)로 설정하는 자동 ID 설정부;
    클락 카운트 동작 중에 열성(Recessive) 신호를 감지하거나, 클락 카운트를 완료하고 Tx(Transmitter) 신호를 발생시키기 전에 열성 신호를 감지한 노드들의 NID를 저장하는 NID 저장부;
    CAN 버스가 휴지(IDLE) 상태가 되면 다시 클락 카운트를 시작하여 클락 카운트가 설정한 값에 도달하면 TID를 마지막으로 버스 라인에 나타난 NID에 1만큼 더한 값으로 설정하고 데이터 프레임을 송신하는 상태 머신; 및
    버스 라인에 연결된 모든 노드들의 NID를 설정하면, IDS에서 에러 프레임을 송신하여 각 노드들에게 NID 설정이 완료되었음을 알려서 통신을 시작하도록 하는 전송 버퍼;를 포함하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치.
  22. 제21항에 있어서,
    상기 CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치는, CAN 컨트롤러 상에 구현되고, 동일한 NID가 설정된 노드들이 동시에 서로 다른 데이터를 송신하는 경우, 데이터 프레임을 송신할 때 데이터 필드(Data field)에서 비트(Bit) 에러가 발생하면, 데이터 필드의 몇 번째 비트에서 에러가 발생하는지 저장하고, 미리 설정된 횟수만큼 연속적으로 같은 자리에서 비트 에러가 발생하는 경우, 에러 프레임을 송신하지 않고 동일한 NID가 설정된 것으로 판단하고 NID를 변경하고,
    동일한 NID가 설정된 노드들 중 하나가 데이터를 송신하는 경우, 데이터를 송신하지 않는 노드가 Arbitration field RTR 데이터를 수신하는 과정에서 에러가 발생하면, 노드가 데이터 프레임을 송신할 때 데이터를 송신하지 않는 노드가 자신의 NID가 CAN 버스 상에 미리 설정된 횟수만큼 연속적으로 나타나는지 체크하고, 자신의 NID가 미리 설정된 횟수만큼 연속적으로 나타나는 경우, 동일한 NID가 설정된 것으로 판단하고 자신의 NID를 변경하는, CAN 버스에서 노드 ID 자동 설정을 통한 물리 계층 보안 장치.
PCT/KR2020/019184 2020-10-21 2020-12-28 Can 버스 물리 계층에서 해킹된 노드의 대처 방법, can 버스에서 노드 id 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템 WO2022085863A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20958813.6A EP4231596A1 (en) 2020-10-21 2020-12-28 Method for handling hacked node on can bus physical layer, physical layer security method through automatic node id setting on can bus, recording medium for carrying out same, and system
US18/032,473 US20240031404A1 (en) 2020-10-21 2020-12-28 Counterattack method against hacked node in can bus physical layer, physical layer security method with can bus node id auto-setting, and recording medium and system for performing the method
JP2023524176A JP2023547833A (ja) 2020-10-21 2020-12-28 Canバス物理層でハッキングされたノードの対処方法、canバスでノードid自動設定を通じての物理層セキュリティ方法、これを遂行するための記録媒体およびシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2020-0136471 2020-10-21
KR10-2020-0136473 2020-10-21
KR1020200136473A KR102456506B1 (ko) 2020-10-21 2020-10-21 Can 버스 물리 계층에서 해킹된 노드의 대처 방법, 이를 수행하기 위한 기록 매체 및 시스템
KR1020200136471A KR102423504B1 (ko) 2020-10-21 2020-10-21 Can 버스에서 노드 id 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 장치

Publications (1)

Publication Number Publication Date
WO2022085863A1 true WO2022085863A1 (ko) 2022-04-28

Family

ID=81290583

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/019184 WO2022085863A1 (ko) 2020-10-21 2020-12-28 Can 버스 물리 계층에서 해킹된 노드의 대처 방법, can 버스에서 노드 id 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템

Country Status (4)

Country Link
US (1) US20240031404A1 (ko)
EP (1) EP4231596A1 (ko)
JP (1) JP2023547833A (ko)
WO (1) WO2022085863A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700110A (zh) * 2023-06-30 2023-09-05 中汽院新能源科技有限公司 基于多模块划分的分布式驱动新能源汽车控制方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4232603B2 (ja) 2003-10-24 2009-03-04 富士ゼロックス株式会社 通信システム、制御装置、canバス接続ノード、canバス通信方法、及び、プログラム
KR20090065260A (ko) 2007-12-17 2009-06-22 한국전자통신연구원 Ip 기반 시스템과 wsn 노드와의 연동을 위한 고유식별자를 이용한 주소 변환 시스템 및 방법
KR101332339B1 (ko) 2012-11-08 2013-11-22 재단법인대구경북과학기술원 Can 시스템에서 데이터를 전송하는 방법
KR101714770B1 (ko) * 2015-12-14 2017-03-09 현대오트론 주식회사 Can 통신 시스템의 id 동적 할당 방법, 및 can 통신 시스템
KR20190003112A (ko) * 2017-06-30 2019-01-09 주식회사 페스카로 Can 통신 기반 우회 공격 탐지 방법 및 시스템
KR20190014391A (ko) * 2017-08-02 2019-02-12 한국전자통신연구원 Hmac 기반의 동적 can id 생성 및 운용 장치, 및 그 방법
KR20200021297A (ko) * 2018-08-20 2020-02-28 (주)에이치씨인포 비정상 can 데이터 탐지 시스템 및 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4232603B2 (ja) 2003-10-24 2009-03-04 富士ゼロックス株式会社 通信システム、制御装置、canバス接続ノード、canバス通信方法、及び、プログラム
KR20090065260A (ko) 2007-12-17 2009-06-22 한국전자통신연구원 Ip 기반 시스템과 wsn 노드와의 연동을 위한 고유식별자를 이용한 주소 변환 시스템 및 방법
KR101332339B1 (ko) 2012-11-08 2013-11-22 재단법인대구경북과학기술원 Can 시스템에서 데이터를 전송하는 방법
KR101714770B1 (ko) * 2015-12-14 2017-03-09 현대오트론 주식회사 Can 통신 시스템의 id 동적 할당 방법, 및 can 통신 시스템
KR20190003112A (ko) * 2017-06-30 2019-01-09 주식회사 페스카로 Can 통신 기반 우회 공격 탐지 방법 및 시스템
KR20190014391A (ko) * 2017-08-02 2019-02-12 한국전자통신연구원 Hmac 기반의 동적 can id 생성 및 운용 장치, 및 그 방법
KR20200021297A (ko) * 2018-08-20 2020-02-28 (주)에이치씨인포 비정상 can 데이터 탐지 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KANG TAE-WOOK, JONG-BAE LEE, SEONGSOO LEE : "Counterattack Method against Hacked Node in CAN Bus Physical Layer", JOURNAL OF IKEEE, vol. 23, no. 4, 1 December 2019 (2019-12-01), pages 1469 - 1472, XP055924434, ISSN: 2288-243X, DOI: 10.7471/ikeee.2019.23.4.1469 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700110A (zh) * 2023-06-30 2023-09-05 中汽院新能源科技有限公司 基于多模块划分的分布式驱动新能源汽车控制方法
CN116700110B (zh) * 2023-06-30 2024-03-26 中汽院新能源科技有限公司 基于多模块划分的分布式驱动新能源汽车控制方法

Also Published As

Publication number Publication date
EP4231596A1 (en) 2023-08-23
US20240031404A1 (en) 2024-01-25
JP2023547833A (ja) 2023-11-14

Similar Documents

Publication Publication Date Title
WO2017052303A1 (ko) 무선통신 시스템에서 네트워크 허브 관리 방법 및 장치
WO2023033586A1 (ko) Tcp 세션 제어에 기초하여 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
WO2018230988A1 (ko) Can 통신 기반 해킹공격 탐지 방법 및 시스템
WO2009113827A2 (ko) 충돌 상황에 따라 명령을 재전송하는 rfid 리더 장치 및 그 제어방법
WO2022085863A1 (ko) Can 버스 물리 계층에서 해킹된 노드의 대처 방법, can 버스에서 노드 id 자동 설정을 통한 물리 계층 보안 방법, 이를 수행하기 위한 기록 매체 및 시스템
WO2023033585A1 (ko) 분산 게이트웨이 환경에 최적화된 터널링 및 게이트웨이 접속 시스템 및 그에 관한 방법
WO2019235813A1 (en) Electronic device supporting multiple wireless communication protocols and method therefor
WO2017092498A1 (zh) 一种信息管理方法及用户终端
WO2022019720A1 (ko) 엣지 플랫폼 네트워크의 가속화 제어 방법 및 이를 사용하는 전자 장치
WO2015157942A1 (zh) 接入无线网络的装置及方法
WO2015152614A1 (en) Method of reconnecting master device and slave device
WO2014171733A1 (en) Device and method for performing device to device communication in wireless communication system
WO2021049748A1 (en) Electronic device for receiving data packet in bluetooth network environment and method thereof
WO2020180056A1 (ko) 블루투스 네트워크 환경에서 응답 메시지를 전송하기 위한 전자 장치 및 그에 관한 방법
WO2023085793A1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
WO2020197184A1 (en) Multicore electronic device and packet processing method thereof
WO2020256497A1 (ko) 블루투스 통신 연결 방법 및 그 전자 장치
WO2023090755A1 (ko) 가상화 인스턴스의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
WO2012091528A2 (ko) 신뢰도 있는 ap를 선택할 수 있는 단말기 및 방법
WO2020197339A1 (en) Method for processing network packets and electronic device therefor
WO2020242111A1 (en) Electronic device for discovering device and method thereof
WO2017090931A1 (ko) 이벤트 관리 서비스를 제공하는 전자 장치 및 방법
WO2009113826A2 (ko) 적응형 재전송 대기 시간을 계산하는 rfid 리더 장치 및 그 제어방법
WO2022231304A1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
WO2020122368A1 (ko) 보안단말기를 이용한 저장장치의 데이터 보안 관리 시스템 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20958813

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18032473

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2023524176

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020958813

Country of ref document: EP

Effective date: 20230517